codex-orchestrator 2.0.4 → 2.0.6
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 +50 -0
- package/README.md +30 -3
- package/dist/src/v2/acceptance-proof.d.ts +12 -0
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +120 -6
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/adapters/command.d.ts +2 -0
- package/dist/src/v2/adapters/command.d.ts.map +1 -1
- package/dist/src/v2/adapters/command.js +67 -8
- package/dist/src/v2/adapters/command.js.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.js +16 -5
- package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts +7 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts.map +1 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.js +288 -0
- package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -1
- package/dist/src/v2/adapters/pull-requests.d.ts +69 -0
- package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -1
- package/dist/src/v2/adapters/pull-requests.js +48 -0
- package/dist/src/v2/adapters/pull-requests.js.map +1 -1
- package/dist/src/v2/adapters/worktree.d.ts +1 -0
- package/dist/src/v2/adapters/worktree.d.ts.map +1 -1
- package/dist/src/v2/adapters/worktree.js +10 -1
- package/dist/src/v2/adapters/worktree.js.map +1 -1
- package/dist/src/v2/android-proof-runner.d.ts +93 -0
- package/dist/src/v2/android-proof-runner.d.ts.map +1 -0
- package/dist/src/v2/android-proof-runner.js +921 -0
- package/dist/src/v2/android-proof-runner.js.map +1 -0
- package/dist/src/v2/cli.d.ts +9 -0
- package/dist/src/v2/cli.d.ts.map +1 -1
- package/dist/src/v2/cli.js +38 -11
- package/dist/src/v2/cli.js.map +1 -1
- package/dist/src/v2/config.d.ts +13 -1
- package/dist/src/v2/config.d.ts.map +1 -1
- package/dist/src/v2/config.js +57 -4
- package/dist/src/v2/config.js.map +1 -1
- package/dist/src/v2/containment.d.ts +11 -2
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +35 -7
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/direct-delivery.d.ts +1 -1
- package/dist/src/v2/direct-delivery.d.ts.map +1 -1
- package/dist/src/v2/direct-delivery.js +9 -3
- package/dist/src/v2/direct-delivery.js.map +1 -1
- package/dist/src/v2/immutable-workflow-publisher.js +6 -1
- package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
- package/dist/src/v2/mobile-lease.d.ts +9 -0
- package/dist/src/v2/mobile-lease.d.ts.map +1 -1
- package/dist/src/v2/mobile-lease.js +27 -3
- package/dist/src/v2/mobile-lease.js.map +1 -1
- package/dist/src/v2/review-feedback-coordinator.d.ts +54 -0
- package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -0
- package/dist/src/v2/review-feedback-coordinator.js +245 -0
- package/dist/src/v2/review-feedback-coordinator.js.map +1 -0
- package/dist/src/v2/review-feedback.d.ts +127 -0
- package/dist/src/v2/review-feedback.d.ts.map +1 -0
- package/dist/src/v2/review-feedback.js +436 -0
- package/dist/src/v2/review-feedback.js.map +1 -0
- package/dist/src/v2/run-issue.d.ts +61 -0
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +843 -66
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-store.d.ts +48 -1
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +125 -5
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime.d.ts +37 -0
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +183 -15
- package/dist/src/v2/runtime.js.map +1 -1
- package/dist/src/v2/setup.js +1 -1
- package/dist/src/v2/setup.js.map +1 -1
- package/docs/deep-dive.md +71 -7
- package/internal-workflow/docs/agents/contract-test-ledger.md +11 -1
- package/internal-workflow/evals/coding-skill-evals.json +18 -0
- package/internal-workflow/manifest.json +1 -1
- package/internal-workflow/skills/acceptance-proof/SKILL.md +1 -1
- package/internal-workflow/skills/acceptance-proof/references/android.md +6 -6
- package/internal-workflow/skills/code-debugger/SKILL.md +3 -3
- package/internal-workflow/skills/code-review/SKILL.md +18 -6
- package/internal-workflow/skills/implementation-spec-maker/SKILL.md +10 -8
- package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +1 -1
- package/internal-workflow/skills/implementation-spec-review/SKILL.md +17 -3
- package/internal-workflow/skills/implementation-spec-review/evals/evals.json +30 -0
- package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +30 -6
- package/internal-workflow/skills/spec-implementer/references/review-loop.md +7 -1
- package/internal-workflow/skills/tdd/SKILL.md +5 -4
- package/internal-workflow/skills/tdd/evals/evals.json +18 -0
- package/internal-workflow/skills/tdd/mocking.md +3 -42
- package/internal-workflow/skills/tdd/refactoring.md +6 -8
- package/package.json +1 -1
- package/internal-workflow/skills/acceptance-proof/tools/android-lease.mjs +0 -280
|
@@ -1 +1 @@
|
|
|
1
|
-
{"evals":{"shared/coding-skill-evals":{"owner":null,"path":"evals/coding-skill-evals.json"},"skill/implementation-spec-review":{"owner":"implementation-spec-review","path":"skills/implementation-spec-review/evals/evals.json"},"skill/spec-implementer":{"owner":"spec-implementer","path":"skills/spec-implementer/evals/evals.json"}},"files":[{"mode":420,"path":"docs/agents/bug-workflow-routing.md","sha256":"a37c59676bcb8b938a7c82bce8a6ea5becf58ba367866d2712cd469391aea931","size":1603},{"mode":420,"path":"docs/agents/bugfix-quality-gate.md","sha256":"caaed6c923adfe56f4b6dd89222a83493ef4dd4e8bdd2bad694f8a11f93541ae","size":709},{"mode":420,"path":"docs/agents/coding-skill-routing.md","sha256":"958f4e7c7177c062b2a24fb7db2287be2cfa6e5281f2d156f7eb67b6cb3a0741","size":6434},{"mode":420,"path":"docs/agents/confidence-rubric.md","sha256":"42c947db2775380867e7adcfbdbe0f67b8f511b9ddf33a6eef8e1b0e995912c2","size":1883},{"mode":420,"path":"docs/agents/contract-test-ledger.md","sha256":"6f2327a40f218fbc746193c6440a69be08450938688b401f05163a3bb438a7f3","size":3779},{"mode":420,"path":"docs/agents/review-gates.md","sha256":"5ca48066b263cf869549c383814cfbdbbad711e5c247a8253bc2996d8fdec496","size":1857},{"mode":420,"path":"docs/agents/review-protocol.md","sha256":"9af5b44c545d76f3a048de424a4ccc78aa7e018bd193e4e5a787b2cef47af071","size":4086},{"mode":420,"path":"docs/agents/tool-usage.md","sha256":"b6ade11865a46a5a28d4823c1b70318453f4d350cfc62d2969aa06d73c47be4b","size":4321},{"mode":420,"path":"evals/coding-skill-evals.json","sha256":"22ba3bb4372cde747c3accc899f85dc67f190fd33113deb133392a1695f5ad99","size":3519},{"mode":420,"path":"operations/acceptance-proof/SKILL.md","sha256":"c33a04bf8dfcb59982f60b232633b0e48e9de4ec375cd02f52ec71f9fce30de6","size":440},{"mode":420,"path":"operations/ambiguity-review/SKILL.md","sha256":"20371f30015afef12a2b9dd608d21cc93a93f011873927f7a64e29b36a4fcf99","size":427},{"mode":420,"path":"operations/code-review/SKILL.md","sha256":"c415e4383dd7ddeb4b371a0a141a39c4296d95222b26ca3fcc51a34704e10f25","size":1246},{"mode":420,"path":"operations/implementation/SKILL.md","sha256":"6f0c9b900d252d9a833d7fdac6868d84900787debf2964e22ffbf86851af45d2","size":1461},{"mode":420,"path":"operations/spec-author/SKILL.md","sha256":"5170f275bd7bc346578028d74d5814a5edd36ccd90d0615c4d5e3d6b6f8af049","size":627},{"mode":420,"path":"operations/spec-review/SKILL.md","sha256":"6cb7b8ea245faa2587ebde07ebe3d364eff41d18d5464ccd2749cf2b9b49f701","size":653},{"mode":420,"path":"operations/triage/SKILL.md","sha256":"39e8301b90a59795dc2b93917d4674c22dc3e4380f011a54ade1de4c7cdc18ae","size":647},{"mode":420,"path":"profiles/analyst_deep.toml","sha256":"06335e3a13b07ef3d7deb9b546a6dad5d765edfa6dbf21c1c4d516e843a4352f","size":380},{"mode":420,"path":"profiles/implementer_standard.toml","sha256":"4074f45ea6fb615382de7ddf04e4ab824185e01932290b95764ff63a3711824e","size":750},{"mode":420,"path":"profiles/proof_agent.toml","sha256":"2fbaf1145a11cb5c574bf1ed7333187d284ed0c3c3d6260c628f82057b8b04e7","size":446},{"mode":420,"path":"profiles/reviewer_deep.toml","sha256":"15ef121b641265a85d0647c46f6dd93d4a9abd8c09bcc746c41e4ca6b4c9af41","size":648},{"mode":420,"path":"profiles/reviewer_standard.toml","sha256":"0a26b24f98b7e8d0ec049cb6fbe623d5da838b2fe71b5accd59bf364a9c97e5c","size":585},{"mode":420,"path":"schemas/ambiguity-review-v1.json","sha256":"48d946ad8e91bd1908d8993ef631b1701ad3cd7a79f34368a07942d7774afeff","size":524},{"mode":420,"path":"schemas/code-review-v1.json","sha256":"b11b266e0a7e0aa19eaf90ebf2b5c33f3bc7263e9c697cbf206e9865084e3439","size":2555},{"mode":420,"path":"schemas/implementation-report-v1.json","sha256":"a1b580dad03af9be74d895d38a2f6aa9398b6d772c944dc398dac5aca0630d2e","size":1573},{"mode":420,"path":"schemas/proof-report-v1.json","sha256":"1bf6c5b22b97ab3b659d961e21b0fc06869481405e1048ab9eadeeea212a8cf6","size":21949},{"mode":420,"path":"schemas/spec-author-v1.json","sha256":"49f945362d1184ad628584b91fbbe75323d13bafa4ca3876093387a9fca06214","size":420},{"mode":420,"path":"schemas/spec-review-v1.json","sha256":"fe9fdd389bcb4c3b7d19609184caf3af4b89e7c1d1e71a7ba0c55c72c5d5562d","size":1386},{"mode":420,"path":"schemas/triage-route-v1.json","sha256":"3ca7ed29237f42e12567797d145d90dd4f1f48fa1e81a7da67434c19747753d8","size":5894},{"mode":420,"path":"skills/acceptance-proof/SKILL.md","sha256":"5a0f2dcd62a43da86a7627c70c86bde86e78c06929675073ee37727e3f06fc65","size":1683},{"mode":420,"path":"skills/acceptance-proof/agents/openai.yaml","sha256":"d602d9f2e1bf618a71171729c6f354dd137c939cb433bd49afec678360e1189f","size":265},{"mode":420,"path":"skills/acceptance-proof/references/android.md","sha256":"b9396d1327ffc19f91b73c2470222871e403ea1d0f3de58025e689a92691a842","size":3022},{"mode":420,"path":"skills/acceptance-proof/references/browser.md","sha256":"ceefa4fd7db475b6162368511c2742b6d9c6af58d48e7d5d8a773ed5cc3938c4","size":2281},{"mode":420,"path":"skills/acceptance-proof/references/ios.md","sha256":"ae18be2632e1f7c3aa0810a1bafafc7760c807b30b1269408825aa14c224d493","size":2486},{"mode":420,"path":"skills/acceptance-proof/tools/android-lease.mjs","sha256":"982c426dd5b3a90f74e5120783b3a24fa98d8218d0f4140e756187865b48d708","size":11393},{"mode":420,"path":"skills/acceptance-proof/tools/ios-lease.mjs","sha256":"6e1e0d95c6a8b2d42c34de05bd4446eac23e3916bffccb027f236b8a8a1809a3","size":13834},{"mode":420,"path":"skills/agent-auto/SKILL.md","sha256":"450c28f7a712f881cdf9f3e48555a47022b46f79df875bac35843a1c15135451","size":1415},{"mode":420,"path":"skills/agent-auto/agents/openai.yaml","sha256":"79a70421300891e3130fc7535c4aa37e01931ff353fbd7b83262c6fcf2032b71","size":266},{"mode":420,"path":"skills/code-debugger/SKILL.md","sha256":"56a403b2cd9a3dad4b48d06ab05a9b99fde97261b7380c2cd9ffd82b2c3cbb53","size":7725},{"mode":420,"path":"skills/code-debugger/agents/openai.yaml","sha256":"8dd2f301bee632585371bd6f62dbdcdec95201f553392515342da5d0fc563305","size":322},{"mode":420,"path":"skills/code-review/SKILL.md","sha256":"5cd395731f598d5c88319f74ea4fe83ae7678fa1bd42cd45acc6246b67467289","size":15805},{"mode":420,"path":"skills/code-review/agents/openai.yaml","sha256":"c2697212427a5e119d9127e2f9000594e6c2eb7696e7a40604da7149c79ce478","size":278},{"mode":420,"path":"skills/code-review/references/bug-classes.md","sha256":"1f8648af9914cbd7553d045915f959df0f3b50a88e97c3beefeb955342e7b12d","size":4062},{"mode":420,"path":"skills/code-review/references/cleanup-lens.md","sha256":"6406350bf8ff00f9d2de2d5a8871aa1a9ab0efa33dcc35453eeebe9c96623e69","size":2846},{"mode":420,"path":"skills/code-review/references/framework-lenses.md","sha256":"ca9e7cb09f32f729cec5522e8ff7c7dcc43f76ef986e701e9c0a226514912cd8","size":1820},{"mode":420,"path":"skills/code-review/references/targeted-recipes.md","sha256":"921b422958c97e606637d3fa2d2628239d9176f0316c7e45bbc55b20a22fe3c1","size":2564},{"mode":420,"path":"skills/diagnosing-bugs/SKILL.md","sha256":"9a3457d4f12e3810041def93456a0c020df0842200737bf7ecaf06471991c16c","size":9097},{"mode":420,"path":"skills/diagnosing-bugs/agents/openai.yaml","sha256":"eca84840bc193ce63cc7aad93d9e7b5f2541739b7bf682e5fa9eded3a8060787","size":262},{"mode":420,"path":"skills/diagnosing-bugs/scripts/hitl-loop.template.sh","sha256":"b2932630950e5210075bcd6f850e5accf30c101c5367b29eac3a29b4dd8084c8","size":1164},{"mode":420,"path":"skills/implementation-spec-maker/SKILL.md","sha256":"035cb829574c92c8342ae0a4a6f04866802f3724b6ba16583ae8c5724d6d45f9","size":7751},{"mode":420,"path":"skills/implementation-spec-maker/agents/openai.yaml","sha256":"a4457f3e2f08cb07694855d362103b6a628c82b262950409268145348e2d91dd","size":363},{"mode":420,"path":"skills/implementation-spec-maker/references/source-modes.md","sha256":"471f0f58668b414438effbf91398022327fcbd43f40cc0801080994fe02bda3b","size":1920},{"mode":420,"path":"skills/implementation-spec-maker/references/spec-template.md","sha256":"0ba380125eb2e0c114aed6b0f064ac2643edf75bb78c10de72b741776edee6ff","size":5319},{"mode":420,"path":"skills/implementation-spec-review/SKILL.md","sha256":"d4c32638f0bf93766dda1e9d5eaa072c279d4658d421482da78ccc0cfd2e13c7","size":5270},{"mode":420,"path":"skills/implementation-spec-review/agents/openai.yaml","sha256":"600f9cc4e4f42596e3bf48601a508ddf055efcc396478d5e339d024973f4fb05","size":277},{"mode":420,"path":"skills/implementation-spec-review/evals/evals.json","sha256":"d0f73eba5cb0ce34f50f43f80094a3f0cf3aa1caa1b5eb859906721159aee575","size":1114},{"mode":420,"path":"skills/implementation-spec-review/references/review-loop.md","sha256":"9d9e9c233ba08e256b158a7fe740ffe5ffd1893960c2076254e44e0e49083630","size":3901},{"mode":420,"path":"skills/small-task-implementer/SKILL.md","sha256":"6b81bf9d85b2f6c8253099cfe766f67cad312e3eb38b014ed2bedb007df467fc","size":4279},{"mode":420,"path":"skills/small-task-implementer/agents/openai.yaml","sha256":"81569b6dfd97de60b53f092528140a5e5043f9adcc9262debff7bc912e278958","size":261},{"mode":420,"path":"skills/spec-implementer/SKILL.md","sha256":"70f65edddebc788a21dbb5bc6cb8f60a297e0364c8e4754f3ba80cbf1ba210a0","size":5538},{"mode":420,"path":"skills/spec-implementer/agents/openai.yaml","sha256":"84ef664ae3538e264fe6746917f081d34eac0738dc28764ddf27d7a448b3615d","size":341},{"mode":420,"path":"skills/spec-implementer/evals/evals.json","sha256":"23d73ddd6e2205b601a36cd07a7dd5ee228ae587d5b9cc5adab9b0993a312ba8","size":1361},{"mode":420,"path":"skills/spec-implementer/references/review-loop.md","sha256":"5161c4c586144cdf0aba828c459c57b9e8dc404a06990b3a887b51648fe1fcb9","size":4311},{"mode":420,"path":"skills/tdd/SKILL.md","sha256":"9e046610c341be0c770d4196f98c95cdb673d477bbbbcdfcca499dd5da6071d0","size":4146},{"mode":420,"path":"skills/tdd/agents/openai.yaml","sha256":"cc49a11a2c08733862d1a406123cda7a050d4a70fa92a4b3ec37f318694b1581","size":301},{"mode":420,"path":"skills/tdd/interface-design.md","sha256":"764c5ff0e3fa6b4ab7095eb65ccc7201e090baf19fa16051dfdb72c06d27417d","size":653},{"mode":420,"path":"skills/tdd/mocking.md","sha256":"3ceb807fdf4a47d6a93d4d9a891e5ba6d362a6247bd08adc451feebfc17361ef","size":1481},{"mode":420,"path":"skills/tdd/refactoring.md","sha256":"54fced22dd1911b7094c3fe7979b7c1a40d40be307482c4adf7dc0588f27d6cc","size":387},{"mode":420,"path":"skills/tdd/tests.md","sha256":"6773173a074569b2e51653bd7b95c097d602dbb4815d1cf1c87344705c4e0d1c","size":2228},{"mode":420,"path":"skills/triage/AGENT-BRIEF.md","sha256":"053cd013e1c2c9275111aa6e4b5a12e9838f8d6cd888e8ca0ccaaac576fd74df","size":7070},{"mode":420,"path":"skills/triage/OUT-OF-SCOPE.md","sha256":"8ed8cf27833444060c81b3961a83c0e3d8e6cf2fcb2ddf6f8b07c6655cbb0d85","size":4282},{"mode":420,"path":"skills/triage/SKILL.md","sha256":"5c7c84189fd5146ec1ae55a5669c74372ed7bce588fa7b8523417aa55b312a2e","size":8273},{"mode":420,"path":"skills/triage/agents/openai.yaml","sha256":"466bc430f95132bc6b28d077d50865d4b1fd9218307582343c35b0baf66d7894","size":283}],"generationHash":"a66ee20f05adca0ffc042d75e0121bf0b8a8679c67d6eecb933acd8f2af4ca1d","operations":{"acceptance-proof":{"dependencySkills":[],"entry":"operations/acceptance-proof/SKILL.md","files":["operations/acceptance-proof/SKILL.md","profiles/proof_agent.toml","schemas/proof-report-v1.json","skills/acceptance-proof/SKILL.md","skills/acceptance-proof/agents/openai.yaml","skills/acceptance-proof/references/android.md","skills/acceptance-proof/references/browser.md","skills/acceptance-proof/references/ios.md","skills/acceptance-proof/tools/android-lease.mjs","skills/acceptance-proof/tools/ios-lease.mjs"],"id":"acceptance-proof","outputSchema":"schemas/proof-report-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"proof-only","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["worktree"]},"profile":"proof_agent","resources":[],"sourceSkill":"acceptance-proof"},"ambiguity-review":{"dependencySkills":[],"entry":"operations/ambiguity-review/SKILL.md","files":["docs/agents/confidence-rubric.md","operations/ambiguity-review/SKILL.md","profiles/reviewer_deep.toml","schemas/ambiguity-review-v1.json"],"id":"ambiguity-review","outputSchema":"schemas/ambiguity-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_deep","resources":["docs/agents/confidence-rubric.md"],"sourceSkill":null},"code-review":{"dependencySkills":[],"entry":"operations/code-review/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/review-protocol.md","operations/code-review/SKILL.md","profiles/reviewer_standard.toml","schemas/code-review-v1.json","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/bug-classes.md","skills/code-review/references/cleanup-lens.md","skills/code-review/references/framework-lenses.md","skills/code-review/references/targeted-recipes.md"],"id":"code-review","outputSchema":"schemas/code-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_standard","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/review-protocol.md"],"sourceSkill":"code-review"},"implementation":{"dependencySkills":["code-debugger","diagnosing-bugs","small-task-implementer","tdd"],"entry":"operations/implementation/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/tool-usage.md","operations/implementation/SKILL.md","profiles/implementer_standard.toml","schemas/implementation-report-v1.json","skills/agent-auto/SKILL.md","skills/agent-auto/agents/openai.yaml","skills/code-debugger/SKILL.md","skills/code-debugger/agents/openai.yaml","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/small-task-implementer/SKILL.md","skills/small-task-implementer/agents/openai.yaml","skills/tdd/SKILL.md","skills/tdd/agents/openai.yaml","skills/tdd/interface-design.md","skills/tdd/mocking.md","skills/tdd/refactoring.md","skills/tdd/tests.md"],"id":"implementation","outputSchema":"schemas/implementation-report-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"change-set","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["worktree"]},"profile":"implementer_standard","resources":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/tool-usage.md"],"sourceSkill":"agent-auto"},"spec-author":{"dependencySkills":[],"entry":"operations/spec-author/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","operations/spec-author/SKILL.md","profiles/implementer_standard.toml","schemas/spec-author-v1.json","skills/implementation-spec-maker/SKILL.md","skills/implementation-spec-maker/agents/openai.yaml","skills/implementation-spec-maker/references/source-modes.md","skills/implementation-spec-maker/references/spec-template.md"],"id":"spec-author","outputSchema":"schemas/spec-author-v1.json","policy":{"approvalCeiling":"never","cwdClass":"target-state","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"spec-only","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["target-state"]},"profile":"implementer_standard","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md"],"sourceSkill":"implementation-spec-maker"},"spec-review":{"dependencySkills":[],"entry":"operations/spec-review/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-protocol.md","operations/spec-review/SKILL.md","profiles/reviewer_deep.toml","schemas/spec-review-v1.json","skills/implementation-spec-review/SKILL.md","skills/implementation-spec-review/agents/openai.yaml","skills/implementation-spec-review/references/review-loop.md"],"id":"spec-review","outputSchema":"schemas/spec-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_deep","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-protocol.md"],"sourceSkill":"implementation-spec-review"},"triage":{"dependencySkills":[],"entry":"operations/triage/SKILL.md","files":["docs/agents/coding-skill-routing.md","operations/triage/SKILL.md","profiles/analyst_deep.toml","schemas/triage-route-v1.json","skills/triage/AGENT-BRIEF.md","skills/triage/OUT-OF-SCOPE.md","skills/triage/SKILL.md","skills/triage/agents/openai.yaml"],"id":"triage","outputSchema":"schemas/triage-route-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"analyst_deep","resources":["docs/agents/coding-skill-routing.md"],"sourceSkill":"triage"}},"profiles":{"analyst_deep":"profiles/analyst_deep.toml","implementer_standard":"profiles/implementer_standard.toml","proof_agent":"profiles/proof_agent.toml","reviewer_deep":"profiles/reviewer_deep.toml","reviewer_standard":"profiles/reviewer_standard.toml"},"skills":{"acceptance-proof":{"entry":"skills/acceptance-proof/SKILL.md","files":["skills/acceptance-proof/SKILL.md","skills/acceptance-proof/agents/openai.yaml","skills/acceptance-proof/references/android.md","skills/acceptance-proof/references/browser.md","skills/acceptance-proof/references/ios.md","skills/acceptance-proof/tools/android-lease.mjs","skills/acceptance-proof/tools/ios-lease.mjs"],"metadata":"skills/acceptance-proof/agents/openai.yaml"},"agent-auto":{"entry":"skills/agent-auto/SKILL.md","files":["skills/agent-auto/SKILL.md","skills/agent-auto/agents/openai.yaml"],"metadata":"skills/agent-auto/agents/openai.yaml"},"code-debugger":{"entry":"skills/code-debugger/SKILL.md","files":["skills/code-debugger/SKILL.md","skills/code-debugger/agents/openai.yaml"],"metadata":"skills/code-debugger/agents/openai.yaml"},"code-review":{"entry":"skills/code-review/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/bug-classes.md","skills/code-review/references/cleanup-lens.md","skills/code-review/references/framework-lenses.md","skills/code-review/references/targeted-recipes.md"],"metadata":"skills/code-review/agents/openai.yaml"},"diagnosing-bugs":{"entry":"skills/diagnosing-bugs/SKILL.md","files":["skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh"],"metadata":"skills/diagnosing-bugs/agents/openai.yaml"},"implementation-spec-maker":{"entry":"skills/implementation-spec-maker/SKILL.md","files":["skills/implementation-spec-maker/SKILL.md","skills/implementation-spec-maker/agents/openai.yaml","skills/implementation-spec-maker/references/source-modes.md","skills/implementation-spec-maker/references/spec-template.md"],"metadata":"skills/implementation-spec-maker/agents/openai.yaml"},"implementation-spec-review":{"entry":"skills/implementation-spec-review/SKILL.md","files":["skills/implementation-spec-review/SKILL.md","skills/implementation-spec-review/agents/openai.yaml","skills/implementation-spec-review/references/review-loop.md"],"metadata":"skills/implementation-spec-review/agents/openai.yaml"},"small-task-implementer":{"entry":"skills/small-task-implementer/SKILL.md","files":["skills/small-task-implementer/SKILL.md","skills/small-task-implementer/agents/openai.yaml"],"metadata":"skills/small-task-implementer/agents/openai.yaml"},"spec-implementer":{"entry":"skills/spec-implementer/SKILL.md","files":["skills/spec-implementer/SKILL.md","skills/spec-implementer/agents/openai.yaml","skills/spec-implementer/references/review-loop.md"],"metadata":"skills/spec-implementer/agents/openai.yaml"},"tdd":{"entry":"skills/tdd/SKILL.md","files":["skills/tdd/SKILL.md","skills/tdd/agents/openai.yaml","skills/tdd/interface-design.md","skills/tdd/mocking.md","skills/tdd/refactoring.md","skills/tdd/tests.md"],"metadata":"skills/tdd/agents/openai.yaml"},"triage":{"entry":"skills/triage/SKILL.md","files":["skills/triage/AGENT-BRIEF.md","skills/triage/OUT-OF-SCOPE.md","skills/triage/SKILL.md","skills/triage/agents/openai.yaml"],"metadata":"skills/triage/agents/openai.yaml"}},"sourceFingerprint":"a8849a4c47b3adcb10239694bc0404eb89df4dbf8ae1e6ca7be689c141c5e316","version":2}
|
|
1
|
+
{"evals":{"shared/coding-skill-evals":{"owner":null,"path":"evals/coding-skill-evals.json"},"skill/implementation-spec-review":{"owner":"implementation-spec-review","path":"skills/implementation-spec-review/evals/evals.json"},"skill/spec-implementer":{"owner":"spec-implementer","path":"skills/spec-implementer/evals/evals.json"},"skill/tdd":{"owner":"tdd","path":"skills/tdd/evals/evals.json"}},"files":[{"mode":420,"path":"docs/agents/bug-workflow-routing.md","sha256":"a37c59676bcb8b938a7c82bce8a6ea5becf58ba367866d2712cd469391aea931","size":1603},{"mode":420,"path":"docs/agents/bugfix-quality-gate.md","sha256":"caaed6c923adfe56f4b6dd89222a83493ef4dd4e8bdd2bad694f8a11f93541ae","size":709},{"mode":420,"path":"docs/agents/coding-skill-routing.md","sha256":"958f4e7c7177c062b2a24fb7db2287be2cfa6e5281f2d156f7eb67b6cb3a0741","size":6434},{"mode":420,"path":"docs/agents/confidence-rubric.md","sha256":"42c947db2775380867e7adcfbdbe0f67b8f511b9ddf33a6eef8e1b0e995912c2","size":1883},{"mode":420,"path":"docs/agents/contract-test-ledger.md","sha256":"22b7b7fe4aeb54d863fb779990292d75214c0f811686baa58242e82d88f8186e","size":4200},{"mode":420,"path":"docs/agents/review-gates.md","sha256":"5ca48066b263cf869549c383814cfbdbbad711e5c247a8253bc2996d8fdec496","size":1857},{"mode":420,"path":"docs/agents/review-protocol.md","sha256":"9af5b44c545d76f3a048de424a4ccc78aa7e018bd193e4e5a787b2cef47af071","size":4086},{"mode":420,"path":"docs/agents/tool-usage.md","sha256":"b6ade11865a46a5a28d4823c1b70318453f4d350cfc62d2969aa06d73c47be4b","size":4321},{"mode":420,"path":"evals/coding-skill-evals.json","sha256":"4fac745d7986be76f6798064f4cd917e0bc8191add4bf7658877e40193ea8f11","size":4471},{"mode":420,"path":"operations/acceptance-proof/SKILL.md","sha256":"c33a04bf8dfcb59982f60b232633b0e48e9de4ec375cd02f52ec71f9fce30de6","size":440},{"mode":420,"path":"operations/ambiguity-review/SKILL.md","sha256":"20371f30015afef12a2b9dd608d21cc93a93f011873927f7a64e29b36a4fcf99","size":427},{"mode":420,"path":"operations/code-review/SKILL.md","sha256":"c415e4383dd7ddeb4b371a0a141a39c4296d95222b26ca3fcc51a34704e10f25","size":1246},{"mode":420,"path":"operations/implementation/SKILL.md","sha256":"6f0c9b900d252d9a833d7fdac6868d84900787debf2964e22ffbf86851af45d2","size":1461},{"mode":420,"path":"operations/spec-author/SKILL.md","sha256":"5170f275bd7bc346578028d74d5814a5edd36ccd90d0615c4d5e3d6b6f8af049","size":627},{"mode":420,"path":"operations/spec-review/SKILL.md","sha256":"6cb7b8ea245faa2587ebde07ebe3d364eff41d18d5464ccd2749cf2b9b49f701","size":653},{"mode":420,"path":"operations/triage/SKILL.md","sha256":"39e8301b90a59795dc2b93917d4674c22dc3e4380f011a54ade1de4c7cdc18ae","size":647},{"mode":420,"path":"profiles/analyst_deep.toml","sha256":"06335e3a13b07ef3d7deb9b546a6dad5d765edfa6dbf21c1c4d516e843a4352f","size":380},{"mode":420,"path":"profiles/implementer_standard.toml","sha256":"4074f45ea6fb615382de7ddf04e4ab824185e01932290b95764ff63a3711824e","size":750},{"mode":420,"path":"profiles/proof_agent.toml","sha256":"2fbaf1145a11cb5c574bf1ed7333187d284ed0c3c3d6260c628f82057b8b04e7","size":446},{"mode":420,"path":"profiles/reviewer_deep.toml","sha256":"15ef121b641265a85d0647c46f6dd93d4a9abd8c09bcc746c41e4ca6b4c9af41","size":648},{"mode":420,"path":"profiles/reviewer_standard.toml","sha256":"0a26b24f98b7e8d0ec049cb6fbe623d5da838b2fe71b5accd59bf364a9c97e5c","size":585},{"mode":420,"path":"schemas/ambiguity-review-v1.json","sha256":"48d946ad8e91bd1908d8993ef631b1701ad3cd7a79f34368a07942d7774afeff","size":524},{"mode":420,"path":"schemas/code-review-v1.json","sha256":"b11b266e0a7e0aa19eaf90ebf2b5c33f3bc7263e9c697cbf206e9865084e3439","size":2555},{"mode":420,"path":"schemas/implementation-report-v1.json","sha256":"a1b580dad03af9be74d895d38a2f6aa9398b6d772c944dc398dac5aca0630d2e","size":1573},{"mode":420,"path":"schemas/proof-report-v1.json","sha256":"1bf6c5b22b97ab3b659d961e21b0fc06869481405e1048ab9eadeeea212a8cf6","size":21949},{"mode":420,"path":"schemas/spec-author-v1.json","sha256":"49f945362d1184ad628584b91fbbe75323d13bafa4ca3876093387a9fca06214","size":420},{"mode":420,"path":"schemas/spec-review-v1.json","sha256":"fe9fdd389bcb4c3b7d19609184caf3af4b89e7c1d1e71a7ba0c55c72c5d5562d","size":1386},{"mode":420,"path":"schemas/triage-route-v1.json","sha256":"3ca7ed29237f42e12567797d145d90dd4f1f48fa1e81a7da67434c19747753d8","size":5894},{"mode":420,"path":"skills/acceptance-proof/SKILL.md","sha256":"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/agent-auto/SKILL.md","sha256":"450c28f7a712f881cdf9f3e48555a47022b46f79df875bac35843a1c15135451","size":1415},{"mode":420,"path":"skills/agent-auto/agents/openai.yaml","sha256":"79a70421300891e3130fc7535c4aa37e01931ff353fbd7b83262c6fcf2032b71","size":266},{"mode":420,"path":"skills/code-debugger/SKILL.md","sha256":"914cf2a1a9971d5d932954b908fbf3fcfea040d46b4d612c2e7932979256bb88","size":7692},{"mode":420,"path":"skills/code-debugger/agents/openai.yaml","sha256":"8dd2f301bee632585371bd6f62dbdcdec95201f553392515342da5d0fc563305","size":322},{"mode":420,"path":"skills/code-review/SKILL.md","sha256":"ccfdbd832a9415db5f833741351a3954e25d1685c94f06344490bdc5307bc164","size":16455},{"mode":420,"path":"skills/code-review/agents/openai.yaml","sha256":"c2697212427a5e119d9127e2f9000594e6c2eb7696e7a40604da7149c79ce478","size":278},{"mode":420,"path":"skills/code-review/references/bug-classes.md","sha256":"1f8648af9914cbd7553d045915f959df0f3b50a88e97c3beefeb955342e7b12d","size":4062},{"mode":420,"path":"skills/code-review/references/cleanup-lens.md","sha256":"6406350bf8ff00f9d2de2d5a8871aa1a9ab0efa33dcc35453eeebe9c96623e69","size":2846},{"mode":420,"path":"skills/code-review/references/framework-lenses.md","sha256":"ca9e7cb09f32f729cec5522e8ff7c7dcc43f76ef986e701e9c0a226514912cd8","size":1820},{"mode":420,"path":"skills/code-review/references/targeted-recipes.md","sha256":"921b422958c97e606637d3fa2d2628239d9176f0316c7e45bbc55b20a22fe3c1","size":2564},{"mode":420,"path":"skills/diagnosing-bugs/SKILL.md","sha256":"9a3457d4f12e3810041def93456a0c020df0842200737bf7ecaf06471991c16c","size":9097},{"mode":420,"path":"skills/diagnosing-bugs/agents/openai.yaml","sha256":"eca84840bc193ce63cc7aad93d9e7b5f2541739b7bf682e5fa9eded3a8060787","size":262},{"mode":420,"path":"skills/diagnosing-bugs/scripts/hitl-loop.template.sh","sha256":"b2932630950e5210075bcd6f850e5accf30c101c5367b29eac3a29b4dd8084c8","size":1164},{"mode":420,"path":"skills/implementation-spec-maker/SKILL.md","sha256":"c18d79268855823df381cb12adef767a780854a3ae43d0f53f878422ac62762a","size":9023},{"mode":420,"path":"skills/implementation-spec-maker/agents/openai.yaml","sha256":"5e9988125a4b69ec62ddfdb141793bebf8e117188d3c9c841031a0020b6d0b8e","size":421},{"mode":420,"path":"skills/implementation-spec-maker/references/source-modes.md","sha256":"471f0f58668b414438effbf91398022327fcbd43f40cc0801080994fe02bda3b","size":1920},{"mode":420,"path":"skills/implementation-spec-maker/references/spec-template.md","sha256":"0ba380125eb2e0c114aed6b0f064ac2643edf75bb78c10de72b741776edee6ff","size":5319},{"mode":420,"path":"skills/implementation-spec-review/SKILL.md","sha256":"473a38a52ebf393e95130ecd1c2d56141b210312e74b5590e1f9cfc3150b0362","size":6590},{"mode":420,"path":"skills/implementation-spec-review/agents/openai.yaml","sha256":"600f9cc4e4f42596e3bf48601a508ddf055efcc396478d5e339d024973f4fb05","size":277},{"mode":420,"path":"skills/implementation-spec-review/evals/evals.json","sha256":"4e41f607c84c04a6817b54854def0a2674c34381075ec6f55f435ca7b8e50efa","size":3499},{"mode":420,"path":"skills/implementation-spec-review/references/review-loop.md","sha256":"24de0b6fd7d08a8e95785534d3ca9626cc51be2434875821cc65ed9b8166a072","size":5553},{"mode":420,"path":"skills/small-task-implementer/SKILL.md","sha256":"6b81bf9d85b2f6c8253099cfe766f67cad312e3eb38b014ed2bedb007df467fc","size":4279},{"mode":420,"path":"skills/small-task-implementer/agents/openai.yaml","sha256":"81569b6dfd97de60b53f092528140a5e5043f9adcc9262debff7bc912e278958","size":261},{"mode":420,"path":"skills/spec-implementer/SKILL.md","sha256":"70f65edddebc788a21dbb5bc6cb8f60a297e0364c8e4754f3ba80cbf1ba210a0","size":5538},{"mode":420,"path":"skills/spec-implementer/agents/openai.yaml","sha256":"84ef664ae3538e264fe6746917f081d34eac0738dc28764ddf27d7a448b3615d","size":341},{"mode":420,"path":"skills/spec-implementer/evals/evals.json","sha256":"23d73ddd6e2205b601a36cd07a7dd5ee228ae587d5b9cc5adab9b0993a312ba8","size":1361},{"mode":420,"path":"skills/spec-implementer/references/review-loop.md","sha256":"6f6c088daf1c4fcb9811583ddfdfb9d0357e924fba8a6ef1662faa4b533f499f","size":4713},{"mode":420,"path":"skills/tdd/SKILL.md","sha256":"ed184bb3f12b527c3dd25d3c4cdecbbe549ae5c5781ecb52929435524836eeec","size":4200},{"mode":420,"path":"skills/tdd/agents/openai.yaml","sha256":"cc49a11a2c08733862d1a406123cda7a050d4a70fa92a4b3ec37f318694b1581","size":301},{"mode":420,"path":"skills/tdd/evals/evals.json","sha256":"8c16ca88cdd4556c803e267dfd8ea82fab11aae7ae9959277bab8bab6f093031","size":692},{"mode":420,"path":"skills/tdd/interface-design.md","sha256":"764c5ff0e3fa6b4ab7095eb65ccc7201e090baf19fa16051dfdb72c06d27417d","size":653},{"mode":420,"path":"skills/tdd/mocking.md","sha256":"e26596e305ce4c56ee4c31f166a4eb37ce289ac6ef0ce4c7aadfa41ce0bf8191","size":519},{"mode":420,"path":"skills/tdd/refactoring.md","sha256":"b05bcb10cfa43c7053abba2984c80c486afc10ef9ab180689427f56c86068fe6","size":362},{"mode":420,"path":"skills/tdd/tests.md","sha256":"6773173a074569b2e51653bd7b95c097d602dbb4815d1cf1c87344705c4e0d1c","size":2228},{"mode":420,"path":"skills/triage/AGENT-BRIEF.md","sha256":"053cd013e1c2c9275111aa6e4b5a12e9838f8d6cd888e8ca0ccaaac576fd74df","size":7070},{"mode":420,"path":"skills/triage/OUT-OF-SCOPE.md","sha256":"8ed8cf27833444060c81b3961a83c0e3d8e6cf2fcb2ddf6f8b07c6655cbb0d85","size":4282},{"mode":420,"path":"skills/triage/SKILL.md","sha256":"5c7c84189fd5146ec1ae55a5669c74372ed7bce588fa7b8523417aa55b312a2e","size":8273},{"mode":420,"path":"skills/triage/agents/openai.yaml","sha256":"466bc430f95132bc6b28d077d50865d4b1fd9218307582343c35b0baf66d7894","size":283}],"generationHash":"604a6a330c3f37f4c44d8e9af4a6316ad1be06001648d4f029ecfd7e5ad014d3","operations":{"acceptance-proof":{"dependencySkills":[],"entry":"operations/acceptance-proof/SKILL.md","files":["operations/acceptance-proof/SKILL.md","profiles/proof_agent.toml","schemas/proof-report-v1.json","skills/acceptance-proof/SKILL.md","skills/acceptance-proof/agents/openai.yaml","skills/acceptance-proof/references/android.md","skills/acceptance-proof/references/browser.md","skills/acceptance-proof/references/ios.md","skills/acceptance-proof/tools/ios-lease.mjs"],"id":"acceptance-proof","outputSchema":"schemas/proof-report-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"proof-only","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["worktree"]},"profile":"proof_agent","resources":[],"sourceSkill":"acceptance-proof"},"ambiguity-review":{"dependencySkills":[],"entry":"operations/ambiguity-review/SKILL.md","files":["docs/agents/confidence-rubric.md","operations/ambiguity-review/SKILL.md","profiles/reviewer_deep.toml","schemas/ambiguity-review-v1.json"],"id":"ambiguity-review","outputSchema":"schemas/ambiguity-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_deep","resources":["docs/agents/confidence-rubric.md"],"sourceSkill":null},"code-review":{"dependencySkills":[],"entry":"operations/code-review/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/review-protocol.md","operations/code-review/SKILL.md","profiles/reviewer_standard.toml","schemas/code-review-v1.json","skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/bug-classes.md","skills/code-review/references/cleanup-lens.md","skills/code-review/references/framework-lenses.md","skills/code-review/references/targeted-recipes.md"],"id":"code-review","outputSchema":"schemas/code-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_standard","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/review-protocol.md"],"sourceSkill":"code-review"},"implementation":{"dependencySkills":["code-debugger","diagnosing-bugs","small-task-implementer","tdd"],"entry":"operations/implementation/SKILL.md","files":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/tool-usage.md","operations/implementation/SKILL.md","profiles/implementer_standard.toml","schemas/implementation-report-v1.json","skills/agent-auto/SKILL.md","skills/agent-auto/agents/openai.yaml","skills/code-debugger/SKILL.md","skills/code-debugger/agents/openai.yaml","skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh","skills/small-task-implementer/SKILL.md","skills/small-task-implementer/agents/openai.yaml","skills/tdd/SKILL.md","skills/tdd/agents/openai.yaml","skills/tdd/interface-design.md","skills/tdd/mocking.md","skills/tdd/refactoring.md","skills/tdd/tests.md"],"id":"implementation","outputSchema":"schemas/implementation-report-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"change-set","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["worktree"]},"profile":"implementer_standard","resources":["docs/agents/bug-workflow-routing.md","docs/agents/coding-skill-routing.md","docs/agents/contract-test-ledger.md","docs/agents/review-gates.md","docs/agents/tool-usage.md"],"sourceSkill":"agent-auto"},"spec-author":{"dependencySkills":[],"entry":"operations/spec-author/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","operations/spec-author/SKILL.md","profiles/implementer_standard.toml","schemas/spec-author-v1.json","skills/implementation-spec-maker/SKILL.md","skills/implementation-spec-maker/agents/openai.yaml","skills/implementation-spec-maker/references/source-modes.md","skills/implementation-spec-maker/references/spec-template.md"],"id":"spec-author","outputSchema":"schemas/spec-author-v1.json","policy":{"approvalCeiling":"never","cwdClass":"target-state","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"spec-only","sandboxMode":"workspace-write","worktreeAccess":"write","writableRootClasses":["target-state"]},"profile":"implementer_standard","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md"],"sourceSkill":"implementation-spec-maker"},"spec-review":{"dependencySkills":[],"entry":"operations/spec-review/SKILL.md","files":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-protocol.md","operations/spec-review/SKILL.md","profiles/reviewer_deep.toml","schemas/spec-review-v1.json","skills/implementation-spec-review/SKILL.md","skills/implementation-spec-review/agents/openai.yaml","skills/implementation-spec-review/references/review-loop.md"],"id":"spec-review","outputSchema":"schemas/spec-review-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"reviewer_deep","resources":["docs/agents/confidence-rubric.md","docs/agents/contract-test-ledger.md","docs/agents/review-protocol.md"],"sourceSkill":"implementation-spec-review"},"triage":{"dependencySkills":[],"entry":"operations/triage/SKILL.md","files":["docs/agents/coding-skill-routing.md","operations/triage/SKILL.md","profiles/analyst_deep.toml","schemas/triage-route-v1.json","skills/triage/AGENT-BRIEF.md","skills/triage/OUT-OF-SCOPE.md","skills/triage/SKILL.md","skills/triage/agents/openai.yaml"],"id":"triage","outputSchema":"schemas/triage-route-v1.json","policy":{"approvalCeiling":"never","cwdClass":"worktree","externalWrite":false,"mcpTools":[],"network":"deny","networkHosts":[],"runnerPostcondition":"report-only","sandboxMode":"read-only","worktreeAccess":"read-only","writableRootClasses":[]},"profile":"analyst_deep","resources":["docs/agents/coding-skill-routing.md"],"sourceSkill":"triage"}},"profiles":{"analyst_deep":"profiles/analyst_deep.toml","implementer_standard":"profiles/implementer_standard.toml","proof_agent":"profiles/proof_agent.toml","reviewer_deep":"profiles/reviewer_deep.toml","reviewer_standard":"profiles/reviewer_standard.toml"},"skills":{"acceptance-proof":{"entry":"skills/acceptance-proof/SKILL.md","files":["skills/acceptance-proof/SKILL.md","skills/acceptance-proof/agents/openai.yaml","skills/acceptance-proof/references/android.md","skills/acceptance-proof/references/browser.md","skills/acceptance-proof/references/ios.md","skills/acceptance-proof/tools/ios-lease.mjs"],"metadata":"skills/acceptance-proof/agents/openai.yaml"},"agent-auto":{"entry":"skills/agent-auto/SKILL.md","files":["skills/agent-auto/SKILL.md","skills/agent-auto/agents/openai.yaml"],"metadata":"skills/agent-auto/agents/openai.yaml"},"code-debugger":{"entry":"skills/code-debugger/SKILL.md","files":["skills/code-debugger/SKILL.md","skills/code-debugger/agents/openai.yaml"],"metadata":"skills/code-debugger/agents/openai.yaml"},"code-review":{"entry":"skills/code-review/SKILL.md","files":["skills/code-review/SKILL.md","skills/code-review/agents/openai.yaml","skills/code-review/references/bug-classes.md","skills/code-review/references/cleanup-lens.md","skills/code-review/references/framework-lenses.md","skills/code-review/references/targeted-recipes.md"],"metadata":"skills/code-review/agents/openai.yaml"},"diagnosing-bugs":{"entry":"skills/diagnosing-bugs/SKILL.md","files":["skills/diagnosing-bugs/SKILL.md","skills/diagnosing-bugs/agents/openai.yaml","skills/diagnosing-bugs/scripts/hitl-loop.template.sh"],"metadata":"skills/diagnosing-bugs/agents/openai.yaml"},"implementation-spec-maker":{"entry":"skills/implementation-spec-maker/SKILL.md","files":["skills/implementation-spec-maker/SKILL.md","skills/implementation-spec-maker/agents/openai.yaml","skills/implementation-spec-maker/references/source-modes.md","skills/implementation-spec-maker/references/spec-template.md"],"metadata":"skills/implementation-spec-maker/agents/openai.yaml"},"implementation-spec-review":{"entry":"skills/implementation-spec-review/SKILL.md","files":["skills/implementation-spec-review/SKILL.md","skills/implementation-spec-review/agents/openai.yaml","skills/implementation-spec-review/references/review-loop.md"],"metadata":"skills/implementation-spec-review/agents/openai.yaml"},"small-task-implementer":{"entry":"skills/small-task-implementer/SKILL.md","files":["skills/small-task-implementer/SKILL.md","skills/small-task-implementer/agents/openai.yaml"],"metadata":"skills/small-task-implementer/agents/openai.yaml"},"spec-implementer":{"entry":"skills/spec-implementer/SKILL.md","files":["skills/spec-implementer/SKILL.md","skills/spec-implementer/agents/openai.yaml","skills/spec-implementer/references/review-loop.md"],"metadata":"skills/spec-implementer/agents/openai.yaml"},"tdd":{"entry":"skills/tdd/SKILL.md","files":["skills/tdd/SKILL.md","skills/tdd/agents/openai.yaml","skills/tdd/interface-design.md","skills/tdd/mocking.md","skills/tdd/refactoring.md","skills/tdd/tests.md"],"metadata":"skills/tdd/agents/openai.yaml"},"triage":{"entry":"skills/triage/SKILL.md","files":["skills/triage/AGENT-BRIEF.md","skills/triage/OUT-OF-SCOPE.md","skills/triage/SKILL.md","skills/triage/agents/openai.yaml"],"metadata":"skills/triage/agents/openai.yaml"}},"sourceFingerprint":"7a7553903d23ff61e92399047df2002c23fab4e752dc11eec863ba18f7086615","version":2}
|
|
@@ -7,7 +7,7 @@ description: Independently prove a checked change against frozen acceptance crit
|
|
|
7
7
|
|
|
8
8
|
Independently prove the checked change against every frozen acceptance criterion. Inspect the issue snapshot, actual diff, configured check receipts, and available repository evidence. Classify each criterion as non-visual or visual from the criterion and changed behavior, preserve every frozen criterion ID, and require concrete evidence for every declared surface.
|
|
9
9
|
|
|
10
|
-
For a browser surface, read and follow [references/browser.md](references/browser.md). For Android, follow [references/android.md](references/android.md) and
|
|
10
|
+
For a browser surface, read and follow [references/browser.md](references/browser.md). For Android, follow [references/android.md](references/android.md) and inspect only the Runner-prepared artifacts named in the prompt; never invoke Android device, emulator, Flutter, or lease helpers. For iOS, follow [references/ios.md](references/ios.md) and use only `tools/ios-lease.mjs`. Resolve every reference/helper from this exact immutable skill snapshot and use only the proof-bound arguments supplied by the runner. Apply the selected platform procedure's real-workflow, state capture, diagnostics, freshness, analysis, and artifact-classification requirements.
|
|
11
11
|
|
|
12
12
|
Do not edit product code, repair the implementation, change lifecycle state, or perform publication. Do not commit, push, open or edit a pull request, mutate GitHub labels/comments, publish packages, deploy, or use external credentials. Do not copy or print credential bytes or auth/secret paths. Report a typed external blocker only when proof genuinely depends on unavailable external authority.
|
|
13
13
|
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Use Android proof only when a frozen criterion describes user-visible Android behavior or the checked diff changes that behavior. Keep the exact frozen criterion IDs and declare `decision.mode: visual`, target `android`, and an `android` surface for each applicable criterion.
|
|
4
4
|
|
|
5
|
-
1.
|
|
6
|
-
2.
|
|
7
|
-
3.
|
|
8
|
-
4.
|
|
9
|
-
5.
|
|
5
|
+
1. Never invoke `adb`, `emulator`, `flutter run`, or a lease helper. Android device authority belongs exclusively to the trusted Runner.
|
|
6
|
+
2. Inspect the proof-bound Runner receipt and only the exact Runner-owned artifact paths supplied in the operation prompt. When the prompt instead contains an Android preparation warning, continue with every available non-visual check, preserve the unfinished UI proof as a residual risk, and do not turn emulator/tool startup failure alone into a delivery blocker.
|
|
7
|
+
3. Require the Runner receipt to bind the current proof ID, checked-change digest, configured check IDs, fresh APK digest, build output hash, capture time, and exact screenshot, hierarchy, device-log, and lease artifact refs.
|
|
8
|
+
4. Analyze the fresh screenshot and matching UI hierarchy for the final workflow state opened by the configured Runner entrypoint. Do not infer interactions or states that the artifacts do not show.
|
|
9
|
+
5. Require the device log and active lease artifact to bind the captured application PID and Runner-created emulator. The Runner releases and stops only that emulator after terminal proof settlement.
|
|
10
10
|
6. Review spacing, padding, clipping, overlap, alignment, and the specific visual complaint. Separately review visible user-facing copy against the frozen criterion. Link both reviews to exact evidence IDs.
|
|
11
11
|
7. Write every artifact below the runner-provided proof directory. Mark the UI hierarchy, device log, and lease record `publishable: false`. Mark a screenshot publishable only when it contains no credential, secret, private user path, or unrelated account data. Never place serials, application IDs, PIDs, lease tokens, local paths, credential bytes, authorization data, environment values, or user-owned device data in the publishable receipt.
|
|
12
12
|
8. Build the exact generated Proof Report. Each Android criterion must reference both screenshot and hierarchy evidence. Visual evidence must include workflow entrypoint/steps/final state, Android capture dimensions, device-log ref, lease ref, `capturedAfterFinalInteraction: true`, and evidence-linked layout/copy reviews.
|
|
13
13
|
|
|
14
|
-
The
|
|
14
|
+
The Runner releases the lease and stops its emulator after terminal proof settlement. A screenshot alone, missing hierarchy/log/lease/Runner receipt, stale evidence, changed application PID, guessed interaction, rewritten criterion, unanalysed image, or secret-bearing artifact cannot count as completed Android proof. Return `needs-rework` for product defects. Treat emulator/tool startup failure as a warning and unfinished UI proof; reserve `external-block` for non-Android authority that the delivery contract still requires.
|
|
@@ -9,7 +9,7 @@ description: Implement and verify an explicit or approved bug fix end-to-end. Us
|
|
|
9
9
|
|
|
10
10
|
Treat every bug report as an engineering investigation, not a prompt to guess. Start by proving whether each reported problem is valid and still current, then narrow the failing path, patch the root cause with the smallest correct change, and verify the result before closing the task. Always plan your actions explicitly before executing them.
|
|
11
11
|
|
|
12
|
-
For confirmed contract defects,
|
|
12
|
+
For confirmed contract defects, apply the shared Contract Test Ledger gate at `../../docs/agents/contract-test-ledger.md`.
|
|
13
13
|
|
|
14
14
|
## Activation Rule
|
|
15
15
|
|
|
@@ -47,8 +47,8 @@ Default execution mode is inline; use `analyst_deep` only while causal or contra
|
|
|
47
47
|
- If full reproduction is impossible, establish the strongest available failing signal and state what is missing.
|
|
48
48
|
- If no red-capable signal can be built for an unclear or flaky bug, switch to `diagnosing-bugs` before patching.
|
|
49
49
|
|
|
50
|
-
5. Create
|
|
51
|
-
-
|
|
50
|
+
5. Create a regression contract row only when the ledger gate passes.
|
|
51
|
+
- Record the invariant, concrete missed failure, and first regression test/proof before patching.
|
|
52
52
|
- The preferred sequence is `planned -> red -> green`: show the regression signal fails, apply the fix, then verify it passes.
|
|
53
53
|
- If no correct public seam exists, mark the ledger row `blocked` with the missing seam or fixture instead of writing an implementation-detail test by default.
|
|
54
54
|
|
|
@@ -7,6 +7,13 @@ description: "Evidence-first review of code, PRs, commits, regressions, or revie
|
|
|
7
7
|
|
|
8
8
|
This skill performs evidence-based code review. It is not a style pass and not a summary. Treat the change as potentially wrong until independent review tracks fail to break it.
|
|
9
9
|
|
|
10
|
+
Passing tests, test names, checklists, and implementation reports are inputs,
|
|
11
|
+
not proof. For each material behavior, trace the production path before reading
|
|
12
|
+
its tests, attempt one concrete violating sequence, then verify that the exact
|
|
13
|
+
setup, actions, and assertions reject it. If a fake bypasses the claimed
|
|
14
|
+
boundary or the test stays green, report a finding or verification gap; do not
|
|
15
|
+
approve nominal coverage.
|
|
16
|
+
|
|
10
17
|
The review always covers two lenses:
|
|
11
18
|
|
|
12
19
|
- **Correctness reviewer**: bugs, regressions, runtime behavior, security, contracts, caches, concurrency, framework rules, and failure paths.
|
|
@@ -50,7 +57,9 @@ When this skill is called from `$spec-implementer`:
|
|
|
50
57
|
|
|
51
58
|
- read `../spec-implementer/references/review-loop.md` and the persisted
|
|
52
59
|
`## Implementation Review State`
|
|
53
|
-
-
|
|
60
|
+
- recheck the scheduled profile against the settled diff; return an
|
|
61
|
+
underclassified profile to the executor before launching reviewers
|
|
62
|
+
- accept the scheduled mode, session, revision, and lenses after that check
|
|
54
63
|
- pin the target and give reviewers the owner-defined capsule
|
|
55
64
|
- return the usable result and stable defect updates to the executor
|
|
56
65
|
- keep cleanup findings in the spec/standards lineage and canonical Defect Ledger
|
|
@@ -69,7 +78,7 @@ Read only the references the current review needs:
|
|
|
69
78
|
- Contract test ledger: `../../docs/agents/contract-test-ledger.md`
|
|
70
79
|
- Shared confidence rubric: `../../docs/agents/confidence-rubric.md`
|
|
71
80
|
|
|
72
|
-
Load `references/framework-lenses.md` when the user names a framework or files/configs strongly imply one. Load `references/targeted-recipes.md`
|
|
81
|
+
Load `references/framework-lenses.md` when the user names a framework or files/configs strongly imply one. Load `references/targeted-recipes.md` when the diff shape matches them. Load `../../docs/agents/contract-test-ledger.md` only for a material contract delta with a named failure ordinary targeted proof could miss. Load `references/bug-classes.md` for substantial reviews or broad bug hunts.
|
|
73
82
|
Load `references/cleanup-lens.md` when the spec/standards lens is assigned. Use
|
|
74
83
|
its bounded method by default and its amplified method only for a concrete
|
|
75
84
|
evidenced simplification risk supplied as mandatory Review Focus.
|
|
@@ -187,10 +196,13 @@ The coordinator must not blindly relay reviewer output.
|
|
|
187
196
|
2. Re-read the relevant code for the strongest findings.
|
|
188
197
|
3. Drop findings that lack a concrete trigger path.
|
|
189
198
|
4. Reclassify severity/confidence using `../../docs/agents/confidence-rubric.md` if evidence does not support the label.
|
|
190
|
-
5. For real contract defects, identify the missing or inadequate
|
|
199
|
+
5. For real contract defects that pass the ledger gate, identify the missing or inadequate invariant when TDD/spec evidence is available.
|
|
191
200
|
6. Confirm every mandatory `Review Focus` item and mandatory delta lens was reviewed; if not, report the unverified item as a verification gap.
|
|
192
|
-
7.
|
|
193
|
-
|
|
201
|
+
7. Confirm that mandatory behavior evidence rejects the concrete violating
|
|
202
|
+
sequence attempted by the reviewer. Evidence that bypasses its claimed
|
|
203
|
+
production boundary invalidates that Full coverage.
|
|
204
|
+
8. Decide whether auto-fix is allowed.
|
|
205
|
+
9. Run the narrowest meaningful verification after any fix.
|
|
194
206
|
|
|
195
207
|
Keep the two axes visible in your own notes, but present the final report by severity unless the user explicitly asked for side-by-side Standards/Spec output.
|
|
196
208
|
|
|
@@ -233,7 +245,7 @@ Automatically fix only when all are true:
|
|
|
233
245
|
When auto-fixing:
|
|
234
246
|
|
|
235
247
|
- patch only the bug
|
|
236
|
-
- add/update behavior tests when regression risk is meaningful and the codebase supports it;
|
|
248
|
+
- add/update behavior tests when regression risk is meaningful and the codebase supports it; update a ledger only when its gate passes
|
|
237
249
|
- rerun relevant verification
|
|
238
250
|
- never revert unrelated user changes
|
|
239
251
|
|
|
@@ -18,9 +18,11 @@ Create or revise an execution-ready specification for a downstream coding agent.
|
|
|
18
18
|
## Preflight
|
|
19
19
|
|
|
20
20
|
1. Read the source authority, applicable repository instructions, and only the evidence needed to confirm targets, commands, contracts, consumers, fixtures, and validation.
|
|
21
|
-
2.
|
|
22
|
-
3.
|
|
23
|
-
4.
|
|
21
|
+
2. Build a transient evidence-backed scope delta with three facts per material requirement: approved behavior, current capability/owner/seam, and the smallest remaining implementation delta. Pass it in the reviewer capsule; persist it in the spec only when an executor needs it.
|
|
22
|
+
3. Treat behavior already present as `preserve + regression proof`, not new implementation. Stop with a blocked spec when an unresolved product value, copy decision, policy, or ownership choice changes the implementation; never manufacture a working default to keep drafting.
|
|
23
|
+
4. Reuse valid Evidence Maps and `$research` artifacts. Refresh only claims invalidated by changed files, versions, dates, contracts, or conflicts.
|
|
24
|
+
5. Read the relevant section of [source modes](references/source-modes.md). Stop or mark the spec blocked when its source-specific requirements are not satisfied.
|
|
25
|
+
6. Classify and record these independent facts:
|
|
24
26
|
- `spec_mode`: `compact | full` — document and coordination density.
|
|
25
27
|
- `implementation_size`: `small | medium | large` — expected delivery shape.
|
|
26
28
|
- `review_profile`: `simple | medium | high` — consequence and uncertainty,
|
|
@@ -50,6 +52,7 @@ Before drafting slices:
|
|
|
50
52
|
3. Set `Added Complexity: None` unless the minimum solution cannot satisfy a named requirement or evidenced failure path.
|
|
51
53
|
4. For every added mechanism, including a new service, helper, adapter, layer, schema object, transaction, retry policy, job, cache, flag, compatibility path, or coordination boundary, record the exact invariant or failure that requires it and what breaks without it.
|
|
52
54
|
5. Run the deletion challenge: if removing a proposed mechanism still satisfies all approved behavior, invariants, and proof, remove it from the spec.
|
|
55
|
+
6. Do not use technical detail to conceal a missing product decision. Unknown durations, thresholds, localized copy, policy defaults, and eligibility rules remain blockers when they materially shape behavior.
|
|
53
56
|
|
|
54
57
|
Judge simplicity by the fewest necessary concepts, owners, states, and integration points, not by line or file count. Do not require complexity scores or alternative-solution essays.
|
|
55
58
|
|
|
@@ -74,11 +77,10 @@ Read [the spec template](references/spec-template.md) before drafting, then remo
|
|
|
74
77
|
`$implementation-spec-review` as its Adapter. Supply the saved spec, source
|
|
75
78
|
authority, approved decisions, and evidence; do not restate its topology or
|
|
76
79
|
defect lifecycle.
|
|
77
|
-
3. Apply one consolidated, scope-preserving repair batch,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
5. Replace temporary lifecycle metadata with outcome, last Adapter verdict,
|
|
80
|
+
3. Apply one consolidated, scope-preserving repair batch. Before requesting any Closure, record a transient repair complexity delta containing every newly introduced endpoint, service, durable state, configuration input, schema/public contract, repository, or data owner and its existing-seam justification. Pass only that delta, repaired sections, and affected defects/contracts to Closure; do not add a separate simplification review.
|
|
81
|
+
4. Follow the owner loop until it returns `Approved`, `Blocked`, or an eligible user-authorized `Waived` outcome. Respect its default review budget and rare fresh-Full triggers; do not create review rounds for ordinary coordinator-verifiable repairs.
|
|
82
|
+
5. A preflight-blocked spec may be saved with zero reviews and `review_verdict: "Not run"`. Never fabricate approval or use `Not required`.
|
|
83
|
+
6. Replace temporary lifecycle metadata with outcome, last Adapter verdict,
|
|
82
84
|
mandatory coverage, accepted risks, and open stable IDs. Keep pass/session
|
|
83
85
|
counts only for high, Closure, or interrupted review. Any substantive
|
|
84
86
|
post-approval edit invalidates approval until reviewed again.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Implementation Spec Maker"
|
|
3
3
|
short_description: "Create lean deterministic implementation specs"
|
|
4
|
-
default_prompt: "Use $implementation-spec-maker
|
|
4
|
+
default_prompt: "Use $implementation-spec-maker only for a named execution decision or coordination gap; otherwise keep the direct route. Create the smallest deterministic spec and classify mode, size, repository count, and review risk independently."
|
|
5
5
|
policy:
|
|
6
6
|
allow_implicit_invocation: true
|
|
@@ -43,15 +43,27 @@ A standalone reviewer performs one bounded Full over all applicable lenses and
|
|
|
43
43
|
returns only `Approved | Needs Work | Rejected`; it does not invent owner state
|
|
44
44
|
or claim Closure.
|
|
45
45
|
|
|
46
|
+
## Minimum Solution First
|
|
47
|
+
|
|
48
|
+
Begin every Full review with the evidence-backed scope delta, before checking whether the proposed implementation is detailed enough:
|
|
49
|
+
|
|
50
|
+
1. Identify behavior already implemented and require preservation/regression proof instead of reimplementation.
|
|
51
|
+
2. Challenge every new endpoint, service, durable state, configuration input, schema/public contract, repository, and data owner against an existing owner or seam.
|
|
52
|
+
3. Require one approved requirement or concrete failure path for each surviving mechanism. If deletion still satisfies behavior, invariants, and proof, report the mechanism as excess.
|
|
53
|
+
4. Treat invented product values, copy, eligibility policy, thresholds, and defaults as authority gaps when they shape observable behavior; detailed implementation does not resolve them.
|
|
54
|
+
|
|
55
|
+
Prefer the smallest repair in this order: delete excess, reuse an existing owner/seam, narrowly extend an existing contract, then add a new mechanism only when the earlier options cannot satisfy a named invariant.
|
|
56
|
+
|
|
46
57
|
## Review Lenses
|
|
47
58
|
|
|
48
59
|
Scale depth to the profile and inspect only applicable lenses:
|
|
49
60
|
|
|
50
61
|
- **Determinism and evidence:** execution-critical paths, symbols, commands,
|
|
51
62
|
contracts, fixtures, and claims are confirmed rather than invented.
|
|
52
|
-
- **Scope and minimum solution:** the spec preserves approved scope,
|
|
53
|
-
|
|
54
|
-
|
|
63
|
+
- **Scope and minimum solution:** the spec preserves approved scope,
|
|
64
|
+
distinguishes `preserve + regression proof` from new work, uses existing
|
|
65
|
+
owners/seams, and ties every added mechanism to a requirement or concrete
|
|
66
|
+
failure path.
|
|
55
67
|
- **Sequencing and ownership:** phases are safe, sources of truth are explicit
|
|
56
68
|
where drift is possible, and multi-agent write scopes are disjoint.
|
|
57
69
|
- **Validation:** each behavior has an observable proof; contract-risk work maps
|
|
@@ -81,6 +93,8 @@ Prefer deleting or narrowing an unsafe proposal before adding flags, telemetry,
|
|
|
81
93
|
fallbacks, compatibility paths, or rollout machinery. Optional improvements
|
|
82
94
|
remain optional unless source authority approves them.
|
|
83
95
|
|
|
96
|
+
Do not approve a duplicate public seam merely because it is internally consistent. Do not ask for more detailed recovery, configuration, analytics, or compatibility machinery until the mechanism itself passes the deletion challenge.
|
|
97
|
+
|
|
84
98
|
## Defects And Decision
|
|
85
99
|
|
|
86
100
|
- **Blocker:** unsafe or impossible to execute as written.
|
|
@@ -19,6 +19,36 @@
|
|
|
19
19
|
"prompt": "An approved spec receives a substantive execution change after review.",
|
|
20
20
|
"expected": ["invalidate approval for the changed revision", "review only invalidated coverage"],
|
|
21
21
|
"forbidden": ["execute under stale approval", "restart unrelated coverage"]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "artifact-existing-seam-extension",
|
|
25
|
+
"prompt": "A spec proposes a second public access endpoint and new client loader although the existing versioned endpoint can accept optional fields without breaking callers.",
|
|
26
|
+
"expected": ["report excess scope", "prefer a narrow extension of the existing endpoint and loader"],
|
|
27
|
+
"forbidden": ["approve the duplicate seam because its contract is detailed", "add compatibility machinery for the duplicate endpoint"]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "artifact-already-implemented-preservation",
|
|
31
|
+
"prompt": "Repository evidence proves the target screen already displays the current plan and remaining time, but the spec lists both as new implementation work.",
|
|
32
|
+
"expected": ["reclassify existing behavior as preserve plus regression proof", "limit implementation to the actual remaining delta"],
|
|
33
|
+
"forbidden": ["plan a second implementation", "ignore current code evidence"]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "artifact-invented-product-policy",
|
|
37
|
+
"prompt": "The source requires configurable lookback and cooldown periods but supplies no values; the spec invents defaults and builds configuration, validation, and analytics around them.",
|
|
38
|
+
"expected": ["treat material values as an authority gap", "block before expanding the technical contract"],
|
|
39
|
+
"forbidden": ["approve invented defaults", "reward extra implementation detail as determinism"]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "artifact-closure-complexity-guard",
|
|
43
|
+
"prompt": "A repair for one failure-contract defect adds a service, durable state machine, configuration input, and public DTO. Review the repair in Closure.",
|
|
44
|
+
"expected": ["verify the supplied defect", "challenge each added mechanism against existing seams", "report scope change without starting a separate simplification review"],
|
|
45
|
+
"forbidden": ["verify only the old defect ID", "automatically launch a fresh Full"]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "artifact-local-repair-review-budget",
|
|
49
|
+
"prompt": "A consolidated repair changes only wording and one existing validation command while preserving scope, owners, public contracts, and mandatory-lens coverage.",
|
|
50
|
+
"expected": ["use coordinator verification for ordinary findings", "reuse valid Full coverage"],
|
|
51
|
+
"forbidden": ["launch Closure for ordinary findings", "launch a fresh Full because the revision changed"]
|
|
22
52
|
}
|
|
23
53
|
]
|
|
24
54
|
}
|
|
@@ -31,6 +31,8 @@ spec revision, and mandatory external evidence. Save a useful blocked spec when
|
|
|
31
31
|
a product or contract decision is missing; do not launch review to discover a
|
|
32
32
|
known authority gap.
|
|
33
33
|
|
|
34
|
+
Require an evidence-backed scope delta before review: approved behavior, current capability/owner/seam, and the smallest remaining implementation delta for each material requirement. Already implemented behavior is preservation/regression scope. Unresolved product values, copy, policy, thresholds, or ownership choices that materially shape behavior block preflight instead of receiving invented defaults.
|
|
35
|
+
|
|
34
36
|
`medium` is the default. Use:
|
|
35
37
|
|
|
36
38
|
- `simple` for one narrow owner with direct proof and no material uncertainty;
|
|
@@ -50,9 +52,12 @@ authorize flags, telemetry, compatibility paths, generic fallbacks, or rollout
|
|
|
50
52
|
machinery unless the source or a concrete failure requires them.
|
|
51
53
|
|
|
52
54
|
Give each reviewer a bounded capsule containing the current spec, authority,
|
|
53
|
-
approved scope,
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
approved scope, scope delta, current owners/seams, evidence, review question,
|
|
56
|
+
assigned lenses, and current defect records. Name behavior that already exists
|
|
57
|
+
and the justification for every proposed new endpoint, service, durable state,
|
|
58
|
+
configuration input, schema/public contract, repository, or data owner. For
|
|
59
|
+
Closure also include the repaired sections, affected contracts, and repair
|
|
60
|
+
complexity delta. Do not pass raw parent history or unrelated inventories.
|
|
56
61
|
|
|
57
62
|
## Topology
|
|
58
63
|
|
|
@@ -63,13 +68,32 @@ Do not pass raw parent history or unrelated inventories.
|
|
|
63
68
|
|
|
64
69
|
Root launches and aggregates reviewers. A reviewer child runs the
|
|
65
70
|
`implementation-spec-review` Adapter inline and never spawns another reviewer.
|
|
66
|
-
Reuse valid coverage for the same revision and question.
|
|
71
|
+
Reuse valid coverage for the same revision and question. Parallel high-profile
|
|
72
|
+
reviewers are one Full review round, not sequential rounds.
|
|
67
73
|
|
|
68
74
|
After one consolidated repair, coordinator verification is enough for ordinary
|
|
69
75
|
medium/low findings. Use shared-protocol Closure only for critical/high defects,
|
|
70
76
|
protected trust/data/concurrency/shared-contract impact, or invalidated
|
|
71
|
-
mandatory coverage.
|
|
72
|
-
|
|
77
|
+
mandatory coverage.
|
|
78
|
+
|
|
79
|
+
The default budget is one Full round, one consolidated repair, and at most one
|
|
80
|
+
Closure round. Closure verifies its supplied defects and runs a bounded
|
|
81
|
+
complexity guard over the repair delta:
|
|
82
|
+
|
|
83
|
+
1. Did the repair add a new integration boundary or durable mechanism?
|
|
84
|
+
2. Can it be removed or replaced by an existing owner/seam?
|
|
85
|
+
3. Did it change approved scope?
|
|
86
|
+
|
|
87
|
+
This guard is part of Closure, not a separate simplification review. A further
|
|
88
|
+
targeted Closure is exceptional and requires a newly introduced critical/high
|
|
89
|
+
defect plus materially changed target or evidence; otherwise coordinator
|
|
90
|
+
verification or the shared no-progress/blocked outcome applies.
|
|
91
|
+
|
|
92
|
+
Start a fresh Full only when existing mandatory coverage is invalidated by a
|
|
93
|
+
changed source decision or approved scope, replacement of the primary solution
|
|
94
|
+
or owner, addition of a repository/data owner, or a new public API or durable
|
|
95
|
+
workflow that changes the reviewed architecture. A large diff or accumulated
|
|
96
|
+
clarifications alone do not trigger Full.
|
|
73
97
|
|
|
74
98
|
## Approval
|
|
75
99
|
|
|
@@ -18,9 +18,15 @@ Use the spec's `review_profile`; if absent, infer it from current evidence:
|
|
|
18
18
|
|
|
19
19
|
- `simple`: narrow change with direct proof;
|
|
20
20
|
- `medium`: default for ordinary implementation;
|
|
21
|
-
- `high`: material failure consequence
|
|
21
|
+
- `high`: material failure consequence (financial side effect,
|
|
22
|
+
unauthorized/cross-owner behavior, durable corruption, or materially false
|
|
23
|
+
production result) plus an uncertainty amplifier (concurrency or event
|
|
24
|
+
ordering, delayed/background callbacks, retry/idempotency/recovery,
|
|
25
|
+
ownership transitions, or shared state across consumers).
|
|
22
26
|
|
|
23
27
|
Implementation evidence may raise but never lower the approved profile.
|
|
28
|
+
Recheck the settled diff immediately before the first reviewer launch and
|
|
29
|
+
persist any required raise before launching reviewers.
|
|
24
30
|
|
|
25
31
|
## Default Review Shape
|
|
26
32
|
|
|
@@ -26,7 +26,8 @@ cleanup are validation, not RED proofs.
|
|
|
26
26
|
- Derive expected values from an independent source, never from the production algorithm.
|
|
27
27
|
- Prove RED on the old behavior for the same observable reason the user reported or requested.
|
|
28
28
|
- Add only enough implementation to make the current test pass; do not anticipate later tests.
|
|
29
|
-
- Keep tests stable across behavior-preserving refactors
|
|
29
|
+
- Keep tests stable across behavior-preserving refactors.
|
|
30
|
+
- After sufficient GREEN, stop by default. Refactor only to reduce concrete complexity introduced by the change.
|
|
30
31
|
|
|
31
32
|
Read [tests.md](tests.md) when choosing or reviewing test shape. Read [mocking.md](mocking.md) before introducing test doubles.
|
|
32
33
|
|
|
@@ -36,7 +37,7 @@ Read [tests.md](tests.md) when choosing or reviewing test shape. Read [mocking.m
|
|
|
36
37
|
2. List the prioritized observable behaviors, not implementation steps.
|
|
37
38
|
3. Select the public seam where callers observe each behavior.
|
|
38
39
|
4. Ask the user only when the seam changes the public contract, product intent is unclear, or behavior priorities materially conflict.
|
|
39
|
-
5.
|
|
40
|
+
5. Use the shared [Contract Test Ledger](../../docs/agents/contract-test-ledger.md) only when its material-delta and missed-failure gate passes.
|
|
40
41
|
6. If no natural public seam exists, stop the TDD route. Consult [interface-design.md](interface-design.md) only when changing the interface is itself required by the task.
|
|
41
42
|
|
|
42
43
|
For UI behavior, define proof at the rendered seam: visible content and order, interaction result, semantics, or screenshot when layout direction or scrolling matters.
|
|
@@ -56,7 +57,7 @@ Handle reviewer repairs inside the same activation only under [bug workflow rout
|
|
|
56
57
|
|
|
57
58
|
## After GREEN
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
GREEN is a valid stopping point. If the current change created concrete local complexity, use [refactoring.md](refactoring.md) and rerun affected tests.
|
|
60
61
|
|
|
61
62
|
## Cycle Checklist
|
|
62
63
|
|
|
@@ -68,5 +69,5 @@ Refactor as a separate review-stage activity, never while RED. Use [refactoring.
|
|
|
68
69
|
[ ] GREEN uses only the code needed for the current behavior
|
|
69
70
|
[ ] Final outcome and relevant competing condition are proved
|
|
70
71
|
[ ] Contract Test Ledger is current when applicable
|
|
71
|
-
[ ]
|
|
72
|
+
[ ] Any refactor is local and reduces current-change complexity
|
|
72
73
|
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"skill": "tdd",
|
|
4
|
+
"cases": [
|
|
5
|
+
{
|
|
6
|
+
"id": "green-can-stop",
|
|
7
|
+
"prompt": "The requested behavior is green and the changed code is already clear and local.",
|
|
8
|
+
"expected": ["stop after green", "keep the current structure"],
|
|
9
|
+
"forbidden": ["add helpers, classes, or value objects", "refactor unrelated code"]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "no-test-only-seam",
|
|
13
|
+
"prompt": "A behavior test can use the existing public seam, but dependency injection would make mocking easier.",
|
|
14
|
+
"expected": ["use the existing public seam"],
|
|
15
|
+
"forbidden": ["add production dependency injection only for tests", "wrap an SDK only for mockability"]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -15,45 +15,6 @@ Don't mock:
|
|
|
15
15
|
|
|
16
16
|
## Designing for Mockability
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Pass external dependencies in rather than creating them internally:
|
|
23
|
-
|
|
24
|
-
```typescript
|
|
25
|
-
// Easy to mock
|
|
26
|
-
function processPayment(order, paymentClient) {
|
|
27
|
-
return paymentClient.charge(order.total);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Hard to mock
|
|
31
|
-
function processPayment(order) {
|
|
32
|
-
const client = new StripeClient(process.env.STRIPE_KEY);
|
|
33
|
-
return client.charge(order.total);
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**2. Prefer SDK-style interfaces over generic fetchers**
|
|
38
|
-
|
|
39
|
-
Create specific functions for each external operation instead of one generic function with conditional logic:
|
|
40
|
-
|
|
41
|
-
```typescript
|
|
42
|
-
// GOOD: Each function is independently mockable
|
|
43
|
-
const api = {
|
|
44
|
-
getUser: (id) => fetch(`/users/${id}`),
|
|
45
|
-
getOrders: (userId) => fetch(`/users/${userId}/orders`),
|
|
46
|
-
createOrder: (data) => fetch('/orders', { method: 'POST', body: data }),
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// BAD: Mocking requires conditional logic inside the mock
|
|
50
|
-
const api = {
|
|
51
|
-
fetch: (endpoint, options) => fetch(endpoint, options),
|
|
52
|
-
};
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
The SDK approach means:
|
|
56
|
-
- Each mock returns one specific shape
|
|
57
|
-
- No conditional logic in test setup
|
|
58
|
-
- Easier to see which endpoints a test exercises
|
|
59
|
-
- Type safety per endpoint
|
|
18
|
+
Use the existing public or system-boundary seam first. Add dependency injection,
|
|
19
|
+
an adapter, or an SDK wrapper only when production ownership or the requested
|
|
20
|
+
contract requires it—not only to make a test easier to mock.
|