Catalog
fauziyasin-s2m4qw/openspec-archive-change

fauziyasin-s2m4qw

openspec-archive-change

Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.

v1.0LATEST
NewUpdated Oct 5, 2026

Archive a completed change in the experimental workflow.

Input: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.

Steps

  1. If no change name provided, prompt for selection

    Run openspec list --json to get available changes. Use the AskUserQuestion tool to let the user select.

    Show only active changes (not already archived). Include the schema used for each change if available.

    IMPORTANT: Do NOT guess or auto-select a change. Always let the user choose.

  2. Check artifact completion status

    Run openspec status --change "<name>" --json to check artifact completion.

    Parse the JSON to understand:

    • schemaName: The workflow being used
    • planningHome, changeRoot, artifactPaths, and actionContext: path and scope context
    • artifacts: List of artifacts with their status (done or other)

    If status reports actionContext.mode: "workspace-planning", explain that workspace archive is not supported in this slice and STOP. Do not move workspace changes into repo-local archives or edit linked repos.

    If any artifacts are not done:

    • Display warning listing incomplete artifacts
    • Use AskUserQuestion tool to confirm user wants to proceed
    • Proceed if user confirms
  3. Check task completion status

    Read the tasks file (typically tasks.md) to check for incomplete tasks.

    Count tasks marked with - [ ] (incomplete) vs - [x] (complete).

    If incomplete tasks found:

    • Display warning showing count of incomplete tasks
    • Use AskUserQuestion tool to confirm user wants to proceed
    • Proceed if user confirms

    If no tasks file exists: Proceed without task-related warning.

  4. Assess delta spec sync state

    Use artifactPaths.specs.existingOutputPaths from status JSON to check for delta specs. If none exist, proceed without sync prompt.

    If delta specs exist:

    • Compare each delta spec with its corresponding main spec at openspec/specs/<capability>/spec.md
    • Determine what changes would be applied (adds, modifications, removals, renames)
    • Show a combined summary before prompting

    Prompt options:

    • If changes needed: "Sync now (recommended)", "Archive without syncing"
    • If already synced: "Archive now", "Sync anyway", "Cancel"

    If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke openspec-sync-specs for change ''. Delta spec analysis: "). Proceed to archive regardless of choice.

  5. Perform the archive

    Create an archive directory under planningHome.changesDir if it doesn't exist:

    mkdir -p "<planningHome.changesDir>/archive"
    

    Generate target name using current date: YYYY-MM-DD-<change-name>

    Check if target already exists:

    • If yes: Fail with error, suggest renaming existing archive or using different date
    • If no: Move changeRoot to the archive directory
    mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
    
  6. Display summary

    Show archive completion summary including:

    • Change name
    • Schema that was used
    • Archive location
    • Whether specs were synced (if applicable)
    • Note about any warnings (incomplete artifacts/tasks)

Output On Success

## Archive Complete

**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/
**Specs:** ✓ Synced to main specs (or "No delta specs" or "Sync skipped")

All artifacts complete. All tasks complete.

Guardrails

  • Always prompt for change selection if not provided
  • Use artifact graph (openspec status --json) for completion checking
  • Don't block archive on warnings - just inform and confirm
  • Preserve .openspec.yaml when moving to archive (it moves with the directory)
  • Show clear summary of what happened
  • If sync is requested, use openspec-sync-specs approach (agent-driven)
  • If delta specs exist, always run the sync assessment and show the combined summary before prompting

Overall Score

82/100

Grade

B

Good

Grades are signals, not a certification. Always review a skill yourself before use.

Safety

84

Quality

81

Clarity

84

Completeness

78

Summary

This skill guides an agent to archive completed changes in the openspec experimental workflow. It orchestrates a multi-step process: prompting for change selection, validating artifact and task completion, assessing delta spec synchronization state, and then archiving the change directory with a timestamped name. The skill delegates optional spec syncing to a sibling skill (openspec-sync-specs) via a subagent task invocation.

Detected Capabilities

file read (status JSON, tasks.md)directory creation (mkdir)directory move/rename (mv)CLI invocation (openspec commands)user prompt (AskUserQuestion tool)subagent task delegation (Task tool)

Trigger Keywords

Phrases that agents use to match this skill to user intent.

archive changefinalize workflowcomplete implementationmove to archiveopenspec archiveclose change

Risk Signals

INFO

Directory move operation (mv) with user-provided change name

Step 5 - Perform the archive
INFO

Recursive directory creation (mkdir -p) scoped to openspec changesDir

Step 5 - Perform the archive
INFO

External skill invocation via Task tool (openspec-sync-specs)

Step 4 - Assess delta spec sync state

Use Cases

  • Finalize and archive a change after all implementation work is complete
  • Archive multiple changes with progress tracking and warnings about incomplete artifacts or tasks
  • Ensure delta specs are synced to main specs before archiving a change
  • Move completed change directories into a timestamped archive structure for project history

Quality Notes

  • ✓ Clear step-by-step workflow with explicit guardrails (always prompt, don't auto-select, don't block on warnings)
  • ✓ Comprehensive input validation: checks artifact status, task completion, delta spec state, and target directory collisions before archiving
  • ✓ User confirmation gates: warnings about incomplete artifacts/tasks require explicit confirmation before proceeding
  • ✓ Well-documented error handling: workspace-planning mode detection with explicit stop condition, target collision detection
  • ✓ Excellent JSON parsing guidance: explicit field names and expected structure documented for both openspec commands
  • ✓ Output specification is clear and actionable: summary shows change name, schema, archive location, sync status
  • ✓ Guardrails section reinforces critical behaviors: don't guess, always prompt, preserve .openspec.yaml, use agent-driven sync
  • ✓ Delta spec assessment includes a combined summary before prompting — helps user make informed decision
  • ✓ Timestamp-based naming (YYYY-MM-DD-<name>) prevents accidental overwrites and maintains archive history
  • ⚠ No explicit error handling guidance for Task tool invocation (openspec-sync-specs) — should document how to handle sync failures without blocking archive
  • ⚠ No documented fallback if openspec CLI is unavailable or returns unexpected JSON structure
  • ⚠ 'Determine what changes would be applied' (delta spec comparison) lacks implementation detail — agent must infer the comparison logic
Model: claude-haiku-4-5-20251001Analyzed: Oct 5, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use fauziyasin-s2m4qw/openspec-archive-change in your dev environment

Command Palette

Search for a command to run...