Spec Kit extension
Spec Kit takes you from specify to
plan to tasks to implement. What it does not do is check the plan it just
produced against the decisions your organization already made, or record the new
decisions that plan contains. Every feature starts from an empty context and
re-litigates settled questions.
@adrkit/spec-kit closes that loop, without leaving git.
What it adds
Section titled “What it adds”| Command | What it does | Writes |
|---|---|---|
/speckit.adrkit.context |
Pulls the decisions governing the paths you’re about to touch — including superseded and rejected ones — into context before you plan | no |
/speckit.adrkit.check |
Checks a produced plan against the decisions that govern it, routing through the deterministic Pass 0 evaluator when a snapshot bundle is configured | no |
/speckit.adrkit.draft |
Scaffolds a draft ADR from the current plan artifact for you to fill in | one new record |
The optional after_plan hook offers to run /speckit.adrkit.check after
/speckit.plan.
Requirements
Section titled “Requirements”- Spec Kit
>=0.13.0,<1.2.0. Compatibility is tested against 0.13.0, 0.14.4, 0.15.1, 0.16.5, 1.0.0, 1.0.4–1.0.6, 1.0.13, and 1.1.0–1.1.3. - The
adrCLI. Install@adrkit/cliglobally or in the project, or setADRKIT_CLIto its entry point. - An ADR corpus. Defaults to
docs/adr.
Install
Section titled “Install”Spec Kit discovers extensions under .specify/extensions/, and only
specify extension add writes there — so installation goes through Spec Kit,
not through your package manager.
Install from the release archive, which carries the version in its URL:
specify extension add adrkit \ --from https://github.com/mbeacom/adrkit/releases/download/spec-kit-v0.1.5/adrkit.zipSpec Kit asks before installing from a URL (⚠ Untrusted Source …
Continue with installation? [y/N]). There is no --yes, and --force does
not skip the question; with no answer on stdin the install aborts with exit 1.
In a script or CI job, pipe the answer in:
printf 'y\n' | specify extension add adrkit \ --from https://github.com/mbeacom/adrkit/releases/download/spec-kit-v0.1.5/adrkit.zipFor local extension development:
specify extension add --dev path/to/packages/adapters/spec-kitadrkit is listed in the
Spec Kit community catalog,
but that catalog is discovery-only: specify extension add adrkit finds the
entry and refuses to install from it, on every Spec Kit version measured from
0.13.0 to 1.1.3.
Then the commands are available in your agent, and Spec Kit’s plan command
offers the after_plan hook.
Command names in your agent
Section titled “Command names in your agent”The extension declares dotted command ids (speckit.adrkit.check). What you
type depends on how Spec Kit registers commands for your agent:
| Integration | What Spec Kit writes | You type |
|---|---|---|
| Claude Code, every Spec Kit version measured (0.13.0 to 1.1.3) | .claude/skills/speckit-adrkit-*/ |
/speckit-adrkit-check, /speckit-plan |
| GitHub Copilot, Spec Kit 0.16.5 and later | .github/skills/speckit-adrkit-*/ |
/speckit-adrkit-check, /speckit-plan |
| GitHub Copilot, Spec Kit 0.13.0 to 0.15.1 | .github/prompts/speckit.adrkit.*.prompt.md |
/speckit.adrkit.check, /speckit.plan |
This page uses the dotted ids. Where your agent uses skills, read each dot as a
hyphen. The after_plan hook works under both: Spec Kit records it as
speckit.adrkit.check, and its generated plan skill tells the agent to replace
dots with hyphens when it offers the hook.
The package is also published on npm as
@adrkit/spec-kit for
programmatic or pinned installs.
Use it in the plan loop
Section titled “Use it in the plan loop”- Run
/speckit.adrkit.contextbefore planning to load the decisions governing the affected paths. - Run
/speckit.plan. The optionalafter_planhook offers to check the plan; you can also run/speckit.adrkit.checkdirectly. - Run
/speckit.adrkit.draftwhen the plan introduces a decision worth recording.
Configuration
Section titled “Configuration”The extension works without additional configuration. Override its defaults with environment variables when needed.
| Variable | Default | Meaning |
|---|---|---|
ADRKIT_DIR |
docs/adr |
ADR corpus directory |
ADRKIT_CLI |
resolved | Explicit path to the adr entry point |
ADRKIT_FEATURE_DIR |
resolved | Override Spec Kit’s own feature resolution |
ADRKIT_SNAPSHOT |
unset | Snapshot bundle enabling the deterministic evaluator |
ADRKIT_AS_OF |
today, UTC | Evaluation date |
The CLI is resolved in a fixed order: ADRKIT_CLI, then
./node_modules/.bin/adr, then adr on PATH. No branch of that reaches the
network — a missing CLI is reported, never fetched.
What is guaranteed
Section titled “What is guaranteed”- The hook is never mandatory. A mandatory hook fires without consent; this one renders as an optional prompt.
- Failures name what is missing. “0 decisions govern this” and “I could not see the corpus” never render as the same string, so no command exits 0 having found nothing because it was looking in the wrong place.
checkmutates nothing.- Nothing development-only reaches your repo.
specify extension add --devcopies the directory verbatim, so.extensionignorekeeps the test suite and build config out of your.specify/extensions/. The package declares no dependencies at all, so there is never anode_modules/to copy.
Compatibility and support
Section titled “Compatibility and support”@adrkit/spec-kit is listed in the Spec Kit community catalog, installs from
its release archive, and is tested against Spec Kit 0.13.0, 0.14.4, 0.15.1,
0.16.5, 1.0.0, 1.0.4–1.0.6, 1.0.13, and 1.1.0–1.1.3. If you find a compatibility issue, open an issue.
For implementation details, see the
@adrkit/spec-kit README.