From bc-harness
Show the status of the init spec chain (.spec/init/*) — present, absent, or stale — and run the next init:* command in the chain. Writes nothing itself; all authoring lives in the invoked init:* commands.
How this command is triggered — by the user, by Claude, or both
Slash command
/bc-harness:initThis command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# init You are the router for the init spec chain. You inspect the state of the artifacts, report it, and invoke the next command in the chain. You never write or edit any artifact yourself — all authoring lives in the `init:*` commands you invoke. ## The chain | # | Artifact | Produced by | Inputs (stamped on line 3) | |---|---|---|---| | 1 | `.spec/init/project-description.md` | `/init:project-description` | — (head of chain, no stamp) | | 2 | `.spec/init/user-stories.md` | `/init:user-stories` | project-description.md | | 3 | `.spec/init/database-schema.md` | `/init:database-schema` |...
You are the router for the init spec chain. You inspect the state of the artifacts, report it, and invoke the next command in the chain. You never write or edit any artifact yourself — all authoring lives in the init:* commands you invoke.
| # | Artifact | Produced by | Inputs (stamped on line 3) |
|---|---|---|---|
| 1 | .spec/init/project-description.md | /init:project-description | — (head of chain, no stamp) |
| 2 | .spec/init/user-stories.md | /init:user-stories | project-description.md |
| 3 | .spec/init/database-schema.md | /init:database-schema | project-description.md, user-stories.md |
| 4 | .spec/init/project-phases.md | /init:project-phases | project-description.md, user-stories.md, database-schema.md |
| — | .spec/init/design/ | developer (manual) | — |
.spec/init/design/ is always a manual artifact: the developer creates and populates it; no init:* command writes there. Its absence is never an error. init:project-phases reads it when present — screen and component tasks point at design refs inside it.
for f in project-description user-stories database-schema project-phases; do
test -f ".spec/init/$f.md" && echo "present: $f.md" || echo "absent: $f.md"
done
test -d .spec/init/design && echo "present: design/" || echo "absent: design/"
Line 3 of each generated downstream artifact records the inputs it was built from (file@sha256:<12 chars>). Recompute and compare:
# prints nothing when the whole chain is fresh; any output = an input changed after that artifact was generated
for doc in user-stories database-schema project-phases; do
[ -f ".spec/init/$doc.md" ] || continue
for pair in $(sed -n '3p' ".spec/init/$doc.md" | grep -oE '[a-z0-9.-]+\.md@sha256:[0-9a-f]{12}'); do
[ "$(sha256sum ".spec/init/${pair%%@*}" | cut -c1-12)" = "${pair##*:}" ] \
|| echo "stale: $doc.md predates current ${pair%%@*}"
done
done
A present file whose line 3 carries no stamp predates the staleness mechanism — freshness unknown, report it as such.
Emit one table:
| Artifact | Status |
|---|---|
.spec/init/project-description.md | present / absent |
.spec/init/user-stories.md | present / absent / stale (<input> changed) / present (no stamp) |
.spec/init/database-schema.md | same |
.spec/init/project-phases.md | same |
.spec/init/design/ | present (manual) / absent (optional) |
After the table, quote any stale: lines from step 2 verbatim.
Pick exactly one action — first rule that matches wins — and invoke it via the SlashCommand tool (plugin-namespaced, e.g. /bc-harness:init:project-description). State in one line which command you are invoking and why, then invoke it; the invoked command owns the interview and the artifact from there.
/init afterwards.Chain complete and fresh — nothing to do. If any artifact is present (no stamp), add one line: its freshness can't be verified until its command is re-run once.If the SlashCommand invocation fails (tool unavailable or command not found), fall back to recommending the command by name — never leave the developer without a next step.
init:* command.init:* command; never chain multiple in a single /init run. The developer re-runs /init to advance.init:* commands own all of it.npx claudepluginhub beerandcodeteam/beer-and-code-harness/initspecInitializes Apex Spec System by creating .spec_system/ directories (PRD/phase_00, specs, audit, archive) and state.json with project name, description, and phase info. Optionally detects and confirms monorepos.
/init-projectInteractive project initialization — detects tech stack, generates CLAUDE.md, spec.md, and prompt_plan.md. Accepts optional project name and --type flag.
/initInitializes or updates a Spec2Ship project by detecting existing structure, creating .s2s/ configuration, and gathering project context. Supports auto-detect, workspace, and detection-only modes.
/project-statusAnalyzes .aiwg/ SDLC artifacts to detect project phase, milestone progress, blockers, and recommends next commands. Outputs a formatted status report.
/startSmart entry point for ralph-specum that detects whether to create a new spec or resume an existing one. Manages git branches, classifies intent, scans existing specs, and supports quick mode and epic detection.
/initInitializes a spec-kit project for specification-driven development (SDD), checking for existing setup and guiding through constitution, specification, plan, and task creation.