codex-orchestrator 2.0.11 → 2.0.12

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 (262) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +25 -51
  3. package/dist/src/index.d.ts +2 -8
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +1 -4
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +46 -31
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +157 -195
  10. package/dist/src/v2/acceptance-proof.js.map +1 -1
  11. package/dist/src/v2/active-attempt.d.ts +94 -0
  12. package/dist/src/v2/active-attempt.d.ts.map +1 -0
  13. package/dist/src/v2/active-attempt.js +200 -0
  14. package/dist/src/v2/active-attempt.js.map +1 -0
  15. package/dist/src/v2/adapters/command.d.ts +6 -0
  16. package/dist/src/v2/adapters/command.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/command.js +43 -2
  18. package/dist/src/v2/adapters/command.js.map +1 -1
  19. package/dist/src/v2/candidate.d.ts +15 -31
  20. package/dist/src/v2/candidate.d.ts.map +1 -1
  21. package/dist/src/v2/candidate.js +7 -29
  22. package/dist/src/v2/candidate.js.map +1 -1
  23. package/dist/src/v2/checked-change.d.ts +3 -2
  24. package/dist/src/v2/checked-change.d.ts.map +1 -1
  25. package/dist/src/v2/checked-change.js +4 -3
  26. package/dist/src/v2/checked-change.js.map +1 -1
  27. package/dist/src/v2/cli-contract.d.ts +1 -1
  28. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  29. package/dist/src/v2/cli-contract.js +4 -6
  30. package/dist/src/v2/cli-contract.js.map +1 -1
  31. package/dist/src/v2/cli.d.ts +8 -0
  32. package/dist/src/v2/cli.d.ts.map +1 -1
  33. package/dist/src/v2/cli.js +13 -0
  34. package/dist/src/v2/cli.js.map +1 -1
  35. package/dist/src/v2/code-review-report.d.ts +10 -18
  36. package/dist/src/v2/code-review-report.d.ts.map +1 -1
  37. package/dist/src/v2/code-review-report.js +63 -60
  38. package/dist/src/v2/code-review-report.js.map +1 -1
  39. package/dist/src/v2/codex-process.d.ts +6 -2
  40. package/dist/src/v2/codex-process.d.ts.map +1 -1
  41. package/dist/src/v2/codex-process.js +25 -9
  42. package/dist/src/v2/codex-process.js.map +1 -1
  43. package/dist/src/v2/config.d.ts +0 -2
  44. package/dist/src/v2/config.d.ts.map +1 -1
  45. package/dist/src/v2/config.js +3 -6
  46. package/dist/src/v2/config.js.map +1 -1
  47. package/dist/src/v2/contained-report-operation.d.ts +41 -196
  48. package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
  49. package/dist/src/v2/contained-report-operation.js +139 -466
  50. package/dist/src/v2/contained-report-operation.js.map +1 -1
  51. package/dist/src/v2/containment.d.ts +1 -0
  52. package/dist/src/v2/containment.d.ts.map +1 -1
  53. package/dist/src/v2/containment.js +12 -2
  54. package/dist/src/v2/containment.js.map +1 -1
  55. package/dist/src/v2/delivery-authority.d.ts +26 -0
  56. package/dist/src/v2/delivery-authority.d.ts.map +1 -0
  57. package/dist/src/v2/delivery-authority.js +44 -0
  58. package/dist/src/v2/delivery-authority.js.map +1 -0
  59. package/dist/src/v2/direct-delivery.d.ts +16 -36
  60. package/dist/src/v2/direct-delivery.d.ts.map +1 -1
  61. package/dist/src/v2/direct-delivery.js +135 -122
  62. package/dist/src/v2/direct-delivery.js.map +1 -1
  63. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -1
  64. package/dist/src/v2/immutable-workflow-publisher.js +3 -1
  65. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
  66. package/dist/src/v2/implementation-report.d.ts +3 -1
  67. package/dist/src/v2/implementation-report.d.ts.map +1 -1
  68. package/dist/src/v2/implementation-report.js +17 -4
  69. package/dist/src/v2/implementation-report.js.map +1 -1
  70. package/dist/src/v2/implementation-reviewer.d.ts +41 -12
  71. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
  72. package/dist/src/v2/implementation-reviewer.js +114 -42
  73. package/dist/src/v2/implementation-reviewer.js.map +1 -1
  74. package/dist/src/v2/pending-effect-settlement.d.ts +44 -0
  75. package/dist/src/v2/pending-effect-settlement.d.ts.map +1 -0
  76. package/dist/src/v2/pending-effect-settlement.js +69 -0
  77. package/dist/src/v2/pending-effect-settlement.js.map +1 -0
  78. package/dist/src/v2/process-identity.d.ts +45 -0
  79. package/dist/src/v2/process-identity.d.ts.map +1 -0
  80. package/dist/src/v2/process-identity.js +118 -0
  81. package/dist/src/v2/process-identity.js.map +1 -0
  82. package/dist/src/v2/proof-report.d.ts +2 -1
  83. package/dist/src/v2/proof-report.d.ts.map +1 -1
  84. package/dist/src/v2/proof-report.js +10 -4
  85. package/dist/src/v2/proof-report.js.map +1 -1
  86. package/dist/src/v2/review-feedback-coordinator.d.ts +1 -1
  87. package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -1
  88. package/dist/src/v2/review-feedback-coordinator.js +1 -1
  89. package/dist/src/v2/review-feedback-coordinator.js.map +1 -1
  90. package/dist/src/v2/review-feedback.d.ts +14 -20
  91. package/dist/src/v2/review-feedback.d.ts.map +1 -1
  92. package/dist/src/v2/review-feedback.js +45 -87
  93. package/dist/src/v2/review-feedback.js.map +1 -1
  94. package/dist/src/v2/run-issue.d.ts +129 -88
  95. package/dist/src/v2/run-issue.d.ts.map +1 -1
  96. package/dist/src/v2/run-issue.js +1965 -2381
  97. package/dist/src/v2/run-issue.js.map +1 -1
  98. package/dist/src/v2/run-state-projections.d.ts +84 -0
  99. package/dist/src/v2/run-state-projections.d.ts.map +1 -0
  100. package/dist/src/v2/run-state-projections.js +142 -0
  101. package/dist/src/v2/run-state-projections.js.map +1 -0
  102. package/dist/src/v2/run-store.d.ts +99 -81
  103. package/dist/src/v2/run-store.d.ts.map +1 -1
  104. package/dist/src/v2/run-store.js +245 -542
  105. package/dist/src/v2/run-store.js.map +1 -1
  106. package/dist/src/v2/runtime-assets.d.ts +3 -0
  107. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  108. package/dist/src/v2/runtime-assets.js +104 -0
  109. package/dist/src/v2/runtime-assets.js.map +1 -1
  110. package/dist/src/v2/runtime.d.ts +56 -44
  111. package/dist/src/v2/runtime.d.ts.map +1 -1
  112. package/dist/src/v2/runtime.js +383 -503
  113. package/dist/src/v2/runtime.js.map +1 -1
  114. package/dist/src/v2/setup.js +0 -2
  115. package/dist/src/v2/setup.js.map +1 -1
  116. package/dist/src/v2/validation-progression.d.ts +70 -0
  117. package/dist/src/v2/validation-progression.d.ts.map +1 -0
  118. package/dist/src/v2/validation-progression.js +247 -0
  119. package/dist/src/v2/validation-progression.js.map +1 -0
  120. package/dist/src/v2/workflow-assets.d.ts +9 -3
  121. package/dist/src/v2/workflow-assets.d.ts.map +1 -1
  122. package/dist/src/v2/workflow-assets.js +256 -43
  123. package/dist/src/v2/workflow-assets.js.map +1 -1
  124. package/internal-workflow/docs/agents/bug-workflow-routing.md +9 -7
  125. package/internal-workflow/docs/agents/coding-skill-routing.md +170 -120
  126. package/internal-workflow/docs/agents/tool-usage.md +23 -12
  127. package/internal-workflow/manifest.json +1 -1
  128. package/internal-workflow/operations/code-review/SKILL.md +34 -15
  129. package/internal-workflow/operations/implementation/SKILL.md +21 -16
  130. package/internal-workflow/profiles/implementer.toml +9 -0
  131. package/internal-workflow/profiles/review_coordinator.toml +9 -0
  132. package/internal-workflow/profiles/spec_reviewer.toml +9 -0
  133. package/internal-workflow/profiles/standards_reviewer.toml +9 -0
  134. package/internal-workflow/schemas/code-review-v1.json +1 -1
  135. package/internal-workflow/schemas/implementation-report-v1.json +1 -1
  136. package/internal-workflow/schemas/proof-report-v1.json +1 -1
  137. package/internal-workflow/skills/bug-root-cause-explainer/SKILL.md +114 -0
  138. package/internal-workflow/skills/bug-root-cause-explainer/agents/openai.yaml +7 -0
  139. package/internal-workflow/skills/bug-root-cause-explainer/evals/evals.json +18 -0
  140. package/internal-workflow/skills/code-review/SKILL.md +84 -306
  141. package/internal-workflow/skills/code-review/agents/openai.yaml +5 -3
  142. package/internal-workflow/skills/code-review/evals/evals.json +83 -0
  143. package/internal-workflow/skills/code-review/references/standards-smells.md +41 -0
  144. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +69 -32
  145. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +2 -2
  146. package/internal-workflow/skills/diagnosing-bugs/evals/evals.json +63 -0
  147. package/internal-workflow/skills/grilling/SKILL.md +51 -0
  148. package/internal-workflow/skills/grilling/agents/openai.yaml +6 -0
  149. package/internal-workflow/skills/grilling/evals/evals.json +47 -0
  150. package/internal-workflow/skills/implement/SKILL.md +135 -0
  151. package/internal-workflow/skills/implement/agents/openai.yaml +6 -0
  152. package/internal-workflow/skills/implement/evals/evals.json +150 -0
  153. package/internal-workflow/skills/plan/SKILL.md +59 -0
  154. package/internal-workflow/skills/plan/agents/openai.yaml +6 -0
  155. package/internal-workflow/skills/plan/evals/evals.json +36 -0
  156. package/internal-workflow/skills/prototype/LOGIC.md +130 -0
  157. package/internal-workflow/skills/prototype/SKILL.md +69 -0
  158. package/internal-workflow/skills/prototype/UI.md +157 -0
  159. package/internal-workflow/skills/prototype/agents/openai.yaml +6 -0
  160. package/internal-workflow/skills/prototype/evals/evals.json +67 -0
  161. package/internal-workflow/skills/research/SKILL.md +110 -0
  162. package/internal-workflow/skills/research/agents/openai.yaml +6 -0
  163. package/internal-workflow/skills/research/evals/evals.json +49 -0
  164. package/internal-workflow/skills/tdd/SKILL.md +72 -67
  165. package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
  166. package/internal-workflow/skills/tdd/evals/evals.json +12 -0
  167. package/internal-workflow/skills/tdd/mocking.md +48 -1
  168. package/internal-workflow/skills/tdd/refactoring.md +3 -3
  169. package/internal-workflow/skills/tickets-orchestrator/SKILL.md +199 -0
  170. package/internal-workflow/skills/tickets-orchestrator/agents/openai.yaml +6 -0
  171. package/internal-workflow/skills/tickets-orchestrator/evals/evals.json +126 -0
  172. package/internal-workflow/skills/tickets-orchestrator/references/delegate-integrate.md +83 -0
  173. package/internal-workflow/skills/tickets-orchestrator/references/finish-delivery.md +69 -0
  174. package/internal-workflow/skills/tickets-orchestrator/references/stop-completion.md +63 -0
  175. package/internal-workflow/skills/to-spec/SKILL.md +133 -0
  176. package/internal-workflow/skills/to-spec/agents/openai.yaml +6 -0
  177. package/internal-workflow/skills/to-spec/evals/evals.json +24 -0
  178. package/internal-workflow/skills/to-tickets/SKILL.md +189 -0
  179. package/internal-workflow/skills/to-tickets/agents/openai.yaml +6 -0
  180. package/internal-workflow/skills/to-tickets/evals/evals.json +79 -0
  181. package/internal-workflow/skills/to-tickets/references/publishing-details.md +117 -0
  182. package/package.json +1 -1
  183. package/dist/src/v2/proof-store.d.ts +0 -54
  184. package/dist/src/v2/proof-store.d.ts.map +0 -1
  185. package/dist/src/v2/proof-store.js +0 -301
  186. package/dist/src/v2/proof-store.js.map +0 -1
  187. package/dist/src/v2/route-continuations.d.ts +0 -32
  188. package/dist/src/v2/route-continuations.d.ts.map +0 -1
  189. package/dist/src/v2/route-continuations.js +0 -2
  190. package/dist/src/v2/route-continuations.js.map +0 -1
  191. package/dist/src/v2/route-coordinator.d.ts +0 -72
  192. package/dist/src/v2/route-coordinator.d.ts.map +0 -1
  193. package/dist/src/v2/route-coordinator.js +0 -275
  194. package/dist/src/v2/route-coordinator.js.map +0 -1
  195. package/dist/src/v2/route-decision.d.ts +0 -120
  196. package/dist/src/v2/route-decision.d.ts.map +0 -1
  197. package/dist/src/v2/route-decision.js +0 -380
  198. package/dist/src/v2/route-decision.js.map +0 -1
  199. package/dist/src/v2/spec-coordinator.d.ts +0 -73
  200. package/dist/src/v2/spec-coordinator.d.ts.map +0 -1
  201. package/dist/src/v2/spec-coordinator.js +0 -126
  202. package/dist/src/v2/spec-coordinator.js.map +0 -1
  203. package/dist/src/v2/spec-delivery.d.ts +0 -112
  204. package/dist/src/v2/spec-delivery.d.ts.map +0 -1
  205. package/dist/src/v2/spec-delivery.js +0 -336
  206. package/dist/src/v2/spec-delivery.js.map +0 -1
  207. package/dist/src/v2/triage-route.d.ts +0 -68
  208. package/dist/src/v2/triage-route.d.ts.map +0 -1
  209. package/dist/src/v2/triage-route.js +0 -223
  210. package/dist/src/v2/triage-route.js.map +0 -1
  211. package/dist/src/v2/waiting-human-coordinator.d.ts +0 -49
  212. package/dist/src/v2/waiting-human-coordinator.d.ts.map +0 -1
  213. package/dist/src/v2/waiting-human-coordinator.js +0 -509
  214. package/dist/src/v2/waiting-human-coordinator.js.map +0 -1
  215. package/dist/src/v2/waiting-human.d.ts +0 -143
  216. package/dist/src/v2/waiting-human.d.ts.map +0 -1
  217. package/dist/src/v2/waiting-human.js +0 -408
  218. package/dist/src/v2/waiting-human.js.map +0 -1
  219. package/internal-workflow/docs/agents/contract-test-ledger.md +0 -71
  220. package/internal-workflow/docs/agents/review-gates.md +0 -42
  221. package/internal-workflow/docs/agents/review-protocol.md +0 -98
  222. package/internal-workflow/evals/coding-skill-evals.json +0 -373
  223. package/internal-workflow/operations/ambiguity-review/SKILL.md +0 -5
  224. package/internal-workflow/operations/qualification-repair/SKILL.md +0 -17
  225. package/internal-workflow/operations/spec-author/SKILL.md +0 -12
  226. package/internal-workflow/operations/spec-review/SKILL.md +0 -12
  227. package/internal-workflow/operations/triage/SKILL.md +0 -12
  228. package/internal-workflow/profiles/analyst_deep.toml +0 -9
  229. package/internal-workflow/profiles/implementer_standard.toml +0 -9
  230. package/internal-workflow/profiles/proof_agent.toml +0 -8
  231. package/internal-workflow/profiles/reviewer_deep.toml +0 -9
  232. package/internal-workflow/profiles/reviewer_standard.toml +0 -9
  233. package/internal-workflow/schemas/ambiguity-review-v1.json +0 -1
  234. package/internal-workflow/schemas/spec-author-v1.json +0 -1
  235. package/internal-workflow/schemas/spec-review-v1.json +0 -30
  236. package/internal-workflow/schemas/triage-route-v1.json +0 -1
  237. package/internal-workflow/skills/agent-auto/SKILL.md +0 -19
  238. package/internal-workflow/skills/agent-auto/agents/openai.yaml +0 -6
  239. package/internal-workflow/skills/code-debugger/SKILL.md +0 -122
  240. package/internal-workflow/skills/code-debugger/agents/openai.yaml +0 -7
  241. package/internal-workflow/skills/code-review/references/bug-classes.md +0 -56
  242. package/internal-workflow/skills/code-review/references/cleanup-lens.md +0 -52
  243. package/internal-workflow/skills/code-review/references/framework-lenses.md +0 -34
  244. package/internal-workflow/skills/code-review/references/targeted-recipes.md +0 -49
  245. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +0 -107
  246. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +0 -6
  247. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +0 -32
  248. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +0 -146
  249. package/internal-workflow/skills/implementation-spec-review/SKILL.md +0 -131
  250. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +0 -6
  251. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +0 -78
  252. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +0 -121
  253. package/internal-workflow/skills/small-task-implementer/SKILL.md +0 -112
  254. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +0 -6
  255. package/internal-workflow/skills/spec-implementer/SKILL.md +0 -133
  256. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +0 -6
  257. package/internal-workflow/skills/spec-implementer/evals/evals.json +0 -30
  258. package/internal-workflow/skills/spec-implementer/references/review-loop.md +0 -100
  259. package/internal-workflow/skills/triage/AGENT-BRIEF.md +0 -192
  260. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +0 -101
  261. package/internal-workflow/skills/triage/SKILL.md +0 -134
  262. package/internal-workflow/skills/triage/agents/openai.yaml +0 -6
