codex-orchestrator 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/CHANGELOG.md +44 -426
  2. package/README.md +135 -34
  3. package/dist/src/index.d.ts +11 -1
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +5 -0
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +3 -0
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +2 -8
  10. package/dist/src/v2/acceptance-proof.js.map +1 -1
  11. package/dist/src/v2/adapters/gh-issue-adapter.d.ts +5 -3
  12. package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -1
  13. package/dist/src/v2/adapters/gh-issue-adapter.js +67 -12
  14. package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
  15. package/dist/src/v2/adapters/issues.d.ts +16 -2
  16. package/dist/src/v2/adapters/issues.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/issues.js +15 -5
  18. package/dist/src/v2/adapters/issues.js.map +1 -1
  19. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts +1 -0
  20. package/dist/src/v2/adapters/mission-coordinator-lock.d.ts.map +1 -1
  21. package/dist/src/v2/adapters/mission-coordinator-lock.js +5 -1
  22. package/dist/src/v2/adapters/mission-coordinator-lock.js.map +1 -1
  23. package/dist/src/v2/cli-contract.d.ts +3 -3
  24. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  25. package/dist/src/v2/cli-contract.js +9 -1
  26. package/dist/src/v2/cli-contract.js.map +1 -1
  27. package/dist/src/v2/cli.d.ts +24 -0
  28. package/dist/src/v2/cli.d.ts.map +1 -0
  29. package/dist/src/v2/{candidate-cli.js → cli.js} +30 -26
  30. package/dist/src/v2/cli.js.map +1 -0
  31. package/dist/src/v2/code-review-report.d.ts +66 -0
  32. package/dist/src/v2/code-review-report.d.ts.map +1 -0
  33. package/dist/src/v2/code-review-report.js +259 -0
  34. package/dist/src/v2/code-review-report.js.map +1 -0
  35. package/dist/src/v2/codex-process.d.ts +8 -1
  36. package/dist/src/v2/codex-process.d.ts.map +1 -1
  37. package/dist/src/v2/codex-process.js +22 -0
  38. package/dist/src/v2/codex-process.js.map +1 -1
  39. package/dist/src/v2/config.d.ts +4 -3
  40. package/dist/src/v2/config.d.ts.map +1 -1
  41. package/dist/src/v2/config.js +8 -3
  42. package/dist/src/v2/config.js.map +1 -1
  43. package/dist/src/v2/contained-report-operation.d.ts +100 -0
  44. package/dist/src/v2/contained-report-operation.d.ts.map +1 -0
  45. package/dist/src/v2/contained-report-operation.js +200 -0
  46. package/dist/src/v2/contained-report-operation.js.map +1 -0
  47. package/dist/src/v2/containment.d.ts +10 -0
  48. package/dist/src/v2/containment.d.ts.map +1 -1
  49. package/dist/src/v2/containment.js +49 -1
  50. package/dist/src/v2/containment.js.map +1 -1
  51. package/dist/src/v2/direct-delivery.d.ts +96 -0
  52. package/dist/src/v2/direct-delivery.d.ts.map +1 -0
  53. package/dist/src/v2/direct-delivery.js +482 -0
  54. package/dist/src/v2/direct-delivery.js.map +1 -0
  55. package/dist/src/v2/immutable-workflow-publisher.d.ts +40 -0
  56. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -0
  57. package/dist/src/v2/immutable-workflow-publisher.js +218 -0
  58. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -0
  59. package/dist/src/v2/implementation-reviewer.d.ts +81 -0
  60. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -0
  61. package/dist/src/v2/implementation-reviewer.js +157 -0
  62. package/dist/src/v2/implementation-reviewer.js.map +1 -0
  63. package/dist/src/v2/owner-control-lock.d.ts +41 -0
  64. package/dist/src/v2/owner-control-lock.d.ts.map +1 -0
  65. package/dist/src/v2/owner-control-lock.js +174 -0
  66. package/dist/src/v2/owner-control-lock.js.map +1 -0
  67. package/dist/src/v2/proof-report.d.ts.map +1 -1
  68. package/dist/src/v2/proof-report.js +55 -29
  69. package/dist/src/v2/proof-report.js.map +1 -1
  70. package/dist/src/v2/route-continuations.d.ts +32 -0
  71. package/dist/src/v2/route-continuations.d.ts.map +1 -0
  72. package/dist/src/v2/route-continuations.js +2 -0
  73. package/dist/src/v2/route-continuations.js.map +1 -0
  74. package/dist/src/v2/route-coordinator.d.ts +77 -0
  75. package/dist/src/v2/route-coordinator.d.ts.map +1 -0
  76. package/dist/src/v2/route-coordinator.js +370 -0
  77. package/dist/src/v2/route-coordinator.js.map +1 -0
  78. package/dist/src/v2/route-decision.d.ts +129 -0
  79. package/dist/src/v2/route-decision.d.ts.map +1 -0
  80. package/dist/src/v2/route-decision.js +400 -0
  81. package/dist/src/v2/route-decision.js.map +1 -0
  82. package/dist/src/v2/run-issue.d.ts +64 -6
  83. package/dist/src/v2/run-issue.d.ts.map +1 -1
  84. package/dist/src/v2/run-issue.js +962 -92
  85. package/dist/src/v2/run-issue.js.map +1 -1
  86. package/dist/src/v2/run-store.d.ts +25 -1
  87. package/dist/src/v2/run-store.d.ts.map +1 -1
  88. package/dist/src/v2/run-store.js +129 -4
  89. package/dist/src/v2/run-store.js.map +1 -1
  90. package/dist/src/v2/runtime-assets.d.ts +15 -13
  91. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  92. package/dist/src/v2/runtime-assets.js +263 -416
  93. package/dist/src/v2/runtime-assets.js.map +1 -1
  94. package/dist/src/v2/runtime.d.ts +17 -9
  95. package/dist/src/v2/runtime.d.ts.map +1 -1
  96. package/dist/src/v2/runtime.js +564 -64
  97. package/dist/src/v2/runtime.js.map +1 -1
  98. package/dist/src/v2/setup-cli.d.ts.map +1 -1
  99. package/dist/src/v2/setup-cli.js +4 -10
  100. package/dist/src/v2/setup-cli.js.map +1 -1
  101. package/dist/src/v2/setup-runtime.d.ts.map +1 -1
  102. package/dist/src/v2/setup-runtime.js +19 -131
  103. package/dist/src/v2/setup-runtime.js.map +1 -1
  104. package/dist/src/v2/setup-store.d.ts +0 -5
  105. package/dist/src/v2/setup-store.d.ts.map +1 -1
  106. package/dist/src/v2/setup-store.js +3 -106
  107. package/dist/src/v2/setup-store.js.map +1 -1
  108. package/dist/src/v2/setup.d.ts +6 -43
  109. package/dist/src/v2/setup.d.ts.map +1 -1
  110. package/dist/src/v2/setup.js +13 -192
  111. package/dist/src/v2/setup.js.map +1 -1
  112. package/dist/src/v2/spec-coordinator.d.ts +85 -0
  113. package/dist/src/v2/spec-coordinator.d.ts.map +1 -0
  114. package/dist/src/v2/spec-coordinator.js +88 -0
  115. package/dist/src/v2/spec-coordinator.js.map +1 -0
  116. package/dist/src/v2/spec-delivery.d.ts +143 -0
  117. package/dist/src/v2/spec-delivery.d.ts.map +1 -0
  118. package/dist/src/v2/spec-delivery.js +401 -0
  119. package/dist/src/v2/spec-delivery.js.map +1 -0
  120. package/dist/src/v2/triage-route.d.ts +68 -0
  121. package/dist/src/v2/triage-route.d.ts.map +1 -0
  122. package/dist/src/v2/triage-route.js +223 -0
  123. package/dist/src/v2/triage-route.js.map +1 -0
  124. package/dist/src/v2/waiting-human-coordinator.d.ts +49 -0
  125. package/dist/src/v2/waiting-human-coordinator.d.ts.map +1 -0
  126. package/dist/src/v2/waiting-human-coordinator.js +509 -0
  127. package/dist/src/v2/waiting-human-coordinator.js.map +1 -0
  128. package/dist/src/v2/waiting-human.d.ts +143 -0
  129. package/dist/src/v2/waiting-human.d.ts.map +1 -0
  130. package/dist/src/v2/waiting-human.js +408 -0
  131. package/dist/src/v2/waiting-human.js.map +1 -0
  132. package/dist/src/v2/workflow-assets.d.ts +98 -0
  133. package/dist/src/v2/workflow-assets.d.ts.map +1 -0
  134. package/dist/src/v2/workflow-assets.js +646 -0
  135. package/dist/src/v2/workflow-assets.js.map +1 -0
  136. package/docs/deep-dive.md +275 -52
  137. package/internal-workflow/docs/agents/bug-workflow-routing.md +24 -0
  138. package/internal-workflow/docs/agents/bugfix-quality-gate.md +11 -0
  139. package/internal-workflow/docs/agents/coding-skill-routing.md +123 -0
  140. package/internal-workflow/docs/agents/confidence-rubric.md +65 -0
  141. package/internal-workflow/docs/agents/contract-test-ledger.md +60 -0
  142. package/internal-workflow/docs/agents/review-gates.md +42 -0
  143. package/internal-workflow/docs/agents/review-protocol.md +98 -0
  144. package/internal-workflow/docs/agents/tool-usage.md +88 -0
  145. package/internal-workflow/evals/coding-skill-evals.json +66 -0
  146. package/internal-workflow/manifest.json +1 -0
  147. package/internal-workflow/operations/acceptance-proof/SKILL.md +9 -0
  148. package/internal-workflow/operations/ambiguity-review/SKILL.md +5 -0
  149. package/internal-workflow/operations/code-review/SKILL.md +23 -0
  150. package/internal-workflow/operations/implementation/SKILL.md +24 -0
  151. package/internal-workflow/operations/spec-author/SKILL.md +12 -0
  152. package/internal-workflow/operations/spec-review/SKILL.md +12 -0
  153. package/internal-workflow/operations/triage/SKILL.md +12 -0
  154. package/internal-workflow/profiles/analyst_deep.toml +9 -0
  155. package/internal-workflow/profiles/implementer_standard.toml +9 -0
  156. package/internal-workflow/profiles/proof_agent.toml +8 -0
  157. package/internal-workflow/profiles/reviewer_deep.toml +9 -0
  158. package/internal-workflow/profiles/reviewer_standard.toml +9 -0
  159. package/internal-workflow/schemas/ambiguity-review-v1.json +1 -0
  160. package/internal-workflow/schemas/code-review-v1.json +1 -0
  161. package/internal-workflow/schemas/implementation-report-v1.json +1 -0
  162. package/internal-workflow/schemas/proof-report-v1.json +1 -0
  163. package/internal-workflow/schemas/spec-author-v1.json +1 -0
  164. package/internal-workflow/schemas/spec-review-v1.json +30 -0
  165. package/internal-workflow/schemas/triage-route-v1.json +1 -0
  166. package/internal-workflow/skills/acceptance-proof/agents/openai.yaml +6 -0
  167. package/{internal-skills → internal-workflow/skills}/agent-auto/SKILL.md +6 -1
  168. package/internal-workflow/skills/agent-auto/agents/openai.yaml +6 -0
  169. package/internal-workflow/skills/code-debugger/SKILL.md +122 -0
  170. package/internal-workflow/skills/code-debugger/agents/openai.yaml +7 -0
  171. package/internal-workflow/skills/code-review/SKILL.md +279 -0
  172. package/internal-workflow/skills/code-review/agents/openai.yaml +4 -0
  173. package/internal-workflow/skills/code-review/references/bug-classes.md +56 -0
  174. package/internal-workflow/skills/code-review/references/cleanup-lens.md +52 -0
  175. package/internal-workflow/skills/code-review/references/framework-lenses.md +34 -0
  176. package/internal-workflow/skills/code-review/references/targeted-recipes.md +49 -0
  177. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +138 -0
  178. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +6 -0
  179. package/internal-workflow/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  180. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +102 -0
  181. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +6 -0
  182. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +31 -0
  183. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +146 -0
  184. package/internal-workflow/skills/implementation-spec-review/SKILL.md +115 -0
  185. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +6 -0
  186. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +24 -0
  187. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +93 -0
  188. package/internal-workflow/skills/small-task-implementer/SKILL.md +104 -0
  189. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +6 -0
  190. package/internal-workflow/skills/spec-implementer/SKILL.md +126 -0
  191. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +6 -0
  192. package/internal-workflow/skills/spec-implementer/evals/evals.json +30 -0
  193. package/internal-workflow/skills/spec-implementer/references/review-loop.md +94 -0
  194. package/internal-workflow/skills/tdd/SKILL.md +72 -0
  195. package/internal-workflow/skills/tdd/agents/openai.yaml +6 -0
  196. package/internal-workflow/skills/tdd/interface-design.md +31 -0
  197. package/internal-workflow/skills/tdd/mocking.md +59 -0
  198. package/internal-workflow/skills/tdd/refactoring.md +10 -0
  199. package/internal-workflow/skills/tdd/tests.md +77 -0
  200. package/internal-workflow/skills/triage/AGENT-BRIEF.md +192 -0
  201. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +101 -0
  202. package/internal-workflow/skills/triage/SKILL.md +134 -0
  203. package/internal-workflow/skills/triage/agents/openai.yaml +6 -0
  204. package/package.json +14 -8
  205. package/dist/src/v2/adapters/target-activity-fence.d.ts +0 -23
  206. package/dist/src/v2/adapters/target-activity-fence.d.ts.map +0 -1
  207. package/dist/src/v2/adapters/target-activity-fence.js +0 -249
  208. package/dist/src/v2/adapters/target-activity-fence.js.map +0 -1
  209. package/dist/src/v2/candidate-cli.d.ts +0 -22
  210. package/dist/src/v2/candidate-cli.d.ts.map +0 -1
  211. package/dist/src/v2/candidate-cli.js.map +0 -1
  212. package/dist/src/v2/legacy-cutover.d.ts +0 -52
  213. package/dist/src/v2/legacy-cutover.d.ts.map +0 -1
  214. package/dist/src/v2/legacy-cutover.js +0 -87
  215. package/dist/src/v2/legacy-cutover.js.map +0 -1
  216. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/SKILL.md +0 -0
  217. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/android.md +0 -0
  218. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/browser.md +0 -0
  219. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/references/ios.md +0 -0
  220. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/android-lease.mjs +0 -0
  221. /package/{internal-skills → internal-workflow/skills}/acceptance-proof/tools/ios-lease.mjs +0 -0
