create-yss-spec 2.2.7 → 2.2.8
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 +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.agents/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.agents/skills/yss-design-system/SKILL.md +3 -1
- package/template/.agents/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.agents/skills/yss-router/references/boundaries.md +1 -1
- package/template/.agents/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.claude/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.claude/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.claude/skills/yss-design-system/SKILL.md +3 -1
- package/template/.claude/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.claude/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.claude/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.claude/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.claude/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.claude/skills/yss-router/references/boundaries.md +1 -1
- package/template/.claude/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.codex/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.codex/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.codex/skills/yss-design-system/SKILL.md +3 -1
- package/template/.codex/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.codex/skills/yss-router/references/boundaries.md +1 -1
- package/template/.codex/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.cursor/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.cursor/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.cursor/skills/yss-design-system/SKILL.md +3 -1
- package/template/.cursor/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.cursor/skills/yss-router/references/boundaries.md +1 -1
- package/template/.cursor/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.hermes/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.hermes/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.hermes/skills/yss-design-system/SKILL.md +3 -1
- package/template/.hermes/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.hermes/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.hermes/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.hermes/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.hermes/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.hermes/skills/yss-router/references/boundaries.md +1 -1
- package/template/.hermes/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.pi/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.pi/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.pi/skills/yss-design-system/SKILL.md +3 -1
- package/template/.pi/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.pi/skills/yss-router/references/boundaries.md +1 -1
- package/template/.pi/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.qoder/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.qoder/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.qoder/skills/yss-design-system/SKILL.md +3 -1
- package/template/.qoder/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.qoder/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.qoder/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.qoder/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.qoder/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.qoder/skills/yss-router/references/boundaries.md +1 -1
- package/template/.qoder/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/.trae/skills/maintaining-skills/SKILL.md +1 -1
- package/template/.trae/skills/yss-antd-design/references/evidence.md +4 -0
- package/template/.trae/skills/yss-design-system/SKILL.md +3 -1
- package/template/.trae/skills/yss-page-module-development/SKILL.md +1 -1
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +1 -1
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +4 -0
- package/template/.trae/skills/yss-prototype-stage/SKILL.md +11 -6
- package/template/.trae/skills/yss-prototype-stage/references/product-design-adapter.md +54 -0
- package/template/.trae/skills/yss-prototype-stage/scripts/prototype-contract.mjs +207 -0
- package/template/.trae/skills/yss-prototype-stage/tests/run-scenarios.mjs +154 -0
- package/template/.trae/skills/yss-router/references/boundaries.md +1 -1
- package/template/.trae/skills/yss-ui/references/antdv-compatibility.md +1 -1
- package/template/AGENTS.md +4 -4
- package/template/README.md +10 -11
- package/template/__yss_dotfile__.gitignore +1 -0
- package/template/docs/agents/skills-maintenance.md +2 -2
- package/template/docs/api/templates/openapi-draft-review-checklist.md +2 -2
- package/template/docs/design/README.md +2 -2
- package/template/docs/design/design.md +48 -9
- package/template/docs/design/templates/interaction-spec-template.md +2 -2
- package/template/docs/design/templates/prototype-confirmation-template.md +1 -1
- package/template/docs/design/templates/prototype-evidence-template.yaml +52 -10
- package/template/docs/process/harness-process-tailoring.md +5 -5
- package/template/docs/process/template-engineering-overview.md +2 -2
- package/template/docs/process/template-verification-profiles.yaml +8 -1
- package/template/docs/process/templates/maintenance-checkpoint-template.yaml +3 -12
- package/template/docs/templates/requirement-freeze-template.md +1 -1
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +961 -0
- package/template/scripts/lib/maintenance-intensity.mjs +24 -10
- package/template/scripts/lib/skill-governance.mjs +19 -0
- package/template/scripts/node-verify-lifecycle-registry.mjs +1 -1
- package/template/scripts/verify-template-verification-scenarios +5 -0
- package/template/scripts/verify-yss-prototype-contract-scenarios +2 -0
- package/template/skills-lock.json +8 -8
- package/template.snapshot.json +4 -4
- package/template/docs/user-guide/templates//347/224/250/346/210/267/346/211/213/345/206/214/346/250/241/346/235/277.md +0 -53
- package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +0 -223
- package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +0 -1115
- package/template/docs/user-guide//345/244/226/351/203/250/345/221/275/344/273/244/350/241/214/345/267/245/345/205/267/345/256/236/350/267/265/346/214/207/345/215/227.md +0 -117
- package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +0 -584
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +0 -31
- package/template/docs/user-guide//350/247/204/346/240/274/344/270/216/344/273/273/345/212/241/350/277/201/347/247/273/346/214/207/345/215/227.md +0 -44
- package/template/docs/user-guide//351/234/200/346/261/202/346/276/204/346/270/205/346/214/207/345/215/227.md +0 -230
- package/template/docs/user-guide//351/234/200/346/261/202/346/276/204/346/270/205/346/234/200/344/275/263/345/256/236/350/267/265.md +0 -275
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
# grill-with-docs 使用手册
|
|
2
|
-
|
|
3
|
-
本文面向使用本模板的产品、全栈开发、设计和实施人员。`grill-with-docs` 是一个需求和设计阶段的强访谈入口:它通过连续追问把模糊想法压实,同时用 `domain-modeling` 把稳定术语写入 `CONTEXT.md`,把少数关键取舍沉淀为 ADR。
|
|
4
|
-
|
|
5
|
-
一句话:
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
grill-with-docs = 追问清楚 + 同步沉淀领域语言和关键决策
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## 1. 它解决什么问题
|
|
12
|
-
|
|
13
|
-
没有 grill 时,需求经常会这样失真:
|
|
14
|
-
|
|
15
|
-
- “模型发布”到底是按钮、流程、版本冻结,还是对外生效机制,没有说清。
|
|
16
|
-
- “管理员”“实施人员”“建模人员”混用,权限边界不清。
|
|
17
|
-
- AI 直接写 Spec,但关键边界来自猜测。
|
|
18
|
-
- 重要取舍只留在聊天里,后续实现和复盘找不到依据。
|
|
19
|
-
|
|
20
|
-
`grill-with-docs` 的价值是先把这些问题问透,再进入 Spec、OpenAPI、Ticket 或开发。
|
|
21
|
-
|
|
22
|
-
## 2. 什么时候使用
|
|
23
|
-
|
|
24
|
-
适合使用:
|
|
25
|
-
|
|
26
|
-
| 场景 | 典型信号 | 下一步产物 |
|
|
27
|
-
|---|---|---|
|
|
28
|
-
| 新产品 / 新模块 | “我要新建工程”“做数据中台模型管理” | discovery、Spec、`CONTEXT.md` |
|
|
29
|
-
| 模糊需求 | “支持模型发布”“加个审批” | 明确范围、非目标、验收标准 |
|
|
30
|
-
| 领域术语混乱 | 同一个概念有多个叫法 | 更新 `CONTEXT.md` |
|
|
31
|
-
| 关键取舍出现 | 版本能否回滚、发布是否可撤销 | 必要时写 ADR |
|
|
32
|
-
| 进入 Spec 前 | 已有想法但边界不稳 | `to-spec` 输入 |
|
|
33
|
-
| 进入 Ticket 前 | change 目标还不够清晰 | proposal / design 输入 |
|
|
34
|
-
|
|
35
|
-
不适合使用:
|
|
36
|
-
|
|
37
|
-
- 只是 typo、文案或局部样式调整。
|
|
38
|
-
- 已有清晰 Spec、OpenAPI 和任务,只需要执行。
|
|
39
|
-
- Bug 已经可复现,应先用 `systematic-debugging`。
|
|
40
|
-
- 单纯整理已有会议纪要,不需要追问或改变领域模型。
|
|
41
|
-
|
|
42
|
-
## 3. 输入和输出
|
|
43
|
-
|
|
44
|
-
### 3.1 输入
|
|
45
|
-
|
|
46
|
-
最少给出:
|
|
47
|
-
|
|
48
|
-
- 业务想法或问题。
|
|
49
|
-
- 当前用户角色。
|
|
50
|
-
- 你认为的成功结果。
|
|
51
|
-
- 已有材料路径,例如 discovery、Spec、竞品分析、OpenAPI、现有页面。
|
|
52
|
-
|
|
53
|
-
更好的输入:
|
|
54
|
-
|
|
55
|
-
```text
|
|
56
|
-
使用 grill-with-docs,帮我澄清“模型发布与版本冻结”。
|
|
57
|
-
背景:数据中台模型管理中,建模人员可以编辑草稿模型,发布后供下游引用。
|
|
58
|
-
我不确定:发布后是否允许回滚、字段是否还能改、失败如何提示。
|
|
59
|
-
请边追问边沉淀 CONTEXT.md 和必要 ADR。
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 3.2 输出
|
|
63
|
-
|
|
64
|
-
一次好的 grill 会输出:
|
|
65
|
-
|
|
66
|
-
- 被澄清的问题列表。
|
|
67
|
-
- 已确认的用户、场景、范围和非目标。
|
|
68
|
-
- 稳定术语更新到 `CONTEXT.md`。
|
|
69
|
-
- 确有必要时,新增或建议 ADR。
|
|
70
|
-
- 下一步建议:继续 discovery、生成 Spec、更新 OpenAPI、创建 Ticket,或进入实现路由。
|
|
71
|
-
|
|
72
|
-
## 4. 推荐流程
|
|
73
|
-
|
|
74
|
-
```text
|
|
75
|
-
已有想法 / 竞品分析 / discovery 草稿
|
|
76
|
-
-> grill-with-docs
|
|
77
|
-
-> 更新 CONTEXT.md
|
|
78
|
-
-> 必要时新增 ADR
|
|
79
|
-
-> to-spec 或 Spec 文档
|
|
80
|
-
-> API 影响分析 / 契约草案
|
|
81
|
-
-> review-only OpenAPI Draft(如需要)
|
|
82
|
-
-> 工程基线 / 系统 / 数据架构设计
|
|
83
|
-
-> 设计审查
|
|
84
|
-
-> OpenAPI Freeze
|
|
85
|
-
-> writing-plans / yss-router / YSS skills
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Step 1: 说明问题
|
|
89
|
-
|
|
90
|
-
```text
|
|
91
|
-
使用 grill-with-docs,帮我澄清“<feature>”。
|
|
92
|
-
请重点追问用户角色、业务闭环、范围、非目标、异常场景、验收标准和术语。
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Step 2: 逐轮回答
|
|
96
|
-
|
|
97
|
-
grill 的重点是“被问住”。遇到不确定的问题,不要让 AI 替你决定,可以明确说:
|
|
98
|
-
|
|
99
|
-
```text
|
|
100
|
-
这个点暂不确定,请记录为待确认,不要写入 CONTEXT.md。
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
或者:
|
|
104
|
-
|
|
105
|
-
```text
|
|
106
|
-
这个术语已经确定,请更新到 CONTEXT.md。
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Step 3: 收敛为资产
|
|
110
|
-
|
|
111
|
-
当问题被问清楚后,让 AI 输出收敛结果:
|
|
112
|
-
|
|
113
|
-
```text
|
|
114
|
-
请总结本轮 grill 结果:
|
|
115
|
-
1. 已确认范围
|
|
116
|
-
2. 非目标范围
|
|
117
|
-
3. 已更新术语
|
|
118
|
-
4. 需要人工确认的问题
|
|
119
|
-
5. 下一步建议进入 Spec、OpenAPI 还是 Ticket
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## 5. 与 CONTEXT.md 的关系
|
|
123
|
-
|
|
124
|
-
`CONTEXT.md` 只记录稳定业务语言,不记录实现细节。格式与变形规则以根目录 `CONTEXT.md` 文首为准。
|
|
125
|
-
|
|
126
|
-
应该写入:
|
|
127
|
-
|
|
128
|
-
- 业务对象:模型、字段、草稿版本、发布版本。
|
|
129
|
-
- 状态含义:冻结、发布、撤销、失效。
|
|
130
|
-
- 角色和责任:建模人员、实施顾问、平台管理员。
|
|
131
|
-
- PascalCase `英文标识` 词干,供代码类型 / 字段和契约 property 变形。
|
|
132
|
-
- 避免用语:禁用中文近义词和禁用英文别名。
|
|
133
|
-
|
|
134
|
-
不应该写入:
|
|
135
|
-
|
|
136
|
-
- 具体类全名、Vue 组件名、表名、接口路径。
|
|
137
|
-
- 临时计划。
|
|
138
|
-
- 未确认猜测。
|
|
139
|
-
- 具体实现方案。
|
|
140
|
-
|
|
141
|
-
示例(仅用户指南;不要把虚构行写入模板源 `## 业务术语`):
|
|
142
|
-
|
|
143
|
-
```text
|
|
144
|
-
| 发布版本 | 已冻结的可引用版本 | PublishedVersion | 上线、提交;Release、OnlineVersion |
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## 6. 与 ADR 的关系
|
|
148
|
-
|
|
149
|
-
不是每个讨论结论都要写 ADR。只有同时满足三点时才写:
|
|
150
|
-
|
|
151
|
-
1. 难以回滚。
|
|
152
|
-
2. 没有上下文时会让未来读者困惑。
|
|
153
|
-
3. 经过真实取舍。
|
|
154
|
-
|
|
155
|
-
适合写 ADR:
|
|
156
|
-
|
|
157
|
-
- 发布版本是否永久不可变。
|
|
158
|
-
- 模型版本是否允许回滚。
|
|
159
|
-
- 模型发布采用审批流还是直接发布。
|
|
160
|
-
- 多租户模型隔离策略。
|
|
161
|
-
|
|
162
|
-
不适合写 ADR:
|
|
163
|
-
|
|
164
|
-
- 页面按钮放左边还是右边。
|
|
165
|
-
- 常规 CRUD 字段。
|
|
166
|
-
- 临时实验结论。
|
|
167
|
-
|
|
168
|
-
## 7. 与其它技能的关系
|
|
169
|
-
|
|
170
|
-
| 阶段 | 先用 | 后接 |
|
|
171
|
-
|---|---|---|
|
|
172
|
-
| 机会探索后澄清 | `grill-with-docs` | discovery / Spec |
|
|
173
|
-
| Spec 前 | `grill-with-docs` | `to-spec` |
|
|
174
|
-
| Ticket 拆分前 | `grill-with-docs` | `to-tickets` |
|
|
175
|
-
| 正式变更技术设计前 | `grill-with-docs` 只在需求边界仍不清时使用 | `issue` / `需求澄清` |
|
|
176
|
-
| 实现前 | `grill-with-docs` 只在需求不清时使用 | `writing-plans` / `yss-router` |
|
|
177
|
-
| Bug | 通常不用 | `systematic-debugging` |
|
|
178
|
-
|
|
179
|
-
推荐组合:
|
|
180
|
-
|
|
181
|
-
```text
|
|
182
|
-
yss-product-lifecycle
|
|
183
|
-
-> grill-with-docs
|
|
184
|
-
-> to-spec
|
|
185
|
-
-> OpenAPI
|
|
186
|
-
-> Ticket
|
|
187
|
-
-> Matt skills / YSS skills
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## 8. 常用提示词
|
|
191
|
-
|
|
192
|
-
```text
|
|
193
|
-
使用 grill-with-docs,帮我澄清“数据中台模型管理”的 MVP 边界。
|
|
194
|
-
请边追问边判断哪些术语可以写入 CONTEXT.md。
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
```text
|
|
198
|
-
使用 grill-with-docs,围绕“模型发布与版本冻结”做需求拷问。
|
|
199
|
-
重点追问发布后可变性、回滚、权限、失败提示、下游引用影响。
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
```text
|
|
203
|
-
使用 grill-with-docs,检查这份 Spec 还有哪些边界没问清。
|
|
204
|
-
如果发现稳定术语,更新 CONTEXT.md;如果出现重大取舍,建议是否需要 ADR。
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
```text
|
|
208
|
-
使用 grill-with-docs,帮我把这个功能进入 Ticket 拆分前的问题问完。
|
|
209
|
-
输出:已确认范围、未确认问题、术语变更、ADR 建议、下一步 prompt。
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
## 9. 最小闭环
|
|
213
|
-
|
|
214
|
-
如果只记一条:
|
|
215
|
-
|
|
216
|
-
```text
|
|
217
|
-
先让 AI 追问到你说清楚,再让 AI 写 Spec 或代码。
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
对应资产:
|
|
221
|
-
|
|
222
|
-
```text
|
|
223
|
-
CONTEXT.md
|
|
224
|
-
docs/adr/
|
|
225
|
-
docs/.scratch/<feature>/
|
|
226
|
-
├── discovery/
|
|
227
|
-
├── spec.md
|
|
228
|
-
├── parent-ticket.md
|
|
229
|
-
└── issues/
|
|
230
|
-
```
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
# grill-with-docs 最佳实践
|
|
2
|
-
|
|
3
|
-
本文补充 [grill-with-docs 使用手册](./需求澄清指南.md),用于约束长期使用 `grill-with-docs` 时的工作习惯、产物边界和常见反模式。
|
|
4
|
-
|
|
5
|
-
## 1. 核心原则
|
|
6
|
-
|
|
7
|
-
### 1.1 追问优先于生成
|
|
8
|
-
|
|
9
|
-
`grill-with-docs` 的目标不是马上写一份漂亮文档,而是把需求里的模糊点问出来。
|
|
10
|
-
|
|
11
|
-
好的使用方式:
|
|
12
|
-
|
|
13
|
-
```text
|
|
14
|
-
请先连续追问,不要直接生成 Spec。
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
不好的使用方式:
|
|
18
|
-
|
|
19
|
-
```text
|
|
20
|
-
我有个想法,直接帮我生成完整 Spec。
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
如果 AI 开始替你补全关键业务规则,要把它拉回来:
|
|
24
|
-
|
|
25
|
-
```text
|
|
26
|
-
这个规则不要猜,请作为待确认问题列出。
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### 1.2 术语稳定后立刻沉淀
|
|
30
|
-
|
|
31
|
-
当一个业务概念已经确定,就写入 `CONTEXT.md`。不要等整轮讨论结束再批量整理,因为批量整理容易把“已确认”和“仍在猜”混在一起。
|
|
32
|
-
|
|
33
|
-
写入标准:
|
|
34
|
-
|
|
35
|
-
- 是本项目特有的业务语言。
|
|
36
|
-
- 定义能用一两句话说清。
|
|
37
|
-
- 有同义词或容易误用的词需要规避。
|
|
38
|
-
- 后续 Spec、OpenAPI、代码、测试都会复用。
|
|
39
|
-
|
|
40
|
-
不写入:
|
|
41
|
-
|
|
42
|
-
- 通用技术词。
|
|
43
|
-
- 类名、表名、字段名。
|
|
44
|
-
- 临时讨论结论。
|
|
45
|
-
- 尚未确认的猜测。
|
|
46
|
-
|
|
47
|
-
### 1.3 ADR 要少而准
|
|
48
|
-
|
|
49
|
-
ADR 不是会议纪要,也不是方案全文。它只记录难以回滚、非显而易见、经过真实取舍的决定。
|
|
50
|
-
|
|
51
|
-
在 grill 中出现这类问题时才考虑 ADR:
|
|
52
|
-
|
|
53
|
-
- 将来改掉成本很高。
|
|
54
|
-
- 未来维护者会疑惑为什么这样做。
|
|
55
|
-
- 当时有多个可行选择。
|
|
56
|
-
|
|
57
|
-
如果只是“常规实现方式”,不要写 ADR。
|
|
58
|
-
|
|
59
|
-
### 1.4 不要把 grill 当实现计划
|
|
60
|
-
|
|
61
|
-
`grill-with-docs` 产出的不是开发任务清单。它负责澄清:
|
|
62
|
-
|
|
63
|
-
- 谁用。
|
|
64
|
-
- 做什么。
|
|
65
|
-
- 为什么做。
|
|
66
|
-
- 不做什么。
|
|
67
|
-
- 业务词怎么定义。
|
|
68
|
-
- 哪些决定需要记录。
|
|
69
|
-
|
|
70
|
-
实施计划应交给:
|
|
71
|
-
|
|
72
|
-
- `to-spec`
|
|
73
|
-
- `writing-plans`
|
|
74
|
-
- `Ticket`
|
|
75
|
-
- `yss-router`
|
|
76
|
-
|
|
77
|
-
## 2. 推荐追问维度
|
|
78
|
-
|
|
79
|
-
### 2.1 用户与角色
|
|
80
|
-
|
|
81
|
-
必须问清:
|
|
82
|
-
|
|
83
|
-
- 谁是主要用户。
|
|
84
|
-
- 谁配置,谁审批,谁查看结果。
|
|
85
|
-
- 管理员和普通业务用户的边界。
|
|
86
|
-
- 实施人员是否有特殊操作入口。
|
|
87
|
-
|
|
88
|
-
示例:
|
|
89
|
-
|
|
90
|
-
```text
|
|
91
|
-
模型发布是建模人员自己发布,还是需要平台管理员审批?
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### 2.2 业务对象和状态
|
|
95
|
-
|
|
96
|
-
必须问清:
|
|
97
|
-
|
|
98
|
-
- 核心对象是什么。
|
|
99
|
-
- 对象有哪些状态。
|
|
100
|
-
- 状态能否回退。
|
|
101
|
-
- 状态变化是否产生审计记录。
|
|
102
|
-
|
|
103
|
-
示例:
|
|
104
|
-
|
|
105
|
-
```text
|
|
106
|
-
草稿版本发布后,是生成一个新的发布版本,还是直接把草稿状态改为已发布?
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 2.3 边界和非目标
|
|
110
|
-
|
|
111
|
-
必须问清:
|
|
112
|
-
|
|
113
|
-
- 第一版做什么。
|
|
114
|
-
- 第一版明确不做什么。
|
|
115
|
-
- 哪些能力只是竞品参考,不进入 MVP。
|
|
116
|
-
- 哪些能力必须人工确认。
|
|
117
|
-
|
|
118
|
-
示例:
|
|
119
|
-
|
|
120
|
-
```text
|
|
121
|
-
模型发布第一版是否包含审批流、回滚、血缘影响分析和通知?
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### 2.4 异常和失败路径
|
|
125
|
-
|
|
126
|
-
必须问清:
|
|
127
|
-
|
|
128
|
-
- 校验失败怎么提示。
|
|
129
|
-
- 并发编辑怎么处理。
|
|
130
|
-
- 下游引用时发布失败怎么办。
|
|
131
|
-
- 权限不足、网络失败、数据不存在如何反馈。
|
|
132
|
-
|
|
133
|
-
示例:
|
|
134
|
-
|
|
135
|
-
```text
|
|
136
|
-
如果发布时字段校验失败,用户需要看到字段级错误,还是只看到整体失败原因?
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### 2.5 验收和可验证性
|
|
140
|
-
|
|
141
|
-
必须问清:
|
|
142
|
-
|
|
143
|
-
- 什么结果算完成。
|
|
144
|
-
- 哪些场景必须自动化测试。
|
|
145
|
-
- 哪些场景必须人工验收。
|
|
146
|
-
- 哪些日志、审计、实施记录需要保留。
|
|
147
|
-
|
|
148
|
-
示例:
|
|
149
|
-
|
|
150
|
-
```text
|
|
151
|
-
发布成功后,如何证明下游只能引用发布版本,不能引用草稿版本?
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## 3. 与产品全生命周期结合
|
|
155
|
-
|
|
156
|
-
### 3.1 竞品分析之后
|
|
157
|
-
|
|
158
|
-
竞品分析给出“行业常见能力”和“差异化机会”,grill 负责把它变成你的产品边界。
|
|
159
|
-
|
|
160
|
-
推荐输入:
|
|
161
|
-
|
|
162
|
-
```text
|
|
163
|
-
使用 grill-with-docs,基于 `docs/.scratch/model-management/discovery/reports/model-management-competitive-matrix.md`,
|
|
164
|
-
追问哪些竞品能力进入 MVP,哪些作为非目标。
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
输出应能支撑 discovery 和 Spec。
|
|
168
|
-
|
|
169
|
-
### 3.2 Spec 之前
|
|
170
|
-
|
|
171
|
-
Spec 之前使用 grill,可以降低“AI 代替产品经理做决定”的风险。
|
|
172
|
-
|
|
173
|
-
推荐输出:
|
|
174
|
-
|
|
175
|
-
- 已确认用户故事。
|
|
176
|
-
- 非目标范围。
|
|
177
|
-
- 关键验收标准。
|
|
178
|
-
- OpenAPI 影响初判。
|
|
179
|
-
- 待人工确认问题。
|
|
180
|
-
|
|
181
|
-
### 3.3 Ticket 之前
|
|
182
|
-
|
|
183
|
-
Ticket 需要清晰 change 目标。如果目标还模糊,先 grill。
|
|
184
|
-
|
|
185
|
-
进入 Ticket 拆分前至少确认:
|
|
186
|
-
|
|
187
|
-
- change 名称表达一个目标。
|
|
188
|
-
- 主要行为和非目标清楚。
|
|
189
|
-
- API 影响明确。
|
|
190
|
-
- 是否存在高风险变更、人工确认项或回滚约束。
|
|
191
|
-
- 是否存在需要 ADR 的取舍。
|
|
192
|
-
|
|
193
|
-
### 3.4 YSS 实现之前
|
|
194
|
-
|
|
195
|
-
进入 `yss-router` 前,grill 应该已经解决业务问题,不应再把业务规则留给专项实现技能猜。
|
|
196
|
-
|
|
197
|
-
进入实现前至少确认:
|
|
198
|
-
|
|
199
|
-
- 页面或接口服务的业务目的。
|
|
200
|
-
- 领域对象和状态。
|
|
201
|
-
- 验收标准。
|
|
202
|
-
- OpenAPI 影响。
|
|
203
|
-
- 前后端职责边界。
|
|
204
|
-
|
|
205
|
-
## 4. 输出格式建议
|
|
206
|
-
|
|
207
|
-
每轮 grill 结束时,建议要求 AI 输出:
|
|
208
|
-
|
|
209
|
-
```markdown
|
|
210
|
-
## 本轮结论
|
|
211
|
-
|
|
212
|
-
### 已确认
|
|
213
|
-
- ...
|
|
214
|
-
|
|
215
|
-
### 待确认
|
|
216
|
-
- ...
|
|
217
|
-
|
|
218
|
-
### 非目标
|
|
219
|
-
- ...
|
|
220
|
-
|
|
221
|
-
### 术语沉淀
|
|
222
|
-
- `CONTEXT.md`: ...
|
|
223
|
-
|
|
224
|
-
### ADR 建议
|
|
225
|
-
- 无 / 建议新增 `docs/adr/000N-xxx.md`
|
|
226
|
-
|
|
227
|
-
### 下一步
|
|
228
|
-
- ...
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
如果存在待确认问题,不要直接进入实现。
|
|
232
|
-
|
|
233
|
-
## 5. 常见反模式
|
|
234
|
-
|
|
235
|
-
| 反模式 | 风险 | 改法 |
|
|
236
|
-
|---|---|---|
|
|
237
|
-
| AI 一次问十个问题 | 用户难回答,容易敷衍 | 一次聚焦一个主题,必要时一个关键问题一轮 |
|
|
238
|
-
| AI 替业务做决定 | 关键规则来自猜测 | 标为待确认 |
|
|
239
|
-
| 术语都写进 CONTEXT.md | 词汇表膨胀失真 | 只写已确认的业务术语,并带 PascalCase `英文标识` |
|
|
240
|
-
| ADR 写成大方案 | 后续没人读 | 只记录决定和原因 |
|
|
241
|
-
| grill 之后直接开发 | Spec / OpenAPI / change 丢失 | 先进入 Spec 或 Ticket |
|
|
242
|
-
| 只问正常路径 | 异常场景上线后暴露 | 必问失败、并发、权限、回滚 |
|
|
243
|
-
| 把实现细节写入 glossary | 领域语言污染 | 实现细节放 Spec、设计或 ADR |
|
|
244
|
-
|
|
245
|
-
## 6. 检查清单
|
|
246
|
-
|
|
247
|
-
### 开始 grill 前
|
|
248
|
-
|
|
249
|
-
- [ ] 已说明业务背景。
|
|
250
|
-
- [ ] 已提供已有材料路径。
|
|
251
|
-
- [ ] 已说明希望澄清的主题。
|
|
252
|
-
- [ ] 已授权是否可以更新 `CONTEXT.md`。
|
|
253
|
-
- [ ] 已说明是否需要 ADR 建议。
|
|
254
|
-
|
|
255
|
-
### grill 过程中
|
|
256
|
-
|
|
257
|
-
- [ ] 不确定的问题标记为待确认。
|
|
258
|
-
- [ ] 稳定业务术语及时写入 `CONTEXT.md`,并填写 PascalCase `英文标识`。
|
|
259
|
-
- [ ] 冲突术语被指出并解决。
|
|
260
|
-
- [ ] 正常路径、异常路径、权限和边界都被问到。
|
|
261
|
-
- [ ] 重大取舍按 ADR 三条件判断。
|
|
262
|
-
|
|
263
|
-
### grill 结束后
|
|
264
|
-
|
|
265
|
-
- [ ] 已确认范围和非目标。
|
|
266
|
-
- [ ] 已列出待确认问题。
|
|
267
|
-
- [ ] `CONTEXT.md` 没有类全名、表名或接口路径;业务术语有英文标识词干。
|
|
268
|
-
- [ ] ADR 只记录必要决定。
|
|
269
|
-
- [ ] 已明确下一步是 discovery、Spec、OpenAPI、Ticket 还是实现路由。
|
|
270
|
-
|
|
271
|
-
## 7. 一句话原则
|
|
272
|
-
|
|
273
|
-
```text
|
|
274
|
-
grill-with-docs 的成果不是“问了很多问题”,而是让后续 Spec、规格和代码不再靠猜。
|
|
275
|
-
```
|