codex-orchestrator 2.0.3 → 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.
Files changed (131) hide show
  1. package/CHANGELOG.md +28 -427
  2. package/README.md +135 -37
  3. package/dist/src/index.d.ts +1 -1
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -1
  6. package/dist/src/v2/adapters/gh-issue-adapter.js +6 -7
  7. package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
  8. package/dist/src/v2/cli-contract.d.ts +3 -3
  9. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  10. package/dist/src/v2/cli-contract.js +1 -3
  11. package/dist/src/v2/cli-contract.js.map +1 -1
  12. package/dist/src/v2/cli.d.ts +24 -0
  13. package/dist/src/v2/cli.d.ts.map +1 -0
  14. package/dist/src/v2/{candidate-cli.js → cli.js} +18 -29
  15. package/dist/src/v2/cli.js.map +1 -0
  16. package/dist/src/v2/code-review-report.d.ts +1 -1
  17. package/dist/src/v2/code-review-report.d.ts.map +1 -1
  18. package/dist/src/v2/code-review-report.js +2 -2
  19. package/dist/src/v2/code-review-report.js.map +1 -1
  20. package/dist/src/v2/codex-process.d.ts.map +1 -1
  21. package/dist/src/v2/codex-process.js +12 -1
  22. package/dist/src/v2/codex-process.js.map +1 -1
  23. package/dist/src/v2/config.d.ts +2 -2
  24. package/dist/src/v2/config.d.ts.map +1 -1
  25. package/dist/src/v2/config.js.map +1 -1
  26. package/dist/src/v2/contained-report-operation.d.ts +2 -2
  27. package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
  28. package/dist/src/v2/contained-report-operation.js +1 -1
  29. package/dist/src/v2/contained-report-operation.js.map +1 -1
  30. package/dist/src/v2/containment.d.ts +4 -0
  31. package/dist/src/v2/containment.d.ts.map +1 -1
  32. package/dist/src/v2/containment.js +9 -0
  33. package/dist/src/v2/containment.js.map +1 -1
  34. package/dist/src/v2/direct-delivery.d.ts +5 -10
  35. package/dist/src/v2/direct-delivery.d.ts.map +1 -1
  36. package/dist/src/v2/direct-delivery.js +25 -90
  37. package/dist/src/v2/direct-delivery.js.map +1 -1
  38. package/dist/src/v2/proof-report.d.ts.map +1 -1
  39. package/dist/src/v2/proof-report.js +55 -29
  40. package/dist/src/v2/proof-report.js.map +1 -1
  41. package/dist/src/v2/run-issue.d.ts +6 -9
  42. package/dist/src/v2/run-issue.d.ts.map +1 -1
  43. package/dist/src/v2/run-issue.js +98 -43
  44. package/dist/src/v2/run-issue.js.map +1 -1
  45. package/dist/src/v2/run-store.d.ts +4 -4
  46. package/dist/src/v2/run-store.d.ts.map +1 -1
  47. package/dist/src/v2/run-store.js +25 -40
  48. package/dist/src/v2/run-store.js.map +1 -1
  49. package/dist/src/v2/runtime.d.ts +3 -3
  50. package/dist/src/v2/runtime.d.ts.map +1 -1
  51. package/dist/src/v2/runtime.js +125 -47
  52. package/dist/src/v2/runtime.js.map +1 -1
  53. package/dist/src/v2/setup-cli.d.ts.map +1 -1
  54. package/dist/src/v2/setup-cli.js +4 -11
  55. package/dist/src/v2/setup-cli.js.map +1 -1
  56. package/dist/src/v2/setup-runtime.d.ts.map +1 -1
  57. package/dist/src/v2/setup-runtime.js +1 -61
  58. package/dist/src/v2/setup-runtime.js.map +1 -1
  59. package/dist/src/v2/setup-store.d.ts +0 -5
  60. package/dist/src/v2/setup-store.d.ts.map +1 -1
  61. package/dist/src/v2/setup-store.js +3 -106
  62. package/dist/src/v2/setup-store.js.map +1 -1
  63. package/dist/src/v2/setup.d.ts +6 -46
  64. package/dist/src/v2/setup.d.ts.map +1 -1
  65. package/dist/src/v2/setup.js +11 -293
  66. package/dist/src/v2/setup.js.map +1 -1
  67. package/dist/src/v2/workflow-assets.d.ts +19 -11
  68. package/dist/src/v2/workflow-assets.d.ts.map +1 -1
  69. package/dist/src/v2/workflow-assets.js +132 -40
  70. package/dist/src/v2/workflow-assets.js.map +1 -1
  71. package/docs/deep-dive.md +272 -56
  72. package/internal-workflow/docs/agents/bugfix-quality-gate.md +11 -0
  73. package/internal-workflow/docs/agents/coding-skill-routing.md +116 -196
  74. package/internal-workflow/docs/agents/review-gates.md +32 -39
  75. package/internal-workflow/docs/agents/review-protocol.md +75 -147
  76. package/internal-workflow/evals/coding-skill-evals.json +66 -0
  77. package/internal-workflow/manifest.json +1 -1
  78. package/internal-workflow/operations/acceptance-proof/SKILL.md +7 -1
  79. package/internal-workflow/operations/ambiguity-review/SKILL.md +2 -0
  80. package/internal-workflow/operations/code-review/SKILL.md +21 -1
  81. package/internal-workflow/operations/implementation/SKILL.md +22 -1
  82. package/internal-workflow/operations/spec-author/SKILL.md +10 -1
  83. package/internal-workflow/operations/spec-review/SKILL.md +10 -1
  84. package/internal-workflow/operations/triage/SKILL.md +10 -1
  85. package/internal-workflow/schemas/code-review-v1.json +1 -1
  86. package/internal-workflow/schemas/proof-report-v1.json +1 -1
  87. package/internal-workflow/skills/agent-auto/SKILL.md +6 -1
  88. package/internal-workflow/skills/code-debugger/SKILL.md +122 -0
  89. package/internal-workflow/skills/code-debugger/agents/openai.yaml +7 -0
  90. package/internal-workflow/skills/code-review/SKILL.md +33 -11
  91. package/internal-workflow/skills/code-review/references/cleanup-lens.md +52 -0
  92. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +15 -6
  93. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +2 -2
  94. package/internal-workflow/skills/implementation-spec-review/SKILL.md +108 -204
  95. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +24 -0
  96. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +93 -0
  97. package/internal-workflow/skills/small-task-implementer/SKILL.md +15 -8
  98. package/internal-workflow/skills/spec-implementer/SKILL.md +101 -172
  99. package/internal-workflow/skills/spec-implementer/evals/evals.json +30 -0
  100. package/internal-workflow/skills/spec-implementer/references/review-loop.md +94 -0
  101. package/internal-workflow/skills/tdd/SKILL.md +15 -2
  102. package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
  103. package/package.json +9 -6
  104. package/dist/src/v2/adapters/target-activity-fence.d.ts +0 -23
  105. package/dist/src/v2/adapters/target-activity-fence.d.ts.map +0 -1
  106. package/dist/src/v2/adapters/target-activity-fence.js +0 -249
  107. package/dist/src/v2/adapters/target-activity-fence.js.map +0 -1
  108. package/dist/src/v2/candidate-cli.d.ts +0 -26
  109. package/dist/src/v2/candidate-cli.d.ts.map +0 -1
  110. package/dist/src/v2/candidate-cli.js.map +0 -1
  111. package/dist/src/v2/legacy-cutover.d.ts +0 -52
  112. package/dist/src/v2/legacy-cutover.d.ts.map +0 -1
  113. package/dist/src/v2/legacy-cutover.js +0 -87
  114. package/dist/src/v2/legacy-cutover.js.map +0 -1
  115. package/internal-workflow/docs/agents/artifact-review-loop.md +0 -267
  116. package/internal-workflow/docs/agents/implementation-review-loop.md +0 -302
  117. package/internal-workflow/operations/cleanup-review/SKILL.md +0 -3
  118. package/internal-workflow/operations/spec-implementation/SKILL.md +0 -3
  119. package/internal-workflow/profiles/implementer_deep.toml +0 -9
  120. package/internal-workflow/profiles/researcher_standard.toml +0 -9
  121. package/internal-workflow/profiles/reviewer_fast.toml +0 -9
  122. package/internal-workflow/skills/cleanup-review/SKILL.md +0 -84
  123. package/internal-workflow/skills/cleanup-review/agents/openai.yaml +0 -6
  124. package/internal-workflow/skills/codebase-design/DEEPENING.md +0 -35
  125. package/internal-workflow/skills/codebase-design/DESIGN-IT-TWICE.md +0 -50
  126. package/internal-workflow/skills/codebase-design/SKILL.md +0 -82
  127. package/internal-workflow/skills/codebase-design/agents/openai.yaml +0 -6
  128. package/internal-workflow/skills/research/SKILL.md +0 -107
  129. package/internal-workflow/skills/research/agents/openai.yaml +0 -6
  130. package/internal-workflow/skills/ui-evidence-proof/SKILL.md +0 -123
  131. package/internal-workflow/skills/ui-evidence-proof/agents/openai.yaml +0 -6
