ALWAYS invoke this skill when setting up a new spec tree or when /authoring detects an empty spx/ directory. NEVER create a spec tree from scratch without this skill.
From spec-treenpx claudepluginhub outcomeeng/claude --plugin spec-treeThis skill is limited to using the following tools:
templates/spx-claude.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Interview the user to understand their product, then scaffold the initial spx/ directory with a product spec, project guide, and top-level node stubs. This is the entry point for new spec-tree projects.
<quick_start>
PREREQUISITE: Check for <SPEC_TREE_FOUNDATION> marker. If absent, invoke /understanding first.
This skill runs when:
/authoring detects no spx/ directory or an empty one/bootstrapping directly</quick_start>
<workflow> <step name="detect">Step 1: Check current state
Glob: "spx/*.product.md"
Glob: "spx/*-*.{enabler,outcome}/"
If a product spec already exists, this is not a bootstrap — redirect to /authoring.
If spx/ doesn't exist or contains no product spec, proceed.
Step 2: Interview the user
Use AskUserQuestion to gather product understanding. Adapt based on what's already known from the conversation.
Round 1 — Product identity:
Round 2 — Product hypothesis:
Round 3 — Scope:
For each candidate, ask whether it delivers user-facing value (outcome) or exists to serve other parts (enabler).
Decision gate: "Ready to scaffold, or want to refine?"
Skip questions where the conversation already provides the answer.
</step> <step name="plan">Step 3: Present the scaffold plan
Before creating anything, show the user what will be created:
Proposed structure:
spx/
├── {product-name}.product.md
├── CLAUDE.md
├── {NN}-{slug}.enabler/
│ ├── {slug}.md
│ └── tests/
├── {NN}-{slug}.outcome/
│ ├── {slug}.md
│ └── tests/
└── ...
Include:
Wait for user confirmation before creating files.
</step> <step name="scaffold">Step 4: Create the scaffold
Create spx/ directory if it doesn't exist.
Write spx/{product-name}.product.md using the template from ${SKILL_DIR}/../understanding/templates/product/product-name.product.md. Fill in:
Write spx/CLAUDE.md from the template at ${SKILL_DIR}/templates/spx-claude.md. Replace {product-name} with the actual product name.
For each top-level node:
spx/{NN}-{slug}.{enabler|outcome}/{slug}.md with hypothesis or enables statement and a placeholder assertiontests/ directoryStep 5: Report and recommend
Summarize what was created:
Recommend next steps:
/authoring"/decomposing"/testing"<failure_modes>
Failure 1: Bootstrapped over an existing tree
Agent ran bootstrapping in a project that already had spx/ with specs. The product spec was overwritten.
How to avoid: Step 1 checks for an existing product spec. If one exists, redirect to /authoring — this is not a bootstrap.
Failure 2: Too many top-level nodes
Agent accepted the user's list of 12 candidate nodes without pushing back. The tree started with too many siblings, making context loading expensive and structure unclear.
How to avoid: During the interview, if the user lists more than 7, ask which ones could be grouped under a parent. The ~7 children heuristic from decomposition-semantics.md applies at every level including the top.
Failure 3: All outcomes, no enablers
Agent created 5 outcome nodes but missed that 3 of them shared a database schema dependency. The shared concern should have been an enabler at a lower index.
How to avoid: After collecting candidate nodes, explicitly ask: "Do any of these share infrastructure or dependencies?" Extract shared concerns as enablers before assigning indices.
</failure_modes>
<success_criteria>
Bootstrapping is complete when:
spx/{product-name}.product.md created with hypothesis and scopespx/CLAUDE.md created from template with product name</success_criteria>