feat(spec-kit): verify and widen upstream pin to >=0.13.0,<1.1.0 - #198
Conversation
Re-verified per ADR-0019's standard: the upstream extension API reference changed only additively from 0.13.0 through 1.0.4 (byte-identical from 0.16.5 through 1.0.4) and the loader removed nothing the extension uses. The extension was installed and rendered on 0.16.5, 1.0.0, and 1.0.4 with after_plan registering optional:true and no development files deposited; the previous <0.16.0 pin provably rejects 1.0.4 (negative control). Recorded, not repaired: 1.0.x renders extension commands as agent skills (.github/skills/speckit-adrkit-*) on the Copilot integration. @adrkit/spec-kit 0.1.3 -> 0.1.4. Dogfood matrix legs (0.13.0/0.14.4/ 0.15.1) unchanged; adding 1.0.x legs there is the recorded follow-up. Signed-off-by: Mark Beacom <7315957+mbeacom@users.noreply.github.com> Signed-off-by: HJXArthurAtlas <89914027+HJXArthurAtlas@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The adapter version bump leaves bun.lock’s workspace version stale and AGENTS.md still contains an outdated top-level spec-kit version reference, so the repo state is internally inconsistent after the change.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR re-verifies @adrkit/spec-kit compatibility against newer upstream Spec Kit releases and widens the extension manifest pin from >=0.13.0,<0.16.0 to >=0.13.0,<1.1.0, releasing the adapter as 0.1.4 (with both version fields kept in sync).
Changes:
- Widen Spec Kit compatibility range to
>=0.13.0,<1.1.0across the extension manifest and associated docs. - Bump
@adrkit/spec-kitversion from 0.1.3 → 0.1.4 (manifest + npm package), and update/extend verification notes in docs. - Update changelog and repository documentation to reflect the widened pin and re-verification.
File summaries
| File | Description |
|---|---|
| README.md | Updates the advertised Spec Kit compatibility bound. |
| packages/adapters/spec-kit/test/packaging.test.ts | Updates test commentary to reflect upstream versions supporting .extensionignore. |
| packages/adapters/spec-kit/test/manifest.test.ts | Updates the asserted speckit_version bound and accompanying rationale. |
| packages/adapters/spec-kit/README.md | Updates documented requirements and compatibility claims for the widened pin. |
| packages/adapters/spec-kit/package.json | Bumps @adrkit/spec-kit to 0.1.4. |
| packages/adapters/spec-kit/extension.yml | Bumps extension version to 0.1.4 and widens speckit_version to <1.1.0. |
| docs/reference-verification-spec-kit-extension.md | Adds a dated re-verification addendum for the pin widening. |
| docs/adr/0019-ship-the-spec-kit-extension-treating-the-spike-no-go-as-a-measurement-artifact.md | Records the pin-widening re-verification as an ADR addendum. |
| CHANGELOG.md | Adds an Unreleased entry documenting the pin widening and re-verification evidence. |
| AGENTS.md | Updates the Spec Kit extension section to the new pin and version (but see review comments). |
Review details
- Files reviewed: 10/10 changed files
- Comments generated: 2
- Review effort level: Lite
There was a problem hiding this comment.
🟡 Changes recommended
The lockfile version and several current compatibility references remain stale.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Suppressed comments (1)
packages/adapters/spec-kit/package.json:3
- The package version is now
0.1.4, but the committed workspace entry remains0.1.3inbun.lock:30-33. Bun does not refresh workspace version fields automatically (docs/RELEASING.md:701-709), so this leaves repository tooling with contradictory package metadata. Update that lockfile entry as part of this bump.
"version": "0.1.4",
- Files reviewed: 10/10 changed files
- Comments generated: 1
- Review effort level: Balanced
Copilot review on mbeacom#198 caught three leftovers from the version bump: bun.lock's workspace entry, AGENTS.md's top-level status blurb, and the site docs plus plan.md still advertising the pre-widening pin. Sync all of them; historical records (CHANGELOG's 0.13.0 entry, the evidence index's 2026-08 matrix row) intentionally keep the old bound. Signed-off-by: HJXArthurAtlas <89914027+HJXArthurAtlas@users.noreply.github.com>
bb9842e accidentally committed Mac-built packages/ci/dist artifacts produced by running the full build locally. The bundles are unchanged by this PR's scope; restoring them to main leaves the gate surface untouched and no acknowledgment needed. Signed-off-by: HJXArthurAtlas <89914027+HJXArthurAtlas@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
Spec Kit 1.0.5 is admitted without recorded verification, and documentation/status inconsistencies remain.
Review details
Suppressed comments (3)
AGENTS.md:8
- This status sentence says the
0.1.4adapter is already published, but this PR explicitly leaves thespec-kit-v0.1.4tag/npm/catalog release for a later maintainer step. Until that release happens, the project memory reports a version to consumers that is not available; keep the published version at 0.1.3 here or mark 0.1.4 as pending.
the independently versioned `@adrkit/spec-kit` Spec Kit extension (0.1.4); the
docs/adr/0019-ship-the-spec-kit-extension-treating-the-spike-no-go-as-a-measurement-artifact.md:302
- The new active range leaves earlier current ADR text stale:
docs/adr/0019-ship-the-spec-kit-extension-treating-the-spike-no-go-as-a-measurement-artifact.md:221still says the extension is pinned to a single upstream minor and breaks on the next minor, while line 243 still records<0.16.0as the widened bound. With this change the range spans 0.13 through 1.0; please update those statements or mark them historical so the accepted decision does not describe a different contract.
The bound is widened to `>=0.13.0,<1.1.0`, verified at 0.13.0, 0.14.4, 0.15.1
(the standing dogfood matrix), 0.16.5, 1.0.0, and 1.0.4 (this addendum's
install runs). Past 1.0 remains a re-verification, not a bump.
packages/adapters/spec-kit/extension.yml:30
- This specifier also admits Spec Kit 1.0.5, but the re-verification recorded in
docs/reference-verification-spec-kit-extension.md:174and this ADR's evidence table only reaches 1.0.4. Because this manifest defines the upper bound as a verification boundary,<1.1.0currently advertises an already-released, unverified upstream patch. Please verify/render 1.0.5 and update the evidence/support lists, or choose a bound that excludes it.
speckit_version: ">=0.13.0,<1.1.0"
- Files reviewed: 12/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
…tes (#203) docs(spec-kit): verify 1.0.5/1.0.6 and close the release's open review notes PR #198 widened the Spec Kit pin to `>=0.13.0,<1.1.0` and moved `@adrkit/spec-kit` to 0.1.4, but merged with Copilot's final review still open on three points. Two were documentation sweeps already fixed before the merge; the third was substantive and is fixed here. The pin's whole justification is that its upper bound is a verification boundary rather than a guess. `<1.1.0` admitted 1.0.5 — released at the time, and unverified — and 1.0.6 shipped after. Re-verified on the same maintainer-session terms as the 2026-09-09 addendum: - `extensions/EXTENSION-API-REFERENCE.md` is byte-identical at v1.0.4, v1.0.5, and v1.0.6 (896 lines, SHA-256 `cb037d69fe62c7d8…`). - The loader's only change 1.0.4 → 1.0.5 widens the `__SPECKIT_COMMAND_*__` placeholder class to admit hyphens — strictly more permissive. 1.0.5 → 1.0.6 passes `extension.author` into skill generation through `.get()`. `.extensionignore` handling and `SpecifierSet` parsing are untouched by both. - `specify extension add --dev` on 1.0.5 and 1.0.6 (PyPI, Python 3.12): exit 0, three commands and three skills registered, `after_plan` recorded `optional: true`, and no `test/`, `tsconfig.json`, `package.json`, or `node_modules/` in the installed tree. The sampling rule is now explicit in the manifest, the ADR, and the evidence index, because leaving it implicit is what produced the hole: the bound is verified at minor granularity, so a later 1.0.x patch does not reopen this and 1.1.0 is where the gate fires. Also recorded, not repaired: the 2026-09-09 "installed tree carries only …" row omitted the loader's own `.specify-dev/` staging directory, which a `--dev` install has generated since at least 1.0.4; and 1.0.6 credits `extension.author` in generated skill metadata where 1.0.4 emitted `github-spec-kit`. Two stale "current" statements in ADR-0019 are corrected: the Trade-offs paragraph described a pin to a single upstream minor, and action item 3 still recorded `<0.16.0` as the widened bound. Both now point at the addenda instead of contradicting them. `docs/RELEASING.md`'s adapter recipe showed a lightweight `git tag` while every adapter tag ever pushed is annotated and the lockstep recipe uses `-a`. Schema untouched. `packages/ci` untouched. 2812 pass, 0 fail, 1 skip; typecheck, build, lint, and the changelog/doc-pin/site-grammar/deps/ freeze-hash gates pass, and `adr lint` reports 37 records clean. Claude-Session: https://claude.ai/code/session_01UHoVZxZp529qJg1mgwJqxZ Signed-off-by: Mark Beacom <m@beacom.dev>
What and why
Spec Kit shipped
0.16.0–0.16.5and its first majors1.0.0–1.0.5after the 2026-08-01 pin re-verification, so the manifest's declared>=0.13.0,<0.16.0bound now fails loud on current upstream — exactly as ADR-0019 designed. ADR-0019 defines widening the pin as a re-verification, not a version bump. This PR performs that re-verification and widens the bound to>=0.13.0,<1.1.0.@adrkit/spec-kitmoves 0.1.3 → 0.1.4 (both version fields together, per the agreement test).Re-verification evidence
extensions/EXTENSION-API-REFERENCE.md: frozen9a30db48(0.13.0) →v0.16.5→v1.0.4v0.16.5vsv1.0.4byte-identical (896 lines, empty diff). The additions areprovides.templates/provides.scriptsand a relaxed "at least one of commands/templates/scripts/hooks/events" rule that a manifest providing commands and hooks already satisfies.src/specify_cli/extensions/__init__.py:v0.15.1→v0.16.5→v1.0.4.extensionignore(gitignore semantics) andSpecifierSetversion parsing are unchanged.0.16.5(PyPI),1.0.0(git tagv1.0.0; never published to PyPI),1.0.4(PyPI), Python 3.12after_planregisteredoptional: true; the installed tree carries onlyLICENSE,NOTICE,README.md,commands/,extension.yml,scripts/—.extensionignorestill excludes the test suite andtsconfig.json.<0.16.0on1.0.4Recorded rendering change (not repaired)
On 1.0.x with the Copilot integration, extension commands render as agent skills under
.github/skills/speckit-adrkit-*— the same surface upstream's own commands use — instead of.github/agents/and.github/prompts/files. All three commands register; invocation follows upstream's skills-mode convention. Recorded in the ADR addendum and the evidence index.Checklist
git commit -s).packages/ciuntouched.manifest.test.ts's pin assertion failed against the updated manifest until the assertion was moved with it (ADR-0016).bun run typecheck && bun run build && bun test && bun run lintpass: 2812 tests pass, 0 fail, 1 skip.Notes for reviewers
mbeacom/adrkit-t018-dogfood) still exercises0.13.0/0.14.4/0.15.1. Adding0.16.5/1.0.0/1.0.4legs there is the recorded follow-up (ADR-0019 addendum, 2026-09-09, anddocs/reference-verification-spec-kit-extension.md) — this PR's install runs are maintainer-session evidence, deliberately not claimed as a rung-2 matrix extension.spec-kit-v0.1.4tag perdocs/RELEASING.md); the release step is intentionally left to the maintainer.README.md:413carries an MD060 markdownlint complaint that is present onmainwith this branch's changes stashed; left untouched.