[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RFBT4T1ZC3Q2P6KYYRFFM":3,"skill-same:01M71RFBT4T1ZC3Q2P6KYYRFFM":62},{"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":14,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M71RFBT4T1ZC3Q2P6KYYRFFM","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.","duvu\u002Fxlitellm","duvu","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F111038?v=4","01M71REK4X06FTJZHHAPSD5RC6","Vu","01M71REK5G98TNC0B4RT2CMK2P",0,"MIT","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002F.codex\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"change","openspec archive change","openspec","archive","finalize","implementation","cli","use","when","workflow","complete","user","2026-11-10 13:02:02",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.1\"\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.1","Requires openspec CLI.","x51\u002Fv1.80.11-baseline","440611df864699e50ffe9e8a52051270517c195c",".codex\u002Fskills\u002Fopenspec-archive-change","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm","https:\u002F\u002Fgithub.com\u002Fduvu","https:\u002F\u002Fx51.vn","AI & Backend Architect | Java\u002FSpring, Python\u002FFastAPI | Production AI integrations and scalable APIs.","2026-11-11 21:59:49",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add duvu\u002Fxlitellm --skill openspec-archive-change",{"tool":54,"command":55},"bunx","bunx skills add duvu\u002Fxlitellm --skill openspec-archive-change",{"tool":57,"command":58},"pnpm","pnpm dlx skills add duvu\u002Fxlitellm --skill openspec-archive-change","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002F.codex\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",true,[],[63,97,116,132,137,153],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":67,"licenseFileUrl":68,"sourceHtmlUrl":69,"categories":70,"keywords":79,"publishedAt":31},"01M71RFSNG1Q7KJ6HW9SBR4HD7","slack-gif-creator","Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002Ftests\u002Fllm_translation\u002Ftest_skills_data\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002Ftests\u002Fllm_translation\u002Ftest_skills_data\u002Fslack-gif-creator\u002FSKILL.md",[71,76],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",{"categoryNo":77,"categoryName":78,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000016","图像与多媒体",[80,81,82,83,84,85,86,26,27,87,88,89,90,91,92,93,94,95,96],"slack","slack gif creator","gif","creator","Animation","for","knowledge","users","me","request","validation","gifs","Utilities","concepts","Tools","constraints","make",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":31},"01M71RFPAAQMA6DT8YENKSKZ9Q","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002F.github\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[21,104,105,106,107,19,25,108,109,85,29,110,111,24,112,113,26,27,114,115],"openspec propose","with","ready","proposal","get","build","design","new","generated","describe","artifacts","tasks",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":31},"01M71RFKS421A3VECV1K2R6TMR","openspec-explore","Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002F.github\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",[],[21,123,124,125,126,127,85,128,26,27,129,19,25,130,131,30],"explore","openspec explore","thinking","ideas","thinking partner","mode","requirements","partner","think",{"skillNo":133,"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":134,"categories":135,"keywords":136,"publishedAt":31},"01M71RFJD1KSRJGVJ00NS3AQRP","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002F.github\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":31},"01M71RFH4427V1KP3JBQPAGBKK","openspec-apply-change","Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002F.github\u002Fskills\u002Fopenspec-apply-change\u002FSKILL.md",[],[19,144,145,21,146,147,148,25,149,150,151,24,26,27,115,30,152],"openspec apply change","apply change","openspec apply","apply","work","continue","implementing","start","implement",{"skillNo":154,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":31},"01M71RFFKC8SPHA46JX7TB4B34","https:\u002F\u002Fgithub.com\u002Fduvu\u002Fxlitellm\u002Fblob\u002Fx51\u002Fv1.80.11-baseline\u002F.codex\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[21,104,105,106,107,19,25,108,109,85,29,110,111,24,112,113,26,27,114,115]]