@gordon.gan/specflow 1.8.0-beta → 1.8.2-beta

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 (181) hide show
  1. package/README.md +7 -5
  2. package/dist/cli/commands/document-run.d.ts +98 -0
  3. package/dist/cli/commands/document-run.js +1064 -0
  4. package/dist/cli/index.js +2 -2
  5. package/dist/core/artifact-language.js +11 -1
  6. package/dist/core/document/asset-paths.d.ts +15 -0
  7. package/dist/core/document/asset-paths.js +38 -0
  8. package/dist/core/document/chapters.d.ts +6 -0
  9. package/dist/core/document/chapters.js +38 -0
  10. package/dist/core/document/coverage.d.ts +25 -0
  11. package/dist/core/document/coverage.js +49 -0
  12. package/dist/core/document/digests.d.ts +40 -0
  13. package/dist/core/document/digests.js +144 -0
  14. package/dist/core/document/engine.d.ts +101 -0
  15. package/dist/core/document/engine.js +722 -0
  16. package/dist/core/document/extract.d.ts +61 -0
  17. package/dist/core/document/extract.js +437 -0
  18. package/dist/core/{approval → document}/forbidden-patterns.d.ts +4 -2
  19. package/dist/core/document/forbidden-patterns.js +36 -0
  20. package/dist/core/document/gates.d.ts +39 -0
  21. package/dist/core/document/gates.js +75 -0
  22. package/dist/core/document/input-digest.d.ts +63 -0
  23. package/dist/core/document/input-digest.js +200 -0
  24. package/dist/core/document/input-features.d.ts +43 -0
  25. package/dist/core/document/input-features.js +161 -0
  26. package/dist/core/document/lint.d.ts +39 -0
  27. package/dist/core/document/lint.js +147 -0
  28. package/dist/core/document/llm.d.ts +28 -0
  29. package/dist/core/document/llm.js +22 -0
  30. package/dist/core/document/map.d.ts +52 -0
  31. package/dist/core/document/map.js +296 -0
  32. package/dist/core/document/outline.d.ts +29 -0
  33. package/dist/core/document/outline.js +171 -0
  34. package/dist/core/document/paths.d.ts +23 -0
  35. package/dist/core/document/paths.js +36 -0
  36. package/dist/core/document/profile-validator.d.ts +23 -0
  37. package/dist/core/document/profile-validator.js +155 -0
  38. package/dist/core/document/profiles.d.ts +23 -0
  39. package/dist/core/document/profiles.js +76 -0
  40. package/dist/core/document/render.d.ts +61 -0
  41. package/dist/core/document/render.js +243 -0
  42. package/dist/core/document/review.d.ts +57 -0
  43. package/dist/core/document/review.js +202 -0
  44. package/dist/core/document/scene-detect.d.ts +32 -0
  45. package/dist/core/document/scene-detect.js +237 -0
  46. package/dist/core/document/schemas.d.ts +1111 -0
  47. package/dist/core/document/schemas.js +191 -0
  48. package/dist/integrations/shared/capability-evidence.js +4 -9
  49. package/dist/integrations/shared/command-catalog.js +2 -1
  50. package/dist/integrations/shared/parity-manifest.js +4 -9
  51. package/package.json +2 -1
  52. package/prompts/apply/phase-a-plan.md +1 -1
  53. package/prompts/document/map/acceptance.md +9 -0
  54. package/prompts/document/map/anti-ai.md +29 -0
  55. package/prompts/document/map/api-design.md +26 -0
  56. package/prompts/document/map/architecture.md +27 -0
  57. package/prompts/document/map/benchmark.md +26 -0
  58. package/prompts/document/map/closed-loop.md +9 -0
  59. package/prompts/document/map/compat-migration.md +31 -0
  60. package/prompts/document/map/component-design.md +30 -0
  61. package/prompts/document/map/config-runtime.md +9 -0
  62. package/prompts/document/map/core-flow.md +62 -0
  63. package/prompts/document/map/core-logic.md +9 -0
  64. package/prompts/document/map/data-model.md +18 -0
  65. package/prompts/document/map/deploy.md +26 -0
  66. package/prompts/document/map/fix.md +8 -0
  67. package/prompts/document/map/frontend-architecture.md +35 -0
  68. package/prompts/document/map/goal.md +8 -0
  69. package/prompts/document/map/impact.md +8 -0
  70. package/prompts/document/map/implementability.md +9 -0
  71. package/prompts/document/map/migration-guide.md +36 -0
  72. package/prompts/document/map/mvp-boundary.md +8 -0
  73. package/prompts/document/map/non-goals.md +8 -0
  74. package/prompts/document/map/ops.md +33 -0
  75. package/prompts/document/map/performance.md +32 -0
  76. package/prompts/document/map/poc-demo.md +25 -0
  77. package/prompts/document/map/regression.md +8 -0
  78. package/prompts/document/map/reproduce.md +8 -0
  79. package/prompts/document/map/requirement.md +8 -0
  80. package/prompts/document/map/research.md +25 -0
  81. package/prompts/document/map/root-cause.md +8 -0
  82. package/prompts/document/map/signoff.md +9 -0
  83. package/prompts/document/map/state-management.md +23 -0
  84. package/prompts/document/map/tech-selection.md +29 -0
  85. package/prompts/document/map/test-strategy.md +24 -0
  86. package/prompts/document/map/ui-design.md +21 -0
  87. package/prompts/document/outline/general.md +46 -0
  88. package/prompts/document/review/ai-review.md +57 -0
  89. package/prompts/document/shared/grounding.md +84 -0
  90. package/prompts/explore/explore-session.md +1 -1
  91. package/prompts/propose/design-draft.md +1 -1
  92. package/prompts/propose/proposal.md +1 -1
  93. package/prompts/propose/specs.md +1 -1
  94. package/prompts/propose/tasks-draft.md +1 -1
  95. package/prompts/refine/design-output.md +1 -1
  96. package/prompts/refine/update-artifacts.md +2 -0
  97. package/prompts/shared/artifact-language.md +13 -0
  98. package/skills/specflow-techdoc/SKILL.md +143 -0
  99. package/skills/specflow-techdoc-synth/SKILL.md +115 -0
  100. package/templates/document/chapters/acceptance.yaml +16 -0
  101. package/templates/document/chapters/api-design.yaml +29 -0
  102. package/templates/document/chapters/architecture.yaml +21 -0
  103. package/templates/document/chapters/benchmark.yaml +20 -0
  104. package/templates/document/chapters/closed-loop.yaml +22 -0
  105. package/templates/document/chapters/compat-migration.yaml +21 -0
  106. package/templates/document/chapters/component-design.yaml +22 -0
  107. package/templates/document/chapters/config-runtime.yaml +16 -0
  108. package/templates/document/chapters/core-flow.yaml +27 -0
  109. package/templates/document/chapters/core-logic.yaml +16 -0
  110. package/templates/document/chapters/data-model.yaml +25 -0
  111. package/templates/document/chapters/deploy.yaml +22 -0
  112. package/templates/document/chapters/fix.yaml +18 -0
  113. package/templates/document/chapters/frontend-architecture.yaml +22 -0
  114. package/templates/document/chapters/goal.yaml +17 -0
  115. package/templates/document/chapters/impact.yaml +16 -0
  116. package/templates/document/chapters/implementability.yaml +22 -0
  117. package/templates/document/chapters/migration-guide.yaml +21 -0
  118. package/templates/document/chapters/mvp-boundary.yaml +20 -0
  119. package/templates/document/chapters/non-goals.yaml +17 -0
  120. package/templates/document/chapters/ops.yaml +25 -0
  121. package/templates/document/chapters/performance.yaml +21 -0
  122. package/templates/document/chapters/poc-demo.yaml +22 -0
  123. package/templates/document/chapters/regression.yaml +16 -0
  124. package/templates/document/chapters/reproduce.yaml +16 -0
  125. package/templates/document/chapters/requirement.yaml +18 -0
  126. package/templates/document/chapters/research.yaml +22 -0
  127. package/templates/document/chapters/root-cause.yaml +18 -0
  128. package/templates/document/chapters/signoff.yaml +15 -0
  129. package/templates/document/chapters/state-management.yaml +22 -0
  130. package/templates/document/chapters/tech-selection.yaml +23 -0
  131. package/templates/document/chapters/test-strategy.yaml +23 -0
  132. package/templates/document/chapters/ui-design.yaml +28 -0
  133. package/templates/document/profiles/0to1.yaml +44 -0
  134. package/templates/document/profiles/approve.yaml +22 -0
  135. package/templates/document/profiles/bugfix.yaml +15 -0
  136. package/templates/document/profiles/feature.yaml +23 -0
  137. package/templates/document/profiles/frontend-0to1.yaml +47 -0
  138. package/templates/document/profiles/migration.yaml +42 -0
  139. package/templates/document/profiles/poc.yaml +46 -0
  140. package/dist/cli/commands/approval-assemble.d.ts +0 -64
  141. package/dist/cli/commands/approval-assemble.js +0 -408
  142. package/dist/core/approval/assemble.d.ts +0 -10
  143. package/dist/core/approval/assemble.js +0 -384
  144. package/dist/core/approval/bundle.d.ts +0 -9
  145. package/dist/core/approval/bundle.js +0 -172
  146. package/dist/core/approval/forbidden-patterns.js +0 -40
  147. package/dist/core/approval/index-schema.d.ts +0 -676
  148. package/dist/core/approval/index-schema.js +0 -193
  149. package/dist/core/approval/index.d.ts +0 -12
  150. package/dist/core/approval/index.js +0 -9
  151. package/dist/core/approval/lint.d.ts +0 -10
  152. package/dist/core/approval/lint.js +0 -302
  153. package/dist/core/approval/paths.d.ts +0 -13
  154. package/dist/core/approval/paths.js +0 -43
  155. package/dist/core/approval/pipeline.d.ts +0 -28
  156. package/dist/core/approval/pipeline.js +0 -146
  157. package/dist/core/approval/playbook-schema.d.ts +0 -182
  158. package/dist/core/approval/playbook-schema.js +0 -51
  159. package/dist/core/approval/render.d.ts +0 -20
  160. package/dist/core/approval/render.js +0 -210
  161. package/dist/core/approval/review-pack.d.ts +0 -26
  162. package/dist/core/approval/review-pack.js +0 -205
  163. package/dist/core/approval/types.d.ts +0 -223
  164. package/dist/core/approval/types.js +0 -1
  165. package/prompts/approval/acp-pipeline.md +0 -106
  166. package/prompts/approval/ai-review.md +0 -145
  167. package/prompts/approval/api-guidance.md +0 -179
  168. package/prompts/approval/database-guidance.md +0 -105
  169. package/prompts/approval/frontend-guidance.md +0 -249
  170. package/prompts/approval/generate.md +0 -1596
  171. package/prompts/approval/multi-repo-guidance.md +0 -263
  172. package/prompts/approval/multi-repo-spoke-subagent.md +0 -94
  173. package/prompts/approval/project-conventions-guidance.md +0 -171
  174. package/prompts/approval/runtime-guidance.md +0 -64
  175. package/prompts/approval/segmented-generation.md +0 -157
  176. package/skills/specflow-approval/SKILL.md +0 -778
  177. package/templates/approval-index.yaml +0 -93
  178. package/templates/approval-part.md +0 -15
  179. package/templates/approval-playbook-talos-scenario-job-compile.yaml +0 -29
  180. package/templates/approval-playbook.yaml +0 -28
  181. package/templates/approval.md +0 -261
