@aperant/framework 0.11.0 → 0.12.1

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 (149) hide show
  1. package/CHANGELOG.md +226 -29
  2. package/agents/apt-planner.md +15 -0
  3. package/agents/apt-verifier.md +15 -10
  4. package/bin/apt-proof-video.mjs +256 -76
  5. package/dist/cli/commands/apply-recipe.d.mts +6 -0
  6. package/dist/cli/commands/apply-recipe.d.mts.map +1 -0
  7. package/dist/cli/commands/apply-recipe.mjs +98 -0
  8. package/dist/cli/commands/apply-recipe.mjs.map +1 -0
  9. package/dist/cli/commands/mobile-prepare.d.mts +53 -0
  10. package/dist/cli/commands/mobile-prepare.d.mts.map +1 -0
  11. package/dist/cli/commands/mobile-prepare.mjs +139 -0
  12. package/dist/cli/commands/mobile-prepare.mjs.map +1 -0
  13. package/dist/cli/commands/recipe-diff.d.mts +6 -0
  14. package/dist/cli/commands/recipe-diff.d.mts.map +1 -0
  15. package/dist/cli/commands/recipe-diff.mjs +75 -0
  16. package/dist/cli/commands/recipe-diff.mjs.map +1 -0
  17. package/dist/cli/commands/roadmap.d.mts.map +1 -1
  18. package/dist/cli/commands/roadmap.mjs +53 -0
  19. package/dist/cli/commands/roadmap.mjs.map +1 -1
  20. package/dist/cli/commands/validate-evidence.d.mts +1 -1
  21. package/dist/cli/commands/verify-sandbox.d.mts +6 -0
  22. package/dist/cli/commands/verify-sandbox.d.mts.map +1 -0
  23. package/dist/cli/commands/verify-sandbox.mjs +200 -0
  24. package/dist/cli/commands/verify-sandbox.mjs.map +1 -0
  25. package/dist/cli/consistency/parse-qa.d.mts.map +1 -1
  26. package/dist/cli/consistency/parse-qa.mjs +18 -4
  27. package/dist/cli/consistency/parse-qa.mjs.map +1 -1
  28. package/dist/cli/consistency/rules/r5-verdict-consistency.d.mts.map +1 -1
  29. package/dist/cli/consistency/rules/r5-verdict-consistency.mjs +11 -10
  30. package/dist/cli/consistency/rules/r5-verdict-consistency.mjs.map +1 -1
  31. package/dist/cli/coverage-check/user-outcomes.d.mts +7 -2
  32. package/dist/cli/coverage-check/user-outcomes.d.mts.map +1 -1
  33. package/dist/cli/coverage-check/user-outcomes.mjs +50 -17
  34. package/dist/cli/coverage-check/user-outcomes.mjs.map +1 -1
  35. package/dist/cli/design/frontmatter-schema.d.mts +8 -8
  36. package/dist/cli/dispatch.d.mts.map +1 -1
  37. package/dist/cli/dispatch.mjs +28 -0
  38. package/dist/cli/dispatch.mjs.map +1 -1
  39. package/dist/cli/gate/gates/verify-approved.d.mts +0 -48
  40. package/dist/cli/gate/gates/verify-approved.d.mts.map +1 -1
  41. package/dist/cli/gate/gates/verify-approved.mjs +23 -80
  42. package/dist/cli/gate/gates/verify-approved.mjs.map +1 -1
  43. package/dist/cli/install/mcp-server-specs.d.mts +6 -5
  44. package/dist/cli/install/mcp-server-specs.d.mts.map +1 -1
  45. package/dist/cli/install/mcp-server-specs.mjs +22 -4
  46. package/dist/cli/install/mcp-server-specs.mjs.map +1 -1
  47. package/dist/cli/personas/sidecar.d.mts +1 -1
  48. package/dist/cli/roadmap/backend-adapter.d.mts +43 -0
  49. package/dist/cli/roadmap/backend-adapter.d.mts.map +1 -0
  50. package/dist/cli/roadmap/backend-adapter.mjs +222 -0
  51. package/dist/cli/roadmap/backend-adapter.mjs.map +1 -0
  52. package/dist/cli/roadmap/lifecycle.d.mts +1 -1
  53. package/dist/cli/roadmap/rollup.d.mts +2 -2
  54. package/dist/cli/util/runtime-capabilities.d.mts +7 -0
  55. package/dist/cli/util/runtime-capabilities.d.mts.map +1 -1
  56. package/dist/cli/util/runtime-capabilities.mjs +65 -0
  57. package/dist/cli/util/runtime-capabilities.mjs.map +1 -1
  58. package/dist/cli/verify-proof/manifest-validator.mjs +13 -0
  59. package/dist/cli/verify-proof/manifest-validator.mjs.map +1 -1
  60. package/dist/cli/verify-proof/resolver.d.mts +10 -7
  61. package/dist/cli/verify-proof/resolver.d.mts.map +1 -1
  62. package/dist/cli/verify-proof/resolver.mjs +28 -7
  63. package/dist/cli/verify-proof/resolver.mjs.map +1 -1
  64. package/dist/cli/verify-proof/sandbox/apply.d.mts +64 -0
  65. package/dist/cli/verify-proof/sandbox/apply.d.mts.map +1 -0
  66. package/dist/cli/verify-proof/sandbox/apply.mjs +379 -0
  67. package/dist/cli/verify-proof/sandbox/apply.mjs.map +1 -0
  68. package/dist/cli/verify-proof/sandbox/gate-predicate.d.mts +63 -0
  69. package/dist/cli/verify-proof/sandbox/gate-predicate.d.mts.map +1 -0
  70. package/dist/cli/verify-proof/sandbox/gate-predicate.mjs +115 -0
  71. package/dist/cli/verify-proof/sandbox/gate-predicate.mjs.map +1 -0
  72. package/dist/cli/verify-proof/sandbox/pattern-matcher.d.mts +57 -0
  73. package/dist/cli/verify-proof/sandbox/pattern-matcher.d.mts.map +1 -0
  74. package/dist/cli/verify-proof/sandbox/pattern-matcher.mjs +124 -0
  75. package/dist/cli/verify-proof/sandbox/pattern-matcher.mjs.map +1 -0
  76. package/dist/cli/verify-proof/sandbox/recipe-diff.d.mts +28 -0
  77. package/dist/cli/verify-proof/sandbox/recipe-diff.d.mts.map +1 -0
  78. package/dist/cli/verify-proof/sandbox/recipe-diff.mjs +190 -0
  79. package/dist/cli/verify-proof/sandbox/recipe-diff.mjs.map +1 -0
  80. package/dist/cli/verify-proof/sandbox/sandbox-config.d.mts +25 -0
  81. package/dist/cli/verify-proof/sandbox/sandbox-config.d.mts.map +1 -0
  82. package/dist/cli/verify-proof/sandbox/sandbox-config.mjs +85 -0
  83. package/dist/cli/verify-proof/sandbox/sandbox-config.mjs.map +1 -0
  84. package/dist/cli/verify-proof/sandbox/self-test.d.mts +39 -0
  85. package/dist/cli/verify-proof/sandbox/self-test.d.mts.map +1 -0
  86. package/dist/cli/verify-proof/sandbox/self-test.mjs +248 -0
  87. package/dist/cli/verify-proof/sandbox/self-test.mjs.map +1 -0
  88. package/dist/plugin/.claude-plugin/plugin.json +1 -1
  89. package/dist/plugin/agents/apt-planner.md +15 -0
  90. package/dist/plugin/agents/apt-verifier.md +15 -10
  91. package/dist/plugin/skills/apt/SKILL.md +2 -2
  92. package/dist/plugin/skills/apt-plan/SKILL.md +23 -0
  93. package/dist/plugin/skills/apt-run/SKILL.md +1 -1
  94. package/dist/plugin/skills/apt-setup/SKILL.md +56 -0
  95. package/dist/plugin/skills/apt-verify/SKILL.md +20 -15
  96. package/dist/plugin/skills/apt-verify-proof/SKILL.md +146 -11
  97. package/dist/proof-report.d.ts.map +1 -1
  98. package/dist/proof-report.js +4 -1
  99. package/dist/proof-report.js.map +1 -1
  100. package/dist/types/config.d.ts +42 -4
  101. package/dist/types/config.d.ts.map +1 -1
  102. package/dist/types/qa-scoring.d.ts +45 -9
  103. package/dist/types/qa-scoring.d.ts.map +1 -1
  104. package/dist/types/qa-scoring.js +34 -13
  105. package/dist/types/qa-scoring.js.map +1 -1
  106. package/dist/types/state.d.ts +7 -2
  107. package/dist/types/state.d.ts.map +1 -1
  108. package/dist/types/task-record.d.ts +10 -2
  109. package/dist/types/task-record.d.ts.map +1 -1
  110. package/drivers/mobile/README.md +40 -0
  111. package/drivers/mobile/driver.mjs +106 -0
  112. package/drivers/mobile/manifest.json +49 -0
  113. package/package.json +138 -138
  114. package/prompts/inbox-clarification.md +17 -0
  115. package/prompts/inbox-triage.md +21 -0
  116. package/prompts/qa_orchestrator_agentic.md +18 -17
  117. package/prompts/qa_reviewer.md +17 -15
  118. package/skills/apt/SKILL.md +2 -2
  119. package/skills/apt-plan/SKILL.md +23 -0
  120. package/skills/apt-run/SKILL.md +1 -1
  121. package/skills/apt-setup/SKILL.md +56 -0
  122. package/skills/apt-verifier.md +7 -4
  123. package/skills/apt-verify/SKILL.md +20 -15
  124. package/skills/apt-verify-proof/SKILL.md +146 -11
  125. package/src/cli/commands/apply-recipe.mjs +105 -0
  126. package/src/cli/commands/mobile-prepare.mjs +151 -0
  127. package/src/cli/commands/recipe-diff.mjs +81 -0
  128. package/src/cli/commands/roadmap.mjs +54 -0
  129. package/src/cli/commands/verify-sandbox.mjs +231 -0
  130. package/src/cli/consistency/parse-qa.mjs +20 -4
  131. package/src/cli/consistency/rules/r5-verdict-consistency.mjs +11 -13
  132. package/src/cli/coverage-check/user-outcomes.mjs +52 -17
  133. package/src/cli/dispatch.mjs +27 -0
  134. package/src/cli/gate/gates/verify-approved.mjs +22 -81
  135. package/src/cli/install/mcp-server-specs.mjs +24 -4
  136. package/src/cli/roadmap/backend-adapter.mjs +231 -0
  137. package/src/cli/util/runtime-capabilities.mjs +67 -0
  138. package/src/cli/verify-proof/manifest-validator.mjs +15 -0
  139. package/src/cli/verify-proof/resolver.mjs +27 -7
  140. package/src/cli/verify-proof/sandbox/apply.mjs +401 -0
  141. package/src/cli/verify-proof/sandbox/gate-predicate.mjs +126 -0
  142. package/src/cli/verify-proof/sandbox/pattern-matcher.mjs +127 -0
  143. package/src/cli/verify-proof/sandbox/recipe-diff.mjs +208 -0
  144. package/src/cli/verify-proof/sandbox/sandbox-config.mjs +82 -0
  145. package/src/cli/verify-proof/sandbox/sandbox-schema.json +33 -0
  146. package/src/cli/verify-proof/sandbox/self-test.mjs +265 -0
  147. package/templates/config.json +10 -1
  148. package/templates/proof-verification.md +27 -8
  149. package/workflows/verify-proof.md +376 -302
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: apt:verify-proof
3
- description: "Visual proof-of-work verification screenshots, HTML report, optional multi-model review (BETA)"
3
+ description: "Outcome walkerdrives spec.md `## User Outcomes` one at a time, captures surface-appropriate evidence, derives a two-gate verdict ({approved, rejected, needs_human}). Fails closed on file-evidence for UI surfaces."
4
4
  apt-skill-version: {{APT_VERSION}}
5
5
  stage: verify
6
6
  intent: ship
@@ -105,14 +105,58 @@ disable the walk entirely (root-only behaviour, backwards compat).
105
105
  The `verification.runtimes[]` override stays the final escape hatch
106
106
  and is now usually unnecessary because the walk runs by default.
107
107
 
108
- ### Bundled drivers (5)
108
+ ### Bundled drivers (6)
109
109
 
110
110
  - **browser** (priority=100, ga) — Next.js / vanilla web frontends.
111
111
  - **electron** (priority=90, ga) — Electron desktop apps.
112
112
  - **tauri** (priority=85, ga) — Tauri desktop apps.
113
+ - **mobile** (priority=80, ga) — iOS + Android (Expo / React Native / native) via `mobile-mcp`. App build/launch is owned by `apt-tools mobile prepare`, not the driver.
113
114
  - **cli** (priority=60, ga) — headless CI, output-shape assertions.
114
115
  - **api** (priority=50, ga) — HTTP / JSON-API regression tests.
115
116
 
117
+ > **Precondition.** When `--parallel` is requested, the sandbox gate at apt-verify-proof/SKILL.md Step 2c runs BEFORE this step. An unverified sandbox exits with `{status:"error", code:"E_SANDBOX_UNVERIFIED", verdict:"needs_human", reason:"sandbox_unverified"}` without loading any MCP driver tools or entering the outcome-walker loop. See `docs/verify-proof-sandbox-patterns.md` for setup.
118
+
119
+ ### Deferred-tool discovery (Claude Code / OpenCode hosts) — A5 fix
120
+
121
+ On Claude Code and OpenCode hosts, MCP driver tools listed under
122
+ `drivers/<surface>/manifest.json :: transport.mcp_server_id` are
123
+ **deferred** — they live in the host's MCP server registry but their
124
+ schemas are NOT loaded by default. Before driving any UI-surface
125
+ outcome the workflow runner MUST load them via `ToolSearch(query='select:...')`.
126
+
127
+ **Worked example.** For the bundled `browser` driver (manifest field
128
+ `transport.mcp_server_id = "puppeteer"` → `mcp__puppeteer__*` tools):
129
+
130
+ ```
131
+ ToolSearch(query='select:mcp__puppeteer__browser_navigate,mcp__puppeteer__browser_click,mcp__puppeteer__browser_screenshot,mcp__puppeteer__browser_type')
132
+ ```
133
+
134
+ For the bundled `electron` driver (manifest field
135
+ `transport.mcp_server_id = "electron"` → `mcp__electron__*` tools):
136
+
137
+ ```
138
+ ToolSearch(query='select:mcp__electron__app_launch,mcp__electron__app_click,mcp__electron__app_screenshot,mcp__electron__app_type')
139
+ ```
140
+
141
+ For the bundled `mobile` driver (manifest field
142
+ `transport.mcp_server_id = "mobile-mcp"` → `mcp__mobile-mcp__*` tools):
143
+
144
+ ```
145
+ ToolSearch(query='select:mcp__mobile-mcp__mobile_click_on_screen_at_coordinates,mcp__mobile-mcp__mobile_swipe_on_screen,mcp__mobile-mcp__mobile_save_screenshot,mcp__mobile-mcp__mobile_type_keys')
146
+ ```
147
+
148
+ After the call, list the now-loaded tool names back to confirm they
149
+ appear in the active tool surface. If any required driver tool fails to
150
+ load, emit `result: "needs_human_with_transport"` on each affected
151
+ outcome — do NOT fall back to file-evidence. The legacy
152
+ "commit hash as proof" pattern is rejected by the proof_gate.
153
+
154
+ The manifest field is `transport.mcp_server_id` (and `transport.skill_id`
155
+ where applicable). The names `mcp_transport.tool_prefix` and
156
+ `transport.tool_prefix` are NOT real manifest fields — do not search
157
+ for them. This block is no-op on hosts whose entire MCP surface is
158
+ loaded eagerly (some Codex builds); `ToolSearch` is idempotent there.
159
+
116
160
  ### Install-time MCP provisioning (verification.provision_mcp)
