[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MXFWT3GS1FR0K03D8QVPD2":3,"skill-same:01M6MXFWT3GS1FR0K03D8QVPD2":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},"01M6MXFWT3GS1FR0K03D8QVPD2","deployment-designer",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\u002Flogos\u002Fchanges\u002Farchive\u002F20260829-2333-release-0-14-1-local\u002Fdeployment-artifacts-20260830T0554Z\u002Fcandidate-unpack\u002Fpackage\u002Fskills\u002Fdeployment-designer\u002FSKILL.md",[],[18,19,20],"deployment","deployment designer","designer","2026-11-10 10:12:30",false,"# Skill: Deployment Designer\n\n> 在代码实现前输出完整部署方案：部署拓扑、环境配置、发布命令、数据迁移、回滚策略和部署后冒烟测试方案。该 Skill 是 Phase 3 Step 3 的执行入口。\n\n## 触发条件\n\n- 用户要求设计部署方案、发布方案或上线方案\n- 用户提到 “Phase 3 Step 3”、“部署方案”、“deployment plan”\n- API \u002F DB 设计完成后，需要进入部署方案设计\n- Initial 阶段准备进入测试设计前，`3-technical-plan\u002F3-deployment\u002F` 仍为空\n\n## 前置依赖\n\n1. `logos\u002Fresources\u002Fprd\u002F3-technical-plan\u002F1-architecture\u002F` 中存在架构概要\n2. `logos\u002Fresources\u002Fprd\u002F3-technical-plan\u002F2-scenario-implementation\u002F` 中存在场景实现文档\n3. API \u002F DB 设计已完成，或对应模块在 `skip_phases` 中明确跳过\n4. `logos\u002Flogos-project.yaml` 可读\n\n## 核心能力\n\n1. 从架构、API、DB 和技术栈中推导部署目标\n2. 设计本地 \u002F 测试 \u002F 预发 \u002F 生产环境部署拓扑\n3. 明确环境变量、密钥来源、构建命令和发布命令\n4. 定义数据迁移、初始化数据和回滚策略\n5. 设计部署后检查清单\n6. 设计 smoke 测试方案输入，供 `test-writer` 生成 `SMOKE-*` 用例\n7. 更新 `logos-project.yaml` 的部署门禁信息\n\n## 执行步骤\n\n### Step 1: 读取上下文\n\n必须读取：\n\n- `logos\u002Flogos-project.yaml`\n- 架构概要文档\n- 场景实现文档\n- API 规格（如存在）\n- DB DDL（如存在）\n- 现有部署方案（如存在）\n\n重点确认：\n\n- 项目是否需要部署\n- 目标环境有哪些\n- 是否存在远程服务、生产环境、密钥、域名、证书或数据迁移\n- smoke 需要覆盖哪些最小链路\n\n### Step 2: 判断部署门禁\n\n默认规则：\n\n- 软件项目默认需要部署方案\n- 有运行环境的项目默认需要部署执行和 smoke\n- 纯文档、纯规范、无需运行环境的库项目可声明 `deployment_required: false`\n\n若用户选择无需部署，部署方案仍需写明原因和跳过条件。\n\n### Step 3: 输出部署方案\n\n默认文件：\n\n`logos\u002Fresources\u002Fprd\u002F3-technical-plan\u002F3-deployment\u002Fcore-01-deployment-plan.md`\n\n**⚠️ Mermaid 部署拓扑图语法安全（强制）**：\n- 部署拓扑通常使用 Mermaid `graph` \u002F `flowchart`，节点标签默认写成 `ID[\"标签文本\"]`。\n- 含域名、URL、API 路径、端口、环境名、云服务名、中文、空格或 `\u003Cbr\u002F>` 的标签必须加双引号：`Pages[\"Cloudflare Pages\"]`、`API[\"API :8787\"]`、`Proxy[\"\u002Fvoice\u002Fapi 代理\"]`。\n- 错误：`Proxy[\u002Fvoice\u002Fapi 代理]`，因为 `[\u002F` 会触发 Mermaid 平行四边形形状语法，容易导致部署图渲染失败。\n- 多行标签使用 `\u003Cbr\u002F>`，整段文本仍放在同一对双引号内：`Worker[\"Cloudflare Worker\u003Cbr\u002F>staging\"]`。\n- 子图名称含空格、中文或特殊字符时必须加引号：`subgraph \"Staging Environment\"`。\n- 只有明确要表达特定形状时才使用 Mermaid 形状语法；普通部署组件一律使用带引号的文本节点。\n\n文档结构：\n\n```markdown\n# core-01-deployment-plan\n\n## 一、部署目标\n\n## 二、部署拓扑\n\n## 三、环境变量与密钥\n\n## 四、构建与发布命令\n\n## 五、数据迁移策略\n\n## 六、回滚策略\n\n## 七、部署后检查清单\n\n## 八、冒烟测试方案\n\n## 九、门禁结论\n```\n\n### Step 4: 设计 smoke 输入\n\n在部署方案的“冒烟测试方案”中列出必须覆盖的 smoke 检查项：\n\n- 健康检查\n- 核心入口\n- 数据库迁移\n- 静态资源\n- 配置与密钥\n- 关键链路\n- 日志与监控\n\n具体 `SMOKE-*` 用例由 `test-writer` 输出到 `logos\u002Fresources\u002Ftest\u002Fsmoke\u002F`。\n\n### Step 5: 更新 logos-project.yaml\n\n如模块需要部署，建议写入：\n\n```yaml\ndeployment_gates:\n  core:\n    deployment_required: true\n    smoke_required: true\n    environments:\n      - staging\n```\n\n并将部署方案加入 `resource_index`。\n\n## 输出规范\n\n- 部署方案：`logos\u002Fresources\u002Fprd\u002F3-technical-plan\u002F3-deployment\u002Fcore-01-deployment-plan.md`\n- 文档语言遵循项目 locale\n- Mermaid 可用于部署拓扑图，且必须遵循上述节点标签与子图命名安全规则\n- 不执行任何部署命令\n\n## 人类确认点\n\n本 Skill 只设计部署方案，不执行部署。部署执行必须等到：\n\n1. 代码实现完成\n2. `openlogos verify` 通过\n3. 用户明确授权部署\n\n## 推荐提示词\n\n- `帮我设计部署方案`\n- `按 Phase 3 Step 3 输出部署方案`\n- `基于当前架构设计 staging 部署和 smoke 方案`\n",{},"master","abf55fdedadaeb660f928aa7258b9ec35d4ab003","logos\u002Fchanges\u002Farchive\u002F20260829-2333-release-0-14-1-local\u002Fdeployment-artifacts-20260830T0554Z\u002Fcandidate-unpack\u002Fpackage\u002Fskills\u002Fdeployment-designer",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 deployment-designer",{"tool":38,"command":39},"bunx","bunx skills add miniidealab\u002Fopenlogos --skill deployment-designer",{"tool":41,"command":42},"pnpm","pnpm dlx skills add miniidealab\u002Fopenlogos --skill deployment-designer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Flogos\u002Fchanges\u002Farchive\u002F20260829-2333-release-0-14-1-local\u002Fdeployment-artifacts-20260830T0554Z\u002Fcandidate-unpack\u002Fpackage\u002Fskills\u002Fdeployment-designer\u002FSKILL.md",true,[],[47,93,105,114,122,131],{"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","测试与质量",[102,103,104],"writer","test writer","test",{"skillNo":106,"name":107,"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":108,"categories":109,"keywords":111,"publishedAt":21},"01M6MXWSAMN9AD3T8F6N099ZGY","test-orchestrator","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Ftest-orchestrator\u002FSKILL.md",[110],{"categoryNo":99,"categoryName":100,"taxonomyType":56,"taxonomyTypeDesc":57},[112,113,104],"orchestrator","test orchestrator",{"skillNo":115,"name":116,"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":117,"categories":118,"keywords":119,"publishedAt":21},"01M6MXWN29FY7K9ASMFRSPWQCN","slice-planner","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Fslice-planner\u002FSKILL.md",[],[120,121],"slice planner","planner",{"skillNo":123,"name":124,"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":125,"categories":126,"keywords":127,"publishedAt":21},"01M6MXWFR1C1V66NSRTAM1FZPR","scenario-architect","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Fscenario-architect\u002FSKILL.md",[],[128,129,130],"architect","scenario","scenario architect",{"skillNo":132,"name":133,"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":134,"categories":135,"keywords":136,"publishedAt":21},"01M6MXWD6ZCGPT4FDT580S8K96","project-init","https:\u002F\u002Fgithub.com\u002Fminiidealab\u002Fopenlogos\u002Fblob\u002Fmaster\u002Fskills\u002Fproject-init\u002FSKILL.md",[],[137,138,139],"project init","init","project"]