@xulthekl/team-flow 0.24.0 → 0.26.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 (61) hide show
  1. package/.claude/always/phase-guard.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/.claude-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +1 -1
  5. package/.cursor-plugin/marketplace.json +1 -1
  6. package/.cursor-plugin/plugin.json +1 -1
  7. package/.github/plugin/marketplace.json +2 -2
  8. package/AGENTS.md +3 -3
  9. package/CHANGELOG.md +86 -0
  10. package/GEMINI.md +1 -1
  11. package/INSTALL.md +1 -1
  12. package/README.md +1 -1
  13. package/docs/README_en.md +1 -1
  14. package/docs/solutions/INDEX.md +1 -0
  15. package/docs/solutions/cross-phase/2026-07-29-no-summary.md +17 -0
  16. package/gemini-extension.json +1 -1
  17. package/hooks/session-start +2 -2
  18. package/llms.txt +1 -1
  19. package/package.json +1 -1
  20. package/plugin.json +1 -1
  21. package/scripts/lib/config-loader.mjs +10 -3
  22. package/skills/bug-investigator/SKILL.md +1 -1
  23. package/skills/build-executor/SKILL.md +19 -19
  24. package/skills/build-executor/implementer-prompt.md +1 -1
  25. package/skills/build-executor/references/execution-modes.md +6 -6
  26. package/skills/build-executor/task-reviewer-prompt.md +1 -1
  27. package/skills/ce-brainstorm/SKILL.md +63 -347
  28. package/skills/ce-brainstorm/references/brainstorm-sections.md +11 -0
  29. package/skills/ce-brainstorm/references/grounding.md +47 -0
  30. package/skills/ce-brainstorm/references/output-format.md +25 -0
  31. package/skills/ce-brainstorm/references/phase0-routing.md +96 -0
  32. package/skills/ce-brainstorm/references/prd-mapping.md +37 -0
  33. package/skills/ce-brainstorm/references/prototype-loop.md +55 -0
  34. package/skills/ce-ideate/SKILL.md +31 -348
  35. package/skills/ce-ideate/references/grounding.md +107 -0
  36. package/skills/ce-ideate/references/phase0-scope.md +134 -0
  37. package/skills/ce-ideate/references/topic-surface.md +37 -0
  38. package/skills/ce-proof/SKILL.md +8 -266
  39. package/skills/ce-proof/references/api-recipes.md +145 -0
  40. package/skills/ce-proof/references/workflows.md +124 -0
  41. package/skills/code-reviewer/SKILL.md +2 -2
  42. package/skills/code-reviewer/code-reviewer-prompt.md +1 -1
  43. package/skills/contract-builder/SKILL.md +6 -6
  44. package/skills/need-explorer/SKILL.md +2 -2
  45. package/skills/prototype/SKILL.md +16 -2
  46. package/skills/prototype/references/agents/design-system-architect.md +11 -122
  47. package/skills/prototype/references/interactive-prototype.md +110 -0
  48. package/skills/prototype/references/layouts.md +188 -2
  49. package/skills/prototype/references/orchestration-flow.md +8 -1
  50. package/skills/prototype/references/template.html +32 -0
  51. package/skills/prototype/references/wireframe.md +117 -0
  52. package/skills/release-archivist/SKILL.md +14 -12
  53. package/skills/release-archivist/references/closing-procedures.md +11 -9
  54. package/skills/spec-merger/SKILL.md +2 -2
  55. package/skills/spec-writer/SKILL.md +3 -3
  56. package/skills/workflow-orchestrator/references/s2-prd-prototype-loop.md +1 -1
  57. package/skills/workflow-orchestrator/references/s4-split-validate.md +1 -1
  58. package/skills/workflow-orchestrator/references/s5-monitoring.md +1 -1
  59. package/skills/workflow-start/SKILL.md +16 -16
  60. package/skills/workflow-start/references/routing-rules.md +17 -17
  61. package/templates/prd-brainstorm-profile.md +69 -0
@@ -1,9 +1,11 @@
1
- # Layouts(B 端 section 骨架库 · v0.18.0
1
+ # Layouts(B+C 端 section 骨架库 · v0.18.0, v0.24.0 C 端扩展)
2
2
 
3
3
  > 把 section 直接落入 `template.html` 的 `<main id="content">`。**不要从零写 section**——
4
4
  > 选最接近的 layout,整段粘贴,再换文案。所有片段只用下方「class 契约」里列出的类,
5
5
  > 结构元素一律带 `data-testid`(页面级 `P-{xx}-{slug}` / 场景级 `S-{nn}-{slug}`)。
6
- > B 端导向:管理后台 / 表单 / 仪表盘 / 文档索引,而非 C 端营销落地页。
6
+ >
7
+ > **B 端骨架**(§1-8):管理后台 / 表单 / 仪表盘 / 文档索引。
8
+ > **C 端骨架**(§9-14):营销落地页 / 产品介绍 / 定价页。
7
9
 
8
10
  ## Class 契约(inventory · 与 template.html 的 `<style>` 一一对应)