@@ -1,24 +1,29 @@
1
1
  # Implementation Operation
2
2
 
3
- Follow [Agent Auto](../../skills/agent-auto/SKILL.md) as the Runner adapter.
4
- Use the packaged [coding routing](../../docs/agents/coding-skill-routing.md)
5
- only for direct implementation, TDD, bug-routing, evidence, and affected
6
- validation. Read [TDD](../../skills/tdd/SKILL.md) before behavior changes. For
7
- a confirmed bug use [Code Debugger](../../skills/code-debugger/SKILL.md); use
8
- [Diagnosing Bugs](../../skills/diagnosing-bugs/SKILL.md) only when a reliable
9
- failing signal is missing. A tiny task may use
10
- [Small Task Implementer](../../skills/small-task-implementer/SKILL.md) only
11
- after its Fit Gate. Apply the declared
12
- [bug routing](../../docs/agents/bug-workflow-routing.md),
13
- [contract ledger](../../docs/agents/contract-test-ledger.md),
14
- [review gate](../../docs/agents/review-gates.md), and
15
- [tool policy](../../docs/agents/tool-usage.md) only when their branch is active.
3
+ Follow packaged [Implement](../../skills/implement/SKILL.md) for the authorized
4
+ change. Use packaged [coding routing](../../docs/agents/coding-skill-routing.md)
5
+ for the minimal Plan/Implement/Review boundary. Use
6
+ [TDD](../../skills/tdd/SKILL.md) where a natural public seam can fail before the
7
+ change, or direct observable proof otherwise. Use
8
+ [Diagnosing Bugs](../../skills/diagnosing-bugs/SKILL.md) only when the failing
9
+ signal is hard, flaky, unclear, or performance-related. Apply the declared
10
+ [bug routing](../../docs/agents/bug-workflow-routing.md) and
11
+ [tool policy](../../docs/agents/tool-usage.md) only when relevant.
12
+
13
+ Within this operation, Diagnosing Bugs is a side procedure of the enclosing
14
+ Implement procedure, not a terminal response. Return its reproduction and
15
+ root-cause evidence to that same Implement procedure, then continue the
16
+ authorized fix through TDD or other regression proof and post-fix verification.
17
+ Continue applicable Review and commit steps only when this operation has not
18
+ reserved them to the Runner. Do not emit the Diagnosing Bugs output contract;
19
+ finish by emitting the non-empty implementation report required below.
16
20
 
