Skip to content

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.

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.

  • Spec Kit >=0.13.0,<0.16.0. Compatibility is tested against 0.13.0, 0.14.4, and 0.15.1.
  • The adr CLI. Install @adrkit/cli globally or in the project, or set ADRKIT_CLI to its entry point.
  • An ADR corpus. Defaults to docs/adr.

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.

adrkit is listed in the Spec Kit community catalog, so this is the idiomatic installation channel:

Terminal window
specify extension add adrkit

Then /speckit.adrkit.context is available in your agent, and /speckit.plan offers the after_plan hook.

The package is also published on npm as @adrkit/spec-kit for programmatic or pinned installs.

  1. Run /speckit.adrkit.context before planning to load the decisions governing the affected paths.
  2. Run /speckit.plan. The optional after_plan hook offers to check the plan; you can also run /speckit.adrkit.check directly.
  3. Run /speckit.adrkit.draft when the plan introduces a decision worth recording.

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.

  • 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.
  • check mutates nothing.
  • Nothing development-only reaches your repo. specify extension add --dev copies the directory verbatim, so .extensionignore keeps the test suite and build config out of your .specify/extensions/. The package declares no dependencies at all, so there is never a node_modules/ to copy.

@adrkit/spec-kit is available from the Spec Kit community catalog and tested against Spec Kit 0.13.0, 0.14.4, and 0.15.1. If you find a compatibility issue, open an issue.

For implementation details, see the @adrkit/spec-kit README.