원클릭으로
agent-customization
LLM-powered injection of project context into installed agent templates via `aspens customize agents`
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
LLM-powered injection of project context into installed agent templates via `aspens customize agents`
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when modifying imports, creating new files, refactoring modules, or understanding how components relate. Not needed for simple single-file edits.
LLM-powered injection of project context into installed agent templates via `aspens customize agents`
Core conventions, tech stack, and project structure for aspens
Claude/Codex CLI execution layer — prompt loading, stream-json parsing, file output extraction, path sanitization, skill file writing, and skill rule generation
Top-level Commander wiring, welcome screen, missing-hook warning, CliError exit handling, and the public programmatic API surface
Multi-target output system — target abstraction, backend routing, content transforms for Codex CLI and future targets
| name | agent-customization |
| description | LLM-powered injection of project context into installed agent templates via `aspens customize agents` |
| triggers | {"files":["src/commands/customize.js","src/prompts/customize-agents.md"],"keywords":["customize","agents","subagent","agent customization"]} |
You are working on agent customization — the feature that reads a project's skills and CLAUDE.md, then uses Claude CLI to inject project-specific context into generic agent files in .claude/agents/.
aspens customize agents makes generic, bundled agent templates project-aware. It pulls the repo's skills + CLAUDE.md as ground truth and asks Claude to add a tech-stack line, 3-5 project conventions, and real commands into each agent — without touching the agent's core logic.
CliError for Codex-only repos (config.targets === ['codex']). Codex CLI has no agent concept.CliError("Run 'aspens doc init' first — base skill is required for agent context.") if .claude/skills/base/skill.md is missing..claude/skills/**) are the single source of truth for project context. The prompt must not invent other context directories.allowedTools: ['Read', 'Glob', 'Grep'] — no edits/writes from the LLM itself..claude/. parseFileOutput() rejects anything else; writeSkillFiles(..., { force: true }) does the actual write.skills: line). Then maybeInjectBaseSkill() post-processes each returned file to add skills: [base] into the frontmatter — this keeps agents valid even when installed via aspens add agent without a prior doc init.--reset semantics: without --reset, agents that already declare skills: are left alone; with --reset, any existing skills: line is overwritten to skills: [base]. Used to roll out v0.8 upgrades to previously-customized agents.## Project context block is verbatim-preserved by the prompt — it carries conditional read instructions for code-map / domain skills.gatherProjectContext(); skills are passed in full.findAgents() recursively walks .claude/agents/, extracts name: via regex, falls back to filename if missing.resolveTimeout(options.timeout, 300); ASPENS_TIMEOUT env var honored with warning on invalid value.src/commands/customize.js — orchestrator: preflight, agent discovery, context gathering, per-agent Claude calls, post-LLM skills: [base] injection, write.src/prompts/customize-agents.md — system prompt; enforces frontmatter + ## Project context preservation and bans file-inventory / hub-ranking output.skills: line — the prompt forbids it and the code adds it. If you change one, change both..claude/ paths may be written.Last Updated: 2026-05-11