117
161
 
118
162
  `apt-tools init` (and `/apt:update`, which routes through the same path)
@@ -149,10 +193,99 @@ IDL types, error taxonomy, and conformance kit live inside the framework
149
193
  itself under `packages/framework/src/driver-sdk/` — see that directory's
150
194
  public-api-lock test for the surface contract.
151
195
 
152
- ## Execution
196
+ ## Step 1 — First-run sandbox-setup hook (interactive `--parallel` only)
197
+
198
+ When the user invokes `/apt:verify-proof --parallel` on a project where
199
+ `verification.sandbox` is ABSENT from `.aperant/config.json` AND
200
+ `host.capabilities.structured_prompts === true` AND
201
+ `process.stdout.isTTY === true`, prompt:
202
+
203
+ ```
204
+ AskUserQuestion([
205
+ {
206
+ question: "Parallel /apt:verify-proof is not configured. Run setup now?",
207
+ header: "Sandbox Setup",
208
+ multiSelect: false,
209
+ options: [
210
+ { label: "Yes — run sandbox setup", description: "Walk recipe-diff with you, then apply-recipe --confirm --accept-all (after you've reviewed each change), then verify-sandbox before continuing" },
211
+ { label: "Cancel", description: "Exit; re-invoke without --parallel for single-instance verify-proof" }
212
+ ]
213
+ }
214
+ ])
215
+ ```
216
+
217
+ On `Yes`, dispatch `/apt:verify-proof setup` (the setup-mode flow) before
218
+ returning to the walker. On `Cancel`, exit with the same envelope the
219
+ Step 2c gate would produce so the user sees the structured remediation.
220
+
221
+ Non-interactive surfaces (`structured_prompts:false` OR
222
+ `stdout.isTTY:false`) print the one-line stderr tip and proceed:
223
+
224
+ ```
225
+ [apt] tip: run `/apt:verify-proof setup` to enable parallel verification
226
+ ```
227
+
228
+ then exit at the Step 2c gate. Never block CI / fan-out children on
229
+ this prompt (ID-08).
230
+
231
+ ## Step 2c — Sandbox gate (precondition for `--parallel`)
232
+
233
+ When `--parallel` is requested AND `.aperant/config.json :: verification.sandbox`
234
+ is present, this gate runs BEFORE Step 2.5 (Deferred-tool-load) and BEFORE
235
+ entering the Outcome Walker loop. It is a **precondition gate**, NOT a
236
+ per-outcome transport-failure gate.
237
+
238
+ **Dispatch on the state file** at
239
+ `.aperant/state/verify-proof-sandbox-verified.json`:
240
+
241
+ | condition | action |
242
+ |-----------|--------|
243
+ | `--parallel` requested + state file shows `verified:true` (verdict:`approved`) | **proceed** to Step 2.5; the parallel surface is now safe (each instance has its own SQLite path + userData dir + singleton-lock opt-out). |
244
+ | `--parallel` requested + state file missing OR `verified:false` | **exit BEFORE Step 2.5** with the JSON envelope below; do NOT load deferred MCP tools, do NOT initialize the outcome walker, do NOT write verification.json. |
245
+ | `--parallel` NOT requested | today's behavior unchanged — this gate is a no-op (Fast Path Guarantee ID-07). |
246
+
247
+ **Fail-loud envelope.** sandbox not verified — run `/apt:verify-proof setup` first:
248
+
249
+ ```json
250
+ {
251
+ "status": "error",
252
+ "code": "E_SANDBOX_UNVERIFIED",
253
+ "verdict": "needs_human",
254
+ "reason": "sandbox_unverified",
255
+ "remediation": "/apt:verify-proof setup"
256
+ }
257
+ ```
258
+
259
+ The single-line stderr message is: `sandbox not verified — run \`/apt:verify-proof setup\` first`.
260
+
261
+ **v2 vocabulary alignment.** The gate's failure envelope uses verify-proof
262
+ v2's existing `verdict:"needs_human"` vocabulary (ID-09) so reviewers,
263
+ downstream tools, and the e2e see one shape across both the per-run
264
+ envelope and per-outcome verification.json. We deliberately do NOT emit
265
+ per-outcome `needs_human_with_transport` rows for this case — sandbox
266
+ unverified is a precondition failure for the whole walker, not a
267
+ per-outcome transport failure for individual outcomes. Only the two
268
+ v2-shipped verdicts (`approved`, `needs_human`) appear in this gate's
269
+ envelope — the deprecated middle-band verdict v2 removed is not
270
+ referenced anywhere in this block (TD-07 grep guard locks this).
271
+
272
+ **Anti-queue invariant.** This gate fails loud rather than silently
273
+ serializing parallel invocations through a cooperative queue. The
274
+ `install/install-semaphore.mjs` queuing primitive is explicitly forbidden
275
+ in this code path (ID-01); a regression test grep-guards the invariant.
276
+
277
+ See `docs/verify-proof-sandbox-patterns.md` for the worked
278
+ electron-libsql adopter flow + the manual-integration template for
279
+ unrecognized runtimes.
280
+
281
+ ## Execution — Outcome Walker (v0.9.0)
153
282
 
