Skip to content

[Extension]: Update Archive Extension to v1.1.0 #3977

Description

@stn1slv

Note

This is an update to an existing catalog entry, not a new submission. The archive extension is already in extensions/catalog.community.json at version 1.0.0. This submission bumps it to 1.1.0. Four fields change: version, download_url, stars, and updated_at. Everything else is unchanged.

Extension ID

archive

Extension Name

Archive Extension

Version

1.1.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.1.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

=0.1.0

Required Tools (optional)

None beyond Spec Kit's own check-prerequisites.sh.

Number of Commands

1

Number of Hooks (optional)

0

Tags

archive, memory, merge, changelog

Key Features

What 1.1.0 adds over 1.0.0 (full detail in CHANGELOG.md):

  • Consolidation instead of accumulation. The main spec.md previously grew as a pile of per-feature extractions, because the edit rules said "prefer appending over restructuring" and deduplication only caught exact duplicates. Incoming feature items now fold into the existing entry covering the same ground. Two entries that both already exist in main memory are never merged, so an established requirement ID cannot disappear.
  • Item-level traceability. Entries carry [Source: specs/###-feature/spec.md -> FR-012] refs, one per contributing feature. Stable IDs are used rather than line numbers, which rot as soon as a source spec is edited after archival.
  • Supersession pass. Detects requirements a later feature wholly replaces, confirms removal with the user, deletes the retired entry from spec.md, and records a RETIRED: line in changelog.md. Retired IDs are read back on later runs so they are never reissued. Removal is skipped entirely unless both spec.md and changelog.md are writable, so a deletion cannot happen without an audit trail. Unresolved contradictions are recorded and re-raised on later runs.
  • Assumptions and Measurable Outcomes (SC-XXX) are now captured. These sections exist in the canonical spec-template.md but were previously dropped on archival.

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

Tested end to end on a real project: stn1slv/Overtype@15cddd1, archiving feature 005-teams-ax-recovery into that project's existing .specify/memory/.

What that run exercised and confirmed:

  • Consolidation: two of the feature's requirements were folded into existing FR-022 and FR-023 rather than appended, each now carrying two source refs.
  • Item-level traceability, including in-place upgrade of older directory-level [Source: ...] refs on the entries that were touched.
  • ID continuation: FR-035FR-040 and SC-019SC-023 continued the existing sequences without collision or renumbering.
  • Multi-artifact update: .specify/memory/spec.md, plan.md, changelog.md, the agent knowledge file, and the feature spec's status field were all updated as specified.

One limitation stated plainly: that project had nothing to supersede, so supersession detection ran and correctly reported no candidates, but the removal path was not exercised on a live project. The removal path is confirmation-gated and refuses to run unless the audit trail can be written, so its failure mode is to do nothing rather than to delete something unrecorded.

swift test in the target project passed (64 tests, 0 failures) after archival, confirming the run was documentation-only and touched no source.

Example Usage

# Install
specify extension add archive --from https://github.com/stn1slv/spec-kit-archive/archive/refs/tags/v1.1.0.zip

# Archive a merged feature into project memory
/speckit.archive.run specs/005-teams-ax-recovery

# Restrict scope if desired
/speckit.archive.run specs/005-teams-ax-recovery --spec-only

Proposed Catalog Entry

{
  "name": "Archive Extension",
  "id": "archive",
  "description": "Archive merged features into main project memory, resolving gaps and conflicts.",
  "author": "Stanislav Deviatov",
  "version": "1.1.0",
  "download_url": "https://github.com/stn1slv/spec-kit-archive/archive/refs/tags/v1.1.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.1.0"
  },
  "provides": {
    "commands": 1,
    "hooks": 0
  },
  "tags": [
    "archive",
    "memory",
    "merge",
    "changelog"
  ],
  "verified": false,
  "downloads": 0,
  "stars": 24,
  "created_at": "2026-03-14T00:00:00Z",
  "updated_at": "2026-08-04T00:00:00Z"
}

Additional Context

Diff against the current catalog entry, for reviewer convenience — only these four fields change:

Field Current Proposed
version 1.0.0 1.1.0
download_url .../tags/v1.0.0.zip .../tags/v1.1.0.zip
stars 0 24
updated_at 2026-03-14T00:00:00Z 2026-08-04T00:00:00Z

provides is unchanged at 1 command and 0 hooks, matching extension.yml. verified, downloads, created_at, category, effect, and description are unchanged.

Release: https://github.com/stn1slv/spec-kit-archive/releases/tag/v1.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions