@captain_z/zsk-skills 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +263 -0
  2. package/bundles.yaml +104 -0
  3. package/design-handoff/.gitkeep +0 -0
  4. package/design-handoff/figma-to-code/SKILL.md +265 -0
  5. package/design-handoff/ue-mcp/SKILL.md +184 -0
  6. package/frontend/.gitkeep +0 -0
  7. package/frontend/a11y-web/SKILL.md +169 -0
  8. package/frontend/api-contract-ts/SKILL.md +275 -0
  9. package/frontend/css-bem/SKILL.md +268 -0
  10. package/frontend/design-frontend/SKILL.md +163 -0
  11. package/frontend/dor-dod-frontend/SKILL.md +114 -0
  12. package/frontend/feature-tasks-frontend/SKILL.md +246 -0
  13. package/frontend/i18n/SKILL.md +296 -0
  14. package/frontend/nfr-web/SKILL.md +258 -0
  15. package/frontend/performance-web/SKILL.md +299 -0
  16. package/frontend/react-components/SKILL.md +211 -0
  17. package/frontend/react-naming/SKILL.md +224 -0
  18. package/frontend/review-frontend/SKILL.md +126 -0
  19. package/frontend/security-web/SKILL.md +286 -0
  20. package/frontend/spec-frontend/SKILL.md +141 -0
  21. package/frontend/testing-web/SKILL.md +252 -0
  22. package/frontend/typescript/SKILL.md +219 -0
  23. package/meta/.gitkeep +0 -0
  24. package/meta/philosophy/SKILL.md +221 -0
  25. package/package.json +24 -0
  26. package/quality/.gitkeep +0 -0
  27. package/quality/a11y-principles/SKILL.md +155 -0
  28. package/quality/code-hygiene/SKILL.md +126 -0
  29. package/quality/release/SKILL.md +209 -0
  30. package/quality/security-owasp/SKILL.md +157 -0
  31. package/quality/testing-pyramid/SKILL.md +173 -0
  32. package/sdlc/.gitkeep +0 -0
  33. package/sdlc/archive/SKILL.md +267 -0
  34. package/sdlc/bugfix/SKILL.md +181 -0
  35. package/sdlc/bugfix-tasks/SKILL.md +232 -0
  36. package/sdlc/coding/SKILL.md +177 -0
  37. package/sdlc/design/SKILL.md +299 -0
  38. package/sdlc/dor-dod/SKILL.md +120 -0
  39. package/sdlc/feature/SKILL.md +162 -0
  40. package/sdlc/proposal/SKILL.md +271 -0
  41. package/sdlc/refactor/SKILL.md +220 -0
  42. package/sdlc/refactor-tasks/SKILL.md +265 -0
  43. package/sdlc/reviewing/SKILL.md +197 -0
  44. package/sdlc/spec/SKILL.md +235 -0
  45. package/sdlc/task/SKILL.md +116 -0
  46. package/sdlc/task-evidence/SKILL.md +178 -0
  47. package/sdlc/task-structure/SKILL.md +153 -0
  48. package/sdlc/task-tracking/SKILL.md +192 -0
  49. package/sdlc/verify/SKILL.md +181 -0
  50. package/system/.gitkeep +0 -0
  51. package/system/adr/SKILL.md +169 -0
  52. package/system/architecture/SKILL.md +182 -0
  53. package/system/glossary/SKILL.md +141 -0
  54. package/system/nfr-baseline/SKILL.md +156 -0
  55. package/system/project-constraints-template/SKILL.md +241 -0
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: zsk:coding
3
+ description: Coding execution after design freeze — write code and tests, follow
4
+ branch/commit conventions, enforce TDD for bugfix/refactor, respect dependency
5
+ hygiene, pass local quality gates before review. Stage 4 of the 7-stage SDLC.
6
+ category: stage
7
+ domain: sdlc
8
+ tier: core
9
+ stage: 4
10
+ variants:
11
+ - feature
12
+ - bugfix
13
+ - refactor
14
+ related:
15
+ - ../design/SKILL.md
16
+ - ../reviewing/SKILL.md
17
+ - ../dor-dod/SKILL.md
18
+ - ../task/SKILL.md
19
+ - ../../quality/testing-pyramid/SKILL.md
20
+ - ../../quality/code-hygiene/SKILL.md
21
+ triggers:
22
+ - implementing design
23
+ - TDD red green refactor
24
+ - conventional commits
25
+ - gitlab flow
26
+ - dependency hygiene
27
+ - local quality gates
28
+ - coding stage
29
+ ---
30
+
31
+ # Stage 4: Coding
32
+
33
+ > **阶段定位**:开发 - Execution
34
+ > **回答的问题**:按什么顺序动手、测试怎么写、什么算可以提交评审
35
+ > **参考规范**:Conventional Commits、GitLab Flow、Mike Cohn 测试金字塔、GSD Engage
36
+ > **吸收硬原则**:
37
+ > - **Red-Green-Refactor**(Superpowers `test-driven-development`)
38
+ > - **证据先于断言**(Superpowers `verification-before-completion`)— 本阶段产出证据链接,`verify.md` 兜底审计
39
+ > - **Bug 置信度质疑**(Superpowers `systematic-debugging`)— 修 bug 前先问三问
40
+
41
+ ## Skill 映射
42
+
43
+ | 场景 | Primary Skill |
44
+ | --- | --- |
45
+ | 执行计划 | `superpowers:executing-plans` |
46
+ | TDD | `superpowers:test-driven-development` |
47
+ | 隔离开发 | `superpowers:using-git-worktrees` |
48
+ | 提交 | `code-commit` |
49
+ | Debug | `superpowers:systematic-debugging` / `debugging` / `hunt` / `investigate` |
50
+ | GSD 心智 | Engage |
51
+
52
+ ## 阶段职责
53
+
54
+ coding 阶段**做三件事**:
55
+
56
+ 1. **动手实现**:按 spec / design 写代码 + 测试
57
+ 2. **按任务框架推进**:用 [`zsk:task`](../task/SKILL.md) 导航、按变更类型挑任务模板填写 `docs/{module}/tasks.md`,每项任务显式声明"覆盖 FR"
58
+ 3. **按协作规范提交**:分支 + commit + 依赖卫生 + 本地门禁
59
+
60
+ **不做**:
61
+ - ❌ 代码评审(→ `zsk:reviewing`)
62
+ - ❌ 验收断言(→ `zsk:verify`)
63
+ - ❌ 归档 / Postmortem(→ `zsk:archive`)
64
+
65
+ ## 变更类型差异
66
+
67
+ | 类型 | Coding 侧重 | 用的任务模板 |
68
+ | --- | --- | --- |
69
+ | **Feature** | 金字塔三层 + TDD 优先(通用) · 组件类另见 [`frontend/feature-tasks-frontend`](../../frontend/feature-tasks-frontend/SKILL.md) | — |
70
+ | **Bugfix** | TDD 强制:先写失败测试复现 bug(Red) → 修(Green) → 回归 | [`zsk:bugfix-tasks`](../bugfix-tasks/SKILL.md) |
71
+ | **Refactor** | Characterization Test 先行 → 小步原子 commit → 每步行为不变 | [`zsk:refactor-tasks`](../refactor-tasks/SKILL.md) |
72
+
73
+ ## 测试在 coding 阶段做什么
74
+
75
+ 测试用例四段归属:
76
+
77
+ | What / How | 归属 |
78
+ | --- | --- |
79
+ | What to test(AC / BDD 场景) | `zsk:spec`(阶段 2) |
80
+ | How to test(金字塔分配 / 工具选型) | `zsk:design`(阶段 3) |
81
+ | **Write & run tests**(实现代码) | **本阶段** |
82
+ | Acceptance evidence(跑出来的结果 + AC 勾选) | `zsk:verify`(阶段 6) |
83
+
84
+ 本阶段**必须**做:
85
+ - 按 spec 的 AC / BDD 写可执行测试(规范见 [`quality/testing-pyramid`](../../quality/testing-pyramid/SKILL.md))
86
+ - 新功能优先 TDD;Bugfix 强制 TDD(先红后绿);Refactor 强制 Characterization Test 先行
87
+ - 三层金字塔都要有任务条目:unit / integration / e2e
88
+ - (前端项目)a11y 自动化扫描 — 见 `frontend/a11y-web.md`
89
+
90
+ ## 分支策略(GitLab Flow)
91
+
92
+ - **主干**:`{{config.git.main_branch}}`
93
+ - **功能**:`{{config.git.feature_branch_pattern}}`(如 `feature/{scope}`)
94
+ - **修复**:`{{config.git.fix_branch_pattern}}`(如 `fix/{issue-id}`)
95
+ - **重构**:`{{config.git.refactor_branch_pattern}}`(如 `refactor/{scope}`)
96
+ - **文档**:`{{config.git.docs_branch_pattern}}`(如 `docs/{topic}`)
97
+ - 长期 diverge(> 2 周)必须 rebase
98
+ - 禁止直接向主干提交,必须经 MR / PR
99
+
100
+ ## Commit 规约(Conventional Commits)
101
+
102
+ ```text
103
+ <type>(<scope>): <subject>
104
+
105
+ <body>
106
+
107
+ <footer>
108
+ ```
109
+
110
+ ### type
111
+
112
+ | type | 用途 |
113
+ | --- | --- |
114
+ | `feat` | 新功能 |
115
+ | `fix` | 缺陷修复 |
116
+ | `docs` | 仅文档 |
117
+ | `refactor` | 重构(不改行为) |
118
+ | `perf` | 性能优化 |
119
+ | `test` | 测试相关 |
120
+ | `style` | 格式(不影响逻辑) |
121
+ | `chore` | 构建 / 依赖 / 工具 |
122
+ | `ci` | CI 配置 |
123
+ | `revert` | 回滚 |
124
+
125
+ ### 规则
126
+
127
+ - `subject`:祈使句,≤ 50 字符,不加句号
128
+ - `body`:解释 **why**,不复述 **what**,≤ 72 字符/行
129
+ - Breaking change:footer `BREAKING CHANGE:` 开头
130
+ - 关联 issue:`Closes #{issue}` / `Refs #{issue}`
131
+
132
+ ## 依赖卫生
133
+
134
+ - 新增依赖必须在 PR 中说明:**用途 / 许可证 / 体积 / 替代方案**
135
+ - 禁止 `{{config.quality.security.forbidden_licenses}}` 列表中的 license(默认 GPL / AGPL)
136
+ - 版本锁定(`package-lock.json` / `yarn.lock` / `pnpm-lock.yaml` / `Cargo.lock` / `poetry.lock` / `Gemfile.lock` — 按语言栈选);不手改版本符号
137
+ - 高危漏洞 `{{config.quality.security.cve_response_hours}}` 小时内响应(见 [`quality/security-owasp`](../../quality/security-owasp/SKILL.md))
138
+ - 优先使用项目统一 SDK(`{{config.stack.sdk_packages}}`)
139
+
140
+ ## 项目特定约束
141
+
142
+ **以下在每个项目各有差异,本阶段动手前必读**:
143
+
144
+ | 约束维度 | 位置 |
145
+ | --- | --- |
146
+ | Import 起源(UI / i18n / HTTP / 路由 / 状态) | `SYSTEM-SPEC.md` 的"项目约束速查表"(见 [`system/project-constraints-template`](../../system/project-constraints-template/SKILL.md)) |
147
+ | 禁用模式 | `SYSTEM-SPEC.md` + `system/adrs/` |
148
+ | 必用封装 | `SYSTEM-SPEC.md` 的技术约定章节 |
149
+ | i18n 命名空间 | `{{config.i18n.namespace}}` |
150
+
151
+ 新项目启动时先运行 `npx @captain_z/zsk project-init` 产出 `project-config.yaml` → 再填 `SYSTEM-SPEC.md`。
152
+
153
+ ## 本地门禁(进入 reviewing 前必过)
154
+
155
+ - `lint` 零 error(项目命令 `{{config.scripts.lint}}`)
156
+ - `type-check` 零 error(项目命令 `{{config.scripts.type_check}}`)
157
+ - `test` 全绿 + 覆盖率达标(项目命令 `{{config.scripts.test}}`)
158
+ - `build` 成功(项目命令 `{{config.scripts.build}}`)
159
+
160
+ 未跑过命令**不得**声称"通过"(证据先于断言硬原则)。
161
+
162
+ ## Skip 规则
163
+
164
+ - 小重构(rename / extract function / inline):跳过完整流程,自评清单兜住即可
165
+ - 微调 bug(typo / 样式错别字):可跳过 proposal,但**仍需测试覆盖**
166
+ - 大型变更(跨模块 / 架构迁移):**禁止**跳过任何阶段
167
+
168
+ ## 出口条件(可以进 `zsk:reviewing`)
169
+
170
+ - [ ] 变更类型声明明确
171
+ - [ ] DoR 清单全绿(见 [`zsk:dor-dod`](../dor-dod/SKILL.md))
172
+ - [ ] 任务列表每项都有"覆盖 FR"编号
173
+ - [ ] 测试金字塔三层均有任务且绿
174
+ - [ ] 本地 lint / type-check / test / build 零 error
175
+ - [ ] Commit 信息遵循 Conventional Commits
176
+ - [ ] 阻塞记录已更新
177
+ - [ ] TDD 流程遵守(Bugfix / Refactor 强制)
@@ -0,0 +1,299 @@
1
+ ---
2
+ name: zsk:design
3
+ description: FR/NFR → implementation plan translation after spec freeze — ADR
4
+ decisions, architecture diagrams (C4 + sequence), file responsibilities,
5
+ FR→code mapping, error handling, rollback, observability. Stage 3 of the
6
+ 7-stage SDLC.
7
+ category: stage
8
+ domain: sdlc
9
+ tier: core
10
+ stage: 3
11
+ variants:
12
+ - feature
13
+ - bugfix
14
+ - refactor
15
+ related:
16
+ - ../spec/SKILL.md
17
+ - ../coding/SKILL.md
18
+ - ../../frontend/design-frontend/SKILL.md
19
+ - ../../system/adr/SKILL.md
20
+ - ../../system/architecture/SKILL.md
21
+ triggers:
22
+ - technical design
23
+ - ADR architecture decision
24
+ - C4 diagram
25
+ - FR mapping
26
+ - RCA 5 whys
27
+ - Fowler catalog
28
+ - Parallel Change
29
+ - rollback strategy
30
+ ---
31
+
32
+ # Stage 3: Design
33
+
34
+ > **阶段定位**:架构设计 - Solution Design
35
+ > **回答的问题**:怎么落地、文件怎么拆、契约如何映射到实现
36
+ > **参考规范**:C4 Model(Simon Brown)、4+1 架构视图(Kruchten)、ADR(Michael Nygard / MADR)
37
+ > **与 Spec 的边界**:Spec 定"做什么",Design 定"怎么做";Design 不新增 Spec 未声明的公开接口或行为
38
+ > **前端专属映射**:Props / UE 状态 / Figma / 性能预算见 [`frontend/design-frontend.md`](../../frontend/design-frontend/SKILL.md)
39
+
40
+ ## Skill 映射
41
+
42
+ | 场景 | Primary Skill |
43
+ | --- | --- |
44
+ | 架构决策 | `zsk:design`(本 skill)+ `zsk:adr` |
45
+ | 设计评审 | `plan-eng-review` / `plan-design-review` / `plan-ceo-review` |
46
+ | 代码映射 | `graphify`(现状 → 图) |
47
+ | 第二意见 | `codex` |
48
+ | 深度研究 | `context7`(最新库实践) |
49
+
50
+ ## 变更类型差异
51
+
52
+ | 类型 | Design 侧重 |
53
+ | --- | --- |
54
+ | **Feature** | ADR + 上下文/时序图 + 文件职责 + FR→落点 + 错误/回滚 |
55
+ | **Bugfix** | **RCA(5 Whys)** + 修复点 + 防回归方案 + 影响面 |
56
+ | **Refactor** | 重构手法(Fowler catalog)+ Parallel Change / Strangler Fig + 回滚步骤 |
57
+
58
+ ## 标准结构(Feature 型)
59
+
60
+ 1. 模块映射与事实源承接
61
+ 2. 当前实现 / 现状
62
+ 3. 架构决策(ADR 列表,详细模板见 `system/adr.md`)
63
+ 4. 上下文与关键流程图(Mermaid C4 + sequence)
64
+ 5. 文件职责与分层
65
+ 6. 目录架构设计
66
+ 7. **FR 实现映射**(FR → 入口文件 + 策略要点 + 关联 ADR + 覆盖任务)
67
+ 8. **NFR 实现映射**(NFR → 实现手段 + 验证方式)
68
+ 9. 错误处理与降级策略
69
+ 10. 回滚与迁移策略
70
+ 11. 观测性接入
71
+ 12. 测试方案(与 `coding.md` 对齐)
72
+ 13. 风险与权衡
73
+ 14. 变更文件清单
74
+
75
+ > 前端项目还需:Props 映射 / UE 状态 → 结构 / Figma → 实现 / 性能预算(Core Web Vitals)→ 见 `frontend/design-frontend.md`
76
+
77
+ ## 核心要求
78
+
79
+ ### 1. 关键决策必须 ADR 化
80
+
81
+ 不可逆 / 跨模块 / 引入新依赖 / 放弃既有方案的决策必须结构化记录(模板见 [`system/adr.md`](../../system/adr/SKILL.md)):
82
+
83
+ ```md
84
+ ### ADR-{序号}:{决策名}
85
+ - 状态 / 上下文 / 决策 / 理由 / 替代方案 / 后果
86
+ ```
87
+
88
+ ### 2. 架构图(Mermaid 内联)
89
+
90
+ 至少两张:
91
+ - **上下文图**(C4 Context / Component):本模块与外部的关系
92
+ - **关键流程时序图**:P0 用户路径的控制流与数据流
93
+
94
+ ### 3. FR 实现映射(交叉引用核心)
95
+
96
+ **规则**:
97
+ - Spec 的每一条 `FR-{n}` 必须对应至少一条落点行,"待定"不被允许
98
+ - 跨多文件 → 展开多行,或用 `入口文件 / 协同文件` 两列
99
+ - 本迭代不实现的 FR → 注明 `本迭代不实现,延后至 {module-next}`
100
+ - NFR 另表:每条 `NFR-{n}` 必须说明**实现手段**与**验证方式**
101
+ - 只引用 Spec 已有的编号,**不自创**;Spec 编号不足 → 回到 Spec 补号再继续
102
+
103
+ ### 4. 错误处理与降级
104
+
105
+ - 请求失败如何呈现(toast / 行内 / 页面级)
106
+ - 可重试 + 重试策略(次数 / 退避)
107
+ - 错误边界位置(适用于前端框架)
108
+ - 降级路径(5xx / 超时 / 越权分别如何)
109
+
110
+ ### 5. 回滚与迁移
111
+
112
+ 替换或改造既有代码时必填:
113
+ - 替换范围 + 文件清单
114
+ - 兼容期(双跑 / feature flag / 灰度)
115
+ - 回滚触发条件
116
+ - 数据 / 状态 / i18n key 的迁移步骤
117
+
118
+ ### 6. 观测性与性能预算
119
+
120
+ 观测性:
121
+ - 错误上报入口
122
+ - 关键交互埋点
123
+ - 性能标记(`performance.mark` / 平台等价物)
124
+
125
+ 性能预算:**量化**首屏 / 交互响应 / 包体积增量上限 / 请求数上限(前端项目补 Core Web Vitals,见 `frontend/nfr-web.md`)。
126
+
127
+ ## Feature 型模板
128
+
129
+ ```md
130
+ # {模块} 技术设计(Design)
131
+
132
+ > 模块唯一标识:`{module-id}`
133
+ > 变更类型:Feature
134
+ > 关联 Spec:`docs/{module}/spec.md`
135
+
136
+ ## 模块映射
137
+ ## 当前实现 / 现状
138
+
139
+ ## 架构决策(ADRs)
140
+ ### ADR-1:{决策名}
141
+ - 状态 / 上下文 / 决策 / 理由 / 替代方案 / 后果
142
+
143
+ ## 上下文与关键流程图
144
+ \`\`\`mermaid
145
+ flowchart LR
146
+ A[Caller] --> B[This Module] --> C[Service] --> D[API]
147
+ \`\`\`
148
+
149
+ \`\`\`mermaid
150
+ sequenceDiagram
151
+ participant U as User
152
+ participant M as Module
153
+ participant S as Service
154
+ \`\`\`
155
+
156
+ ## 文件职责与分层
157
+ | 文件 | 职责 | 说明 |
158
+ | --- | --- | --- |
159
+
160
+ ## 目录架构
161
+ \`\`\`text
162
+ {{config.paths.components_root}}/{module}/
163
+ ├── ...
164
+ \`\`\`
165
+
166
+ ## FR 实现映射
167
+ | FR 编号 | 功能描述(摘自 Spec) | 入口文件 | 实现策略要点 | 关联 ADR | 覆盖任务 |
168
+ | --- | --- | --- | --- | --- | --- |
169
+ | FR-1 | | | | ADR-1 | T-2.1 |
170
+
171
+ ## NFR 实现映射
172
+ | NFR 编号 | 要求(摘自 Spec) | 实现手段 | 关联文件 | 验证方式 |
173
+ | --- | --- | --- | --- | --- |
174
+
175
+ ## 本迭代延后的 FR(若有)
176
+ | FR 编号 | 延后原因 | 目标迭代 |
177
+ | --- | --- | --- |
178
+
179
+ ## 错误处理与降级
180
+ | 错误类别 | 呈现方式 | 可重试 | 降级 |
181
+ | --- | --- | --- | --- |
182
+
183
+ ## 回滚与迁移
184
+ - 兼容期策略:
185
+ - 回滚触发条件:
186
+ - 迁移步骤:
187
+
188
+ ## 观测性接入
189
+ | 事件 | 位置 | 上报字段 |
190
+ | --- | --- | --- |
191
+
192
+ ## 性能预算
193
+ | 指标 | 目标 | 测量方式 |
194
+ | --- | --- | --- |
195
+
196
+ ## 安全考虑
197
+ ## 测试方案
198
+ ## 风险与权衡
199
+ ## 变更文件清单
200
+ ```
201
+
202
+ ## Bugfix 型模板(核心:RCA + 置信度质疑)
203
+
204
+ ```md
205
+ # Bugfix Design: {简要描述}
206
+
207
+ ## RCA(根因分析 - 5 Whys)
208
+ ### 表层症状
209
+ ### 5 Whys
210
+ 1. Why 1:...
211
+ 2. Why 2:...
212
+ 3. Why 3:...
213
+ 4. Why 4:...
214
+ 5. Why 5:...(系统性根因)
215
+
216
+ ### 证据
217
+ - 日志 / trace / reproduce commit
218
+
219
+ ### Bug 置信度质疑(Superpowers)
220
+ - [ ] 确认 bug 确实存在(有复现)
221
+ - [ ] 确认 RCA 是真根因
222
+ - [ ] 确认修复点真的能消除(有测试能断言)
223
+
224
+ ## 修复方案
225
+ ### 最小修复点
226
+ - 文件 / 改动说明
227
+
228
+ ### 为什么不是其他方案
229
+ ### 影响面(直接 / 上游 / 下游)
230
+
231
+ ## 防回归
232
+ ### 新增测试(先红后绿 / TDD)
233
+ - 单元 / 集成 / 回归
234
+
235
+ ### 相邻场景核对
236
+
237
+ ## Postmortem 触发
238
+ - [ ] P0 / P1 → 必走 Postmortem(见 `archive.md`)
239
+ - [ ] P2 / P3 → 可选
240
+ ```
241
+
242
+ ## Refactor 型模板(核心:Fowler + Parallel Change)
243
+
244
+ ```md
245
+ # Refactor Design: {简要描述}
246
+
247
+ ## 当前结构坏味证据
248
+ - 位置 / 坏味类型 / 度量证据
249
+
250
+ ## 目标结构
251
+
252
+ ## 使用的重构手法(Fowler Catalog)
253
+ | 手法 | 应用位置 | 说明 |
254
+ | --- | --- | --- |
255
+ | Extract Function | | |
256
+ | Rename / Move | | |
257
+ | Replace Conditional with Polymorphism | | |
258
+
259
+ ## 迁移策略
260
+
261
+ ### 小 / 中重构
262
+ - 小步原子 commit(每步测试全绿)
263
+ - 一次一个手法
264
+
265
+ ### 大重构(Parallel Change / Strangler Fig)
266
+ 1. **Expand** — 新接口 / 新实现并存
267
+ 2. **Migrate** — 调用方逐个迁移
268
+ 3. **Contract** — 移除旧实现
269
+ - 每阶段可独立部署 + 回滚
270
+
271
+ ## 回滚策略
272
+ - 每步独立 commit,可 revert
273
+
274
+ ## 行为不变验证
275
+ - 现有测试全绿 / Characterization 全绿 / 性能 / 视觉 / 体积对照
276
+ ```
277
+
278
+ ## 质量门禁
279
+
280
+ - [ ] 变更类型声明明确
281
+ - [ ] 关键决策都有 ADR(Feature / Refactor-大)
282
+ - [ ] 至少 1 张上下文图 + 1 张时序图(Feature)
283
+ - [ ] **Spec 每条 FR / NFR 都有落点行,无"待定"**
284
+ - [ ] **FR / NFR 编号引自 Spec,未自创**
285
+ - [ ] RCA 完整且通过置信度质疑(Bugfix)
286
+ - [ ] Bugfix 已引用 Spec 的 FR/NFR/AC 编号作为受影响契约项
287
+ - [ ] 重构手法来自 Fowler catalog(Refactor)
288
+ - [ ] Refactor 保留原 FR → 实现落点(外部行为不变)
289
+ - [ ] 错误处理 / 降级 / 回滚策略明确
290
+ - [ ] 观测性接入已声明
291
+ - [ ] 性能预算量化
292
+ - [ ] 未新增 Spec 未声明的行为
293
+ - [ ] 前端模块:已补 `frontend/design-frontend.md` 对应映射
294
+
295
+ ## 出口条件(可以进 `zsk:coding`)
296
+
297
+ - [ ] 质量门禁全过
298
+ - [ ] 至少走完一次 `plan-eng-review`
299
+ - [ ] 所有 ADR 状态为 Accepted
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: zsk:dor-dod
3
+ description: DoR/DoD gates between SDLC stages — generic DoR/DoD for all change
4
+ types; frontend-specific rows (UE matrix / ue-mcp / 三语 i18n / 视觉回归 / axe) are
5
+ in frontend:dor-dod-frontend.
6
+ category: resource
7
+ domain: sdlc
8
+ tier: core
9
+ variants:
10
+ - feature
11
+ - bugfix
12
+ - refactor
13
+ related:
14
+ - ../task/SKILL.md
15
+ - ../task-structure/SKILL.md
16
+ - ../task-evidence/SKILL.md
17
+ - ../verify/SKILL.md
18
+ - ../../frontend/dor-dod-frontend/SKILL.md
19
+ triggers:
20
+ - definition of ready
21
+ - definition of done
22
+ - DoR DoD
23
+ - task gate
24
+ - stage exit
25
+ ---
26
+
27
+ # DoR & DoD — 任务启动与关闭门禁
28
+
29
+ > **用途**:启动一个任务前跑 DoR;交付 / 关闭前跑 DoD
30
+ > **通用版 + 变更类型专用**;前端项目的额外条款(UE / Figma / 三语 / a11y / 视觉回归)见 [`frontend:dor-dod-frontend`](../../frontend/dor-dod-frontend/SKILL.md)
31
+
32
+ ## Definition of Ready(DoR)— 启动前门禁
33
+
34
+ ### 通用(所有变更类型)
35
+
36
+ - [ ] `proposal.md` 已确认(变更类型 / 责任人 / 事实源明确)
37
+ - [ ] `spec.md` 已冻结(FR / NFR / US / AC **已编号**,无"待定")
38
+ - [ ] `design.md` 已冻结(ADR / 错误处理 / 回滚齐全,FR/NFR 映射表无空缺)
39
+ - [ ] 依赖的上游任务已完成
40
+ - [ ] 验收标准可测(BDD Given/When/Then)
41
+
42
+ ### Feature 专用
43
+
44
+ - [ ] NFR 六类(性能 / 可靠性 / 安全 / 国际化 / 兼容性 / 可观测性)全覆盖
45
+ - [ ] 后端契约目录(若涉及接口)已对齐
46
+
47
+ > 前端模块额外:UE 状态矩阵覆盖、`ue-mcp.md` 登记、Props / Event Contract 完整 — 见 [`frontend:dor-dod-frontend`](../../frontend/dor-dod-frontend/SKILL.md)
48
+
49
+ ### Bugfix 专用
50
+
51
+ - [ ] 最小复现用例(MCVE)已捕获
52
+ - [ ] 严重度分级(P0 / P1 / P2 / P3)明确
53
+ - [ ] 根因假设已写入 `proposal.md`(待 Design 阶段 RCA 验证)
54
+ - [ ] 是否需要 Hotfix 已决策(P0 / P1 默认是)
55
+
56
+ ### Refactor 专用
57
+
58
+ - [ ] 触发条件有度量证据(不能是"我觉得该重构")
59
+ - [ ] Fowler 分级(小 / 中 / 大)明确
60
+ - [ ] 公开接口保留清单已在 Spec 列出
61
+ - [ ] Characterization Test 基线已准备(或已补齐)
62
+ - [ ] 行为不变声明明确
63
+
64
+ ---
65
+
66
+ ## Definition of Done(DoD)— 关闭前门禁
67
+
68
+ ### 通用(所有变更类型)
69
+
70
+ - [ ] 代码通过 `zsk:reviewing` 流程并 Approve
71
+ - [ ] 单元测试通过且覆盖关键分支
72
+ - [ ] 集成 / E2E 测试通过(如适用)
73
+ - [ ] `lint` / `type-check` / `build` 零 error(`{{config.scripts.lint}}` / `{{config.scripts.type_check}}` / `{{config.scripts.build}}`)
74
+ - [ ] 相关文档已更新(`docs/{module}/tasks.md` 勾选到位)
75
+ - [ ] **FR 覆盖矩阵**所有 P0 FR 都有"覆盖任务 + 验收证据"(见 [`zsk:task-evidence`](../task-evidence/SKILL.md))
76
+ - [ ] **校验记录**每行有证据链接(证据先于断言)
77
+
78
+ > 前端模块额外:视觉回归 / i18n 三语 / a11y / CWV — 见 [`frontend:dor-dod-frontend`](../../frontend/dor-dod-frontend/SKILL.md)
79
+
80
+ ### Feature 专用
81
+
82
+ - [ ] NFR 六类全部有证据
83
+ - [ ] AC 逐条勾选,每条有证据(测试报告 / 录屏 / 截图)
84
+ - [ ] Changelog `Added` 章节已写,引用 Spec FR 编号
85
+
86
+ ### Bugfix 专用
87
+
88
+ - [ ] 原复现步骤按 `proposal.md` 执行 → 不再复现(截图 / 录屏)
89
+ - [ ] 新增回归测试在主干绿
90
+ - [ ] 相邻场景回归全绿(无"按下葫芦浮起瓢")
91
+ - [ ] Changelog `Fixed` 章节已写
92
+ - [ ] P0 / P1 → Postmortem 已入 `docs/{module}/archive/`
93
+
94
+ ### Refactor 专用
95
+
96
+ - [ ] 所有现有测试全绿(含 Characterization Test)
97
+ - [ ] 视觉 / 性能 / 包体积对照无回退
98
+ - [ ] 对外契约零变化
99
+ - [ ] commit 序列可逐步 replay(checkout 每步测试都绿)
100
+ - [ ] Changelog 仅 `Changed` / `Removed`,**禁止** `Added` / `Fixed`
101
+
102
+ ---
103
+
104
+ ## Exit Criteria(阶段出口速查)
105
+
106
+ | 从 → 到 | 必须满足 |
107
+ | --- | --- |
108
+ | design → coding | DoR 全绿 |
109
+ | coding → reviewing | 本地 lint / type-check / test 零 error + 任务列表覆盖 FR 完整 |
110
+ | reviewing → verify | 所有 `blocking:` 评论 resolved + Reviewer Approve |
111
+ | verify → archive | DoD 全绿 + FR 覆盖矩阵完整 + 校验记录每行有证据 |
112
+ | archive → 下一轮 proposal | Postmortem(P0/P1)+ ADR + Changelog + 反哺判定完成 |
113
+
114
+ ## 反模式(禁止)
115
+
116
+ - ❌ **未跑过命令就声称"通过"**(违反证据先于断言)
117
+ - ❌ **DoR 不全就启动**(后续一定会回工)
118
+ - ❌ **DoD 未核完就 merge**(典型引入 verify 阶段返工)
119
+ - ❌ **FR/AC 没编号**(追溯链断,下游无法锚定)
120
+ - ❌ **"补证据的 PR"**(证据必须在声明"通过"的同一 PR)