@@ -0,0 +1,65 @@
1
+ # Confidence Rubric
2
+
3
+ Use this rubric for coding skills that report findings, diagnose root causes, review specs, or decide whether an auto-fix is safe.
4
+
5
+ Do not use fake numeric precision unless a skill has a concrete scoring reason. Prefer `high`, `medium`, and `low` with evidence.
6
+
7
+ ## High Confidence
8
+
9
+ High confidence means the finding or diagnosis has direct evidence.
10
+
11
+ Requires:
12
+
13
+ - a concrete trigger path, code path, failing signal, or tool output
14
+ - a clear explanation of why existing guards do not prevent the issue
15
+ - no unresolved assumption that changes the conclusion
16
+
17
+ Allowed actions:
18
+
19
+ - report as a finding
20
+ - block execution when the issue is safety-critical or spec-critical
21
+ - auto-fix only when the fix is narrow, low-risk, local-patterned, and verifiable
22
+
23
+ ## Medium Confidence
24
+
25
+ Medium confidence means the issue is likely but one explicit assumption remains.
26
+
27
+ Requires:
28
+
29
+ - strong local evidence
30
+ - exactly what assumption remains
31
+ - what evidence would promote or demote the finding
32
+
33
+ Allowed actions:
34
+
35
+ - report as a likely issue, risk, or execution concern
36
+ - ask a targeted question when the unresolved assumption changes the fix
37
+ - do not auto-fix unless new evidence raises confidence to high
38
+
39
+ ## Low Confidence
40
+
41
+ Low confidence means the concern is plausible but not proven.
42
+
43
+ Requires:
44
+
45
+ - a clear label as uncertainty
46
+ - the missing evidence or verification gap
47
+
48
+ Allowed actions:
49
+
50
+ - present as a question, risk, or verification gap
51
+ - do not report as a proven bug
52
+ - do not auto-fix
53
+
54
+ ## Auto-Fix Gate
55
+
56
+ Auto-fix is allowed only when all are true:
57
+
58
+ - confidence is high
59
+ - root cause is clear
60
+ - fix is narrow and low-risk
61
+ - fix matches local project patterns
62
+ - verification is available, or the edit is syntax-checkable and obviously safe
63
+ - the change does not require a product decision
64
+
65
+ If any condition is missing, report the issue with evidence and stop before editing.
@@ -0,0 +1,60 @@
1
+ # Contract Test Ledger
2
+
3
+ Use this shared ledger for behavior-changing work where a passing happy-path test could still miss a contract defect. The ledger turns review-class risks into testable obligations before implementation.
4
+
5
+ ## When Required
6
+
7
+ Create or update a contract test ledger when the task changes any of these:
8
+
9
+ - API, DTO, schema, serialization, persistence, or externally visible response shape
10
+ - ordering, lifecycle events, state transitions, retries, idempotency, timeout, cancellation, or background jobs
11
+ - cache keys, invalidation, state merge precedence, fallback behavior, profile/global/mobile overrides, defaults, or feature flags
12
+ - evidence, trace, snapshot, audit, summary, aggregation, score, winner, or generated artifacts
13
+ - shared behavior read by multiple callers, tenants, users, groups, children, or projections
14
+
15
+ For narrow UI copy, docs-only, formatting, tests-only, or isolated styling changes, the ledger is not required.
16
+
17
+ ## Required Shape
18
+
19
+ Keep the ledger compact. Use one row per invariant:
20
+
21
+ ```markdown
22
+ ## Contract Test Ledger
23
+
24
+ | Invariant | Risk It Prevents | First Test / Proof | Status |
25
+ | --- | --- | --- | --- |
26
+ | <observable rule> | <real failure mode> | <exact test name/command or manual proof> | planned / red / green / blocked |
27
+ ```
28
+
29
+ Rules:
30
+
31
+ - The invariant must be observable through the public interface or the same seam real callers use.
32
+ - The risk must name the concrete bug class, not a vague "edge case".
33
+ - The first test/proof must fail before the fix unless the ledger records why a RED signal is impossible.
34
+ - `blocked` requires the missing seam, fixture, service, or decision that prevents proof.
35
+ - Keep the ledger current as implementation proceeds; do not backfill it only at the end.
36
+
37
+ ## Invariant Prompts
38
+
39
+ Ask the relevant subset before the first RED test:
40
+
41
+ - **Ordering:** What must happen before/after terminal events, snapshots, persistence writes, notifications, or cleanup?
42
+ - **Precedence:** Which source wins among user input, profile, mobile, global, server, cache, AI, fallback, default, `null`, `false`, `0`, and empty objects?
43
+ - **Threading:** Does each new field survive construction, normalization, cloning, retry, persistence reload, serialization, and every visible consumer?
44
+ - **Runtime contract:** Do validation, internal types, persistence schema, API response, and consumers agree on names, units, nullability, enum values, and date/object formats?
45
+ - **Retry/idempotency:** What changes on retry, and which snapshots, counters, streams, timestamps, writes, or side effects must be rebuilt instead of reused?
46
+ - **Determinism:** When sort keys, timestamps, scores, priorities, or winners tie, what stable tie-breaker makes output repeatable?
47
+ - **Evidence:** Which trace, audit, snapshot, Fresh-Context, summary, or generated artifact proves the behavior actually happened?
48
+ - **Partial failure:** If a dependency times out, throws, returns stale data, or fails after a side effect, what durable state remains and who repairs it?
49
+ - **Scope/cardinality:** Is data global, per-tenant, per-group, per-child, per-step, or per-item, and can one top-level field collapse multiple meaningful results?
50
+
51
+ ## Review Feedback Loop
52
+
53
+ When code review finds a real contract defect, add or update one ledger row before fixing it:
54
+
55
+ - `Invariant`: the rule the implementation violated
56
+ - `Risk It Prevents`: the observed review finding
57
+ - `First Test / Proof`: the regression test or proof that would have caught it
58
+ - `Status`: `red` before the fix, then `green` after verification
59
+
60
+ If no correct public seam exists for the regression test, record that as `blocked` and name the architecture/testability gap. Do not replace a missing seam with an implementation-detail test unless the task explicitly approves that tradeoff.
@@ -0,0 +1,42 @@
1
+ # Review Gates
2
+
3
+ This file owns review applicability. Review execution mechanics live in
4
+ [`review-protocol.md`](review-protocol.md); approved-spec review shape lives in
5
+ [`spec-implementer/references/review-loop.md`](../../skills/spec-implementer/references/review-loop.md).
6
+
7
+ ## Final Code Review
8
+
9
+ Run final `$code-review` for behavior-changing work that affects:
10
+
11
+ - medium/large shared business behavior;
12
+ - API/DTO/schema, migration, persistence, auth, permission, payment, cache,
13
+ concurrency, background jobs, or shared-state contracts;
14
+ - shared UI/navigation/middleware/core flows;
15
+ - runtime logic across three or more files when it crosses an owner or
16
+ validation seam.
17
+
18
+ Do not invoke it automatically for docs, copy, comments, tests-only or
19
+ styling-only changes, formatting, renames, mechanical refactors, or isolated
20
+ low-risk one-file fixes.
21
+
22
+ `medium` is the normal review profile. API, persistence, statefulness, file
23
+ count, or orchestration strengthens the review focus only when it creates an
24
+ affected contract; none independently selects `high`.
25
+
26
+ ## Cleanup
27
+
28
+ Cleanup is a lens inside the same final `$code-review`, never a separate gate.
29
+ Use bounded cleanup by default. Amplify it only when the user, approved source,
30
+ or repository policy names a concrete evidenced simplification risk; follow
31
+ `../../skills/code-review/references/cleanup-lens.md` for that branch.
32
+
33
+ After one consolidated repair, coordinator verification plus affected
34
+ validation closes ordinary medium/low behavior-preserving findings. Use
35
+ Closure only for the triggers in `review-protocol.md`.
36
+
37
+ ## Validation Depth
38
+
39
+ For simple and medium work, run targeted behavior proof and the smallest
40
+ affected integration check. Run a full repository suite only when explicitly
41
+ required by repository policy, when broad contract fan-out cannot be isolated,
42
+ or for a genuinely `high` task.
@@ -0,0 +1,98 @@
1
+ # Review Protocol
2
+
3
+ This file owns mechanics shared by artifact and implementation review: bounded
4
+ capsules, Full/Closure, defect lifecycle, no-progress, waiver, and the result
5
+ envelope. Target Modules own authority, profile, topology, durable state, and
6
+ outcome mapping.
7
+
8
+ ## Capsule
9
+
10
+ Every reviewer receives only:
11
+
12
+ - target kind/path and pinned revision;
13
+ - one unanswered review question and assigned lenses;
14
+ - authority, approved scope, and relevant evidence;
15
+ - compact affected validation and current defect records;
16
+ - for Closure, the repair diff and mapping from changed targets to defects and
17
+ affected contracts.
18
+
19
+ Do not pass raw parent history, old revisions, repeated logs, or unrelated
20
+ inventories. Reuse valid coverage for the same revision, question, and lenses.
21
+
22
+ ## Modes
23
+
24
+ **Full** covers the complete assigned scope once. It is bounded to the settled
25
+ target, changed owners, authority, and plausible affected contracts. It is not
26
+ a repository-wide audit and does not activate unrelated lenses.
27
+
28
+ **Closure** verifies a repair only when the finding is critical/high, affects a
29
+ trust boundary, durable data, concurrency/idempotency, shared API/DTO/schema, or
30
+ invalidates mandatory coverage. Closure stays with affected reviewer lineages
31
+ and targets. Do not launch it merely because Full found an ordinary defect.
32
+
33
+ A repair starts another Full only when mandatory-lens coverage became invalid.
34
+ A live reviewer poll timeout is non-terminal and does not authorize duplicate
35
+ review or cancellation; reconcile the recorded session first.
36
+
37
+ ## Defects
38
+
39
+ Use one canonical record per distinct invariant and failure mechanism:
40
+
41
+ ```yaml
42
+ id: REVIEW-CONC-003
43
+ class: blocker | execution-risk | improvement
44
+ status: open | fixed | verified | blocked | accepted-risk | superseded
45
+ severity: critical | high | medium | low
46
+ confidence: high | medium | low
47
+ invariant: "<observable rule>"
48
+ failure: "<concrete trigger and impact>"
49
+ evidence: ["<target or source>"]
50
+ repair: "<smallest sufficient change>"
51
+ affected_targets: ["<path, section, contract, or lens>"]
52
+ ```
53
+
54
+ Root assigns stable IDs and deduplicates only when both invariant and failure
55
+ match. A superseded record must point to a distinct canonical replacement.
56
+ Improvements never block. Only an execution risk may become `accepted-risk`,
57
+ and only with explicit authority, reason, scope, and target revision. A blocker
58
+ cannot be accepted or downgraded.
59
+
60
+ Move blocking defects `open -> fixed -> verified`. For ordinary medium/low
61
+ behavior-preserving repairs, root may verify after checking the cited failure
62
+ path and affected validation. Closure-triggering defects require affected
63
+ independent verification.
64
+
65
+ In Closure, copy each supplied canonical defect's `id`, `class`, `invariant`,
66
+ `failure`, and introduced target revision byte-for-byte. Never paraphrase those
67
+ immutable fields while describing verification. Record the Closure decision in
68
+ the status, status target revision, evidence, and repair-finding outcome fields.
69
+
70
+ ## Repair And Stop
71
+
72
+ Repair compatible findings in one consolidated batch. Before repeating review,
73
+ the target, evidence, repair, or source decision must change materially.
74
+ Review count and elapsed time are audit signals, never approval or blocking
75
+ conditions.
76
+
77
+ Stop when repair requires a product/scope/owner decision, mandatory evidence or
78
+ reviewer is unavailable, no substantive repair exists, or the same failure
79
+ repeats without progress. Do not create micro-cycles for ordinary medium/low
80
+ findings.
81
+
82
+ Waive review only after explicit user instruction. Record skipped coverage and
83
+ open defects. Waiver is not approval and accepts no defect automatically.
84
+
85
+ ## Result
86
+
87
+ ```text
88
+ Review Mode: <Full | Closure>
89
+ Mandatory Coverage: <covered lenses or gaps>
90
+ Verified Defects: <IDs or None>
91
+ Accepted Risks: <IDs, authority, reason or None>
92
+ Open Defects: <IDs or None>
93
+ ```
94
+
95
+ Target Modules add profile, authority, outcome, and checkpoint without
96
+ redefining these fields. For a normal medium flow, do not report internal
97
+ session accounting unless interruption, Closure, accepted risk, or another
98
+ exception makes it relevant.
@@ -0,0 +1,88 @@
1
+ # Tool Usage
2
+
3
+ ## Flutter Debug Sessions
4
+
5
+ Local Flutter UI work always uses a platform QA skill plus the runtime ownership gate:
6
+
7
+ - Android emulator: use `$flutter-android-debug` as the lifecycle orchestrator and
8
+ `test-android-apps:android-emulator-qa` for navigation, interaction, UI trees,
9
+ screenshots, and logcat.
10
+ - iOS Simulator: use `$flutter-ios-debug` for environment/login gates, navigation,
11
+ interaction, screenshots, and visual comparison.
12
+ - Use `$flutter-attach-session` only to discover the runtime owner and perform
13
+ reload/restart when that session is safe for this agent to control.
14
+
15
+ Before any install, launch, attach, reload, restart, terminate, or force-stop:
16
+
17
+ 1. Identify the project, target device, package/app, current PID, VM Service, runtime
18
+ owner, and expected backend/environment.
19
+ 2. Treat any live PID, VM Service, IDE debug adapter, `flutter run`, or visible app as
20
+ user-owned state.
21
+ 3. If an IDE/debug adapter or machine run owns DevFS, do not create a second attach
22
+ controller. Use the owning IDE/terminal reload action or ask the user to trigger it.
23
+ A standalone interactive terminal run is the only exception, and only when
24
+ discovery marks it attach-safe and the helper receives its confirmed PID.
25
+ 4. Use `r` for widget/layout/style/rendering changes and `R` for startup state,
26
+ dependency injection, providers, globals, routes, or initialization changes.
27
+ 5. For a safely attachable standalone runtime, pass the PID confirmed by
28
+ `discover --json` as `--expected-pid`; never execute the raw discovered attach command.
29
+ 6. Verify that the same PID and expected environment remain after each runtime or
30
+ navigation action.
31
+
32
+ Requests to inspect, debug, navigate, capture screenshots, or verify UI do not authorize
33
+ build/install, uninstall, app-data clearing, force-stop, process termination, replacement
34
+ launch, or a new `flutter run`. Use those only when no live target exists and the user
35
+ requested a fresh run, or after explicit approval to replace the current session.
36
+
37
+ The platform QA skill owns navigation and evidence. Do not replace it with ad-hoc shell
38
+ commands: use `test-android-apps:android-emulator-qa` for Android emulator UI trees,
39
+ input, screenshots, and logcat, and `$flutter-ios-debug` for iOS Simulator environment
40
+ gates, navigation, interaction, screenshots, and visual comparison.
41
+
42
+ If the process disappears, stop and report it. Hot reload cannot restore a dead process,
43
+ and launching the installed app may expose an older APK/IPA without the DevFS changes.
44
+
45
+ For a cold launch, load the owning repository's launch configuration as the source of
46
+ truth for flavor, dart-defines, package/app identity, and backend. This applies only
47
+ after the cold-launch gate is satisfied.
48
+
49
+ ## External Research
50
+
51
+ Prefer local evidence before external lookup. When external evidence is
52
+ material to a coding decision, use the source that owns the claim:
53
+
54
+ 1. official documentation or specifications;
55
+ 2. first-party source code, changelogs, release notes, or issue trackers;
56
+ 3. first-party APIs or published schemas.
57
+
58
+ Use secondary sources only to discover primary sources or identify a disputed
59
+ interpretation. Record source version/date when freshness matters, separate
60
+ sourced facts from inference, and say when current behavior cannot be confirmed.
61
+
62
+ Keep one narrow lookup inline unless the user explicitly requests delegation or
63
+ a durable artifact. Use `$research` for either explicit request, multi-source
64
+ comparison, or material external contract synthesis. The skill owns the
65
+ Research Capsule, named-agent route, claim-to-source artifact, root verification,
66
+ and downstream handoff.
67
+
68
+ ## Context7
69
+
70
+ Use Context7 only when the task genuinely requires precise, current documentation for a real package, framework, SDK, API, or implementation detail that cannot be confidently answered from local evidence or built-in knowledge.
71
+
72
+ Prefer local inspection first:
73
+
74
+ - source code
75
+ - lockfiles and installed package versions
76
+ - package manifests
77
+ - existing tests and examples
78
+ - local docs and configuration
79
+
80
+ Do not use Context7 for:
81
+
82
+ - routine coding
83
+ - general language questions
84
+ - simple refactors
85
+ - repository-specific behavior
86
+ - facts already visible in the project
87
+
88
+ If Context7 is used, keep the lookup narrow and bring back only the details needed for the active task.
@@ -0,0 +1,66 @@
1
+ {
2
+ "schema_version": 1,
3
+ "purpose": "Cross-skill routing and handoff regressions only; skill-local behavior belongs in each owner's evals directory.",
4
+ "cases": [
5
+ {
6
+ "id": "route-feature-tdd",
7
+ "prompt": "Implement a behavior-changing feature in this repository.",
8
+ "expected": ["read local evidence", "activate tdd before behavior edits", "run affected validation"],
9
+ "forbidden": ["invent repository commands", "create planning artifacts without an execution gap"]
10
+ },
11
+ {
12
+ "id": "route-diagnosis-only",
13
+ "prompt": "Explain the root cause and do not fix it yet.",
14
+ "expected": ["use bug-root-cause-explainer", "cite concrete evidence", "stop before edits"],
15
+ "forbidden": ["edit files", "present an inference as proven"]
16
+ },
17
+ {
18
+ "id": "route-flaky-bug",
19
+ "prompt": "Debug a failure that only happens intermittently.",
20
+ "expected": ["use diagnosing-bugs", "improve reproduction or signal before repair"],
21
+ "forbidden": ["jump directly to a fix"]
22
+ },
23
+ {
24
+ "id": "profile-medium-default",
25
+ "prompt": "Implement one clear stateful feature touching an API, persistence, and several files.",
26
+ "expected": ["select medium", "implement directly when authority and proof are clear"],
27
+ "forbidden": ["select high from statefulness or file count", "manufacture a PRD, tickets, or spec"]
28
+ },
29
+ {
30
+ "id": "profile-high-threshold",
31
+ "prompt": "Classify one broad ordinary refactor and one change with irreversible data loss plus unclear recovery ownership.",
32
+ "expected": ["keep the broad ordinary refactor medium", "select high only for material consequence plus uncertainty"],
33
+ "forbidden": ["accumulate generic risk labels into high"]
34
+ },
35
+ {
36
+ "id": "planning-does-not-deliver",
37
+ "prompt": "Use wayfinder to resolve the decision frontier and publish the resulting tickets.",
38
+ "expected": ["stop after the planning package", "require separate delivery authorization"],
39
+ "forbidden": ["start implementation from publication or labels"]
40
+ },
41
+ {
42
+ "id": "spec-only-for-gap",
43
+ "prompt": "Choose the route for a clear implementation request and for the same request with an unresolved execution contract.",
44
+ "expected": ["route the clear request directly", "use implementation-spec-maker for the unresolved execution delta"],
45
+ "forbidden": ["require a spec for every medium change"]
46
+ },
47
+ {
48
+ "id": "ticket-direct-vs-graph",
49
+ "prompt": "Choose delivery for one deterministic approved ticket and for an approved dependency graph.",
50
+ "expected": ["allow direct execution for the single ticket", "use tickets-orchestrator for the graph"],
51
+ "forbidden": ["manufacture a wave-level spec"]
52
+ },
53
+ {
54
+ "id": "review-topology",
55
+ "prompt": "Choose reviewer topology for simple, medium, and high profiles.",
56
+ "expected": ["simple uses one reviewer_fast when gated", "medium uses one reviewer_standard", "high uses two disjoint reviewer_deep tracks"],
57
+ "forbidden": ["root self-review", "two reviewers for ordinary medium"]
58
+ },
59
+ {
60
+ "id": "review-closure-bounded",
61
+ "prompt": "A medium Full review reports one low cleanup issue and one high shared DTO contract defect.",
62
+ "expected": ["repair findings in one batch", "coordinator verifies the low repair", "Closure covers only the high affected contract"],
63
+ "forbidden": ["restart broad Full review", "launch a separate cleanup gate"]
64
+ }
65
+ ]
66
+ }
@@ -0,0 +1 @@
1
+ {"evals":{"shared/coding-skill-evals":{"owner":null,"path":"evals/coding-skill-evals.json"},"skill/implementation-spec-review":{"owner":"implementation-spec-review","path":"skills/implementation-spec-review/evals/evals.json"},"skill/spec-implementer":{"owner":"spec-implementer","path":"skills/spec-implementer/evals/evals.json"}},"files":[{"mode":420,"path":"docs/agents/bug-workflow-routing.md","sha256":"a37c59676bcb8b938a7c82bce8a6ea5becf58ba367866d2712cd469391aea931","size":1603},{"mode":420,"path":"docs/agents/bugfix-quality-gate.md","sha256":"caaed6c923adfe56f4b6dd89222a83493ef4dd4e8bdd2bad694f8a11f93541ae","size":709},{"mode":420,"path":"docs/agents/coding-skill-routing.md","sha256":"958f4e7c7177c062b2a24fb7db2287be2cfa6e5281f2d156f7eb67b6cb3a0741","size":6434},{"mode":420,"path":"docs/agents/confidence-rubric.md","sha256":"42c947db2775380867e7adcfbdbe0f67b8f511b9ddf33a6eef8e1b0e995912c2","size":1883},{"mode":420,"path":"docs/agents/contract-test-ledger.md","sha256":"6f2327a40f218fbc746193c6440a69be08450938688b401f05163a3bb438a7f3","size":3779},{"mode":420,"path":"docs/agents/review-gates.md","sha256":"5ca48066b263cf869549c383814cfbdbbad711e5c247a8253bc2996d8fdec496","size":1857},{"mode":420,"path":"docs/agents/review-protocol.md","sha256":"9af5b44c545d76f3a048de424a4ccc78aa7e018bd193e4e5a787b2cef47af071","size":4086},{"mode":420,"path":"docs/agents/tool-usage.md","sha256":"b6ade11865a46a5a28d4823c1b70318453f4d350cfc62d2969aa06d73c47be4b","size":4321},{"mode":420,"path":"evals/coding-skill-evals.json","sha256":"22ba3bb4372cde747c3accc899f85dc67f190fd33113deb133392a1695f5ad99","size":3519},{"mode":420,"path":"operations/acceptance-proof/SKILL.md","sha256":"c33a04bf8dfcb59982f60b232633b0e48e9de4ec375cd02f52ec71f9fce30de6","size":440},{"mode":420,"path":"operations/ambiguity-review/SKILL.md","sha256":"20371f30015afef12a2b9dd608d21cc93a93f011873927f7a64e29b36a4fcf99","size":427},{"mode":420,"path":"operations/code-review/SKILL.md","sha256":"c415e4383dd7ddeb4b371a0a141a39c4296d95222b26ca3fcc51a34704e10f25","size":1246},{"mode":420,"path":"operations/implementation/SKILL.md","sha256":"6f0c9b900d252d9a833d7fdac6868d84900787debf2964e22ffbf86851af45d2","size":1461},{"mode":420,"path":"operations/spec-author/SKILL.md","sha256":"5170f275bd7bc346578028d74d5814a5edd36ccd90d0615c4d5e3d6b6f8af049","size":627},{"mode":420,"path":"operations/spec-review/SKILL.md","sha256":"6cb7b8ea245faa2587ebde07ebe3d364eff41d18d5464ccd2749cf2b9b49f701","size":653},{"mode":420,"path":"operations/triage/SKILL.md","sha256":"39e8301b90a59795dc2b93917d4674c22dc3e4380f011a54ade1de4c7cdc18ae","size":647},{"mode":420,"path":"profiles/analyst_deep.toml","sha256":"06335e3a13b07ef3d7deb9b546a6dad5d765edfa6dbf21c1c4d516e843a4352f","size":380},{"mode":420,"path":"profiles/implementer_standard.toml","sha256":"4074f45ea6fb615382de7ddf04e4ab824185e01932290b95764ff63a3711824e","size":750},{"mode":420,"path":"profiles/proof_agent.toml","sha256":"2fbaf1145a11cb5c574bf1ed7333187d284ed0c3c3d6260c628f82057b8b04e7","size":446},{"mode":420,"path":"profiles/reviewer_deep.toml","sha256":"15ef121b641265a85d0647c46f6dd93d4a9abd8c09bcc746c41e4ca6b4c9af41","size":648},{"mode":420,"path":"profiles/reviewer_standard.toml","sha256":"0a26b24f98b7e8d0ec049cb6fbe623d5da838b2fe71b5accd59bf364a9c97e5c","size":585},{"mode":420,"path":"schemas/ambiguity-review-v1.json","sha256":"48d946ad8e91bd1908d8993ef631b1701ad3cd7a79f34368a07942d7774afeff","size":524},{"mode":420,"path":"schemas/code-review-v1.json","sha256":"b11b266e0a7e0aa19eaf90ebf2b5c33f3bc7263e9c697cbf206e9865084e3439","size":2555},{"mode":420,"path":"schemas/implementation-report-v1.json","sha256":"a1b580dad03af9be74d895d38a2f6aa9398b6d772c944dc398dac5aca0630d2e","size":1573},{"mode":420,"path":"schemas/proof-report-v1.json","sha256":"1bf6c5b22b97ab3b659d961e21b0fc06869481405e1048ab9eadeeea212a8cf6","size":21949},{"mode":420,"path":"schemas/spec-author-v1.json","sha256":"49f945362d1184ad628584b91fbbe75323d13bafa4ca3876093387a9fca06214","size":420},{"mode":420,"path":"schemas/spec-review-v1.json","sha256":"fe9fdd389bcb4c3b7d19609184caf3af4b89e7c1d1e71a7ba0c55c72c5d5562d","size":1386},{"mode":420,"path":"schemas/triage-route-v1.json","sha256":"3ca7ed29237f42e12567797d145d90dd4f1f48fa1e81a7da67434c19747753d8","size":5894},{"mode":420,"path":"skills/acceptance-proof/SKILL.md","sha256":"5a0f2dcd62a43da86a7627c70c86bde86e78c06929675073ee37727e3f06fc65","size":1683},{"mode":420,"path":"skills/acceptance-proof/agents/openai.yaml","sha256":"d602d9f2e1bf618a71171729c6f354dd137c939cb433bd49afec678360e1189f","size":265},{"mode":420,"path":"skills/acceptance-proof/references/android.md","sha256":"b9396d1327ffc19f91b73c2470222871e403ea1d0f3de58025e689a92691a842","size":3022},{"mode":420,"path":"skills/acceptance-proof/references/browser.md","sha256":"ceefa4fd7db475b6162368511c2742b6d9c6af58d48e7d5d8a773ed5cc3938c4","size":2281},{"mode":420,"path":"skills/acceptance-proof/references/ios.md","sha256":"ae18be2632e1f7c3aa0810a1bafafc7760c807b30b1269408825aa14c224d493","size":2486},{"mode":420,"path":"skills/acceptance-proof/tools/android-lease.mjs","sha256":"982c426dd5b3a90f74e5120783b3a24fa98d8218d0f4140e756187865b48d708","size":11393},{"mode":420,"path":"skills/acceptance-proof/tools/ios-lease.mjs","sha256":"6e1e0d95c6a8b2d42c34de05bd4446eac23e3916bffccb027f236b8a8a1809a3","size":13834},{"mode":420,"path":"skills/agent-auto/SKILL.md","sha256":"450c28f7a712f881cdf9f3e48555a47022b46f79df875bac35843a1c15135451","size":1415},{"mode":420,"path":"skills/agent-auto/agents/openai.yaml","sha256":"79a70421300891e3130fc7535c4aa37e01931ff353fbd7b83262c6fcf2032b71","size":266},{"mode":420,"path":"skills/code-debugger/SKILL.md","sha256":"56a403b2cd9a3dad4b48d06ab05a9b99fde97261b7380c2cd9ffd82b2c3cbb53","size":7725},{"mode":420,"path":"skills/code-debugger/agents/openai.yaml","sha256":"8dd2f301bee632585371bd6f62dbdcdec95201f553392515342da5d0fc563305","size":322},{"mode":420,"path":"skills/code-review/SKILL.md","sha256":"5cd395731f598d5c88319f74ea4fe83ae7678fa1bd42cd45acc6246b67467289","size":15805},{"mode":420,"path":"skills/code-review/agents/openai.yaml","sha256":"c2697212427a5e119d9127e2f9000594e6c2eb7696e7a40604da7149c79ce478","size":278},{"mode":420,"path":"skills/code-review/references/bug-classes.md","sha256":"1f8648af9914cbd7553d045915f959df0f3b50a88e97c3beefeb955342e7b12d","size":4062},{"mode":420,"path":"skills/code-review/references/cleanup-lens.md","sha256":"6406350bf8ff00f9d2de2d5a8871aa1a9ab0efa33dcc35453eeebe9c96623e69","size":2846},{"mode":420,"path":"skills/code-review/references/framework-lenses.md","sha256":"ca9e7cb09f32f729cec5522e8ff7c7dcc43f76ef986e701e9c0a226514912cd8","size":1820},{"mode":420,"path":"skills/code-review/references/targeted-recipes.md","sha256":"921b422958c97e606637d3fa2d2628239d9176f0316c7e45bbc55b20a22fe3c1","size":2564},{"mode":420,"path":"skills/diagnosing-bugs/SKILL.md","sha256":"9a3457d4f12e3810041def93456a0c020df0842200737bf7ecaf06471991c16c","size":9097},{"mode":420,"path":"skills/diagnosing-bugs/agents/openai.yaml","sha256":"eca84840bc193ce63cc7aad93d9e7b5f2541739b7bf682e5fa9eded3a8060787","size":262},{"mode":420,"path":"skills/diagnosing-bugs/scripts/hitl-loop.template.sh","sha256":"b2932630950e5210075bcd6f850e5accf30c101c5367b29eac3a29b4dd8084c8","size":1164},{"mode":420,"path":"skills/implementation-spec-maker/SKILL.md","sha256":"035cb829574c92c8342ae0a4a6f04866802f3724b6ba16583ae8c5724d6d45f9","size":7751},{"mode":420,"path":"skills/implementation-spec-maker/agents/openai.yaml","sha256":"a4457f3e2f08cb07694855d362103b6a628c82b262950409268145348e2d91dd","size":363},{"mode":420,"path":"skills/implementation-spec-maker/references/source-modes.md","sha256":"471f0f58668b414438effbf91398022327fcbd43f40cc0801080994fe02bda3b","size":1920},{"mode":420,"path":"skills/implementation-spec-maker/references/spec-template.md","sha256":"0ba380125eb2e0c114aed6b0f064ac2643edf75bb78c10de72b741776edee6ff","size":5319},{"mode":420,"path":"skills/implementation-spec-review/SKILL.md","sha256":"d4c32638f0bf93766dda1e9d5eaa072c279d4658d421482da78ccc0cfd2e13c7","size":5270},{"mode":420,"path":"skills/implementation-spec-review/agents/openai.yaml","sha256":"600f9cc4e4f42596e3bf48601a508ddf055efcc396478d5e339d024973f4fb05","size":277},{"mode":420,"path":"skills/implementation-spec-review/evals/evals.json","sha256":"d0f73eba5cb0ce34f50f43f80094a3f0cf3aa1caa1b5eb859906721159aee575","size":1114},{"mode":420,"path":"skills/implementation-spec-review/references/review-loop.md","sha256":"9d9e9c233ba08e256b158a7fe740ffe5ffd1893960c2076254e44e0e49083630","size":3901},{"mode":420,"path":"skills/small-task-implementer/SKILL.md","sha256":"6b81bf9d85b2f6c8253099cfe766f67cad312e3eb38b014ed2bedb007df467fc","size":4279},{"mode":420,"path":"skills/small-task-implementer/agents/openai.yaml","sha256":"81569b6dfd97de60b53f092528140a5e5043f9adcc9262debff7bc912e278958","size":261},{"mode":420,"path":"skills/spec-implementer/SKILL.md","sha256":"70f65edddebc788a21dbb5bc6cb8f60a297e0364c8e4754f3ba80cbf1ba210a0","size":5538},{"mode":420,"path":"skills/spec-implementer/agents/openai.yaml","sha256":"84ef664ae3538e264fe6746917f081d34eac0738dc28764ddf27d7a448b3615d","size":341},{"mode":420,"path":"skills/spec-implementer/evals/evals.json","sha256":"23d73ddd6e2205b601a36cd07a7dd5ee228ae587d5b9cc5adab9b0993a312ba8","size":1361},{"mode":420,"path":"skills/spec-implementer/references/review-loop.md","sha256":"5161c4c586144cdf0aba828c459c57b9e8dc404a06990b3a887b51648fe1fcb9","size":4311},{"mode":420,"path":"skills/tdd/SKILL.md","sha256":"9e046610c341be0c770d4196f98c95cdb673d477bbbbcdfcca499dd5da6071d0","size":4146},{"mode":420,"path":"skills/tdd/agents/openai.yaml","sha256":"cc49a11a2c08733862d1a406123cda7a050d4a70fa92a4b3ec37f318694b1581","size":301},{"mode":420,"path":"skills/tdd/interface-design.md","sha256":"764c5ff0e3fa6b4ab7095eb65ccc7201e090baf19fa16051dfdb72c06d27417d","size":653},{"mode":420,"path":"skills/tdd/mocking.md","sha256":"3ceb807fdf4a47d6a93d4d9a891e5ba6d362a6247bd08adc451feebfc17361ef","size":1481},{"mode":420,"path":"skills/tdd/refactoring.md","sha256":"54fced22dd1911b7094c3fe7979b7c1a40d40be307482c4adf7dc0588f27d6cc","size":387},{"mode":420,"path":"skills/tdd/tests.md","sha256":"6773173a074569b2e51653bd7b95c097d602dbb4815d1cf1c87344705c4e0d1c","size":2228},{"mode":420,"path":"skills/triage/AGENT-BRIEF.md","sha256":"053cd013e1c2c9275111aa6e4b5a12e9838f8d6cd888e8ca0ccaaac576fd74df","size":7070},{"mode":420,"path":"skills/triage/OUT-OF-SCOPE.md","sha256":"8ed8cf27833444060c81b3961a83c0e3d8e6cf2fcb2ddf6f8b07c6655cbb0d85","size":4282},{"mode":420,"path":"skills/triage/SKILL.md","sha256":"5c7c84189fd5146ec1ae55a5669c74372ed7bce588fa7b8523417aa55b312a2e","size":8273},{"mode":420,"path":"skills/triage/agents/openai.yaml","sha256":"466bc430f95132bc6b28d077d50865d4b1fd9218307582343c35b0baf66d7894","size":283}],"generationHash":"a66ee20f05adca0ffc042d75e0121bf0b8a8679c67d6eecb933acd8f2af4ca1d","operations":{"acceptance-proof":{"dependencySkills":[],"entry":"operations/acceptance-proof/SKILL.md","files":["operations/acceptance-proof/SKILL.md","profiles/proof_agent.toml","schemas/proof-report-v1.json","skills/acceptance-proof/SKILL.md","skills/acceptance-proof/agents/openai.yaml","skills/acceptance-proof/references/android.md","skills/acceptance-proof/references/browser.md","skills/acceptance-proof/references/ios.md","skills/acceptance-proof/tools/android-lease.mjs","skills/acceptance-proof/tools/ios-lease.mjs"],"id":"acceptance-proof","outputSchema":"schemas/proof-report-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"proof-only","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["worktree"]},"profile":"proof_agent","resources":[],"sourceSkill":"acceptance-proof"},"ambiguity-review":{"dependencySkills":[],"entry":"operations/ambiguity-review/SKILL.md","files":["docs/agents/confidence-rubric.md","operations/ambiguity-review/SKILL.md","profiles/reviewer_deep.toml","schemas/ambiguity-review-v1.json"],"id":"ambiguity-review","outputSchema":"schemas/ambiguity-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_deep","resources":["docs/agents/confidence-rubric.md"],"sourceSkill":null},"code-review":{"dependencySkills":[],"entry":"operations/code-review/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/review-protocol.md","operations/code-review/SKILL.md","profiles/reviewer_standard.toml","schemas/code-review-v1.json","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/bug-classes.md","skills/code-review/references/cleanup-lens.md","skills/code-review/references/framework-lenses.md","skills/code-review/references/targeted-recipes.md"],"id":"code-review","outputSchema":"schemas/code-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_standard","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/review-protocol.md"],"sourceSkill":"code-review"},"implementation":{"dependencySkills":["code-debugger","diagnosing-bugs","small-task-implementer","tdd"],"entry":"operations/implementation/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/tool-usage.md","operations/implementation/SKILL.md","profiles/implementer_standard.toml","schemas/implementation-report-v1.json","skills/agent-auto/SKILL.md","skills/agent-auto/agents/openai.yaml","skills/code-debugger/SKILL.md","skills/code-debugger/agents/openai.yaml","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/small-task-implementer/SKILL.md","skills/small-task-implementer/agents/openai.yaml","skills/tdd/SKILL.md","skills/tdd/agents/openai.yaml","skills/tdd/interface-design.md","skills/tdd/mocking.md","skills/tdd/refactoring.md","skills/tdd/tests.md"],"id":"implementation","outputSchema":"schemas/implementation-report-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"change-set","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["worktree"]},"profile":"implementer_standard","resources":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/tool-usage.md"],"sourceSkill":"agent-auto"},"spec-author":{"dependencySkills":[],"entry":"operations/spec-author/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","operations/spec-author/SKILL.md","profiles/implementer_standard.toml","schemas/spec-author-v1.json","skills/implementation-spec-maker/SKILL.md","skills/implementation-spec-maker/agents/openai.yaml","skills/implementation-spec-maker/references/source-modes.md","skills/implementation-spec-maker/references/spec-template.md"],"id":"spec-author","outputSchema":"schemas/spec-author-v1.json","policy":{"approvalCeiling":"never","cwdClass":"target-state","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"spec-only","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["target-state"]},"profile":"implementer_standard","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md"],"sourceSkill":"implementation-spec-maker"},"spec-review":{"dependencySkills":[],"entry":"operations/spec-review/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-protocol.md","operations/spec-review/SKILL.md","profiles/reviewer_deep.toml","schemas/spec-review-v1.json","skills/implementation-spec-review/SKILL.md","skills/implementation-spec-review/agents/openai.yaml","skills/implementation-spec-review/references/review-loop.md"],"id":"spec-review","outputSchema":"schemas/spec-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_deep","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-protocol.md"],"sourceSkill":"implementation-spec-review"},"triage":{"dependencySkills":[],"entry":"operations/triage/SKILL.md","files":["docs/agents/coding-skill-routing.md","operations/triage/SKILL.md","profiles/analyst_deep.toml","schemas/triage-route-v1.json","skills/triage/AGENT-BRIEF.md","skills/triage/OUT-OF-SCOPE.md","skills/triage/SKILL.md","skills/triage/agents/openai.yaml"],"id":"triage","outputSchema":"schemas/triage-route-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"analyst_deep","resources":["docs/agents/coding-skill-routing.md"],"sourceSkill":"triage"}},"profiles":{"analyst_deep":"profiles/analyst_deep.toml","implementer_standard":"profiles/implementer_standard.toml","proof_agent":"profiles/proof_agent.toml","reviewer_deep":"profiles/reviewer_deep.toml","reviewer_standard":"profiles/reviewer_standard.toml"},"skills":{"acceptance-proof":{"entry":"skills/acceptance-proof/SKILL.md","files":["skills/acceptance-proof/SKILL.md","skills/acceptance-proof/agents/openai.yaml","skills/acceptance-proof/references/android.md","skills/acceptance-proof/references/browser.md","skills/acceptance-proof/references/ios.md","skills/acceptance-proof/tools/android-lease.mjs","skills/acceptance-proof/tools/ios-lease.mjs"],"metadata":"skills/acceptance-proof/agents/openai.yaml"},"agent-auto":{"entry":"skills/agent-auto/SKILL.md","files":["skills/agent-auto/SKILL.md","skills/agent-auto/agents/openai.yaml"],"metadata":"skills/agent-auto/agents/openai.yaml"},"code-debugger":{"entry":"skills/code-debugger/SKILL.md","files":["skills/code-debugger/SKILL.md","skills/code-debugger/agents/openai.yaml"],"metadata":"skills/code-debugger/agents/openai.yaml"},"code-review":{"entry":"skills/code-review/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/bug-classes.md","skills/code-review/references/cleanup-lens.md","skills/code-review/references/framework-lenses.md","skills/code-review/references/targeted-recipes.md"],"metadata":"skills/code-review/agents/openai.yaml"},"diagnosing-bugs":{"entry":"skills/diagnosing-bugs/SKILL.md","files":["skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh"],"metadata":"skills/diagnosing-bugs/agents/openai.yaml"},"implementation-spec-maker":{"entry":"skills/implementation-spec-maker/SKILL.md","files":["skills/implementation-spec-maker/SKILL.md","skills/implementation-spec-maker/agents/openai.yaml","skills/implementation-spec-maker/references/source-modes.md","skills/implementation-spec-maker/references/spec-template.md"],"metadata":"skills/implementation-spec-maker/agents/openai.yaml"},"implementation-spec-review":{"entry":"skills/implementation-spec-review/SKILL.md","files":["skills/implementation-spec-review/SKILL.md","skills/implementation-spec-review/agents/openai.yaml","skills/implementation-spec-review/references/review-loop.md"],"metadata":"skills/implementation-spec-review/agents/openai.yaml"},"small-task-implementer":{"entry":"skills/small-task-implementer/SKILL.md","files":["skills/small-task-implementer/SKILL.md","skills/small-task-implementer/agents/openai.yaml"],"metadata":"skills/small-task-implementer/agents/openai.yaml"},"spec-implementer":{"entry":"skills/spec-implementer/SKILL.md","files":["skills/spec-implementer/SKILL.md","skills/spec-implementer/agents/openai.yaml","skills/spec-implementer/references/review-loop.md"],"metadata":"skills/spec-implementer/agents/openai.yaml"},"tdd":{"entry":"skills/tdd/SKILL.md","files":["skills/tdd/SKILL.md","skills/tdd/agents/openai.yaml","skills/tdd/interface-design.md","skills/tdd/mocking.md","skills/tdd/refactoring.md","skills/tdd/tests.md"],"metadata":"skills/tdd/agents/openai.yaml"},"triage":{"entry":"skills/triage/SKILL.md","files":["skills/triage/AGENT-BRIEF.md","skills/triage/OUT-OF-SCOPE.md","skills/triage/SKILL.md","skills/triage/agents/openai.yaml"],"metadata":"skills/triage/agents/openai.yaml"}},"sourceFingerprint":"a8849a4c47b3adcb10239694bc0404eb89df4dbf8ae1e6ca7be689c141c5e316","version":2}
@@ -0,0 +1,9 @@
1
+ # Acceptance Proof Operation
2
+
3
+ Follow the packaged [Acceptance Proof skill](../../skills/acceptance-proof/SKILL.md).
4
+ Never change product behavior or external state. Return only
5
+ `schemas/proof-report-v1.json`.
6
+
7
+ The Runner already supplied the exact schema through `--output-schema`. Do not
8
+ search for, open, or infer a repository-relative schema file; inspect only the
9
+ frozen criteria, changed targets, checks, and requested proof evidence.
@@ -0,0 +1,5 @@
1
+ # Fresh Ambiguity Review Operation
2
+
3
+ Independently verify that a supplied waiting candidate contains at least two materially different product outcomes and no source-authorized choice. Technical, architecture, test, and tool choices are never product ambiguity. Do not edit files or external state. Return only `schemas/ambiguity-review-v1.json`.
4
+
5
+ Apply the packaged [confidence rubric](../../docs/agents/confidence-rubric.md).
@@ -0,0 +1,23 @@
1
+ # Code Review Operation
2
+
3
+ You are already the independent reviewer selected by the Runner. Follow the
4
+ packaged [Code Review skill](../../skills/code-review/SKILL.md) inline with
5
+ correctness and spec/standards lenses. Cleanup is its bounded lens, never a
6
+ separate operation. Use the declared resources for
7
+ [confidence](../../docs/agents/confidence-rubric.md),
8
+ [contract tests](../../docs/agents/contract-test-ledger.md),
9
+ [review applicability](../../docs/agents/review-gates.md), and
10
+ [Full/Closure mechanics](../../docs/agents/review-protocol.md). The supplied
11
+ review capsule is the exact target and authority.
12
+
13
+ For Closure, copy every supplied canonical defect's `id`, `class`, `invariant`,
14
+ `failure`, and `introducedTargetRevision` exactly. Do not paraphrase immutable
15
+ defect fields; express verification through the allowed status, revision,
16
+ evidence, and repair-finding outcome fields.
17
+
18
+ Use `needs-work` for concrete defects that the bounded implementation cycle can
19
+ repair. Reserve `rejected` for a target or authority that cannot safely proceed
20
+ through the normal repair lifecycle.
21
+
22
+ Do not launch another reviewer, edit files, repair findings, or mutate external
23
+ state. Return only `schemas/code-review-v1.json` with operation `code-review`.
@@ -0,0 +1,24 @@
1
+ # Implementation Operation
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.
16
+
17
+ 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
20
+ external state. Never commit, push, publish, mutate GitHub, or expose
21
+ credentials. In the final report, `changedFiles` is the complete current product
22
+ change set across all implementation cycles, not only files touched in this
23
+ attempt; exclude Runner-owned proof artifacts. Return only
24
+ `schemas/implementation-report-v1.json`.
@@ -0,0 +1,12 @@
1
+ # Spec Author Operation
2
+
3
+ Follow the authoring and minimum-solution contract in the packaged
4
+ [Implementation Spec Maker](../../skills/implementation-spec-maker/SKILL.md)
5
+ for the supplied issue authority. Use the declared
6
+ [confidence rubric](../../docs/agents/confidence-rubric.md) and
7
+ [contract ledger](../../docs/agents/contract-test-ledger.md) only when
8
+ applicable.
9
+ The Runner owns artifact review, revision state, and approval, so do not invoke
10
+ the skill's review/save workflow or create reviewer state. Write the complete
11
+ revision only to the Runner-provided spec artifact location and return
12
+ `schemas/spec-author-v1.json`.
@@ -0,0 +1,12 @@
1
+ # Spec Review Operation
2
+
3
+ You are already the independent reviewer selected and persisted by the Runner.
4
+ Follow the packaged
5
+ [Implementation Spec Review](../../skills/implementation-spec-review/SKILL.md)
6
+ inline and use its owner-local review loop only for semantics matching the
7
+ supplied mode and immutable state. Apply the declared
8
+ [confidence rubric](../../docs/agents/confidence-rubric.md),
9
+ [contract ledger](../../docs/agents/contract-test-ledger.md), and
10
+ [review protocol](../../docs/agents/review-protocol.md). Do not launch another
11
+ reviewer, edit the spec, change review state, or mutate external state. Return
12
+ only `schemas/spec-review-v1.json`.
@@ -0,0 +1,12 @@
1
+ # Triage Operation
2
+
3
+ Inspect the supplied issue and repository evidence without edits or external
4
+ writes. Use the packaged
5
+ [coding routing](../../docs/agents/coding-skill-routing.md) for the distinction
6
+ between a direct deterministic implementation and a real execution gap. Use
7
+ the packaged [Triage skill](../../skills/triage/SKILL.md) only for evidence
8
+ discipline; its labels and tracker mutations are outside this operation.
9
+
10
+ Return exactly one package route in `schemas/triage-route-v1.json`: direct,
11
+ spec-required, awaiting-user for material product ambiguity, or a typed
12
+ blocker. Technical implementation choices never require awaiting-user.
@@ -0,0 +1,9 @@
1
+ name = "analyst_deep"
2
+ description = "Deep read-only analysis for ambiguous architecture, contracts, and root causes."
3
+ nickname_candidates = ["Sage"]
4
+ model = "gpt-5.6-sol"
5
+ model_reasoning_effort = "xhigh"
6
+ sandbox_mode = "read-only"
7
+ developer_instructions = """
8
+ Analyze only. Build evidence-backed conclusions and recommendations; leave final decisions and edits to the parent.
9
+ """
@@ -0,0 +1,9 @@
1
+ name = "implementer_standard"
2
+ description = "Write-capable implementation worker for one approved, bounded ticket slice."
3
+ nickname_candidates = ["Forge", "Mason", "Builder"]
4
+ model = "gpt-5.6-sol"
5
+ model_reasoning_effort = "medium"
6
+ sandbox_mode = "workspace-write"
7
+ developer_instructions = """
8
+ Implement only the assigned approved ticket slice through its observable interface. Respect the exact write scope, tests, exclusions, and stop conditions. You are not alone in the repository: preserve unrelated and concurrent changes, never revert work you do not own, and report overlap before editing. Use behavior-first proof for behavior changes and return changed files, acceptance proof, skipped checks, risks, and blockers to the root integrator.
9
+ """
@@ -0,0 +1,8 @@
1
+ name = "proof_agent"
2
+ description = "Write-capable contained proof worker; Runner enforces proof-only postconditions."
3
+ model = "gpt-5.6-sol"
4
+ model_reasoning_effort = "high"
5
+ sandbox_mode = "workspace-write"
6
+ developer_instructions = """
7
+ Prove only the frozen criteria. Write only proof evidence requested by the Runner, never product behavior, Git history, GitHub state, publication state, or credentials. Return the exact supplied JSON schema.
8
+ """