@@ -1 +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","enum":["cleanup-review","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"]}}}}}}}}
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"]}}}}}}}}
@@ -1 +1 @@
1
- {"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"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":["passed","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":3,"items":{"type":"string","enum":["browser","android","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":{"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","generated-file","screenshot","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"},"description":{"type":"string","minLength":1,"maxLength":4096}}}},"visualEvidence":{"anyOf":[{"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}}}}}}},{"type":"null"}]},"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":"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}}}},{"type":"null"}]}}}}}
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}}}}]}}}]}}}
@@ -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 use native Codex subagents when useful. Apply TDD for behavior changes, run focused validation, repair failures that are within the issue scope, and leave the worktree ready for independent acceptance proof.
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
@@ -17,6 +17,12 @@ lenses to one reviewer for `simple` and `medium`, and splits them across two
17
17
  independent reviewers only for `high`. It verifies the strongest findings,
18
18
  applies only safe fixes, and returns a concise findings-first report.
19
19
 
20
+ Full review is bounded to the settled diff, its authority, changed owners, and
21
+ callers or contracts with plausible fan-out. `Full` means complete coverage of
22
+ that assigned scope once; it does not mean a repository-wide audit. Do not load
23
+ unrelated modules or activate optional lenses without a diff signal or mandatory
24
+ Review Focus.
25
+
20
26
  ## When To Use
