AI & Agentslow risk

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.

muthuishere/toolnexus·.claude/skills/openspec-archive-change/SKILL.md
37/ 100推薦值

匯入這個 Skill

選擇你的 coding agent,複製專案級或個人級安裝指令。

固定至平台收錄的 commit
匯入目前專案.agents/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a codex -y
匯入個人環境~/.agents/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a codex -g -y
手動放置目錄.agents/skills/openspec-archive-changeOfficial docs ↗
匯入目前專案.claude/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a claude-code -y
匯入個人環境~/.claude/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a claude-code -g -y
手動放置目錄.claude/skills/openspec-archive-changeOfficial docs ↗
匯入目前專案.agents/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a github-copilot -y
匯入個人環境~/.copilot/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a github-copilot -g -y
手動放置目錄.agents/skills/openspec-archive-changeOfficial docs ↗
匯入目前專案.agents/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a cursor -y
匯入個人環境~/.cursor/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a cursor -g -y
手動放置目錄.agents/skills/openspec-archive-changeOfficial docs ↗
匯入目前專案.agents/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a gemini-cli -y
匯入個人環境~/.gemini/skills/openspec-archive-change
npx skills add https://github.com/muthuishere/toolnexus/tree/eb4b603bdf41f49b61940e608aa1124a34e7feda/.claude/skills/openspec-archive-change -a gemini-cli -g -y
Native Gemini CLIgemini skills install https://github.com/muthuishere/toolnexus.git --scope workspace --path .claude/skills/openspec-archive-change
手動放置目錄.agents/skills/openspec-archive-changeOfficial docs ↗
⚠ 安裝指令使用開源 skills CLI。執行前請檢查來源、腳本與權限。
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 '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.

5. **Perform the archive**

   Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
   ```bash
   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

   ```bash
   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