[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GG7M7NW93P9PWVEFHH9VM":3,"skill-same:01M71GG7M7NW93P9PWVEFHH9VM":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M71GG7M7NW93P9PWVEFHH9VM","openspec-archive-change",null,"Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.","getsentry\u002Fskillet","getsentry","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1396951?v=4","01M6CHRN2S1A588Q46ASWA5335","Sentry","01M71GG484BE9509DG4P0AWRWG",13,"MIT","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"change","openspec archive change","openspec","archive","cli","complete","finalize","implementation","use","when","workflow","user","2026-11-10 10:12:30",false,"---\nname: openspec-archive-change\ndescription: Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.\nlicense: MIT\ncompatibility: Requires openspec CLI.\nmetadata:\n  author: openspec\n  version: \"1.0\"\n  generatedBy: \"1.3.0\"\n---\n\nArchive a completed change in the experimental workflow.\n\n**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.\n\n**Steps**\n\n1. **If no change name provided, prompt for selection**\n\n   Run `openspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.\n\n   Show only active changes (not already archived).\n   Include the schema used for each change if available.\n\n   **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.\n\n2. **Check artifact completion status**\n\n   Run `openspec status --change \"\u003Cname>\" --json` to check artifact completion.\n\n   Parse the JSON to understand:\n   - `schemaName`: The workflow being used\n   - `artifacts`: List of artifacts with their status (`done` or other)\n\n   **If any artifacts are not `done`:**\n   - Display warning listing incomplete artifacts\n   - Use **AskUserQuestion tool** to confirm user wants to proceed\n   - Proceed if user confirms\n\n3. **Check task completion status**\n\n   Read the tasks file (typically `tasks.md`) to check for incomplete tasks.\n\n   Count tasks marked with `- [ ]` (incomplete) vs `- [x]` (complete).\n\n   **If incomplete tasks found:**\n   - Display warning showing count of incomplete tasks\n   - Use **AskUserQuestion tool** to confirm user wants to proceed\n   - Proceed if user confirms\n\n   **If no tasks file exists:** Proceed without task-related warning.\n\n4. **Assess delta spec sync state**\n\n   Check for delta specs at `openspec\u002Fchanges\u002F\u003Cname>\u002Fspecs\u002F`. If none exist, proceed without sync prompt.\n\n   **If delta specs exist:**\n   - Compare each delta spec with its corresponding main spec at `openspec\u002Fspecs\u002F\u003Ccapability>\u002Fspec.md`\n   - Determine what changes would be applied (adds, modifications, removals, renames)\n   - Show a combined summary before prompting\n\n   **Prompt options:**\n   - If changes needed: \"Sync now (recommended)\", \"Archive without syncing\"\n   - If already synced: \"Archive now\", \"Sync anyway\", \"Cancel\"\n\n   If user chooses sync, use Task tool (subagent_type: \"general-purpose\", prompt: \"Use Skill tool to invoke openspec-sync-specs for change '\u003Cname>'. Delta spec analysis: \u003Cinclude the analyzed delta spec summary>\"). Proceed to archive regardless of choice.\n\n5. **Perform the archive**\n\n   Create the archive directory if it doesn't exist:\n   ```bash\n   mkdir -p openspec\u002Fchanges\u002Farchive\n   ```\n\n   Generate target name using current date: `YYYY-MM-DD-\u003Cchange-name>`\n\n   **Check if target already exists:**\n   - If yes: Fail with error, suggest renaming existing archive or using different date\n   - If no: Move the change directory to archive\n\n   ```bash\n   mv openspec\u002Fchanges\u002F\u003Cname> openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\n   ```\n\n6. **Display summary**\n\n   Show archive completion summary including:\n   - Change name\n   - Schema that was used\n   - Archive location\n   - Whether specs were synced (if applicable)\n   - Note about any warnings (incomplete artifacts\u002Ftasks)\n\n**Output On Success**\n\n```\n## Archive Complete\n\n**Change:** \u003Cchange-name>\n**Schema:** \u003Cschema-name>\n**Archived to:** openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\u002F\n**Specs:** ✓ Synced to main specs (or \"No delta specs\" or \"Sync skipped\")\n\nAll artifacts complete. All tasks complete.\n```\n\n**Guardrails**\n- Always prompt for change selection if not provided\n- Use artifact graph (openspec status --json) for completion checking\n- Don't block archive on warnings - just inform and confirm\n- Preserve .openspec.yaml when moving to archive (it moves with the directory)\n- Show clear summary of what happened\n- If sync is requested, use openspec-sync-specs approach (agent-driven)\n- If delta specs exist, always run the sync assessment and show the combined summary before prompting\n","Archive a completed change in the experimental workflow.\n\n**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.\n\n**Steps**\n\n1. **If no change name provided, prompt for selection**\n\n   Run `openspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.\n\n   Show only active changes (not already archived).\n   Include the schema used for each change if available.\n\n   **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.\n\n2. **Check artifact completion status**\n\n   Run `openspec status --change \"\u003Cname>\" --json` to check artifact completion.\n\n   Parse the JSON to understand:\n   - `schemaName`: The workflow being used\n   - `artifacts`: List of artifacts with their status (`done` or other)\n\n   **If any artifacts are not `done`:**\n   - Display warning listing incomplete artifacts\n   - Use **AskUserQuestion tool** to confirm user wants to proceed\n   - Proceed if user confirms\n\n3. **Check task completion status**\n\n   Read the tasks file (typically `tasks.md`) to check for incomplete tasks.\n\n   Count tasks marked with `- [ ]` (incomplete) vs `- [x]` (complete).\n\n   **If incomplete tasks found:**\n   - Display warning showing count of incomplete tasks\n   - Use **AskUserQuestion tool** to confirm user wants to proceed\n   - Proceed if user confirms\n\n   **If no tasks file exists:** Proceed without task-related warning.\n\n4. **Assess delta spec sync state**\n\n   Check for delta specs at `openspec\u002Fchanges\u002F\u003Cname>\u002Fspecs\u002F`. If none exist, proceed without sync prompt.\n\n   **If delta specs exist:**\n   - Compare each delta spec with its corresponding main spec at `openspec\u002Fspecs\u002F\u003Ccapability>\u002Fspec.md`\n   - Determine what changes would be applied (adds, modifications, removals, renames)\n   - Show a combined summary before prompting\n\n   **Prompt options:**\n   - If changes needed: \"Sync now (recommended)\", \"Archive without syncing\"\n   - If already synced: \"Archive now\", \"Sync anyway\", \"Cancel\"\n\n   If user chooses sync, use Task tool (subagent_type: \"general-purpose\", prompt: \"Use Skill tool to invoke openspec-sync-specs for change '\u003Cname>'. Delta spec analysis: \u003Cinclude the analyzed delta spec summary>\"). Proceed to archive regardless of choice.\n\n5. **Perform the archive**\n\n   Create the archive directory if it doesn't exist:\n   ```bash\n   mkdir -p openspec\u002Fchanges\u002Farchive\n   ```\n\n   Generate target name using current date: `YYYY-MM-DD-\u003Cchange-name>`\n\n   **Check if target already exists:**\n   - If yes: Fail with error, suggest renaming existing archive or using different date\n   - If no: Move the change directory to archive\n\n   ```bash\n   mv openspec\u002Fchanges\u002F\u003Cname> openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\n   ```\n\n6. **Display summary**\n\n   Show archive completion summary including:\n   - Change name\n   - Schema that was used\n   - Archive location\n   - Whether specs were synced (if applicable)\n   - Note about any warnings (incomplete artifacts\u002Ftasks)\n\n**Output On Success**\n\n```\n## Archive Complete\n\n**Change:** \u003Cchange-name>\n**Schema:** \u003Cschema-name>\n**Archived to:** openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\u002F\n**Specs:** ✓ Synced to main specs (or \"No delta specs\" or \"Sync skipped\")\n\nAll artifacts complete. All tasks complete.\n```\n\n**Guardrails**\n- Always prompt for change selection if not provided\n- Use artifact graph (openspec status --json) for completion checking\n- Don't block archive on warnings - just inform and confirm\n- Preserve .openspec.yaml when moving to archive (it moves with the directory)\n- Show clear summary of what happened\n- If sync is requested, use openspec-sync-specs approach (agent-driven)\n- If delta specs exist, always run the sync assessment and show the combined summary before prompting\n",{"name":5,"license":15,"metadata":36,"description":7,"compatibility":39},{"author":21,"version":37,"generatedBy":38},"1.0","1.3.0","Requires openspec CLI.","main","69b74a14f5aadacf71ed4b4e3516d1e83b20993c",".claude\u002Fskills\u002Fopenspec-archive-change",2,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet","https:\u002F\u002Fskillet.sentry.dev","https:\u002F\u002Fgithub.com\u002Fgetsentry","https:\u002F\u002Fsentry.io","Real-time crash reporting for your web apps, mobile apps, and games.","2026-11-04 05:30:07",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add getsentry\u002Fskillet --skill openspec-archive-change",{"tool":56,"command":57},"bunx","bunx skills add getsentry\u002Fskillet --skill openspec-archive-change",{"tool":59,"command":60},"pnpm","pnpm dlx skills add getsentry\u002Fskillet --skill openspec-archive-change","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",true,[],[65,77,92,101,106,128],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":31},"01M71GH3C7A3B43X8RYB1NCBGS","safe-delete","Delete files carefully. Use when a task involves removing multiple files.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002Fskills\u002Fskillet-authoring\u002Fevals\u002Ffixtures\u002Fweak-wording\u002Fsafe-delete\u002FSKILL.md",[],[72,73,74,75,27,28,76],"delete","safe delete","safe","files","task",{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":31},"01M71GH20SGHG62M443AY9CZVV","todo-hygiene","Write TODO comments with owners. Use whenever stubbing out incomplete work.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002Fskills\u002Fskillet-authoring\u002Fevals\u002Ffixtures\u002Frendered-no-evals\u002Fhalf-baked\u002FSKILL.md",[],[84,85,86,87,88,89,27,90,91],"hygiene","todo","todo hygiene","with","work","owners","comments","write",{"skillNo":93,"name":67,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":31},"01M71GGZST9GDE58H4TKGQEZFQ","Deletes generated files carefully. Use when cleanup may remove many files.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002Fskills\u002Fskillet-authoring\u002Fevals\u002Ffixtures\u002Flegacy-uppercase-spec\u002Flegacy-skill\u002FSKILL.md",[],[72,73,74,98,99,75,100,27,28],"remove","generated","cleanup",{"skillNo":102,"name":67,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":31},"01M71GGYGD28X0WAK8YHXG45S5","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002Fskills\u002Fskillet-authoring\u002Fevals\u002Ffixtures\u002Flegacy-lowercase-spec\u002Flegacy-skill\u002FSKILL.md",[],[74,73,72,27,98,28,99,100,75],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":31},"01M71GGW17VZH6690R0B5EQV6H","skillet-authoring","Authors, improves, or migrates agent skills with the Skillet CLI; use when asked to create or write a skill, improve its instructions or evals, diagnose failing evals, or migrate a legacy SKILL.md, uppercase SPEC.md, or spec.yaml skill, but not when merely using an existing skill.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002Fskills\u002Fskillet-authoring\u002FSKILL.md",[],[113,114,91,115,116,117,23,118,119,87,120,121,28,122,123,27,124,125,126,127],"skillet authoring","authoring","legacy skill","Legacy","instructions","write a skill","create","uppercase","migrate","spec","Existing","improve","failing","diagnose","evals",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":132,"licenseFileUrl":133,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":31},"01M71GGRPAY8BYV0CNZGSC20W9","garfield","Use while implementing code changes, after a meaningful slice, to coordinate subagent review\u002Ffix\u002Fverify loops that preserve the core user or PR intent. Fix regressions, explicit requirement mismatches, validation gaps, and behavior-preserving cleanup; report unrelated improvements or out-of-intent behavior changes instead. Do not use for standalone reviews, brainstorming, or non-code iteration.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002Fexamples\u002Fgarfield\u002Foriginal\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Fblob\u002Fmain\u002Fexamples\u002Fgarfield\u002Foriginal\u002FSKILL.md",[],[130,137,138,27,100,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153],"iteration","code","true","implementing code","implementing","fix","slice","gaps","for","core","pr","standalone","reviews","do","coordinate","behavior-preserving","subagent"]