21
27
 
22
28
  Use this skill when the user asks for:
@@ -29,25 +35,27 @@ Use this skill when the user asks for:
29
35
  For every implementation profile, the spec/standards lens includes bounded
30
36
  cleanup for duplication, obsolete paths, workaround branches, and unjustified
31
37
  abstractions. High-risk work assigns that lens to its own reviewer in the same
32
- parallel final wave. Run separate `$cleanup-review` first only for an explicit
33
- concrete evidenced reason that cannot fit this bounded lens.
38
+ parallel final wave. A concrete evidenced simplification risk named by the
39
+ user, approved source, or repo policy amplifies this lens inside the same review
40
+ activation; it never creates a separate cleanup gate.
34
41
 
35
42
  Exception for approved spec execution: follow
36
- `../../docs/agents/implementation-review-loop.md`. Intermediate code-review
37
- checkpoints do not automatically run cleanup first; final cleanup and final code
38
- review use the durable Review Plan and canonical Defect Ledger.
43
+ `../spec-implementer/references/review-loop.md`. Intermediate code-review
44
+ checkpoints activate only their assigned Review Focus; final cleanup coverage
45
+ uses the durable Review Plan and canonical Defect Ledger.
39
46
 
40
47
  ## Implementation Review Adapter
41
48
 
42
49
  When this skill is called from `$spec-implementer`:
43
50
 
44
- - read the Module and persisted `## Implementation Review State`
51
+ - read `../spec-implementer/references/review-loop.md` and the persisted
52
+ `## Implementation Review State`
45
53
  - accept the scheduled mode, session, revision, and lenses from that state
46
- - pin the target and give reviewers the Module-defined capsule
54
+ - pin the target and give reviewers the owner-defined capsule
47
55
  - return the usable result and stable defect updates to the executor
48
- - when exceptional separate cleanup ran, consume its settled decisions/IDs and avoid broad hygiene rediscovery unless a code-review repair caused a concrete regression
56
+ - keep cleanup findings in the spec/standards lineage and canonical Defect Ledger
49
57
 
50
- Do not infer a fresh review loop, choose another mode, or make the Module's
58
+ Do not infer a fresh review loop, choose another mode, or make the owner's
51
59
  terminal decision inside this Adapter.
52
60
 
53
61
  ## Progressive References
@@ -55,12 +63,16 @@ terminal decision inside this Adapter.
55
63
  Read only the references the current review needs:
56
64
 
57
65
  - Detailed bug classes: `references/bug-classes.md`
