[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H5HSHDJSQ0QW71GF9G7SSV":3,"skill-same:01M6H5HSHDJSQ0QW71GF9G7SSV":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":50,"commitSha":51,"skillDirectory":5,"forksCount":13,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6H5HSHDJSQ0QW71GF9G7SSV","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.","cookeyholder\u002Fusing-ai-skills","cookeyholder","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F75561931?v=4","01M6H58KRK3MSWHTTB1Y7Q82A1","01M6H58KX5T98CH5KGFGG3K0WJ",0,"MIT","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fopenspec-update-change\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"change","update","openspec update change","openspec","new","cli","when","Existing","with","revise","coherent","Fold","never","reconcile","use","edit","decisions","plan","Bash","artifacts","planning","code","2026-11-10 10:12:30",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.6.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`). 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**Steps**\n\n1. **If no change name provided, prompt for selection**\n\n   Run `openspec list --json` to get available changes sorted by most recently modified. Then use the **AskUserQuestion tool** to let the user select which change to update.\n\n   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   **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.\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\", \"ready\", \"blocked\")\n   - `isComplete`: Boolean indicating if all artifacts are complete\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 `\u002Fopsx-continue` 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 `\u002Fopsx-continue` to create them.\n   - Change already implemented (tasks checked off \u002F already applied) -> the code may no longer match the revised plan; suggest `\u002Fopsx-apply` to carry the delta into code.\n   - Everything done and implemented -> suggest `\u002Fopsx-archive`.\n\n**Output**\n\nAfter each invocation, show:\n- Which artifacts were revised (and which proposed revisions were rejected)\n- Anything deferred to `\u002Fopsx-continue` (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 `\u002Fopsx-apply`.\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 `\u002Fopsx-continue`'s job.\n- Confirm every edit with the user before writing.\n- If the request changes the change's *intent* rather than refining it, recommend starting fresh with `\u002Fopsx-new` (the \"Update vs. Start Fresh\" heuristic).\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`). 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**Steps**\n\n1. **If no change name provided, prompt for selection**\n\n   Run `openspec list --json` to get available changes sorted by most recently modified. Then use the **AskUserQuestion tool** to let the user select which change to update.\n\n   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   **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.\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\", \"ready\", \"blocked\")\n   - `isComplete`: Boolean indicating if all artifacts are complete\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 `\u002Fopsx-continue` 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 `\u002Fopsx-continue` to create them.\n   - Change already implemented (tasks checked off \u002F already applied) -> the code may no longer match the revised plan; suggest `\u002Fopsx-apply` to carry the delta into code.\n   - Everything done and implemented -> suggest `\u002Fopsx-archive`.\n\n**Output**\n\nAfter each invocation, show:\n- Which artifacts were revised (and which proposed revisions were rejected)\n- Anything deferred to `\u002Fopsx-continue` (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 `\u002Fopsx-apply`.\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 `\u002Fopsx-continue`'s job.\n- Confirm every edit with the user before writing.\n- If the request changes the change's *intent* rather than refining it, recommend starting fresh with `\u002Fopsx-new` (the \"Update vs. Start Fresh\" heuristic).\n",{"name":5,"license":14,"metadata":45,"description":7,"allowed-tools":48,"compatibility":49},{"author":21,"version":46,"generatedBy":47},"1.0","1.6.0","Bash(openspec:*)","Requires openspec CLI.","main","9cec288199a31b49d95245753d0eb94ebc3f099b","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills","https:\u002F\u002Fgithub.com\u002Fcookeyholder","2026-11-09 23:14:08",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add cookeyholder\u002Fusing-ai-skills --skill openspec-update-change",{"tool":61,"command":62},"bunx","bunx skills add cookeyholder\u002Fusing-ai-skills --skill openspec-update-change",{"tool":64,"command":65},"pnpm","pnpm dlx skills add cookeyholder\u002Fusing-ai-skills --skill openspec-update-change","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fopenspec-update-change\u002FSKILL.md",true,[],[70,103,128,156,185,211],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":74,"licenseFileUrl":75,"sourceHtmlUrl":76,"categories":77,"keywords":86,"publishedAt":40},"01M6H5RCXCG2J10DQJZEXG5YD5","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fwebapp-testing\u002FSKILL.md",[78,83],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":84,"categoryName":85,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000009","前端开发",[87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,26,102],"testing","webapp testing","webapp","frontend","screenshots","playwright","web","debugging","toolkit","browser","ui","logs","applications","behavior","local","for",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":74,"licenseFileUrl":107,"sourceHtmlUrl":108,"categories":109,"keywords":111,"publishedAt":40},"01M6H5R995MJ6KTH5RA7P0ZJTW","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fweb-artifacts-builder\u002FSKILL.md",[110],{"categoryNo":84,"categoryName":85,"taxonomyType":81,"taxonomyTypeDesc":82},[112,93,37,113,114,90,115,116,117,118,119,120,121,122,32,123,124,125,126,102,127],"web artifacts builder","artifacts builder","builder","css","components","react","routing","state management","state","file","Tailwind","single-file","simple","ui components","multi","single",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":74,"licenseFileUrl":132,"sourceHtmlUrl":133,"categories":134,"keywords":138,"publishedAt":40},"01M6H5P8JRJQ89YNEJ0XPPRYBW","theme-factory","Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors\u002Ffonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Ftheme-factory\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Ftheme-factory\u002FSKILL.md",[135],{"categoryNo":136,"categoryName":137,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000015","视觉设计",[139,140,141,142,95,143,37,144,145,146,147,148,149,150,151,26,152,153,154,102,155,22],"theme factory","factory","theme","docs","generate","SET","fly","slides","landing","styling","artifact","pages","themes","you","fonts","can","apply",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":74,"licenseFileUrl":160,"sourceHtmlUrl":161,"categories":162,"keywords":169,"publishedAt":40},"01M6H5NB01PC5BCQR35K20M489","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.\"","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fslack-gif-creator\u002FSKILL.md",[163,166],{"categoryNo":164,"categoryName":165,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":167,"categoryName":168,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000016","图像与多媒体",[170,171,172,173,174,175,176,177,178,32,179,180,181,182,183,102,184,24],"slack gif creator","slack","gif","creator","validation","Tools","constraints","Animation","knowledge","me","users","make","Utilities","concepts","request",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":74,"licenseFileUrl":189,"sourceHtmlUrl":190,"categories":191,"keywords":195,"publishedAt":40},"01M6H5N5RHSENZ03TFAB956J4V","skill-creator","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fskill-creator\u002FSKILL.md",[192],{"categoryNo":193,"categoryName":194,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000023","Skill与智能体开发",[196,173,197,198,199,200,201,202,203,204,33,32,205,206,207,180,208,102,209,25,210,24,22],"skill creator","performance","run evals","variance analysis","create","run","benchmark","analysis","improve","evals","optimize","existing skill","From Scratch","accuracy","scratch",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":74,"licenseFileUrl":215,"sourceHtmlUrl":216,"categories":217,"keywords":219,"publishedAt":40},"01M6H5GMG092AS5HM45XEQ68H4","mcp-builder","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fmcp-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcookeyholder\u002Fusing-ai-skills\u002Fblob\u002Fmain\u002Fmcp-builder\u002FSKILL.md",[218],{"categoryNo":193,"categoryName":194,"taxonomyType":81,"taxonomyTypeDesc":82},[220,221,114,222,223,224,225,226,227,175,228,229,230,231,32,232,233,234,26,102,24],"MCP","mcp builder","typescript","python","llms","model context protocol","fastmcp","services","model","node","context","guide","integrate","mcp sdk","building mcp servers"]