plugins/spec-kitty-plugin/skills/spec-kitty-plan/SKILL.md
A standard Spec-Kitty workflow routine.
npx skillsauth add richfrem/agent-plugins-skills spec-kitty-planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
<!-- spec-kitty-command-version: 3.0.3 -->Source: This skill augments the baseline workflow located at
./workflows/spec-kitty.plan.md. It acts as an intelligent wrapper that is continuously improved with each execution.
Version: 0.11.0+
IMPORTANT: Plan works in the project root checkout. NO worktrees created.
# Run from project root (same directory as /spec-kitty.specify):
# You should already be here if you just ran /spec-kitty.specify
# Creates:
# - kitty-specs/###-feature/plan.md → In project root checkout
# - Commits to target branch
# - NO worktrees created
Do NOT cd anywhere. Stay in the project root checkout root.
In repos with multiple features, always pass --feature <slug> to every spec-kitty command.
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Before asking planning questions or generating artifacts, you must make the branch contract explicit.
plan.md.setup-plan --json/spec-kitty.tasksBefore planning interrogation, load constitution context for this action:
spec-kitty constitution context --action plan --json
mode is bootstrap, apply JSON text as first-run governance context and follow referenced docs as needed.mode is compact, continue with condensed governance context.This command runs in the project root checkout, not in a worktree.
meta.json inspection:
spec-kitty agent feature setup-plan --feature <feature-slug> --jsoncurrent_branch, target_branch / base_branch, and planning_base_branch / merge_target_branch (plus uppercase aliases) from that payloadbranch_matches_target from that payload to detect branch mismatch; do not probe branch state manually inside the promptkitty-specs/###-feature/Path reference rule: When you mention directories or files, provide either the absolute path or a path relative to the project root (for example, kitty-specs/<feature>/tasks/). Never refer to a folder by name alone.
Before executing any scripts or generating artifacts you must interrogate the specification and stakeholders.
Scope proportionality (CRITICAL): FIRST, assess the feature's complexity from the spec:
User signals to reduce questioning: If the user says "use defaults", "just make it simple", "skip to implementation", "vanilla HTML/CSS/JS" - recognize these as signals to minimize planning questions and use standard approaches.
First response rule:
WAITING_FOR_PLANNING_INPUTIf the user has not provided plan context, keep interrogating with one question at a time.
Conversational cadence: After each reply, assess if you have SUFFICIENT context for this feature's scope. For trivial features, knowing the basic stack is enough. Only continue if critical unknowns remain.
Planning requirements (scale to complexity):
#, Question, Why it matters, and Current insight. Do not render this table to the user.Check planning discovery status:
WAITING_FOR_PLANNING_INPUT. Do not surface the table. Do not run the setup command yet.Resolve feature context deterministically (CRITICAL - prevents wrong feature selection):
kitty-specs/<feature-slug>/...)spec-kitty agent feature setup-plan --json once without --featureavailable_features, stop and resolve one explicit feature slug before continuingSetup: If step 2 did not already return a successful setup payload, run spec-kitty agent feature setup-plan --feature <feature-slug> --json from the repository root and parse JSON for:
result: "success" or error messagefeature_slug: Resolved feature slugspec_file: Absolute path to resolved spec.mdplan_file: Absolute path to the created plan.mdfeature_dir: Absolute path to the feature directorycurrent_branch: branch checked out when planning startedtarget_branch / base_branch (deterministic branch contract for downstream commands)planning_base_branch / merge_target_branch: explicit aliases for planning and merge intentbranch_strategy_summary: canonical sentence describing the branch strategyBefore proceeding, explicitly state to the user:
branch_matches_target says the current branch matches that intended targetExample:
# If detected feature is 020-my-feature:
spec-kitty agent feature setup-plan --feature 020-my-feature --json
Error handling: If the command fails with "Cannot detect feature" or "Multiple features found", verify your feature detection logic in step 2 and ensure you're passing the correct feature slug.
Load context: Read spec_file from setup-plan JSON output and .kittify/constitution/constitution.md if it exists. If the constitution file is missing, skip Constitution Check and note that it is absent. Load IMPL_PLAN template (already copied).
Execute plan workflow: Follow the structure in IMPL_PLAN template, using the validated planning answers as ground truth:
[NEEDS CLARIFICATION: …] only when the user deliberately postpones a decisionSTOP and report: This command ends after Phase 1 planning. Report branch, IMPL_PLAN path, and generated artifacts.
⚠️ CRITICAL: DO NOT proceed to task generation! The user must explicitly run /spec-kitty.tasks to generate work packages. Your job is COMPLETE after reporting the planning artifacts.
Extract unknowns from Technical Context above:
Generate and dispatch research agents:
For each unknown in Technical Context:
Task: "Research {unknown} for {feature context}"
For each technology choice:
Task: "Find best practices for {tech} in {domain}"
Consolidate findings in research.md using format:
Output: research.md with all NEEDS CLARIFICATION resolved
Prerequisites: research.md complete
Extract entities from feature spec → data-model.md:
Generate API contracts from functional requirements:
/contracts/Agent context update:
Output: data-model.md, /contracts/*, quickstart.md, agent-specific file
This command is COMPLETE after generating planning artifacts.
After reporting:
plan.md pathresearch.md path (if generated)data-model.md path (if generated)contracts/ contents (if generated)YOU MUST STOP HERE.
Do NOT:
tasks.mdtasks/ subdirectoriesThe user will run /spec-kitty.tasks when they are ready to generate work packages.
Next suggested command: /spec-kitty.tasks (user must invoke this explicitly)
tools
Ingests repository files into the ChromaDB vector store. Builds or updates the vector index from a manifest or directory scan using ingest.py. Use when new files need to be indexed or the vector store is out of date. <example> user: "Index these new plugin files into the vector database" assistant: "I'll use vector-db-ingest to add them to the vector store." </example> <example> user: "The vector store is missing recent files -- update it" assistant: "I'll use vector-db-ingest to re-index the changes." </example>
data-ai
Removes stale and orphaned chunks from the ChromaDB vector store for files that have been deleted or renamed. Use after files are removed or moved to keep the vector index in sync with the filesystem. <example> user: "Clean up the vector store after I deleted some files" assistant: "I'll use vector-db-cleanup to remove orphaned chunks." </example> <example> user: "The vector database has chunks for files that no longer exist" assistant: "I'll run vector-db-cleanup to prune them." </example>
testing
Audit Vector DB coverage -- compares the live filesystem manifest against the ChromaDB index to identify coverage gaps.
development
3-Phase Knowledge Search strategy for the RLM Factory ecosystem. Auto-invoked when tasks involve finding code, documentation, or architecture context in the repository. Enforces the optimal search order: RLM Summary Scan (O(1)) -> Vector DB Semantic Search -> Grep/Exact Match. Never skip phases.