66
+ - Cleanup lens method: `references/cleanup-lens.md`
58
67
  - Framework lenses for Next.js, NestJS, Flutter, and Dart: `references/framework-lenses.md`
59
68
  - Targeted recipes for recurring diff shapes: `references/targeted-recipes.md`
60
69
  - Contract test ledger: `../../docs/agents/contract-test-ledger.md`
61
70
  - Shared confidence rubric: `../../docs/agents/confidence-rubric.md`
62
71
 
63
72
  Load `references/framework-lenses.md` when the user names a framework or files/configs strongly imply one. Load `references/targeted-recipes.md` and `../../docs/agents/contract-test-ledger.md` when the diff shape matches new fields, retries, DTO/schema/runtime contracts, caches, state merge precedence, ordering, evidence/snapshots, determinism, or aggregation summaries. Load `references/bug-classes.md` for substantial reviews or broad bug hunts.
73
+ Load `references/cleanup-lens.md` when the spec/standards lens is assigned. Use
74
+ its bounded method by default and its amplified method only for a concrete
75
+ evidenced simplification risk supplied as mandatory Review Focus.
64
76
 
65
77
  ## Coordinator Workflow
66
78
 
@@ -111,6 +123,8 @@ Machine-enforced config matters as context, but do not spend review findings on
111
123
  Before deep review, decide which lenses apply.
112
124
 
113
125
  - Always activate the general correctness and spec/standards lenses.
126
+ - Always apply bounded cleanup inside spec/standards; amplify it only for a
127
+ concrete evidenced Review Focus, never from size or risk labels alone.
114
128
  - Add framework lenses when explicit or strongly implied by files/configs.
115
129
  - Add targeted recipes when the diff shape matches them.
116
130
  - If the user, plan, or implementation spec provides `Review Focus`, treat each listed lens, targeted recipe, invariant, and risk as mandatory. Do not replace it with a generic review; report any focus item that cannot be verified as a verification gap.
@@ -141,6 +155,10 @@ revert unrelated work.
141
155
  For spec-driven checkpoints, obey the track assignment in the persisted Review
142
156
  Plan instead of automatically launching both default tracks.
143
157
 
158
+ Medium is the normal review profile. API, persistence, multiple files, or a
159
+ shared-looking name do not select `high` unless evidence proves both a material
160
+ failure consequence and an uncertainty amplifier.
161
+
144
162
  When already inside an assigned reviewer child, execute its assigned lens set
145
163
  inline and return it to root; do not spawn a grandchild.
146
164
  If the user forbids delegation, report the independent review gate as waived or
@@ -159,6 +177,7 @@ Include the exact diff command or commit under review, changed file list, commit
159
177
  Include the exact diff command or commit under review, spec source path/content or "no spec found", standards source list, changed file list, commit list, any `Review Focus`, and an instruction to cite the spec or standard behind each finding.
160
178
 
161
179
  > Review the change against the requested work and repo standards. Check missing requirements, partial behavior, scope creep, undocumented contract changes, architecture drift, duplicate source-of-truth logic, dead/legacy branches, and workaround-shaped implementation. If a Review Focus is provided, explicitly verify each named ownership, scope, validation, and invariant risk against the spec. Cite the spec or standard when available. If there is no spec, skip requirement claims and focus on documented standards and architecture evidence.
180
+ > Apply `references/cleanup-lens.md`: use bounded cleanup by default, or the amplified method when a concrete evidenced simplification risk is mandatory Review Focus. Keep cleanup findings in this review's normal Defect Ledger. Do not create a cleanup-only verdict or separate pass.
162
181
 
163
182
  ### 5. Aggregate And Verify
164
183
 
@@ -175,8 +194,11 @@ The coordinator must not blindly relay reviewer output.
175
194
 
176
195
  Keep the two axes visible in your own notes, but present the final report by severity unless the user explicitly asked for side-by-side Standards/Spec output.
177
196
 
178
- For a Module-scheduled Closure, send the bounded capsule to the reviewer lineage
179
- and session selected by the shared protocol, then return its defect updates.
197
+ After repairs, verify medium or low findings through the coordinator's direct
198
+ failure-path check plus affected validation. Launch Closure only for the
199
+ severity, protected-contract, or invalidated-coverage triggers owned by
200
+ `review-protocol.md`. For a scheduled Closure, send the bounded capsule to the
201
+ selected reviewer lineage and return its defect updates.
180
202
 
