@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,676 +0,0 @@
1
- import { z } from 'zod';
2
- import type { ApprovalIndex } from './types.js';
3
- export declare const approvalIndexSchema: z.ZodObject<{
4
- schema: z.ZodLiteral<"specflow.approval.index/v1">;
5
- change: z.ZodString;
6
- generated_at: z.ZodEffects<z.ZodString, string, unknown>;
7
- mode: z.ZodDefault<z.ZodEnum<["segmented", "monolithic"]>>;
8
- ui_in_scope: z.ZodDefault<z.ZodBoolean>;
9
- db_in_scope: z.ZodDefault<z.ZodBoolean>;
10
- api_in_scope: z.ZodDefault<z.ZodBoolean>;
11
- optional: z.ZodDefault<z.ZodObject<{
12
- s5: z.ZodDefault<z.ZodBoolean>;
13
- s7: z.ZodDefault<z.ZodBoolean>;
14
- s8: z.ZodDefault<z.ZodBoolean>;
15
- }, "strip", z.ZodTypeAny, {
16
- s5: boolean;
17
- s7: boolean;
18
- s8: boolean;
19
- }, {
20
- s5?: boolean | undefined;
21
- s7?: boolean | undefined;
22
- s8?: boolean | undefined;
23
- }>>;
24
- parts_order: z.ZodArray<z.ZodString, "many">;
25
- design_points: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
26
- decisions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
27
- tables: z.ZodDefault<z.ZodArray<z.ZodObject<{
28
- id: z.ZodString;
29
- name: z.ZodString;
30
- action: z.ZodString;
31
- part: z.ZodString;
32
- repo: z.ZodOptional<z.ZodString>;
33
- }, "strip", z.ZodTypeAny, {
34
- id: string;
35
- name: string;
36
- action: string;
37
- part: string;
38
- repo?: string | undefined;
39
- }, {
40
- id: string;
41
- name: string;
42
- action: string;
43
- part: string;
44
- repo?: string | undefined;
45
- }>, "many">>;
46
- interfaces: z.ZodDefault<z.ZodArray<z.ZodObject<{
47
- id: z.ZodString;
48
- short: z.ZodString;
49
- change: z.ZodString;
50
- part: z.ZodString;
51
- repo: z.ZodOptional<z.ZodString>;
52
- layers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
53
- pairs_with: z.ZodOptional<z.ZodString>;
54
- feature_slice: z.ZodOptional<z.ZodString>;
55
- frozen: z.ZodOptional<z.ZodObject<{
56
- rpc: z.ZodOptional<z.ZodString>;
57
- http_path: z.ZodOptional<z.ZodString>;
58
- status_enum: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
59
- }, "strip", z.ZodTypeAny, {
60
- rpc?: string | undefined;
61
- http_path?: string | undefined;
62
- status_enum?: string[] | undefined;
63
- }, {
64
- rpc?: string | undefined;
65
- http_path?: string | undefined;
66
- status_enum?: string[] | undefined;
67
- }>>;
68
- }, "strip", z.ZodTypeAny, {
69
- id: string;
70
- part: string;
71
- short: string;
72
- change: string;
73
- repo?: string | undefined;
74
- layers?: string[] | undefined;
75
- pairs_with?: string | undefined;
76
- feature_slice?: string | undefined;
77
- frozen?: {
78
- rpc?: string | undefined;
79
- http_path?: string | undefined;
80
- status_enum?: string[] | undefined;
81
- } | undefined;
82
- }, {
83
- id: string;
84
- part: string;
85
- short: string;
86
- change: string;
87
- repo?: string | undefined;
88
- layers?: string[] | undefined;
89
- pairs_with?: string | undefined;
90
- feature_slice?: string | undefined;
91
- frozen?: {
92
- rpc?: string | undefined;
93
- http_path?: string | undefined;
94
- status_enum?: string[] | undefined;
95
- } | undefined;
96
- }>, "many">>;
97
- pages: z.ZodDefault<z.ZodArray<z.ZodObject<{
98
- id: z.ZodString;
99
- route: z.ZodString;
100
- apis: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
101
- part: z.ZodString;
102
- repo: z.ZodOptional<z.ZodString>;
103
- }, "strip", z.ZodTypeAny, {
104
- id: string;
105
- part: string;
106
- route: string;
107
- apis: string[];
108
- repo?: string | undefined;
109
- }, {
110
- id: string;
111
- part: string;
112
- route: string;
113
- repo?: string | undefined;
114
- apis?: string[] | undefined;
115
- }>, "many">>;
116
- capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
117
- id: z.ZodString;
118
- part: z.ZodString;
119
- }, "strip", z.ZodTypeAny, {
120
- id: string;
121
- part: string;
122
- }, {
123
- id: string;
124
- part: string;
125
- }>, "many">>;
126
- batching: z.ZodDefault<z.ZodObject<{
127
- tables_per_call: z.ZodDefault<z.ZodNumber>;
128
- interfaces_per_call: z.ZodDefault<z.ZodNumber>;
129
- pages_per_call: z.ZodDefault<z.ZodNumber>;
130
- capabilities_per_call: z.ZodDefault<z.ZodNumber>;
131
- }, "strip", z.ZodTypeAny, {
132
- tables_per_call: number;
133
- interfaces_per_call: number;
134
- pages_per_call: number;
135
- capabilities_per_call: number;
136
- }, {
137
- tables_per_call?: number | undefined;
138
- interfaces_per_call?: number | undefined;
139
- pages_per_call?: number | undefined;
140
- capabilities_per_call?: number | undefined;
141
- }>>;
142
- conventions: z.ZodDefault<z.ZodObject<{
143
- architecture: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
144
- database: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
145
- api: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
146
- frontend: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
147
- }, "strip", z.ZodTypeAny, {
148
- architecture?: string[] | undefined;
149
- api?: string[] | undefined;
150
- database?: string[] | undefined;
151
- frontend?: string[] | undefined;
152
- }, {
153
- architecture?: string[] | undefined;
154
- api?: string[] | undefined;
155
- database?: string[] | undefined;
156
- frontend?: string[] | undefined;
157
- }>>;
158
- meta: z.ZodOptional<z.ZodObject<{
159
- language: z.ZodOptional<z.ZodString>;
160
- tech_stack: z.ZodOptional<z.ZodString>;
161
- project_mode: z.ZodOptional<z.ZodString>;
162
- }, "strip", z.ZodTypeAny, {
163
- language?: string | undefined;
164
- tech_stack?: string | undefined;
165
- project_mode?: string | undefined;
166
- }, {
167
- language?: string | undefined;
168
- tech_stack?: string | undefined;
169
- project_mode?: string | undefined;
170
- }>>;
171
- multi_repo: z.ZodOptional<z.ZodEffects<z.ZodObject<{
172
- enabled: z.ZodBoolean;
173
- document_mode: z.ZodOptional<z.ZodEnum<["unified", "per_repo"]>>;
174
- primary_repo: z.ZodOptional<z.ZodString>;
175
- repos: z.ZodArray<z.ZodObject<{
176
- id: z.ZodString;
177
- label: z.ZodString;
178
- role: z.ZodOptional<z.ZodEnum<["platform", "web", "worker", "hub", "other"]>>;
179
- change: z.ZodString;
180
- root_hint: z.ZodOptional<z.ZodString>;
181
- }, "strip", z.ZodTypeAny, {
182
- id: string;
183
- change: string;
184
- label: string;
185
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
186
- root_hint?: string | undefined;
187
- }, {
188
- id: string;
189
- change: string;
190
- label: string;
191
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
192
- root_hint?: string | undefined;
193
- }>, "many">;
194
- outputs: z.ZodOptional<z.ZodObject<{
195
- unified: z.ZodOptional<z.ZodObject<{
196
- repo: z.ZodString;
197
- change: z.ZodString;
198
- path: z.ZodString;
199
- }, "strip", z.ZodTypeAny, {
200
- path: string;
201
- repo: string;
202
- change: string;
203
- }, {
204
- path: string;
205
- repo: string;
206
- change: string;
207
- }>>;
208
- per_repo: z.ZodOptional<z.ZodArray<z.ZodObject<{
209
- repo: z.ZodString;
210
- change: z.ZodString;
211
- path: z.ZodString;
212
- }, "strip", z.ZodTypeAny, {
213
- path: string;
214
- repo: string;
215
- change: string;
216
- }, {
217
- path: string;
218
- repo: string;
219
- change: string;
220
- }>, "many">>;
221
- }, "strip", z.ZodTypeAny, {
222
- unified?: {
223
- path: string;
224
- repo: string;
225
- change: string;
226
- } | undefined;
227
- per_repo?: {
228
- path: string;
229
- repo: string;
230
- change: string;
231
- }[] | undefined;
232
- }, {
233
- unified?: {
234
- path: string;
235
- repo: string;
236
- change: string;
237
- } | undefined;
238
- per_repo?: {
239
- path: string;
240
- repo: string;
241
- change: string;
242
- }[] | undefined;
243
- }>>;
244
- bundle: z.ZodOptional<z.ZodObject<{
245
- enabled: z.ZodOptional<z.ZodBoolean>;
246
- playbook: z.ZodOptional<z.ZodString>;
247
- output: z.ZodOptional<z.ZodString>;
248
- readonly: z.ZodOptional<z.ZodBoolean>;
249
- }, "strip", z.ZodTypeAny, {
250
- output?: string | undefined;
251
- enabled?: boolean | undefined;
252
- playbook?: string | undefined;
253
- readonly?: boolean | undefined;
254
- }, {
255
- output?: string | undefined;
256
- enabled?: boolean | undefined;
257
- playbook?: string | undefined;
258
- readonly?: boolean | undefined;
259
- }>>;
260
- }, "strip", z.ZodTypeAny, {
261
- enabled: boolean;
262
- repos: {
263
- id: string;
264
- change: string;
265
- label: string;
266
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
267
- root_hint?: string | undefined;
268
- }[];
269
- document_mode?: "unified" | "per_repo" | undefined;
270
- primary_repo?: string | undefined;
271
- outputs?: {
272
- unified?: {
273
- path: string;
274
- repo: string;
275
- change: string;
276
- } | undefined;
277
- per_repo?: {
278
- path: string;
279
- repo: string;
280
- change: string;
281
- }[] | undefined;
282
- } | undefined;
283
- bundle?: {
284
- output?: string | undefined;
285
- enabled?: boolean | undefined;
286
- playbook?: string | undefined;
287
- readonly?: boolean | undefined;
288
- } | undefined;
289
- }, {
290
- enabled: boolean;
291
- repos: {
292
- id: string;
293
- change: string;
294
- label: string;
295
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
296
- root_hint?: string | undefined;
297
- }[];
298
- document_mode?: "unified" | "per_repo" | undefined;
299
- primary_repo?: string | undefined;
300
- outputs?: {
301
- unified?: {
302
- path: string;
303
- repo: string;
304
- change: string;
305
- } | undefined;
306
- per_repo?: {
307
- path: string;
308
- repo: string;
309
- change: string;
310
- }[] | undefined;
311
- } | undefined;
312
- bundle?: {
313
- output?: string | undefined;
314
- enabled?: boolean | undefined;
315
- playbook?: string | undefined;
316
- readonly?: boolean | undefined;
317
- } | undefined;
318
- }>, {
319
- enabled: boolean;
320
- repos: {
321
- id: string;
322
- change: string;
323
- label: string;
324
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
325
- root_hint?: string | undefined;
326
- }[];
327
- document_mode?: "unified" | "per_repo" | undefined;
328
- primary_repo?: string | undefined;
329
- outputs?: {
330
- unified?: {
331
- path: string;
332
- repo: string;
333
- change: string;
334
- } | undefined;
335
- per_repo?: {
336
- path: string;
337
- repo: string;
338
- change: string;
339
- }[] | undefined;
340
- } | undefined;
341
- bundle?: {
342
- output?: string | undefined;
343
- enabled?: boolean | undefined;
344
- playbook?: string | undefined;
345
- readonly?: boolean | undefined;
346
- } | undefined;
347
- }, {
348
- enabled: boolean;
349
- repos: {
350
- id: string;
351
- change: string;
352
- label: string;
353
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
354
- root_hint?: string | undefined;
355
- }[];
356
- document_mode?: "unified" | "per_repo" | undefined;
357
- primary_repo?: string | undefined;
358
- outputs?: {
359
- unified?: {
360
- path: string;
361
- repo: string;
362
- change: string;
363
- } | undefined;
364
- per_repo?: {
365
- path: string;
366
- repo: string;
367
- change: string;
368
- }[] | undefined;
369
- } | undefined;
370
- bundle?: {
371
- output?: string | undefined;
372
- enabled?: boolean | undefined;
373
- playbook?: string | undefined;
374
- readonly?: boolean | undefined;
375
- } | undefined;
376
- }>>;
377
- acp: z.ZodOptional<z.ZodObject<{
378
- pipeline: z.ZodOptional<z.ZodEnum<["acp/v1", "acp/v2"]>>;
379
- context_budget_tokens: z.ZodOptional<z.ZodNumber>;
380
- output_budget_tokens: z.ZodOptional<z.ZodNumber>;
381
- feature_slices: z.ZodOptional<z.ZodArray<z.ZodObject<{
382
- id: z.ZodString;
383
- repos: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
384
- interfaces: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
385
- pages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
386
- design_points: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
387
- parts: z.ZodArray<z.ZodString, "many">;
388
- }, "strip", z.ZodTypeAny, {
389
- id: string;
390
- parts: string[];
391
- repos?: string[] | undefined;
392
- design_points?: string[] | undefined;
393
- interfaces?: string[] | undefined;
394
- pages?: string[] | undefined;
395
- }, {
396
- id: string;
397
- parts: string[];
398
- repos?: string[] | undefined;
399
- design_points?: string[] | undefined;
400
- interfaces?: string[] | undefined;
401
- pages?: string[] | undefined;
402
- }>, "many">>;
403
- review: z.ZodOptional<z.ZodObject<{
404
- enabled: z.ZodOptional<z.ZodBoolean>;
405
- required_pass: z.ZodOptional<z.ZodBoolean>;
406
- }, "strip", z.ZodTypeAny, {
407
- enabled?: boolean | undefined;
408
- required_pass?: boolean | undefined;
409
- }, {
410
- enabled?: boolean | undefined;
411
- required_pass?: boolean | undefined;
412
- }>>;
413
- }, "strip", z.ZodTypeAny, {
414
- review?: {
415
- enabled?: boolean | undefined;
416
- required_pass?: boolean | undefined;
417
- } | undefined;
418
- pipeline?: "acp/v1" | "acp/v2" | undefined;
419
- context_budget_tokens?: number | undefined;
420
- output_budget_tokens?: number | undefined;
421
- feature_slices?: {
422
- id: string;
423
- parts: string[];
424
- repos?: string[] | undefined;
425
- design_points?: string[] | undefined;
426
- interfaces?: string[] | undefined;
427
- pages?: string[] | undefined;
428
- }[] | undefined;
429
- }, {
430
- review?: {
431
- enabled?: boolean | undefined;
432
- required_pass?: boolean | undefined;
433
- } | undefined;
434
- pipeline?: "acp/v1" | "acp/v2" | undefined;
435
- context_budget_tokens?: number | undefined;
436
- output_budget_tokens?: number | undefined;
437
- feature_slices?: {
438
- id: string;
439
- parts: string[];
440
- repos?: string[] | undefined;
441
- design_points?: string[] | undefined;
442
- interfaces?: string[] | undefined;
443
- pages?: string[] | undefined;
444
- }[] | undefined;
445
- }>>;
446
- }, "strip", z.ZodTypeAny, {
447
- schema: "specflow.approval.index/v1";
448
- conventions: {
449
- architecture?: string[] | undefined;
450
- api?: string[] | undefined;
451
- database?: string[] | undefined;
452
- frontend?: string[] | undefined;
453
- };
454
- change: string;
455
- generated_at: string;
456
- mode: "segmented" | "monolithic";
457
- ui_in_scope: boolean;
458
- db_in_scope: boolean;
459
- api_in_scope: boolean;
460
- optional: {
461
- s5: boolean;
462
- s7: boolean;
463
- s8: boolean;
464
- };
465
- parts_order: string[];
466
- design_points: string[];
467
- decisions: string[];
468
- tables: {
469
- id: string;
470
- name: string;
471
- action: string;
472
- part: string;
473
- repo?: string | undefined;
474
- }[];
475
- interfaces: {
476
- id: string;
477
- part: string;
478
- short: string;
479
- change: string;
480
- repo?: string | undefined;
481
- layers?: string[] | undefined;
482
- pairs_with?: string | undefined;
483
- feature_slice?: string | undefined;
484
- frozen?: {
485
- rpc?: string | undefined;
486
- http_path?: string | undefined;
487
- status_enum?: string[] | undefined;
488
- } | undefined;
489
- }[];
490
- pages: {
491
- id: string;
492
- part: string;
493
- route: string;
494
- apis: string[];
495
- repo?: string | undefined;
496
- }[];
497
- capabilities: {
498
- id: string;
499
- part: string;
500
- }[];
501
- batching: {
502
- tables_per_call: number;
503
- interfaces_per_call: number;
504
- pages_per_call: number;
505
- capabilities_per_call: number;
506
- };
507
- meta?: {
508
- language?: string | undefined;
509
- tech_stack?: string | undefined;
510
- project_mode?: string | undefined;
511
- } | undefined;
512
- multi_repo?: {
513
- enabled: boolean;
514
- repos: {
515
- id: string;
516
- change: string;
517
- label: string;
518
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
519
- root_hint?: string | undefined;
520
- }[];
521
- document_mode?: "unified" | "per_repo" | undefined;
522
- primary_repo?: string | undefined;
523
- outputs?: {
524
- unified?: {
525
- path: string;
526
- repo: string;
527
- change: string;
528
- } | undefined;
529
- per_repo?: {
530
- path: string;
531
- repo: string;
532
- change: string;
533
- }[] | undefined;
534
- } | undefined;
535
- bundle?: {
536
- output?: string | undefined;
537
- enabled?: boolean | undefined;
538
- playbook?: string | undefined;
539
- readonly?: boolean | undefined;
540
- } | undefined;
541
- } | undefined;
542
- acp?: {
543
- review?: {
544
- enabled?: boolean | undefined;
545
- required_pass?: boolean | undefined;
546
- } | undefined;
547
- pipeline?: "acp/v1" | "acp/v2" | undefined;
548
- context_budget_tokens?: number | undefined;
549
- output_budget_tokens?: number | undefined;
550
- feature_slices?: {
551
- id: string;
552
- parts: string[];
553
- repos?: string[] | undefined;
554
- design_points?: string[] | undefined;
555
- interfaces?: string[] | undefined;
556
- pages?: string[] | undefined;
557
- }[] | undefined;
558
- } | undefined;
559
- }, {
560
- schema: "specflow.approval.index/v1";
561
- change: string;
562
- parts_order: string[];
563
- conventions?: {
564
- architecture?: string[] | undefined;
565
- api?: string[] | undefined;
566
- database?: string[] | undefined;
567
- frontend?: string[] | undefined;
568
- } | undefined;
569
- generated_at?: unknown;
570
- mode?: "segmented" | "monolithic" | undefined;
571
- ui_in_scope?: boolean | undefined;
572
- db_in_scope?: boolean | undefined;
573
- api_in_scope?: boolean | undefined;
574
- optional?: {
575
- s5?: boolean | undefined;
576
- s7?: boolean | undefined;
577
- s8?: boolean | undefined;
578
- } | undefined;
579
- design_points?: string[] | undefined;
580
- decisions?: string[] | undefined;
581
- tables?: {
582
- id: string;
583
- name: string;
584
- action: string;
585
- part: string;
586
- repo?: string | undefined;
587
- }[] | undefined;
588
- interfaces?: {
589
- id: string;
590
- part: string;
591
- short: string;
592
- change: string;
593
- repo?: string | undefined;
594
- layers?: string[] | undefined;
595
- pairs_with?: string | undefined;
596
- feature_slice?: string | undefined;
597
- frozen?: {
598
- rpc?: string | undefined;
599
- http_path?: string | undefined;
600
- status_enum?: string[] | undefined;
601
- } | undefined;
602
- }[] | undefined;
603
- pages?: {
604
- id: string;
605
- part: string;
606
- route: string;
607
- repo?: string | undefined;
608
- apis?: string[] | undefined;
609
- }[] | undefined;
610
- capabilities?: {
611
- id: string;
612
- part: string;
613
- }[] | undefined;
614
- batching?: {
615
- tables_per_call?: number | undefined;
616
- interfaces_per_call?: number | undefined;
617
- pages_per_call?: number | undefined;
618
- capabilities_per_call?: number | undefined;
619
- } | undefined;
620
- meta?: {
621
- language?: string | undefined;
622
- tech_stack?: string | undefined;
623
- project_mode?: string | undefined;
624
- } | undefined;
625
- multi_repo?: {
626
- enabled: boolean;
627
- repos: {
628
- id: string;
629
- change: string;
630
- label: string;
631
- role?: "platform" | "web" | "worker" | "hub" | "other" | undefined;
632
- root_hint?: string | undefined;
633
- }[];
634
- document_mode?: "unified" | "per_repo" | undefined;
635
- primary_repo?: string | undefined;
636
- outputs?: {
637
- unified?: {
638
- path: string;
639
- repo: string;
640
- change: string;
641
- } | undefined;
642
- per_repo?: {
643
- path: string;
644
- repo: string;
645
- change: string;
646
- }[] | undefined;
647
- } | undefined;
648
- bundle?: {
649
- output?: string | undefined;
650
- enabled?: boolean | undefined;
651
- playbook?: string | undefined;
652
- readonly?: boolean | undefined;
653
- } | undefined;
654
- } | undefined;
655
- acp?: {
656
- review?: {
657
- enabled?: boolean | undefined;
658
- required_pass?: boolean | undefined;
659
- } | undefined;
660
- pipeline?: "acp/v1" | "acp/v2" | undefined;
661
- context_budget_tokens?: number | undefined;
662
- output_budget_tokens?: number | undefined;
663
- feature_slices?: {
664
- id: string;
665
- parts: string[];
666
- repos?: string[] | undefined;
667
- design_points?: string[] | undefined;
668
- interfaces?: string[] | undefined;
669
- pages?: string[] | undefined;
670
- }[] | undefined;
671
- } | undefined;
672
- }>;
673
- export declare function parseApprovalIndex(raw: unknown): ApprovalIndex;
674
- /** Returns true when segmented fast-path (monolithic) is allowed. */
675
- export declare function isLightweightApproval(index: ApprovalIndex): boolean;
676
- export declare function shouldForceSegmented(index: ApprovalIndex): boolean;