archive

GitHub

Consolidate a completed specification into a single archived record and remove its working directory. Use as the final stage after implementation — distills requirements + solution into .start/archive/[NNN]-[name].md and deletes the .start/specs/[NNN]-[name]/ directory.

plugins/start/skills/archive/SKILL.md rsmdt/the-startup

安装

npx skills add rsmdt/the-startup --skill archive -g -y
更多选项

非标准路径

npx skills add https://github.com/rsmdt/the-startup/tree/main/plugins/start/skills/archive -g -y

不安装直接使用

npx skills use rsmdt/the-startup@archive

指定 Agent (Claude Code)

npx skills add rsmdt/the-startup --skill archive -a claude-code -g -y

安装 repo 全部 skill

npx skills add rsmdt/the-startup --all -g -y

预览 repo 内 skill

npx skills add rsmdt/the-startup --list

SKILL.md

Frontmatter
{
    "name": "archive",
    "description": "Consolidate a completed specification into a single archived record and remove its working directory. Use as the final stage after implementation — distills requirements + solution into .start\/archive\/[NNN]-[name].md and deletes the .start\/specs\/[NNN]-[name]\/ directory.",
    "argument-hint": "spec ID to archive (e.g., 002), or spec name",
    "user-invocable": true
}

Persona

Act as a specification archivist. When a spec's implementation is done, consolidate its intent and architecture into a single flat record under .start/archive/, then remove the working spec directory. The directory's disappearance from .start/specs/ is the "done" signal — active work lives in .start/specs/, completed work lives in .start/archive/ as one file per spec.

Archive Target: $ARGUMENTS

Interface