181
203
  ## Evidence Standard
182
204
 
@@ -0,0 +1,52 @@
1
+ # Cleanup Lens
2
+
3
+ Use this method inside the code-review spec/standards lens. Its job is to reduce
4
+ maintenance surface without changing required observable behavior. It is never
5
+ a standalone gate, activation, verdict, or coverage class.
6
+
7
+ ## Depth
8
+
9
+ - **Bounded:** inspect material additions and replacements for obvious duplicate
10
+ owners, obsolete paths, workaround branches, dead code, and unjustified
11
+ abstractions.
12
+ - **Amplified:** when mandatory Review Focus names a concrete evidenced
13
+ simplification risk, inventory every material addition, replacement,
14
+ compatibility path, and runtime owner related to that risk. Do not amplify
15
+ from file count, implementation size, or review profile alone.
16
+
17
+ ## In Scope
18
+
19
+ - duplicated logic, sources of truth, registrations, or old/new paths kept in parallel
20
+ - dead helpers, flags, adapters, branches, comments, tests, or documentation left by the change
21
+ - workaround-shaped conditionals, magic ordering, symptom patches, and unnecessary state
22
+ - compatibility or fallback behavior without current repository, source-authority, or production evidence
23
+ - new services, events/listeners, adapters, or indirection with one current consumer and only speculative reuse
24
+ - ownership placement when moving or deleting code restores an existing owner without redesigning the system
25
+
26
+ Do not turn functional correctness, security, performance, product decisions,
27
+ missing regression proof, broad architecture redesign, or style preferences
28
+ into cleanup findings. Route them to the applicable code-review lens.
29
+
30
+ ## Method
31
+
32
+ Classify each material complexity decision:
33
+
34
+ - `KEEP`: a current invariant requires it and evidence or a boundary proof supports it.
35
+ - `SIMPLIFY`: required behavior can use a smaller existing seam or fewer states or branches.
36
+ - `REMOVE`: no current behavior, authority, consumer, or compatibility evidence requires it.
37
+
38
+ A one-producer/one-consumer abstraction defaults to `SIMPLIFY` unless a concrete
39
+ lifecycle, transaction, dependency-direction, or fanout invariant requires the
40
+ boundary. Do not request a new abstraction unless it reduces current
41
+ duplication or restores an existing owner now.
42
+
43
+ Report a finding only with exact evidence, concrete maintenance cost, and a
44
+ behavior-preserving fix. Uncertain removal is a non-blocking follow-up. In
45
+ amplified mode, include concise `KEEP | SIMPLIFY | REMOVE` decisions in the
46
+ spec/standards handoff; bounded mode needs decisions only when they explain a
47
+ finding or protected invariant.
48
+
49
+ Cleanup repairs retain the same defect IDs. Medium or low cleanup repairs use coordinator verification plus affected validation. Launch affected-lens Closure
50
+ only when the shared review protocol requires it for severity, protected
51
+ contract impact, or invalidated mandatory coverage; add correctness whenever
52
+ that Closure repair may alter observable behavior.
@@ -23,7 +23,8 @@ Create or revise an execution-ready specification for a downstream coding agent.
23
23
  4. Classify and record these independent facts:
24
24
  - `spec_mode`: `compact | full` — document and coordination density.
25
25
  - `implementation_size`: `small | medium | large` — expected delivery shape.
26
- - `review_profile`: `simple | medium | high` — consequence and uncertainty, resolved through the Artifact Review Module.
26
+ - `review_profile`: `simple | medium | high` — consequence and uncertainty,
27
+ resolved through the review loop owned by `$implementation-spec-review`.
27
28
  - `expected_repositories`: exact positive integer from approved scope.
28
29
 
29
30
  Do not infer one classification from another. For ticket work, `direct` returns
@@ -63,16 +64,24 @@ Read [the spec template](references/spec-template.md) before drafting, then remo
63
64
  - State exact manual/live proof when automation is not applicable.
64
65
  - Name one source of truth when behavior or data can drift. Reuse existing owners and public seams; invoke `$codebase-design` only when ownership or a public seam changes.
65
66
  - Add task-specific review checkpoints only when a risky slice becomes stable before later work. Otherwise assign its mandatory lenses, applicable targeted recipes, and concrete bug classes to final review coverage.
