@captain_z/zsk-skills 1.0.0 → 1.0.2
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.
- package/README.md +56 -37
- package/package.json +1 -1
- package/sdlc/reviewing/SKILL.md +81 -159
- package/sdlc/standard-dev-flow/SKILL.md +111 -0
package/README.md
CHANGED
|
@@ -4,26 +4,26 @@ ZNorth Standard Kit 的内容包:**46 颗原子 skill**,按领域分簇组
|
|
|
4
4
|
|
|
5
5
|
## 合规审查(ARCHITECTURE §4.4 硬指标)
|
|
6
6
|
|
|
7
|
-
| 检查项
|
|
8
|
-
|
|
|
9
|
-
| frontmatter 完整(`name` / `description` / `category` / `domain` / `tier` / `triggers`) | ✓ 46/46 | 结构化 lint 通过
|
|
10
|
-
| `name` 以 `zsk:` 前缀,扁平 slug
|
|
11
|
-
| `description` 以 `Use when…` 开头(trigger-optimized)
|
|
12
|
-
| `category` / `domain` / `tier` 枚举值合法
|
|
13
|
-
| `triggers` 数组非空
|
|
14
|
-
| 无硬编码项目名 / 技术栈(统一 `{{config.*}}` 占位符)
|
|
15
|
-
| `related:` 相对路径合法(build 已重写)
|
|
16
|
-
| 单文件 ≤ 300 行
|
|
7
|
+
| 检查项 | 结果 | 说明 |
|
|
8
|
+
| ---------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------- |
|
|
9
|
+
| frontmatter 完整(`name` / `description` / `category` / `domain` / `tier` / `triggers`) | ✓ 46/46 | 结构化 lint 通过 |
|
|
10
|
+
| `name` 以 `zsk:` 前缀,扁平 slug | ✓ 46/46 | 命名空间统一 |
|
|
11
|
+
| `description` 以 `Use when…` 开头(trigger-optimized) | ✓ 46/46 | 触发匹配句式 |
|
|
12
|
+
| `category` / `domain` / `tier` 枚举值合法 | ✓ 46/46 | stage/workflow/standard/resource/meta · core/optional |
|
|
13
|
+
| `triggers` 数组非空 | ✓ 46/46 | 每颗至少 4 个关键词 |
|
|
14
|
+
| 无硬编码项目名 / 技术栈(统一 `{{config.*}}` 占位符) | ✓ | harness-neutral |
|
|
15
|
+
| `related:` 相对路径合法(build 已重写) | ✓ | 无孤儿引用 |
|
|
16
|
+
| 单文件 ≤ 300 行 | ⚠ 41/46 | 5 个 frontend skill 超标(见技术债) |
|
|
17
17
|
|
|
18
18
|
**技术债**(不阻塞 CI,`tools/lint-frontmatter.ts` 当前降级 warn):
|
|
19
19
|
|
|
20
|
-
| 文件
|
|
21
|
-
|
|
|
22
|
-
| `frontend/a11y-web/SKILL.md`
|
|
23
|
-
| `frontend/testing-web/SKILL.md`
|
|
24
|
-
| `frontend/nfr-web/SKILL.md`
|
|
25
|
-
| `frontend/security-web/SKILL.md`
|
|
26
|
-
| `frontend/performance-web/SKILL.md` | 305
|
|
20
|
+
| 文件 | 行数 |
|
|
21
|
+
| ----------------------------------- | ---- |
|
|
22
|
+
| `frontend/a11y-web/SKILL.md` | 370 |
|
|
23
|
+
| `frontend/testing-web/SKILL.md` | 351 |
|
|
24
|
+
| `frontend/nfr-web/SKILL.md` | 352 |
|
|
25
|
+
| `frontend/security-web/SKILL.md` | 311 |
|
|
26
|
+
| `frontend/performance-web/SKILL.md` | 305 |
|
|
27
27
|
|
|
28
28
|
清理手法见 `memory/project_tech_debts_lint_frontmatter.md`;完成后把 `max-lines` 从 `warn` 升回 `error`。
|
|
29
29
|
|
|
@@ -37,44 +37,59 @@ zsk skill 是 LLM **按需自动触发**的资产:
|
|
|
37
37
|
4. **手动触发**(可选):会话中显式说 "用 `zsk:spec`"、"走 `zsk:feature` 工作流",LLM 直接载入指定 skill
|
|
38
38
|
|
|
39
39
|
**典型消费路径**(production,安装后):
|
|
40
|
+
|
|
40
41
|
- `~/.claude/skills/<domain>/<slug>/SKILL.md` — Claude Code
|
|
41
42
|
- `~/.codex/skills/<domain>/<slug>/SKILL.md` — Codex
|
|
42
43
|
- `@captain_z/zsk-skills/<domain>/<slug>/SKILL.md` — 通过 npm 读
|
|
43
44
|
|
|
44
45
|
## 领域总览
|
|
45
46
|
|
|
46
|
-
| 领域
|
|
47
|
-
|
|
|
48
|
-
| `sdlc/`
|
|
49
|
-
| `frontend/`
|
|
50
|
-
| `quality/`
|
|
51
|
-
| `design-handoff/` | 2
|
|
52
|
-
| `system/`
|
|
53
|
-
| `meta/`
|
|
54
|
-
| **总计**
|
|
47
|
+
| 领域 | skill 数 | 职责 |
|
|
48
|
+
| ----------------- | -------- | ------------------------------------------ |
|
|
49
|
+
| `sdlc/` | 17 | 7 阶段 SDLC + 3 变更工作流 + task 执行框架 |
|
|
50
|
+
| `frontend/` | 16 | React + Web 层实现规范 |
|
|
51
|
+
| `quality/` | 5 | 跨栈质量原则 |
|
|
52
|
+
| `design-handoff/` | 2 | 设计交付方法论 |
|
|
53
|
+
| `system/` | 5 | 工程宪法级资源 |
|
|
54
|
+
| `meta/` | 1 | 元信息 |
|
|
55
|
+
| **总计** | **46** | |
|
|
55
56
|
|
|
56
57
|
## 安装套件(bundles.yaml)
|
|
57
58
|
|
|
58
|
-
| name
|
|
59
|
-
|
|
|
60
|
-
| `sdlc-only`
|
|
61
|
-
| `frontend-project`(推荐)
|
|
62
|
-
| `frontend-with-design-handoff` | 31
|
|
63
|
-
| `custom`
|
|
59
|
+
| name | skills | 场景 |
|
|
60
|
+
| ------------------------------ | ------ | --------------------------------------------- |
|
|
61
|
+
| `sdlc-only` | 10 | 纯流程骨架(7 阶段 + 3 工作流),不涉及技术栈 |
|
|
62
|
+
| `frontend-project`(推荐) | 29 | SDLC 10 + Frontend 16 + Quality 3 |
|
|
63
|
+
| `frontend-with-design-handoff` | 31 | frontend-project + Figma 交付 2 |
|
|
64
|
+
| `custom` | 交互 | 通过 `zsk add` 任意多选 |
|
|
64
65
|
|
|
65
66
|
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 46 skills -->
|
|
66
67
|
|
|
67
68
|
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 46 skills -->
|
|
68
69
|
|
|
69
|
-
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total:
|
|
70
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
70
71
|
|
|
71
|
-
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total:
|
|
72
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
73
|
+
|
|
74
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
75
|
+
|
|
76
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
77
|
+
|
|
78
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
79
|
+
|
|
80
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
81
|
+
|
|
82
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
83
|
+
|
|
84
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
85
|
+
|
|
86
|
+
<!-- Auto-generated by tools/catalog.ts — do not edit manually. Total: 47 skills -->
|
|
72
87
|
|
|
73
88
|
## Skill 清单(按领域)
|
|
74
89
|
|
|
75
90
|
> 内容由 `tools/catalog.ts` 从各 SKILL.md frontmatter 生成。重生成:`pnpm catalog`。
|
|
76
91
|
|
|
77
|
-
### `sdlc/` — SDLC · 7 阶段 + 3 变更工作流 + task 框架 (
|
|
92
|
+
### `sdlc/` — SDLC · 7 阶段 + 3 变更工作流 + task 框架 (18)
|
|
78
93
|
|
|
79
94
|
- **`zsk:proposal`** *[stage 1 · stage · core]*
|
|
80
95
|
New-change framing (feature / bugfix / refactor) before spec work — why, success criteria, out-of-scope boundary, alternatives considered, and risks. Always the first stage of the 7-stage SDLC.
|
|
@@ -93,8 +108,8 @@ zsk skill 是 LLM **按需自动触发**的资产:
|
|
|
93
108
|
触发:`implementing design` · `task by task delivery` · `local quality gates` · `smallest viable change`
|
|
94
109
|
|
|
95
110
|
- **`zsk:reviewing`** *[stage 5 · stage · core]*
|
|
96
|
-
PR
|
|
97
|
-
触发:`code review` · `PR review` ·
|
|
111
|
+
PR 代码审查与 AI 多维审查核心规范。包含 Scope 偏移检测、置信度评估、多阶段审查(Two-Pass)、测试执行流分析以及基于红黄绿灯的判定协议。
|
|
112
|
+
触发:`code review` · `PR review` · `审查合并请求` · `review this PR`
|
|
98
113
|
|
|
99
114
|
- **`zsk:verify`** *[stage 6 · stage · core]*
|
|
100
115
|
Acceptance verification before merge — independent contract check, FR/NFR coverage, AC evidence, gate records, and verdict with reproducible proof. Stage 6 of the 7-stage SDLC.
|
|
@@ -144,6 +159,10 @@ zsk skill 是 LLM **按需自动触发**的资产:
|
|
|
144
159
|
Behavior-preserving refactor discipline — Fowler catalog, characterization tests as baseline, small atomic commits, Parallel Change / Strangler Fig for large refactors. Enforces "behavior preserved" as a hard contract (any behavior change means it is not a refactor).
|
|
145
160
|
触发:`refactor workflow` · `Fowler refactoring` · `characterization test` · `Parallel Change`
|
|
146
161
|
|
|
162
|
+
- **`zsk:standard-dev-flow`** *[workflow · core]*
|
|
163
|
+
交互式标准开发工作流,包含 9 个核心节点(Prepare, Proposal, Spec, Design, Task, Coding, Review, Verify, Commit)。通过强门禁和 Sub-Agent 审查机制,保障高质量的开发落地。
|
|
164
|
+
触发:`standard dev flow` · `start a new feature workflow` · `execute enterprise workflow` · `9 node development`
|
|
165
|
+
|
|
147
166
|
### `frontend/` — Frontend · React + Web 层实现规范 (16)
|
|
148
167
|
|
|
149
168
|
- **`zsk:spec-frontend`** *[stage 2 · stage · optional]*
|
package/package.json
CHANGED
package/sdlc/reviewing/SKILL.md
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: zsk:reviewing
|
|
3
|
-
description: PR
|
|
4
|
-
Comments prefixes, technical-rigor-over-performative-agreement when receiving
|
|
5
|
-
feedback, dispute escalation path. Stage 5 of the 7-stage SDLC. This is the
|
|
6
|
-
code-view (does the diff look right); the contract-view is zsk:verify.
|
|
3
|
+
description: PR 代码审查与 AI 多维审查核心规范。包含 Scope 偏移检测、置信度评估、多阶段审查(Two-Pass)、测试执行流分析以及基于红黄绿灯的判定协议。
|
|
7
4
|
category: stage
|
|
8
5
|
domain: sdlc
|
|
9
6
|
tier: core
|
|
@@ -17,181 +14,106 @@ related:
|
|
|
17
14
|
- ../verify/SKILL.md
|
|
18
15
|
- ../../frontend/review-frontend/SKILL.md
|
|
19
16
|
- ../../quality/code-hygiene/SKILL.md
|
|
17
|
+
- ../../system/project-constraints-template/SKILL.md
|
|
20
18
|
triggers:
|
|
21
19
|
- code review
|
|
22
20
|
- PR review
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- self review checklist
|
|
21
|
+
- 审查合并请求
|
|
22
|
+
- review this PR
|
|
23
|
+
- check my diff
|
|
27
24
|
---
|
|
28
25
|
|
|
29
|
-
# Stage 5: Reviewing
|
|
30
|
-
|
|
31
|
-
>
|
|
32
|
-
>
|
|
33
|
-
>
|
|
34
|
-
>
|
|
35
|
-
>
|
|
36
|
-
> -
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
| --- | --- |
|
|
44
|
-
| 提交评审 | `superpowers:requesting-code-review` |
|
|
45
|
-
| 接收反馈 | `superpowers:receiving-code-review`(技术严谨,避免盲目同意) |
|
|
46
|
-
| 自评 | `self-review` / `check` |
|
|
47
|
-
| PR / MR 评审 | `review` / `merge-review` |
|
|
48
|
-
| 第二意见 | `codex review` / `codex challenge` |
|
|
49
|
-
| 大型评审 | `superpowers:code-reviewer`(子代理) |
|
|
50
|
-
|
|
51
|
-
## 变更类型差异
|
|
52
|
-
|
|
53
|
-
| 类型 | Review 侧重 |
|
|
54
|
-
| --- | --- |
|
|
55
|
-
| **Feature** | 契约一致(公开接口) + 测试金字塔 + 性能 hazard |
|
|
56
|
-
| **Bugfix** | RCA 合理性 + 回归测试能复现 + 无相邻破坏 + Postmortem 触发判定 |
|
|
57
|
-
| **Refactor** | 行为不变证据 + 原子 commit 粒度 + Parallel Change 正确 + 性能/体积对照 |
|
|
58
|
-
|
|
59
|
-
## 标准流程
|
|
60
|
-
|
|
61
|
-
```text
|
|
62
|
-
Author: 自评清单 → 提 MR/PR → 主动列"想让 Reviewer 关注什么"
|
|
63
|
-
↓
|
|
64
|
-
Reviewer: 读 Spec/Design/tasks → 按评审清单扫 diff → 按 Conventional Comments 写评论
|
|
65
|
-
↓
|
|
66
|
-
Author: 按技术严谨原则回应 → 有分歧先验证事实 → 必要时更新 design.md ADR
|
|
67
|
-
↓
|
|
68
|
-
Reviewer: re-review → Approve / Request changes
|
|
69
|
-
↓
|
|
70
|
-
合并前检查:verify.md 的证据链已就绪 → 进入 verify 阶段
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## 1. 自评清单(Author,推前必过)
|
|
74
|
-
|
|
75
|
-
> 这是进入 Reviewer 视野前的"最后一道自滤"。凡打 ✅ 必须是已跑过 / 已看过的证据,不是"应该没问题"。
|
|
76
|
-
|
|
77
|
-
### 通用
|
|
78
|
-
- [ ] `docs/{module}/spec.md` / `design.md` / `tasks.md` 已更新
|
|
79
|
-
- [ ] `lint` / `type-check` 零 error(`{{config.scripts.lint}}` / `{{config.scripts.type_check}}`)
|
|
80
|
-
- [ ] `test` 通过 + 覆盖率达标(`{{config.scripts.test}}`;规范见 [`quality/testing-pyramid`](../../quality/testing-pyramid/SKILL.md))
|
|
81
|
-
- [ ] 无硬编码敏感信息(见 [`quality/security-owasp`](../../quality/security-owasp/SKILL.md))
|
|
82
|
-
- [ ] 回滚方案在 `design.md` 中可执行
|
|
83
|
-
- [ ] Commit 信息遵循 Conventional Commits
|
|
84
|
-
- [ ] PR 描述含"为什么做 + 怎么验证"
|
|
85
|
-
|
|
86
|
-
> **前端项目补**:TS 红线 / React hooks 规则 / 视觉回归 / 三语 i18n 等 → 见 [`frontend/review-frontend`](../../frontend/review-frontend/SKILL.md)
|
|
87
|
-
|
|
88
|
-
### Bugfix 专用
|
|
89
|
-
- [ ] 有先红后绿的测试证据(Step 1 提交 + Step 2 提交分离可见)
|
|
90
|
-
- [ ] RCA 指向单一根因,非"凑巧 work"
|
|
91
|
-
- [ ] 相邻场景有回归用例
|
|
92
|
-
|
|
93
|
-
### Refactor 专用
|
|
94
|
-
- [ ] 对外契约零变化,已在 PR 描述列对照表
|
|
95
|
-
- [ ] 每个 commit 原子且绿
|
|
96
|
-
- [ ] 包体积变化 ≤ ±2%(有证据链接)
|
|
97
|
-
|
|
98
|
-
## 2. Reviewer 评审清单(通用)
|
|
99
|
-
|
|
100
|
-
### 契约一致性
|
|
101
|
-
- [ ] 公开接口与 `spec.md` 一致
|
|
102
|
-
- [ ] 没有悄悄扩大公开接口
|
|
103
|
-
- [ ] 类型引自约定来源(见 `system/project-constraints-template`)
|
|
104
|
-
|
|
105
|
-
### 边界与错误
|
|
106
|
-
- [ ] loading / empty / error 都有处理
|
|
107
|
-
- [ ] 异步取消 / 竞态处理
|
|
108
|
-
- [ ] 网络失败 / 超时 / 权限不足 的 fallback
|
|
109
|
-
|
|
110
|
-
### 测试覆盖
|
|
111
|
-
- [ ] 金字塔三层按 `design.md` 的策略就位
|
|
112
|
-
- [ ] Bugfix:复现测试确实能复现(`git checkout HEAD^` 应该失败)
|
|
113
|
-
- [ ] Refactor:Characterization Test 基线未被删除
|
|
114
|
-
|
|
115
|
-
### 安全 / 依赖
|
|
116
|
-
- [ ] 无新增敏感信息硬编码
|
|
117
|
-
- [ ] 新增依赖说明合理(用途 / 许可 / 体积)
|
|
118
|
-
|
|
119
|
-
### 代码风格
|
|
120
|
-
- [ ] 命名能自解释
|
|
121
|
-
- [ ] 没有过度注释"WHAT",注释只写"WHY"
|
|
122
|
-
- [ ] 没有未被调用的新抽象(YAGNI)
|
|
123
|
-
|
|
124
|
-
## 3. Conventional Comments(评论规约)
|
|
125
|
-
|
|
126
|
-
评论前缀帮助 Author 快速分类优先级:
|
|
127
|
-
|
|
128
|
-
| 前缀 | 含义 | 必须改? |
|
|
129
|
-
| --- | --- | --- |
|
|
130
|
-
| `blocking:` | 阻塞合并,必须解决 | ✅ |
|
|
131
|
-
| `issue:` | 潜在 bug / 风险 | 🟡 讨论 |
|
|
132
|
-
| `question:` | 需要解释 | 🟡 回应 |
|
|
133
|
-
| `suggestion:` | 可选改进 | ⚪ 可选 |
|
|
134
|
-
| `nitpick:` | 风格挑剔 | ⚪ 可选 |
|
|
135
|
-
| `praise:` | 亮点表扬 | ⚪ 无需改 |
|
|
26
|
+
# Stage 5: Reviewing (代码审查)
|
|
27
|
+
|
|
28
|
+
> **阶段定位**:代码与架构审查(Code & Architecture Review)
|
|
29
|
+
> **目标**:以高置信度的客观标准发现代码缺陷、架构偏移和需求蔓延,防止劣质代码合入主干。
|
|
30
|
+
> **核心原则**:
|
|
31
|
+
> - **事实先行**:审查不仅看代码语法,更要对照 `spec.md` 验证意图。
|
|
32
|
+
> - **置信度校准**:宁缺毋滥。高确定性问题亮红灯,猜测性建议必须降级。
|
|
33
|
+
> - **全链路视角**:不放过任何一个未处理的错误流分支。
|
|
34
|
+
|
|
35
|
+
## 🤖 AI 代码审查标准流 (AI Code Review Flow)
|
|
36
|
+
|
|
37
|
+
当 Agent(或 Sub-Agent)被召唤进行代码审查时,必须**严格按顺序执行以下四个阶段**。不得跳过。
|
|
38
|
+
|
|
39
|
+
### 阶段 1:Scope Drift Detection (需求偏移检测)
|
|
136
40
|
|
|
137
|
-
|
|
41
|
+
**核心目标**:检查“写的是不是要求的东西”——不夹带私货,不漏掉功能。
|
|
138
42
|
|
|
139
|
-
|
|
140
|
-
|
|
43
|
+
1. 读取 `spec.md` 和 `tasks.md`,提取出所有的目标项。
|
|
44
|
+
2. 运行 `git diff` 对比变更。
|
|
45
|
+
- **重要约束**:必须优先读取 `project-config.md` 中的 `defaultBranch` 字段作为 base 分支。如果未配置,默认使用 `origin/main` 作为比对基础。
|
|
46
|
+
3. 产出一份 **Scope Check 报告**:
|
|
47
|
+
- `[DONE]`:代码与目标严格匹配。
|
|
48
|
+
- `[NOT DONE]`:Spec 中要求的但在 diff 中找不到证据(Missing Requirements)。
|
|
49
|
+
- `[CREEP]`:diff 中出现了 Spec/Task 中根本没提到的重构或新功能(Scope Creep)。
|
|
50
|
+
- *(注意:Scope Creep 需要特别指明,由用户判断是正向的补充还是危险的蔓延)*
|
|
141
51
|
|
|
142
|
-
|
|
143
|
-
```
|
|
52
|
+
### 阶段 2:Two-Pass Multi-Agent 审查 (两遍核心检查)
|
|
144
53
|
|
|
145
|
-
|
|
54
|
+
将审查分为两个独立视角(Agent 应分饰多角依次进行)。
|
|
146
55
|
|
|
147
|
-
|
|
56
|
+
**Pass 1: Critical (致命问题审查 - P1级别)**
|
|
57
|
+
- **SQL / 数据安全**:检查是否存在注入、数据越权、无 WHERE 条件的全表更新。
|
|
58
|
+
- **并发与竞态**:检查是否存在共享可变状态、缺乏事务锁的资金/库存操作。
|
|
59
|
+
- **契约破坏**:是否悄悄改变了对外公开 API 的出入参结构。
|
|
60
|
+
- **红线违规**:是否引入了 `SYSTEM-SPEC.md` 中禁用的依赖或违背了 Import 起源规则。
|
|
148
61
|
|
|
149
|
-
-
|
|
150
|
-
-
|
|
151
|
-
-
|
|
62
|
+
**Pass 2: Compliance & Best Practices (合规与架构审查 - P2/P3级别)**
|
|
63
|
+
- **代码结构**:是否存在魔法数字、强耦合、废弃代码未删。
|
|
64
|
+
- **错误降级**:所有异常捕获是否有合理的降级策略(Fallback),网络错误对用户是否可见。
|
|
65
|
+
- **特定领域检查**:对于前端代码,必须引用并符合 `frontend/review-frontend.md`。
|
|
152
66
|
|
|
153
|
-
|
|
67
|
+
### 阶段 3:Test Coverage Tracking (测试死角追踪)
|
|
154
68
|
|
|
155
|
-
1.
|
|
156
|
-
2.
|
|
157
|
-
3.
|
|
158
|
-
4. **升级到 Design**:如果评论触及架构决策,升级到 `design.md` 的 ADR 重新评审
|
|
69
|
+
1. **画出执行流 (Mental Model)**:对于被改变的每一个核心函数,不仅要看正常流程,必须分析其“异常分支”(if-else, try-catch, 边界值)。
|
|
70
|
+
2. **校验测试映射**:查找对应的测试代码,核对测试用例是否覆盖了步骤 1 中的异常分支。
|
|
71
|
+
3. **输出 Gap (死角报告)**:如果某个条件分支(如服务端返回 500 时 UI 的处理)在 diff 中没有对应的单元测试/E2E测试覆盖,必须作为 `[TESTING GAP]` 显式列出。
|
|
159
72
|
|
|
160
|
-
|
|
73
|
+
### 阶段 4:Confidence Calibration 与红绿灯定论输出
|
|
161
74
|
|
|
162
|
-
|
|
75
|
+
在给出最终的 Review 报告时,所有的发现(Findings)必须带上 **置信度评分 (Confidence: N/10)**。
|
|
163
76
|
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
77
|
+
- **9-10 (确凿)**:通过阅读明确上下文确认的 Bug 或红线违背。
|
|
78
|
+
- **7-8 (极大概率)**:高置信度模式匹配(如常见的性能泄漏点)。
|
|
79
|
+
- **5-6 (存疑)**:可能是误报,需提示用户验证。
|
|
80
|
+
- **< 5 (猜测)**:除非是 P0 级风险,否则不要在最终报告中扰民。
|
|
167
81
|
|
|
168
|
-
|
|
82
|
+
**输出格式**:`[SEVERITY] (confidence: N/10) filename:line — description`
|
|
169
83
|
|
|
170
|
-
|
|
171
|
-
- `codex challenge` — 对抗式审查,尝试破坏代码
|
|
172
|
-
- `superpowers:code-reviewer` 子代理 — 里程碑级审查
|
|
84
|
+
#### 最终判定协议 (Verdict Protocol)
|
|
173
85
|
|
|
174
|
-
|
|
86
|
+
Agent 在完成四步后,必须输出以下三种颜色的最终判定:
|
|
175
87
|
|
|
176
|
-
|
|
88
|
+
- 🟢 **PASS (通过)**:仅有少量拼写错误、格式建议,无阻碍性问题。可以进入 `Verify`。
|
|
89
|
+
- 🟡 **PASS_WITH_CONCERNS (带条件通过)**:存在 Scope Creep(但无害)、低置信度的架构建议、或遗漏的非致命测试。给出列表,请求用户定夺。
|
|
90
|
+
- 🔴 **FAIL / BLOCKED (拒绝)**:发现 P1 级 Critical 问题、置信度极高的未捕获异常、或大面积未完成的 `[NOT DONE]` 需求。必须回退到 Coding 进行修复。
|
|
177
91
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
↓ 仍分歧
|
|
185
|
-
4. 模块负责人裁决 + 更新 SYSTEM-SPEC.md(系统级决策)
|
|
186
|
-
```
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 👩💻 人类评审规约 (Human Reviewer Guidelines)
|
|
95
|
+
|
|
96
|
+
### 发起者自查清单 (Author Pre-PR Checklist)
|
|
97
|
+
> 💡 强烈建议 Author 在提交 PR 交给 AI 或其他人审查之前,先行对照以下精简清单自查,以节约 Review 成本。
|
|
187
98
|
|
|
188
|
-
|
|
99
|
+
- [ ] 是否在本地运行了 `pnpm typecheck` 和 `pnpm lint` 且 0 报错?
|
|
100
|
+
- [ ] 所有的改动是否都属于该 PR 的原始目标?(拒绝私带重构代码)
|
|
101
|
+
- [ ] 核心 API 修改是否已经通知了潜在的调用方?
|
|
102
|
+
- [ ] UI 变动是否已在明暗色、移动/桌面端自我验收?
|
|
103
|
+
- [ ] 是否在 Commit Message 中正确链接了 Issue 编号?
|
|
189
104
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
105
|
+
### 评审者话术映射
|
|
106
|
+
如果是人类互相进行 Review,遵循 Conventional Comments 前缀以减少沟通成本:
|
|
107
|
+
|
|
108
|
+
| 前缀 | 含义 | 对应 AI 判定 |
|
|
109
|
+
| --- | --- | --- |
|
|
110
|
+
| `blocking:` | 阻塞合并,必须解决。 | 对应 🔴 FAIL |
|
|
111
|
+
| `issue:` | 潜在 bug 或风险点。 | 对应 🟡 CONCERNS |
|
|
112
|
+
| `question:` | 逻辑看不懂,需要 Author 解释。 | 对应 🟡 CONCERNS |
|
|
113
|
+
| `suggestion:`| 可选的重构或风格建议。 | 对应 🟢 PASS |
|
|
114
|
+
| `praise:` | 写得非常好的地方,表扬! | 对应 🟢 PASS |
|
|
115
|
+
|
|
116
|
+
**接收反馈的“技术严谨”原则:**
|
|
117
|
+
被 Review 的作者(Author)面对质疑时,**禁止用“应该没问题吧”来拒绝**。
|
|
118
|
+
- 如果接受,回复 `✅ 已修复`。
|
|
119
|
+
- 如果分歧,必须通过跑命令、读代码拿出事实证据:`❌ 不接受,因为测试 X 已经覆盖了该场景...`。
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zsk:standard-dev-flow
|
|
3
|
+
description: 交互式标准开发工作流,包含 9 个核心节点(Prepare, Proposal, Spec, Design, Task,
|
|
4
|
+
Coding, Review, Verify, Commit)。通过强门禁和 Sub-Agent 审查机制,保障高质量的开发落地。
|
|
5
|
+
category: workflow
|
|
6
|
+
domain: sdlc
|
|
7
|
+
tier: core
|
|
8
|
+
variants:
|
|
9
|
+
- feature
|
|
10
|
+
- bugfix
|
|
11
|
+
- refactor
|
|
12
|
+
related:
|
|
13
|
+
- ../proposal/SKILL.md
|
|
14
|
+
- ../spec/SKILL.md
|
|
15
|
+
- ../design/SKILL.md
|
|
16
|
+
- ../task/SKILL.md
|
|
17
|
+
- ../coding/SKILL.md
|
|
18
|
+
- ../verify/SKILL.md
|
|
19
|
+
- ../../system/project-constraints-template/SKILL.md
|
|
20
|
+
triggers:
|
|
21
|
+
- standard dev flow
|
|
22
|
+
- start a new feature workflow
|
|
23
|
+
- execute enterprise workflow
|
|
24
|
+
- 9 node development
|
|
25
|
+
- zsk standard workflow
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# 交互式标准开发工作流 (Standard Dev Workflow)
|
|
29
|
+
|
|
30
|
+
> **定位**:这是一套专为公司级开发或新项目设计的 **分节点交互式编排工作流 (Interactive Orchestrator Skill)**。遵循业界最佳实践,确保高内聚、低耦合以及严格的质量门禁。
|
|
31
|
+
> **核心原则**:工作流分为 **9 个串行节点**。Agent **绝不允许跨节点越权执行**。在每个节点的任务完成后,Agent 必须停下来,询问用户是否可以进入下一个环节,并在得到明确肯定后方可继续。
|
|
32
|
+
> **适用场景**:复杂功能的从头开发、需要高质量审查的重要迭代。
|
|
33
|
+
|
|
34
|
+
## Agent 执行铁律 (The Golden Rules)
|
|
35
|
+
|
|
36
|
+
作为执行该工作流的 Agent,你必须遵守:
|
|
37
|
+
1. **单节点聚焦**:当前处于哪个阶段,就只能执行那个阶段的任务。禁止在 `Spec` 阶段直接去写代码。
|
|
38
|
+
2. **多轮对话打磨**:一个节点内部可以进行多次对话(修改、澄清)。
|
|
39
|
+
3. **显式放行 (Explicit Gate)**:每个节点的末尾,必须输出当前的最终产物,并询问:“当前节点产物已就绪,是否准许进入 [下一节点]?”
|
|
40
|
+
4. **加载上下文**:全局系统约束 (`SYSTEM-SPEC.md`) 和工程配置 (`project-config.md`) 在启动时自动载入,贯穿整个流程。
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 9 节点流转逻辑 (The 9 Nodes)
|
|
45
|
+
|
|
46
|
+
### Node 1: Prepare (准备与资源收集)
|
|
47
|
+
- **目标**:准备开发资源,建立本次迭代的事实源(Source of Truth)。
|
|
48
|
+
- **Agent 动作**:向用户索要初始输入,并将其统一整理保存到项目根目录的 `.raws/` 文件夹下。
|
|
49
|
+
- **`.raws/` 命名规范**(必须遵守):
|
|
50
|
+
- 需求文档 → `.raws/requirements.md`
|
|
51
|
+
- Figma 链接或导出 → `.raws/design-figma.json` 或 `.raws/design-figma.md`
|
|
52
|
+
- API 接口文档 → `.raws/api-spec.json` 或 `.raws/api-spec.md`
|
|
53
|
+
- 其他资料 → `.raws/<描述性名称>.<扩展名>`(使用小写 kebab-case,禁止空格)
|
|
54
|
+
- **出口门禁**:所有必要的上下文资料已按规范落盘。向用户确认是否进入 `Proposal` 阶段。
|
|
55
|
+
|
|
56
|
+
### Node 2: Proposal (提案阶段)
|
|
57
|
+
- **目标**:对齐业务意图和范围边界。
|
|
58
|
+
- **Agent 动作**:结合 `.raws/` 中的资料和 `SYSTEM-SPEC.md`,输出 `proposal.md`。必须明确 SMART 目标、备选方案和“不做什么(Out of scope)”。
|
|
59
|
+
- **出口门禁**:用户确认 `proposal.md` 的内容无误。
|
|
60
|
+
|
|
61
|
+
### Node 3: Spec (规格定义)
|
|
62
|
+
- **目标**:确立行为契约。
|
|
63
|
+
- **Agent 动作**:基于 Proposal 产出 `spec.md`。为功能需求(FR)、非功能需求(NFR,须继承自 SYSTEM-SPEC 基线)和验收标准(AC)进行编号。
|
|
64
|
+
- **出口门禁**:用户确认 `spec.md` 的所有编号和验收条件清晰可测。
|
|
65
|
+
|
|
66
|
+
### Node 4: Design (技术设计)
|
|
67
|
+
- **目标**:给出实现方案映射。
|
|
68
|
+
- **Agent 动作**:基于 Spec 产出 `design.md`。必须给出技术选型理由,并提供 `FR 编号 -> 代码模块路径` 的映射。受 `project-config.md` 路径约束。
|
|
69
|
+
- **出口门禁**:用户对架构和技术实现方案没有异议。
|
|
70
|
+
|
|
71
|
+
### Node 5: Task (任务拆解)
|
|
72
|
+
- **目标**:将大需求拆分成可执行的原子任务。
|
|
73
|
+
- **Agent 动作**:生成 `tasks.md`,按最小可行切片(Slice)列出具有前置依赖关系的任务组。
|
|
74
|
+
- **出口门禁**:用户确认任务切分颗粒度合理,同意开始编码。
|
|
75
|
+
|
|
76
|
+
### Node 6: Coding (编码执行)
|
|
77
|
+
- **目标**:按任务清单写代码。
|
|
78
|
+
- **Agent 动作**:严格按 `tasks.md` 逐步执行代码。每次引入依赖或改动时,自我审查是否违背了 `SYSTEM-SPEC.md` 中的禁忌清单和 Import 起源规则。
|
|
79
|
+
- **触发 Review 的明确时机**(满足任一即停止编码,进入 Node 7):
|
|
80
|
+
- 完成 `tasks.md` 中一个**独立功能切片**(同一 FR 编号下的全部原子 Task 均打钩)。
|
|
81
|
+
- 单轮改动累计超过 **10 个文件** 或 **300 行代码**。
|
|
82
|
+
- 任何引入新 npm 包的改动完成后。
|
|
83
|
+
- **出口门禁**:Agent 主动停止编码,声明已进入 Node 7,用户无需手动提醒。
|
|
84
|
+
|
|
85
|
+
### Node 7: Review (多视角审查)
|
|
86
|
+
- **目标**:提高代码交付质量,排查隐患。
|
|
87
|
+
- **Agent 动作**:参照 `zsk:reviewing` 技能的四阶段流程(Scope Drift → Two-Pass → Test Coverage → Confidence Verdict),扮演多视角 Sub-Agent 执行审查。
|
|
88
|
+
- **输出产物**:最终给出以下三种评估之一:
|
|
89
|
+
- 🟢 **绿灯 (Green)**:无阻碍性问题,进入 Node 8 Verify。
|
|
90
|
+
- 🟡 **黄灯 (Yellow)**:存在建议项,列出清单,由用户决定是否修复后再 Review,或豁免放行。
|
|
91
|
+
- 🔴 **红灯 (Red)**:发现 P1 级 Critical 问题或高置信度严重缺陷。**自动回退 Node 6**,Agent 声明:“Review 发现阻塞性问题,回退至 Coding……”并重新列出需修改的 Task,重新进入 Coding → Review 循环,直至通过。
|
|
92
|
+
- **出口门禁**:🟢 绿灯,或 🟡 用户明确豁免。🔴 红灯时禁止放行,必须回退至 Node 6。
|
|
93
|
+
|
|
94
|
+
### Node 8: Verify (多维验收)
|
|
95
|
+
- **目标**:以客观证据逐条验证 `spec.md` 中所有 AC 均已满足。
|
|
96
|
+
- **Agent 动作**:
|
|
97
|
+
1. 从 `spec.md` 提取所有 `AC-XXX` 编号,逐条核对,输出:`AC-XXX: [PASS / FAIL] — 证据:<命令输出 / 截图 / 日志片段>`
|
|
98
|
+
2. 运行 `SYSTEM-SPEC.md § NFR 基线` 中所有命令并展示 Exit code(如 `pnpm typecheck`、`pnpm lint`、`pnpm build`)。
|
|
99
|
+
3. 若环境允许,调用高级工具(如 `Figma MCP` 进行 UI 还原度比对,或 `Computer Use` 模拟浏览器验证用户流)。
|
|
100
|
+
- **出口门禁**:所有 AC 状态为 `PASS` 且 NFR 命令 Exit code = 0。任一 AC 为 `FAIL`,禁止进入 Node 9,回退 Node 6 修复。
|
|
101
|
+
|
|
102
|
+
### Node 9: Commit (提交)
|
|
103
|
+
- **目标**:版本封版。
|
|
104
|
+
- **Agent 动作**:基于 Conventional Commits 规范,总结这一阶段的修改,自动生成 Commit Message。
|
|
105
|
+
- **出口门禁**:询问用户是否可以执行 Git Commit(及 Push)。用户同意后,完成整个工作流。
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 启动口令范例
|
|
110
|
+
|
|
111
|
+
> "启动 `zsk:standard-dev-flow` 流程。请先带我进入 Node 1 (Prepare)。我这边有一些 API 的 json 结构,你可以先保存到 `.raws/` 里。"
|