17
21
  The issue is already authorized for implementation. Do not start planning,
18
- ticket publication, implementation-spec authoring, independent review, or
19
- delivery. The Runner owns review, checks, commits, publication, retries, and
22
+ ticket publication, independent review, or delivery. Preserve the same logical
23
+ Implement ownership for supplied repair findings. The Runner owns affected
24
+ checks, proof, review, commits, publication, and
20
25
  external state. Never commit, push, publish, mutate GitHub, or expose
21
26
  credentials. In the final report, `changedFiles` is the complete current product
22
- change set across all implementation cycles, not only files touched in this
27
+ change set across the Run, not only files touched in this
23
28
  attempt; exclude Runner-owned proof artifacts. Return only
24
29
  `schemas/implementation-report-v1.json`.
@@ -0,0 +1,9 @@
1
+ name = "implementer"
2
+ description = "Write-capable worker for exactly one approved executable ticket."
3
+ nickname_candidates = ["Forge"]
4
+ model = "gpt-5.6-sol"
5
+ model_reasoning_effort = "medium"
6
+ sandbox_mode = "workspace-write"
7
+ developer_instructions = """
8
+ Implement only the assigned ticket through its observable seam. Preserve unrelated work, respect bounded write scope, and stop on overlap or decision drift. Never stage, commit, push, open a PR, or modify tracker state. Return changed files, proof, skipped checks, risks, and blockers to root.
9
+ """
@@ -0,0 +1,9 @@
1
+ name = "review_coordinator"
2
+ description = "Read-only owner of one packaged Review invocation."
3
+ nickname_candidates = ["Prism"]
4
+ model = "gpt-5.6-sol"
5
+ model_reasoning_effort = "high"
6
+ sandbox_mode = "read-only"
7
+ developer_instructions = """
8
+ Execute the packaged Review procedure exactly. For complete Review launch every role available from the Runner. For targeted Review launch only the affected non-empty subset, using every available role only when the repair crosses lenses or cannot be isolated. Capture each fresh identity, complete every wait, reconcile the independent results, and return only the aggregate schema-bound report. Never edit files or mutate external state.
9
+ """
@@ -0,0 +1,9 @@
1
+ name = "spec_reviewer"
2
+ description = "Independent read-only reviewer for requirement fidelity and scope drift."
3
+ nickname_candidates = ["Sigma"]
4
+ model = "gpt-5.6-sol"
5
+ model_reasoning_effort = "high"
6
+ sandbox_mode = "read-only"
7
+ developer_instructions = """
8
+ Review the settled target only against the supplied request, issue, or Parent PRD. Report missing, partial, incorrect, or unrequested behavior with the exact authority source, file and line, trigger, impact, and evidence. Inspection and the reviewer label create no authority. Block only for a concrete defect or required-proof gap causally linked to supplied authority; report preferences and uncited obligations as observations. Never edit files or prescribe architecture beyond the smallest required outcome.
9
+ """
@@ -0,0 +1,9 @@
1
+ name = "standards_reviewer"
2
+ description = "Independent read-only reviewer for correctness, repository standards, and cleanup."
3
+ nickname_candidates = ["Delta"]
4
+ model = "gpt-5.6-sol"
5
+ model_reasoning_effort = "high"
6
+ sandbox_mode = "read-only"
7
+ developer_instructions = """
8
+ Review the settled target and inspect its full impact cone for correctness, failure paths, repository rules, security, maintainability, zero legacy, duplicate ownership, and unnecessary machinery. Do not invent product obligations. Inspection and the reviewer label create no authority. Block only with evidence of a concrete defect or proof gap causally linked to an explicit obligation, existing invariant, or mandatory repository rule; report optional architecture, robustness, cleanup, and hardening as observations. If optional machinery causes a defect, prefer its removal over repair or extension. Never edit files.
9
+ """
@@ -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","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
+ {"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"type":"object","additionalProperties":false,"required":["version","operation","targetRevision","targetFingerprint","verdict","coverage","defects","residualRisks","reviewerSessionId","reviewers","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"]},"coverage":{"type":"array","items":{"type":"string","minLength":1,"maxLength":16384}},"defects":{"type":"array","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","items":{"type":"string","minLength":1,"maxLength":16384}},"repair":{"type":"string","minLength":1,"maxLength":16384},"affectedTargets":{"type":"array","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","items":{"type":"string","minLength":1,"maxLength":16384}},"reviewerSessionId":{"type":"string","minLength":1,"maxLength":16384},"reviewers":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["role","sessionId","verdict"],"properties":{"role":{"type":"string","minLength":1,"maxLength":16384},"sessionId":{"type":"string","minLength":1,"maxLength":16384},"verdict":{"type":"string","enum":["approve","block"]}}}},"repairFindingOutcomes":{"type":"array","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":{"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}}}}}}]}}}
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","resumable"],"properties":{"kind":{"type":"string","enum":["credential","tool","service","decision-delta","out-of-scope","authority-boundary"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"attempted":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"resumable":{"type":"boolean"},"reviewerRejectionDetail":{"type":"string","minLength":1,"maxLength":4096}}}}}]}}}
@@ -1 +1 @@
1
- {"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"anyOf":[{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"passed"},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","const":"passed"},"confidence":{"type":"string","const":"high"},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":0,"items":{"type":"string"}},"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":0,"items":{"type":"string"}},"artifacts":{"type":"array","maxItems":256,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["generated-file","screenshot"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean","const":false},"description":{"type":"string","minLength":1,"maxLength":4096}}}]}},"visualEvidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}}]},"findings":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["kind","summary","attempted"],"properties":{"kind":{"type":"string","enum":["credential","tool","service","product-decision"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"attempted":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}]}}}]}}}
1
+ {"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"anyOf":[{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"passed"},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","const":"passed"},"confidence":{"type":"string","const":"high"},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":0,"items":{"type":"string"}},"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":0,"items":{"type":"string"}},"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","resumable"],"properties":{"kind":{"type":"string","enum":["credential","tool","service","decision-delta","out-of-scope","authority-boundary"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"attempted":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"resumable":{"type":"boolean"}}}]}}}]}}}
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: bug-root-cause-explainer
3
+ description: "Diagnose and explain a bug without editing code. Use for why/root-cause requests or when the user says not to fix yet; validate the issue, trace ownership, explain with evidence, and offer a proportional fix path."
4
+ ---
5
+
6
+ # Bug Root Cause Explainer
7
+
8
+ ## Overview
9
+
10
+ Use this skill when the main deliverable is understanding, not an immediate patch. Prove the issue, find the owning cause, explain it simply, propose the smallest safe path, and wait for the user's decision.
11
+
12
+ ## Core Rule
13
+
14
+ Do not jump into implementation. Finish the diagnosis, offer one minimal path,
15
+ and stop. Add a structural path only when evidence proves an ownership defect
16
+ that the minimal fix leaves in place.
17
+
18
+ For routing between bug diagnosis, feedback-loop construction, and implementation, use `../../docs/agents/bug-workflow-routing.md`.
19
+
20
+ Use `implement` instead when the user wants an end-to-end debug-and-fix flow in one pass.
21
+ After the user chooses a path, hand off implementation to `implement`.
22
+
23
+ If the bug is hard, flaky, performance-related, or lacks a reliable feedback loop, use `diagnosing-bugs` before choosing a fix path. Do not guess a root cause without evidence.
24
+
25
+ Use `../../docs/agents/confidence-rubric.md` to label root-cause certainty. If the evidence is low-confidence, present it as an uncertainty or verification gap instead of a proven cause.
26
+
27
+ ## Investigation Workflow
28
+
29
+ 1. Validate the bug before believing the report.
30
+ - Reproduce the issue when possible.
31
+ - If full reproduction is expensive, recover the strongest available signal: failing test, runtime log, broken response, visible UI behavior, or deterministic code-path contradiction.
32
+ - If the report is outdated, incorrect, or actually expected behavior, say so clearly and stop there.
33
+
34
+ 2. Trace the owning path.
35
+ - Follow the real execution path instead of reading files broadly.
36
+ - Identify the exact entrypoint, decision point, state mutation, async boundary, and downstream effect that create the symptom.
37
+ - Prefer the owner module over secondary symptoms. Do not anchor the diagnosis in the last place where the bad data merely becomes visible.
38
+
39
+ 3. Separate symptom from root cause.
40
+ - State what the user sees.
41
+ - State what the code is actually doing.
42
+ - State where those two paths diverge.
43
+ - If there are multiple contributing issues, name the primary cause first and list the others only as amplifiers.
44
+
45
+ 4. Translate the diagnosis into plain language.
46
+ - Explain the issue as if speaking to a product-minded teammate, not only to the author of the code.
47
+ - Keep the explanation concrete and simple.
48
+ - Avoid jargon when possible.
49
+ - When jargon is unavoidable, define it in one short sentence.
50
+
51
+ 5. Support the explanation with exact references.
52
+ - Always cite the concrete file and function or method where the problem starts.
53
+ - Add a second reference for the downstream effect when that makes the explanation clearer.
54
+ - Include line references when they materially help the reader verify the claim.
55
+
56
+ 6. Offer proportional solution paths.
57
+ - Before proposing fixes for a confirmed bug, apply `../../docs/agents/bugfix-quality-gate.md`: state the invariant, diagnosis boundary, adjacent paths not inspected, and what the evidence does not prove.
58
+ - Always offer the smallest safe fix.
59
+ - Add one structural path only for a proven ownership defect; tie its scope to that evidence.
60
+
61
+ 7. Stop and wait.
62
+ - Ask whether to implement the path, or which path when two are justified.
63
+ - Do not edit code, write files, or stage changes after the diagnosis unless the user explicitly chooses a path or explicitly asks for implementation.
64
+
65
+ ## Explanation Rules
66
+
67
+ - Prefer short paragraphs over dense technical dumps.
68
+ - Answer the hidden user questions directly:
69
+ - What is broken?
70
+ - Why is it happening?
71
+ - Where exactly in the code does it start?
72
+ - Why does it show up in this specific way?
73
+ - Use concrete phrasing like "the code throws away X here" or "this branch never runs because Y is always false here".
74
+ - Avoid vague language like "there may be a race" unless you can point to the exact competing operations.
75
+ - Avoid speculative fixes before the root cause is proven.
76
+
77
+ ## Output Contract
78
+
79
+ Use this shape when reporting back:
80
+
81
+ ```md
82
+ ## What is happening
83
+
84
+ <Very simple explanation of the real problem in plain language. Keep it short and concrete.>
85
+
86
+ ## Where it starts in code
87
+
88
+ - `<path>` — `<function or method>`: <what this code is doing wrong>
89
+ - `<path>` — `<function or method>`: <how the bad state reaches the visible symptom>
90
+
91
+ ## Why the symptom looks like this
92
+
93
+ <Short explanation connecting cause to symptom.>
94
+
95
+ ## Fix path
96
+
97
+ 1. Minimal path
98
+ - Scope: <smallest change>
99
+ - Tradeoff: <what this solves and what it does not improve>
100
+
101
+ 2. Structural path (only for a proven ownership defect)
102
+ - Scope: <cleaner ownership fix with minimal necessary breadth>
103
+ - Tradeoff: <why this is better long-term and what extra work it needs>
104
+
105
+ ## Decision
106
+
107
+ Do you want me to implement this path?
108
+ ```
109
+
110
+ ## Escalation Rules
111
+
112
+ - If the evidence is still ambiguous after careful tracing, present the ambiguity explicitly instead of pretending the root cause is proven.
113
+ - If multiple fixes are valid but change product behavior differently, say that the choice is product-sensitive and ask the user to choose.
114
+ - If the issue is security-critical or can cause data loss, say so clearly before presenting the two paths.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: "Bug Root Cause Explainer"
3
+ short_description: "Investigate a bug before proposing a fix"
4
+ default_prompt: "Use $bug-root-cause-explainer to investigate the bug, explain the proven cause with concrete references, offer one minimal fix path, and add a structural path only for a proven ownership defect. Wait before changing code."
5
+
6
+ policy:
7
+ allow_implicit_invocation: true
@@ -0,0 +1,18 @@
1
+ {
2
+ "schema_version": 1,
3
+ "skill": "bug-root-cause-explainer",
4
+ "cases": [
5
+ {
6
+ "id": "minimal-path-default",
7
+ "prompt": "Explain a confirmed local bug whose owner and smallest safe fix are clear.",
8
+ "expected": ["offer one minimal fix path"],
9
+ "forbidden": ["invent a structural alternative"]
10
+ },
11
+ {
12
+ "id": "structural-path-needs-ownership-defect",
13
+ "prompt": "Explain a confirmed bug caused by duplicated ownership across two modules.",
14
+ "expected": ["offer the minimal path", "add a structural path tied to the proven ownership defect"],
15
+ "forbidden": ["propose broad architecture cleanup"]
16
+ }
17
+ ]
18
+ }