66
- - For medium/high-risk specs, point `Final Handoff Requirements` to the standard `$spec-implementer` Final Risk Handoff and add only task-specific deviations; do not copy its field list.
67
+ - For medium-risk specs, rely on the normal concise `$spec-implementer` completion summary unless a task-specific deviation is needed. For high-risk specs, point `Final Handoff Requirements` to the extended `$spec-implementer` Final Risk Handoff and add only task-specific deviations; do not copy its field list.
67
68
  - Keep optional cleanup, compatibility logic, feature flags, telemetry, rollout machinery, generic fallbacks, and speculative abstractions out of the spec unless source authority or a proven failure path requires them.
68
69
 
69
70
  ## Review And Save
70
71
 
71
72
  1. Save the draft at `docs/implementation-specs/YYYY-MM-DD/HHMM-<slug>.md` with temporary `status: "draft"` and `review_outcome: "Pending"` so review applies to a stable artifact path without presenting it as approved.
72
- 2. Invoke `../../docs/agents/artifact-review-loop.md` with `$implementation-spec-review` as its Adapter. Supply the saved spec, source authority, approved decisions, and evidence; do not restate or replace the Module's topology, defect lifecycle, or convergence rules.
73
- 3. Apply consolidated, scope-preserving repairs in place until the Module returns `Approved`, `Blocked`, or an eligible user-authorized `Waived` outcome.
73
+ 2. Read `../implementation-spec-review/references/review-loop.md` and invoke
74
+ `$implementation-spec-review` as its Adapter. Supply the saved spec, source
75
+ authority, approved decisions, and evidence; do not restate its topology or
76
+ defect lifecycle.
77
+ 3. Apply one consolidated, scope-preserving repair batch, then follow the owner
78
+ loop until it returns `Approved`, `Blocked`, or an eligible user-authorized
79
+ `Waived` outcome.
74
80
  4. A preflight-blocked spec may be saved with zero reviews and `review_verdict: "Not run"`. Never fabricate approval or use `Not required`.
75
- 5. Replace temporary lifecycle metadata with the Module outcome, last real Adapter verdict, review coverage/counts, accepted risks, and open stable IDs. Any substantive post-approval edit invalidates approval until reviewed again.
81
+ 5. Replace temporary lifecycle metadata with outcome, last Adapter verdict,
82
+ mandatory coverage, accepted risks, and open stable IDs. Keep pass/session
83
+ counts only for high, Closure, or interrupted review. Any substantive
84
+ post-approval edit invalidates approval until reviewed again.
76
85
 
77
86
  ## Final Response
78
87
 
@@ -82,7 +91,7 @@ Return only:
82
91
  Spec Status: Ready | Blocked
83
92
  Saved Path: <path>
84
93
  Execution: <single-agent | multi-agent>; <compact | full>; <small | medium | large>; <n> repository/repositories
85
- Review: <Approved | Blocked | Waived>; <simple | medium | high>; <pass counts and coverage>
94
+ Review: <Approved | Blocked | Waived>; <simple | medium | high>; <coverage or gaps>
86
95
  Adapter Verdict: <Approved | Needs Work | Rejected | Not run>
87
96
  Verified Defects: <stable IDs or None>
88
97
  Accepted Risks: <stable IDs, authority, and reason or None>
@@ -62,7 +62,7 @@ review_passes: "0"
62
62
  - [ ] **Live/Manual Proof:** <exact flow or Not applicable with reason>
63
63
  - [ ] **Behavior Proof:** <observable acceptance proof>
64
64
  - [ ] **Reconciliation:** every unchecked item is unfinished, blocked with evidence, or intentionally not applicable.
65
- - [ ] **Final Handoff Requirements:** <medium/high only: standard `$spec-implementer` Final Risk Handoff plus task-specific deviations or None>
65
+ - [ ] **Final Handoff Requirements:** <high only: extended `$spec-implementer` Final Risk Handoff plus task-specific deviations; omit for ordinary medium work>
66
66
  ```
67
67
 
68
68
  ## Conditional Blocks
@@ -136,7 +136,7 @@ Add only when review returns defects:
136
136
 
137
137
  ## Terminal Review Metadata
138
138
 
139
- Replace the temporary frontmatter values after the Artifact Review Module returns a real terminal outcome:
139
+ Replace the temporary frontmatter values after the owner review loop returns a real terminal outcome:
140
140
 
141
141
  ```yaml
142
142
  review_outcome: "Approved | Blocked | Waived"