Extension ID
companion
Extension Name
SpecKit Companion
Version
0.20.2
Description
Live spec-driven progress for SpecKit Companion — lifecycle capture, status, resume, living specs, and composable commands you can customize with hooks and recipes.
Author
alfredoperez
Repository URL
https://github.com/alfredoperez/speckit-companion
Download URL
https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.20.2/companion-0.20.2.zip
License
MIT
Homepage (optional)
https://github.com/alfredoperez/speckit-companion/tree/main/speckit-extension
Documentation URL (optional)
https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/README.md
Changelog URL (optional)
https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/CHANGELOG.md
Required Spec Kit Version
=0.9.5
Required Tools (optional)
Number of Commands
18
Number of Hooks (optional)
4
Tags
vscode, progress, living-specs, drift, hooks
Key Features
- Lifecycle capture — every spec-kit step records into a per-spec
.spec-context.json with an append-only history, so a GUI or a teammate can see exactly where a spec stands without asking.
- Status and resume — print the current step, status, recorded decisions, and next action; resume the pipeline from that point with those decisions back in scope.
- Living specs (opt-in) — durable per-capability specs that load into context before drafting and fold back on completion, plus drift reporting, requirement-to-test coverage, a brownfield adoption wizard, and one-pass sync from your working tree.
- Composable commands — every command is assembled from nodes; a project attaches shell commands, instructions, or reusable node files before or after any node without forking a command.
- Hands-off runs — one command drives specify through mark-complete with no approval pauses, signalling checkpoint hooks to record and continue rather than wait.
- Right-sized ceremony — a routing step classifies each change small, normal, or oversized and fast-tracks the small ones, defaulting to the full pipeline whenever the signals are weak.
- Honest timing — every phase stamps a real start and end, and derived timings declare whether they were genuinely measured or journaled after the fact.
- A terminal
mark-complete step that stock spec-kit lacks, so a finished spec lands at completed instead of stopping at implemented.
Testing Checklist
Submission Requirements
Testing Details
Verified on macOS (Darwin 25.6.0) with spec-kit CLI 0.12.16.dev0, from a genuinely fresh environment rather than a copied install.
Ran a real specify init into a clean sandbox, ran the constitution step before the extension was installed (no hooks registered yet, and the pre-execution check correctly stayed silent), then installed v0.20.2 from the published release archive. specify extension list reported SpecKit Companion v0.20.2 with 18 commands and 4 hooks, enabled.
Exercised the status flow in four states: no spec at all (degrades cleanly, exits 0 with a clear message), a captured specify step (reports source: state, current step, status, and the next action), and the derive-from-files fallback both before and after a task list exists.
Also dogfooded on this extension's own repository, and covered by 554 automated tests in the extension's test suite.
Example Usage
# Install (version-pinned)
specify extension add companion --from https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.20.2/companion-0.20.2.zip
# Run the pipeline; every step captures into .spec-context.json
/speckit.companion.specify Add priority levels to todos
/speckit.companion.plan
/speckit.companion.tasks
/speckit.companion.implement
/speckit.companion.mark-complete
# Or run the whole thing hands-off, no approval pauses
/speckit.companion.auto Add priority levels to todos
# See where any spec stands, and pick it back up
/speckit.companion.status
/speckit.companion.resume
Proposed Catalog Entry
{
"companion": {
"name": "SpecKit Companion",
"id": "companion",
"description": "Live spec-driven progress for SpecKit Companion — lifecycle capture, status, resume, living specs, and composable commands you can customize with hooks and recipes.",
"author": "alfredoperez",
"version": "0.20.2",
"download_url": "https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.20.2/companion-0.20.2.zip",
"repository": "https://github.com/alfredoperez/speckit-companion",
"homepage": "https://github.com/alfredoperez/speckit-companion/tree/main/speckit-extension",
"documentation": "https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/README.md",
"changelog": "https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/CHANGELOG.md",
"license": "MIT",
"category": "process",
"effect": "read-write",
"requires": {
"speckit_version": ">=0.9.5",
"tools": [
{
"name": "python3",
"required": false
}
]
},
"provides": {
"commands": 18,
"hooks": 4
},
"tags": [
"vscode",
"progress",
"living-specs",
"drift",
"hooks"
],
"verified": false,
"downloads": 0,
"stars": 0,
"created_at": "2026-06-11T00:00:00Z",
"updated_at": "2026-08-20T00:00:00Z"
}
}
Additional Context
This is an update to an existing catalog entry, not a new listing. The entry is currently pinned at 0.11.0; we ship 0.20.2.
Filed as a submission issue per EXTENSION-PUBLISHING-GUIDE.md ("to update an extension that is already in the catalog, file a new [Extension Submission] issue"). This supersedes PR #3937, which I opened by mistake and which was closed with a pointer to this template — apologies for the noise, and thanks for the redirect.
Previous submission: #2926 (the original listing).
Changed since 0.11.0: version and download URL, provides.commands 13 → 18, requires.speckit_version re-synced from the manifest, a description that now mentions living specs, and a tag set trimmed to 5 that drops the near-duplicate status/resume pair and the vague configurable/extensible in favour of what the extension actually does. category is proposed to move visibility → process, since the extension now drives the pipeline (hands-off runs, right-sizing, living-spec folding) rather than only reporting on it — happy to leave it at visibility if you'd rather.
verified, downloads, stars, and created_at are carried through untouched.
Release: https://github.com/alfredoperez/speckit-companion/releases/tag/speckit-ext-v0.20.2
Extension ID
companion
Extension Name
SpecKit Companion
Version
0.20.2
Description
Live spec-driven progress for SpecKit Companion — lifecycle capture, status, resume, living specs, and composable commands you can customize with hooks and recipes.
Author
alfredoperez
Repository URL
https://github.com/alfredoperez/speckit-companion
Download URL
https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.20.2/companion-0.20.2.zip
License
MIT
Homepage (optional)
https://github.com/alfredoperez/speckit-companion/tree/main/speckit-extension
Documentation URL (optional)
https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/README.md
Changelog URL (optional)
https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/CHANGELOG.md
Required Spec Kit Version
Required Tools (optional)
Number of Commands
18
Number of Hooks (optional)
4
Tags
vscode, progress, living-specs, drift, hooks
Key Features
.spec-context.jsonwith an append-only history, so a GUI or a teammate can see exactly where a spec stands without asking.mark-completestep that stock spec-kit lacks, so a finished spec lands atcompletedinstead of stopping atimplemented.Testing Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Verified on macOS (Darwin 25.6.0) with spec-kit CLI 0.12.16.dev0, from a genuinely fresh environment rather than a copied install.
Ran a real
specify initinto a clean sandbox, ran the constitution step before the extension was installed (no hooks registered yet, and the pre-execution check correctly stayed silent), then installed v0.20.2 from the published release archive.specify extension listreported SpecKit Companion v0.20.2 with 18 commands and 4 hooks, enabled.Exercised the status flow in four states: no spec at all (degrades cleanly, exits 0 with a clear message), a captured specify step (reports
source: state, current step, status, and the next action), and the derive-from-files fallback both before and after a task list exists.Also dogfooded on this extension's own repository, and covered by 554 automated tests in the extension's test suite.
Example Usage
Proposed Catalog Entry
{ "companion": { "name": "SpecKit Companion", "id": "companion", "description": "Live spec-driven progress for SpecKit Companion — lifecycle capture, status, resume, living specs, and composable commands you can customize with hooks and recipes.", "author": "alfredoperez", "version": "0.20.2", "download_url": "https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.20.2/companion-0.20.2.zip", "repository": "https://github.com/alfredoperez/speckit-companion", "homepage": "https://github.com/alfredoperez/speckit-companion/tree/main/speckit-extension", "documentation": "https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/README.md", "changelog": "https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/CHANGELOG.md", "license": "MIT", "category": "process", "effect": "read-write", "requires": { "speckit_version": ">=0.9.5", "tools": [ { "name": "python3", "required": false } ] }, "provides": { "commands": 18, "hooks": 4 }, "tags": [ "vscode", "progress", "living-specs", "drift", "hooks" ], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-06-11T00:00:00Z", "updated_at": "2026-08-20T00:00:00Z" } }Additional Context
This is an update to an existing catalog entry, not a new listing. The entry is currently pinned at
0.11.0; we ship0.20.2.Filed as a submission issue per EXTENSION-PUBLISHING-GUIDE.md ("to update an extension that is already in the catalog, file a new [Extension Submission] issue"). This supersedes PR #3937, which I opened by mistake and which was closed with a pointer to this template — apologies for the noise, and thanks for the redirect.
Previous submission: #2926 (the original listing).
Changed since
0.11.0: version and download URL,provides.commands13 → 18,requires.speckit_versionre-synced from the manifest, a description that now mentions living specs, and a tag set trimmed to 5 that drops the near-duplicatestatus/resumepair and the vagueconfigurable/extensiblein favour of what the extension actually does.categoryis proposed to movevisibility→process, since the extension now drives the pipeline (hands-off runs, right-sizing, living-spec folding) rather than only reporting on it — happy to leave it atvisibilityif you'd rather.verified,downloads,stars, andcreated_atare carried through untouched.Release: https://github.com/alfredoperez/speckit-companion/releases/tag/speckit-ext-v0.20.2