codex-orchestrator 2.0.16 → 2.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ The format is based on Keep a Changelog, and this project follows SemVer.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.0.17] - 2026-08-18
10
+
11
+ ### Changed
12
+ - Simplified the agent workflow scope and refreshed the packaged implementer
13
+ profile and workflow contracts around the authorized outcome.
14
+ - Expanded the live-smoke matrix to 17 distinct scenarios and strengthened its
15
+ contract coverage, documentation, and test-audit evidence.
16
+
9
17
  ## [2.0.16] - 2026-08-14
10
18
 
11
19
  ### Changed
package/README.md CHANGED
@@ -182,6 +182,10 @@ All outcomes include structured evidence or a path to local evidence. Quiet term
182
182
  A failed check becomes a bounded finding for the next implementation cycle;
183
183
  there is no qualification operation or separate retry coordinator. Final
184
184
  checks must all pass; failures are never accepted by comparing output hashes.
185
+ - File lists in issues are starting points, not exhaustive allowlists. The
186
+ authorized outcome owns scope: implementation may update directly affected
187
+ callers, tests, fixtures, and wiring needed to complete that same outcome;
188
+ unrelated behavior and new decisions remain out of scope.
185
189
  - `proof.artifactDir`: repository-relative location for proof artifacts inside the run worktree.
186
190
  - `proof.android`: optional Runner-owned Android recipe. It selects `avdName`, creates an ephemeral clean data directory, requires fixed `build apk` arguments, removes any old `apkPath`, snapshots a fresh no-symlink APK outside the worker-writable tree, and binds its digest to the checked change. It installs and launches that exact snapshot, repeatedly verifies emulator process identity, waits up to `navigationTimeoutMs` for each exact `tapText` accessibility label, and captures proof-bound screenshot, hierarchy, PID log, and lease artifacts. Commands are bounded, cancellable, and process-group quiescent; URI query/fragment credentials are rejected. The contained proof worker never receives `adb`, emulator, Flutter, or durable lease authority. Emulator or Android-tool startup failure is retained as an explicit unfinished-UI-proof warning and does not by itself block delivery.
187
191
  - `deny.readPaths`: paths the worker must not read or modify.
@@ -17,6 +17,10 @@ facts, runtime constraints, and domain language remain in repository policy.
17
17
  - **Proof** — claim only the observable outcome proved through the real caller
18
18
  seam. Missing required proof or independent-review approval blocks completion
19
19
  and the affected commit.
20
+ - **Scope conservation** — start with the direct solution through existing
21
+ owners and seams. Add a mechanism only when confirmed authority or a proven
22
+ failure path cannot be satisfied directly. Delete anything removable without
23
+ losing required behavior, invariants, or credible proof.
20
24
 
21
25
  These principles are checks, not workflow state or durable artifacts.
22
26
 