@@ -1,157 +0,0 @@
1
- # Approval · Segmented Generation (Map → CLI Reduce)
2
-
3
- > Used by `/specflow:approval` **Stage 12** when `mode=segmented` (default for non-trivial §4).
4
- > **Reduce 禁止 LLM**:拼接必须 `specflow approval finalize <change>`(或 debug:`check` / `assemble`)。
5
-
6
- ---
7
-
8
- ## 0. When to segment
9
-
10
- | Condition | Mode |
11
- |-----------|------|
12
- | `tables > 2` OR `interfaces > 3` OR `pages > 2` OR `optional.s5=true` | **segmented** (mandatory) |
13
- | Else | ask user: segmented (recommended) or monolithic |
14
- | User chose monolithic | write `approval.md` directly OR parts + single assemble |
15
-
16
- Copy template: `templates/approval-index.yaml` → `approval/index.yaml`.
17
-
18
- ---
19
-
20
- ## 1. Pipeline (hard order)
21
-
22
- ```text
23
- 12a Index + Skeleton → index.yaml + analysis.json + parts 01–03 + 04-detail-core + stubs
24
- Gate → user confirms index + optional chapters + mode
25
- 12b Map Append → parts 04.4* / 04.5* / 04.6* / 04.7–04.9 (batched)
26
- 12c Optional → parts 05* / 07 / 08 (only if optional.s5/s7/s8)
27
- 12e AI Review → fix parts; review-result.json + part_hashes
28
- 12f Finalize → specflow approval finalize <change>
29
- ```
30
-
31
- **Never** skip 12d. **Never** paste assembled markdown from memory instead of running CLI.
32
-
33
- ---
34
-
35
- ## 2. Anti-lazy rules (Map — LLM MUST NOT)
36
-
37
- | # | Forbidden | Required instead |
38
- |---|-----------|------------------|
39
- | L1 | One-shot full `approval.md` when `mode=segmented` | Write parts; assemble via CLI |
40
- | L2 | Empty part, `< 20` chars, or only HTML comments | Full section content per generate.md |
41
- | L3 | `TODO` / `待补充` / `此处省略` / bare `TBD` | Concrete text or `[待 refine 澄清: <元素>]` with reason |
42
- | L4 | `详见 design/tasks` without §/In/Page id | Cross-ref `§4.5 I2` / `Page·列表` / `P1` |
43
- | L5 | Invent new table/interface/page ids not in index | Update index.yaml first, then write part |
44
- | L6 | Skip §4.4 DDL/字段表/失败示例 because "same as design" | Minimum per G2–G6; **不变**仍须完整 §4.5 |
45
- | L6b | L2 HTTP only +「内部 I7」stub; or L4 one-liner | **分层** L2/L3/L4 各 `In`; `api-guidance.md` §1 |
46
- | L6c | RPC「暂定/如/实现时」 | **冻结**名 + proto 字段号; `api-guidance.md` §2–§3 |
47
- | L7 | Skip IDE skills/rules scan for §4.6 | frontend-guidance.md §3 before Map |
48
- | L8 | Paste skill/rule bodies verbatim | Readable Chinese + path in §4.6.1 table |
49
- | L9 | Write `## 4.` or foreign `## N.` in parts | Parts use `###`/`####`/`#####` only; CLI injects `## 4` |
50
- | L10 | Mark part `ok` without `specflow approval check` passing | Run check; fix errors; then assemble |
51
-
52
- ---
53
-
54
- ## 3. Stage 12a — Index + Skeleton
55
-
56
- **Write first:**
57
-
58
- 1. `approval/index.yaml` — full `parts_order`, all `tables[]`/`interfaces[]`/`pages[]` with `part` paths
59
- 2. `approval/analysis.json` — Pass 1–7 + quality + implementability (chat-only fields ok)
60
- 3. Parts (minimum):
61
- - `01-intro.md` … `03-architecture.md`
62
- - `04-detail-core.md` (§4.1–4.3 only)
63
- - `06-test.md`, `09-implementability.md`, `10-signoff.md` (may be stub-length only for structure in 12a, fill before assemble)
64
-
65
- **Chat gate:** show table/interface/page list from index; ask user to confirm before 12b.
66
-
67
- ---
68
-
69
- ## 4. Stage 12b — Map Append
70
-
71
- For each batch, **Read only**:
72
-
73
- - `approval/index.yaml`
74
- - `approval/analysis.json` (verdicts, not full Pass essays)
75
- - design/tasks/specs **snippets** for this batch's ids
76
- - lazy-loaded conventions (per topic caps)
77
- - anchor files for this batch (Pass 6 depth: file only)
78
-
79
- **Batching:** use `index.batching.*_per_call`. One part file per batch unit OR per index `part` field.
80
-
81
- **After each part write:** update `approval/manifest.json` part entry (`status: draft|ok`).
82
-
83
- ### §4.4 part minimum (per table batch)
84
-
85
- - 4.4.1 row in batch leader file if first batch
86
- - ER if new entities
87
- - per-table: CREATE TABLE + 字段说明 + 本迭代用法
88
- - G3/G4 when applicable
89
-
90
- ### §4.5 part minimum (per interface)
91
-
92
- - Run **`api-guidance.md`** before batch
93
- - **One `In` per contract surface** (L2 Worker HTTP / L3 RPC+http / L4 client RPC) — no B2-style collapse
94
- - meta + fields + success req/resp + **failure example (G2)** + error table (**含不变**)
95
- - **新增/改 HTTP binding**: `**Proto 草案**` block — frozen RPC name, field numbers, `google.api.http`, Gateway registration, Worker OpenAPI path
96
- - HTTP examples for L2: **all** required work auth headers (not body-only)
97
- - **Forbidden**: 暂定 / 如 XxxRpc / 实现时命名 / 内部经 I7 一行代替 L4 详设
98
-
99
- ### §4.6 part minimum (per page)
100
-
101
- - route + components + states + ≥1 of 空/加载/错态 (G6) + §4.5 `In` refs
102
-
103
- ---
104
-
105
- ## 5. Stage 12c — Optional chapters
106
-
107
- Only if user opted in AND `optional.s5/s7/s8: true` in index:
108
-
109
- - Insert `05-*` / `07-deploy` / `08-closed-loop` into `parts_order` at correct positions
110
- - §8: **one table only** (from analysis.json)
111
-
112
- ---
113
-
114
- ## 6. Stage 12e–12f — AI Review + Finalize
115
-
116
- **12e (in-session)**: Read `prompts/approval/ai-review.md`; fix parts; write `approval/review-result.json`.
117
-
118
- **12f (one CLI)**:
119
-
120
- ```bash
121
- specflow approval finalize <change> [--bundle] [--workspace-root <root>]
122
- ```
123
-
124
- - First run without `review-result.json`: pauses, writes `review-packet.json`, agent completes 12e, re-run finalize
125
- - Chains lint → review-check → check → assemble → bundle (when enabled)
126
- - Subcommands (`lint`, `assemble`, …) are for CI/debug only
127
-
128
- See **`prompts/approval/acp-pipeline.md`**.
129
-
130
- ---
131
-
132
- ## 7. manifest.json (agent-maintained)
133
-
134
- ```json
135
- {
136
- "schema": "specflow.approval.manifest/v1",
137
- "change": "<name>",
138
- "parts": [
139
- { "id": "01-intro", "path": "approval/parts/01-intro.md", "status": "ok" }
140
- ]
141
- }
142
- ```
143
-
144
- CLI overwrites manifest on successful assemble with sha256 sums.
145
-
146
- ---
147
-
148
- ## 8. Retry
149
-
150
- | Failure | Action |
151
- |---------|--------|
152
- | `lazy_part_content` on one part | Rewrite that part only; re-check |
153
- | `missing_part` | Write missing part or fix index |
154
- | `id_part_mismatch` | Align index `part` field with filename |
155
- | index wrong | Edit index.yaml; delete wrong parts; rerun affected Map batches |
156
-
157
- Do **not** rerun Pass 1–7 unless analysis is stale.