Target Support
aspens separates two concepts:
- Target — where generated docs are written and how the AI tool discovers them
- Backend — which CLI generates the content
Targets
Section titled “Targets”Claude
Section titled “Claude”Claude support is hook-aware and file-aware.
Published artifacts:
| Artifact | Path |
|---|---|
| Instructions | CLAUDE.md |
| Skills | .claude/skills/<name>/skill.md |
| Hooks | .claude/hooks/... |
| Settings | .claude/settings.json |
Claude reads CLAUDE.md on startup and auto-activates skills through hooks and activation rules.
Codex support is document-driven rather than hook-driven.
Published artifacts:
| Artifact | Path |
|---|---|
| Instructions | AGENTS.md |
| Skills | .agents/skills/<name>/SKILL.md |
| Directory scope | <dir>/AGENTS.md |
Codex reads the root AGENTS.md and can use directory-scoped AGENTS.md files for local context.
Both targets
Section titled “Both targets”Use --target all to generate both sets from one run:
npx aspens doc init --target allAdding Codex to an existing Claude repo
Section titled “Adding Codex to an existing Claude repo”You don’t need to start from scratch. aspens reuses existing repo understanding:
# Add just Codex outputnpx aspens doc init --target codex
# Or regenerate both togethernpx aspens doc init --target allaspens uses existing CLAUDE.md and .claude/skills as context when generating Codex output.
Target vs Backend
Section titled “Target vs Backend”The target and backend are independent. You can mix and match:
# Claude format, generated by Claude CLInpx aspens doc init --target claude --backend claude
# Codex format, generated by Codex CLInpx aspens doc init --target codex --backend codex
# Both formats, generated by Claude CLInpx aspens doc init --target all --backend claudeConfiguration
Section titled “Configuration”Target and backend settings persist in .aspens.json:
{ "targets": ["claude", "codex"], "backend": "claude"}Once configured, commands like doc sync and doc impact use the saved settings automatically.
Sync behavior
Section titled “Sync behavior”The git post-commit hook works for all configured targets:
npx aspens doc sync --install-hookOne hook, all targets updated. Claude-specific activation hooks remain Claude-only.