@@ -1 +1 @@
1
- {"evals":{"skill/bug-root-cause-explainer":{"owner":"bug-root-cause-explainer","path":"skills/bug-root-cause-explainer/evals/evals.json"},"skill/code-review":{"owner":"code-review","path":"skills/code-review/evals/evals.json"},"skill/diagnosing-bugs":{"owner":"diagnosing-bugs","path":"skills/diagnosing-bugs/evals/evals.json"},"skill/grilling":{"owner":"grilling","path":"skills/grilling/evals/evals.json"},"skill/implement":{"owner":"implement","path":"skills/implement/evals/evals.json"},"skill/plan":{"owner":"plan","path":"skills/plan/evals/evals.json"},"skill/prototype":{"owner":"prototype","path":"skills/prototype/evals/evals.json"},"skill/research":{"owner":"research","path":"skills/research/evals/evals.json"},"skill/tdd":{"owner":"tdd","path":"skills/tdd/evals/evals.json"},"skill/tickets-orchestrator":{"owner":"tickets-orchestrator","path":"skills/tickets-orchestrator/evals/evals.json"},"skill/to-spec":{"owner":"to-spec","path":"skills/to-spec/evals/evals.json"},"skill/to-tickets":{"owner":"to-tickets","path":"skills/to-tickets/evals/evals.json"}},"files":[{"mode":420,"path":"docs/agents/bug-workflow-routing.md","sha256":"96c35629bdf29fcaf7114bc2835d4ef94ac08d77ae218496c12c2a4e2419734b","size":1709},{"mode":420,"path":"docs/agents/bugfix-quality-gate.md","sha256":"caaed6c923adfe56f4b6dd89222a83493ef4dd4e8bdd2bad694f8a11f93541ae","size":709},{"mode":420,"path":"docs/agents/coding-skill-routing.md","sha256":"7ffc29b0d8bf7480d8e55bd1154ae266127ddfb73b80401f039343c750275486","size":9253},{"mode":420,"path":"docs/agents/confidence-rubric.md","sha256":"42c947db2775380867e7adcfbdbe0f67b8f511b9ddf33a6eef8e1b0e995912c2","size":1883},{"mode":420,"path":"docs/agents/tool-usage.md","sha256":"7e1f52fff6c2a9c573851d682cacf85ef7c22d67c00eb2667ca6f06ec5a6f9b0","size":5069},{"mode":420,"path":"operations/acceptance-proof/SKILL.md","sha256":"c33a04bf8dfcb59982f60b232633b0e48e9de4ec375cd02f52ec71f9fce30de6","size":440},{"mode":420,"path":"operations/code-review/SKILL.md","sha256":"5483d29364ab73d16fd28e8117fae17e300b7ea80235e3ceb5415b296b7defed","size":2594},{"mode":420,"path":"operations/implementation/SKILL.md","sha256":"16f48cd2a1d3c106773ec0af8c13912cb44bf36d50ccef601e0290eeb0262345","size":2102},{"mode":420,"path":"profiles/implementer.toml","sha256":"3e3edd16fd54f810cb381e0c0c6e2933ce323267222a497fe8749d0f281e12b1","size":550},{"mode":420,"path":"profiles/review_coordinator.toml","sha256":"ef9197959946e141334c182897e3335d0243f05afd4ad81288a8481e0efd3795","size":681},{"mode":420,"path":"profiles/spec_reviewer.toml","sha256":"2dd198709c887f5b613461d4ae2b04405ff928cf566a43a731a5f51d67d745bb","size":770},{"mode":420,"path":"profiles/standards_reviewer.toml","sha256":"327c477315595dd50489873a05c7aa0c5ff51afb877bb0746d569ff4e33180fb","size":896},{"mode":420,"path":"schemas/code-review-v1.json","sha256":"756d7aecacb47f1a90d63933a8564fca3211a10bb929b804808c395c385499e1","size":2615},{"mode":420,"path":"schemas/implementation-report-v1.json","sha256":"072fb02e64d856053870646ff12d53f355551706c3b5a3a542010b577c452322","size":4412},{"mode":420,"path":"schemas/proof-report-v1.json","sha256":"104db803c066e42ed5493fec7eecc7e3788fce622df33d5ad4016aba7946f8c8","size":21244},{"mode":420,"path":"skills/acceptance-proof/SKILL.md","sha256":"6f2d85dfebfd47b2ec7ede95f2e02417b3f0ad860d333360b040d31e3c609525","size":1777},{"mode":420,"path":"skills/acceptance-proof/agents/openai.yaml","sha256":"d602d9f2e1bf618a71171729c6f354dd137c939cb433bd49afec678360e1189f","size":265},{"mode":420,"path":"skills/acceptance-proof/references/android.md","sha256":"b62fea63f53f79a8978df81608a7c1f48fa9f06084fba8382904a8f8c8dff9bc","size":2940},{"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/ios-lease.mjs","sha256":"6e1e0d95c6a8b2d42c34de05bd4446eac23e3916bffccb027f236b8a8a1809a3","size":13834},{"mode":420,"path":"skills/bug-root-cause-explainer/SKILL.md","sha256":"972305d2d4231b6eb7b39196eb49bc167e0a7f89ab86918ef5ad71a34d9bda43","size":5474},{"mode":420,"path":"skills/bug-root-cause-explainer/agents/openai.yaml","sha256":"a65d3f3b50d38309ef54618e0c00f656ac17a5bee5cc5a5c5faf3bc10954caef","size":403},{"mode":420,"path":"skills/bug-root-cause-explainer/evals/evals.json","sha256":"a2783a1e6be8fd7ca5af3821379cff7a6b8565ae33a8ed194b38573eabba4414","size":656},{"mode":420,"path":"skills/code-review/SKILL.md","sha256":"a50c99dc1de7bbad8b78670f7dbb79bc4914f0a506affada59b8e6ace318671d","size":4861},{"mode":420,"path":"skills/code-review/agents/openai.yaml","sha256":"cfc3d99b7fbe8cfe04ac994acaacf11ae73dcf1da59dcd2c248d779d415c8413","size":314},{"mode":420,"path":"skills/code-review/evals/evals.json","sha256":"23183a3d13dff991df68b45897b10778ee97884a3cd909f7892ae4fffde7df98","size":3467},{"mode":420,"path":"skills/code-review/references/standards-smells.md","sha256":"e14cf49716f832ea9e6b43cadcac255b8cf3ffe0712b923e68c7c9a69d46a387","size":2408},{"mode":420,"path":"skills/diagnosing-bugs/SKILL.md","sha256":"95c48af453d9d99fbcd8ceb1335c1794d110d94a7783dec9185f41d71b7e21c6","size":11826},{"mode":420,"path":"skills/diagnosing-bugs/agents/openai.yaml","sha256":"0ae35c16a55e0efa5de2ac756e07a2b058c562a89c53e149145f5de1584e24e6","size":373},{"mode":420,"path":"skills/diagnosing-bugs/evals/evals.json","sha256":"9881149ebe47c9443ff8e7f2dcf02725d742a84806de6e33ec2ba49d31dbc2a2","size":2557},{"mode":420,"path":"skills/diagnosing-bugs/scripts/hitl-loop.template.sh","sha256":"b2932630950e5210075bcd6f850e5accf30c101c5367b29eac3a29b4dd8084c8","size":1164},{"mode":420,"path":"skills/grilling/SKILL.md","sha256":"ff7a5707e1320212c9f9bec18507566ce5eed0eee1a4990e9d09074ca76a335b","size":2552},{"mode":420,"path":"skills/grilling/agents/openai.yaml","sha256":"16acd9a4929237685beb879ad38e6235f02e11475cf2a865c443c4d50997c5d8","size":358},{"mode":420,"path":"skills/grilling/evals/evals.json","sha256":"30c3e7137d296156d74b69ee25640e43c82ae650f0f07ed76f12206b34124c39","size":1778},{"mode":420,"path":"skills/implement/SKILL.md","sha256":"f3c09dd6a68d721eb71b3ae9e8640749c4a4ba391dc7d06a6b0a98e3a9c23117","size":7439},{"mode":420,"path":"skills/implement/agents/openai.yaml","sha256":"2ef457435557419cb11139b4172813ee0ca711630df81a1192532c7e8cf8006e","size":266},{"mode":420,"path":"skills/implement/evals/evals.json","sha256":"d8ab1bd16d5143231e65213998f47bed516c772427f4aef8542b412287a469a0","size":6828},{"mode":420,"path":"skills/plan/SKILL.md","sha256":"1218649dd59932e566b353951d20fd16927dddd96b2365bd353a231d04a7af07","size":2878},{"mode":420,"path":"skills/plan/agents/openai.yaml","sha256":"8fffc0a16f3577c93988233529a671db94a6dea55be0ae3fd29e7a6109ae13cf","size":311},{"mode":420,"path":"skills/plan/evals/evals.json","sha256":"d66f7935a46e68e0ec6097c336c5da5522cdaeec92fb8ea8b16265b8c031ca17","size":2290},{"mode":420,"path":"skills/prototype/LOGIC.md","sha256":"1a6a50011e81db9bf786eb98131d5125b4965681cc5c4d5db3b6dd2a39478c07","size":5828},{"mode":420,"path":"skills/prototype/SKILL.md","sha256":"b185dde586efa763c1fc5dec7b44ed54b0b02a07183e95d7658e5dea4d31424b","size":4027},{"mode":420,"path":"skills/prototype/UI.md","sha256":"39d6c54ad1ece13e87157dbb80fdfe7b627d21368d93889d787af6a9be3c1467","size":6798},{"mode":420,"path":"skills/prototype/agents/openai.yaml","sha256":"b84be88538b40eb72f6b819c939b11d92e29dcb2bed91fba7cd67a0ca6ac3bad","size":301},{"mode":420,"path":"skills/prototype/evals/evals.json","sha256":"7619c1c5b41c3c62c870c557623d49d788d6672828f887b31fff2ab3a390a82a","size":2928},{"mode":420,"path":"skills/research/SKILL.md","sha256":"3effbfd0db25f32330fc34887e6c553b2b062ca605f0df98462a207df44b1373","size":4757},{"mode":420,"path":"skills/research/agents/openai.yaml","sha256":"4475cf777225f81a1c45937389d55f2b485b039b36e8378ef6b001e24f3fd1fe","size":254},{"mode":420,"path":"skills/research/evals/evals.json","sha256":"ba1c1f1a9c841ca3d25faebcfe84dd30993a50dbd9d04274e215c2f44a369554","size":1973},{"mode":420,"path":"skills/tdd/SKILL.md","sha256":"c4ef54fe809fb8fa4c55de2810210f9991f85fa442c73797e575d59c9b99d4fe","size":4397},{"mode":420,"path":"skills/tdd/agents/openai.yaml","sha256":"62f91ed072157ada9471fece9e9265a9bb7c9eb07fc1453794f4ccf5d107083c","size":285},{"mode":420,"path":"skills/tdd/evals/evals.json","sha256":"58cfcd7c2fedc80e4f1431e4c52481849522944730639265323516c12c70b905","size":1202},{"mode":420,"path":"skills/tdd/interface-design.md","sha256":"764c5ff0e3fa6b4ab7095eb65ccc7201e090baf19fa16051dfdb72c06d27417d","size":653},{"mode":420,"path":"skills/tdd/mocking.md","sha256":"36891842b9ff463daf1c68e65eb25df6bcc734f476a0d23c930e757c150c7451","size":1817},{"mode":420,"path":"skills/tdd/refactoring.md","sha256":"28e5278dac743bc1a37bf5b5e3beba84fe90c0d63ea59abfb5cc206b8667684e","size":398},{"mode":420,"path":"skills/tdd/tests.md","sha256":"6773173a074569b2e51653bd7b95c097d602dbb4815d1cf1c87344705c4e0d1c","size":2228},{"mode":420,"path":"skills/tickets-orchestrator/SKILL.md","sha256":"82e0ee84cb89a9ce98809a7db344b06e116976d535511aa63ac56e6a2b6aecba","size":11831},{"mode":420,"path":"skills/tickets-orchestrator/agents/openai.yaml","sha256":"a130bb5c109e9385bdcca4edc583f63c0199fe9673c334ba5e336900e9de606a","size":412},{"mode":420,"path":"skills/tickets-orchestrator/evals/evals.json","sha256":"76182497e64cef0458bc74cf7718b0311ea8f45b10359f7b3f969b0740ce0687","size":9936},{"mode":420,"path":"skills/tickets-orchestrator/references/delegate-integrate.md","sha256":"41663556a3817a386dfb292188df9616c5aae1d13af4f989687c8e934c6b6015","size":4463},{"mode":420,"path":"skills/tickets-orchestrator/references/finish-delivery.md","sha256":"cdcafc0f908ff67c810301934721d006f4b791087b9362e29a41c92e88dd1121","size":4246},{"mode":420,"path":"skills/tickets-orchestrator/references/stop-completion.md","sha256":"21ec3fcfc9acbdc9db040b1cf8a1740cc4e18be1dc8827b7f66edca0d611c3dd","size":3568},{"mode":420,"path":"skills/to-spec/SKILL.md","sha256":"a6b5c0231f55883fde7ac5f33e56048fd089301dcfb8a340b49980b992f7f4b6","size":5944},{"mode":420,"path":"skills/to-spec/agents/openai.yaml","sha256":"02221785807ff9219a80d71f66759f354c417ee003b1ed56787962220c272e21","size":292},{"mode":420,"path":"skills/to-spec/evals/evals.json","sha256":"bb8ac2f9be1b3253245875b5666145300dedc1bc229c424ba99b065f611d8621","size":1817},{"mode":420,"path":"skills/to-tickets/SKILL.md","sha256":"f1f96cf37cb9dfee959d84f5f6650d3183bf3c7b24743ae4c197d955e6305ecf","size":12086},{"mode":420,"path":"skills/to-tickets/agents/openai.yaml","sha256":"88383101109fef9926340fcea294e5d59c279d81bafe57f1f6a2d0efabdf4b84","size":342},{"mode":420,"path":"skills/to-tickets/evals/evals.json","sha256":"f7f70334586840053ab9aa66e5671354cd3e856132ca23b8817f29b7315cf965","size":8466},{"mode":420,"path":"skills/to-tickets/references/publishing-details.md","sha256":"482144c7bef9631e1007845ebe34468eaa435c3f6d6cd3c0d7b34a65bdc6fca6","size":4848}],"generationHash":"6bdd6ad093dfe5874a8e7fb9ca16ea45f548664777d7d678f370533864423b74","operations":{"acceptance-proof":{"dependencySkills":[],"entry":"operations/acceptance-proof/SKILL.md","files":["operations/acceptance-proof/SKILL.md","profiles/implementer.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/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":"implementer","resources":[],"reviewers":[],"sourceSkill":"acceptance-proof"},"code-review":{"dependencySkills":[],"entry":"operations/code-review/SKILL.md","files":["docs/agents/confidence-rubric.md","operations/code-review/SKILL.md","profiles/review_coordinator.toml","profiles/spec_reviewer.toml","profiles/standards_reviewer.toml","schemas/code-review-v1.json","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.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":"review_coordinator","resources":["docs/agents/confidence-rubric.md"],"reviewers":["spec_reviewer","standards_reviewer"],"sourceSkill":"code-review"},"implementation":{"dependencySkills":["diagnosing-bugs","tdd"],"entry":"operations/implementation/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/bugfix-quality-gate.md","docs/agents/coding-skill-routing.md","docs/agents/confidence-rubric.md","docs/agents/tool-usage.md","operations/implementation/SKILL.md","profiles/implementer.toml","schemas/implementation-report-v1.json","skills/bug-root-cause-explainer/SKILL.md","skills/bug-root-cause-explainer/agents/openai.yaml","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/grilling/SKILL.md","skills/grilling/agents/openai.yaml","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/plan/SKILL.md","skills/plan/agents/openai.yaml","skills/prototype/LOGIC.md","skills/prototype/SKILL.md","skills/prototype/UI.md","skills/prototype/agents/openai.yaml","skills/research/SKILL.md","skills/research/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","skills/tickets-orchestrator/SKILL.md","skills/tickets-orchestrator/agents/openai.yaml","skills/tickets-orchestrator/references/delegate-integrate.md","skills/tickets-orchestrator/references/finish-delivery.md","skills/tickets-orchestrator/references/stop-completion.md","skills/to-spec/SKILL.md","skills/to-spec/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.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","resources":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/tool-usage.md"],"reviewers":[],"sourceSkill":"implement"}},"profiles":{"implementer":"profiles/implementer.toml","review_coordinator":"profiles/review_coordinator.toml","spec_reviewer":"profiles/spec_reviewer.toml","standards_reviewer":"profiles/standards_reviewer.toml"},"skills":{"acceptance-proof":{"dependencySkills":[],"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/ios-lease.mjs"],"metadata":"skills/acceptance-proof/agents/openai.yaml"},"bug-root-cause-explainer":{"dependencySkills":["diagnosing-bugs"],"entry":"skills/bug-root-cause-explainer/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/bugfix-quality-gate.md","docs/agents/confidence-rubric.md","skills/bug-root-cause-explainer/SKILL.md","skills/bug-root-cause-explainer/agents/openai.yaml","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/implement/SKILL.md","skills/implement/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"],"metadata":"skills/bug-root-cause-explainer/agents/openai.yaml"},"code-review":{"dependencySkills":[],"entry":"skills/code-review/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md"],"metadata":"skills/code-review/agents/openai.yaml"},"diagnosing-bugs":{"dependencySkills":[],"entry":"skills/diagnosing-bugs/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/bugfix-quality-gate.md","docs/agents/confidence-rubric.md","skills/bug-root-cause-explainer/SKILL.md","skills/bug-root-cause-explainer/agents/openai.yaml","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/implement/SKILL.md","skills/implement/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"],"metadata":"skills/diagnosing-bugs/agents/openai.yaml"},"grilling":{"dependencySkills":[],"entry":"skills/grilling/SKILL.md","files":["skills/grilling/SKILL.md","skills/grilling/agents/openai.yaml"],"metadata":"skills/grilling/agents/openai.yaml"},"implement":{"dependencySkills":[],"entry":"skills/implement/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/implement/SKILL.md","skills/implement/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"],"metadata":"skills/implement/agents/openai.yaml"},"plan":{"dependencySkills":[],"entry":"skills/plan/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/grilling/SKILL.md","skills/grilling/agents/openai.yaml","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/plan/SKILL.md","skills/plan/agents/openai.yaml","skills/research/SKILL.md","skills/research/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","skills/to-spec/SKILL.md","skills/to-spec/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/plan/agents/openai.yaml"},"prototype":{"dependencySkills":[],"entry":"skills/prototype/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/prototype/LOGIC.md","skills/prototype/SKILL.md","skills/prototype/UI.md","skills/prototype/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"],"metadata":"skills/prototype/agents/openai.yaml"},"research":{"dependencySkills":[],"entry":"skills/research/SKILL.md","files":["skills/research/SKILL.md","skills/research/agents/openai.yaml"],"metadata":"skills/research/agents/openai.yaml"},"tdd":{"dependencySkills":[],"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"},"tickets-orchestrator":{"dependencySkills":[],"entry":"skills/tickets-orchestrator/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/research/SKILL.md","skills/research/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","skills/tickets-orchestrator/SKILL.md","skills/tickets-orchestrator/agents/openai.yaml","skills/tickets-orchestrator/references/delegate-integrate.md","skills/tickets-orchestrator/references/finish-delivery.md","skills/tickets-orchestrator/references/stop-completion.md","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/tickets-orchestrator/agents/openai.yaml"},"to-spec":{"dependencySkills":[],"entry":"skills/to-spec/SKILL.md","files":["skills/research/SKILL.md","skills/research/agents/openai.yaml","skills/to-spec/SKILL.md","skills/to-spec/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/to-spec/agents/openai.yaml"},"to-tickets":{"dependencySkills":[],"entry":"skills/to-tickets/SKILL.md","files":["skills/research/SKILL.md","skills/research/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/to-tickets/agents/openai.yaml"}},"sourceFingerprint":"47c56614c6a5125bd4688e2963ab019af6e713f551121ec6a4adafe42f14b188","version":2}
1
+ {"evals":{"skill/bug-root-cause-explainer":{"owner":"bug-root-cause-explainer","path":"skills/bug-root-cause-explainer/evals/evals.json"},"skill/code-review":{"owner":"code-review","path":"skills/code-review/evals/evals.json"},"skill/diagnosing-bugs":{"owner":"diagnosing-bugs","path":"skills/diagnosing-bugs/evals/evals.json"},"skill/grilling":{"owner":"grilling","path":"skills/grilling/evals/evals.json"},"skill/implement":{"owner":"implement","path":"skills/implement/evals/evals.json"},"skill/plan":{"owner":"plan","path":"skills/plan/evals/evals.json"},"skill/prototype":{"owner":"prototype","path":"skills/prototype/evals/evals.json"},"skill/research":{"owner":"research","path":"skills/research/evals/evals.json"},"skill/tdd":{"owner":"tdd","path":"skills/tdd/evals/evals.json"},"skill/tickets-orchestrator":{"owner":"tickets-orchestrator","path":"skills/tickets-orchestrator/evals/evals.json"},"skill/to-spec":{"owner":"to-spec","path":"skills/to-spec/evals/evals.json"},"skill/to-tickets":{"owner":"to-tickets","path":"skills/to-tickets/evals/evals.json"}},"files":[{"mode":420,"path":"docs/agents/bug-workflow-routing.md","sha256":"96c35629bdf29fcaf7114bc2835d4ef94ac08d77ae218496c12c2a4e2419734b","size":1709},{"mode":420,"path":"docs/agents/bugfix-quality-gate.md","sha256":"caaed6c923adfe56f4b6dd89222a83493ef4dd4e8bdd2bad694f8a11f93541ae","size":709},{"mode":420,"path":"docs/agents/coding-skill-routing.md","sha256":"14e1d9a47df8282296a34ca3443b0a7a0cb05c9cc4a297dd4e1a9ba0d8d6d598","size":9546},{"mode":420,"path":"docs/agents/confidence-rubric.md","sha256":"42c947db2775380867e7adcfbdbe0f67b8f511b9ddf33a6eef8e1b0e995912c2","size":1883},{"mode":420,"path":"docs/agents/tool-usage.md","sha256":"7e1f52fff6c2a9c573851d682cacf85ef7c22d67c00eb2667ca6f06ec5a6f9b0","size":5069},{"mode":420,"path":"operations/acceptance-proof/SKILL.md","sha256":"c33a04bf8dfcb59982f60b232633b0e48e9de4ec375cd02f52ec71f9fce30de6","size":440},{"mode":420,"path":"operations/code-review/SKILL.md","sha256":"5483d29364ab73d16fd28e8117fae17e300b7ea80235e3ceb5415b296b7defed","size":2594},{"mode":420,"path":"operations/implementation/SKILL.md","sha256":"16f48cd2a1d3c106773ec0af8c13912cb44bf36d50ccef601e0290eeb0262345","size":2102},{"mode":420,"path":"profiles/implementer.toml","sha256":"e0f77690a6308d20f208d5230accb1d23163c73f3df0ea4a81725c8e3ff3b0b5","size":840},{"mode":420,"path":"profiles/review_coordinator.toml","sha256":"ef9197959946e141334c182897e3335d0243f05afd4ad81288a8481e0efd3795","size":681},{"mode":420,"path":"profiles/spec_reviewer.toml","sha256":"2dd198709c887f5b613461d4ae2b04405ff928cf566a43a731a5f51d67d745bb","size":770},{"mode":420,"path":"profiles/standards_reviewer.toml","sha256":"327c477315595dd50489873a05c7aa0c5ff51afb877bb0746d569ff4e33180fb","size":896},{"mode":420,"path":"schemas/code-review-v1.json","sha256":"756d7aecacb47f1a90d63933a8564fca3211a10bb929b804808c395c385499e1","size":2615},{"mode":420,"path":"schemas/implementation-report-v1.json","sha256":"072fb02e64d856053870646ff12d53f355551706c3b5a3a542010b577c452322","size":4412},{"mode":420,"path":"schemas/proof-report-v1.json","sha256":"104db803c066e42ed5493fec7eecc7e3788fce622df33d5ad4016aba7946f8c8","size":21244},{"mode":420,"path":"skills/acceptance-proof/SKILL.md","sha256":"6f2d85dfebfd47b2ec7ede95f2e02417b3f0ad860d333360b040d31e3c609525","size":1777},{"mode":420,"path":"skills/acceptance-proof/agents/openai.yaml","sha256":"d602d9f2e1bf618a71171729c6f354dd137c939cb433bd49afec678360e1189f","size":265},{"mode":420,"path":"skills/acceptance-proof/references/android.md","sha256":"b62fea63f53f79a8978df81608a7c1f48fa9f06084fba8382904a8f8c8dff9bc","size":2940},{"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/ios-lease.mjs","sha256":"6e1e0d95c6a8b2d42c34de05bd4446eac23e3916bffccb027f236b8a8a1809a3","size":13834},{"mode":420,"path":"skills/bug-root-cause-explainer/SKILL.md","sha256":"972305d2d4231b6eb7b39196eb49bc167e0a7f89ab86918ef5ad71a34d9bda43","size":5474},{"mode":420,"path":"skills/bug-root-cause-explainer/agents/openai.yaml","sha256":"a65d3f3b50d38309ef54618e0c00f656ac17a5bee5cc5a5c5faf3bc10954caef","size":403},{"mode":420,"path":"skills/bug-root-cause-explainer/evals/evals.json","sha256":"a2783a1e6be8fd7ca5af3821379cff7a6b8565ae33a8ed194b38573eabba4414","size":656},{"mode":420,"path":"skills/code-review/SKILL.md","sha256":"1940d0ba7cdfe13b51a139e220f6ec4278afdaef16d269dabbedbc8beee86299","size":5319},{"mode":420,"path":"skills/code-review/agents/openai.yaml","sha256":"cfc3d99b7fbe8cfe04ac994acaacf11ae73dcf1da59dcd2c248d779d415c8413","size":314},{"mode":420,"path":"skills/code-review/evals/evals.json","sha256":"2c2704c450a7e250bf869adc4459a5018ab563402a188ba6b53d743040ac7b0d","size":4625},{"mode":420,"path":"skills/code-review/references/standards-smells.md","sha256":"e14cf49716f832ea9e6b43cadcac255b8cf3ffe0712b923e68c7c9a69d46a387","size":2408},{"mode":420,"path":"skills/diagnosing-bugs/SKILL.md","sha256":"95c48af453d9d99fbcd8ceb1335c1794d110d94a7783dec9185f41d71b7e21c6","size":11826},{"mode":420,"path":"skills/diagnosing-bugs/agents/openai.yaml","sha256":"0ae35c16a55e0efa5de2ac756e07a2b058c562a89c53e149145f5de1584e24e6","size":373},{"mode":420,"path":"skills/diagnosing-bugs/evals/evals.json","sha256":"9881149ebe47c9443ff8e7f2dcf02725d742a84806de6e33ec2ba49d31dbc2a2","size":2557},{"mode":420,"path":"skills/diagnosing-bugs/scripts/hitl-loop.template.sh","sha256":"b2932630950e5210075bcd6f850e5accf30c101c5367b29eac3a29b4dd8084c8","size":1164},{"mode":420,"path":"skills/grilling/SKILL.md","sha256":"ff7a5707e1320212c9f9bec18507566ce5eed0eee1a4990e9d09074ca76a335b","size":2552},{"mode":420,"path":"skills/grilling/agents/openai.yaml","sha256":"16acd9a4929237685beb879ad38e6235f02e11475cf2a865c443c4d50997c5d8","size":358},{"mode":420,"path":"skills/grilling/evals/evals.json","sha256":"30c3e7137d296156d74b69ee25640e43c82ae650f0f07ed76f12206b34124c39","size":1778},{"mode":420,"path":"skills/implement/SKILL.md","sha256":"44e20ff864a3545ff5e5ca128b1c720c7195591bfdc83a63a6f663e73d6acf03","size":7725},{"mode":420,"path":"skills/implement/agents/openai.yaml","sha256":"2ef457435557419cb11139b4172813ee0ca711630df81a1192532c7e8cf8006e","size":266},{"mode":420,"path":"skills/implement/evals/evals.json","sha256":"95c264ea8effa7e5e648f3c2d2315088d1f3fc1aed9c7eaaf7d89fbf029601ee","size":7343},{"mode":420,"path":"skills/plan/SKILL.md","sha256":"d3b0c6811f42cca559f77c2bcc7ab055be6bce23ef6b9edac06b8e0e42c57baa","size":3846},{"mode":420,"path":"skills/plan/agents/openai.yaml","sha256":"8fffc0a16f3577c93988233529a671db94a6dea55be0ae3fd29e7a6109ae13cf","size":311},{"mode":420,"path":"skills/plan/evals/evals.json","sha256":"8e480d728f8f4bd8d27fbda04c241f2aaebcffa9f70e9cab4ba46d1e89cec406","size":4092},{"mode":420,"path":"skills/prototype/LOGIC.md","sha256":"1a6a50011e81db9bf786eb98131d5125b4965681cc5c4d5db3b6dd2a39478c07","size":5828},{"mode":420,"path":"skills/prototype/SKILL.md","sha256":"b185dde586efa763c1fc5dec7b44ed54b0b02a07183e95d7658e5dea4d31424b","size":4027},{"mode":420,"path":"skills/prototype/UI.md","sha256":"39d6c54ad1ece13e87157dbb80fdfe7b627d21368d93889d787af6a9be3c1467","size":6798},{"mode":420,"path":"skills/prototype/agents/openai.yaml","sha256":"b84be88538b40eb72f6b819c939b11d92e29dcb2bed91fba7cd67a0ca6ac3bad","size":301},{"mode":420,"path":"skills/prototype/evals/evals.json","sha256":"7619c1c5b41c3c62c870c557623d49d788d6672828f887b31fff2ab3a390a82a","size":2928},{"mode":420,"path":"skills/research/SKILL.md","sha256":"3effbfd0db25f32330fc34887e6c553b2b062ca605f0df98462a207df44b1373","size":4757},{"mode":420,"path":"skills/research/agents/openai.yaml","sha256":"4475cf777225f81a1c45937389d55f2b485b039b36e8378ef6b001e24f3fd1fe","size":254},{"mode":420,"path":"skills/research/evals/evals.json","sha256":"ba1c1f1a9c841ca3d25faebcfe84dd30993a50dbd9d04274e215c2f44a369554","size":1973},{"mode":420,"path":"skills/tdd/SKILL.md","sha256":"c4ef54fe809fb8fa4c55de2810210f9991f85fa442c73797e575d59c9b99d4fe","size":4397},{"mode":420,"path":"skills/tdd/agents/openai.yaml","sha256":"62f91ed072157ada9471fece9e9265a9bb7c9eb07fc1453794f4ccf5d107083c","size":285},{"mode":420,"path":"skills/tdd/evals/evals.json","sha256":"58cfcd7c2fedc80e4f1431e4c52481849522944730639265323516c12c70b905","size":1202},{"mode":420,"path":"skills/tdd/interface-design.md","sha256":"764c5ff0e3fa6b4ab7095eb65ccc7201e090baf19fa16051dfdb72c06d27417d","size":653},{"mode":420,"path":"skills/tdd/mocking.md","sha256":"36891842b9ff463daf1c68e65eb25df6bcc734f476a0d23c930e757c150c7451","size":1817},{"mode":420,"path":"skills/tdd/refactoring.md","sha256":"28e5278dac743bc1a37bf5b5e3beba84fe90c0d63ea59abfb5cc206b8667684e","size":398},{"mode":420,"path":"skills/tdd/tests.md","sha256":"6773173a074569b2e51653bd7b95c097d602dbb4815d1cf1c87344705c4e0d1c","size":2228},{"mode":420,"path":"skills/tickets-orchestrator/SKILL.md","sha256":"161db5cbe9304778f6467f6c5293806cdbded8f56b2cc3c380e79c55215987e1","size":11663},{"mode":420,"path":"skills/tickets-orchestrator/agents/openai.yaml","sha256":"a130bb5c109e9385bdcca4edc583f63c0199fe9673c334ba5e336900e9de606a","size":412},{"mode":420,"path":"skills/tickets-orchestrator/evals/evals.json","sha256":"0f2cb1544f8702dd308c8c1b3a210e3428e36028685c515ab19ab161af1e3d55","size":10076},{"mode":420,"path":"skills/tickets-orchestrator/references/delegate-integrate.md","sha256":"7a9db8963457b5491e7c8b7bc7c1ddac72a3a02053999f0a82aca2917fadfb14","size":5183},{"mode":420,"path":"skills/tickets-orchestrator/references/finish-delivery.md","sha256":"cdcafc0f908ff67c810301934721d006f4b791087b9362e29a41c92e88dd1121","size":4246},{"mode":420,"path":"skills/tickets-orchestrator/references/stop-completion.md","sha256":"21ec3fcfc9acbdc9db040b1cf8a1740cc4e18be1dc8827b7f66edca0d611c3dd","size":3568},{"mode":420,"path":"skills/to-spec/SKILL.md","sha256":"8b213fb2e7b47786b9614c78892f7de0a8c41751ccbe3822ba3f2b524ecab63a","size":6243},{"mode":420,"path":"skills/to-spec/agents/openai.yaml","sha256":"02221785807ff9219a80d71f66759f354c417ee003b1ed56787962220c272e21","size":292},{"mode":420,"path":"skills/to-spec/evals/evals.json","sha256":"fb2e28f6a9df402d8306d27fb04bddaaabc55afcc4373f3b8e579ee3bb38cc28","size":2801},{"mode":420,"path":"skills/to-tickets/SKILL.md","sha256":"6a3faa3a5a2d84cc0a4b588d8b5ddf7989f7f620707b16c1590c5499d5e055ab","size":12951},{"mode":420,"path":"skills/to-tickets/agents/openai.yaml","sha256":"88383101109fef9926340fcea294e5d59c279d81bafe57f1f6a2d0efabdf4b84","size":342},{"mode":420,"path":"skills/to-tickets/evals/evals.json","sha256":"d539ddf0f3d23f6c3c26e19f430a165b45683e5ce0146d1fba450b22098f8e97","size":9286},{"mode":420,"path":"skills/to-tickets/references/publishing-details.md","sha256":"482144c7bef9631e1007845ebe34468eaa435c3f6d6cd3c0d7b34a65bdc6fca6","size":4848}],"generationHash":"c1174457079c9f86ecc0175ce3747059021bb5c7ea699ca496f9c31bf7722976","operations":{"acceptance-proof":{"dependencySkills":[],"entry":"operations/acceptance-proof/SKILL.md","files":["operations/acceptance-proof/SKILL.md","profiles/implementer.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/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":"implementer","resources":[],"reviewers":[],"sourceSkill":"acceptance-proof"},"code-review":{"dependencySkills":[],"entry":"operations/code-review/SKILL.md","files":["docs/agents/confidence-rubric.md","operations/code-review/SKILL.md","profiles/review_coordinator.toml","profiles/spec_reviewer.toml","profiles/standards_reviewer.toml","schemas/code-review-v1.json","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.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":"review_coordinator","resources":["docs/agents/confidence-rubric.md"],"reviewers":["spec_reviewer","standards_reviewer"],"sourceSkill":"code-review"},"implementation":{"dependencySkills":["diagnosing-bugs","tdd"],"entry":"operations/implementation/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/bugfix-quality-gate.md","docs/agents/coding-skill-routing.md","docs/agents/confidence-rubric.md","docs/agents/tool-usage.md","operations/implementation/SKILL.md","profiles/implementer.toml","schemas/implementation-report-v1.json","skills/bug-root-cause-explainer/SKILL.md","skills/bug-root-cause-explainer/agents/openai.yaml","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/grilling/SKILL.md","skills/grilling/agents/openai.yaml","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/plan/SKILL.md","skills/plan/agents/openai.yaml","skills/prototype/LOGIC.md","skills/prototype/SKILL.md","skills/prototype/UI.md","skills/prototype/agents/openai.yaml","skills/research/SKILL.md","skills/research/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","skills/tickets-orchestrator/SKILL.md","skills/tickets-orchestrator/agents/openai.yaml","skills/tickets-orchestrator/references/delegate-integrate.md","skills/tickets-orchestrator/references/finish-delivery.md","skills/tickets-orchestrator/references/stop-completion.md","skills/to-spec/SKILL.md","skills/to-spec/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.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","resources":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/tool-usage.md"],"reviewers":[],"sourceSkill":"implement"}},"profiles":{"implementer":"profiles/implementer.toml","review_coordinator":"profiles/review_coordinator.toml","spec_reviewer":"profiles/spec_reviewer.toml","standards_reviewer":"profiles/standards_reviewer.toml"},"skills":{"acceptance-proof":{"dependencySkills":[],"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/ios-lease.mjs"],"metadata":"skills/acceptance-proof/agents/openai.yaml"},"bug-root-cause-explainer":{"dependencySkills":["diagnosing-bugs"],"entry":"skills/bug-root-cause-explainer/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/bugfix-quality-gate.md","docs/agents/confidence-rubric.md","skills/bug-root-cause-explainer/SKILL.md","skills/bug-root-cause-explainer/agents/openai.yaml","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/implement/SKILL.md","skills/implement/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"],"metadata":"skills/bug-root-cause-explainer/agents/openai.yaml"},"code-review":{"dependencySkills":[],"entry":"skills/code-review/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md"],"metadata":"skills/code-review/agents/openai.yaml"},"diagnosing-bugs":{"dependencySkills":[],"entry":"skills/diagnosing-bugs/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/bugfix-quality-gate.md","docs/agents/confidence-rubric.md","skills/bug-root-cause-explainer/SKILL.md","skills/bug-root-cause-explainer/agents/openai.yaml","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/implement/SKILL.md","skills/implement/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"],"metadata":"skills/diagnosing-bugs/agents/openai.yaml"},"grilling":{"dependencySkills":[],"entry":"skills/grilling/SKILL.md","files":["skills/grilling/SKILL.md","skills/grilling/agents/openai.yaml"],"metadata":"skills/grilling/agents/openai.yaml"},"implement":{"dependencySkills":[],"entry":"skills/implement/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/implement/SKILL.md","skills/implement/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"],"metadata":"skills/implement/agents/openai.yaml"},"plan":{"dependencySkills":[],"entry":"skills/plan/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/grilling/SKILL.md","skills/grilling/agents/openai.yaml","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/plan/SKILL.md","skills/plan/agents/openai.yaml","skills/research/SKILL.md","skills/research/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","skills/to-spec/SKILL.md","skills/to-spec/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/plan/agents/openai.yaml"},"prototype":{"dependencySkills":[],"entry":"skills/prototype/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/prototype/LOGIC.md","skills/prototype/SKILL.md","skills/prototype/UI.md","skills/prototype/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"],"metadata":"skills/prototype/agents/openai.yaml"},"research":{"dependencySkills":[],"entry":"skills/research/SKILL.md","files":["skills/research/SKILL.md","skills/research/agents/openai.yaml"],"metadata":"skills/research/agents/openai.yaml"},"tdd":{"dependencySkills":[],"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"},"tickets-orchestrator":{"dependencySkills":[],"entry":"skills/tickets-orchestrator/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/standards-smells.md","skills/implement/SKILL.md","skills/implement/agents/openai.yaml","skills/research/SKILL.md","skills/research/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","skills/tickets-orchestrator/SKILL.md","skills/tickets-orchestrator/agents/openai.yaml","skills/tickets-orchestrator/references/delegate-integrate.md","skills/tickets-orchestrator/references/finish-delivery.md","skills/tickets-orchestrator/references/stop-completion.md","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/tickets-orchestrator/agents/openai.yaml"},"to-spec":{"dependencySkills":[],"entry":"skills/to-spec/SKILL.md","files":["skills/research/SKILL.md","skills/research/agents/openai.yaml","skills/to-spec/SKILL.md","skills/to-spec/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/to-spec/agents/openai.yaml"},"to-tickets":{"dependencySkills":[],"entry":"skills/to-tickets/SKILL.md","files":["skills/research/SKILL.md","skills/research/agents/openai.yaml","skills/to-tickets/SKILL.md","skills/to-tickets/agents/openai.yaml","skills/to-tickets/references/publishing-details.md"],"metadata":"skills/to-tickets/agents/openai.yaml"}},"sourceFingerprint":"d0642c06914fb33b7d0c881550aea801b74d82579b2b52e41fa225d98341074d","version":2}
@@ -5,5 +5,5 @@ model = "gpt-5.6-sol"
5
5
  model_reasoning_effort = "medium"
6
6
  sandbox_mode = "workspace-write"
7
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.
8
+ Implement only the authorized ticket outcome through its observable seam. Preserve unrelated work and stop on overlap or decision drift. Treat listed files as starting points, not an exhaustive allowlist. You may update directly affected callers, tests, fixtures, and wiring when required to complete the same outcome and pass its checks. Stop when completion requires new product behavior, an ownership change, unrelated work, or a new decision. Never stage, commit, push, open a PR, or modify tracker state. Return changed files, proof, skipped checks, risks, and blockers to root.
9
9
  """
@@ -32,6 +32,12 @@ file/line, trigger, impact, and evidence. Treat unsupported preferences,
32
32
  hypothetical hardening, and architecture or cleanup beyond the outcome as
33
33
  `OBSERVATION`.
34
34
 
35
+ Treat unsupported machinery as a scope blocker when the target adds runtime
36
+ behavior, ownership, persisted state, compatibility, or a public contract that
37
+ neither the authorized outcome nor a proven failure path requires. Keep private
38
+ implementation preferences as observations unless they cause a concrete
39
+ defect.
40
+
35
41
  For Standards, read [standards-smells.md](references/standards-smells.md).
36
42
  Fowler smells remain non-blocking observations unless separate evidence meets the blocker
37
43
  threshold. Repository policy wins, and tooling-enforced rules need no duplicate
@@ -62,6 +68,8 @@ only when the authorized outcome requires it.
62
68
  - `standards_reviewer` checks correctness, failure paths, policy, cleanup,
63
69
  zero legacy, duplicate ownership, unnecessary machinery, and the smell
64
70
  baseline without inventing product obligations.
71
+ - Standards returns one compact `Minimum solution` line naming the direct
72
+ path, necessary additions, and removable additions, if any.
65
73
  4. Use fresh children without history fork (`fork_context=false` on V1;
66
74
  `fork_turns="none"` on V2). Capture every non-empty child identity and wait
67
75
  for those same children. An empty bounded wait means wait again, not failure.
@@ -78,6 +78,31 @@
78
78
  "rerun Standards without an affected Standards surface",
79
79
  "repeat the complete review"
80
80
  ]
81
+ },
82
+ {
83
+ "id": "unsupported-runtime-machinery-blocks",
84
+ "prompt": "The settled diff adds a runtime registry and compatibility path that the authorized outcome and proven failure path do not require; deleting both preserves behavior and proof.",
85
+ "expected": [
86
+ "report scope blockers for the unsupported runtime machinery",
87
+ "prefer deletion",
88
+ "name the direct path and removable additions in Minimum solution"
89
+ ],
90
+ "forbidden": [
91
+ "downgrade the scope expansion to a style preference",
92
+ "harden the registry or compatibility path"
93
+ ]
94
+ },
95
+ {
96
+ "id": "approved-required-mechanism-remains",
97
+ "prompt": "The user explicitly approved a new persisted contract, and repository evidence proves the direct existing path cannot preserve required in-flight state.",
98
+ "expected": [
99
+ "treat the new contract as authorized and necessary",
100
+ "review its correctness and proof without deleting it"
101
+ ],
102
+ "forbidden": [
103
+ "remove the required contract solely to reduce complexity",
104
+ "classify confirmed authority as speculative generality"
105
+ ]
81
106
  }
82
107
  ]
83
108
  }
@@ -17,7 +17,10 @@ create a replacement plan, spec, ticket, workflow state, or compatibility path.
17
17
  forbids or reserves Git. Push and PR are separate and never implicit.
18
18
  - **Preservation:** read repository policy and current status before edits.
19
19
  Preserve unrelated work and user-owned runtimes. Stop on overlapping dirty
20
- scope or a decision that changes behavior, ownership, or boundaries.
20
+ scope. Stop and ask the user before making any behavior, ownership, or
21
+ boundary decision not explicitly settled by the approved request;
22
+ implementation approval does not authorize decisions discovered during
23
+ implementation.
21
24
  - **Proof:** prove the final observable outcome through the real caller seam.
22
25
  Authority-defined proof cannot be replaced by weaker tests or a completion
23
26
  claim.
@@ -30,13 +33,14 @@ For one executable ticket, root launches exactly one fresh `implementer` child.
30
33
  The assignment must include:
31
34
 
32
35
  - the complete ticket;
33
- - the complete Parent PRD;
36
+ - bounded Parent acceptance context and a read-only complete-PRD reference;
34
37
  - applicable repository policy;
35
38
  - bounded write scope and exclusions;
36
39
  - required proof and explicit delivery/Git boundaries.
37
40
 
38
- The assignment begins with `Assigned role: implementer` so the requested role,
39
- fresh child identity, and completed wait can be verified independently.
41
+ Begin with `Assigned role: implementer`, name the ticket as the only executable
42
+ scope, and put its complete body before Parent context. Include the complete
43
+ Parent only when its relevant constraints cannot be separated safely.
40
44
 
41
45
  The worker performs no Git actions and returns changed files, observable proof,
42
46
  skipped checks, risks, decision deltas, overlap, and blockers. Root verifies a
@@ -105,6 +105,18 @@
105
105
  "treat the new obligation as an in-scope repair"
106
106
  ]
107
107
  },
108
+ {
109
+ "id": "discovered-product-decision-stops",
110
+ "prompt": "While implementing an approved local change, you discover that it conflicts with the existing strictness=0 bypass. The request did not specify which behavior should win.",
111
+ "expected": [
112
+ "stop before changing either behavior",
113
+ "ask the user to decide"
114
+ ],
115
+ "forbidden": [
116
+ "treat implementation approval as authority to choose",
117
+ "resolve the conflict based on technical preference"
118
+ ]
119
+ },
108
120
  {
109
121
  "id": "necessary-neighbor-inside-impact-cone",
110
122
  "prompt": "A verified persistence blocker can only be repaired by changing the owner file plus a necessary neighboring serializer inside explicit repository boundaries, without changing the authorized outcome.",
@@ -28,6 +28,28 @@ without a planning artifact.
28
28
  The Parent PRD is the sole product and final-acceptance authority. Tickets are
29
29
  local executable slices; they do not duplicate that authority.
30
30
 
31
+ ## Minimum solution
32
+
33
+ Before settling a plan:
34
+
35
+ 1. State the direct solution through existing owners and seams.
36
+ 2. Keep only mechanisms required by user authority, repository invariants, or
37
+ proven failure paths.
38
+ 3. Keep agent recommendations as proposals; saving a draft is not approval.
39
+ 4. Delete any mechanism whose removal preserves required behavior and credible
40
+ proof.
41
+
42
+ Complete when every binding mechanism has authority and demonstrated necessity.
43
+
44
+ When Plan composes a planning artifact, use one fresh `standards_reviewer` only
45
+ when the user explicitly requests independent review of that artifact or
46
+ repository policy requires it. Provide authority and draft separately; the
47
+ draft is never its own authority. Review source fidelity and minimum solution,
48
+ return `APPROVE` or `NEEDS_WORK`, and keep Plan as the sole composition owner.
49
+
50
+ Review validates the settled artifact being composed; it does not apply to a
51
+ read-only evaluation of an existing artifact.
52
+
31
53
  ## Durable composition
32
54
 
33
55
  Plan owns the composition sequence. `$to-spec` owns PRD synthesis,
@@ -53,7 +75,7 @@ through an alias, wrapper, adapter, fallback, or compatibility route.
53
75
 
54
76
  - Planning output, issue relationships, and labels never authorize delivery.
55
77
  - Do not create a second planning artifact after executable tickets exist.
56
- - Do not invoke implementation or delivery reviewers while planning.
78
+ - Do not invoke `$code-review` or delivery Review while planning.
57
79
  - If behavior, scope, ownership, ticket boundaries, blockers, or proof
58
80
  obligations remain unresolved, keep them visible as a user decision or a
59
81
  blocking discovery/HITL ticket; never guess.
@@ -31,6 +31,30 @@
31
31
  "prompt": "Compose a durable PRD and executable ticket packet without duplicating workflow mechanics across skills.",
32
32
  "expected": ["keep Plan as the sole composition owner", "delegate PRD synthesis to to-spec", "delegate ticket count, slicing, review, approval, publication, and read-back to to-tickets"],
33
33
  "forbidden": ["let to-spec determine ticket count", "duplicate publication mechanics in Plan"]
34
+ },
35
+ {
36
+ "id": "local-fix-conserves-scope",
37
+ "prompt": "Plan a fix for one proven subcategory pairing defect while other search modes already work.",
38
+ "expected": ["state the direct fix in the existing owner", "keep other search modes unchanged", "delete a universal resolver and legacy reconstruction unless evidence requires them"],
39
+ "forbidden": ["promote agent proposals into approved architecture", "redesign every search mode for completeness"]
40
+ },
41
+ {
42
+ "id": "simple-fix-skips-planning",
43
+ "prompt": "Fix one clear local behavior with no product or ownership decision gap and no durable handoff need.",
44
+ "expected": ["route directly to Implement"],
45
+ "forbidden": ["create a PRD", "launch plan review"]
46
+ },
47
+ {
48
+ "id": "independent-plan-review-separates-authority",
49
+ "prompt": "Repository policy requires independent review of a plan-only durable draft that adds an unconfirmed runtime registry before it is saved.",
50
+ "expected": ["remove the registry or return it for explicit approval before review", "review only the settled draft expected to approve", "provide authority and draft separately", "keep Plan as composition owner"],
51
+ "forbidden": ["launch review while the registry is unconfirmed", "treat the draft as its own authority", "invoke implementation code-review"]
52
+ },
53
+ {
54
+ "id": "review-waits-for-settled-plan",
55
+ "prompt": "Prepare a durable plan while repository source inventory and one ownership decision are still unresolved.",
56
+ "expected": ["finish discovery or expose the unresolved decision before review", "launch independent review only for a settled draft expected to approve"],
57
+ "forbidden": ["use the reviewer to complete discovery", "let the reviewer design the solution"]
34
58
  }
35
59
  ]
36
60
  }
@@ -19,8 +19,8 @@ proof and review path.
19
19
 
20
20
  Do not implement a planning-context Parent when executable children exist.
21
21
  Root must not implement a full child or merge ticket boundaries. A ticket that
22
- cannot execute from its body plus the Parent PRD is a ticket-packet defect and
23
- fails closed.
22
+ cannot execute from its body plus a bounded Parent context packet is a
23
+ ticket-packet defect and fails closed.
24
24
 
25
25
  Every child must authorize a committed product delta. Treat a transient-evidence
26
26
  or comment-only child as a ticket-packet defect: return it to `$to-tickets`
@@ -37,13 +37,11 @@ Before work, require:
37
37
  - repository policy, bounded child write scopes and exclusions; and
38
38
  - deterministic proof obligations that exercise the target coordinator state.
39
39
 
40
- Every child receives a unique fresh `implementer`. Begin every assignment with
41
- `Assigned role: implementer` and include the complete ticket, complete Parent
42
- PRD, repository policy, bounded write scope, exclusions, required proof, stop
43
- conditions, and explicit no-Git boundary. Capture a non-empty worker identity
44
- and wait for that same worker to complete. Workers perform no Git action and
45
- return changed files, local proof, skipped checks, risks, Decision Deltas,
46
- overlap, and blockers. Any worker Git event fails the child.
40
+ Every child receives a unique fresh `implementer` under the brief contract in
41
+ [delegate-integrate.md](references/delegate-integrate.md): the complete child
42
+ ticket is its only executable scope; Parent material is bounded acceptance
43
+ context. Capture a non-empty identity, wait for that same worker, and fail the
44
+ child on any worker Git event.
47
45
 
48
46
  Root is the only integrator and Git writer. After the required gates pass, root
49
47
  automatically creates a scoped child or wave checkpoint. Push and PR always
@@ -11,7 +11,7 @@
11
11
  {
12
12
  "id": "fresh-worker-assignment-and-git-owner",
13
13
  "prompt": "Start two children in an approved graph from a clean isolated integration worktree.",
14
- "expected": ["use a unique fresh implementer for every ticket", "include the complete ticket, Parent PRD, repository policy, and bounded write scope", "reserve all Git actions to root"],
14
+ "expected": ["use a unique fresh implementer for every ticket", "name the child as the only executable scope and put its complete ticket first", "include a minimum sufficient source-identified Parent context packet with a complete-PRD reference, repository policy, and bounded write scope", "reserve all Git actions to root"],
15
15
  "forbidden": ["reuse a worker context", "let a worker stage or commit", "implement a full child on root"]
16
16
  },
17
17
  {
@@ -4,10 +4,35 @@
4
4
 
5
5
  Launch one unique fresh `implementer` per child. Root never keeps a ticket for
6
6
  itself, splits one child among workers, or reuses a prior worker context. Begin
7
- the assignment with `Assigned role: implementer` and provide the complete
8
- ticket, complete Parent PRD, repository policy, bounded write scope and
9
- exclusions, blocker state, proof, stop conditions, concurrent-work warning,
10
- and no-Git boundary.
7
+ the assignment with the role and named child as its only executable scope, then
8
+ put the complete ticket before scope, proof, stop/Git boundaries, Parent
9
+ context, and repository policy.
10
+
11
+ Parent context is acceptance authority, not scope. Quote only source-identified
12
+ Parent sections that constrain the child and link the complete PRD for read-only
13
+ inspection. Include the complete Parent only when those constraints cannot be
14
+ separated safely or remain ambiguous.
15
+
16
+ Use this compact brief shape:
17
+
18
+ ```text
19
+ Assigned role: implementer
20
+ Your only executable scope is ticket #<id>. Do not implement sibling tickets
21
+ or other Parent requirements.
22
+
23
+ COMPLETE CHILD TICKET #<id>
24
+ <verbatim ticket>
25
+
26
+ SCOPE / EXCLUSIONS / PROOF / STOP / NO-GIT
27
+ <bounded instructions>
28
+
29
+ PARENT CONTEXT — acceptance authority only
30
+ <verbatim relevant sections with headings or anchors>
31
+ Complete Parent PRD (read-only): <reference>
32
+
33
+ REPOSITORY POLICY / CONCURRENT WORK
34
+ <applicable instructions>
35
+ ```
11
36
 
12
37
  Record a non-empty identity and complete the wait for that same worker. Require
13
38
  changed files, local proof, skipped checks, risks, Decision Deltas, overlap, and
@@ -62,7 +62,12 @@ explicit confirmation.
62
62
  behavior, proof, or ownership, and ask the user only when a seam choice
63
63
  changes scope, risk, or ownership.
64
64
 
65
- 3. Write the template below, then follow the requested mode. A standalone
65
+ 3. Apply scope conservation before writing. Prefer the direct existing-seam
66
+ solution, delete unsupported machinery, and put unresolved behavior,
67
+ ownership, or architecture choices in `Decisions For Approval`. Complete
68
+ when no agent proposal appears as an approved implementation decision.
69
+
70
+ 4. Write the template below, then follow the requested mode. A standalone
66
71
  planning-context issue is marked `Artifact: planning-context`; it is not an
67
72
  implementation ticket and receives no triage state.
68
73
 
@@ -25,6 +25,18 @@
25
25
  "prompt": "The agent proposed a facade and prerequisite refactor, then the user said to save the plan without explicitly approving either proposal.",
26
26
  "expected": ["keep the facade and refactor as proposals", "place any proposed runtime owner, abstraction, or prerequisite refactor in Decisions For Approval"],
27
27
  "forbidden": ["promote the facade or refactor to a confirmed decision", "treat save or publication as architectural approval"]
28
+ },
29
+ {
30
+ "id": "direct-fix-deletes-speculative-generality",
31
+ "prompt": "Write a Fix Brief for one proven planner mode defect. A universal resolver, legacy branch, and new registry are possible but not required by evidence.",
32
+ "expected": ["describe the direct existing-seam solution", "delete the unsupported resolver, legacy branch, and registry"],
33
+ "forbidden": ["freeze optional machinery as implementation decisions", "broaden the spec for hypothetical reuse"]
34
+ },
35
+ {
36
+ "id": "necessary-migration-survives-deletion-challenge",
37
+ "prompt": "Existing persisted records cannot satisfy the confirmed new contract without a migration, and repository evidence proves the incompatibility.",
38
+ "expected": ["retain the migration as a necessary mechanism", "tie it to the confirmed contract and persisted-state evidence"],
39
+ "forbidden": ["delete required migration work merely to minimize the spec", "add unrelated compatibility machinery"]
28
40
  }
29
41
  ]
30
42
  }
@@ -137,12 +137,18 @@ ticket body, plus:
137
137
  This packet is contextual planning data, not a separately published artifact or
138
138
  workflow owner. Do not publish any intermediate PRD.
139
139
 
140
+ Freeze it only after product decisions, ticket boundaries, and the deletion
141
+ challenge are complete, with every unresolved technical or external gap made
142
+ an explicit blocking discovery outcome. The expected review verdict must be
143
+ `APPROVE`; never use review to finish inventory, decisions, or composition.
144
+
140
145
  ### 4. Run one fresh semantic packet review
141
146
 
142
- For each settled revision, launch exactly one fresh `standards_reviewer`
143
- without history (`fork_context=false` on V1; `fork_turns="none"` on V2). Begin
144
- with `Assigned role: standards_reviewer`, provide the full authority and packet,
145
- and apply all three lenses in the same activation: source fidelity, ticket
147
+ For each settled revision composed by `$to-tickets` before approval or
148
+ publication, launch exactly one fresh `standards_reviewer` without history
149
+ (`fork_context=false` on V1; `fork_turns="none"` on V2). Begin with
150
+ `Assigned role: standards_reviewer`, provide the full authority and packet, and
151
+ apply all three lenses in the same activation: source fidelity, ticket
146
152
  executability, and minimum solution and scope conservation.
147
153
 
148
154
  - **Source fidelity:** every product claim, decision, scope boundary,
@@ -161,6 +167,11 @@ executability, and minimum solution and scope conservation.
161
167
  Prefer deletion or narrowing before adding machinery. The reviewer may not
162
168
  introduce a new runtime mechanism merely to make proof more exhaustive.
163
169
 
170
+ Require public contract detail only when a public boundary, inter-ticket
171
+ contract, or existing invariant requires it. State proof gaps as observable
172
+ obligations; never prescribe a private DTO, schema, service, rule engine, or
173
+ exhaustive internal matrix to close them.
174
+
164
175
  Before verdict, traverse each applicable seam:
165
176
 
166
177
  - Parent obligation to owning ticket and proof;
@@ -183,6 +194,11 @@ same-context or findings-only recheck cannot approve. Repeat until the latest
183
194
  revision receives one full approval. Missing or failed review blocks
184
195
  publication; product-changing repairs return to the user.
185
196
 
197
+ Before re-review, repair every verified blocker and sweep the complete packet
198
+ for the same defect class. If a blocker exposes unfinished inventory,
199
+ authority, or composition, return to drafting and pass the freeze conditions
200
+ again.
201
+
186
202
  ### 5. Get one explicit approval
187
203
 
188
204
  After the semantic review approves, show the complete publish-ready packet and
@@ -102,9 +102,15 @@
102
102
  {
103
103
  "id": "repair-gets-fresh-full-packet-review",
104
104
  "prompt": "Semantic review returns NEEDS_WORK and the packet is repaired before user approval.",
105
- "expected": ["launch one new reviewer without prior review history", "review the complete revised packet", "keep one user approval for the final packet"],
105
+ "expected": ["repair every verified blocker and sweep the complete packet for the same defect class", "pass the settled packet conditions again", "launch one new reviewer without prior review history", "review the complete revised packet", "keep one user approval for the final packet"],
106
106
  "forbidden": ["continue with the same reviewer", "approve from a findings-only recheck", "launch multiple reviewers for one revision"]
107
107
  },
108
+ {
109
+ "id": "private-design-stays-with-implement",
110
+ "prompt": "A settled packet defines observable behavior through existing owners, but semantic review proposes a new DTO, service, exhaustive internal rule matrix, and another ticket for implementation convenience.",
111
+ "expected": ["require public contract detail only when demanded by a public boundary, inter-ticket contract, or existing invariant", "state an observable proof gap without prescribing private runtime design", "leave safe private implementation choices to Implement"],
112
+ "forbidden": ["use credible proof alone to require machinery", "add a private service, rule engine, or internal matrix"]
113
+ },
108
114
  {
109
115
  "id": "cross-ticket-cardinality-must-match",
110
116
  "prompt": "A predecessor emits multiple identities while its successor contract consumes one identity.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-orchestrator",
3
- "version": "2.0.16",
3
+ "version": "2.0.17",
4
4
  "description": "Reusable GitHub Issues runner for Codex.",
5
5
  "type": "module",
6
6
  "license": "MIT",