9
11
 
@@ -20,6 +22,7 @@
20
22
  | 表格 | `ds-table` `num-col` |
21
23
  | 占位/日志 | `ph-img` `log-row` |
22
24
  | 页面框架 | `topnav` `pagefoot` |
25
+ | C 端扩展 | `hero-xl` `social-proof` `logo-wall` `pricing-card` `faq-item` `faq-toggle` `urgency` `countdown` |
23
26
 
24
27
  **硬规则**:如果你想用一个不在这张表里的 class,**先在 `<style>` 里把它定义出来**。
25
28
  绝不允许凭空发明一个没有 CSS 支撑的全局类。宁可定义,不可漂移。
@@ -199,6 +202,179 @@
199
202
 
200
203
  ---
201
204
 
205
+ ## C 端骨架(v0.24.0 新增)
206
+
207
+ > C 端 section 强调视觉冲击力、情感驱动、转化导向。与 B 端的「信息密度优先」形成对比。
208
+
209
+ ## 9. hero-xl(C 端超大开场)
210
+
211
+ **use-when**:营销落地页 / 产品首页开场。全屏视觉冲击,一句话价值主张 + 单一强 CTA。
212
+
213
+ ```html
214
+ <section class="hero-xl section" data-testid="P-09-hero-xl">
215
+ <div class="container hero-center">
216
+ <p class="eyebrow">产品名 · 一句话定位</p>
217
+ <h1>用动词开头的价值主张,不超过 10 个字</h1>
218
+ <p class="lead">用「你」开头的第二人称描述,点出用户获得的具体收益。</p>
219
+ <div class="hero-cta">
220
+ <a class="btn btn-primary" href="#">免费开始</a>
221
+ <a class="btn btn-ghost" href="#">观看演示 →</a>
222
+ </div>
223
+ </div>
224
+ </section>
225
+ ```
226
+
227
+ **纪律**:h1 ≤10 字,动词开头(「提升」「节省」「加速」);CTA 按钮用动作词(「开始」「试用」),不用名词(「方案」「详情」);hero-xl 高度 ≥60vh,留白要足。
228
+
229
+ ## 10. marketing-features(收益导向特性)
230
+
231
+ **use-when**:向 C 端用户展示产品能力。**强调 benefits(用户得到什么),而非 features(产品有什么)。**
232
+
233
+ ```html
234
+ <section class="section" data-testid="P-10-marketing-features">
235
+ <div class="container stack">
236
+ <h2>为什么选择我们</h2>
237
+ <div class="grid-2">
238
+ <div class="feature">
239
+ <div class="feature-mark" aria-hidden="true">
240
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
241
+ </div>
242
+ <h3>节省 80% 时间</h3>
243
+ <p>把重复工作交给系统,你专注在真正重要的决策上。</p>
244
+ </div>
245
+ <div class="feature">
246
+ <div class="feature-mark" aria-hidden="true">
247
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
248
+ </div>
249
+ <h3>零学习成本</h3>
250
+ <p>界面直觉化设计,5 分钟上手,无需培训文档。</p>
251
+ </div>
252
+ </div>
253
+ </div>
254
+ </section>
255
+ ```
256
+
257
+ **纪律**:标题用「你得到什么」(节省/提升/简化),不用「我们有什么」(功能/模块/系统);数字必须真实(见 anti-ai-slop ⑥);2 列或 3 列均可,不超过 4 列。
258
+
259
+ ## 11. social-proof(社会证明)
260
+
261
+ **use-when**:建立信任 / 降低决策焦虑。三种形式:客户 logo 墙 / 用户证言 / 关键数据。
262
+
263
+ ```html
264
+ <section class="section" data-testid="P-11-social-proof">
265
+ <div class="container stack">
266
+ <h2>已服务 1,200+ 团队</h2>
267
+ <div class="logo-wall grid-4">
268
+ <div class="ph-img">客户 A</div>
269
+ <div class="ph-img">客户 B</div>
270
+ <div class="ph-img">客户 C</div>
271
+ <div class="ph-img">客户 D</div>
272
+ </div>
273
+ <figure class="quote">
274
+ <div class="quote-mark" aria-hidden="true">&ldquo;</div>
275
+ <p>上线第一周,跨部门对齐时间从 2 天降到 30 分钟。</p>
276
+ <figcaption class="quote-author">—— 某公司运营负责人</figcaption>
277
+ </figure>
278
+ </div>
279
+ </section>
280
+ ```
281
+
282
+ **纪律**:logo 用灰阶(避免彩色 logo 抢夺视觉焦点);数据必须真实(见 anti-ai-slop ⑥);quote 归属用真实职位,不写「某用户」。
283
+
284
+ ## 12. pricing-c(C 端定价卡)
285
+
286
+ **use-when**:SaaS 定价页 / 套餐对比。3 列卡片,中间列高亮推荐。
287
+
288
+ ```html
289
+ <section class="section" data-testid="P-12-pricing">
290
+ <div class="container">
291
+ <h2>选择适合你的方案</h2>
292
+ <div class="grid-3">
293
+ <div class="pricing-card">
294
+ <h3>个人版</h3>
295
+ <div class="stat"><span class="stat-num num">¥29</span><span class="stat-label">/月</span></div>
296
+ <ul>
297
+ <li>1 个项目</li>
298
+ <li>5GB 存储</li>
299
+ <li>邮件支持</li>
300
+ </ul>
301
+ <a class="btn btn-secondary" href="#">选择</a>
302
+ </div>
303
+ <div class="pricing-card">
304
+ <span class="pill">推荐</span>
305
+ <h3>团队版</h3>
306
+ <div class="stat"><span class="stat-num num">¥99</span><span class="stat-label">/月</span></div>
307
+ <ul>
308
+ <li>不限项目</li>
309
+ <li>100GB 存储</li>
310
+ <li>优先支持</li>
311
+ </ul>
312
+ <a class="btn btn-primary" href="#">选择</a>
313
+ </div>
314
+ <div class="pricing-card">
315
+ <h3>企业版</h3>
316
+ <div class="stat"><span class="stat-num num">定制</span><span class="stat-label">联系销售</span></div>
317
+ <ul>
318
+ <li>私有部署</li>
319
+ <li>不限存储</li>
320
+ <li>专属客服</li>
321
+ </ul>
322
+ <a class="btn btn-secondary" href="#">咨询</a>
323
+ </div>
324
+ </div>
325
+ </div>
326
+ </section>
327
+ ```
328
+
329
+ **纪律**:推荐项用 `pill` + `btn-primary` 双重强调,非推荐项用 `btn-secondary`;价格数字用 `num`(等宽);特性列表 ≤5 项,用动词开头(「支持」「包含」「提供」)。
330
+
331
+ ## 13. faq(常见问题)
332
+
333
+ **use-when**:消除购买疑虑 / 减少客服压力。5-8 个问题,覆盖「是什么/怎么用/多少钱/安全吗」。
334
+
335
+ ```html
336
+ <section class="section" data-testid="P-13-faq">
337
+ <div class="container stack">
338
+ <h2>常见问题</h2>
339
+ <details class="faq-item">
340
+ <summary class="faq-toggle">可以免费试用吗?</summary>
341
+ <p>可以,所有方案提供 14 天免费试用,无需绑定信用卡。</p>
342
+ </details>
343
+ <details class="faq-item">
344
+ <summary class="faq-toggle">数据安全如何保障?</summary>
345
+ <p>所有数据加密存储,通过 ISO 27001 认证,支持私有部署。</p>
346
+ </details>
347
+ <details class="faq-item">
348
+ <summary class="faq-toggle">可以随时取消订阅吗?</summary>
349
+ <p>可以,按月订阅无合约期,随时可在设置页取消。</p>
350
+ </details>
351
+ </div>
352
+ </section>
353
+ ```
354
+
355
+ **纪律**:用原生 `<details>/<summary>` 实现折叠(零 JS 依赖);问题用用户视角(「我可以...」「怎么...」),不用产品视角(「系统支持...」);答案 ≤3 句,直接给结论。
356
+
357
+ ## 14. cta-c(C 端行动召唤)
358
+
359
+ **use-when**:页面收口,带紧迫感。强调「现在行动」的收益或「错过」的损失。
360
+
361
+ ```html
362
+ <section class="section" data-testid="P-14-cta">
363
+ <div class="container hero-center">
364
+ <h2>今天就开始,14 天免费</h2>
365
+ <p class="lead">无需信用卡,3 分钟完成注册。</p>
366
+ <div class="hero-cta">
367
+ <a class="btn btn-primary" href="#">立即免费试用</a>
368
+ </div>
369
+ <p class="urgency">已有 1,200+ 团队在使用</p>
370
+ </div>
371
+ </section>
372
+ ```
373
+
374
+ **纪律**:CTA 按钮用动作词 + 收益词(「免费试用」「立即开始」);urgency 用社会证明(「已有 N 人使用」)或时间限制(「限时优惠」),**不编造倒计时**(见 anti-ai-slop ⑥);留白要足(上下 `--section-pad`)。
375
+
376
+ ---
377
+
202
378
  ## 页面类型节奏表(B 端)
