project-tiny-context-harness 0.2.75 → 0.2.76
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 +11 -9
- package/assets/README.md +12 -10
- package/assets/README.zh-CN.md +6 -6
- package/assets/skills/superpowers-long-task/SKILL.md +115 -69
- package/dist/commands/index.js +16 -9
- package/dist/commands/superpowers.d.ts +1 -0
- package/dist/commands/superpowers.js +89 -0
- package/dist/lib/plan-acceptance-validator.js +15 -0
- package/dist/lib/superpowers-task-compile.d.ts +1 -0
- package/dist/lib/superpowers-task-compile.js +114 -0
- package/dist/lib/superpowers-task-derive.d.ts +13 -0
- package/dist/lib/superpowers-task-derive.js +192 -0
- package/dist/lib/superpowers-task-events.d.ts +1 -0
- package/dist/lib/superpowers-task-events.js +13 -0
- package/dist/lib/superpowers-task-gates.d.ts +12 -0
- package/dist/lib/superpowers-task-gates.js +47 -0
- package/dist/lib/superpowers-task-next-slices.d.ts +1 -0
- package/dist/lib/superpowers-task-next-slices.js +12 -0
- package/dist/lib/superpowers-task-state-schema.d.ts +167 -0
- package/dist/lib/superpowers-task-state-schema.js +43 -0
- package/dist/lib/superpowers-task-state.d.ts +15 -0
- package/dist/lib/superpowers-task-state.js +223 -0
- package/dist/lib/superpowers-task-validator.d.ts +4 -0
- package/dist/lib/superpowers-task-validator.js +238 -0
- package/dist/lib/validators.js +4 -2
- package/package.json +1 -1
|
@@ -86,9 +86,9 @@ The report must state that this Skill cannot infer the execution blueprint from
|
|
|
86
86
|
## Source Roles
|
|
87
87
|
|
|
88
88
|
- Product / Architecture Source prevents scope shrinkage and drives Product Context Delta / architecture-intent checks; it is not the code construction plan.
|
|
89
|
-
- Technical Realization Plan is the execution blueprint and the source
|
|
90
|
-
- Acceptance Checklist is the completion authority and the source
|
|
91
|
-
-
|
|
89
|
+
- Technical Realization Plan is the execution blueprint and the source compiled into `task-state.json` plan items; it is not proof.
|
|
90
|
+
- Acceptance Checklist is the completion authority and the source compiled into `task-state.json` ACs and proof layers.
|
|
91
|
+
- `task-state.json` is the only execution state source; generated local audit, matrix, verdict, progress, evidence and summary views are not authority.
|
|
92
92
|
- relevant Context remains the durable repo intent and boundary source.
|
|
93
93
|
- required tests / core paths bind plan and AC gaps to executable verification.
|
|
94
94
|
|
|
@@ -99,10 +99,58 @@ Do not let a compact target prompt override the product/architecture source, tec
|
|
|
99
99
|
- Product / Architecture Source owns intent, scope, non-goals, product/architecture boundaries and acceptance semantics.
|
|
100
100
|
- Technical Realization Plan owns plan items, execution blueprint, owner/forbidden surfaces, implementation paths and plan-conformance expectations.
|
|
101
101
|
- Acceptance Checklist owns ACs, completion semantics, required proof layers, invalid evidence rules and final acceptance state.
|
|
102
|
-
-
|
|
102
|
+
- `task-state.json` is execution state compiled from the three inputs. `events.ndjson`, generated derived views, validator output, evidence index and auditor report are execution/evidence artifacts. They cannot narrow, rewrite or replace the upstream sources.
|
|
103
103
|
- When sources conflict, stop or report the conflict instead of letting a downstream artifact silently change scope, plan or acceptance.
|
|
104
104
|
- Tiny Context additions may wrap Superpowers with authority, conformance and acceptance gates, but they must not redefine, duplicate or fork official Superpowers execution mechanics. If a future change would make a Tiny Context-added step conflict with, duplicate or override an official Superpowers responsibility, stop and surface the boundary conflict instead of silently merging the workflows.
|
|
105
105
|
|
|
106
|
+
## Canonical State Kernel
|
|
107
|
+
|
|
108
|
+
The generated prompt must require the future executor to use the state kernel:
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
tmp/ty-context/plan-acceptance/<plan-slug>/
|
|
112
|
+
product-architecture-source.md
|
|
113
|
+
technical-realization-plan.md
|
|
114
|
+
acceptance-checklist.md
|
|
115
|
+
task-state.schema.json
|
|
116
|
+
task-state.json
|
|
117
|
+
events.ndjson
|
|
118
|
+
derived/local-audit.md
|
|
119
|
+
derived/plan-conformance-matrix.md
|
|
120
|
+
derived/final-acceptance-verdict.md
|
|
121
|
+
derived/progress-ledger.md
|
|
122
|
+
derived/evidence-index.md
|
|
123
|
+
derived/context-alignment.md
|
|
124
|
+
derived/final-summary.md
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Rules:
|
|
128
|
+
|
|
129
|
+
- `task-state.json` is the only execution state source.
|
|
130
|
+
- `events.ndjson` is append-only for init, compile, slice delta, derive, gate, validator and auditor events.
|
|
131
|
+
- `derived/**` is generated only. Do not manually edit derived/local-audit.md, derived/plan-conformance-matrix.md, derived/final-acceptance-verdict.md, derived/progress-ledger.md, derived/evidence-index.md, derived/context-alignment.md or derived/final-summary.md.
|
|
132
|
+
- The executor updates state through `slice-delta.json` and `ty-context superpowers apply-slice-delta`, not by hand-editing generated views.
|
|
133
|
+
- `task-state.evidence[]` is canonical. Each evidence record must include `proves`, `does_not_prove`, freshness, command/artifact/reproduction data, redaction status and reviewability.
|
|
134
|
+
- No proof layer can be complete without fresh reviewable evidence mapped through `task-state.evidence[]`.
|
|
135
|
+
- Agents must not hand-set `product_goal_complete`; `ty-context superpowers final-gate` computes it.
|
|
136
|
+
|
|
137
|
+
Canonical commands:
|
|
138
|
+
|
|
139
|
+
```text
|
|
140
|
+
ty-context superpowers init <workdir>
|
|
141
|
+
ty-context superpowers compile <workdir>
|
|
142
|
+
ty-context superpowers apply-slice-delta <workdir> <slice-delta.json>
|
|
143
|
+
ty-context superpowers derive <workdir>
|
|
144
|
+
ty-context superpowers slice-gate <workdir> --slice <id>
|
|
145
|
+
ty-context superpowers epoch-gate <workdir> --epoch <id>
|
|
146
|
+
ty-context superpowers final-gate <workdir>
|
|
147
|
+
ty-context superpowers next-slices <workdir> --limit 5
|
|
148
|
+
ty-context validate-superpowers-state <workdir>
|
|
149
|
+
ty-context validate-plan-acceptance <workdir>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
`validate-plan-acceptance` validates state-backed derived artifacts when `task-state.json` exists. Legacy matrix/verdict workdirs without state remain legacy-compatible.
|
|
153
|
+
|
|
106
154
|
## Context Delta Assessment
|
|
107
155
|
|
|
108
156
|
The prompt must require the future executor to evaluate Context before implementation using:
|
|
@@ -130,7 +178,7 @@ For Superpowers execution, the generated prompt should use a parent/slice patter
|
|
|
130
178
|
|
|
131
179
|
## Plan Conformance Gate
|
|
132
180
|
|
|
133
|
-
The prompt must require the future executor to
|
|
181
|
+
The prompt must require the future executor to compile the Technical Realization Plan into `task-state.json`, then derive `derived/plan-conformance-matrix.md/json` from state. Do not manually edit derived matrix files.
|
|
134
182
|
|
|
135
183
|
Each behavior-affecting Technical Realization Plan item must have a trace entry with:
|
|
136
184
|
|
|
@@ -173,7 +221,7 @@ Hard rules:
|
|
|
173
221
|
|
|
174
222
|
## Acceptance Evidence Gate
|
|
175
223
|
|
|
176
|
-
The prompt must require the future executor to
|
|
224
|
+
The prompt must require the future executor to compile the Acceptance Checklist into `task-state.json`, then derive `derived/final-acceptance-verdict.md/json` from state at gates. Do not manually edit derived verdict files.
|
|
177
225
|
|
|
178
226
|
Each AC verdict entry must include:
|
|
179
227
|
|
|
@@ -203,8 +251,8 @@ Allowed AC statuses:
|
|
|
203
251
|
Hard rules:
|
|
204
252
|
|
|
205
253
|
- Final completion requires an AC-by-AC final acceptance verdict.
|
|
206
|
-
- Before any completion claim, run `ty-context validate-plan-acceptance tmp/ty-context/plan-acceptance/<plan-slug>`; failure prevents final complete and must produce partial / blocker / missing-evidence output.
|
|
207
|
-
- `validate-plan-acceptance` rejects contradictory matrix/verdict JSON, weak-proof complete rows, missing cross-references and declared surface/architecture binding gaps; it checks artifact consistency and references, not product quality.
|
|
254
|
+
- Before any completion claim, run `ty-context validate-superpowers-state tmp/ty-context/plan-acceptance/<plan-slug>` and `ty-context validate-plan-acceptance tmp/ty-context/plan-acceptance/<plan-slug>`; failure prevents final complete and must produce partial / blocker / missing-evidence output.
|
|
255
|
+
- `validate-plan-acceptance` rejects state/derived drift, contradictory matrix/verdict JSON, weak-proof complete rows, missing cross-references and declared surface/architecture binding gaps; it checks artifact consistency and references, not product quality.
|
|
208
256
|
- Current API/UI/runtime/data/test contradictions override historical passing evidence.
|
|
209
257
|
- local audit, subagent summaries, final result card text, passing test logs, stale artifacts, partial smoke, dry-run or sampled paths cannot prove completion by themselves.
|
|
210
258
|
- Any current contradiction downgrades the affected AC and overall status.
|
|
@@ -218,29 +266,29 @@ The final verdict is not completion proof unless every complete AC can be indepe
|
|
|
218
266
|
|
|
219
267
|
For every AC whose checklist implies multiple required layers, the final verdict must record `required_proof_chain`, `fresh_evidence`, `missing_required_layers`, `drift_severity`, `sibling_substitution_used`, `auditor_status` and `auditor_findings` when applicable. These are generic evidence protocol fields; concrete business layers must come from the Acceptance Checklist, Product / Architecture Source, Technical Realization Plan or project-local Context/Skills.
|
|
220
268
|
|
|
221
|
-
Evidence Ledger / proof index is
|
|
269
|
+
Evidence Ledger / proof index is a generated execution index, not durable Context and not authority. Complete plan-conformance rows and complete AC verdicts must still be evidence-traceable through `task-state.evidence[]` records that point to command, API, UI, runtime, artifact, browser or test evidence with enough freshness context for a reviewer to reconstruct the proof chain.
|
|
222
270
|
|
|
223
|
-
##
|
|
271
|
+
## State Delta And Slice Batching
|
|
224
272
|
|
|
225
|
-
For non-trivial execution slices, the prompt should
|
|
273
|
+
For non-trivial execution slices, the prompt should require a structured `slice-delta.json`. The delta updates `task-state.json`, appends `events.ndjson`, and regenerates `derived/**`.
|
|
226
274
|
|
|
227
|
-
Each
|
|
275
|
+
Each slice delta should include `slice_id`, `slice_goal`, `missing_layer_classes`, `touched_plan_items`, `touched_acs`, `code_changes`, `evidence_records`, `closed_layers`, `remaining_layers`, `blockers`, `cleanup_assertions` and `progress_value`.
|
|
228
276
|
|
|
229
|
-
|
|
277
|
+
Each evidence record should include `evidence_id`, `slice_id`, `type`, `freshness`, `command`, `artifact_paths`, `proves`, `does_not_prove`, `redaction` and `reviewability`. Evidence must not contain secrets, raw credentials, tokens, cookies or long raw payloads. Record redacted paths, command identities, evidence ids, counts and short summaries instead.
|
|
230
278
|
|
|
231
279
|
Default slice sizing: group 2-4 strongly related missing layers that share the same AC, runtime scenario, proof environment or verification path. Single-gap slices are reserved for blockers, contradictions or tiny metadata cleanup. Before choosing a slice, classify missing layers as functional gap, proof gap, stale wording/artifact sync, upstream blocker, live DB/runtime proof, Browser/UI proof, security/redaction proof or all-provider/all-runner coverage.
|
|
232
280
|
|
|
233
|
-
After each slice,
|
|
281
|
+
After each slice, run `ty-context superpowers apply-slice-delta`, `ty-context superpowers derive` and `ty-context superpowers slice-gate`. Derived matrix/local audit/verdict views come from state; do not mark ACs complete by editing derived files. Reuse DB/API/Browser environments for related slices only with unique proof prefixes and a final cleanup count/assertion.
|
|
234
282
|
|
|
235
|
-
Run a stale/overclaim scan over
|
|
283
|
+
Run a stale/overclaim scan over state and derived views after synchronization. Remove leftover closed gaps and reject unsafe claims such as `accepted`, `complete`, `final passed`, `product_goal_complete=true`, unapproved `scope narrowed` or unapproved sibling substitution unless the checklist and final gate justify them.
|
|
236
284
|
|
|
237
285
|
## Gate Cadence And Progress Accounting
|
|
238
286
|
|
|
239
287
|
The generated prompt must use a tiered cadence instead of running the full final gate after every slice:
|
|
240
288
|
|
|
241
|
-
- Slice Gate: after each implementation slice,
|
|
289
|
+
- Slice Gate: after each implementation slice, apply the slice delta, derive views, run only targeted tests or probes needed for that slice, run stale/overclaim cleanup and run `ty-context superpowers slice-gate`; do not run the full final gate after every slice.
|
|
242
290
|
- Epoch Gate: after a cluster of related slices, such as a provider/browser/runtime/security epoch, batch shared DB/API/Browser/proof-environment cleanup and rerun the higher-value cross-slice tests, validators or smoke checks for that cluster.
|
|
243
|
-
- Final Gate: after all required plan items and AC proof layers are ready, run the fixed final gate order, including `superpowers:verification-before-completion`, `ty-context validate-plan-acceptance`, read-only auditor when available, final stale/overclaim scan and completion wording.
|
|
291
|
+
- Final Gate: after all required plan items and AC proof layers are ready, run the fixed final gate order, including `superpowers:verification-before-completion`, `ty-context validate-superpowers-state`, `ty-context validate-plan-acceptance`, read-only auditor when available, final stale/overclaim scan and completion wording.
|
|
244
292
|
|
|
245
293
|
The generated prompt must require Progress Accounting after each Slice Gate, Epoch Gate and Final Gate. Track four metrics separately:
|
|
246
294
|
|
|
@@ -249,7 +297,7 @@ The generated prompt must require Progress Accounting after each Slice Gate, Epo
|
|
|
249
297
|
- runtime/proof progress: required proof layers by status, not just code landed.
|
|
250
298
|
- workflow overhead: time, artifacts, gate loops, stale-sync cleanup and review burden spent on workflow rather than product proof.
|
|
251
299
|
|
|
252
|
-
Use
|
|
300
|
+
Use generated `derived/progress-ledger.md/json` when the task spans multiple slices or agents. The progress ledger is not Context and not proof; it records current counts, gate cadence, next high-value clusters and stale-state cleanup so the executor does not rerun the full final gate after every slice.
|
|
253
301
|
|
|
254
302
|
Every non-trivial slice should declare an artifact budget: expected files/manifest rows/screenshots/log summaries to create or update, maximum raw-output retention, cleanup expectations and which artifacts are safe to sync into verdict rows. Excess artifact growth or repeated stale-sync cleanup triggers workflow overhead backpressure: batch the next proof-environment run, merge small stale-only slices, prune obsolete temporary notes and prefer the next proof that closes the most AC/proof-layer gaps.
|
|
255
303
|
|
|
@@ -284,14 +332,14 @@ Use a fixed auditor checklist: source/plan/checklist consistency, closed gaps ha
|
|
|
284
332
|
|
|
285
333
|
Final gate order is fixed:
|
|
286
334
|
|
|
287
|
-
1.
|
|
288
|
-
2.
|
|
289
|
-
3. run `superpowers
|
|
335
|
+
1. run `ty-context superpowers derive`.
|
|
336
|
+
2. run `superpowers:verification-before-completion` against state and derived verdict/matrix.
|
|
337
|
+
3. run `ty-context validate-superpowers-state`.
|
|
290
338
|
4. run `ty-context validate-plan-acceptance`.
|
|
291
339
|
5. run read-only auditor gap review when subagents are available.
|
|
292
|
-
6. if auditor findings change
|
|
340
|
+
6. if auditor findings change state or evidence, fix the gap and rerun derive plus both validators.
|
|
293
341
|
7. run a final lightweight stale/overclaim scan.
|
|
294
|
-
8. make a final completion claim only when
|
|
342
|
+
8. run `ty-context superpowers final-gate` and make a final completion claim only when computed `product_goal_complete=true`.
|
|
295
343
|
|
|
296
344
|
## Goal And Acceptance Wording
|
|
297
345
|
|
|
@@ -301,7 +349,7 @@ The Superpowers target prompt must keep three completion concepts separate:
|
|
|
301
349
|
- `acceptance_target_status`: the final verdict outcome for the checked plan or product target.
|
|
302
350
|
- `product_goal_complete`: the checked plan or product target is accepted as complete.
|
|
303
351
|
|
|
304
|
-
`product_goal_complete` may be true only when
|
|
352
|
+
`product_goal_complete` may be true only when `ty-context superpowers final-gate` computes it from unchanged source hashes, resolved Context Delta/coverage/binding, all required plan items, all required ACs, satisfied proof layers, fresh reviewable evidence, validator pass and no auditor blocker. Agents must not hand-set `product_goal_complete`.
|
|
305
353
|
|
|
306
354
|
When the generated prompt is used as an implementation or execution Goal mode objective, the active Codex goal is complete only when `product_goal_complete=true`. A non-accepted `acceptance_target_status` means continue implementation or report blockers / missing evidence; do not close the implementation goal as complete.
|
|
307
355
|
|
|
@@ -366,7 +414,7 @@ Bind the target prompt to the official Skill names and their documented roles:
|
|
|
366
414
|
- Prefer `superpowers:subagent-driven-development` when subagents are available.
|
|
367
415
|
- Use `superpowers:executing-plans` when executing a written plan without the same-session subagent workflow.
|
|
368
416
|
- Plan or AC behavior gap -> TDD: each behavior gap uses `superpowers:test-driven-development` to write a failing test, observe failure, then implement minimally.
|
|
369
|
-
- Before any completion claim, use `superpowers:verification-before-completion` against both `plan-conformance-matrix.*` and `final-acceptance-verdict.*` with fresh evidence, then run `ty-context validate-plan-acceptance tmp/ty-context/plan-acceptance/<plan-slug>`.
|
|
417
|
+
- Before any completion claim, derive all state-backed views, use `superpowers:verification-before-completion` against both derived `plan-conformance-matrix.*` and `final-acceptance-verdict.*` with fresh evidence, then run `ty-context validate-superpowers-state tmp/ty-context/plan-acceptance/<plan-slug>` and `ty-context validate-plan-acceptance tmp/ty-context/plan-acceptance/<plan-slug>`.
|
|
370
418
|
- review / finish cannot override the plan-conformance matrix or full checklist; if either gate is unsatisfied, continue implementation or report blockers.
|
|
371
419
|
- Superpowers review and verification remain useful execution checks, but they cannot override Tiny Context gates: passing Superpowers review does not by itself prove plan conformance or checklist acceptance.
|
|
372
420
|
|
|
@@ -397,21 +445,21 @@ The local audit is process recovery only. It must not contain completion judgmen
|
|
|
397
445
|
- The prompt must visibly output `Superpowers 执行绑定` for Chinese prompts or `Superpowers execution binding` for English prompts.
|
|
398
446
|
- The prompt must state that this is a Tiny Context adapter for Superpowers workflows, aligned to the official Superpowers skills, not an upstream-owned schema.
|
|
399
447
|
- The prompt must state that Tiny Context gates wrap Superpowers for source authority, conformance and acceptance, but do not redefine or fork Superpowers execution mechanics.
|
|
400
|
-
- The prompt must identify Product / Architecture Source, Technical Realization Plan, Acceptance Checklist,
|
|
448
|
+
- The prompt must identify the Superpowers workdir, Product / Architecture Source, Technical Realization Plan, Acceptance Checklist, `task-state.json`, `events.ndjson` and generated `derived/**` paths at the top.
|
|
401
449
|
- The prompt must state that the Technical Realization Plan controls plan conformance, the Product / Architecture Source prevents scope shrinkage and the full checklist controls acceptance.
|
|
402
|
-
- The prompt must state the Authority Model and that
|
|
450
|
+
- The prompt must state the Authority Model and that state/derived views/validator/auditor artifacts cannot rewrite source, plan or checklist authority.
|
|
403
451
|
- The prompt must require Product Context Delta and Technical Context Delta evaluation before implementation.
|
|
404
452
|
- The prompt must use parent-level Context Delta plus slice-level new durable fact checks.
|
|
405
|
-
- The prompt must state that Evidence Ledger / proof index is
|
|
406
|
-
- The prompt must
|
|
407
|
-
- The prompt must forbid secrets, raw credentials, tokens, cookies and long raw payloads in evidence
|
|
408
|
-
- The prompt must prefer 2-4 strongly related missing layers per slice, require missing-layer classification,
|
|
453
|
+
- The prompt must state that Evidence Ledger / proof index is a generated execution index, but complete rows and ACs require evidence traceability to fresh evidence through `task-state.evidence[]` and optional `evidence_id`.
|
|
454
|
+
- The prompt must require structured `slice-delta.json` for non-trivial slices and state that deltas update `task-state.json`, append `events.ndjson` and regenerate `derived/**`.
|
|
455
|
+
- The prompt must forbid secrets, raw credentials, tokens, cookies and long raw payloads in slice deltas, task state, evidence records and derived views.
|
|
456
|
+
- The prompt must prefer 2-4 strongly related missing layers per slice, require missing-layer classification, delta-driven state/derived synchronization, conservative verdict updates and no AC completion before the final gate.
|
|
409
457
|
- The prompt must include Slice Gate, Epoch Gate and Final Gate cadence; it must say not to run the full final gate after every slice.
|
|
410
458
|
- The prompt must include Progress Accounting for AC acceptance completion, engineering implementation progress, runtime/proof progress and workflow overhead.
|
|
411
459
|
- The prompt must include the progress-ledger.md/json path, artifact budget, proof-layer milestone statuses, workflow overhead backpressure and Next 3-5 high-value clusters.
|
|
412
460
|
- The prompt must mention provider/browser/runtime/security epoch batching and generated active-count markers for final-verdict Markdown.
|
|
413
461
|
- The prompt must include stale/overclaim scan, related-runtime reuse with unique proof prefixes and cleanup count/assertion, and the fixed auditor checklist.
|
|
414
|
-
- The prompt must require the fixed final gate order and rerun
|
|
462
|
+
- The prompt must require the fixed final gate order and rerun derive plus both validators if auditor-driven fixes change state, artifacts or evidence.
|
|
415
463
|
- The prompt must state the Goal mode completion rule: implementation / execution goals complete only at `product_goal_complete=true`; read-only audit / reporting goals may end at `audit_task_complete` but must still report the acceptance target status.
|
|
416
464
|
- The prompt must require the final response to say `Audit workflow completed; acceptance target not complete.` whenever the verdict is not accepted/complete, and must forbid unqualified `Goal achieved` or treating `update_goal(status="complete")` as product acceptance in that case.
|
|
417
465
|
- The prompt must preserve hard-blocker semantics: if only locally unsatisfiable hard blockers remain, pause for the user or external owner instead of marking complete.
|
|
@@ -425,13 +473,13 @@ The local audit is process recovery only. It must not contain completion judgmen
|
|
|
425
473
|
Recommended compact Chinese prompt shape:
|
|
426
474
|
|
|
427
475
|
```text
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
476
|
+
工作目录: tmp/ty-context/plan-acceptance/<plan-slug>
|
|
477
|
+
产品/架构源: <workdir>/product-architecture-source.md(原始意图/防 scope shrinkage,非施工图)
|
|
478
|
+
技术实现方案: <workdir>/technical-realization-plan.md(执行图纸/plan conformance source,非证明)
|
|
479
|
+
验收清单: <workdir>/acceptance-checklist.md(完整验收标准,final verdict 以它为准)
|
|
480
|
+
状态源: <workdir>/task-state.json(唯一执行状态源;不要手改 derived)
|
|
481
|
+
事件流: <workdir>/events.ndjson(append-only)
|
|
482
|
+
生成视图: <workdir>/derived/local-audit.md、plan-conformance-matrix.md/json、final-acceptance-verdict.md/json、progress-ledger.md/json
|
|
435
483
|
可多开agent,agent名额不够了就关掉不用的。
|
|
436
484
|
这是面向 Superpowers workflow 的 Tiny Context 适配输入包,对齐官方 Superpowers skills;不是上游维护的 schema。
|
|
437
485
|
Tiny Context gates 只管 source authority/对图纸/验收,不重定义或分叉 Superpowers 执行机制。
|
|
@@ -439,22 +487,22 @@ Superpowers 输入包:
|
|
|
439
487
|
- Product/Architecture Source:原始产品/架构意图,防止 scope shrinkage,不是施工图
|
|
440
488
|
- Technical Realization Plan:施工图;每个行为 plan item 都要进 matrix
|
|
441
489
|
- Acceptance Checklist:最高验收标准;每个 AC 都要进 final verdict
|
|
442
|
-
- local audit
|
|
490
|
+
- task-state:唯一执行状态;local audit/matrix/verdict/progress ledger 都是 generated views,不能裁判完成
|
|
443
491
|
- Context/tests/core paths:执行前读取,把 plan/AC gap 绑定到测试、API/UI/runtime/browser 证据
|
|
444
|
-
权威:source 管 scope,plan 管施工,checklist 管验收;
|
|
445
|
-
Goal mode:实现/执行目标只在 product_goal_complete=true 时完成;只读审计目标可在 audit_task_complete 时结束,但若 verdict 非 accepted/complete,必须写“Audit workflow completed; acceptance target not complete.”并列数量;不得写 Goal achieved 或把 update_goal complete 当用户目标完成。
|
|
492
|
+
权威:source 管 scope,plan 管施工,checklist 管验收;state/derived/validator/auditor 不能改写它们。Proof index/evidence ledger 是 generated execution index;complete 行必须经 task-state.evidence[]/evidence_id 追溯 fresh evidence。
|
|
493
|
+
Goal mode:实现/执行目标只在 final-gate 计算 product_goal_complete=true 时完成;只读审计目标可在 audit_task_complete 时结束,但若 verdict 非 accepted/complete,必须写“Audit workflow completed; acceptance target not complete.”并列数量;不得写 Goal achieved 或把 update_goal complete 当用户目标完成。
|
|
446
494
|
|
|
447
495
|
执行顺序:
|
|
448
496
|
1. 读三份输入和 Context。先写 Task Contract:Product Context Delta none|required;Technical Context Delta none|required;任一 required -> Context Delta required。这不是 validator gate。
|
|
449
497
|
2. 用 Parent Context Delta 统一判断;每个 slice 继承它,只记录 new durable fact yes/no。Context Delta required 时先最小更新 owning project_context/** 或 DESIGN.md;不要把 audit/matrix/verdict/日志/截图/sample evidence 写进 Context。
|
|
450
498
|
3. 检查技术实现方案覆盖产品/架构源关键要求;若只有产品方案没有技术实现方案,停止报告 missing Technical Realization Plan,不现场生成。
|
|
451
|
-
4.
|
|
499
|
+
4. 初始化/编译 task-state.json;技术实现方案在本 Skill 输入校验阶段已确认可执行,直接绑定执行。
|
|
452
500
|
5. 有 subagent 支持时优先 superpowers:subagent-driven-development,否则 superpowers:executing-plans。
|
|
453
501
|
6. Plan/AC behavior gap -> superpowers:test-driven-development:先写 failing test 并 observe failure,再最小实现。
|
|
454
|
-
7. 默认把同 AC/runtime/proof path 的 2-4 个 related missing layers 合成 slice;单 gap 只用于 blocker/contradiction/metadata cleanup。先分类 functional/proof/stale/upstream/live DB/Browser/security/all-runner gap;每 slice
|
|
502
|
+
7. 默认把同 AC/runtime/proof path 的 2-4 个 related missing layers 合成 slice;单 gap 只用于 blocker/contradiction/metadata cleanup。先分类 functional/proof/stale/upstream/live DB/Browser/security/all-runner gap;每 slice 写 slice-delta.json,apply 后 derive,verdict 只保守改 evidence/missing,不提前 complete。
|
|
455
503
|
8. Candidate done 前跑 Plan Conformance Gate:测试通过不等于按图纸完成;sampled path 不等于 full implementation;每个行为 plan item 必须有 code/API/UI/runtime/test/evidence trace。
|
|
456
504
|
9. 再跑 Acceptance Evidence Gate:按验收清单生成 final verdict;每 AC 写 required proof chain/fresh evidence/missing layers/drift/substitution。current contradiction 高于历史通过记录。
|
|
457
|
-
10. Final gate 固定为
|
|
505
|
+
10. Final gate 固定为 derive all views -> verification-before-completion -> validate-superpowers-state -> validate-plan-acceptance -> read-only auditor -> stale/overclaim scan -> superpowers final-gate;auditor summary 不是 proof。若审计后改 state/evidence,rerun derive plus both validators。
|
|
458
506
|
|
|
459
507
|
权限/卡点:在当前平台/仓库/工具/用户已授权权限内最大自主推进;先打开相关 app/浏览器页面/CLI/系统设置,复用已有登录态/授权会话/凭据链;已授权 sudo/gsudo/admin elevation 先尝试。只有实际未登录/会话失效/权限不足/需要 MFA 或人工审批、缺账号/真实环境/敏感字段时才暂停,并给最小用户执行清单(页面/系统、字段位置、脱敏/勿发值、拿到后下一步)。
|
|
460
508
|
禁止完成于:local audit、subagent summary、final card、只改代码/计划、只跑部分测试、旧/部分/抽样证据、缺 required layer、material drift、未批准 sibling substitution、runtime 未演练、artifact 未 accepted、API/UI 未 reflected、未批准 scope narrowing、任何 API/UI/data/runtime/test 矛盾。
|
|
@@ -463,37 +511,34 @@ Goal mode:实现/执行目标只在 product_goal_complete=true 时完成;只
|
|
|
463
511
|
Recommended compact English prompt shape:
|
|
464
512
|
|
|
465
513
|
```text
|
|
466
|
-
|
|
467
|
-
Product / Architecture Source: <
|
|
468
|
-
Technical Realization Plan: <
|
|
469
|
-
Acceptance Checklist: <
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
Evidence manifest: <base>-evidence-manifest.md/json (optional note; no secrets; not proof/input/Context)
|
|
514
|
+
Workdir: tmp/ty-context/plan-acceptance/<plan-slug>
|
|
515
|
+
Product / Architecture Source: <workdir>/product-architecture-source.md (scope)
|
|
516
|
+
Technical Realization Plan: <workdir>/technical-realization-plan.md (blueprint)
|
|
517
|
+
Acceptance Checklist: <workdir>/acceptance-checklist.md (authority)
|
|
518
|
+
Task state: <workdir>/task-state.json (only execution state)
|
|
519
|
+
Events: <workdir>/events.ndjson (append-only)
|
|
520
|
+
Generated views: <workdir>/derived/local-audit.md, plan-conformance-matrix.*, final-acceptance-verdict.*, progress-ledger.*
|
|
474
521
|
You may use multiple agents; if agent slots run low, close idle or unnecessary agents.
|
|
475
|
-
Tiny Context adapter for Superpowers; aligned to official skills, not upstream schema.
|
|
476
|
-
TC gates cover authority/conformance/acceptance, not Superpowers mechanics.
|
|
522
|
+
Tiny Context adapter for Superpowers; aligned to official skills, not upstream schema. TC gates cover authority/conformance/acceptance, not Superpowers mechanics.
|
|
477
523
|
Superpowers input packet:
|
|
478
|
-
- Source guards scope; plan controls matrix; checklist controls verdict;
|
|
479
|
-
- Read Context/tests
|
|
480
|
-
Authority: source/plan/checklist own scope/construction/acceptance;
|
|
481
|
-
Goal mode: implementation/execution complete only at product_goal_complete=true. Read-only audit may end at audit_task_complete; non-accepted verdict says "Audit workflow completed; acceptance target not complete."; no bare "Goal achieved" or update_goal complete as user target.
|
|
524
|
+
- Source guards scope; plan controls matrix; checklist controls verdict; task-state records execution state and derived views are generated only.
|
|
525
|
+
- Read Context/tests first; map gaps to test/API/UI/runtime/browser evidence.
|
|
526
|
+
Authority: source/plan/checklist own scope/construction/acceptance; state/derived/validator/auditor cannot rewrite. Complete rows need task-state.evidence[]/evidence_id. Goal mode: implementation/execution complete only when final-gate computes product_goal_complete=true. Read-only audit may end at audit_task_complete; non-accepted verdict says "Audit workflow completed; acceptance target not complete."; no bare "Goal achieved" or update_goal complete as user target.
|
|
482
527
|
|
|
483
528
|
Execution order:
|
|
484
529
|
1. Read inputs and Context. Task Contract: Product Context Delta none|required; Technical Context Delta none|required; any required -> Context Delta required. Not a validator gate.
|
|
485
|
-
2. Use Parent Context Delta once; slices inherit it and record new durable fact yes/no. If required, update owning project_context/** or DESIGN.md; never store
|
|
530
|
+
2. Use Parent Context Delta once; slices inherit it and record new durable fact yes/no. If required, update owning project_context/** or DESIGN.md; never store generated views/logs/screenshots as Context.
|
|
486
531
|
3. Check Technical Realization Plan covers Product / Architecture Source; if only product plan exists, stop with missing Technical Realization Plan.
|
|
487
|
-
4. Init
|
|
488
|
-
5. Prefer superpowers:subagent-driven-development with subagents; otherwise
|
|
489
|
-
6. Plan/AC behavior gap -> superpowers:test-driven-development: write a failing test, observe failure,
|
|
490
|
-
7. Batch slices: prefer 2-4 related missing layers sharing AC/runtime/proof path; single-gap only for blockers/contradictions/metadata cleanup. Classify gaps, write
|
|
532
|
+
4. Init/compile task-state.json; TRP was already validated, so bind it directly.
|
|
533
|
+
5. Prefer superpowers:subagent-driven-development with subagents; otherwise superpowers:executing-plans.
|
|
534
|
+
6. Plan/AC behavior gap -> superpowers:test-driven-development: write a failing test, observe failure, implement minimally.
|
|
535
|
+
7. Batch slices: prefer 2-4 related missing layers sharing AC/runtime/proof path; single-gap only for blockers/contradictions/metadata cleanup. Classify gaps, write slice-delta.json, apply, derive; no AC complete before final gate.
|
|
491
536
|
8. Plan Conformance Gate: tests do not prove conformance; sampled path is not full implementation; each behavior item needs code/API/UI/runtime/test/evidence trace.
|
|
492
|
-
9. Acceptance Evidence Gate: checklist controls verdict; each AC records proof chain, fresh evidence, missing layers, drift
|
|
493
|
-
10. Final gate:
|
|
537
|
+
9. Acceptance Evidence Gate: checklist controls verdict; each AC records proof chain, fresh evidence, missing layers, drift and substitution. Current contradictions override old passes.
|
|
538
|
+
10. Final gate: derive all views -> verification-before-completion -> validate-superpowers-state -> validate-plan-acceptance -> auditor -> stale/overclaim scan -> superpowers final-gate. Auditor summary is not proof; rerun derive plus both validators after changes.
|
|
494
539
|
|
|
495
540
|
Autonomy/blockers: self-serve under current permissions. Open app/browser/CLI/settings and reuse sessions/auth/helpers. Try authorized sudo/gsudo/admin. Pause only after missing login/session expiry/denied permission/MFA/approval/missing env/account/field; give page/system, field, redaction, next step.
|
|
496
|
-
Never complete on: local audit, summary/final card, code/plan-only, partial
|
|
541
|
+
Never complete on: local audit, summary/final card, code/plan-only, partial/stale/sampled evidence, missing layer, material drift, unapproved substitution/scope narrowing, unexercised runtime, artifact not accepted, API/UI not reflected, missing validator pass or current API/UI/data/runtime/test contradiction.
|
|
497
542
|
```
|
|
498
543
|
|
|
499
544
|
Before final response, check the prompt length. If it exceeds 3850 characters, tighten wording while preserving paths, input roles, official Superpowers skill names, Product Context Delta, Technical Context Delta, plan-conformance matrix, final verdict, state machine, UI gate, blockers and invalid evidence.
|
|
@@ -506,8 +551,9 @@ When successful, return:
|
|
|
506
551
|
- The Technical Realization Plan path.
|
|
507
552
|
- The full checklist path.
|
|
508
553
|
- The local audit path.
|
|
509
|
-
- The
|
|
510
|
-
- The
|
|
554
|
+
- The `task-state.json` path.
|
|
555
|
+
- The generated plan-conformance matrix path.
|
|
556
|
+
- The generated final acceptance verdict path.
|
|
511
557
|
- Whether required input was complete.
|
|
512
558
|
- The generated prompt's Goal mode completion rule for implementation / execution goals, and required final status wording for non-accepted read-only audit results: `Audit workflow completed; acceptance target not complete.`
|
|
513
559
|
- The paste-ready Superpowers target-mode prompt in a code block.
|
package/dist/commands/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { doctor } from "./doctor.js";
|
|
|
3
3
|
import { exportContext } from "./export-context.js";
|
|
4
4
|
import { init } from "./init.js";
|
|
5
5
|
import { packageSource } from "./package-source.js";
|
|
6
|
+
import { superpowers } from "./superpowers.js";
|
|
6
7
|
import { sync } from "./sync.js";
|
|
7
8
|
import { upgrade } from "./upgrade.js";
|
|
8
9
|
import { validate } from "./validate.js";
|
|
@@ -20,6 +21,8 @@ export const commands = {
|
|
|
20
21
|
"validate-harness": (args) => validate(["validate-harness", ...args]),
|
|
21
22
|
"validate-plan-contract": (args) => validate(["validate-plan-contract", ...args]),
|
|
22
23
|
"validate-plan-acceptance": (args) => validate(["validate-plan-acceptance", ...args]),
|
|
24
|
+
"validate-superpowers-state": (args) => validate(["validate-superpowers-state", ...args]),
|
|
25
|
+
superpowers,
|
|
23
26
|
package: packageSource
|
|
24
27
|
};
|
|
25
28
|
export function help() {
|
|
@@ -32,16 +35,20 @@ export function help() {
|
|
|
32
35
|
doctor Diagnose project configuration and drift
|
|
33
36
|
check-modularity --touched|--file <path>|--base <ref> [--limit 300] [--fail-on-warning]
|
|
34
37
|
Warn when selected handwritten source files exceed a line-count limit
|
|
35
|
-
export-context --full|--code|--all|--source-pack|--code-index|--task-context
|
|
36
|
-
Export temporary Context, code snapshot or bounded Source Pack artifacts
|
|
38
|
+
export-context --full|--code|--all|--source-pack|--code-index|--task-context
|
|
39
|
+
Export temporary Context, code snapshot or bounded Source Pack artifacts
|
|
37
40
|
validate <gate> Run a Harness validation gate
|
|
38
41
|
validate-context Validate Minimal Context fact-source recoverability
|
|
39
|
-
validate-code-modularity
|
|
40
|
-
Enforce touched handwritten source file modularity
|
|
41
|
-
validate-harness Run validate-context and validate-code-modularity
|
|
42
|
-
validate-plan-contract <plan.md|dir>
|
|
43
|
-
Validate workflow-contract plan surface consistency
|
|
44
|
-
validate-plan-acceptance <dir>
|
|
45
|
-
Validate plan-conformance matrix and final verdict consistency
|
|
42
|
+
validate-code-modularity
|
|
43
|
+
Enforce touched handwritten source file modularity
|
|
44
|
+
validate-harness Run validate-context and validate-code-modularity
|
|
45
|
+
validate-plan-contract <plan.md|dir>
|
|
46
|
+
Validate workflow-contract plan surface consistency
|
|
47
|
+
validate-plan-acceptance <dir>
|
|
48
|
+
Validate plan-conformance matrix and final verdict consistency
|
|
49
|
+
validate-superpowers-state <dir>
|
|
50
|
+
Validate canonical Superpowers task-state.json
|
|
51
|
+
superpowers <subcommand>
|
|
52
|
+
Manage explicit Superpowers long-task state workdirs
|
|
46
53
|
package <subcommand> Maintain package canonical source`);
|
|
47
54
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function superpowers(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { applySliceDelta, initializeSuperpowersTask } from "../lib/superpowers-task-state.js";
|
|
3
|
+
import { compileSuperpowersTask } from "../lib/superpowers-task-compile.js";
|
|
4
|
+
import { deriveSuperpowersArtifacts } from "../lib/superpowers-task-derive.js";
|
|
5
|
+
import { runEpochGate, runFinalGate, runSliceGate } from "../lib/superpowers-task-gates.js";
|
|
6
|
+
import { nextSuperpowersSlices } from "../lib/superpowers-task-next-slices.js";
|
|
7
|
+
export async function superpowers(args) {
|
|
8
|
+
const subcommand = args[0] ?? "help";
|
|
9
|
+
const workdirArg = args[1];
|
|
10
|
+
if (!workdirArg || subcommand === "help") {
|
|
11
|
+
help();
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const workdir = path.resolve(process.cwd(), workdirArg);
|
|
15
|
+
if (subcommand === "init") {
|
|
16
|
+
await initializeSuperpowersTask(workdir, { planSlug: path.basename(workdir) });
|
|
17
|
+
console.log(`initialized superpowers task state at ${workdirArg}/task-state.json`);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (subcommand === "compile") {
|
|
21
|
+
const state = await compileSuperpowersTask(workdir);
|
|
22
|
+
console.log(`compiled superpowers task graph plan_items=${Object.keys(state.graph.plan_items).length} acs=${Object.keys(state.graph.acceptance_criteria).length}`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (subcommand === "apply-slice-delta") {
|
|
26
|
+
const delta = args[2];
|
|
27
|
+
if (!delta) {
|
|
28
|
+
throw new Error("apply-slice-delta requires <slice-delta.json>");
|
|
29
|
+
}
|
|
30
|
+
await applySliceDelta(workdir, path.resolve(process.cwd(), delta));
|
|
31
|
+
const result = await deriveSuperpowersArtifacts(workdir);
|
|
32
|
+
console.log(`applied superpowers slice delta and derived files=${result.files.length}`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (subcommand === "derive") {
|
|
36
|
+
const result = await deriveSuperpowersArtifacts(workdir);
|
|
37
|
+
console.log(`derived superpowers artifacts files=${result.files.length}`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (subcommand === "slice-gate") {
|
|
41
|
+
const sliceId = optionValue(args, "--slice") ?? "";
|
|
42
|
+
const result = await runSliceGate(workdir, sliceId);
|
|
43
|
+
console.log(result.passed ? `slice gate passed ${sliceId}` : `slice gate blocked ${result.messages.join("; ")}`);
|
|
44
|
+
if (!result.passed) {
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (subcommand === "epoch-gate") {
|
|
50
|
+
const epochId = optionValue(args, "--epoch") ?? "";
|
|
51
|
+
const result = await runEpochGate(workdir, epochId);
|
|
52
|
+
console.log(result.passed ? `epoch gate passed ${epochId}` : `epoch gate blocked ${result.messages.join("; ")}`);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (subcommand === "final-gate") {
|
|
56
|
+
const result = await runFinalGate(workdir);
|
|
57
|
+
console.log(`final gate product_goal_complete=${result.product_goal_complete}`);
|
|
58
|
+
if (!result.product_goal_complete) {
|
|
59
|
+
process.exitCode = 1;
|
|
60
|
+
for (const error of result.errors) {
|
|
61
|
+
console.error(`error: ${error}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (subcommand === "next-slices") {
|
|
67
|
+
const limit = Number.parseInt(optionValue(args, "--limit") ?? "5", 10);
|
|
68
|
+
const slices = await nextSuperpowersSlices(workdir, Number.isFinite(limit) ? limit : 5);
|
|
69
|
+
console.log(`Next ${Math.min(Number.isFinite(limit) ? limit : 5, 5)} high-value clusters:`);
|
|
70
|
+
console.log(slices.join("\n"));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
help();
|
|
74
|
+
}
|
|
75
|
+
function help() {
|
|
76
|
+
console.log(`ty-context superpowers commands:
|
|
77
|
+
init <workdir> Initialize task-state.json and events.ndjson
|
|
78
|
+
compile <workdir> Compile sources into task graph
|
|
79
|
+
apply-slice-delta <workdir> <delta> Apply structured slice delta, evidence and derived views
|
|
80
|
+
derive <workdir> Generate derived/** views
|
|
81
|
+
slice-gate <workdir> --slice <id> Validate one slice has real progress
|
|
82
|
+
epoch-gate <workdir> --epoch <id> Refresh shared epoch evidence views
|
|
83
|
+
final-gate <workdir> Compute product_goal_complete
|
|
84
|
+
next-slices <workdir> --limit 5 Recommend next proof clusters`);
|
|
85
|
+
}
|
|
86
|
+
function optionValue(args, name) {
|
|
87
|
+
const index = args.indexOf(name);
|
|
88
|
+
return index >= 0 ? args[index + 1] : undefined;
|
|
89
|
+
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
import { pathExists } from "./fs.js";
|
|
2
3
|
import { validateAcceptanceArtifactDiagnostics } from "./plan-acceptance-artifacts.js";
|
|
3
4
|
import { assertExternalReviewerFields } from "./plan-acceptance-evidence.js";
|
|
4
5
|
import { AC_STATUSES, MATRIX_STATUSES, NON_COMPLETE_AC, NON_COMPLETE_MATRIX, assertStructuredNa, assertSurfaceConformance, contextDeltaRequired, findJsonFile, findRows, hasExplicitNoTestScope, isOutOfScope, isSurfaceConformanceRow, overallStatus, readJson, statusOf } from "./plan-acceptance-json.js";
|
|
5
6
|
import { assertReferencedPathsExist, hasRealPageEvidence, isBlankish, isUiFacing, primitiveText, repoRelative, resolveInputDir, valuesAsArray, weakProofHit } from "./plan-validator-common.js";
|
|
7
|
+
import { validateSuperpowersState } from "./superpowers-task-validator.js";
|
|
6
8
|
export async function validatePlanAcceptance(projectRoot, args = []) {
|
|
7
9
|
const info = [];
|
|
8
10
|
const warnings = [];
|
|
@@ -12,6 +14,19 @@ export async function validatePlanAcceptance(projectRoot, args = []) {
|
|
|
12
14
|
if (!(await pathExists(targetDir))) {
|
|
13
15
|
return { info, warnings, hygiene, errors: [`plan acceptance directory is missing: ${repoRelative(projectRoot, targetDir)}`] };
|
|
14
16
|
}
|
|
17
|
+
if (await pathExists(path.join(targetDir, "task-state.json"))) {
|
|
18
|
+
const stateReport = await validateSuperpowersState(projectRoot, [targetDir]);
|
|
19
|
+
return {
|
|
20
|
+
info: [
|
|
21
|
+
`checked state-backed plan acceptance ${repoRelative(projectRoot, targetDir)}`,
|
|
22
|
+
...stateReport.info,
|
|
23
|
+
...(stateReport.errors.length === 0 ? ["Plan acceptance state-backed artifact consistency passed"] : [])
|
|
24
|
+
],
|
|
25
|
+
warnings: stateReport.warnings,
|
|
26
|
+
hygiene: stateReport.hygiene,
|
|
27
|
+
errors: stateReport.errors
|
|
28
|
+
};
|
|
29
|
+
}
|
|
15
30
|
const matrixFile = await findJsonFile(targetDir, "plan-conformance-matrix");
|
|
16
31
|
const verdictFile = await findJsonFile(targetDir, "final-acceptance-verdict");
|
|
17
32
|
if (!matrixFile) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function compileSuperpowersTask(workdir: string): Promise<import("./superpowers-task-state-schema.js").SuperpowersTaskState>;
|