[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MX960SC2HX8Z8A887K7DNF":3,"skill-same:01M6MX960SC2HX8Z8A887K7DNF":46},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M6MX960SC2HX8Z8A887K7DNF","change-writer",null,"miniidealab\u002Fopenlogos","miniidealab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4251156?v=4","01M6MX6BM454XESZCRPBQQHKRT","FredHuang","01M6MX6BR4417H4QA658D4GW9X",581,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fexamples\u002Fmoney-log\u002Flogos\u002Fskills\u002Fchange-writer\u002FSKILL.md",[],[18,19,20],"change","writer","change writer","2026-11-10 10:12:30",false,"# Skill: Change Writer\n\n> 辅助填写变更提案——分析变更影响范围，生成结构化的 proposal.md 和按阶段拆解的 tasks.md，确保变更可追溯、影响可控。\n\n## 触发条件\n\n- 用户刚运行完 `openlogos change \u003Cslug>` 并希望 AI 帮忙填写提案\n- 用户描述需要修改、新增或删除某个场景\u002F功能\n- 用户提到\"变更提案\"、\"change proposal\"、\"迭代\"、\"改需求\"\n\n## 前置依赖\n\n1. 项目已初始化（`logos\u002Flogos.config.json` 存在）\n2. 变更提案目录已由 CLI 创建（`logos\u002Fchanges\u002F\u003Cslug>\u002F` 存在）\n3. 主文档可读（`logos\u002Fresources\u002F` 中有已生效的文档）\n\n如果前置条件不满足，提示用户先运行 `openlogos change \u003Cslug>` 创建提案目录。\n\n## 核心能力\n\n1. 理解用户描述的变更意图\n2. 扫描 `logos\u002Fresources\u002F` 中的现有文档，定位受影响范围\n3. 根据变更传播规则判断变更类型（需求级 \u002F 设计级 \u002F 接口级 \u002F 代码级）\n4. 生成符合规范的 proposal.md\n5. 按变更类型自动拆解 tasks.md\n\n## 执行步骤\n\n### Step 1: 理解变更意图\n\n与用户确认以下信息（信息不足则追问，最多 2 轮）：\n\n- **变更是什么**：要新增、修改还是删除什么？\n- **变更原因**：为什么要做这个变更？来自需求反馈、Bug 还是优化？\n- **关联场景**：涉及哪些已有场景编号（S01, S02...）？\n\n### Step 2: 分析影响范围\n\n扫描 `logos\u002Fresources\u002F` 中的文档，确定影响范围：\n\n1. 读取需求文档（`prd\u002F1-product-requirements\u002F`），检查相关场景定义\n2. 读取产品设计（`prd\u002F2-product-design\u002F`），检查相关功能规格和原型\n3. 读取技术方案（`prd\u002F3-technical-plan\u002F`），检查相关时序图\n4. 读取 API 文档（`api\u002F`），检查相关端点\n5. 读取 DB 文档（`database\u002F`），检查相关表结构\n6. 读取编排测试（`scenario\u002F`），检查相关测试用例\n\n### Step 3: 判断变更类型\n\n参照变更传播规则确定变更类型及最小更新范围：\n\n| 变更类型 | 最少需要更新 |\n|---------|------------|\n| 需求级变更 | 全链路（需求 → 设计 → 架构 → API\u002FDB → 编排 → 代码） |\n| 设计级变更 | 原型 + 场景 + API\u002FDB + 编排 + 代码 |\n| 接口级变更 | API\u002FDB + 编排 + 代码 |\n| 代码级修复 | 代码 + 重新验收 |\n\n### Step 4: 生成 proposal.md\n\n按以下模板生成，写入 `logos\u002Fchanges\u002F\u003Cslug>\u002Fproposal.md`：\n\n```markdown\n# 变更提案：[变更名称]\n\n## 变更原因\n[为什么要做这个变更？来源于哪个需求\u002F反馈\u002FBug？]\n\n## 变更类型\n[需求级 \u002F 设计级 \u002F 接口级 \u002F 代码级]\n\n## 变更范围\n- 影响的需求文档：[列表，精确到文件名和章节]\n- 影响的功能规格：[列表]\n- 影响的业务场景：[场景编号列表]\n- 影响的 API：[端点列表]\n- 影响的 DB 表：[表名列表]\n- 影响的编排测试：[列表]\n\n## 变更概述\n[用 1-3 段话概述具体改什么]\n```\n\n### Step 5: 生成 tasks.md\n\n根据变更类型和影响范围，自动拆解任务清单。只列出需要更新的阶段：\n\n```markdown\n# 实现任务\n\n## Phase 1: 文档变更\n- [ ] 更新需求文档中 S0x 的验收条件\n- [ ] 在场景总览表中新增\u002F修改场景\n\n## Phase 2: 设计变更\n- [ ] 更新功能规格中 S0x 的交互设计\n- [ ] 更新原型\n\n## Phase 3: 技术变更\n- [ ] 更新 S0x 的时序图\n- [ ] 更新 API YAML\n- [ ] **验证 API YAML** — `logos\u002Fresources\u002Fapi\u002F` 下所有文件必须为有效 YAML 且符合 OpenAPI 3.x 规范（所有包含 `:` 或特殊字符的 `description`\u002F`summary` 值必须用双引号包裹）\n- [ ] 更新 DB DDL\n- [ ] 更新编排测试用例\n- [ ] 实现代码变更\n```\n\n### Step 6: 引导后续操作（链式驱动）\n\n提供一条可直接执行的提示词，让用户一句话启动全部任务的链式执行：\n\n- **需求级 \u002F 设计级变更**（多任务）：建议用户说「按 tasks.md 帮我逐步更新 S0x 的所有受影响文档」\n- **代码级修复**（少任务）：建议用户说「帮我修复 S0x 的 [问题描述] 并重新验收」\n\n链式执行的行为规范：\n1. AI 读取 `tasks.md`，按顺序逐项执行\n2. 每完成一项任务，汇报修改摘要，并自动提示「继续下一项？」\n3. 用户说「继续」或给出调整意见后，执行下一项\n4. 全部任务完成后，提醒用户运行 `openlogos merge \u003Cslug>`\n\n**关键原则**：不要让用户手动跟踪任务清单——AI 应主动驱动流程。\n\n## 输出规范\n\n- 文件格式：Markdown\n- 存放位置：`logos\u002Fchanges\u002F\u003Cslug>\u002F`\n- 文件名：`proposal.md` 和 `tasks.md`（覆盖 CLI 生成的模板）\n\n## 实践经验\n\n- **宁可高估影响范围**：漏掉一个环节的更新比多检查一遍更危险\n- **变更类型决定工作量**：帮助用户在动手前理解改一个需求可能需要全链路更新\n- **tasks.md 是执行清单**：每完成一项打一个 `[x]`，方便追踪进度\n- **小变更也走流程**：看似\"只改一行 API\"的变更，可能影响编排测试和代码\n\n## 推荐提示词\n\n以下提示词可以直接复制给 AI 使用：\n\n**填写提案**：\n- `帮我填写变更提案 \u003Cslug>`\n- `我要给 S02 登录场景加一个记住密码功能，帮我分析影响范围`\n- `这个 Bug 修复只涉及代码层，帮我快速写个提案`\n\n**执行任务（提案填写完成后）**：\n- `按 tasks.md 帮我逐步更新 S02 的所有受影响文档`\n- `帮我修复 S02 登录接口的 500 错误并重新验收`\n",{},"master","abf55fdedadaeb660f928aa7258b9ec35d4ab003","examples\u002Fmoney-log\u002Flogos\u002Fskills\u002Fchange-writer",10,"https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos","https:\u002F\u002Fgithub.com\u002Fminiidealab","2026-10-18 11:36:11",{"source":7,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add miniidealab\u002Fopenlogos --skill change-writer",{"tool":38,"command":39},"bunx","bunx skills add miniidealab\u002Fopenlogos --skill change-writer",{"tool":41,"command":42},"pnpm","pnpm dlx skills add miniidealab\u002Fopenlogos --skill change-writer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fexamples\u002Fmoney-log\u002Flogos\u002Fskills\u002Fchange-writer\u002FSKILL.md",true,[],[47,93,104,113,121,130],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":72,"publishedAt":21},"01M6MXX45142DGRFD9ZYPT5YC9","ui-ux-pro-max","UI\u002FUX design intelligence. 67 styles, 96 palettes, 57 font pairings, 25 charts, 13 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn\u002Fui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI\u002FUX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient. Integrations: shadcn\u002Fui MCP for component search and examples.","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Fui-ux-pro-max\u002FSKILL.md",[53,58,61,64,69],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":59,"categoryName":60,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":62,"categoryName":63,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",{"categoryNo":70,"categoryName":71,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000033","数据分析师",[73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],"ui ux","pro","max","ui ux pro max","ui","ux","projects","mode","card","app","tsx","fix","improve","Tailwind","Charts","Animation","design","actions","MCP","search",{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":21},"01M6MXWY8HJV93BBR8FPNJXAMV","test-writer","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Ftest-writer\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000008","测试与质量",[19,102,103],"test writer","test",{"skillNo":105,"name":106,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":110,"publishedAt":21},"01M6MXWSAMN9AD3T8F6N099ZGY","test-orchestrator","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Ftest-orchestrator\u002FSKILL.md",[109],{"categoryNo":99,"categoryName":100,"taxonomyType":56,"taxonomyTypeDesc":57},[111,112,103],"orchestrator","test orchestrator",{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":21},"01M6MXWN29FY7K9ASMFRSPWQCN","slice-planner","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Fslice-planner\u002FSKILL.md",[],[119,120],"slice planner","planner",{"skillNo":122,"name":123,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":21},"01M6MXWFR1C1V66NSRTAM1FZPR","scenario-architect","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Fscenario-architect\u002FSKILL.md",[],[127,128,129],"architect","scenario","scenario architect",{"skillNo":131,"name":132,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":21},"01M6MXWD6ZCGPT4FDT580S8K96","project-init","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Fproject-init\u002FSKILL.md",[],[136,137,138],"project init","init","project"]