203
379
 
204
380
  | 页面类型 | section 节奏(自上而下) |
@@ -209,6 +385,15 @@
209
385
  | Landing / 概览 | `hero` → `features` → `stats`/`quote` → `cta-strip` |
210
386
  | 文档索引 | `hero-center` → `log` 条目列表 → `cta-strip` |
211
387
 
388
+ ## 页面类型节奏表(C 端,v0.24.0 新增)
389
+
390
+ | 页面类型 | section 节奏(自上而下) |
391
+ |----------|--------------------------|
392
+ | SaaS 落地页 | `hero-xl` → `marketing-features` → `social-proof` → `pricing-c` → `faq` → `cta-c` |
393
+ | 产品介绍页 | `hero-xl` → `hero-split`(截图展示)→ `marketing-features` → `social-proof` → `cta-c` |
394
+ | 定价页 | `hero-center`(简短开场)→ `pricing-c` → `faq` → `cta-c` |
395
+ | 活动营销页 | `hero-xl` → `social-proof`(数据+logo)→ `marketing-features` → `cta-c`(带 urgency) |
396
+
212
397
  ## 抗疲劳规则(anti-fatigue)
213
398
 
214
399
  **两个 stats 行连放、两个 features 三联连放——都会造成视觉疲劳。必须交替。**
