codex-orchestrator 2.0.18 → 2.0.20
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 +26 -0
- package/README.md +53 -2
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +15 -5
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/cli.d.ts +1 -0
- package/dist/src/v2/cli.d.ts.map +1 -1
- package/dist/src/v2/cli.js +9 -4
- package/dist/src/v2/cli.js.map +1 -1
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +12 -1
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/implementation-reviewer.d.ts +1 -0
- package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
- package/dist/src/v2/implementation-reviewer.js +8 -2
- package/dist/src/v2/implementation-reviewer.js.map +1 -1
- package/dist/src/v2/issue-check-policy.d.ts.map +1 -1
- package/dist/src/v2/issue-check-policy.js +25 -9
- package/dist/src/v2/issue-check-policy.js.map +1 -1
- package/dist/src/v2/run-issue.d.ts +4 -1
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +135 -34
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-store.d.ts +1 -0
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +24 -3
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime.js +3 -3
- package/dist/src/v2/runtime.js.map +1 -1
- package/dist/src/v2/validation-progression.d.ts.map +1 -1
- package/dist/src/v2/validation-progression.js +3 -0
- package/dist/src/v2/validation-progression.js.map +1 -1
- package/internal-workflow/docs/agents/coding-skill-routing.md +4 -0
- package/internal-workflow/manifest.json +1 -1
- package/internal-workflow/profiles/spec_reviewer.toml +1 -1
- package/internal-workflow/profiles/standards_reviewer.toml +1 -1
- package/internal-workflow/skills/code-review/SKILL.md +5 -0
- package/internal-workflow/skills/implement/SKILL.md +11 -12
- package/internal-workflow/skills/implement/evals/evals.json +0 -12
- package/internal-workflow/skills/plan/SKILL.md +32 -12
- package/internal-workflow/skills/plan/agents/openai.yaml +2 -2
- package/internal-workflow/skills/plan/evals/evals.json +27 -0
- package/internal-workflow/skills/plan-review/SKILL.md +110 -0
- package/internal-workflow/skills/plan-review/agents/openai.yaml +6 -0
- package/internal-workflow/skills/plan-review/evals/evals.json +57 -0
- package/internal-workflow/skills/tickets-orchestrator/SKILL.md +0 -4
- package/internal-workflow/skills/to-spec/SKILL.md +4 -2
- package/internal-workflow/skills/to-tickets/SKILL.md +21 -21
- package/internal-workflow/skills/to-tickets/evals/evals.json +25 -0
- package/package.json +1 -1
|
@@ -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":"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":"b9ad865b7fb24dbb4dd8dc8f8aa5f0ca852b0e6d7f1d28f57d0dba7b48d78d03","size":7923},{"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":"a3c60750e364c099a03aaadcb395b04b4bd63bc5b465ccb47308d466b92ea23d","size":13404},{"mode":420,"path":"skills/to-tickets/agents/openai.yaml","sha256":"610b3d183fbd215b3e9b69f60499a737b1f8df3963e4ecb428a1ab183c94eded","size":386},{"mode":420,"path":"skills/to-tickets/evals/evals.json","sha256":"8c8a8fc055c987fc0ce100a736ca05a90a9c71932a72852905b030161eab0fbb","size":9421},{"mode":420,"path":"skills/to-tickets/references/publishing-details.md","sha256":"482144c7bef9631e1007845ebe34468eaa435c3f6d6cd3c0d7b34a65bdc6fca6","size":4848}],"generationHash":"9941c27ac8e7b64ff4b4fad9af4ff4030755c526c8170d841b5bd30326048762","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":"47dd9e7238d1a221163936409e62be9644097c03901d741ae6564669b9fbf592","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/plan-review":{"owner":"plan-review","path":"skills/plan-review/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":"5ca43f4f09b9c19549a84740bcd64d1778f50d3ec80e942e8c200f6d2c4858ab","size":9829},{"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":"cd9f692e3d1ba27e25f170258604a5afdd1bb13c8c6f7a1895065700cfde8d04","size":770},{"mode":420,"path":"profiles/standards_reviewer.toml","sha256":"8b976c7e48ced6456e9e0653bef0b0e972e2b57172bef9095da7384f40fae3ef","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":"9d96ba9656d04f9ebb120dcb7caf54361be078c06725ced6bd56749c1b699878","size":5608},{"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":"f29cf5f6373aa6d0ac4bd5877ed64f9589cf6e252f7c5dc2811ca35a519e20f8","size":7933},{"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-review/SKILL.md","sha256":"d784b2148ea049342f9b0404d0770c8ae6b993fb30c2de6158a67862b6e0cf01","size":5538},{"mode":420,"path":"skills/plan-review/agents/openai.yaml","sha256":"af5c04a2b8007b156ba583813ca3066ec886360acba89a67526a8b2a257b678f","size":325},{"mode":420,"path":"skills/plan-review/evals/evals.json","sha256":"a33ecba7ee4273227b38c31ee7305a2a69047664872ff18636d8e72d00087655","size":2503},{"mode":420,"path":"skills/plan/SKILL.md","sha256":"2e516a040db78ad8f04a4cad2f72bddbfc3ca9763aeaa489c65262d20595bf32","size":5032},{"mode":420,"path":"skills/plan/agents/openai.yaml","sha256":"e1d8b49049df31d0ca9034a74a33e0d3b6051ce7c96d2f0400f31f1f1158823f","size":360},{"mode":420,"path":"skills/plan/evals/evals.json","sha256":"ccbdcc0531645de1c5ea711b40366d805bea3d01cb3667f88a5c38e9e30e82e8","size":5284},{"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":"e2a87c81cfda819e10d32e66f2b51ee375105ac607339edb68d01b45d1cbf46f","size":11440},{"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":"127320aeda9ed85a25cf5b87237ffe9defb4b0c71ed6ec07d0ff1b4a638208be","size":6355},{"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":"e72ece315b93b0b6225ea7aac4440d33b3ffc03a4df437108879d55d6b483da1","size":13480},{"mode":420,"path":"skills/to-tickets/agents/openai.yaml","sha256":"610b3d183fbd215b3e9b69f60499a737b1f8df3963e4ecb428a1ab183c94eded","size":386},{"mode":420,"path":"skills/to-tickets/evals/evals.json","sha256":"3a254d5ea33918c91e9e8b2b82de7ecb792314d7183ec2e32a375c61211ae05f","size":10409},{"mode":420,"path":"skills/to-tickets/references/publishing-details.md","sha256":"482144c7bef9631e1007845ebe34468eaa435c3f6d6cd3c0d7b34a65bdc6fca6","size":4848}],"generationHash":"5877ccef8a748e2cfcc1eb031bda2eacc4abb6ebc8a2853503ad5bc88dc92ffa","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-review/SKILL.md","skills/plan-review/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-review/SKILL.md","skills/plan-review/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"},"plan-review":{"dependencySkills":[],"entry":"skills/plan-review/SKILL.md","files":["skills/plan-review/SKILL.md","skills/plan-review/agents/openai.yaml"],"metadata":"skills/plan-review/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/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"],"metadata":"skills/tickets-orchestrator/agents/openai.yaml"},"to-spec":{"dependencySkills":[],"entry":"skills/to-spec/SKILL.md","files":["skills/plan-review/SKILL.md","skills/plan-review/agents/openai.yaml","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/plan-review/SKILL.md","skills/plan-review/agents/openai.yaml","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":"4ff473eed975c5f19e5aacc3ae45d4845600960a6d60e69d2404b8b0ad2e8ad1","version":2}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
name = "spec_reviewer"
|
|
2
2
|
description = "Independent read-only reviewer for requirement fidelity and scope drift."
|
|
3
3
|
nickname_candidates = ["Sigma"]
|
|
4
|
-
model = "gpt-
|
|
4
|
+
model = "gpt-6.1-sol"
|
|
5
5
|
model_reasoning_effort = "high"
|
|
6
6
|
sandbox_mode = "read-only"
|
|
7
7
|
developer_instructions = """
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
name = "standards_reviewer"
|
|
2
2
|
description = "Independent read-only reviewer for correctness, repository standards, and cleanup."
|
|
3
3
|
nickname_candidates = ["Delta"]
|
|
4
|
-
model = "gpt-
|
|
4
|
+
model = "gpt-6.1-sol"
|
|
5
5
|
model_reasoning_effort = "high"
|
|
6
6
|
sandbox_mode = "read-only"
|
|
7
7
|
developer_instructions = """
|
|
@@ -25,6 +25,11 @@ docs, copy, formatting, mechanical config, or corrections may use direct proof.
|
|
|
25
25
|
- **Repair scope:** the smallest change that restores a proven obligation,
|
|
26
26
|
invariant, or mandatory rule without widening the authorized outcome.
|
|
27
27
|
|
|
28
|
+
Authority defines the required outcome; it does not prove premises about the
|
|
29
|
+
current system. Require evidence independent of the implementation and its
|
|
30
|
+
derived tests. Repeating one unsupported premise across the request, code,
|
|
31
|
+
fixtures, tests, and docs is a proof gap, not corroboration.
|
|
32
|
+
|
|
28
33
|
A reviewer verdict is evidence, not authority. Mark a finding `BLOCKER` only
|
|
29
34
|
when evidence links a concrete defect or required-proof gap to an authorized
|
|
30
35
|
obligation, existing invariant, or mandatory rule. Include its source,
|
|
@@ -16,11 +16,10 @@ create a replacement plan, spec, ticket, workflow state, or compatibility path.
|
|
|
16
16
|
proof and applicable Review unless user or repository policy explicitly
|
|
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
|
-
Preserve
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
implementation.
|
|
19
|
+
Preserve all pre-existing changes and user-owned runtimes. Work on top of
|
|
20
|
+
existing changes, including in overlapping files, without reverting or
|
|
21
|
+
altering them or asking for confirmation solely because of overlap. Stop on
|
|
22
|
+
a decision that changes behavior, ownership, or boundaries.
|
|
24
23
|
- **Proof:** prove the final observable outcome through the real caller seam.
|
|
25
24
|
Authority-defined proof cannot be replaced by weaker tests or a completion
|
|
26
25
|
claim.
|
|
@@ -51,9 +50,12 @@ never activates the graph coordinator.
|
|
|
51
50
|
## Execution
|
|
52
51
|
|
|
53
52
|
1. Confirm authority, repository policy, current status, owner code, caller
|
|
54
|
-
seam, and the smallest credible proof.
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
seam, material premises, and the smallest credible proof. Verify each
|
|
54
|
+
premise against current evidence independent of the proposed implementation.
|
|
55
|
+
If a material premise is unsupported or contradicted, stop before edits and
|
|
56
|
+
return the decision or evidence gap. Read and record pre-existing changes;
|
|
57
|
+
preserve them while adding the authorized edits on top. Disjoint dirty paths
|
|
58
|
+
remain untouched and unstaged.
|
|
57
59
|
2. Use `$tdd` where possible. Otherwise establish direct pre-change evidence
|
|
58
60
|
when useful and apply the narrowest observable proof after the edit.
|
|
59
61
|
When a diagnosis handoff exists, rerun the unchanged reproduction command
|
|
@@ -70,9 +72,6 @@ never activates the graph coordinator.
|
|
|
70
72
|
During substantial work, run the relevant typecheck or single test file as
|
|
71
73
|
the seam settles. Run a full suite once at the end only when repository
|
|
72
74
|
policy, risk, or the changed shared contract makes it proportionate.
|
|
73
|
-
Treat a broad-check failure as non-blocking only when targeted proof passes
|
|
74
|
-
and the failure is proven unrelated to and outside the current diff; report
|
|
75
|
-
the skipped check and residual risk.
|
|
76
75
|
5. Classify the settled result by content:
|
|
77
76
|
- substantial: behavior or contract beyond an obvious local edit, including
|
|
78
77
|
public API, persistence, auth/payment, concurrency/shared state, or
|
|
@@ -126,7 +125,7 @@ never activates the graph coordinator.
|
|
|
126
125
|
unchanged. If user or repository policy explicitly forbids or reserves Git
|
|
127
126
|
to another actor, return the proven uncommitted diff.
|
|
128
127
|
|
|
129
|
-
Missing proof, terminally failed or interrupted review,
|
|
128
|
+
Missing proof, terminally failed or interrupted review, or
|
|
130
129
|
unisolatable scope produces no affected staging or commit. Never push or open a
|
|
131
130
|
PR without separate authority.
|
|
132
131
|
|
|
@@ -105,18 +105,6 @@
|
|
|
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
|
-
},
|
|
120
108
|
{
|
|
121
109
|
"id": "necessary-neighbor-inside-impact-cone",
|
|
122
110
|
"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.",
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan
|
|
3
|
-
description: Resolve a real product or ownership decision gap
|
|
3
|
+
description: Resolve a real product or ownership decision gap, save a compact local plan after deep review, or compose the smallest durable PRD and executable ticket packet. Plan is the sole owner of planning composition and always stops before implementation.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Plan
|
|
7
7
|
|
|
8
8
|
Plan is the sole owner of planning composition. Use it only for a real product
|
|
9
|
-
or ownership decision gap, or
|
|
10
|
-
durable authority. A clear feature, fix, or
|
|
11
|
-
without a planning artifact.
|
|
9
|
+
or ownership decision gap, a request to save or review a plan, or multi-ticket
|
|
10
|
+
or multi-session work that needs durable authority. A clear feature, fix, or
|
|
11
|
+
local edit routes to `$implement` without a planning artifact.
|
|
12
12
|
|
|
13
13
|
## Choose the smallest planning outcome
|
|
14
14
|
|
|
@@ -18,6 +18,8 @@ without a planning artifact.
|
|
|
18
18
|
conversation unless a later fresh context needs durable authority.
|
|
19
19
|
- Resolve a decision gap in the current conversation when no durable handoff is
|
|
20
20
|
needed. Do not create a PRD or tickets merely to record the conversation.
|
|
21
|
+
- For a compact local Markdown plan, keep the settled conversation draft as the
|
|
22
|
+
fixed base, use `$plan-review`, reconcile findings minimally, and save it.
|
|
21
23
|
- Create a durable PRD only when product authority must survive the current
|
|
22
24
|
context or be consumed in a later fresh context.
|
|
23
25
|
- Decide whether durable executable tickets are needed. Once they are,
|
|
@@ -41,14 +43,32 @@ Before settling a plan:
|
|
|
41
43
|
|
|
42
44
|
Complete when every binding mechanism has authority and demonstrated necessity.
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
Before Plan saves a settled local plan, when the user explicitly requests
|
|
47
|
+
independent review, or when repository policy requires it, invoke
|
|
48
|
+
`$plan-review`. Plan remains the sole composition owner; the reviewer returns
|
|
49
|
+
findings only and never a rewritten plan.
|
|
50
|
+
|
|
51
|
+
For review followed by saving, the original settled draft remains the fixed
|
|
52
|
+
base. Reconcile each finding before editing:
|
|
53
|
+
|
|
54
|
+
- Only verified `BLOCKER` findings may change the draft. Require Authority,
|
|
55
|
+
Trigger, Impact, and the Minimal correction already inside the approved
|
|
56
|
+
outcome.
|
|
57
|
+
- Return a plan-changing `QUESTION` to the user. Do not guess its answer.
|
|
58
|
+
- Do not copy `QUESTION` or `OBSERVATION` findings into it.
|
|
59
|
+
- Apply verified blockers as one minimal revision that preserves the draft's
|
|
60
|
+
structure, order, and information density. Do not restate the same obligation
|
|
61
|
+
across overview, implementation, proof, and completion sections or add a new
|
|
62
|
+
section merely to make the artifact look comprehensive.
|
|
63
|
+
- If a correction changes product behavior, ownership, public boundaries, or
|
|
64
|
+
the authorized outcome, stop for a decision instead of expanding the plan.
|
|
65
|
+
|
|
66
|
+
After the first full review, reconcile verified blockers in one minimal batch.
|
|
67
|
+
Re-review only the blockers, changed text, and direct impact; unchanged scope
|
|
68
|
+
stays settled. Repeat the full review only for a new product outcome or owner,
|
|
69
|
+
or when the impact cannot be isolated. A user answer alone does not trigger it.
|
|
70
|
+
Saving never turns an observation into scope or a plan into implementation
|
|
71
|
+
authority.
|
|
52
72
|
|
|
53
73
|
## Durable composition
|
|
54
74
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Plan"
|
|
3
|
-
short_description: "Own
|
|
4
|
-
default_prompt: "Use $plan to resolve the decision gap or compose the smallest durable PRD and executable ticket packet, then stop before implementation."
|
|
3
|
+
short_description: "Own decisions, reviewed plan saving, and durable planning"
|
|
4
|
+
default_prompt: "Use $plan to resolve the decision gap, save a compact local plan after deep review, or compose the smallest durable PRD and executable ticket packet, then stop before implementation."
|
|
5
5
|
policy:
|
|
6
6
|
allow_implicit_invocation: true
|
|
@@ -55,6 +55,33 @@
|
|
|
55
55
|
"prompt": "Prepare a durable plan while repository source inventory and one ownership decision are still unresolved.",
|
|
56
56
|
"expected": ["finish discovery or expose the unresolved decision before review", "launch independent review only for a settled draft expected to approve"],
|
|
57
57
|
"forbidden": ["use the reviewer to complete discovery", "let the reviewer design the solution"]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "review-and-save-preserves-density",
|
|
61
|
+
"prompt": "Deeply review this settled ten-point implementation plan, incorporate justified findings, and save it to a Markdown file.",
|
|
62
|
+
"expected": [
|
|
63
|
+
"invoke plan-review and receive findings rather than a replacement plan",
|
|
64
|
+
"apply only verified blockers through one minimal revision",
|
|
65
|
+
"preserve the original structure, order, and information density when saving"
|
|
66
|
+
],
|
|
67
|
+
"forbidden": [
|
|
68
|
+
"turn questions or observations into implementation scope",
|
|
69
|
+
"rewrite the draft as a comprehensive technical specification",
|
|
70
|
+
"invoke to-spec or to-tickets"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "save-local-plan-runs-one-deep-review",
|
|
75
|
+
"prompt": "Save the compact implementation plan from this conversation as a local Markdown file.",
|
|
76
|
+
"expected": [
|
|
77
|
+
"route through Plan and invoke one plan-review before saving",
|
|
78
|
+
"keep the conversation draft as the fixed base",
|
|
79
|
+
"save one minimally reconciled Markdown artifact"
|
|
80
|
+
],
|
|
81
|
+
"forbidden": [
|
|
82
|
+
"invoke to-spec or to-tickets",
|
|
83
|
+
"rewrite the draft as a comprehensive specification"
|
|
84
|
+
]
|
|
58
85
|
}
|
|
59
86
|
]
|
|
60
87
|
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-review
|
|
3
|
+
description: Deep adversarial read-only review of a settled delivery plan, including a compact local plan or complete publish-ready ticket packet. Use when the user asks to review, challenge, stress-test, or find breakage in a plan, or when Plan invokes an explicitly requested or repository-required plan review. Return findings only; never rewrite the plan or implement it.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Plan Review
|
|
7
|
+
|
|
8
|
+
Perform an adversarial read-only review of one settled delivery plan: either a
|
|
9
|
+
compact local plan or a complete publish-ready Parent and ticket packet.
|
|
10
|
+
`Plan` remains the sole composition owner. Review may discover defects and ask
|
|
11
|
+
uncomfortable questions, but it never edits, rewrites, saves, approves on the
|
|
12
|
+
user's behalf, or implements the plan.
|
|
13
|
+
|
|
14
|
+
## Inputs and reviewer
|
|
15
|
+
|
|
16
|
+
Require the user request or other product authority, the complete settled plan,
|
|
17
|
+
applicable repository policy, explicit exclusions, and the strongest relevant
|
|
18
|
+
code, data, test, or runtime evidence already available. Inspect additional
|
|
19
|
+
repository evidence only where it can confirm or reject a material premise.
|
|
20
|
+
|
|
21
|
+
Launch exactly one fresh `plan_reviewer` without prior conversation history.
|
|
22
|
+
Begin the assignment with `Assigned role: plan_reviewer` and provide authority,
|
|
23
|
+
plan, evidence, and exclusions separately. The reviewer performs no writes.
|
|
24
|
+
|
|
25
|
+
The first review covers the complete impact surface. After reconciliation, a
|
|
26
|
+
fresh reviewer checks only the repaired findings, changed text, direct impact,
|
|
27
|
+
and affected evidence. Reopen unchanged scope only when the repair creates a
|
|
28
|
+
concrete causal risk.
|
|
29
|
+
|
|
30
|
+
Completion: the reviewer returns a terminal verdict for its assigned scope.
|
|
31
|
+
|
|
32
|
+
Missing identity, interruption, failure, or an incomplete final wait blocks
|
|
33
|
+
review. Plan must not substitute self-review or save an artifact as reviewed.
|
|
34
|
+
|
|
35
|
+
## Minimum-first review
|
|
36
|
+
|
|
37
|
+
First reconstruct the smallest complete path through existing owners and seams.
|
|
38
|
+
Challenge each proposed new owner, state, abstraction, workflow, compatibility
|
|
39
|
+
path, prerequisite refactor, or ticket. Keep it only when authority, an existing
|
|
40
|
+
invariant, or a proven failure path requires it and the direct path cannot work.
|
|
41
|
+
If removing it preserves authorized behavior, invariants, and credible proof,
|
|
42
|
+
require removal.
|
|
43
|
+
|
|
44
|
+
Treat unsupported runtime ownership, persisted state, public contracts,
|
|
45
|
+
compatibility paths, operational workflows, and proof-only machinery as scope
|
|
46
|
+
blockers. Name the added surface as the Trigger, its unnecessary ownership or
|
|
47
|
+
operational cost as the Impact, and deletion or narrowing as the Minimal
|
|
48
|
+
correction.
|
|
49
|
+
|
|
50
|
+
After the deletion challenge, inspect every applicable breakage lens:
|
|
51
|
+
|
|
52
|
+
- requirements and product behavior, including missing and extra outcomes;
|
|
53
|
+
- existing callers and neighboring flows, ownership, and public contracts;
|
|
54
|
+
- persistence and existing data, including in-flight or historical state;
|
|
55
|
+
- concurrency and asynchronous boundaries around shared state;
|
|
56
|
+
- failure, retry, cancellation, idempotency, and recovery behavior;
|
|
57
|
+
- security and privacy for identities, permissions, secrets, or personal data;
|
|
58
|
+
- migration, rollout, rollback, and compatibility where versions can coexist;
|
|
59
|
+
- whether proof can pass while the claim is false.
|
|
60
|
+
|
|
61
|
+
Ask what assumption would make the plan unsafe, what existing behavior it could
|
|
62
|
+
silently change, what evidence is missing, and which user decision the reviewer
|
|
63
|
+
cannot make. Use uncomfortable questions to expose gaps, never to propose more
|
|
64
|
+
architecture.
|
|
65
|
+
|
|
66
|
+
Completion: every applicable lens was inspected. Return a finding only for a
|
|
67
|
+
defect, unresolved decision, or useful evidence-backed observation; a clean
|
|
68
|
+
lens needs no output. Do not emit `N/A` or invent findings to prove coverage.
|
|
69
|
+
|
|
70
|
+
For a ticket packet, also trace source fidelity, ticket executability, real
|
|
71
|
+
dependency edges, and whether each acceptance proof observes its Parent claim.
|
|
72
|
+
This is one review of the final packet, not a second review of the intermediate
|
|
73
|
+
PRD.
|
|
74
|
+
|
|
75
|
+
## Finding threshold
|
|
76
|
+
|
|
77
|
+
Classify each distinct finding as exactly one of:
|
|
78
|
+
|
|
79
|
+
- `BLOCKER`: evidence establishes **Authority**, **Trigger**, **Impact**, and
|
|
80
|
+
**Minimal correction**. The correction names the smallest necessary change;
|
|
81
|
+
it does not prescribe a broader design.
|
|
82
|
+
- `QUESTION`: a product choice, ownership choice, unsupported material premise,
|
|
83
|
+
or missing external fact that the reviewer cannot decide. State what answer
|
|
84
|
+
changes the plan.
|
|
85
|
+
- `OBSERVATION`: optional hardening, cleanup, architecture preference, or a
|
|
86
|
+
plausible risk without a concrete trigger and impact. It cannot change the
|
|
87
|
+
plan automatically.
|
|
88
|
+
|
|
89
|
+
A hypothetical race, future consumer, or exhaustive edge-case matrix does not
|
|
90
|
+
justify added machinery. Preserve complexity only when evidence establishes its
|
|
91
|
+
necessity; otherwise prefer deletion or narrowing.
|
|
92
|
+
|
|
93
|
+
Completion: every blocker contains all four facts, and no question or
|
|
94
|
+
observation is presented as required scope.
|
|
95
|
+
|
|
96
|
+
## Output
|
|
97
|
+
|
|
98
|
+
Return, in this order:
|
|
99
|
+
|
|
100
|
+
1. non-empty `BLOCKER`, `QUESTION`, and `OBSERVATION` findings, most important
|
|
101
|
+
first;
|
|
102
|
+
2. a compact `Minimum solution` assessment naming required, removable, and
|
|
103
|
+
unresolved parts;
|
|
104
|
+
3. `APPROVE` when no blocker or unanswered plan-changing question remains,
|
|
105
|
+
otherwise `NEEDS_WORK` with the exact reason.
|
|
106
|
+
|
|
107
|
+
Findings only. Do not return a rewritten plan, expanded implementation steps,
|
|
108
|
+
or a second planning artifact. Do not repeat unchanged plan content. For a
|
|
109
|
+
review-only request, report and stop. When called by `Plan`, return control to
|
|
110
|
+
that same Plan owner for any authorized minimal revision and saving.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Plan Review"
|
|
3
|
+
short_description: "Challenge an implementation plan without rewriting it"
|
|
4
|
+
default_prompt: "Use $plan-review to deeply challenge this settled implementation plan, return evidence-backed findings only, and do not rewrite or implement it."
|
|
5
|
+
policy:
|
|
6
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"skill": "plan-review",
|
|
4
|
+
"cases": [
|
|
5
|
+
{
|
|
6
|
+
"id": "deep-review-findings-only",
|
|
7
|
+
"prompt": "Review this settled cross-module plan deeply. It changes an API, persisted consent evidence, and rollout ordering. Find anything that could break, but do not rewrite the plan.",
|
|
8
|
+
"expected": [
|
|
9
|
+
"inspect applicable callers, contracts, existing data, failure paths, migration, rollout, rollback, security, and proof",
|
|
10
|
+
"return evidence-backed BLOCKER, QUESTION, and OBSERVATION findings only",
|
|
11
|
+
"finish with a minimum-solution assessment and verdict"
|
|
12
|
+
],
|
|
13
|
+
"forbidden": [
|
|
14
|
+
"return a revised plan",
|
|
15
|
+
"edit files",
|
|
16
|
+
"implement the plan"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "speculative-risk-stays-observation",
|
|
21
|
+
"prompt": "The plan reuses an existing send-time check. A race is imaginable, but no code path, runtime evidence, or invariant currently proves it. Review the plan.",
|
|
22
|
+
"expected": [
|
|
23
|
+
"classify the unproven race as an OBSERVATION or evidence question",
|
|
24
|
+
"keep transaction redesign out of required scope"
|
|
25
|
+
],
|
|
26
|
+
"forbidden": [
|
|
27
|
+
"make a new transaction architecture a blocker",
|
|
28
|
+
"rewrite the plan around the hypothetical race"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "plan-review-preserves-density-after-review",
|
|
33
|
+
"prompt": "Plan supplied a compact settled draft but added a registry, queue, compatibility adapter, and separate technical-layer tickets without authority or a proven failure path.",
|
|
34
|
+
"expected": [
|
|
35
|
+
"reconstruct the direct path through existing owners and seams",
|
|
36
|
+
"require removal or narrowing of unsupported machinery and ticket splits",
|
|
37
|
+
"hand findings back to Plan without a replacement draft"
|
|
38
|
+
],
|
|
39
|
+
"forbidden": [
|
|
40
|
+
"expand the compact plan into a comprehensive technical specification",
|
|
41
|
+
"copy observations into implementation scope"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "required-complexity-survives",
|
|
46
|
+
"prompt": "Existing in-flight records and a live old client require one bounded migration and compatibility step during rollout.",
|
|
47
|
+
"expected": [
|
|
48
|
+
"preserve the evidence-required migration and compatibility behavior",
|
|
49
|
+
"reject only additions not required by those concrete constraints"
|
|
50
|
+
],
|
|
51
|
+
"forbidden": [
|
|
52
|
+
"delete required compatibility merely to minimize the plan",
|
|
53
|
+
"expand compatibility beyond the proven client and rollout window"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
@@ -22,10 +22,6 @@ Root must not implement a full child or merge ticket boundaries. A ticket that
|
|
|
22
22
|
cannot execute from its body plus a bounded Parent context packet is a
|
|
23
23
|
ticket-packet defect and fails closed.
|
|
24
24
|
|
|
25
|
-
Every child must authorize a committed product delta. Treat a transient-evidence
|
|
26
|
-
or comment-only child as a ticket-packet defect: return it to `$to-tickets`
|
|
27
|
-
without requesting an exception or creating an empty checkpoint.
|
|
28
|
-
|
|
29
25
|
## Authority and ownership
|
|
30
26
|
|
|
31
27
|
Before work, require:
|
|
@@ -51,8 +51,10 @@ explicit confirmation.
|
|
|
51
51
|
## Process
|
|
52
52
|
|
|
53
53
|
1. Explore the repo if needed. Use project domain language, respect relevant
|
|
54
|
-
ADRs, and reuse cited `$research` artifacts.
|
|
55
|
-
|
|
54
|
+
ADRs, and reuse cited `$research` artifacts. Ground every material premise
|
|
55
|
+
in user input or an authoritative source independent of the proposed
|
|
56
|
+
solution. Keep unsupported premises unresolved; never present them as
|
|
57
|
+
confirmed authority.
|
|
56
58
|
|
|
57
59
|
2. Sketch the seams at which the outcome will be proved. Prefer existing
|
|
58
60
|
task-relevant seams and use the highest applicable seam. Add a new seam only
|