| name | spec-kit-pinned-cli |
| description | Run Spec Kit through the repo-pinned official CLI and keep the official git extension as the branch workflow source of truth |
| domain | developer-workflow |
| confidence | high |
| source | earned |
Context
Use this when a repo already contains .specify/, .github/prompts/, and other Spec Kit
artifacts, but contributors may have an outdated global specify binary. The goal is to
avoid invisible version drift and keep Spec Kit branch workflow behavior aligned with the
official github/spec-kit tooling the repo expects.
Patterns
Use the repo-pinned wrapper, not a global binary
- Prefer
corepack pnpm speckit -- <command> for day-to-day Spec Kit commands.
- Run
corepack pnpm speckit:setup before maintenance or upgrades to validate the pinned
toolchain and repo wiring.
- Keep the pinned source on an official GitHub release tag, not an unaffiliated package.
Keep Copilot integration official
- Treat
.specify/integration.json and .specify/integrations/ as the source of installed
integration state.
- If Copilot integration needs refreshing, use the pinned CLI path instead of hand-editing
.github/agents/ or .github/prompts/.
- Prefer an explicit upgrade step (
speckit:upgrade:copilot) over silent file rewrites.
Route branch workflow through the official git extension
- Keep the official
git extension enabled in .specify/extensions/.
- Reuse
speckit.git.feature, speckit.git.validate, and speckit.git.commit before
inventing branch naming or checkpoint logic.
- Keep
.specify/extensions.yml consistent with the installed extension registry and hooks.
Examples
package.json exposes speckit, speckit:setup, and speckit:upgrade:copilot.
.specify/scripts/bash/specify.sh pins the official CLI to github/spec-kit@v0.8.0.
.specify/scripts/bash/ensure-spec-kit.sh verifies Copilot integration and the official
Git Branching Workflow extension before Spec Kit maintenance.
Anti-Patterns
- ❌ Running a random global
specify binary against a repo whose Spec Kit files were generated by a newer release.
- ❌ Hand-editing Spec Kit prompt files when the official integration already provides an upgrade path.
- ❌ Duplicating branch numbering logic outside the official
git extension when the repo already has it installed.