@@ -221,3 +406,4 @@
221
406
  - [ ] 每屏单一 accent,使用处 ≤2(主按钮 + 一处强调,够了)。
222
407
  - [ ] 所有结构元素带 `data-testid`;只引用契约内的类,缺类先定义再用。
223
408
  - [ ] stats 全为真实数字;quote 每页一条;同型 section 不连放。
409
+ - [ ] **C 端特有**:hero-xl h1 ≤10 字动词开头;pricing-c 推荐项用 pill+btn-primary 双重强调;faq 用原生 `<details>` 不用 JS;urgency 不编造倒计时。
@@ -52,7 +52,14 @@ LT 确认后进入 ③。**confirmed_plan 序列化**:将 scout 简报的选
52
52
 
53
53
  派发插件 agent `prototype-builder`(有 Write),传入:已确认的原型方案(含选定方向)、`design-system.md` 路径、目标分支/版本、PRD 路径。
54
54
 
55
- **prompt 组装顺序契约(v0.18.0)**:`design-system.md → references/template.html → references/layouts.md → references/checklist.md → references/craft/(按页面类型选择注入)→ PRD`。craft 注入策略:仪表盘→laws-of-ux+state-coverage;表单→state-coverage+accessibility-baseline;列表→typography-hierarchy;通用→anti-ai-slop(始终注入)。
55
+ **prompt 组装顺序契约(v0.18.0, v0.24.0 扩展)**:`design-system.md → references/template.html → references/layouts.md → references/checklist.md → references/craft/(按页面类型选择注入)→ references/interactive-prototype.md(按需)→ references/wireframe.md(按需)→ PRD`。
56
+
57
+ craft 注入策略:仪表盘→laws-of-ux+state-coverage;表单→state-coverage+accessibility-baseline;列表→typography-hierarchy;通用→anti-ai-slop(始终注入)。
58
+
59
+ **原型类型注入策略(v0.24.0)**:
60
+ - **线框图模式**(scout 简报标注 `prototype_type: wireframe`)→ 注入 `references/wireframe.md`,跳过 template.html/layouts.md(线框图不用种子骨架)
61
+ - **交互原型模式**(scout 简报标注 `prototype_type: interactive`,PRD 含复杂表单/多步流程/动态反馈)→ 注入 `references/interactive-prototype.md` + `craft/state-coverage.md`(强制)
62
+ - **静态原型模式**(默认)→ 不注入额外文件,按现有流程
56
63
 
57
64
  prototype-builder **从种子模板组合**(template.html + layouts.md 骨架),先报 section 列表,再填充真实文案,P0/P1/P2 自检后提交。零外部依赖、复用设计系统 token、禁止内联样式漂移。按 §18.1 返回 deliverable = prototype/ 入口绝对路径。
58
65
 
@@ -291,6 +291,38 @@ code{ font-family: var(--font-mono); font-size: 0.9em; }
291
291
  }
292
292
  #tweaks button[aria-pressed="true"]{ background: var(--accent-soft); color: var(--accent); }
293
293
 
294
+ /* ============================================================
295
+ C-CONSUMER EXTENSIONS(v0.24.0 新增)
296
+ ============================================================ */
297
+ .hero-xl{ padding: calc(var(--section-pad) * 1.5) 0; min-height: 60vh; display: flex; align-items: center; }
298
+ .hero-xl .hero-center h1{ font-size: calc(var(--text-4xl) * 1.2); }
299
+ .social-proof{ text-align: center; }
300
+ .logo-wall{ align-items: center; justify-items: center; }
301
+ .logo-wall .ph-img{ aspect-ratio: 4 / 3; filter: grayscale(1); opacity: 0.7; }
302
+ .pricing-card{
303
+ background: var(--surface); border: 1px solid var(--border);
304
+ border-radius: var(--radius-lg); padding: var(--space-7);
305
+ display: flex; flex-direction: column; gap: var(--space-4); position: relative;
306
+ }
307
+ .pricing-card .pill{ position: absolute; top: calc(var(--space-4) * -1); left: 50%; transform: translateX(-50%); }
308
+ .pricing-card h3{ font-size: var(--text-xl); text-align: center; }
309
+ .pricing-card .stat{ text-align: center; }
310
+ .pricing-card ul{ list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-3); }
311
+ .pricing-card li{ font-size: var(--text-sm); color: var(--muted); padding-left: var(--space-5); position: relative; }
312
+ .pricing-card li::before{ content: '✓'; position: absolute; left: 0; color: var(--accent); font-weight: 700; }
313
+ .pricing-card .btn{ margin-top: auto; width: 100%; }
314
+ .faq-item{ border-bottom: 1px solid var(--border); padding: var(--space-4) 0; }
315
+ .faq-item:last-child{ border-bottom: 0; }
316
+ .faq-toggle{
317
+ font: inherit; font-weight: 600; font-size: var(--text-base);
318
+ cursor: pointer; color: var(--fg); list-style: none;
319
+ display: flex; justify-content: space-between; align-items: center;
320
+ }
321
+ .faq-toggle::after{ content: '+'; font-size: var(--text-xl); color: var(--muted); transition: transform var(--motion-fast); }
322
+ .faq-item[open] .faq-toggle::after{ content: '−'; }
323
+ .faq-item p{ margin-top: var(--space-3); color: var(--muted); font-size: var(--text-sm); }
324
+ .urgency{ font-size: var(--text-sm); color: var(--muted); margin-top: var(--space-4); }
325
+
294
326
  /* ============================================================
295
327
  RESPONSIVE: ≤920px 全部栅格塌缩为单列
296
328
  ============================================================ */
