skill:new
Compatibility: AskUserQuestion falls back to numbered list on non-Claude-Code platforms.
Skill Requirements
command -v npx >/dev/null 2>&1 || echo "MISSING: npx"
Critical Rules
- Never write skill files until user accepts the plan
- Step 0 is always bash argument parsing
- Steps prefer
npx @codevoyant/agent-kitoperations over ad-hoc shell - No markdown tables in skill output — use definition lists, bullets, or Mermaid
- Skills that are technology-specific must include a reference doc index in
references/ - Every skill ships with
LICENSE.md(MIT) - See
references/skill-template.mdfor canonical template
Step 0: Parse arguments
SKILL_NAME="[first non-flag argument, or empty]"
FROM_RESEARCH="[value after --research, or empty]"
Step 1: Load research context (if available)
If --research path provided, read that file as RESEARCH_CONTEXT.
Otherwise check .codevoyant/explore/ for recent explore artifacts relevant to SKILL_NAME. If found, offer to use them. Store as RESEARCH_CONTEXT (may be empty).
Step 2: High-level confirmation
Present a one-paragraph summary of the skill being proposed, derived from SKILL_NAME + RESEARCH_CONTEXT.
AskUserQuestion:
question: "Does this match what you want to build? Any deviations before we plan?"
header: "Skill overview"
options:
- label: "Looks right — proceed to planning"
- label: "I have corrections (describe them)"
If corrections, apply and re-confirm once.
Step 3: Gather skill spec
Ask the following if not already known from context:
AskUserQuestion:
questions:
- question: "What agents should this skill create?"
header: "Agents"
options:
- label: "No agents — runs inline"
- label: "Single agent"
- label: "Multiple parallel agents"
- question: "Is this skill technology-specific?"
header: "Tech scope"
options:
- label: "Yes — needs reference doc index (e.g. SvelteKit, Terraform, Firebase)"
- label: "No — general purpose"
- question: "Is this knowledge work?"
header: "Knowledge"
options:
- label: "Yes — produces docs, research, or planning artifacts"
- label: "No — produces code, config, or file changes"
- question: "Where should the skill live?"
header: "Destination"
options:
- label: "skills/ (public, top-level)"
- label: ".claude/skills/ (private, this repo only)"
- label: "Other (specify below)"
Store all answers as SKILL_SPEC.
Step 3.5: Confirm design direction
Based on SKILL_SPEC and RESEARCH_CONTEXT, synthesise a short design summary covering:
- What the skill does and its primary output
- How many steps and roughly what each does
- Which agents are involved, what each one does, and what artifacts they produce
- How skill, templates, and agents hand off to each other
If the user provided enough detail to be confident, present this as your understanding and ask for confirmation:
AskUserQuestion:
question: "Does this match your intended design?"
header: "Design check"
options:
- label: "Yes — looks right"
- label: "No — I want something different (describe below)"
If the user provided minimal detail, present it as a best-guess proposal instead ("Here's what I'm thinking — does this sound right?") and ask the same question.
If user wants changes, apply them and re-confirm once before continuing.
If SKILL_SPEC indicates tech-specific or knowledge work, also ask:
AskUserQuestion:
question: "Are there specific resources, docs, or URLs you want the skill to consult?"
header: "Resources"
options:
- label: "Yes — I'll list them below"
- label: "No — use whatever is relevant"
If yes, wait for the user to provide the list. Store as RESOURCE_LIST.
Step 4: Plan the skill
4a. Launch research agents (parallel, background)
If RESOURCE_LIST is non-empty:
Tell the user: "Starting deep research on {N} resource(s) — this may take a few minutes. I'll notify you when the plan is ready."
Use the Agent tool to launch all researchers in a single message (one tool call per resource) so they run concurrently. For each resource, substitute into agents/skill-researcher.md:
{RESOURCE_URL}— the resource URL or path{SKILL_NAME}— the skill being designed{OUTPUT_PATH}—.codevoyant/plans/{skill-slug}/research/{slug}.md
Each agent: model: claude-sonnet-4-6, run_in_background: true.
Do not send agent calls across separate messages — all must be in one message to run in parallel. Wait for all to complete before continuing.
Read all artifacts in .codevoyant/plans/{skill-slug}/research/ and use them as input to 4b.
4b. Write the plan
- Create
.codevoyant/plans/{skill-slug}/plan.mdwith proposed skill file structure presented as a file-tree, and high level description of how the skill works, and utilizes agents and tools - Create
.codevoyant/plans/{skill-slug}/files/proposed-skill.mdwhich should adhere to thereferences/skill-template.mdtemplate - For every agent, create
.codevoyant/plans/{skill-slug}/files/agents/{agent-name}.mdusingreferences/agent-template.md - Once all files have been created, update the plan file with links to relevant files near the top.
Register plan:
npx @codevoyant/agent-kit plans register \
--name "{skill-slug}" \
--plugin skill \
--description "Create skill:{skill-name}" \
--total 5
npx @codevoyant/agent-kit notify \
--title "skill:new — Plan ready" \
--message "'{skill-name}' plan is ready for review"
Present plan to user.
AskUserQuestion:
question: "Does this plan look right?"
header: "Plan review"
options:
- label: "Accept — create the skill"
- label: "Adjust (describe changes)"
Loop until accepted. You MUST keep asking this question until the user is satisfied.
Step 5: Create skill files
Only after plan accepted:
a. Create SKILL.md at destination using references/skill-template.md:
- Frontmatter (description, name, license, compatibility, argument-hint)
- Add
disable-model-invocation: trueif the skill is stateful or destructive AND does not usecontext: fork. A forked skill already runs in an isolated agent context — the two flags serve the same isolation purpose, don't combine them. - Add
context: forkif the skill is long-running or should be isolated. This also provides stateful safety without needingdisable-model-invocation.
- Add
- Compatibility note block
- Skill Requirements section (bash checks for deps)
- Critical Rules (terse, ≤8 bullets; reference
references/for detail) - Step 0: bash argument parsing (always first)
- Steps: terse recipe steps; prefer
npx @codevoyant/agent-kit - If technology-specific: Agent Index section listing reference docs
b. Create references/{necessary templates}.md if tech-specific
c. Create agents/{agent-name}.md for each agent defined — one file per agent using references/agent-template.md
d. Create LICENSE.md (MIT, copyright codevoyant contributors)
e. If technology-specific, create references/{tech}-reference-index.md with links to official docs sections the skill should consult. The skill may additionally provide written guides in the references directory which can also be indexed in references/{tech}-reference-index.md.
e. If knowledge work specific, create references/{knowledgevase}-reference-index.md with links to external sources the skill should consult. The skill may additionally provide written guides in the references directory which can also be indexed in references/{tech}-reference-index.md.
Step 6: Validate
Run /skill:review to audit the new skill automatically.
Report: "Skill {name} created at {path}."
More from cloudvoyant/codevoyant
mem:help
Use when the user asks about available mem commands or needs help choosing a skill. Triggers on: \"mem help\", \"help mem\", \"what can mem do\", \"mem commands\", \"list mem skills\", \"mem reference\". Lists all mem commands with descriptions, arguments, and usage guidance.
14dev:plan
Use when planning architecture for a project or feature. Triggers on: "dev plan", "architecture plan", "plan architecture", "design architecture", "technical design", "system design for". Produces draft plan artifacts in .codevoyant/plans/{slug}/. Use /dev:approve to promote to docs/architecture/.
14em:review
Use when reviewing an engineering roadmap for quality and realism. Triggers on: "em review", "review roadmap", "sanity check roadmap", "em check", "review this plan". Checks capacity realism, dependency gaps, missing risks, and phasing quality. Auto-launched after em:plan.
13dev:explore
Use when researching technical approaches before building. Triggers on: "explore options", "what are my options for", "research approaches", "compare solutions", "dev explore", "generate proposals", "help me decide between". Runs parallel proposal generation via subagents and outputs to .codevoyant/explore/.
13em:plan
Use when planning a project (epic) or initiative with Linear as tracker.
13pm:plan
Plan a product roadmap for a quarter, half-year, or year. Writes a draft roadmap to .codevoyant/roadmaps/ using capability tiers. Triggers on: "pm plan", "product roadmap", "plan a roadmap", "quarterly roadmap", "annual plan".
13