154
283
  Execute the verify-proof workflow end-to-end using IDL verbs (the driver
155
- maps verbs to its transport — MCP server, local command, HTTP):
284
+ maps verbs to its transport — MCP server, local command, HTTP). The
285
+ workflow is an **outcome walker**: iterate `spec.md ## User Outcomes`
286
+ parent bullets one at a time, drive the stated bullet AND each inferred
287
+ child, capture surface-appropriate evidence, fix-loop on red, advance on
288
+ green.
156
289
 
157
290
  <execution_context>
158
291
  @packages/framework/workflows/verify-proof.md
@@ -168,15 +301,17 @@ to adopt the adversarial QA mindset. You are not a helpful assistant during veri
168
301
  you are trying to break things and prove they work.
169
302
 
170
303
  Respect ALL workflow gates:
171
- 1. Pre-check gate — all subtasks completed
172
- 2. Design-lint gate (C11) for every UI-touching task, run `apt-tools design-lint` against the implementation's generated HTML + `{task_dir}/mockups/mockup_final.html` (when present). The DESIGN.md contract's `antiPatterns` block is the authority. Violations MUST be surfaced in the VERIFICATION.md report as a distinct section; they are NOT blocking by themselves but they contribute to the visual-quality score.
173
- 3. Test generation gate — ALL tests written before execution
174
- 4. Test execution gate — ALL tests executed before scoring
175
- 5. Evidence gate — every test has evidence AND analysis
176
- 6. Scoring gate — scores derived from evidence, not assumed
304
+ 1. **Pre-check gate** — all subtasks completed.
305
+ 2. **User Outcomes gate**spec.md MUST carry `## User Outcomes` with `body_kind {outcomes, empty-with-note}`. NO fallback to feature-registry-derived tests.
306
+ 3. **Deferred-tool-load gate**on Claude Code / OpenCode hosts, MCP driver tools under `drivers/<surface>/manifest.json :: transport.mcp_server_id` MUST be loaded via `ToolSearch(query='select:...')` BEFORE driving any UI-surface outcome.
307
+ 4. **Automation gate**`automated_checks.{tests,typecheck,lint}.status {pass, fail}` (closed set, no `"enforced_at_commit"` dodge).
308
+ 5. **Outcome-walker gate** — every parent outcome AND every inferred child has its own test entry with evidence appropriate to its surface OR `result: "needs_human_with_transport"`.
309
+ 6. **Proof gate**UI-surface outcomes carrying `evidence: "file-evidence: ..."` are rejected as `needs_human_with_transport`. File-evidence is NEVER sufficient for any surface.
310
+ 7. **Verdict gate** — verdict is exactly one of `{approved, rejected, needs_human}`. The legacy `approved_with_notes` middle band is DELETED.
311
+ 8. **Design-lint gate (C11)** — for every UI-touching task, run `apt-tools design-lint` against the implementation's generated HTML + `{task_dir}/mockups/mockup_final.html` (when present). Violations contribute to the proof-gate evidence story but are NOT blocking on their own.
177
312
 
178
313
  Use the proof-verification template (@packages/framework/templates/proof-verification.md)
179
- for the VERIFICATION.md output format.
314
+ for the verification.json output schema.
180
315
 
181
316
  **Design-lint invocation** (when the task touched UI):
182
317
 
