[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QE0063JPFDTH896VPRQTKM":3,"skill-same:01M6QE0063JPFDTH896VPRQTKM":54},{"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":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":36,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":38,"updatedAt":39,"install":40,"resources":53},"01M6QE0063JPFDTH896VPRQTKM","source-command-opsx-archive",null,"Archive a completed change in the experimental workflow","opencue\u002Fgitguardex","opencue","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F271874627?v=4","01M6QDWWMZFB8A08PDTA8D0VJ3","Opencue - Personal Ai Profiles for every job ","01M6QDWWSJGBEGVPMCEJFWVACT",28,"MIT","https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsource-command-opsx-archive\u002FSKILL.md",[],[19,20,21,22,23,24,25],"archive","opsx archive","command","source","source command opsx archive","workflow","change","2026-11-10 10:12:30",false,"---\nname: \"source-command-opsx-archive\"\ndescription: \"Archive a completed change in the experimental workflow\"\n---\n\n# source-command-opsx-archive\n\nUse this skill when the user asks to run the migrated source command `opsx-archive`.\n\n## Command Template\n\nArchive a completed change in the experimental workflow.\n\n**Input**: Optionally specify a change name after `\u002Fopsx:archive` (e.g., `\u002Fopsx:archive add-auth`). 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   - Prompt user for confirmation to continue\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   - Prompt user for confirmation to continue\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, execute `\u002Fopsx:sync` logic. 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   - Spec sync status (synced \u002F sync skipped \u002F no delta specs)\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\n\nAll artifacts complete. All tasks complete.\n```\n\n**Output On Success (No Delta Specs)**\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:** No delta specs\n\nAll artifacts complete. All tasks complete.\n```\n\n**Output On Success With Warnings**\n\n```\n## Archive Complete (with warnings)\n\n**Change:** \u003Cchange-name>\n**Schema:** \u003Cschema-name>\n**Archived to:** openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\u002F\n**Specs:** Sync skipped (user chose to skip)\n\n**Warnings:**\n- Archived with 2 incomplete artifacts\n- Archived with 3 incomplete tasks\n- Delta spec sync was skipped (user chose to skip)\n\nReview the archive if this was not intentional.\n```\n\n**Output On Error (Archive Exists)**\n\n```\n## Archive Failed\n\n**Change:** \u003Cchange-name>\n**Target:** openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\u002F\n\nTarget archive directory already exists.\n\n**Options:**\n1. Rename the existing archive\n2. Delete the existing archive if it's a duplicate\n3. Wait until a different date to archive\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 \u002Fopsx:sync approach (agent-driven)\n- If delta specs exist, always run the sync assessment and show the combined summary before prompting\n","# source-command-opsx-archive\n\nUse this skill when the user asks to run the migrated source command `opsx-archive`.\n\n## Command Template\n\nArchive a completed change in the experimental workflow.\n\n**Input**: Optionally specify a change name after `\u002Fopsx:archive` (e.g., `\u002Fopsx:archive add-auth`). 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   - Prompt user for confirmation to continue\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   - Prompt user for confirmation to continue\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, execute `\u002Fopsx:sync` logic. 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   - Spec sync status (synced \u002F sync skipped \u002F no delta specs)\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\n\nAll artifacts complete. All tasks complete.\n```\n\n**Output On Success (No Delta Specs)**\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:** No delta specs\n\nAll artifacts complete. All tasks complete.\n```\n\n**Output On Success With Warnings**\n\n```\n## Archive Complete (with warnings)\n\n**Change:** \u003Cchange-name>\n**Schema:** \u003Cschema-name>\n**Archived to:** openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\u002F\n**Specs:** Sync skipped (user chose to skip)\n\n**Warnings:**\n- Archived with 2 incomplete artifacts\n- Archived with 3 incomplete tasks\n- Delta spec sync was skipped (user chose to skip)\n\nReview the archive if this was not intentional.\n```\n\n**Output On Error (Archive Exists)**\n\n```\n## Archive Failed\n\n**Change:** \u003Cchange-name>\n**Target:** openspec\u002Fchanges\u002Farchive\u002FYYYY-MM-DD-\u003Cname>\u002F\n\nTarget archive directory already exists.\n\n**Options:**\n1. Rename the existing archive\n2. Delete the existing archive if it's a duplicate\n3. Wait until a different date to archive\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 \u002Fopsx:sync approach (agent-driven)\n- If delta specs exist, always run the sync assessment and show the combined summary before prompting\n",{"name":5,"description":7},"main","7546eb50cf658dad033c5a047a7ec89c9d1ee7f4",".agents\u002Fskills\u002Fsource-command-opsx-archive",4,"https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex","https:\u002F\u002Fgitguardex.com\u002F","https:\u002F\u002Fgithub.com\u002Fopencue","Building in the open. From AI-powered workflows and developer tools to web experiences, automation, and e-commerce — practical software for real-world problems.","2026-11-12 18:11:01",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add opencue\u002Fgitguardex --skill source-command-opsx-archive",{"tool":46,"command":47},"bunx","bunx skills add opencue\u002Fgitguardex --skill source-command-opsx-archive",{"tool":49,"command":50},"pnpm","pnpm dlx skills add opencue\u002Fgitguardex --skill source-command-opsx-archive","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsource-command-opsx-archive\u002FSKILL.md",true,[],[55,74,99,124,142,158],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":26},"01M6QEBH0VSDT0T2HX5XE3VW5F","opensrc","Fetch exact dependency or external repository source before inspecting internals. Use for package implementation, upstream behavior, or external GitHub source lookup.","https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002Ftemplates\u002Fcodex\u002Fskills\u002Fopensrc\u002FSKILL.md",[],[57,62,63,64,65,66,67,68,69,70,71,72,73,22],"lookup","for","upstream","implementation","dependency","use","fetch","behavior","Bash","repository","package","github",{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":26},"01M6QEBDNSWK5R390QHGFWP601","gx-act","Run GitHub Actions workflows locally with nektos\u002Fact before pushing, so CI failures are caught on the laptop and the PR can be squash-merged on the first remote run.","https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002Ftemplates\u002Fcodex\u002Fskills\u002Fgx-act\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[86,87,88,89,73,90,91,92,93,94,95,96,97,98],"gx act","act","pr","workflows","run","actions","first","ci","can","with","remote","squash","github actions",{"skillNo":100,"name":101,"nameZh":6,"description":102,"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":108,"publishedAt":26},"01M6QEBAQ8HA4ZGNDS03AB25Y7","guardex-merge-skills-to-dev","Use when you need to merge SKILL.md updates from agent branches\u002Fworktrees into the local base branch (default: dev) with the multiagent-safety flow.","https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002Ftemplates\u002Fcodex\u002Fskills\u002Fguardex-merge-skills-to-dev\u002FSKILL.md",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000023","Skill与智能体开发",[109,110,111,112,95,113,114,115,116,117,118,119,67,120,121,122,123],"guardex merge skills to dev","guardex","merge","dev","updates","you","local","branches","base","default","worktrees","branch","Safety","flow","multiagent",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":131,"publishedAt":26},"01M6QEB1MG3NCEZ9DP310AAANC","gitguardex","Use for GitGuardex branch\u002Fworktree safety, agent or subagent collision avoidance, file ownership, and gated PR finishing. Not for code-quality review.","https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002Ftemplates\u002Fcodex\u002Fskills\u002Fgitguardex\u002FSKILL.md",[130],{"categoryNo":106,"categoryName":107,"taxonomyType":83,"taxonomyTypeDesc":84},[126,132,63,133,134,135,67,120,136,137,121,138,139,140,88,141],"subagent","ownership","quality review","gated","quality","code-quality","file","worktree","code","review",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":26},"01M6QEAYMVDN8RZCVHQS7YNCBJ","pr-lens","Generate local PR Lens architecture and data-flow diagrams alongside a GitGuardex Codex or Claude PR review.","https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002Fskills\u002Fpr-lens\u002FSKILL.md",[],[88,149,150,151,152,122,153,154,155,156,141,157,126,115],"lens","pr lens","data-flow","data","generate","pr review","architecture","codex","diagrams",{"skillNo":159,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":26},"01M6QEAVDZQRKP05NHQ2AWR3MY","https:\u002F\u002Fgithub.com\u002Fopencue\u002Fgitguardex\u002Fblob\u002Fmain\u002Fskills\u002Fgx-act\u002FSKILL.md",[162],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[87,86,73,95,94,96,97,92,98,93,91,90,88,89]]