Sync /spec-kit commands against upstream specify-cli 0.15.2.dev0 drift #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why:
/spec-kit:initand/spec-kit:helpdocument an invocation shape that no longer matches the currently-installed upstreamspecify-cli(installed viauv tool install specify-cli --from git+https://github.com/github/spec-kit.git, resolved today to0.15.2.dev0). Anyone following the plugin's current instructions verbatim in a non-interactive Claude Code session hits two hard failures in a row before spec-kit is even installed.Repro: ran
/spec-kit:initin a fresh repo (oracle-adb-backend) on 2026-08-02.Observed drift (this is upstream
github/spec-kitCLI drift the plugin needs to re-sync against — not a one-off local misconfiguration):--ai claudeis no longer a valid flag.specify init --ai claude --here(as documented) errors withNo such option: --ai. The correct flag perspecify init --helpis--integration claude..claude/commands/(/speckit.specify,/speckit.plan, etc. as the walkthrough describes) — they are now dash-separated skills under.claude/skills/:speckit-constitution,speckit-specify,speckit-clarify,speckit-plan,speckit-tasks,speckit-analyze,speckit-checklist,speckit-implement,speckit-converge,speckit-taskstoissues. Two of these (speckit-converge,speckit-checklist) aren't mentioned in the plugin docs at all —speckit-checklistgenerates checklists,speckit-convergeassesses the codebase and appends remaining work as tasks.specify init --herenow prompts for confirmation ("Current directory is not empty... continue? [y/N]"). In a non-interactive session this errors out entirely requiring--force— the plugin's documented example commands don't mention--force.Acceptance:
/spec-kit:initcommand script uses--integration claudeinstead of--ai claude/spec-kit:initpasses--force(or otherwise handles the non-empty-dir prompt) for non-interactive--hereruns/spec-kit:help(and any other doc referencing invocation) uses dash-separated/speckit-*skill names instead of dot-separated/speckit.*command namesspeckit-convergeandspeckit-checklist, if judged worth surfacingLinks: upstream CLI is
github/spec-kit; drift observed againstspecify-cli 0.15.2.dev0.Fixed in 4dc139e..9bd6d16 (main):
/spec-kit:initnow runsspecify init --integration claude --here --force;/spec-kit:help, thespec-kit-workflowSKILL, andreferences/phases.mdnow use dash-separated/speckit-*skill names and reference.claude/skills/speckit-*/SKILL.mdinstead of.claude/commands/speckit.*.md.speckit-convergeandspeckit-checklistwere already documented inphases.md(just under the old dot-separated names), so no new content was needed there beyond the rename. Bumped plugin.json to 1.3.2.Sharper root cause, confirmed live: typing
/speckit-constitutiongives "Unknown command" — not just a naming mismatch.specify init --integration claude(current upstream) writes.claude/skills/speckit-constitution/SKILL.md, etc. — Skills, not slash commands. In Claude Code, only files under.claude/commands/*.mdregister as/nameinvocable commands;.claude/skills/*/SKILL.mdare auto-triggered by the model from their description, or invoked via theSkilltool — there is no/speckit-constitutionto type at all with this install, by design.So the fix isn't just correcting
/speckit.specify→/speckit-specifyin the docs — it's explaining that these are now Skills invoked by describing intent in plain language (e.g. "establish the project constitution"), not slash commands. Might be worth the plugin also generating thin.claude/commands/speckit-*.mdwrapper files (each just invoking the corresponding skill) if slash-command ergonomics are wanted, since users following any spec-kit walkthrough will instinctively try to type/speckit-specifyand hit this same wall.