@@ -1 +1 @@
1
- {"version":3,"file":"proof-report.d.ts","sourceRoot":"","sources":["../src/proof-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAA0C,aAAa,EAAE,MAAM,eAAe,CAAA;AAiJ1F,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAkLjF;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAyErF;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CASpF"}
1
+ {"version":3,"file":"proof-report.d.ts","sourceRoot":"","sources":["../src/proof-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAA0C,aAAa,EAAE,MAAM,eAAe,CAAA;AAoJ1F,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAkLjF;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAyErF;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CASpF"}
@@ -16,13 +16,16 @@ function escapeHtml(str) {
16
16
  .replace(/"/g, '&quot;');
17
17
  }
18
18
  function statusBadge(status) {
19
+ // v0.9.0 — verdict enum is {approved, rejected, needs_human}.
20
+ // `needs_human` is amber; `approved-with-notes` is DELETED (no shim).
19
21
  const colors = {
20
22
  pass: '#22c55e',
21
23
  approved: '#22c55e',
22
24
  fail: '#ef4444',
23
25
  rejected: '#ef4444',
24
26
  partial: '#f59e0b',
25
- 'approved-with-notes': '#f59e0b',
27
+ needs_human: '#f59e0b',
28
+ needs_human_with_transport: '#f59e0b',
26
29
  skip: '#6b7280',
27
30
  error: '#ef4444',
28
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"proof-report.js","sourceRoot":"","sources":["../src/proof-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proof-report.js","sourceRoot":"","sources":["../src/proof-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,SAAS,UAAU,CAAC,GAAW;IAC9B,OAAO,GAAG;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IAClC,8DAA8D;IAC9D,sEAAsE;IACtE,MAAM,MAAM,GAA2B;QACtC,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,SAAS;QACtB,0BAA0B,EAAE,SAAS;QACrC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KAChB,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,CAAA;IACzC,OAAO,2BAA2B,KAAK,6GAA6G,UAAU,CAAC,MAAM,CAAC,SAAS,CAAA;AAChL,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAa,EAAE,SAAiB;IAC1E,MAAM,GAAG,GAAG,KAAK,GAAG,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IACzE,OAAO;;;+DAGuD,UAAU,CAAC,KAAK,CAAC;yCACvC,KAAK,MAAM,KAAK;;;6BAG5B,KAAK,sBAAsB,GAAG;;+DAEI,UAAU,CAAC,SAAS,CAAC;SAC3E,CAAA;AACT,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;IACjE,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IACxD,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IACvD,OAAO;;wBAEgB,KAAK,qBAAqB,IAAI;oCAClB,UAAU,CAAC,KAAK,CAAC;kEACa,UAAU,CAAC,MAAM,CAAC;SAC3E,CAAA;AACT,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,KAAa;IACpD,OAAO;;6EAEqE,UAAU,CAAC,KAAK,CAAC;2MAC6G,UAAU,CAAC,MAAM,CAAC;aAChN,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAiB;IAC1C,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,EAAE,CAAA;IAC/B,OAAO;;8EAEsE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;qCAChE,KAAK,CAAC,SAAS,6EAA6E,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;SAC/I,CAAA;AACT,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IACrC,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC;uDAC2C,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;;MAEtI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;oCACK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;MACtG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,gEAAgE,KAAK,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,EAAE;UAC3G,CAAC,CAAA;IAEV,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC;;YAED,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;8BACpB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;oBAC9C,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;UAC5C,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAA;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IAEpC,OAAO;;;MAGF,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;2CACU,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;mEACA,SAAS,IAAI,KAAK;;KAEhF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,uEAAuE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;KAC7H,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,qEAAqE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;KACnI,SAAS;SACL,CAAA;AACT,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB;IAC3C,MAAM,cAAc,GAA2B;QAC9C,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;KAChB,CAAA;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;IAE3D,OAAO;;;8BAGsB,KAAK,oFAAoF,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;MAC7I,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;kDACgB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;+EACI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC;;wFAE3B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;6CACnE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;KAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,gFAAgF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;QAC1J,CAAC,CAAC,EACJ;SACM,CAAA;AACT,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,QAAuB,EAAE,KAAc;IACxE,MAAM,WAAW,GAAG,KAAK,IAAI,kBAAkB,QAAQ,CAAC,OAAO,EAAE,CAAA;IACjE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAA;IAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAA;IAClF,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAA;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAA;IAEhD,MAAM,UAAU,GAAG;QAClB,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;QAC1F,WAAW,CACV,YAAY,EACZ,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAChC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAC1C,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,SAAS;YACrD,CAAC,CAAC,OAAO,CACV;QACD,WAAW,CACV,MAAM,EACN,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAC3B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,OAAO,CACzF;KACD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEV,MAAM,cAAc,GAAG,UAAU;SAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;SACjE,IAAI,CAAC,EAAE,CAAC,CAAA;IACV,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClE,MAAM,YAAY,GACjB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAElF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;QACjC,CAAC,CAAC;oDACgD,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;;oEAErG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;;MAEvG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;cAC9C,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;;SAEzD;QACP,CAAC,CAAC,EAAE,CAAA;IAEL,MAAM,eAAe,GAAG;QACvB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9F,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;YAC/B,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;YAChE,CAAC,CAAC,EAAE;QACL,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;KACtF,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEV,OAAO;;;;;SAKC,UAAU,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CzB,UAAU,CAAC,WAAW,CAAC;;SAErB,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC/B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;;4BAEjD,WAAW,CAAC,QAAQ,CAAC;;;;8BAInB,cAAc,IAAI,aAAa;;;;8BAI/B,QAAQ,CAAC,SAAS,CAAC,UAAU;;;;;;;EAOzD,UAAU;;;;;IAKR,cAAc;;;;;;;IAOd,UAAU;;GAEX,eAAe;;;EAIjB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC;;;GAGD,YAAY;OACR;QACL,CAAC,CAAC,EACJ;;;;GAIG,YAAY,IAAI,2JAA2J;;;EAI7K,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC;;;;IAIA,QAAQ,CAAC,SAAS,CAAC,MAAM;aACzB,GAAG,CACH,CAAC,KAAK,EAAE,EAAE,CAAC;;6BAEc,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,kFAAkF,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;mDACtL,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;+DACV,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;SACnF,CACL;aACA,IAAI,CAAC,EAAE,CAAC;;OAEL;QACL,CAAC,CAAC,EACJ;;;;;;;;QAQQ,CAAA;AACR,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CAAC,QAAuB,EAAE,KAAc;IAC5E,MAAM,WAAW,GAAG,KAAK,IAAI,iBAAiB,QAAQ,CAAC,OAAO,EAAE,CAAA;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAA;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,CAAA;IAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CACT,eAAe,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,QAAQ,CAAC,KAAK,gBAAgB,IAAI,EAAE,CACzG,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,YAAY;IACZ,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,IAAI,CAAC,CAAA;IAClE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvB,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAA;IAC7F,KAAK,CAAC,IAAI,CACT,YAAY,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1J,CAAA;IACD,KAAK,CAAC,IAAI,CACT,WAAW,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAClI,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,WAAW;IACX,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAA;YACrE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,SAAS,CAAC,CAAA;QACpF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACf,CAAC;IAED,SAAS;IACT,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACpC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;QACzD,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;QACzD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CACT,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CACpF,CAAA;QACF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CACT,sBAAsB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAC5G,CAAA;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACf,CAAC;IAED,SAAS;IACT,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACvB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,QAAQ,SAAS,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,oBAAoB,CAAC,QAAuB,EAAE,KAAc;IAC3E,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAEtD,yEAAyE;IACzE,OAAO,IAAI,CAAC,OAAO,CAClB,SAAS,EACT,yDAAyD,YAAY,sBAAsB,CAC3F,CAAA;AACF,CAAC"}
@@ -95,12 +95,17 @@ export interface GraceMode {
95
95
  /** Temporarily lowered Coverage threshold during grace (default: 3) */
96
96
  coverage_threshold_override: number;
97
97
  }
98
- /** Quality assurance thresholds and behavior */
98
+ /**
99
+ * Quality assurance thresholds and behavior.
100
+ *
101
+ * v0.9.0 (verify-proof-v2-outcome-walker_27-05-26) — `approved_with_notes_threshold`
102
+ * is DELETED. Reading a legacy config value at this key is silently dropped
103
+ * (logged once); see `src/cli/consistency/parse-qa.mjs` for the migration error
104
+ * surface on stale `qa_signoff.json` files.
105
+ */
99
106
  export interface QAConfig {
100
- /** Minimum score (1-10) for "approved" verdict */
107
+ /** Minimum score (1-10) for "approved" verdict (informational rationale only in v0.9.0+) */
101
108
  approved_threshold: number;
102
- /** Minimum score (1-10) for "approved with notes" verdict */
103
- approved_with_notes_threshold: number;
104
109
  /** Require visual proof capture for UI changes */
105
110
  require_proof_for_ui: boolean;
106
111
  /** Max fix-verify iterations before failing */
@@ -110,6 +115,27 @@ export interface QAConfig {
110
115
  }
111
116
  /** Detected or user-specified project archetype */
112
117
  export type ProjectType = 'web-app' | 'api-service' | 'cli-tool' | 'library' | 'monorepo' | 'unknown';
118
+ /**
119
+ * Sandbox-setup opt-in for parallel /apt:verify-proof (milestone
120
+ * `fw-sandbox-parallel-verify-proof`). Mirrors the JSON-Schema at
121
+ * `packages/framework/src/cli/verify-proof/sandbox/sandbox-schema.json`.
122
+ *
123
+ * - `enabled`: master switch; false suppresses the gate without removing
124
+ * recipe artifacts.
125
+ * - `recipeId` + `recipeVersion`: identifies which recipe was applied.
126
+ * Read by `apt-tools recipe-diff` to dispatch on already-applied /
127
+ * incremental / incompatible cases via the recipe's
128
+ * `compatibleWithApplied[]` field (ID-05).
129
+ * - `appliedAt`, `appliedHash`: optional audit metadata recorded at apply
130
+ * time. Drift detection uses `appliedHash`.
131
+ */
132
+ export interface SandboxConfig {
133
+ enabled: boolean;
134
+ recipeId: string;
135
+ recipeVersion: string;
136
+ appliedAt?: string;
137
+ appliedHash?: string;
138
+ }
113
139
  /** Full v2 config schema — stored at .aperant/config.json */
114
140
  export interface AperantConfig {
115
141
  version: number;
@@ -123,6 +149,18 @@ export interface AperantConfig {
123
149
  evidence_capture: boolean;
124
150
  max_iterations: number;
125
151
  strict: boolean;
152
+ /**
153
+ * Sandbox-setup opt-in (parallel /apt:verify-proof). Optional.
154
+ * Absent = today's behavior, byte-identical Fast Path Guarantee (ID-07).
155
+ * Present = the sandbox precondition gate at apt-verify-proof/SKILL.md
156
+ * Step 2c reads the verified state file and gates `--parallel` runs on
157
+ * the v2 verdict envelope (verdict:'needs_human', reason:'sandbox_unverified').
158
+ *
159
+ * Written by `apt-tools apply-recipe --confirm`; consumed by the gate
160
+ * and the first-run hook. See packages/framework/src/cli/verify-proof/
161
+ * sandbox/sandbox-schema.json for the JSON-schema mirror.
162
+ */
163
+ sandbox?: SandboxConfig;
126
164
  };
127
165
  multi_model: {
128
166
  enabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -7,29 +7,43 @@ export interface QADimensionScore {
7
7
  score: number;
8
8
  rationale: string;
9
9
  }
10
- /** Threshold constants for QA verdict derivation */
10
+ /**
11
+ * Threshold constants for QA verdict derivation.
12
+ *
13
+ * v0.9.0 (verify-proof-v2-outcome-walker_27-05-26) — `approved_with_notes`
14
+ * is DELETED. Dimensions are now informational rationale only; the verdict
15
+ * derives from the two-gate envelope (`automation_gate` + `proof_gate`),
16
+ * not per-dimension minimums.
17
+ */
11
18
  export declare const QA_DIMENSION_THRESHOLDS: {
12
19
  readonly approved: 7;
13
- readonly approved_with_notes: 5;
14
20
  };
15
- /** Scored QA signoff replaces boolean approved/rejected with dimension scores */
21
+ /** Closed set of QA verdicts in v0.9.0+. `approved_with_notes` is deleted. */
22
+ export type QAVerdict = 'approved' | 'rejected' | 'needs_human';
23
+ /** The two boolean gates that drive verdict derivation. */
24
+ export type GateStatus = 'pass' | 'fail';
25
+ /** Scored QA signoff — verdict + checks + dimensions + findings */
16
26
  export interface ScoredQASignoff {
17
- status: 'approved' | 'approved-with-notes' | 'rejected';
27
+ status: QAVerdict;
18
28
  timestamp: string;
19
29
  iterations: number;
20
30
  dimensions: QADimensionScore[];
31
+ gates: {
32
+ automation_gate: GateStatus;
33
+ proof_gate: GateStatus;
34
+ };
21
35
  checks: {
22
36
  tests: {
23
- status: 'pass' | 'fail';
37
+ status: GateStatus;
24
38
  count: number;
25
39
  failures: string[];
26
40
  };
27
41
  typecheck: {
28
- status: 'pass' | 'fail';
42
+ status: GateStatus;
29
43
  errors: string[];
30
44
  };
31
45
  lint: {
32
- status: 'pass' | 'fail';
46
+ status: GateStatus;
33
47
  warnings: number;
34
48
  };
35
49
  };
@@ -40,6 +54,28 @@ export interface ScoredQASignoff {
40
54
  }>;
41
55
  notes: string;
42
56
  }
43
- /** Derive verdict from dimension scores */
44
- export declare function deriveVerdict(scores: QADimensionScore[]): ScoredQASignoff['status'];
57
+ /**
58
+ * Derive the v0.9.0 two-gate verdict from `{automation_gate, proof_gate}`.
59
+ *
60
+ * The legacy per-dimension `deriveVerdict(scores: QADimensionScore[])` is
61
+ * deleted along with `approved_with_notes` — dimensions are now informational
62
+ * rationale on the report.
63
+ *
64
+ * Rules:
65
+ * - `automation_gate: fail` → `rejected` (regardless of `proof_gate`).
66
+ * - `proof_gate: fail` → `needs_human` (signals UI-surface outcomes
67
+ * without proof) when automation is green; this aligns with the
68
+ * workflow-level rule "any test with needs_human_with_transport rolls
69
+ * up to needs_human" (callers that detect a hard fail without a
70
+ * transport hole should pass `proof_gate: 'fail'`).
71
+ * - Both gates pass → `approved`.
72
+ *
73
+ * Per AC13 (spec.md §3): the workflow's Step 7c rolls a `proof_gate: fail`
74
+ * caused by a UI-surface escape hatch up to `needs_human`; callers driving
75
+ * deriveVerdict from `{automation_gate, proof_gate}` get the same answer.
76
+ */
77
+ export declare function deriveVerdict(input: {
78
+ automation_gate: GateStatus;
79
+ proof_gate: GateStatus;
80
+ }): QAVerdict;
45
81
  //# sourceMappingURL=qa-scoring.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"qa-scoring.d.ts","sourceRoot":"","sources":["../../src/types/qa-scoring.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,eAAO,MAAM,aAAa,2EAKhB,CAAA;AACV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,WAAW,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,oDAAoD;AACpD,eAAO,MAAM,uBAAuB;;;CAI1B,CAAA;AAEV,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,UAAU,GAAG,qBAAqB,GAAG,UAAU,CAAA;IACvD,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,gBAAgB,EAAE,CAAA;IAC9B,MAAM,EAAE;QACP,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;QACrE,SAAS,EAAE;YAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;QACxD,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KACnD,CAAA;IACD,MAAM,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAA;QACzC,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;KACnB,CAAC,CAAA;IACF,KAAK,EAAE,MAAM,CAAA;CACb;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAMnF"}
1
+ {"version":3,"file":"qa-scoring.d.ts","sourceRoot":"","sources":["../../src/types/qa-scoring.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,eAAO,MAAM,aAAa,2EAKhB,CAAA;AACV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,WAAW,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;CAE1B,CAAA;AAEV,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAA;AAE/D,2DAA2D;AAC3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;AAExC,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,gBAAgB,EAAE,CAAA;IAC9B,KAAK,EAAE;QACN,eAAe,EAAE,UAAU,CAAA;QAC3B,UAAU,EAAE,UAAU,CAAA;KACtB,CAAA;IACD,MAAM,EAAE;QACP,KAAK,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;QAChE,SAAS,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;QACnD,IAAI,EAAE;YAAE,MAAM,EAAE,UAAU,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAA;KAC9C,CAAA;IACD,MAAM,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAA;QACzC,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;KACnB,CAAC,CAAA;IACF,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACpC,eAAe,EAAE,UAAU,CAAA;IAC3B,UAAU,EAAE,UAAU,CAAA;CACtB,GAAG,SAAS,CAIZ"}
@@ -5,21 +5,42 @@ export const QA_DIMENSIONS = [
5
5
  'code_quality',
6
6
  'test_coverage',
7
7
  ];
8
- /** Threshold constants for QA verdict derivation */
8
+ /**
9
+ * Threshold constants for QA verdict derivation.
10
+ *
11
+ * v0.9.0 (verify-proof-v2-outcome-walker_27-05-26) — `approved_with_notes`
12
+ * is DELETED. Dimensions are now informational rationale only; the verdict
13
+ * derives from the two-gate envelope (`automation_gate` + `proof_gate`),
14
+ * not per-dimension minimums.
15
+ */
9
16
  export const QA_DIMENSION_THRESHOLDS = {
10
- approved: 7, // All dimensions >= 7 = approved
11
- approved_with_notes: 5, // All dimensions >= 5 = approved-with-notes
12
- // Any dimension < 5 = rejected
17
+ approved: 7, // Retained as informational; the verdict derivation no longer reads it.
13
18
  };
14
- /** Derive verdict from dimension scores */
15
- export function deriveVerdict(scores) {
16
- if (scores.length === 0)
19
+ /**
20
+ * Derive the v0.9.0 two-gate verdict from `{automation_gate, proof_gate}`.
21
+ *
22
+ * The legacy per-dimension `deriveVerdict(scores: QADimensionScore[])` is
23
+ * deleted along with `approved_with_notes` — dimensions are now informational
24
+ * rationale on the report.
25
+ *
26
+ * Rules:
27
+ * - `automation_gate: fail` → `rejected` (regardless of `proof_gate`).
28
+ * - `proof_gate: fail` → `needs_human` (signals UI-surface outcomes
29
+ * without proof) when automation is green; this aligns with the
30
+ * workflow-level rule "any test with needs_human_with_transport rolls
31
+ * up to needs_human" (callers that detect a hard fail without a
32
+ * transport hole should pass `proof_gate: 'fail'`).
33
+ * - Both gates pass → `approved`.
34
+ *
35
+ * Per AC13 (spec.md §3): the workflow's Step 7c rolls a `proof_gate: fail`
36
+ * caused by a UI-surface escape hatch up to `needs_human`; callers driving
37
+ * deriveVerdict from `{automation_gate, proof_gate}` get the same answer.
38
+ */
39
+ export function deriveVerdict(input) {
40
+ if (input.automation_gate === 'fail')
17
41
  return 'rejected';
18
- const min = Math.min(...scores.map((s) => s.score));
19
- if (min >= QA_DIMENSION_THRESHOLDS.approved)
20
- return 'approved';
21
- if (min >= QA_DIMENSION_THRESHOLDS.approved_with_notes)
22
- return 'approved-with-notes';
23
- return 'rejected';
42
+ if (input.proof_gate === 'fail')
43
+ return 'needs_human';
44
+ return 'approved';
24
45
  }
25
46
  //# sourceMappingURL=qa-scoring.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qa-scoring.js","sourceRoot":"","sources":["../../src/types/qa-scoring.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,cAAc;IACd,aAAa;IACb,cAAc;IACd,eAAe;CACN,CAAA;AAUV,oDAAoD;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACtC,QAAQ,EAAE,CAAC,EAAE,iCAAiC;IAC9C,mBAAmB,EAAE,CAAC,EAAE,4CAA4C;IACpE,+BAA+B;CACtB,CAAA;AAqBV,2CAA2C;AAC3C,MAAM,UAAU,aAAa,CAAC,MAA0B;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAA;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACnD,IAAI,GAAG,IAAI,uBAAuB,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAA;IAC9D,IAAI,GAAG,IAAI,uBAAuB,CAAC,mBAAmB;QAAE,OAAO,qBAAqB,CAAA;IACpF,OAAO,UAAU,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"qa-scoring.js","sourceRoot":"","sources":["../../src/types/qa-scoring.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,cAAc;IACd,aAAa;IACb,cAAc;IACd,eAAe;CACN,CAAA;AAUV;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACtC,QAAQ,EAAE,CAAC,EAAE,wEAAwE;CAC5E,CAAA;AA+BV;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,KAG7B;IACA,IAAI,KAAK,CAAC,eAAe,KAAK,MAAM;QAAE,OAAO,UAAU,CAAA;IACvD,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM;QAAE,OAAO,aAAa,CAAA;IACrD,OAAO,UAAU,CAAA;AAClB,CAAC"}
@@ -24,12 +24,17 @@ export interface ActiveTask {
24
24
  phase: TaskPhase;
25
25
  progress: TaskProgress;
26
26
  }
27
- /** A task that has been completed */
27
+ /**
28
+ * A task that has been completed.
29
+ *
30
+ * v0.9.0 — `qa_verdict` is the closed set `{approved, rejected, needs_human}`.
31
+ * The legacy `approved_with_notes` middle band is DELETED (no shim).
32
+ */
28
33
  export interface CompletedTask {
29
34
  id: string;
30
35
  description: string;
31
36
  completed_at: string;
32
- qa_verdict: 'approved' | 'approved_with_notes' | 'rejected';
37
+ qa_verdict: 'approved' | 'rejected' | 'needs_human';
33
38
  commits: string[];
34
39
  }
35
40
  /** A decision recorded during task execution */
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D,sCAAsC;AACtC,MAAM,MAAM,SAAS,GAClB,YAAY,GACZ,UAAU,GACV,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,QAAQ,CAAA;AAEX,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,oDAAoD;AACpD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,YAAY,CAAA;CACtB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,GAAG,qBAAqB,GAAG,UAAU,CAAA;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,UAAU,CAAC,EAAE;QACZ,MAAM,EAAE,OAAO,CAAA;QACf,wBAAwB,EAAE,MAAM,CAAA;QAChC,YAAY,EAAE,MAAM,CAAA;KACpB,CAAA;CACD"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D,sCAAsC;AACtC,MAAM,MAAM,SAAS,GAClB,YAAY,GACZ,UAAU,GACV,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,QAAQ,CAAA;AAEX,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,oDAAoD;AACpD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,YAAY,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa,CAAA;IACnD,OAAO,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,UAAU,CAAC,EAAE;QACZ,MAAM,EAAE,OAAO,CAAA;QACf,wBAAwB,EAAE,MAAM,CAAA;QAChC,YAAY,EAAE,MAAM,CAAA;KACpB,CAAA;CACD"}
@@ -62,13 +62,21 @@ export interface TaskRecord {
62
62
  */
63
63
  pr_url?: string;
64
64
  }
65
- /** Completed task row stored under `state.completed_tasks[]`. */
65
+ /**
66
+ * Completed task row stored under `state.completed_tasks[]`.
67
+ *
68
+ * v0.9.0 — `qa_verdict` is the closed set
69
+ * `{approved, rejected, needs_human, completed}`. The legacy
70
+ * `approved_with_notes` middle band is DELETED (no shim). `completed`
71
+ * remains as a phase-only marker for tasks that closed without a
72
+ * verify-proof verdict.
73
+ */
66
74
  export interface CompletedTaskRecord {
67
75
  id: string;
68
76
  description: string;
69
77
  scope: Scope;
70
78
  completed_at: string;
71
- qa_verdict: 'approved' | 'approved_with_notes' | 'rejected' | 'completed';
79
+ qa_verdict: 'approved' | 'rejected' | 'needs_human' | 'completed';
72
80
  commits: string[];
73
81
  lifecycle_phase?: LifecyclePhase;
74
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-record.d.ts","sourceRoot":"","sources":["../../src/types/task-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D;iEACiE;AACjE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE;QACL,KAAK,EAAE,KAAK,CAAA;QACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,EAAE,EAAE;QACH,KAAK,EAAE,KAAK,CAAA;QACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;qEACiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,eAAe,EAAE,cAAc,CAAA;IAC/B,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,QAAQ,EAAE,YAAY,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,GAAG,qBAAqB,GAAG,UAAU,GAAG,WAAW,CAAA;IACzE,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,eAAe,CAAC,EAAE,cAAc,CAAA;CAChC"}
1
+ {"version":3,"file":"task-record.d.ts","sourceRoot":"","sources":["../../src/types/task-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D;iEACiE;AACjE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE;QACL,KAAK,EAAE,KAAK,CAAA;QACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,EAAE,EAAE;QACH,KAAK,EAAE,KAAK,CAAA;QACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;qEACiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,eAAe,EAAE,cAAc,CAAA;IAC/B,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,QAAQ,EAAE,YAAY,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,CAAA;IACjE,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,eAAe,CAAC,EAAE,cAAc,CAAA;CAChC"}
@@ -0,0 +1,40 @@
1
+ # mobile driver
2
+
3
+ Unified iOS + Android UI-driving verify-proof driver. Wraps the
4
+ [`mobile-mcp`](https://github.com/mobile-next/mobile-mcp) MCP server
5
+ (mobile-next, Apache-2.0) — one backend for both platforms, driven via the
6
+ native accessibility tree with screenshot-coordinate fallback (ADB for
7
+ Android, idb for iOS).
8
+
9
+ - **Targets:** `ios`, `android`, `expo`, `react-native`.
10
+ - **Transport:** `{ mcp_server_id: "mobile-mcp" }` (provisioned as
11
+ `npx -y @mobilenext/mobile-mcp@latest`).
12
+ - **Platform selection:** chosen INSIDE the tool call
13
+ (`mobile_list_available_devices` → device id), NOT at resolver time — that
14
+ is why one driver covers both platforms (decision D-01).
15
+
16
+ ## Lifecycle boundary
17
+
18
+ This driver only **drives UI + captures evidence** against a foregrounded,
19
+ JS-ready app. The app lifecycle — build, install, launch, Metro start, and
20
+ the launch-readiness gate — is owned by `apt-tools mobile prepare`
21
+ (decisions D-03/D-04), which runs BEFORE any verb is dispatched.
22
+
23
+ ## System prerequisites (validated, not installed)
24
+
25
+ `mobile-mcp` is pure npm, but the underlying device toolchain is NOT:
26
+
27
+ - **iOS:** `idb-companion` (`brew install idb-companion`) + Xcode + a booted
28
+ Simulator.
29
+ - **Android:** Android SDK + `adb` (`$ANDROID_HOME/platform-tools`) + an
30
+ emulator/device.
31
+
32
+ These are validated by the manifest's `preflight[]` via
33
+ `apt-tools driver doctor` (which records `missing_deps` with guidance) — the
34
+ framework never auto-installs them (decision D-09).
35
+
36
+ ## Out of scope
37
+
38
+ Real-device runs and Mac Catalyst (separate RFCs). XcodeBuildMCP is an
39
+ optional future escalation for native-Xcode-heavy iOS builds, not a
40
+ dependency of this driver (decision D-02).