codex-orchestrator 2.0.2 → 2.0.4
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 +44 -426
- package/README.md +135 -34
- package/dist/src/index.d.ts +11 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/v2/acceptance-proof.d.ts +3 -0
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +2 -8
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.d.ts +5 -3
- package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.js +67 -12
- package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
- package/dist/src/v2/adapters/issues.d.ts +16 -2
- package/dist/src/v2/adapters/issues.d.ts.map +1 -1
- package/dist/src/v2/adapters/issues.js +15 -5
- package/dist/src/v2/adapters/issues.js.map +1 -1
- package/dist/src/v2/adapters/mission-coordinator-lock.d.ts +1 -0
- package/dist/src/v2/adapters/mission-coordinator-lock.d.ts.map +1 -1
- package/dist/src/v2/adapters/mission-coordinator-lock.js +5 -1
- package/dist/src/v2/adapters/mission-coordinator-lock.js.map +1 -1
- package/dist/src/v2/cli-contract.d.ts +3 -3
- package/dist/src/v2/cli-contract.d.ts.map +1 -1
- package/dist/src/v2/cli-contract.js +9 -1
- package/dist/src/v2/cli-contract.js.map +1 -1
- package/dist/src/v2/cli.d.ts +24 -0
- package/dist/src/v2/cli.d.ts.map +1 -0
- package/dist/src/v2/{candidate-cli.js → cli.js} +30 -26
- package/dist/src/v2/cli.js.map +1 -0
- package/dist/src/v2/code-review-report.d.ts +66 -0
- package/dist/src/v2/code-review-report.d.ts.map +1 -0
- package/dist/src/v2/code-review-report.js +259 -0
- package/dist/src/v2/code-review-report.js.map +1 -0
- package/dist/src/v2/codex-process.d.ts +8 -1
- package/dist/src/v2/codex-process.d.ts.map +1 -1
- package/dist/src/v2/codex-process.js +22 -0
- package/dist/src/v2/codex-process.js.map +1 -1
- package/dist/src/v2/config.d.ts +4 -3
- package/dist/src/v2/config.d.ts.map +1 -1
- package/dist/src/v2/config.js +8 -3
- package/dist/src/v2/config.js.map +1 -1
- package/dist/src/v2/contained-report-operation.d.ts +100 -0
- package/dist/src/v2/contained-report-operation.d.ts.map +1 -0
- package/dist/src/v2/contained-report-operation.js +200 -0
- package/dist/src/v2/contained-report-operation.js.map +1 -0
- package/dist/src/v2/containment.d.ts +10 -0
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +49 -1
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/direct-delivery.d.ts +96 -0
- package/dist/src/v2/direct-delivery.d.ts.map +1 -0
- package/dist/src/v2/direct-delivery.js +482 -0
- package/dist/src/v2/direct-delivery.js.map +1 -0
- package/dist/src/v2/immutable-workflow-publisher.d.ts +40 -0
- package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -0
- package/dist/src/v2/immutable-workflow-publisher.js +218 -0
- package/dist/src/v2/immutable-workflow-publisher.js.map +1 -0
- package/dist/src/v2/implementation-reviewer.d.ts +81 -0
- package/dist/src/v2/implementation-reviewer.d.ts.map +1 -0
- package/dist/src/v2/implementation-reviewer.js +157 -0
- package/dist/src/v2/implementation-reviewer.js.map +1 -0
- package/dist/src/v2/owner-control-lock.d.ts +41 -0
- package/dist/src/v2/owner-control-lock.d.ts.map +1 -0
- package/dist/src/v2/owner-control-lock.js +174 -0
- package/dist/src/v2/owner-control-lock.js.map +1 -0
- package/dist/src/v2/proof-report.d.ts.map +1 -1
- package/dist/src/v2/proof-report.js +55 -29
- package/dist/src/v2/proof-report.js.map +1 -1
- package/dist/src/v2/route-continuations.d.ts +32 -0
- package/dist/src/v2/route-continuations.d.ts.map +1 -0
- package/dist/src/v2/route-continuations.js +2 -0
- package/dist/src/v2/route-continuations.js.map +1 -0
- package/dist/src/v2/route-coordinator.d.ts +77 -0
- package/dist/src/v2/route-coordinator.d.ts.map +1 -0
- package/dist/src/v2/route-coordinator.js +370 -0
- package/dist/src/v2/route-coordinator.js.map +1 -0
- package/dist/src/v2/route-decision.d.ts +129 -0
- package/dist/src/v2/route-decision.d.ts.map +1 -0
- package/dist/src/v2/route-decision.js +400 -0
- package/dist/src/v2/route-decision.js.map +1 -0
- package/dist/src/v2/run-issue.d.ts +64 -6
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +962 -92
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-store.d.ts +25 -1
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +129 -4
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime-assets.d.ts +15 -13
- package/dist/src/v2/runtime-assets.d.ts.map +1 -1
- package/dist/src/v2/runtime-assets.js +263 -416
- package/dist/src/v2/runtime-assets.js.map +1 -1
- package/dist/src/v2/runtime.d.ts +17 -9
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +564 -64
- package/dist/src/v2/runtime.js.map +1 -1
- package/dist/src/v2/setup-cli.d.ts.map +1 -1
- package/dist/src/v2/setup-cli.js +4 -10
- package/dist/src/v2/setup-cli.js.map +1 -1
- package/dist/src/v2/setup-runtime.d.ts.map +1 -1
- package/dist/src/v2/setup-runtime.js +19 -131
- package/dist/src/v2/setup-runtime.js.map +1 -1
- package/dist/src/v2/setup-store.d.ts +0 -5
- package/dist/src/v2/setup-store.d.ts.map +1 -1
- package/dist/src/v2/setup-store.js +3 -106
- package/dist/src/v2/setup-store.js.map +1 -1
- package/dist/src/v2/setup.d.ts +6 -43
- package/dist/src/v2/setup.d.ts.map +1 -1
- package/dist/src/v2/setup.js +13 -192
- package/dist/src/v2/setup.js.map +1 -1
- package/dist/src/v2/spec-coordinator.d.ts +85 -0
- package/dist/src/v2/spec-coordinator.d.ts.map +1 -0
- package/dist/src/v2/spec-coordinator.js +88 -0
- package/dist/src/v2/spec-coordinator.js.map +1 -0
- package/dist/src/v2/spec-delivery.d.ts +143 -0
- package/dist/src/v2/spec-delivery.d.ts.map +1 -0
- package/dist/src/v2/spec-delivery.js +401 -0
- package/dist/src/v2/spec-delivery.js.map +1 -0
- package/dist/src/v2/triage-route.d.ts +68 -0
- package/dist/src/v2/triage-route.d.ts.map +1 -0
- package/dist/src/v2/triage-route.js +223 -0
- package/dist/src/v2/triage-route.js.map +1 -0
- package/dist/src/v2/waiting-human-coordinator.d.ts +49 -0
- package/dist/src/v2/waiting-human-coordinator.d.ts.map +1 -0
- package/dist/src/v2/waiting-human-coordinator.js +509 -0
- package/dist/src/v2/waiting-human-coordinator.js.map +1 -0
- package/dist/src/v2/waiting-human.d.ts +143 -0
- package/dist/src/v2/waiting-human.d.ts.map +1 -0
- package/dist/src/v2/waiting-human.js +408 -0
- package/dist/src/v2/waiting-human.js.map +1 -0
- package/dist/src/v2/workflow-assets.d.ts +98 -0
- package/dist/src/v2/workflow-assets.d.ts.map +1 -0
- package/dist/src/v2/workflow-assets.js +646 -0
- package/dist/src/v2/workflow-assets.js.map +1 -0
- package/docs/deep-dive.md +275 -52
- package/internal-workflow/docs/agents/bug-workflow-routing.md +24 -0
- package/internal-workflow/docs/agents/bugfix-quality-gate.md +11 -0
- package/internal-workflow/docs/agents/coding-skill-routing.md +123 -0
- package/internal-workflow/docs/agents/confidence-rubric.md +65 -0
- package/internal-workflow/docs/agents/contract-test-ledger.md +60 -0
- package/internal-workflow/docs/agents/review-gates.md +42 -0
- package/internal-workflow/docs/agents/review-protocol.md +98 -0
- package/internal-workflow/docs/agents/tool-usage.md +88 -0
- package/internal-workflow/evals/coding-skill-evals.json +66 -0
- package/internal-workflow/manifest.json +1 -0
- package/internal-workflow/operations/acceptance-proof/SKILL.md +9 -0
- package/internal-workflow/operations/ambiguity-review/SKILL.md +5 -0
- package/internal-workflow/operations/code-review/SKILL.md +23 -0
- package/internal-workflow/operations/implementation/SKILL.md +24 -0
- package/internal-workflow/operations/spec-author/SKILL.md +12 -0
- package/internal-workflow/operations/spec-review/SKILL.md +12 -0
- package/internal-workflow/operations/triage/SKILL.md +12 -0
- package/internal-workflow/profiles/analyst_deep.toml +9 -0
- package/internal-workflow/profiles/implementer_standard.toml +9 -0
- package/internal-workflow/profiles/proof_agent.toml +8 -0
- package/internal-workflow/profiles/reviewer_deep.toml +9 -0
- package/internal-workflow/profiles/reviewer_standard.toml +9 -0
- package/internal-workflow/schemas/ambiguity-review-v1.json +1 -0
- package/internal-workflow/schemas/code-review-v1.json +1 -0
- package/internal-workflow/schemas/implementation-report-v1.json +1 -0
- package/internal-workflow/schemas/proof-report-v1.json +1 -0
- package/internal-workflow/schemas/spec-author-v1.json +1 -0
- package/internal-workflow/schemas/spec-review-v1.json +30 -0
- package/internal-workflow/schemas/triage-route-v1.json +1 -0
- package/internal-workflow/skills/acceptance-proof/agents/openai.yaml +6 -0
- package/{internal-skills → internal-workflow/skills}/agent-auto/SKILL.md +6 -1
- package/internal-workflow/skills/agent-auto/agents/openai.yaml +6 -0
- package/internal-workflow/skills/code-debugger/SKILL.md +122 -0
- package/internal-workflow/skills/code-debugger/agents/openai.yaml +7 -0
- package/internal-workflow/skills/code-review/SKILL.md +279 -0
- package/internal-workflow/skills/code-review/agents/openai.yaml +4 -0
- package/internal-workflow/skills/code-review/references/bug-classes.md +56 -0
- package/internal-workflow/skills/code-review/references/cleanup-lens.md +52 -0
- package/internal-workflow/skills/code-review/references/framework-lenses.md +34 -0
- package/internal-workflow/skills/code-review/references/targeted-recipes.md +49 -0
- package/internal-workflow/skills/diagnosing-bugs/SKILL.md +138 -0
- package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +6 -0
- package/internal-workflow/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
- package/internal-workflow/skills/implementation-spec-maker/SKILL.md +102 -0
- package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +6 -0
- package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +31 -0
- package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +146 -0
- package/internal-workflow/skills/implementation-spec-review/SKILL.md +115 -0
- package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +6 -0
- package/internal-workflow/skills/implementation-spec-review/evals/evals.json +24 -0
- package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +93 -0
- package/internal-workflow/skills/small-task-implementer/SKILL.md +104 -0
- package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +6 -0
- package/internal-workflow/skills/spec-implementer/SKILL.md +126 -0
- package/internal-workflow/skills/spec-implementer/agents/openai.yaml +6 -0
- package/internal-workflow/skills/spec-implementer/evals/evals.json +30 -0
- package/internal-workflow/skills/spec-implementer/references/review-loop.md +94 -0
- package/internal-workflow/skills/tdd/SKILL.md +72 -0
- package/internal-workflow/skills/tdd/agents/openai.yaml +6 -0
- package/internal-workflow/skills/tdd/interface-design.md +31 -0
- package/internal-workflow/skills/tdd/mocking.md +59 -0
- package/internal-workflow/skills/tdd/refactoring.md +10 -0
- package/internal-workflow/skills/tdd/tests.md +77 -0
- package/internal-workflow/skills/triage/AGENT-BRIEF.md +192 -0
- package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +101 -0
- package/internal-workflow/skills/triage/SKILL.md +134 -0
- package/internal-workflow/skills/triage/agents/openai.yaml +6 -0
- package/package.json +14 -8
- package/dist/src/v2/adapters/target-activity-fence.d.ts +0 -23
- package/dist/src/v2/adapters/target-activity-fence.d.ts.map +0 -1
- package/dist/src/v2/adapters/target-activity-fence.js +0 -249
- package/dist/src/v2/adapters/target-activity-fence.js.map +0 -1
- package/dist/src/v2/candidate-cli.d.ts +0 -22
- package/dist/src/v2/candidate-cli.d.ts.map +0 -1
- package/dist/src/v2/candidate-cli.js.map +0 -1
- package/dist/src/v2/legacy-cutover.d.ts +0 -52
- package/dist/src/v2/legacy-cutover.d.ts.map +0 -1
- package/dist/src/v2/legacy-cutover.js +0 -87
- package/dist/src/v2/legacy-cutover.js.map +0 -1
- /package/{internal-skills → internal-workflow/skills}/acceptance-proof/SKILL.md +0 -0
- /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/android.md +0 -0
- /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/browser.md +0 -0
- /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/ios.md +0 -0
- /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/android-lease.mjs +0 -0
- /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/ios-lease.mjs +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
name = "reviewer_deep"
|
|
2
|
+
description = "Independent read-only reviewer for plans, specs, code, cleanup, and security."
|
|
3
|
+
nickname_candidates = ["Atlas", "Delta", "Echo"]
|
|
4
|
+
model = "gpt-5.6-sol"
|
|
5
|
+
model_reasoning_effort = "high"
|
|
6
|
+
sandbox_mode = "read-only"
|
|
7
|
+
developer_instructions = """
|
|
8
|
+
Review adversarially and exhaustively. Trace contracts, authorization, failure recovery, concurrency, and state transitions. For code, inspect every external side effect and verify asynchronous work is awaited or returned. Never edit files; return proposed fixes to the parent. Report only concrete findings with evidence, severity, confidence, and verification gaps.
|
|
9
|
+
"""
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
name = "reviewer_standard"
|
|
2
|
+
description = "Independent read-only reviewer for medium-risk plans, specs, tickets, cleanup, and code changes."
|
|
3
|
+
nickname_candidates = ["Aster", "Quill", "Vega"]
|
|
4
|
+
model = "gpt-5.6-sol"
|
|
5
|
+
model_reasoning_effort = "medium"
|
|
6
|
+
sandbox_mode = "read-only"
|
|
7
|
+
developer_instructions = """
|
|
8
|
+
Review independently and proportionately. Trace the changed behavior, ownership, contracts, failure paths, and validation without expanding scope. Never edit files. Return concrete findings with evidence, severity, confidence, verification gaps, and proposed fixes to the parent.
|
|
9
|
+
"""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"additionalProperties":false,"properties":{"candidateSha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"evidenceReviewed":{"items":{"minLength":1,"type":"string"},"type":"array"},"findings":{"items":{"minLength":1,"type":"string"},"type":"array"},"recommendation":{"minLength":1,"type":"string"},"verdict":{"enum":["approved","rejected","blocked"],"type":"string"},"version":{"const":1,"type":"integer"}},"required":["version","candidateSha256","verdict","evidenceReviewed","findings","recommendation"],"type":"object"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"type":"object","additionalProperties":false,"required":["version","operation","targetRevision","targetFingerprint","verdict","mode","coverage","defects","residualRisks","reviewerSessionId","closureRequestSha256","repairFindingOutcomes"],"properties":{"version":{"type":"integer","const":1},"operation":{"type":"string","const":"code-review"},"targetRevision":{"type":"integer","minimum":1},"targetFingerprint":{"type":"string","pattern":"^[0-9a-f]{64}$"},"verdict":{"type":"string","enum":["approved","needs-work","rejected"]},"mode":{"type":"string","enum":["full","closure"]},"coverage":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"defects":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","class","severity","confidence","status","invariant","failure","evidence","repair","affectedTargets","introducedTargetRevision","statusTargetRevision","supersededBy"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"class":{"type":"string","enum":["blocker","execution-risk","improvement"]},"severity":{"type":"string","enum":["critical","high","medium","low"]},"confidence":{"type":"string","enum":["high","medium","low"]},"status":{"type":"string","enum":["open","fixed","verified","reopened","superseded"]},"invariant":{"type":"string","minLength":1,"maxLength":16384},"failure":{"type":"string","minLength":1,"maxLength":16384},"evidence":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"repair":{"type":"string","minLength":1,"maxLength":16384},"affectedTargets":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"introducedTargetRevision":{"type":"integer","minimum":1},"statusTargetRevision":{"type":"integer","minimum":1},"supersededBy":{"anyOf":[{"type":"string","minLength":1,"maxLength":16384},{"type":"null"}]}}}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"reviewerSessionId":{"type":"string","minLength":1,"maxLength":16384},"closureRequestSha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"repairFindingOutcomes":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["verified","reopened"]}}}}}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"anyOf":[{"type":"object","additionalProperties":false,"required":["version","status","summary","changedFiles","residualRisks"],"properties":{"version":{"type":"integer","const":1},"summary":{"type":"string","minLength":1,"maxLength":4096},"changedFiles":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"minItems":1},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"status":{"type":"string","const":"completed"}}},{"type":"object","additionalProperties":false,"required":["version","status","summary","changedFiles","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"summary":{"type":"string","minLength":1,"maxLength":4096},"changedFiles":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"status":{"type":"string","const":"external-block"},"blocker":{"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}}}}}}]}}}
|
|
@@ -0,0 +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}}}}]}}}]}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"additionalProperties":false,"properties":{"blockers":{"items":{"minLength":1,"type":"string"},"type":"array"},"specPath":{"type":["string","null"]},"specSha256":{"type":["string","null"]},"status":{"enum":["ready","blocked"],"type":"string"},"summary":{"minLength":1,"type":"string"},"version":{"const":1,"type":"integer"}},"required":["version","status","specPath","specSha256","summary","blockers"],"type":"object"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"additionalProperties": false,
|
|
3
|
+
"properties": {
|
|
4
|
+
"acceptedRisks": {
|
|
5
|
+
"items": {
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"acceptedBy": { "minLength": 1, "type": "string" },
|
|
9
|
+
"defectId": { "minLength": 1, "type": "string" },
|
|
10
|
+
"policy": { "minLength": 1, "type": "string" },
|
|
11
|
+
"rationale": { "minLength": 1, "type": "string" }
|
|
12
|
+
},
|
|
13
|
+
"required": ["defectId", "rationale", "policy", "acceptedBy"],
|
|
14
|
+
"type": "object"
|
|
15
|
+
},
|
|
16
|
+
"type": "array"
|
|
17
|
+
},
|
|
18
|
+
"affectedContracts": { "items": { "minLength": 1, "type": "string" }, "type": "array" },
|
|
19
|
+
"affectedDefectIds": { "items": { "minLength": 1, "type": "string" }, "type": "array" },
|
|
20
|
+
"coverage": { "items": { "minLength": 1, "type": "string" }, "type": "array" },
|
|
21
|
+
"coverageInvalidated": { "type": "boolean" },
|
|
22
|
+
"defects": { "items": { "type": "object" }, "type": "array" },
|
|
23
|
+
"mode": { "enum": ["full", "closure"], "type": "string" },
|
|
24
|
+
"reviewerSessionId": { "minLength": 1, "type": "string" },
|
|
25
|
+
"verdict": { "enum": ["approved", "needs-work", "rejected"], "type": "string" },
|
|
26
|
+
"version": { "const": 1, "type": "integer" }
|
|
27
|
+
},
|
|
28
|
+
"required": ["version", "verdict", "mode", "coverage", "defects", "reviewerSessionId", "affectedDefectIds", "affectedContracts", "coverageInvalidated", "acceptedRisks"],
|
|
29
|
+
"type": "object"
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"anyOf":[{"type":"object","additionalProperties":false,"required":["version","status","inspectedEvidence","assumptions","direct","specRequired","awaitingUser","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"direct"},"inspectedEvidence":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["kind","location","summary"],"properties":{"kind":{"type":"string","enum":["issue","comment","code","caller","test","instruction","context","domain","adr","behavior"]},"location":{"type":"string","minLength":1,"maxLength":16384},"summary":{"type":"string","minLength":1,"maxLength":16384}}}},"assumptions":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"direct":{"type":"object","additionalProperties":false,"required":["summary","behaviors","verification"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":16384},"behaviors":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"verification":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}},"specRequired":{"type":"null"},"awaitingUser":{"type":"null"},"blocker":{"type":"null"}}},{"type":"object","additionalProperties":false,"required":["version","status","inspectedEvidence","assumptions","direct","specRequired","awaitingUser","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"spec-required"},"inspectedEvidence":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["kind","location","summary"],"properties":{"kind":{"type":"string","enum":["issue","comment","code","caller","test","instruction","context","domain","adr","behavior"]},"location":{"type":"string","minLength":1,"maxLength":16384},"summary":{"type":"string","minLength":1,"maxLength":16384}}}},"assumptions":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"direct":{"type":"null"},"specRequired":{"type":"object","additionalProperties":false,"required":["summary","complexityReasons","specMode","reviewFocus"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":16384},"complexityReasons":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"specMode":{"type":"string","enum":["compact","standard"]},"reviewFocus":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}},"awaitingUser":{"type":"null"},"blocker":{"type":"null"}}},{"type":"object","additionalProperties":false,"required":["version","status","inspectedEvidence","assumptions","direct","specRequired","awaitingUser","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"awaiting-user"},"inspectedEvidence":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["kind","location","summary"],"properties":{"kind":{"type":"string","enum":["issue","comment","code","caller","test","instruction","context","domain","adr","behavior"]},"location":{"type":"string","minLength":1,"maxLength":16384},"summary":{"type":"string","minLength":1,"maxLength":16384}}}},"assumptions":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"direct":{"type":"null"},"specRequired":{"type":"null"},"awaitingUser":{"type":"object","additionalProperties":false,"required":["outcomes","absenceOfAuthorizedChoiceEvidence","recommendation","question"],"properties":{"outcomes":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","title","behaviorDelta","evidence"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"title":{"type":"string","minLength":1,"maxLength":16384},"behaviorDelta":{"type":"string","minLength":1,"maxLength":16384},"evidence":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"absenceOfAuthorizedChoiceEvidence":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"recommendation":{"type":"string","minLength":1,"maxLength":16384},"question":{"type":"string","minLength":1,"maxLength":16384}}},"blocker":{"type":"null"}}},{"type":"object","additionalProperties":false,"required":["version","status","inspectedEvidence","assumptions","direct","specRequired","awaitingUser","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"blocked"},"inspectedEvidence":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["kind","location","summary"],"properties":{"kind":{"type":"string","enum":["issue","comment","code","caller","test","instruction","context","domain","adr","behavior"]},"location":{"type":"string","minLength":1,"maxLength":16384},"summary":{"type":"string","minLength":1,"maxLength":16384}}}},"assumptions":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"direct":{"type":"null"},"specRequired":{"type":"null"},"awaitingUser":{"type":"null"},"blocker":{"type":"object","additionalProperties":false,"required":["kind","code","summary","evidence"],"properties":{"kind":{"type":"string","enum":["external","safety","exhausted"]},"code":{"type":"string","minLength":1,"maxLength":16384},"summary":{"type":"string","minLength":1,"maxLength":16384},"evidence":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}]}}}
|
|
@@ -7,7 +7,12 @@ description: Implement one prepared GitHub issue inside the runner-owned worktre
|
|
|
7
7
|
|
|
8
8
|
Implement one issue end to end inside the prepared worktree. Treat the supplied issue snapshot, frozen acceptance criteria, repository instructions, and runner-provided output schema as authoritative.
|
|
9
9
|
|
|
10
|
-
Inspect the repository, choose the smallest complete strategy, and
|
|
10
|
+
Inspect the repository, choose the smallest complete strategy, and follow the
|
|
11
|
+
operation-provided package routing resources. Apply the packaged TDD skill for
|
|
12
|
+
behavior changes, run focused affected validation, repair failures that are
|
|
13
|
+
within the issue scope, and leave the worktree ready for Runner-owned review
|
|
14
|
+
and independent acceptance proof. Do not invoke planning or review workflows:
|
|
15
|
+
the Runner has already selected and persisted this implementation operation.
|
|
11
16
|
|
|
12
17
|
The runner owns authorization and every external effect. 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. If completion depends on a credential, unavailable tool/service, or product decision, return the typed external blocker instead of widening authority.
|
|
13
18
|
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-debugger
|
|
3
|
+
description: Implement and verify an explicit or approved bug fix end-to-end. Use for fix requests or after diagnosis; not for explanation-only work, which uses `bug-root-cause-explainer`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Debugger
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Treat every bug report as an engineering investigation, not a prompt to guess. Start by proving whether each reported problem is valid and still current, then narrow the failing path, patch the root cause with the smallest correct change, and verify the result before closing the task. Always plan your actions explicitly before executing them.
|
|
11
|
+
|
|
12
|
+
For confirmed contract defects, use the shared Contract Test Ledger at `../../docs/agents/contract-test-ledger.md`.
|
|
13
|
+
|
|
14
|
+
## Activation Rule
|
|
15
|
+
|
|
16
|
+
Use this skill only when the user wants implementation.
|
|
17
|
+
|
|
18
|
+
For routing between bug diagnosis, feedback-loop construction, and implementation, use `../../docs/agents/bug-workflow-routing.md`.
|
|
19
|
+
|
|
20
|
+
- If the user wants diagnosis, explanation, or options first, use `bug-root-cause-explainer`.
|
|
21
|
+
- If the user reports a hard, flaky, performance-related, or unclear bug without a reliable feedback loop, use `diagnosing-bugs`.
|
|
22
|
+
- If the user already chose a fix path, implement that path here.
|
|
23
|
+
- Reviewer repairs already owned by an active authorized TDD flow stay in that flow under `bug-workflow-routing.md`; use this skill for separate fixes or ambiguous reproduction/cause/repair.
|
|
24
|
+
|
|
25
|
+
## Debugging Workflow
|
|
26
|
+
|
|
27
|
+
Default execution mode is inline; use `analyst_deep` only while causal or contract ambiguity remains unresolved.
|
|
28
|
+
|
|
29
|
+
1. Triage every reported issue before accepting it as a bug.
|
|
30
|
+
- Do not assume a reported problem is correct, current, or reproducible.
|
|
31
|
+
- Check whether the report refers to code that has already changed, a misunderstanding of intended behavior, a stale environment, or a non-issue.
|
|
32
|
+
- Classify each item explicitly: confirmed bug, not reproducible yet, outdated, expected behavior, duplicate, or blocked.
|
|
33
|
+
- Only move to implementation once there is evidence that the issue is real.
|
|
34
|
+
|
|
35
|
+
2. Define the failure precisely.
|
|
36
|
+
- Extract the actual symptom, expected behavior, affected surface, and reproduction hints from the user request, logs, screenshots, tests, or commands.
|
|
37
|
+
- Convert vague reports into a concrete statement: what is broken, where it happens, and under which input.
|
|
38
|
+
|
|
39
|
+
3. Build a complete issue ledger when multiple bugs are reported.
|
|
40
|
+
- Enumerate every reported item before fixing anything.
|
|
41
|
+
- Track status for each entry (triage, reproduced, fixing, verified, invalid, blocked).
|
|
42
|
+
- Process items one by one, but keep the full ledger visible.
|
|
43
|
+
|
|
44
|
+
4. Reproduce or recover a failing signal.
|
|
45
|
+
- Prefer the narrowest reliable proof: a failing test, local command, runtime log, or API response.
|
|
46
|
+
- Inspect existing running processes before starting duplicate services.
|
|
47
|
+
- If full reproduction is impossible, establish the strongest available failing signal and state what is missing.
|
|
48
|
+
- If no red-capable signal can be built for an unclear or flaky bug, switch to `diagnosing-bugs` before patching.
|
|
49
|
+
|
|
50
|
+
5. Create the regression contract row for confirmed defects.
|
|
51
|
+
- For each confirmed review finding or contract bug, record the invariant, the concrete risk, and the first regression test/proof before patching.
|
|
52
|
+
- The preferred sequence is `planned -> red -> green`: show the regression signal fails, apply the fix, then verify it passes.
|
|
53
|
+
- If no correct public seam exists, mark the ledger row `blocked` with the missing seam or fixture instead of writing an implementation-detail test by default.
|
|
54
|
+
|
|
55
|
+
6. Build context before editing.
|
|
56
|
+
- Read local docs, runbooks, or feature notes first.
|
|
57
|
+
- Trace the execution path through entrypoints, callers, state writes, async boundaries, DTOs, and external integrations.
|
|
58
|
+
- Inspect nearby modules that can invalidate assumptions.
|
|
59
|
+
- If a prior `bug-root-cause-explainer` diagnosis exists, treat it as the starting point, then verify the key claim in code before changing anything.
|
|
60
|
+
|
|
61
|
+
7. Identify the root cause.
|
|
62
|
+
- Separate the symptom from the defect that causes it.
|
|
63
|
+
- **Environment Check:** Always verify the versions of relevant dependencies (`package.json`, `requirements.txt`, `go.mod`, etc.). A bug might be a known issue in a specific library version.
|
|
64
|
+
- When framework or library behavior is material to the fix, consult official documentation or your knowledge base tools.
|
|
65
|
+
|
|
66
|
+
8. Implement the smallest correct fix.
|
|
67
|
+
- Before editing a confirmed bug, apply `../../docs/agents/bugfix-quality-gate.md`.
|
|
68
|
+
- Fix the root cause instead of masking the symptom.
|
|
69
|
+
- Preserve existing architecture and local code patterns.
|
|
70
|
+
- Avoid unrelated refactors while debugging.
|
|
71
|
+
- Add or update a regression test when feasible.
|
|
72
|
+
|
|
73
|
+
9. Verify the outcome.
|
|
74
|
+
- Run the narrowest meaningful checks: targeted tests, lint, build, or log inspection.
|
|
75
|
+
- Verify the final observable outcome, not only an intermediate flag, event, queue item, callback, or response.
|
|
76
|
+
- Compare the signal before and after the fix.
|
|
77
|
+
|
|
78
|
+
10. Report with evidence.
|
|
79
|
+
- State the root cause, the fix, and exactly how it was verified.
|
|
80
|
+
- Call out anything that could not be verified and why.
|
|
81
|
+
- If the fix follows a user-approved path from `bug-root-cause-explainer`, say which path was implemented.
|
|
82
|
+
|
|
83
|
+
## Operating Rules
|
|
84
|
+
|
|
85
|
+
- **Chain of Thought:** Before executing any commands, reading files, or modifying code, write a `<thinking>` block outlining your immediate next steps and hypotheses.
|
|
86
|
+
- **Safety Rails:** NEVER run destructive commands (e.g., `rm -rf`, `DROP TABLE`, destructive Git resets) without explicit user confirmation. For database debugging, strictly use `SELECT` or read-only transactions.
|
|
87
|
+
- **Anti-Loop Mechanism:** If you fail to reproduce a bug or pass a test after 3 consecutive attempts, STOP making blind changes. Output a summary of what you tried, identify the current blocker, and explicitly ask the user for guidance or missing context.
|
|
88
|
+
- Prefer repository evidence over speculation.
|
|
89
|
+
- Prefer validating a report before treating it as ground truth.
|
|
90
|
+
- Prefer fast text searches (like `rg` or `grep`) over broad file reads.
|
|
91
|
+
- Prefer exact commands and exact failing conditions over summaries.
|
|
92
|
+
- If a user report is underspecified, infer from code, tests, logs, and docs first; ask questions only when a safe next step cannot be discovered.
|
|
93
|
+
- If the bug is intermittent or flaky, look for race conditions, shared mutable state, retries, timing assumptions, and missing cleanup.
|
|
94
|
+
|
|
95
|
+
## Failure Modes To Check Aggressively
|
|
96
|
+
|
|
97
|
+
- Wrong branch or inverted condition
|
|
98
|
+
- Missing `await` or broken async ordering
|
|
99
|
+
- Null, undefined, or empty-state handling
|
|
100
|
+
- DTO or schema drift across module boundaries
|
|
101
|
+
- Cache invalidation or stale state
|
|
102
|
+
- Timezone, locale, or unit conversion errors
|
|
103
|
+
- Partial writes and inconsistent side effects
|
|
104
|
+
- Retry duplication or non-idempotent background work
|
|
105
|
+
- Broken loading, error, or optimistic UI states
|
|
106
|
+
- Incorrect assumptions about framework defaults or recent library behavior
|
|
107
|
+
|
|
108
|
+
## Output Contract & Multi-Issue Response Template
|
|
109
|
+
|
|
110
|
+
When the user reports multiple bugs or findings at once, present and maintain a ledger in this streamlined shape before and after implementation. Keep the table compact to prevent formatting errors, and place detailed plans below it.
|
|
111
|
+
|
|
112
|
+
```md
|
|
113
|
+
## Issue Ledger
|
|
114
|
+
|
|
115
|
+
| # | Issue | Verdict | Status | Verification |
|
|
116
|
+
|---|---|---|---|---|
|
|
117
|
+
| 1 | <short restatement> | confirmed bug / outdated / duplicate / blocked | triage / reproduced / fixing / verified / blocked | <test, log, command, or n/a> |
|
|
118
|
+
| 2 | <short restatement> | ... | ... | ... |
|
|
119
|
+
|
|
120
|
+
### Details & Plans
|
|
121
|
+
* **Issue 1:** <Plan, root cause, and next action>
|
|
122
|
+
* **Issue 2:** <Plan, root cause, and next action>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Code Debugger"
|
|
3
|
+
short_description: "Implement and verify an approved bug fix"
|
|
4
|
+
default_prompt: "Use $code-debugger to implement the user-approved bug fix path and verify the result. If the user wants diagnosis first, use $bug-root-cause-explainer."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|