You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This updates an existing catalog entry; it is not a new submission. The archive extension is in extensions/catalog.community.json at version 1.3.0, and this bumps it to 1.4.0. Four fields change: version, download_url, stars and updated_at. Everything else stays as it is, including the description, category, effect, tags and the >=0.14.0 version floor. All 1.4.0 changes are prompt text, so the floor does not move.
Extension ID
archive
Extension Name
Archive Extension
Version
1.4.0
Description
Archive merged features into main project memory, resolving gaps and conflicts.
None. The extension is a single command file. Apart from the check-prerequisites script that Spec Kit already ships, it runs no tools of its own.
Number of Commands
1
Number of Hooks (optional)
0
Tags
archive, memory, merge, changelog
Key Features
Consolidates a merged feature's spec, plan and technical debt into .specify/memory/, folding duplicates into existing entries instead of appending a digest per feature
Item-level [Source: specs/007-invoice/spec.md -> FR-012] traceability, with one ref per contributing feature
Detects requirements that a later feature supersedes and asks before deleting anything; retired IDs are recorded, never reissued, and (new in 1.4.0) a retired requirement does not come back when its feature is archived again
Checks each feature against the project constitution and keeps three cases apart: a conflict, an unmet obligation, and a rule that cannot be verified by reading artifacts
Runs before_archive / after_archive hooks under core's hook rules (new in 1.4.0: a missing enabled field counts as enabled, an unreadable extensions.yml is reported, mandatory hooks are actually invoked)
Updates every agent context file the agent-context extension manages, respects its configured markers, and never writes inside a tool-managed block
Testing Checklist
Extension installs successfully via download URL
All commands execute without errors
Documentation is complete and accurate
No security vulnerabilities identified
Tested on at least one real project
Submission Requirements
Valid extension.yml manifest included
README.md with installation and usage instructions
LICENSE file included
GitHub release created with version tag
All command files exist and are properly formatted
Extension ID follows naming conventions (lowercase-with-hyphens)
Testing Details
Install: smoke-tested with specify extension add --dev on Spec Kit 1.0.13. The command registers and renders correctly for claude (bash scripts) and codex (Python scripts, skills mode), and no __SPECKIT_COMMAND_*__ token is left unresolved. The tag archive resolves and contains a manifest at version 1.4.0, and the GitHub release is published (not a draft or prerelease). On 1.0.13 the generic integration does not register extension commands; #4785 fixed that after the release, and on main it registers correctly.
Fixture harness: the repository carries a synthetic Spec Kit project under tests/fixture/. Each case runs in a fresh agent that gets only commands/archive.md and its own working copy, and may not read the expectations, the baselines, the changelog or git history. Each round's expectations are committed before its runs, and every result is checked against the files the run actually wrote. For 1.4.0 there were three rounds (7, 7b and 7c), recorded in BASELINE-v1.4.0.md. They cover retirement chains, renumbered IDs, multi-ref RETIRED: lines, mandatory hooks running in order, and a failing mandatory hook stopping the run. A mandatory control case reproduces the earlier result.
Review: two six-model reviews ran over the release branch, and their findings were fixed and re-tested before the release.
Real-project testing: as in earlier submissions, v1.1.0 was verified end to end on stn1slv/Overtype@15cddd1, and another user field-tested v1.1.1 on an eight-feature project (issue #3). v1.4.0 itself has not been re-run on an external live project; its behavioural verification is the fixture harness above.
The extension writes only Markdown under .specify/memory/, the project's agent context files, and the archived feature's own **Status** field. It runs no code, makes no network calls, and needs no credentials.
Example Usage
# Install (add --force when upgrading an existing install)
specify extension add archive --from https://github.com/stn1slv/spec-kit-archive/archive/refs/tags/v1.4.0.zip --force
# Archive a merged feature into project memory, after its PR is merged
/speckit.archive.run specs/007-invoice-settings
# Restrict scope if desired
/speckit.archive.run specs/007-invoice-settings --spec-only
# Free-form guidance, as in the core commands
/speckit.archive.run specs/007-invoice-settings Pay extra attention to the entity model.
1.4.0 fixes two defects that the 1.3.0 baseline recorded as open, and brings hook handling in line with core:
Retired requirements stay retired. Re-archiving a feature could bring back requirements that a later feature had retired, under new IDs. A new step reads the changelog's RETIRED: lines and leaves such an item out, but only when its content agrees with the retirement, because feature-local IDs move when specs are renumbered.
Idempotency per artifact. "Already merged" now suppresses duplicates only; missing sections are still completed.
Hooks follow core's rules. The extension-defined before_archive / after_archive events now use core's hook wording and defaults.
The README also gained sections on when to run the command (after merge, not as a workflow step) and on how archived memory can reach later specify and plan runs, which is a frequent question in #152 and #620.
Note
This updates an existing catalog entry; it is not a new submission. The
archiveextension is inextensions/catalog.community.jsonat version 1.3.0, and this bumps it to 1.4.0. Four fields change:version,download_url,starsandupdated_at. Everything else stays as it is, including the description, category, effect, tags and the>=0.14.0version floor. All 1.4.0 changes are prompt text, so the floor does not move.Extension ID
archive
Extension Name
Archive Extension
Version
1.4.0
Description
Archive merged features into main project memory, resolving gaps and conflicts.
Author
Stanislav Deviatov
Repository URL
https://github.com/stn1slv/spec-kit-archive
Download URL
https://github.com/stn1slv/spec-kit-archive/archive/refs/tags/v1.4.0.zip
License
MIT
Homepage (optional)
https://github.com/stn1slv/spec-kit-archive
Documentation URL (optional)
https://github.com/stn1slv/spec-kit-archive/blob/main/README.md
Changelog URL (optional)
https://github.com/stn1slv/spec-kit-archive/blob/main/CHANGELOG.md
Required Spec Kit Version
Required Tools (optional)
None. The extension is a single command file. Apart from the
check-prerequisitesscript that Spec Kit already ships, it runs no tools of its own.Number of Commands
1
Number of Hooks (optional)
0
Tags
archive, memory, merge, changelog
Key Features
.specify/memory/, folding duplicates into existing entries instead of appending a digest per feature[Source: specs/007-invoice/spec.md -> FR-012]traceability, with one ref per contributing featurebefore_archive/after_archivehooks under core's hook rules (new in 1.4.0: a missingenabledfield counts as enabled, an unreadableextensions.ymlis reported, mandatory hooks are actually invoked)agent-contextextension manages, respects its configured markers, and never writes inside a tool-managed blockTesting Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Install: smoke-tested with
specify extension add --devon Spec Kit 1.0.13. The command registers and renders correctly forclaude(bash scripts) andcodex(Python scripts, skills mode), and no__SPECKIT_COMMAND_*__token is left unresolved. The tag archive resolves and contains a manifest at version 1.4.0, and the GitHub release is published (not a draft or prerelease). On 1.0.13 thegenericintegration does not register extension commands; #4785 fixed that after the release, and onmainit registers correctly.Fixture harness: the repository carries a synthetic Spec Kit project under
tests/fixture/. Each case runs in a fresh agent that gets onlycommands/archive.mdand its own working copy, and may not read the expectations, the baselines, the changelog or git history. Each round's expectations are committed before its runs, and every result is checked against the files the run actually wrote. For 1.4.0 there were three rounds (7, 7b and 7c), recorded inBASELINE-v1.4.0.md. They cover retirement chains, renumbered IDs, multi-refRETIRED:lines, mandatory hooks running in order, and a failing mandatory hook stopping the run. A mandatory control case reproduces the earlier result.Review: two six-model reviews ran over the release branch, and their findings were fixed and re-tested before the release.
Real-project testing: as in earlier submissions, v1.1.0 was verified end to end on stn1slv/Overtype@15cddd1, and another user field-tested v1.1.1 on an eight-feature project (issue #3). v1.4.0 itself has not been re-run on an external live project; its behavioural verification is the fixture harness above.
The extension writes only Markdown under
.specify/memory/, the project's agent context files, and the archived feature's own**Status**field. It runs no code, makes no network calls, and needs no credentials.Example Usage
Proposed Catalog Entry
{ "archive": { "name": "Archive Extension", "id": "archive", "description": "Archive merged features into main project memory, resolving gaps and conflicts.", "author": "Stanislav Deviatov", "version": "1.4.0", "download_url": "https://github.com/stn1slv/spec-kit-archive/archive/refs/tags/v1.4.0.zip", "repository": "https://github.com/stn1slv/spec-kit-archive", "homepage": "https://github.com/stn1slv/spec-kit-archive", "documentation": "https://github.com/stn1slv/spec-kit-archive/blob/main/README.md", "changelog": "https://github.com/stn1slv/spec-kit-archive/blob/main/CHANGELOG.md", "license": "MIT", "category": "docs", "effect": "read-write", "requires": { "speckit_version": ">=0.14.0" }, "provides": { "commands": 1, "hooks": 0 }, "tags": [ "archive", "memory", "merge", "changelog" ], "verified": false, "downloads": 0, "stars": 30, "created_at": "2026-03-14T00:00:00Z", "updated_at": "2026-10-02T00:00:00Z" } }Additional Context
1.4.0 fixes two defects that the 1.3.0 baseline recorded as open, and brings hook handling in line with core:
RETIRED:lines and leaves such an item out, but only when its content agrees with the retirement, because feature-local IDs move when specs are renumbered.before_archive/after_archiveevents now use core's hook wording and defaults.The README also gained sections on when to run the command (after merge, not as a workflow step) and on how archived memory can reach later
specifyandplanruns, which is a frequent question in #152 and #620.Release notes: https://github.com/stn1slv/spec-kit-archive/releases/tag/v1.4.0