[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71PBYXE0VXGS6HV1HMWZ3AH":3,"skill-same:01M71PBYXE0VXGS6HV1HMWZ3AH":70},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M71PBYXE0VXGS6HV1HMWZ3AH","openspec-update-change",null,"Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.","MuShi17\u002FRollo-Code","MuShi17","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F134412104?v=4","01M71PBCMDNS56TC97TVJA960Z","林磊","01M71PBCN6ZKE8PR1VX7NSHAYZ",1,"MIT","https:\u002F\u002Fgithub.com\u002FMuShi17\u002FRollo-Code\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-update-change\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"change","openspec update change","update","openspec","coherent","cli","plan","with","one","code","artifacts","Bash","decisions","when","Existing","use","new","planning","never","Fold","2026-11-10 13:02:02",false,"---\nname: openspec-update-change\ndescription: Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.\nallowed-tools: Bash(openspec:*)\nlicense: MIT\ncompatibility: Requires openspec CLI.\nmetadata:\n  author: openspec\n  version: \"1.0\"\n  generatedBy: \"1.12.0\"\n---\n\nRevise a change's existing planning artifacts and keep them coherent. Never edit code.\n\n**Store selection:** If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run `openspec store list --json` to discover registered store ids, then pass `--store \u003Cid>` on the commands that read or write specs and changes (`new change`, `status`, `instructions`, `list`, `show`, `validate`, `archive`, `doctor`, `context`, `schemas`, `view`). Once selected, treat `--store \u003Cid>` as sticky for the rest of the workflow. Every unscoped example of those commands below is shorthand: before running it, append the flag. For example, run `openspec status --change \"\u003Cname>\" --json --store \"\u003Cid>\"`, not the unscoped form shown below. Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local `openspec\u002F` root.\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`$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` is an optional workflow and may not be installed. Before suggesting it anywhere below, verify that it is available. If it is unavailable, `openspec status --change \"\u003Cname>\" --json` shows the next artifact and `openspec instructions \"\u003Cartifact-id>\" --change \"\u003Cname>\" --json` explains how to create it.\n\n**Steps**\n\n1. **Select the change**\n\n   If a name is provided, use it. Otherwise:\n   - Infer from conversation context if the user mentioned a change\n   - Auto-select if only one active change exists\n   - If ambiguous, run `openspec list --json` to get available changes sorted by most recently modified, and ask the user to select one\n\n   When prompting, present the top 3-4 most recently modified changes as options, showing:\n   - Change name\n   - Schema (from `schema` field if present, otherwise \"spec-driven\")\n   - Status (e.g., \"0\u002F5 tasks\", \"complete\", \"no tasks\")\n   - How recently it was modified (from `lastModified` field)\n\n   Mark the most recently modified change as \"(Recommended)\" since it's likely what the user wants to update.\n\n   Always announce: \"Using change: \u003Cname>\" and how to override (e.g., `$openspec-update-change (Codex) or \u002Fopenspec-update-change (other agents) \u003Cother>`).\n\n2. **Get the change's artifacts**\n   ```bash\n   openspec status --change \"\u003Cname>\" --json\n   ```\n   Parse the JSON to understand current state. The response includes:\n   - `schemaName`: The workflow schema being used (e.g., \"spec-driven\")\n   - `artifacts`: Array of artifacts with their status (\"done\", \"skipped\", \"ready\", \"blocked\")\n   - `isPlanningComplete`: Boolean indicating if all planning artifacts are complete. Older CLI versions expose the same value as `isComplete`.\n   - `planningHome`, `changeRoot`, `artifactPaths`, and `actionContext`: path and scope context. Use these instead of assuming repo-local paths.\n\n   The artifact ids and paths come from the active schema - do NOT assume them, and do NOT branch on hardcoded artifact names. Custom schemas must work unchanged.\n\n   The files to edit are `artifactPaths.\u003Cid>.existingOutputPaths` - the concrete files that exist on disk, already glob-expanded for glob artifacts (e.g. `specs\u002F**\u002F*.md`). Do NOT write to `resolvedOutputPath`: for a glob artifact it is still the glob pattern, not a real file.\n\n3. **Understand the request**\n   - If the user asked for a specific revision (\"the design now uses X\"), that is the starting edit.\n   - If they only said \"update\" \u002F \"make this coherent\", treat it as a coherence review: read the existing artifacts and check them against each other for contradictions, gaps, and duplication.\n\n4. **Read and reconcile**\n   - Read the artifact(s) the request touches and the change's other existing artifacts.\n   - Apply the requested edit. Then check every other existing artifact against it - in ANY direction: an edit to a later artifact may require revising an earlier one, not only the other way around. Build order is a useful reading order, not a constraint on which artifacts may be revised.\n   - Note everything that is now inconsistent, missing, or contradictory.\n   - Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` to create them.\n   - If the change is already coherent, say so and make no edits.\n\n5. **Confirm and apply, one artifact at a time**\n   - Show each proposed revision and why. Write only after the user confirms.\n   - If the user rejects a revision, do not write it - leave that artifact unchanged.\n   - When a substantial rewrite is needed, get that artifact's rules and template first:\n     ```bash\n     openspec instructions \"\u003Cartifact-id>\" --change \"\u003Cname>\" --json\n     ```\n\n6. **Point to the next step (guidance only - NEVER act on it)**\n   - Artifacts still missing -> suggest `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` to create them.\n   - Change already implemented (tasks checked off \u002F already applied) -> the code may no longer match the revised plan; suggest `$openspec-apply-change (Codex) or \u002Fopenspec-apply-change (other agents)` to carry the delta into code.\n   - Everything done and implemented -> suggest `$openspec-archive-change (Codex) or \u002Fopenspec-archive-change (other agents)`.\n\n**Output**\n\nAfter each invocation, show:\n- Which artifacts were revised (and which proposed revisions were rejected)\n- Anything deferred to `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` (not-yet-created artifacts or files)\n- Where the change stands and the recommended next command\n\n**Guardrails**\n- Planning artifacts only - NEVER edit implementation code. If the revised plan implies code changes, stop and point to `$openspec-apply-change (Codex) or \u002Fopenspec-apply-change (other agents)`.\n- Use the artifact ids and paths reported by `openspec status`; never branch on hardcoded artifact names.\n- Edit only the concrete files in `existingOutputPaths`; never write to a glob `resolvedOutputPath`.\n- Do not advance the build frontier: no new artifacts, no new files under glob artifacts - that is `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)`'s job.\n- Confirm every edit with the user before writing.\n- If the request changes the change's *intent* rather than refining it, first verify whether the optional `$openspec-new-change (Codex) or \u002Fopenspec-new-change (other agents)` workflow is available. If it is, recommend starting fresh with `$openspec-new-change (Codex) or \u002Fopenspec-new-change (other agents)` (the \"Update vs. Start Fresh\" heuristic). If it is unavailable, ask for a distinct unused change name and recommend `openspec new change \"\u003Cnew-change-name>\"` instead.\n","Revise a change's existing planning artifacts and keep them coherent. Never edit code.\n\n**Store selection:** If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run `openspec store list --json` to discover registered store ids, then pass `--store \u003Cid>` on the commands that read or write specs and changes (`new change`, `status`, `instructions`, `list`, `show`, `validate`, `archive`, `doctor`, `context`, `schemas`, `view`). Once selected, treat `--store \u003Cid>` as sticky for the rest of the workflow. Every unscoped example of those commands below is shorthand: before running it, append the flag. For example, run `openspec status --change \"\u003Cname>\" --json --store \"\u003Cid>\"`, not the unscoped form shown below. Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local `openspec\u002F` root.\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`$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` is an optional workflow and may not be installed. Before suggesting it anywhere below, verify that it is available. If it is unavailable, `openspec status --change \"\u003Cname>\" --json` shows the next artifact and `openspec instructions \"\u003Cartifact-id>\" --change \"\u003Cname>\" --json` explains how to create it.\n\n**Steps**\n\n1. **Select the change**\n\n   If a name is provided, use it. Otherwise:\n   - Infer from conversation context if the user mentioned a change\n   - Auto-select if only one active change exists\n   - If ambiguous, run `openspec list --json` to get available changes sorted by most recently modified, and ask the user to select one\n\n   When prompting, present the top 3-4 most recently modified changes as options, showing:\n   - Change name\n   - Schema (from `schema` field if present, otherwise \"spec-driven\")\n   - Status (e.g., \"0\u002F5 tasks\", \"complete\", \"no tasks\")\n   - How recently it was modified (from `lastModified` field)\n\n   Mark the most recently modified change as \"(Recommended)\" since it's likely what the user wants to update.\n\n   Always announce: \"Using change: \u003Cname>\" and how to override (e.g., `$openspec-update-change (Codex) or \u002Fopenspec-update-change (other agents) \u003Cother>`).\n\n2. **Get the change's artifacts**\n   ```bash\n   openspec status --change \"\u003Cname>\" --json\n   ```\n   Parse the JSON to understand current state. The response includes:\n   - `schemaName`: The workflow schema being used (e.g., \"spec-driven\")\n   - `artifacts`: Array of artifacts with their status (\"done\", \"skipped\", \"ready\", \"blocked\")\n   - `isPlanningComplete`: Boolean indicating if all planning artifacts are complete. Older CLI versions expose the same value as `isComplete`.\n   - `planningHome`, `changeRoot`, `artifactPaths`, and `actionContext`: path and scope context. Use these instead of assuming repo-local paths.\n\n   The artifact ids and paths come from the active schema - do NOT assume them, and do NOT branch on hardcoded artifact names. Custom schemas must work unchanged.\n\n   The files to edit are `artifactPaths.\u003Cid>.existingOutputPaths` - the concrete files that exist on disk, already glob-expanded for glob artifacts (e.g. `specs\u002F**\u002F*.md`). Do NOT write to `resolvedOutputPath`: for a glob artifact it is still the glob pattern, not a real file.\n\n3. **Understand the request**\n   - If the user asked for a specific revision (\"the design now uses X\"), that is the starting edit.\n   - If they only said \"update\" \u002F \"make this coherent\", treat it as a coherence review: read the existing artifacts and check them against each other for contradictions, gaps, and duplication.\n\n4. **Read and reconcile**\n   - Read the artifact(s) the request touches and the change's other existing artifacts.\n   - Apply the requested edit. Then check every other existing artifact against it - in ANY direction: an edit to a later artifact may require revising an earlier one, not only the other way around. Build order is a useful reading order, not a constraint on which artifacts may be revised.\n   - Note everything that is now inconsistent, missing, or contradictory.\n   - Revise only files that already exist (`existingOutputPaths`). Do NOT create artifacts that don't exist yet, and do NOT invent new files under a glob artifact - note them and point the user to `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` to create them.\n   - If the change is already coherent, say so and make no edits.\n\n5. **Confirm and apply, one artifact at a time**\n   - Show each proposed revision and why. Write only after the user confirms.\n   - If the user rejects a revision, do not write it - leave that artifact unchanged.\n   - When a substantial rewrite is needed, get that artifact's rules and template first:\n     ```bash\n     openspec instructions \"\u003Cartifact-id>\" --change \"\u003Cname>\" --json\n     ```\n\n6. **Point to the next step (guidance only - NEVER act on it)**\n   - Artifacts still missing -> suggest `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` to create them.\n   - Change already implemented (tasks checked off \u002F already applied) -> the code may no longer match the revised plan; suggest `$openspec-apply-change (Codex) or \u002Fopenspec-apply-change (other agents)` to carry the delta into code.\n   - Everything done and implemented -> suggest `$openspec-archive-change (Codex) or \u002Fopenspec-archive-change (other agents)`.\n\n**Output**\n\nAfter each invocation, show:\n- Which artifacts were revised (and which proposed revisions were rejected)\n- Anything deferred to `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)` (not-yet-created artifacts or files)\n- Where the change stands and the recommended next command\n\n**Guardrails**\n- Planning artifacts only - NEVER edit implementation code. If the revised plan implies code changes, stop and point to `$openspec-apply-change (Codex) or \u002Fopenspec-apply-change (other agents)`.\n- Use the artifact ids and paths reported by `openspec status`; never branch on hardcoded artifact names.\n- Edit only the concrete files in `existingOutputPaths`; never write to a glob `resolvedOutputPath`.\n- Do not advance the build frontier: no new artifacts, no new files under glob artifacts - that is `$openspec-continue-change (Codex) or \u002Fopenspec-continue-change (other agents)`'s job.\n- Confirm every edit with the user before writing.\n- If the request changes the change's *intent* rather than refining it, first verify whether the optional `$openspec-new-change (Codex) or \u002Fopenspec-new-change (other agents)` workflow is available. If it is, recommend starting fresh with `$openspec-new-change (Codex) or \u002Fopenspec-new-change (other agents)` (the \"Update vs. Start Fresh\" heuristic). If it is unavailable, ask for a distinct unused change name and recommend `openspec new change \"\u003Cnew-change-name>\"` instead.\n",{"name":5,"license":15,"metadata":44,"description":7,"allowed-tools":47,"compatibility":48},{"author":22,"version":45,"generatedBy":46},"1.0","1.12.0","Bash(openspec:*)","Requires openspec CLI.","main","41de37f5c51137a665ab0b7687bc4dc6552f78aa",".agents\u002Fskills\u002Fopenspec-update-change",0,"https:\u002F\u002Fgithub.com\u002FMuShi17\u002FRollo-Code","https:\u002F\u002Fgithub.com\u002FMuShi17","2026-09-14 01:06:53",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add MuShi17\u002FRollo-Code --skill openspec-update-change",{"tool":62,"command":63},"bunx","bunx skills add MuShi17\u002FRollo-Code --skill openspec-update-change",{"tool":65,"command":66},"pnpm","pnpm dlx skills add MuShi17\u002FRollo-Code --skill openspec-update-change","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMuShi17\u002FRollo-Code\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-update-change\u002FSKILL.md",true,[],[71,84,102,118,129],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":39},"01M71PBVSDP6KXTHH93HYHF0BD","openspec-sync-specs","Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.","https:\u002F\u002Fgithub.com\u002FMuShi17\u002FRollo-Code\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-sync-specs\u002FSKILL.md",[],[22,78,79,32,24,80,81,19,26,82,49,34,21,30,83],"sync","openspec sync specs","delta","changes","spec","user",{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":39},"01M71PBSJQYZF6X5N2RCC30ZRN","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\u002FMuShi17\u002FRollo-Code\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[22,91,92,19,24,93,94,95,96,97,98,35,99,26,100,29,30,32,34,101],"openspec propose","proposal","get","build","for","ready","complete","design","implementation","generated","describe",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":39},"01M71PBPWQYQ2Z2BZP2E2BR275","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\u002FMuShi17\u002FRollo-Code\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",[],[109,110,22,111,112,113,24,19,114,30,32,34,83,95,115,116,117],"openspec explore","explore","mode","think","partner","requirements","thinking partner","ideas","thinking",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":39},"01M71PBM4QPEJAECB7DAGF3TEY","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.","https:\u002F\u002Fgithub.com\u002FMuShi17\u002FRollo-Code\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",[],[125,22,126,19,34,99,127,97,24,32,83,30,128],"archive","openspec archive change","finalize","workflow",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":39},"01M71PBJJ24QE0GQG2AMSEHE45","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\u002FMuShi17\u002FRollo-Code\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-apply-change\u002FSKILL.md",[],[136,137,138,22,19,139,30,140,83,141,32,34,99,142,143,144,24,145],"openspec apply change","apply","openspec apply","apply change","implement","tasks","start","implementing","continue","work"]