@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.
- package/README.md +7 -5
- package/dist/cli/commands/document-run.d.ts +98 -0
- package/dist/cli/commands/document-run.js +1064 -0
- package/dist/cli/index.js +2 -2
- package/dist/core/artifact-language.js +11 -1
- package/dist/core/document/asset-paths.d.ts +15 -0
- package/dist/core/document/asset-paths.js +38 -0
- package/dist/core/document/chapters.d.ts +6 -0
- package/dist/core/document/chapters.js +38 -0
- package/dist/core/document/coverage.d.ts +25 -0
- package/dist/core/document/coverage.js +49 -0
- package/dist/core/document/digests.d.ts +40 -0
- package/dist/core/document/digests.js +144 -0
- package/dist/core/document/engine.d.ts +101 -0
- package/dist/core/document/engine.js +722 -0
- package/dist/core/document/extract.d.ts +61 -0
- package/dist/core/document/extract.js +437 -0
- package/dist/core/{approval → document}/forbidden-patterns.d.ts +4 -2
- package/dist/core/document/forbidden-patterns.js +36 -0
- package/dist/core/document/gates.d.ts +39 -0
- package/dist/core/document/gates.js +75 -0
- package/dist/core/document/input-digest.d.ts +63 -0
- package/dist/core/document/input-digest.js +200 -0
- package/dist/core/document/input-features.d.ts +43 -0
- package/dist/core/document/input-features.js +161 -0
- package/dist/core/document/lint.d.ts +39 -0
- package/dist/core/document/lint.js +147 -0
- package/dist/core/document/llm.d.ts +28 -0
- package/dist/core/document/llm.js +22 -0
- package/dist/core/document/map.d.ts +52 -0
- package/dist/core/document/map.js +296 -0
- package/dist/core/document/outline.d.ts +29 -0
- package/dist/core/document/outline.js +171 -0
- package/dist/core/document/paths.d.ts +23 -0
- package/dist/core/document/paths.js +36 -0
- package/dist/core/document/profile-validator.d.ts +23 -0
- package/dist/core/document/profile-validator.js +155 -0
- package/dist/core/document/profiles.d.ts +23 -0
- package/dist/core/document/profiles.js +76 -0
- package/dist/core/document/render.d.ts +61 -0
- package/dist/core/document/render.js +243 -0
- package/dist/core/document/review.d.ts +57 -0
- package/dist/core/document/review.js +202 -0
- package/dist/core/document/scene-detect.d.ts +32 -0
- package/dist/core/document/scene-detect.js +237 -0
- package/dist/core/document/schemas.d.ts +1111 -0
- package/dist/core/document/schemas.js +191 -0
- package/dist/integrations/shared/capability-evidence.js +4 -9
- package/dist/integrations/shared/command-catalog.js +2 -1
- package/dist/integrations/shared/parity-manifest.js +4 -9
- package/package.json +2 -1
- package/prompts/apply/phase-a-plan.md +1 -1
- package/prompts/document/map/acceptance.md +9 -0
- package/prompts/document/map/anti-ai.md +29 -0
- package/prompts/document/map/api-design.md +26 -0
- package/prompts/document/map/architecture.md +27 -0
- package/prompts/document/map/benchmark.md +26 -0
- package/prompts/document/map/closed-loop.md +9 -0
- package/prompts/document/map/compat-migration.md +31 -0
- package/prompts/document/map/component-design.md +30 -0
- package/prompts/document/map/config-runtime.md +9 -0
- package/prompts/document/map/core-flow.md +62 -0
- package/prompts/document/map/core-logic.md +9 -0
- package/prompts/document/map/data-model.md +18 -0
- package/prompts/document/map/deploy.md +26 -0
- package/prompts/document/map/fix.md +8 -0
- package/prompts/document/map/frontend-architecture.md +35 -0
- package/prompts/document/map/goal.md +8 -0
- package/prompts/document/map/impact.md +8 -0
- package/prompts/document/map/implementability.md +9 -0
- package/prompts/document/map/migration-guide.md +36 -0
- package/prompts/document/map/mvp-boundary.md +8 -0
- package/prompts/document/map/non-goals.md +8 -0
- package/prompts/document/map/ops.md +33 -0
- package/prompts/document/map/performance.md +32 -0
- package/prompts/document/map/poc-demo.md +25 -0
- package/prompts/document/map/regression.md +8 -0
- package/prompts/document/map/reproduce.md +8 -0
- package/prompts/document/map/requirement.md +8 -0
- package/prompts/document/map/research.md +25 -0
- package/prompts/document/map/root-cause.md +8 -0
- package/prompts/document/map/signoff.md +9 -0
- package/prompts/document/map/state-management.md +23 -0
- package/prompts/document/map/tech-selection.md +29 -0
- package/prompts/document/map/test-strategy.md +24 -0
- package/prompts/document/map/ui-design.md +21 -0
- package/prompts/document/outline/general.md +46 -0
- package/prompts/document/review/ai-review.md +57 -0
- package/prompts/document/shared/grounding.md +84 -0
- package/prompts/explore/explore-session.md +1 -1
- package/prompts/propose/design-draft.md +1 -1
- package/prompts/propose/proposal.md +1 -1
- package/prompts/propose/specs.md +1 -1
- package/prompts/propose/tasks-draft.md +1 -1
- package/prompts/refine/design-output.md +1 -1
- package/prompts/refine/update-artifacts.md +2 -0
- package/prompts/shared/artifact-language.md +13 -0
- package/skills/specflow-techdoc/SKILL.md +143 -0
- package/skills/specflow-techdoc-synth/SKILL.md +115 -0
- package/templates/document/chapters/acceptance.yaml +16 -0
- package/templates/document/chapters/api-design.yaml +29 -0
- package/templates/document/chapters/architecture.yaml +21 -0
- package/templates/document/chapters/benchmark.yaml +20 -0
- package/templates/document/chapters/closed-loop.yaml +22 -0
- package/templates/document/chapters/compat-migration.yaml +21 -0
- package/templates/document/chapters/component-design.yaml +22 -0
- package/templates/document/chapters/config-runtime.yaml +16 -0
- package/templates/document/chapters/core-flow.yaml +27 -0
- package/templates/document/chapters/core-logic.yaml +16 -0
- package/templates/document/chapters/data-model.yaml +25 -0
- package/templates/document/chapters/deploy.yaml +22 -0
- package/templates/document/chapters/fix.yaml +18 -0
- package/templates/document/chapters/frontend-architecture.yaml +22 -0
- package/templates/document/chapters/goal.yaml +17 -0
- package/templates/document/chapters/impact.yaml +16 -0
- package/templates/document/chapters/implementability.yaml +22 -0
- package/templates/document/chapters/migration-guide.yaml +21 -0
- package/templates/document/chapters/mvp-boundary.yaml +20 -0
- package/templates/document/chapters/non-goals.yaml +17 -0
- package/templates/document/chapters/ops.yaml +25 -0
- package/templates/document/chapters/performance.yaml +21 -0
- package/templates/document/chapters/poc-demo.yaml +22 -0
- package/templates/document/chapters/regression.yaml +16 -0
- package/templates/document/chapters/reproduce.yaml +16 -0
- package/templates/document/chapters/requirement.yaml +18 -0
- package/templates/document/chapters/research.yaml +22 -0
- package/templates/document/chapters/root-cause.yaml +18 -0
- package/templates/document/chapters/signoff.yaml +15 -0
- package/templates/document/chapters/state-management.yaml +22 -0
- package/templates/document/chapters/tech-selection.yaml +23 -0
- package/templates/document/chapters/test-strategy.yaml +23 -0
- package/templates/document/chapters/ui-design.yaml +28 -0
- package/templates/document/profiles/0to1.yaml +44 -0
- package/templates/document/profiles/approve.yaml +22 -0
- package/templates/document/profiles/bugfix.yaml +15 -0
- package/templates/document/profiles/feature.yaml +23 -0
- package/templates/document/profiles/frontend-0to1.yaml +47 -0
- package/templates/document/profiles/migration.yaml +42 -0
- package/templates/document/profiles/poc.yaml +46 -0
- package/dist/cli/commands/approval-assemble.d.ts +0 -64
- package/dist/cli/commands/approval-assemble.js +0 -408
- package/dist/core/approval/assemble.d.ts +0 -10
- package/dist/core/approval/assemble.js +0 -384
- package/dist/core/approval/bundle.d.ts +0 -9
- package/dist/core/approval/bundle.js +0 -172
- package/dist/core/approval/forbidden-patterns.js +0 -40
- package/dist/core/approval/index-schema.d.ts +0 -676
- package/dist/core/approval/index-schema.js +0 -193
- package/dist/core/approval/index.d.ts +0 -12
- package/dist/core/approval/index.js +0 -9
- package/dist/core/approval/lint.d.ts +0 -10
- package/dist/core/approval/lint.js +0 -302
- package/dist/core/approval/paths.d.ts +0 -13
- package/dist/core/approval/paths.js +0 -43
- package/dist/core/approval/pipeline.d.ts +0 -28
- package/dist/core/approval/pipeline.js +0 -146
- package/dist/core/approval/playbook-schema.d.ts +0 -182
- package/dist/core/approval/playbook-schema.js +0 -51
- package/dist/core/approval/render.d.ts +0 -20
- package/dist/core/approval/render.js +0 -210
- package/dist/core/approval/review-pack.d.ts +0 -26
- package/dist/core/approval/review-pack.js +0 -205
- package/dist/core/approval/types.d.ts +0 -223
- package/dist/core/approval/types.js +0 -1
- package/prompts/approval/acp-pipeline.md +0 -106
- package/prompts/approval/ai-review.md +0 -145
- package/prompts/approval/api-guidance.md +0 -179
- package/prompts/approval/database-guidance.md +0 -105
- package/prompts/approval/frontend-guidance.md +0 -249
- package/prompts/approval/generate.md +0 -1596
- package/prompts/approval/multi-repo-guidance.md +0 -263
- package/prompts/approval/multi-repo-spoke-subagent.md +0 -94
- package/prompts/approval/project-conventions-guidance.md +0 -171
- package/prompts/approval/runtime-guidance.md +0 -64
- package/prompts/approval/segmented-generation.md +0 -157
- package/skills/specflow-approval/SKILL.md +0 -778
- package/templates/approval-index.yaml +0 -93
- package/templates/approval-part.md +0 -15
- package/templates/approval-playbook-talos-scenario-job-compile.yaml +0 -29
- package/templates/approval-playbook.yaml +0 -28
- 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.
|