ArchiveRecord { specId: string // 3-digit, e.g., "002" specName: string // e.g., "payment-processing" archivePath: string // .start/archive/[NNN]-[name].md sourceDir: string // .start/specs/[NNN]-[name]/ — removed on completion commit?: string // short SHA + subject of the implementing/merge commit, or "unknown" supersedes?: string[] // prior archived spec stems ([NNN]-[name]) this one replaces }

State { target = $ARGUMENTS sourceDir: string requirements?: string // spec.md (its Requirements part), or requirements.md in a legacy spec solution?: string // spec.md (its Solution part), or solution.md in a legacy spec archivePath: string commit?: string // resolved in step 3 priorArchives?: string[] // existing .start/archive/*.md scanned for supersession in step 4 }

Constraints

Always:

  • Resolve the spec via the specify-meta skill before reading anything.
  • Read the spec document directly: the Requirements and Solution parts of spec.md, or requirements.md and solution.md (whichever exist) in a legacy spec.
  • Write the archive record to .start/archive/[NNN]-[name].md BEFORE removing anything.
  • Verify the archive record exists and is non-empty before removing the source directory.
  • Remove the entire .start/specs/[NNN]-[name]/ directory in a single step once the record is written.
  • Keep the record short: high-level intent, architecture, and implementation references. Nothing else.
  • Capture the implementing/merge commit (short SHA + subject) when the working tree is a git repo, so the record points back to the change that shipped it.
  • Scan .start/archive/ for prior records and, when this spec supersedes one, cross-link them bidirectionally (new record points back; superseded record points forward) before removing the source directory.
  • Write the record yourself — do not spawn a subagent.

Never:

  • Remove the source directory before the archive record is confirmed written and non-empty.
  • Include user stories, Gherkin, EARS, acceptance criteria, or decision logs in the record.
  • Restate requirements or solution verbatim — distill them.
  • Pad the record with ceremony, narrative, or status fields.
  • Require git, passing tests, or 100% completion — archive records what was done, in whatever state it is.
  • Fabricate a commit SHA — record unknown when no clear commit can be determined.

Reference Materials

This skill is intentionally self-contained; the record structure is inlined in step 5.

Workflow

1. Resolve

Use the specify-meta skill with $ARGUMENTS to read the spec (node ${CLAUDE_PLUGIN_ROOT}/scripts/spec.js {id} --read). From the TOML output capture:

  • dir → sourceDir (e.g., .start/specs/002-payment-processing/)
  • the directory basename [NNN]-[name] → archive filename stem
  • prd and sdd paths, if present (both are spec.md; a legacy spec reports requirements.md and solution.md)
match (resolution) {
  spec not found                         => report the error and stop
  neither requirements nor solution      => nothing to distill; ask the user whether to
                                            remove the directory anyway or abort
  at least one of requirements/solution  => proceed to step 2
}

2. Read Intent

Read the Requirements and Solution parts (spec.md, or the legacy requirements.md and solution.md, whichever exist). Extract only:

  • Intent — what the feature is and why it exists (from requirements).
  • Architecture — the components, how they fit, and any architecture diagram (from solution).
  • Implementation references — the key modules/files and where they live (from solution).

Distill. Do not copy sections across; rewrite them to their high-level essence.

3. Identify the Implementing Commit

Find the commit that implemented or merged the feature so the record points back to the shipped change. Search history for the spec ID and name:

git log -n 5 --oneline --all --regexp-ignore-case --grep "{specId}" --grep "{specName}"
match (result) {
  not a git repo / git unavailable   => commit = "unknown" (do not fabricate)
  single clear match                 => commit = "{short-sha} — {subject}"
  multiple candidates                => present them; ask the user which one (or none)
  no match                           => ask the user for the SHA, or record "unknown"
}

4. Check Prior Archives for Supersession

List existing records in .start/archive/ (skip if the directory does not exist yet). For each, judge whether this spec affects or supersedes it — same feature area, replaced architecture, or removed/renamed components.

match (relationship) {
  supersedes one or more   => record their stems in `supersedes`;
                              back-annotate each superseded record (step 5)
  related but not replacing => no cross-link (keep the record tight)
  none                     => no cross-link
}

When uncertain whether a prior spec is truly superseded, ask the user rather than guessing.

5. Write the Archive Record

Create .start/archive/ if it does not exist. Write .start/archive/[NNN]-[name].md:

# [NNN]-[name]

**Commit:** {short-sha} — {subject}   <!-- or: unknown -->
**Supersedes:** [NNN]-[name]   <!-- omit this line entirely when nothing is superseded -->

## What this is
{one or two plain sentences: the feature and its intent}

## Architecture
{the architecture diagram lifted from the Solution part, or a minimal one synthesized from
 its components; a short paragraph on how the pieces fit}

## Implementation
{key components/modules and where they live — the references for how it was built}

No frontmatter. No other sections. Keep it tight.

For each spec named in supersedes, back-annotate its existing archive record by inserting a line directly under its # [NNN]-[name] heading (do not otherwise alter it):

**Superseded by:** [NNN]-[name]

6. Remove the Working Directory

Verify the archive record exists and is non-empty. Record the archive and keep the spec's event log beside its record:

node ${CLAUDE_PLUGIN_ROOT}/scripts/spec.js {specId} --event '{"kind":"archived"}'
mv {sourceDir}/events.jsonl .start/archive/[NNN]-[name].events.jsonl

Then remove the source directory in a single step:

rm -rf {sourceDir}

The scaffolding (spec.md, review.md, .tracker/, and in legacy specs plan/, units/, scenarios/, manifest.md, README.md) is removed with it — it all lives inside sourceDir.

7. Report

Confirm to the user:

  • Archived: [NNN]-[name] → .start/archive/[NNN]-[name].md
  • Commit: {short-sha} — {subject} (or Commit: unknown)
  • Supersedes: [NNN]-[name] and Updated: .start/archive/[NNN]-[name].md (only when applicable)
  • Removed: {sourceDir}

版本历史

  • e803d51 当前 2026-11-02 10:45

同 Skill 集合

plugins/start/skills/analyze/SKILL.md
plugins/start/skills/brainstorm/SKILL.md
plugins/start/skills/constitution/SKILL.md
plugins/start/skills/debug/SKILL.md
plugins/start/skills/document/SKILL.md
plugins/start/skills/implement-direct/SKILL.md
plugins/start/skills/implement-factory/SKILL.md
plugins/start/skills/implement-incremental/SKILL.md
plugins/start/skills/implement/SKILL.md
plugins/start/skills/refactor/SKILL.md
plugins/start/skills/review/SKILL.md
plugins/start/skills/specify-factory/SKILL.md
plugins/start/skills/specify-incremental/SKILL.md
plugins/start/skills/specify-meta/SKILL.md
plugins/start/skills/specify-plan/SKILL.md
plugins/start/skills/specify-requirements/SKILL.md
plugins/start/skills/specify-solution/SKILL.md
plugins/start/skills/specify/SKILL.md
plugins/start/skills/test/SKILL.md
plugins/start/skills/validate/SKILL.md
plugins/start/skills/writing-skills/SKILL.md
plugins/team/skills/cross-cutting/feature-prioritization/SKILL.md
plugins/team/skills/cross-cutting/pattern-detection/SKILL.md
plugins/team/skills/cross-cutting/project-discovery/SKILL.md
plugins/team/skills/cross-cutting/requirements-elicitation/SKILL.md
plugins/team/skills/design/user-research/SKILL.md
plugins/team/skills/development/agentic-patterns/SKILL.md
plugins/team/skills/development/api-contract-design/SKILL.md
plugins/team/skills/development/architecture-selection/SKILL.md
plugins/team/skills/development/domain-modeling/SKILL.md
plugins/team/skills/development/frontend-patterns/SKILL.md
plugins/team/skills/development/technical-writing/SKILL.md
plugins/team/skills/development/testing/SKILL.md
plugins/team/skills/infrastructure/platform-operations/SKILL.md
plugins/team/skills/quality/code-quality-review/SKILL.md
plugins/team/skills/quality/performance-analysis/SKILL.md
plugins/team/skills/quality/security-assessment/SKILL.md
plugins/start/skills/improve/SKILL.md
plugins/start/skills/reflect/SKILL.md

元信息

文件数
0
版本
e803d51
Hash
91a90763
收录时间
2026-11-02 10:45

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-02 20:47
浙ICP备14020137号-1