@@ -0,0 +1,117 @@
1
+ # 线框图方法论(零依赖适配版)
2
+
3
+ > **方法论来源**:baoyu-design `built-in-skills/wireframe.md`,经零依赖原则重写。
4
+ >
5
+ > **适用场景**:PRD 早期快速探索设计空间,用低保真线框图验证信息架构和流程,避免过早投入高保真细节。
6
+
7
+ ## 核心目标
8
+
9
+ **Breadth over polish** — 快速生成 3-5 个差异化方案,验证设计方向,而非打磨单一方案的视觉细节。
10
+
11
+ ## 线框图三原则
12
+
13
+ ### 1. 低保真(Low-fi)
14
+
15
+ - **颜色**:灰阶为主(`#f0f0f0` / `#cccccc` / `#666666`),最多 1 个强调色
16
+ - **形状**:矩形 + 圆形 + 线条,无圆角/阴影/渐变
17
+ - **文字**:占位符(`[标题]` / `[描述文字]` / `[按钮]`),非真实文案
18
+ - **图片**:灰色矩形 + X 线(SVG 内联),无真实图片
19
+
20
+ ```html
21
+ <div class="wf-card">
22
+ <div class="wf-image"><!-- 灰色矩形 --></div>
23
+ <div class="wf-title">[标题]</div>
24
+ <div class="wf-desc">[描述文字,2-3 行]</div>
25
+ <button class="wf-btn">[按钮]</button>
26
+ </div>
27
+ ```
28
+
29
+ ### 2. 快速迭代
30
+
31
+ - **时间盒**:单方案 ≤ 30 分钟,超时 = 过度设计
32
+ - **方案数量**:3-5 个,少于 3 = 探索不足,多于 5 = 决策瘫痪
33
+ - **变体维度**:布局差异(栅格/列表/卡片)、导航差异(侧边栏/顶栏/tab)、信息密度差异(紧凑/宽松)
34
+
35
+ ### 3. 结构化对比
36
+
37
+ 所有方案并排展示,用 `data-variant` 标记:
38
+
39
+ ```html
40
+ <div class="wf-compare">
41
+ <div data-variant="A" class="wf-option">方案 A:侧边栏导航</div>
42
+ <div data-variant="B" class="wf-option">方案 B:顶部 tab 导航</div>
43
+ <div data-variant="C" class="wf-option">方案 C:卡片式导航</div>
44
+ </div>
45
+ ```
46
+
47
+ ## 线框图必含要素
48
+
49
+ ### 1. 页面骨架
50
+
51
+ 用 `section` 标签 + `data-section` 标记区域:
52
+
53
+ ```html
54
+ <section data-section="header">[导航栏]</section>
55
+ <section data-section="hero">[首屏主内容]</section>
56
+ <section data-section="content">[主体内容]</section>
57
+ <section data-section="footer">[页脚]</section>
58
+ ```
59
+
60
+ ### 2. 信息层级
61
+
62
+ 用字号差异(非颜色/装饰)建立层级:
63
+
64
+ ```css
65
+ .wf-title { font-size: 24px; font-weight: 700; }
66
+ .wf-subtitle { font-size: 16px; font-weight: 400; }
67
+ .wf-desc { font-size: 14px; color: #666; }
68
+ ```
69
+
70
+ ### 3. 交互提示
71
+
72
+ 用虚线框 + 文字标注交互行为:
73
+
74
+ ```html
75
+ <button class="wf-btn" data-interaction="点击后弹出确认框">[删除]</button>
76
+ ```
77
+
78
+ ## 线框图的 craft 约束
79
+
80
+ - **反 AI slop**:禁止渐变/emoji/图标装饰(见 `craft/anti-ai-slop.md` ②③⑤)
81
+ - **排版层级**:仅靠字号/字重建立层级,禁止全大写/全斜体(见 `craft/typography-hierarchy.md`)
82
+ - **无障碍基线**:灰阶对比度 ≥ 4.5:1(WCAG AA),确保可读(见 `craft/accessibility-baseline.md`)
83
+
84
+ ## 线框图 vs 静态原型 vs 交互原型
85
+
86
+ | 维度 | 线框图 | 静态原型 | 交互原型 |
87
+ |------|--------|---------|---------|
88
+ | 保真度 | 低保真(灰阶+占位符) | 中保真(设计系统+真实文案) | 中高保真(真实交互) |
89
+ | 目的 | 探索设计空间 | 验证视觉设计 | 验证交互流程 |
90
+ | 方案数量 | 3-5 个 | 1 个 | 1 个 |
91
+ | 时间投入 | ≤ 2 小时 | 1-2 天 | 2-3 天 |
92
+ | 适用阶段 | PRD 评审前 | PRD 评审后 | 技术评审前 |
93
+
94
+ ## 何时选择线框图
95
+
96
+ - PRD 早期,信息架构尚未确定
97
+ - 需要快速对比多种布局方案
98
+ - 团队对设计方向有分歧,需要可视化讨论
99
+ - 用户访谈前需要低成本测试物
100
+
101
+ ## 不适用场景
102
+
103
+ - 信息架构已确定(直接用静态原型)
104
+ - 需要验证视觉设计(用静态原型)
105
+ - 需要验证交互细节(用交互原型)
106
+ - 向非技术 stakeholders 展示(线框图太抽象)
107
+
108
+ ## 从线框图到高保真的路径
109
+
110
+ ```
111
+ 线框图(3-5 方案)
112
+ → 用户/团队选定 1 个方向
113
+ → 静态原型(应用设计系统+真实文案)
114
+ → 交互原型(添加真实交互逻辑)
115
+ ```
116
+
117
+ 线框图是**探索工具**,不是交付物。选定方向后应丢弃线框图,进入静态原型阶段。
@@ -72,12 +72,12 @@ If an `e2e/` suite exists for the change, fold its report into verification (see
72
72
  - Scope added without artifact updates?
73
73
  - Unresolved blockers or known risks?
74
74
  - Delta specs exist that need merging?
75
- - Run `npx --yes --package @xulthekl/team-flow@0.24.0 tf audit <change-dir>` — include `decision-point-audit.md` in archive
75
+ - Run `npx --yes --package @xulthekl/team-flow@0.26.0 tf audit <change-dir>` — include `decision-point-audit.md` in archive
76
76
 
77
77
  ### DP-6 (Verification Outcome)
78
78
  ```bash
79
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_6_result "<pass|conditional|fail>: <summary>"
80
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_6_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
79
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_6_result "<pass|conditional|fail>: <summary>"
80
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_6_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
81
81
  ```
82
82
  If FAIL, do NOT proceed to DP-7. Route back or ask about abandonment.
83
83
 
@@ -85,13 +85,13 @@ After recording a PASS outcome, also record it as the verification gate so the
85
85
  `executing → closing` transition is allowed (the guard accepts either
86
86
  `test_result: pass` or a `dp_6_result` starting with `pass`):
87
87
  ```bash
88
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> test_result pass
88
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> test_result pass
89
89
  ```
90
90
 
91
91
  ### DP-7 (Archive Confirmation)
92
92
  ```bash
93
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_7_result "confirmed: <archive summary>"
94
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_7_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
93
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_7_result "confirmed: <archive summary>"
94
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_7_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
95
95
  ```
96
96
  Verify DP-0 through DP-6 are recorded before DP-7.
97
97
 
@@ -101,14 +101,14 @@ If implementation diverged from the contract, return to `bridging` before closur
101
101
 
102
102
  ## Post-Verification
103
103
 
104
- Run `npx --yes --package @xulthekl/team-flow@0.24.0 tf state transition <change-dir> closing`. If delta specs exist, route to `spec-merger`.
104
+ Run `npx --yes --package @xulthekl/team-flow@0.26.0 tf state transition <change-dir> closing`. If delta specs exist, route to `spec-merger`.
105
105
 
106
106
  ### Architecture Merge (v0.10 §28-§31) — MUST run first
107
107
 
108
108
  Merge change-level architecture artifacts to the global `docs/architecture/` baseline **before** any other post-verification step:
109
109
 
110
110
  ```bash
111
- npx --yes --package @xulthekl/team-flow@0.24.0 tf arch-merge <change-dir>
111
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf arch-merge <change-dir>
112
112
  ```
113
113
 
114
114
  This merges `architecture/{architecture,database,api}.md` and `architecture/sql/` into the global architecture docs. Skip silently when `architecture/` does not exist (architecture-design was `skipped`).
@@ -120,19 +120,21 @@ This merges `architecture/{architecture,database,api}.md` and `architecture/sql/
120
120
  After `arch-merge` completes, run prototype-sync to merge UX deltas back to the global prototype:
121
121
 
122
122
  ```bash
123
- npx --yes --package @xulthekl/team-flow@0.24.0 tf prototype-sync <change-dir>
123
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf prototype-sync <change-dir>
124
124
  ```
125
125
 
126
126
  **Write-back order (mandatory)**: `arch-merge` → `prototype-sync` → `compound promotion` must be executed **sequentially** within the same change closing. Do not run them in parallel — the global `docs/architecture/` and `prototype/` must not be in a half-updated state when the next change grounds on them.
127
127
 
128
128
  If `prototype-sync` reports conflicts, list them in the closing summary and flag for manual resolution. Do not block closing on prototype-sync conflicts (advisory level).
129
129
 
130
+ **Execution verification(v0.24.0)**:`prototype-sync` 命令执行后,检查其 stdout 输出确认合并完成(输出含 `merged`/`no UX delta`/`conflicts` 之一)。若命令未执行或执行失败,Step 5 Report 的 `Prototype sync` 行必须标注 `SKIPPED` 或 `FAILED`,并在 closing summary 中说明原因。**禁止在 prototype-sync 未执行时将 Prototype sync 行标注为已完成**。
131
+
130
132
  ### Compound Promotion (v0.5)
131
133
 
132
134
  During closing, promote change-level learnings to the global solutions library:
133
135
 
134
136
  ```bash
135
- npx --yes --package @xulthekl/team-flow@0.24.0 tf solutions promote <change-dir>
137
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf solutions promote <change-dir>
136
138
  ```
137
139
 
138
140
  This checks `specs/<cap>/learnings.md` for entries meeting promotion criteria:
@@ -152,7 +154,7 @@ Before finalizing the closing, check if this change produced any learnable momen
152
154
 
153
155
  If any of the above occurred, capture the learning:
154
156
  ```bash
155
- npx --yes --package @xulthekl/team-flow@0.24.0 tf solutions capture \
157
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf solutions capture \
156
158
  --phase cross-phase --domain <domain> --type pitfall \
157
159
  --severity medium --summary "<what happened and how to prevent it>"
158
160
  ```
@@ -174,6 +176,6 @@ Verify files exist and are non-empty, run `node --check` on code files, skip 5-s
174
176
  ## Exception Handling
175
177
 
176
178
  - **Parse failures**: Report exact file and section
177
- - **Missing files**: If audit can't generate, run `npx --yes --package @xulthekl/team-flow@0.24.0 tf audit` manually
179
+ - **Missing files**: If audit can't generate, run `npx --yes --package @xulthekl/team-flow@0.26.0 tf audit` manually
178
180
  - **User interruption**: Re-run verification from the beginning on resume
179
181
  - **DP gaps**: Flag missing DPs during DP-6; ask user whether to proceed or return
@@ -7,19 +7,21 @@
7
7
  After `arch-merge` completes, run prototype-sync to merge UX deltas back to the global prototype:
8
8
 
9
9
  ```bash
10
- npx --yes --package @xulthekl/team-flow@0.24.0 tf prototype-sync <change-dir>
10
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf prototype-sync <change-dir>
11
11
  ```
12
12
 
13
- **Write-back order (mandatory)**: `arch-merge` → `prototype-sync` must be executed **sequentially** within the same change closing. Do not run them in parallel.
13
+ **Write-back order (mandatory)**: `arch-merge` → `prototype-sync` → `compound promotion` must be executed **sequentially** within the same change closing. Do not run them in parallel — the global `docs/architecture/` and `prototype/` must not be in a half-updated state when the next change grounds on them.
14
14
 
15
15
  If `prototype-sync` reports conflicts, list them in the closing summary and flag for manual resolution. Do not block closing on prototype-sync conflicts (advisory level).
16
16
 
17
+ **Execution verification(v0.24.0)**:`prototype-sync` 命令执行后,检查其 stdout 输出确认合并完成(输出含 `merged`/`no UX delta`/`conflicts` 之一)。若命令未执行或执行失败,Step 5 Report 的 `Prototype sync` 行必须标注 `SKIPPED` 或 `FAILED`,并在 closing summary 中说明原因。**禁止在 prototype-sync 未执行时将 Prototype sync 行标注为已完成**。
18
+
17
19
  ## Compound Promotion (v0.5)
18
20
 
19
21
  During closing, promote change-level learnings to the global solutions library:
20
22
 
21
23
  ```bash
22
- npx --yes --package @xulthekl/team-flow@0.24.0 tf solutions promote <change-dir>
24
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf solutions promote <change-dir>
23
25
  ```
24
26
 
25
27
  Promotion criteria:
@@ -39,7 +41,7 @@ Before finalizing the closing, check if this change produced any learnable momen
39
41
 
40
42
  If any occurred, capture the learning:
41
43
  ```bash
42
- npx --yes --package @xulthekl/team-flow@0.24.0 tf solutions capture \
44
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf solutions capture \
43
45
  --phase cross-phase --domain <domain> --type pitfall \
44
46
  --severity medium --summary "<what happened and how to prevent it>"
45
47
  ```
@@ -49,22 +51,22 @@ Advisory — skip silently if no learnable moments detected.
49
51
  ## DP-6 (Verification Outcome)
50
52
 
51
53
  ```bash
52
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_6_result "<pass|conditional|fail>: <summary>"
53
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_6_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
54
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_6_result "<pass|conditional|fail>: <summary>"
55
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_6_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
54
56
  ```
55
57
 
56
58
  If FAIL, do NOT proceed to DP-7. Route back or ask about abandonment.
57
59
 
58
60
  After PASS, also record the verification gate:
59
61
  ```bash
60
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> test_result pass
62
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> test_result pass
61
63
  ```
62
64
 
63
65
  ## DP-7 (Archive Confirmation)
64
66
 
65
67
  ```bash
66
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_7_result "confirmed: <archive summary>"
67
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_7_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
68
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_7_result "confirmed: <archive summary>"
69
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_7_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
68
70
  ```
69
71
 
70
72
  Verify DP-0 through DP-6 are recorded before DP-7.
@@ -10,7 +10,7 @@ After a change completes, delta specs (ADDED/MODIFIED/REMOVED/RENAMED) must be m
10
10
  ## Pre-Flight Checks
11
11
 
12
12
  ### Conflict Detection
13
- Run `npx --yes --package @xulthekl/team-flow@0.24.0 tf sync <change-dir>`. If conflicts are detected (same requirement modified by multiple changes), present the conflict list to the user for resolution order.
13
+ Run `npx --yes --package @xulthekl/team-flow@0.26.0 tf sync <change-dir>`. If conflicts are detected (same requirement modified by multiple changes), present the conflict list to the user for resolution order.
14
14
 
15
15
  ### Abandoned Change Guard
16
16
  Check if the change is `abandoned`. If so → STOP: "Abandoned changes cannot be synced. Delta specs are preserved for reference but must not be merged."
@@ -55,7 +55,7 @@ Output sync report table: Capability, ADDED/MODIFIED/REMOVED/RENAMED counts, Sta
55
55
  2. Change folder (including deltas) remains for traceability.
56
56
  3. Record that merging is complete so the `executing → closing` guard allows closure:
57
57
  ```bash
58
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> spec_merged true
58
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> spec_merged true
59
59
  ```
60
60
  (If the change had no delta sections, still set `spec_merged true` — there was nothing to merge.)
61
61
 
@@ -55,7 +55,7 @@ Read `docs/solutions/INDEX.md` if it exists. Filter entries where `phase = spec
55
55
 
56
56
  ## Config Check
57
57
 
58
- Run: `npx --yes --package @xulthekl/team-flow@0.24.0 tf runtime config --get artifacts.order` — generate in configured order (default: proposal → specs → design → tasks). Run with `artifacts.skip` — skip any listed artifacts.
58
+ Run: `npx --yes --package @xulthekl/team-flow@0.26.0 tf runtime config --get artifacts.order` — generate in configured order (default: proposal → specs → design → tasks). Run with `artifacts.skip` — skip any listed artifacts.
59
59
 
60
60
  ## Artifact Roles
61
61
 
@@ -135,8 +135,8 @@ Generate one at a time. Confirm each before next. This prevents scope drift —
135
135
 
136
136
  Present summary of all 4 artifacts (2-3 sentences each). Ask user for adjustments. After approval:
137
137
  ```bash
138
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_2_result "approved: <summary>"
139
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state set <change-dir> dp_2_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
138
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_2_result "approved: <summary>"
139
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state set <change-dir> dp_2_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
140
140
  ```
141
141
 
142
142
  ## Handoff Rule
@@ -54,7 +54,7 @@
54
54
  检测可复利时刻(需求矛盾、原型返工、自动评审发现不一致并修正等)。每次自动评审发现不一致并修正后触发:
55
55
 
56
56
  ```bash
57
- npx --yes --package @xulthekl/team-flow@0.24.0 tf solutions capture --phase prd --domain <domain> --type pitfall --severity <sev> --summary "<summary>"
57
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf solutions capture --phase prd --domain <domain> --type pitfall --severity <sev> --summary "<summary>"
58
58
  ```
59
59
 
60
60
  ### 6. 反馈环路检查点
@@ -38,7 +38,7 @@ verdict = FAIL → 必须回退 S3 调整拆分后重新审计,不可绕过直
38
38
 
39
39
  ```bash
40
40
  mkdir -p changes/<change-name>
41
- npx --yes --package @xulthekl/team-flow@0.24.0 tf state init changes/<change-name>
41
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf state init changes/<change-name>
42
42
  ```
43
43
 
44
44
  > ⚠️ **路径约束**:change 脚手架目录固定为项目根 `changes/<change-name>/`。
@@ -34,7 +34,7 @@
34
34
  change closing 时检查经验晋升(change 内经验 → 产品级经验):
35
35
 
36
36
  ```bash
37
- npx --yes --package @xulthekl/team-flow@0.24.0 tf solutions promote <change-dir>
37
+ npx --yes --package @xulthekl/team-flow@0.26.0 tf solutions promote <change-dir>
38
38
  ```
39
39
 
40
40
  ### 4. 动态重规划触发