codex-orchestrator 2.0.5 → 2.0.7
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/CHANGELOG.md +57 -0
- package/README.md +6 -2
- package/dist/src/v2/acceptance-proof.d.ts +7 -0
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +111 -5
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/adapters/command.d.ts +2 -0
- package/dist/src/v2/adapters/command.d.ts.map +1 -1
- package/dist/src/v2/adapters/command.js +67 -8
- package/dist/src/v2/adapters/command.js.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.js +16 -5
- package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
- package/dist/src/v2/android-proof-runner.d.ts +93 -0
- package/dist/src/v2/android-proof-runner.d.ts.map +1 -0
- package/dist/src/v2/android-proof-runner.js +921 -0
- package/dist/src/v2/android-proof-runner.js.map +1 -0
- package/dist/src/v2/checked-change.d.ts +1 -1
- package/dist/src/v2/checked-change.d.ts.map +1 -1
- package/dist/src/v2/checked-change.js +3 -2
- package/dist/src/v2/checked-change.js.map +1 -1
- package/dist/src/v2/code-review-report.d.ts +1 -2
- package/dist/src/v2/code-review-report.d.ts.map +1 -1
- package/dist/src/v2/code-review-report.js +6 -11
- package/dist/src/v2/code-review-report.js.map +1 -1
- package/dist/src/v2/config.d.ts +13 -0
- package/dist/src/v2/config.d.ts.map +1 -1
- package/dist/src/v2/config.js +57 -1
- package/dist/src/v2/config.js.map +1 -1
- package/dist/src/v2/containment.d.ts +0 -52
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +1 -195
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/direct-delivery.d.ts +11 -2
- package/dist/src/v2/direct-delivery.d.ts.map +1 -1
- package/dist/src/v2/direct-delivery.js +62 -17
- package/dist/src/v2/direct-delivery.js.map +1 -1
- package/dist/src/v2/immutable-workflow-publisher.js +6 -1
- package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
- package/dist/src/v2/implementation-reviewer.d.ts +1 -1
- package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
- package/dist/src/v2/implementation-reviewer.js +1 -2
- package/dist/src/v2/implementation-reviewer.js.map +1 -1
- package/dist/src/v2/mobile-lease.d.ts +9 -0
- package/dist/src/v2/mobile-lease.d.ts.map +1 -1
- package/dist/src/v2/mobile-lease.js +27 -3
- package/dist/src/v2/mobile-lease.js.map +1 -1
- package/dist/src/v2/proof-report.d.ts +1 -1
- package/dist/src/v2/proof-report.d.ts.map +1 -1
- package/dist/src/v2/proof-report.js +6 -4
- package/dist/src/v2/proof-report.js.map +1 -1
- package/dist/src/v2/run-issue.d.ts +18 -1
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +504 -109
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-store.d.ts +17 -1
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +30 -4
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +84 -27
- package/dist/src/v2/runtime.js.map +1 -1
- package/docs/deep-dive.md +25 -11
- package/internal-workflow/manifest.json +1 -1
- package/internal-workflow/schemas/proof-report-v1.json +1 -1
- package/internal-workflow/skills/acceptance-proof/SKILL.md +1 -1
- package/internal-workflow/skills/acceptance-proof/references/android.md +6 -6
- package/internal-workflow/skills/implementation-spec-maker/SKILL.md +10 -8
- package/internal-workflow/skills/implementation-spec-review/SKILL.md +17 -3
- package/internal-workflow/skills/implementation-spec-review/evals/evals.json +30 -0
- package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +30 -6
- package/package.json +1 -2
- package/internal-workflow/skills/acceptance-proof/tools/android-lease.mjs +0 -280
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"anyOf":[{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"passed"},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","const":"passed"},"confidence":{"type":"string","const":"high"},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","command","status","summary","outputSha256"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"command":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","const":"passed"},"summary":{"type":"string","minLength":1,"maxLength":4096},"outputSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"artifacts":{"type":"array","maxItems":256,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["generated-file","screenshot"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean","const":false},"description":{"type":"string","minLength":1,"maxLength":4096}}}]}},"visualEvidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}}]},"findings":{"type":"array","maxItems":0,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"type":"null"}}},{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","enum":["needs-rework","external-block"]},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed","unknown"]},"confidence":{"type":"string","enum":["high","medium","low"]},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","command","status","summary","outputSha256"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"command":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"outputSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"artifacts":{"type":"array","maxItems":256,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["generated-file","screenshot"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean","const":false},"description":{"type":"string","minLength":1,"maxLength":4096}}}]}},"visualEvidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}}]},"findings":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["kind","summary","attempted"],"properties":{"kind":{"type":"string","enum":["credential","tool","service","product-decision"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"attempted":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}]}}}]}}}
|
|
1
|
+
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"anyOf":[{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"passed"},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","const":"passed"},"confidence":{"type":"string","const":"high"},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","command","status","summary","outputSha256"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"command":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","unchanged-failure"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"outputSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"artifacts":{"type":"array","maxItems":256,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["generated-file","screenshot"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean","const":false},"description":{"type":"string","minLength":1,"maxLength":4096}}}]}},"visualEvidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}}]},"findings":{"type":"array","maxItems":0,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"type":"null"}}},{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","enum":["needs-rework","external-block"]},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed","unknown"]},"confidence":{"type":"string","enum":["high","medium","low"]},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","command","status","summary","outputSha256"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"command":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed","unchanged-failure"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"outputSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"artifacts":{"type":"array","maxItems":256,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["generated-file","screenshot"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean","const":false},"description":{"type":"string","minLength":1,"maxLength":4096}}}]}},"visualEvidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}}]},"findings":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["kind","summary","attempted"],"properties":{"kind":{"type":"string","enum":["credential","tool","service","product-decision"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"attempted":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}]}}}]}}}
|
|
@@ -7,7 +7,7 @@ description: Independently prove a checked change against frozen acceptance crit
|
|
|
7
7
|
|
|
8
8
|
Independently prove the checked change against every frozen acceptance criterion. Inspect the issue snapshot, actual diff, configured check receipts, and available repository evidence. Classify each criterion as non-visual or visual from the criterion and changed behavior, preserve every frozen criterion ID, and require concrete evidence for every declared surface.
|
|
9
9
|
|
|
10
|
-
For a browser surface, read and follow [references/browser.md](references/browser.md). For Android, follow [references/android.md](references/android.md) and
|
|
10
|
+
For a browser surface, read and follow [references/browser.md](references/browser.md). For Android, follow [references/android.md](references/android.md) and inspect only the Runner-prepared artifacts named in the prompt; never invoke Android device, emulator, Flutter, or lease helpers. For iOS, follow [references/ios.md](references/ios.md) and use only `tools/ios-lease.mjs`. Resolve every reference/helper from this exact immutable skill snapshot and use only the proof-bound arguments supplied by the runner. Apply the selected platform procedure's real-workflow, state capture, diagnostics, freshness, analysis, and artifact-classification requirements.
|
|
11
11
|
|
|
12
12
|
Do not edit product code, repair the implementation, change lifecycle state, or perform publication. Do not commit, push, open or edit a pull request, mutate GitHub labels/comments, publish packages, deploy, or use external credentials. Do not copy or print credential bytes or auth/secret paths. Report a typed external blocker only when proof genuinely depends on unavailable external authority.
|
|
13
13
|
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Use Android proof only when a frozen criterion describes user-visible Android behavior or the checked diff changes that behavior. Keep the exact frozen criterion IDs and declare `decision.mode: visual`, target `android`, and an `android` surface for each applicable criterion.
|
|
4
4
|
|
|
5
|
-
1.
|
|
6
|
-
2.
|
|
7
|
-
3.
|
|
8
|
-
4.
|
|
9
|
-
5.
|
|
5
|
+
1. Never invoke `adb`, `emulator`, `flutter run`, or a lease helper. Android device authority belongs exclusively to the trusted Runner.
|
|
6
|
+
2. Inspect the proof-bound Runner receipt and only the exact Runner-owned artifact paths supplied in the operation prompt. When the prompt instead contains an Android preparation warning, continue with every available non-visual check, preserve the unfinished UI proof as a residual risk, and do not turn emulator/tool startup failure alone into a delivery blocker.
|
|
7
|
+
3. Require the Runner receipt to bind the current proof ID, checked-change digest, configured check IDs, fresh APK digest, build output hash, capture time, and exact screenshot, hierarchy, device-log, and lease artifact refs.
|
|
8
|
+
4. Analyze the fresh screenshot and matching UI hierarchy for the final workflow state opened by the configured Runner entrypoint. Do not infer interactions or states that the artifacts do not show.
|
|
9
|
+
5. Require the device log and active lease artifact to bind the captured application PID and Runner-created emulator. The Runner releases and stops only that emulator after terminal proof settlement.
|
|
10
10
|
6. Review spacing, padding, clipping, overlap, alignment, and the specific visual complaint. Separately review visible user-facing copy against the frozen criterion. Link both reviews to exact evidence IDs.
|
|
11
11
|
7. Write every artifact below the runner-provided proof directory. Mark the UI hierarchy, device log, and lease record `publishable: false`. Mark a screenshot publishable only when it contains no credential, secret, private user path, or unrelated account data. Never place serials, application IDs, PIDs, lease tokens, local paths, credential bytes, authorization data, environment values, or user-owned device data in the publishable receipt.
|
|
12
12
|
8. Build the exact generated Proof Report. Each Android criterion must reference both screenshot and hierarchy evidence. Visual evidence must include workflow entrypoint/steps/final state, Android capture dimensions, device-log ref, lease ref, `capturedAfterFinalInteraction: true`, and evidence-linked layout/copy reviews.
|
|
13
13
|
|
|
14
|
-
The
|
|
14
|
+
The Runner releases the lease and stops its emulator after terminal proof settlement. A screenshot alone, missing hierarchy/log/lease/Runner receipt, stale evidence, changed application PID, guessed interaction, rewritten criterion, unanalysed image, or secret-bearing artifact cannot count as completed Android proof. Return `needs-rework` for product defects. Treat emulator/tool startup failure as a warning and unfinished UI proof; reserve `external-block` for non-Android authority that the delivery contract still requires.
|
|
@@ -18,9 +18,11 @@ Create or revise an execution-ready specification for a downstream coding agent.
|
|
|
18
18
|
## Preflight
|
|
19
19
|
|
|
20
20
|
1. Read the source authority, applicable repository instructions, and only the evidence needed to confirm targets, commands, contracts, consumers, fixtures, and validation.
|
|
21
|
-
2.
|
|
22
|
-
3.
|
|
23
|
-
4.
|
|
21
|
+
2. Build a transient evidence-backed scope delta with three facts per material requirement: approved behavior, current capability/owner/seam, and the smallest remaining implementation delta. Pass it in the reviewer capsule; persist it in the spec only when an executor needs it.
|
|
22
|
+
3. Treat behavior already present as `preserve + regression proof`, not new implementation. Stop with a blocked spec when an unresolved product value, copy decision, policy, or ownership choice changes the implementation; never manufacture a working default to keep drafting.
|
|
23
|
+
4. Reuse valid Evidence Maps and `$research` artifacts. Refresh only claims invalidated by changed files, versions, dates, contracts, or conflicts.
|
|
24
|
+
5. Read the relevant section of [source modes](references/source-modes.md). Stop or mark the spec blocked when its source-specific requirements are not satisfied.
|
|
25
|
+
6. Classify and record these independent facts:
|
|
24
26
|
- `spec_mode`: `compact | full` — document and coordination density.
|
|
25
27
|
- `implementation_size`: `small | medium | large` — expected delivery shape.
|
|
26
28
|
- `review_profile`: `simple | medium | high` — consequence and uncertainty,
|
|
@@ -50,6 +52,7 @@ Before drafting slices:
|
|
|
50
52
|
3. Set `Added Complexity: None` unless the minimum solution cannot satisfy a named requirement or evidenced failure path.
|
|
51
53
|
4. For every added mechanism, including a new service, helper, adapter, layer, schema object, transaction, retry policy, job, cache, flag, compatibility path, or coordination boundary, record the exact invariant or failure that requires it and what breaks without it.
|
|
52
54
|
5. Run the deletion challenge: if removing a proposed mechanism still satisfies all approved behavior, invariants, and proof, remove it from the spec.
|
|
55
|
+
6. Do not use technical detail to conceal a missing product decision. Unknown durations, thresholds, localized copy, policy defaults, and eligibility rules remain blockers when they materially shape behavior.
|
|
53
56
|
|
|
54
57
|
Judge simplicity by the fewest necessary concepts, owners, states, and integration points, not by line or file count. Do not require complexity scores or alternative-solution essays.
|
|
55
58
|
|
|
@@ -74,11 +77,10 @@ Read [the spec template](references/spec-template.md) before drafting, then remo
|
|
|
74
77
|
`$implementation-spec-review` as its Adapter. Supply the saved spec, source
|
|
75
78
|
authority, approved decisions, and evidence; do not restate its topology or
|
|
76
79
|
defect lifecycle.
|
|
77
|
-
3. Apply one consolidated, scope-preserving repair batch,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
5. Replace temporary lifecycle metadata with outcome, last Adapter verdict,
|
|
80
|
+
3. Apply one consolidated, scope-preserving repair batch. Before requesting any Closure, record a transient repair complexity delta containing every newly introduced endpoint, service, durable state, configuration input, schema/public contract, repository, or data owner and its existing-seam justification. Pass only that delta, repaired sections, and affected defects/contracts to Closure; do not add a separate simplification review.
|
|
81
|
+
4. Follow the owner loop until it returns `Approved`, `Blocked`, or an eligible user-authorized `Waived` outcome. Respect its default review budget and rare fresh-Full triggers; do not create review rounds for ordinary coordinator-verifiable repairs.
|
|
82
|
+
5. A preflight-blocked spec may be saved with zero reviews and `review_verdict: "Not run"`. Never fabricate approval or use `Not required`.
|
|
83
|
+
6. Replace temporary lifecycle metadata with outcome, last Adapter verdict,
|
|
82
84
|
mandatory coverage, accepted risks, and open stable IDs. Keep pass/session
|
|
83
85
|
counts only for high, Closure, or interrupted review. Any substantive
|
|
84
86
|
post-approval edit invalidates approval until reviewed again.
|
|
@@ -43,15 +43,27 @@ A standalone reviewer performs one bounded Full over all applicable lenses and
|
|
|
43
43
|
returns only `Approved | Needs Work | Rejected`; it does not invent owner state
|
|
44
44
|
or claim Closure.
|
|
45
45
|
|
|
46
|
+
## Minimum Solution First
|
|
47
|
+
|
|
48
|
+
Begin every Full review with the evidence-backed scope delta, before checking whether the proposed implementation is detailed enough:
|
|
49
|
+
|
|
50
|
+
1. Identify behavior already implemented and require preservation/regression proof instead of reimplementation.
|
|
51
|
+
2. Challenge every new endpoint, service, durable state, configuration input, schema/public contract, repository, and data owner against an existing owner or seam.
|
|
52
|
+
3. Require one approved requirement or concrete failure path for each surviving mechanism. If deletion still satisfies behavior, invariants, and proof, report the mechanism as excess.
|
|
53
|
+
4. Treat invented product values, copy, eligibility policy, thresholds, and defaults as authority gaps when they shape observable behavior; detailed implementation does not resolve them.
|
|
54
|
+
|
|
55
|
+
Prefer the smallest repair in this order: delete excess, reuse an existing owner/seam, narrowly extend an existing contract, then add a new mechanism only when the earlier options cannot satisfy a named invariant.
|
|
56
|
+
|
|
46
57
|
## Review Lenses
|
|
47
58
|
|
|
48
59
|
Scale depth to the profile and inspect only applicable lenses:
|
|
49
60
|
|
|
50
61
|
- **Determinism and evidence:** execution-critical paths, symbols, commands,
|
|
51
62
|
contracts, fixtures, and claims are confirmed rather than invented.
|
|
52
|
-
- **Scope and minimum solution:** the spec preserves approved scope,
|
|
53
|
-
|
|
54
|
-
|
|
63
|
+
- **Scope and minimum solution:** the spec preserves approved scope,
|
|
64
|
+
distinguishes `preserve + regression proof` from new work, uses existing
|
|
65
|
+
owners/seams, and ties every added mechanism to a requirement or concrete
|
|
66
|
+
failure path.
|
|
55
67
|
- **Sequencing and ownership:** phases are safe, sources of truth are explicit
|
|
56
68
|
where drift is possible, and multi-agent write scopes are disjoint.
|
|
57
69
|
- **Validation:** each behavior has an observable proof; contract-risk work maps
|
|
@@ -81,6 +93,8 @@ Prefer deleting or narrowing an unsafe proposal before adding flags, telemetry,
|
|
|
81
93
|
fallbacks, compatibility paths, or rollout machinery. Optional improvements
|
|
82
94
|
remain optional unless source authority approves them.
|
|
83
95
|
|
|
96
|
+
Do not approve a duplicate public seam merely because it is internally consistent. Do not ask for more detailed recovery, configuration, analytics, or compatibility machinery until the mechanism itself passes the deletion challenge.
|
|
97
|
+
|
|
84
98
|
## Defects And Decision
|
|
85
99
|
|
|
86
100
|
- **Blocker:** unsafe or impossible to execute as written.
|
|
@@ -19,6 +19,36 @@
|
|
|
19
19
|
"prompt": "An approved spec receives a substantive execution change after review.",
|
|
20
20
|
"expected": ["invalidate approval for the changed revision", "review only invalidated coverage"],
|
|
21
21
|
"forbidden": ["execute under stale approval", "restart unrelated coverage"]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "artifact-existing-seam-extension",
|
|
25
|
+
"prompt": "A spec proposes a second public access endpoint and new client loader although the existing versioned endpoint can accept optional fields without breaking callers.",
|
|
26
|
+
"expected": ["report excess scope", "prefer a narrow extension of the existing endpoint and loader"],
|
|
27
|
+
"forbidden": ["approve the duplicate seam because its contract is detailed", "add compatibility machinery for the duplicate endpoint"]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "artifact-already-implemented-preservation",
|
|
31
|
+
"prompt": "Repository evidence proves the target screen already displays the current plan and remaining time, but the spec lists both as new implementation work.",
|
|
32
|
+
"expected": ["reclassify existing behavior as preserve plus regression proof", "limit implementation to the actual remaining delta"],
|
|
33
|
+
"forbidden": ["plan a second implementation", "ignore current code evidence"]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "artifact-invented-product-policy",
|
|
37
|
+
"prompt": "The source requires configurable lookback and cooldown periods but supplies no values; the spec invents defaults and builds configuration, validation, and analytics around them.",
|
|
38
|
+
"expected": ["treat material values as an authority gap", "block before expanding the technical contract"],
|
|
39
|
+
"forbidden": ["approve invented defaults", "reward extra implementation detail as determinism"]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "artifact-closure-complexity-guard",
|
|
43
|
+
"prompt": "A repair for one failure-contract defect adds a service, durable state machine, configuration input, and public DTO. Review the repair in Closure.",
|
|
44
|
+
"expected": ["verify the supplied defect", "challenge each added mechanism against existing seams", "report scope change without starting a separate simplification review"],
|
|
45
|
+
"forbidden": ["verify only the old defect ID", "automatically launch a fresh Full"]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "artifact-local-repair-review-budget",
|
|
49
|
+
"prompt": "A consolidated repair changes only wording and one existing validation command while preserving scope, owners, public contracts, and mandatory-lens coverage.",
|
|
50
|
+
"expected": ["use coordinator verification for ordinary findings", "reuse valid Full coverage"],
|
|
51
|
+
"forbidden": ["launch Closure for ordinary findings", "launch a fresh Full because the revision changed"]
|
|
22
52
|
}
|
|
23
53
|
]
|
|
24
54
|
}
|
|
@@ -31,6 +31,8 @@ spec revision, and mandatory external evidence. Save a useful blocked spec when
|
|
|
31
31
|
a product or contract decision is missing; do not launch review to discover a
|
|
32
32
|
known authority gap.
|
|
33
33
|
|
|
34
|
+
Require an evidence-backed scope delta before review: approved behavior, current capability/owner/seam, and the smallest remaining implementation delta for each material requirement. Already implemented behavior is preservation/regression scope. Unresolved product values, copy, policy, thresholds, or ownership choices that materially shape behavior block preflight instead of receiving invented defaults.
|
|
35
|
+
|
|
34
36
|
`medium` is the default. Use:
|
|
35
37
|
|
|
36
38
|
- `simple` for one narrow owner with direct proof and no material uncertainty;
|
|
@@ -50,9 +52,12 @@ authorize flags, telemetry, compatibility paths, generic fallbacks, or rollout
|
|
|
50
52
|
machinery unless the source or a concrete failure requires them.
|
|
51
53
|
|
|
52
54
|
Give each reviewer a bounded capsule containing the current spec, authority,
|
|
53
|
-
approved scope,
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
approved scope, scope delta, current owners/seams, evidence, review question,
|
|
56
|
+
assigned lenses, and current defect records. Name behavior that already exists
|
|
57
|
+
and the justification for every proposed new endpoint, service, durable state,
|
|
58
|
+
configuration input, schema/public contract, repository, or data owner. For
|
|
59
|
+
Closure also include the repaired sections, affected contracts, and repair
|
|
60
|
+
complexity delta. Do not pass raw parent history or unrelated inventories.
|
|
56
61
|
|
|
57
62
|
## Topology
|
|
58
63
|
|
|
@@ -63,13 +68,32 @@ Do not pass raw parent history or unrelated inventories.
|
|
|
63
68
|
|
|
64
69
|
Root launches and aggregates reviewers. A reviewer child runs the
|
|
65
70
|
`implementation-spec-review` Adapter inline and never spawns another reviewer.
|
|
66
|
-
Reuse valid coverage for the same revision and question.
|
|
71
|
+
Reuse valid coverage for the same revision and question. Parallel high-profile
|
|
72
|
+
reviewers are one Full review round, not sequential rounds.
|
|
67
73
|
|
|
68
74
|
After one consolidated repair, coordinator verification is enough for ordinary
|
|
69
75
|
medium/low findings. Use shared-protocol Closure only for critical/high defects,
|
|
70
76
|
protected trust/data/concurrency/shared-contract impact, or invalidated
|
|
71
|
-
mandatory coverage.
|
|
72
|
-
|
|
77
|
+
mandatory coverage.
|
|
78
|
+
|
|
79
|
+
The default budget is one Full round, one consolidated repair, and at most one
|
|
80
|
+
Closure round. Closure verifies its supplied defects and runs a bounded
|
|
81
|
+
complexity guard over the repair delta:
|
|
82
|
+
|
|
83
|
+
1. Did the repair add a new integration boundary or durable mechanism?
|
|
84
|
+
2. Can it be removed or replaced by an existing owner/seam?
|
|
85
|
+
3. Did it change approved scope?
|
|
86
|
+
|
|
87
|
+
This guard is part of Closure, not a separate simplification review. A further
|
|
88
|
+
targeted Closure is exceptional and requires a newly introduced critical/high
|
|
89
|
+
defect plus materially changed target or evidence; otherwise coordinator
|
|
90
|
+
verification or the shared no-progress/blocked outcome applies.
|
|
91
|
+
|
|
92
|
+
Start a fresh Full only when existing mandatory coverage is invalidated by a
|
|
93
|
+
changed source decision or approved scope, replacement of the primary solution
|
|
94
|
+
or owner, addition of a repository/data owner, or a new public API or durable
|
|
95
|
+
workflow that changes the reviewed architecture. A large diff or accumulated
|
|
96
|
+
clarifications alone do not trigger Full.
|
|
73
97
|
|
|
74
98
|
## Approval
|
|
75
99
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-orchestrator",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
4
4
|
"description": "Reusable GitHub Issues runner for Codex.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"clean": "node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\"",
|
|
39
39
|
"build": "npm run clean --silent && tsc -p tsconfig.json",
|
|
40
40
|
"test": "npm run build && node --test dist/test/*.test.js",
|
|
41
|
-
"test:v2-containment": "npm run build --silent && node dist/test/v2-containment.canary.js",
|
|
42
41
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
43
42
|
"sync:workflow": "node scripts/sync-agent-auto-workflow.mjs sync --codex-home \"${CODEX_HOME:-$HOME/.codex}\" --repo-root \"$PWD\" --config scripts/agent-auto-workflow-source.json --output-root internal-workflow",
|
|
44
43
|
"check:workflow": "node scripts/sync-agent-auto-workflow.mjs check --codex-home \"${CODEX_HOME:-$HOME/.codex}\" --repo-root \"$PWD\" --config scripts/agent-auto-workflow-source.json --output-root internal-workflow",
|