diff --git a/docs/evidence/meta-362/MANIFEST.json b/docs/evidence/meta-362/MANIFEST.json new file mode 100644 index 0000000..41bed0a --- /dev/null +++ b/docs/evidence/meta-362/MANIFEST.json @@ -0,0 +1,1751 @@ +{ + "generatedAt": "2026-08-21T04:00:00Z", + "description": "M2A causal-review experiment evidence packet for META-362", + "provenance": { + "experiment": "META-362 / M2A Causal Review Proof", + "preregistration": { + "linearIssue": "META-367", + "linearUrl": "https://linear.app/marcelle-labs/issue/META-367", + "description": "Scenario preregistration and frozen run protocol" + }, + "disposition": { + "linearIssue": "META-372", + "linearUrl": "https://linear.app/marcelle-labs/issue/META-372", + "classification": "NARROW", + "note": "Referenced Linear execution decision, not normative standard authority" + }, + "reviewInstrument": { + "repository": "workspacejson/integrations", + "package": "@workspacejson/codex-mcp", + "version": "0.1.9", + "gitSHA": "3aa4531286ba8ebf8fa65bda3ac065fd66a86dab" + }, + "model": { + "provider": "openrouter", + "model": "openai/gpt-5.6-terra", + "endpoint": "https://openrouter.ai/api/v1/responses", + "reasoningEffort": "high" + }, + "scenarios": { + "scenario-a-billfold": { + "repository": "workspace-json/billfold", + "gitSHA": "0ff147b0333561107c5724f026454ec1afa38622", + "changedFile": "src/routes/checkout.ts", + "coChangePartner": "src/webhooks/stripe.ts", + "partnerSupport": 6, + "partnerOccurrences": 9 + }, + "scenario-b-integrations": { + "repository": "workspacejson/integrations", + "gitSHA": "3aa4531286ba8ebf8fa65bda3ac065fd66a86dab", + "changedFile": "src/services/workspace.ts", + "coChangePartner": "src/tools/workspace.ts", + "partnerSupport": 4, + "partnerOccurrences": 7 + }, + "scenario-c-syncpack": { + "repository": "JamieMason/syncpack", + "gitSHA": "958d30689ac24b60623258630242330bd6d0264b", + "changedFile": "src/instance.rs", + "coChangePartner": "src/version_group.rs", + "partnerSupport": 17, + "partnerOccurrences": 33 + } + }, + "acceptedRunCount": { + "scenarios": "3 scenarios x 3 arms x 3 runs = 27 accepted runs", + "degraded": "4 conditions x 3 runs = 12 accepted runs", + "preflight": "3 scenarios x 3 arms x 3 runs = 27 preflight/rejected runs (evidence not delivered)" + } + }, + "files": [ + { + "path": "RECEIPT.md", + "sha256": "56a5220ec28b421e26afda9d4995459e94d59c4a0f9c8cf60b8052b225e80232", + "size": 6796, + "role": "experiment receipt" + }, + { + "path": "REDACTIONS.md", + "sha256": "493a0db6b3c93d0b108cb40b5062959060d8c95cd7a6cfdcdad71229f4b2c36c", + "size": 2412, + "role": "redaction log" + }, + { + "path": "degraded-all-results.json", + "sha256": "129d403ddef6788644ec852a1754fae7bb51f959aa919f92b59b170f9d00f4ed", + "size": 10328, + "role": "aggregated degraded-evidence results" + }, + { + "path": "scenario-all-results.json", + "sha256": "44512b6eac43202ee18c8fbab37284183c241f758f7e50e521d78ee4ec8a5c4e", + "size": 23775, + "role": "aggregated scenario results" + }, + { + "path": "degraded-evidence/stale/run-03/receipt.json", + "sha256": "bd7dd9d9b4a5aea99e6a1be7fa5eac556e12502cb8d9ff405a7f3e98128c7be8", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-03/request.json", + "sha256": "02f99abd7de90ce1828c5e3dae984d52c0d33f006063779eccabce91c00e3b22", + "size": 2137, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-03/response.json", + "sha256": "be2e91b42eb2816d0b8b2a73f6cc28d2892258fed2faf30b3bfaddbfb0298a6b", + "size": 2635, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-03/verdict.json", + "sha256": "7dd195ad113a6e94d4b15cdd48c45409f5ab3c4425c78b57bdd004c27d3bf783", + "size": 708, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-02/receipt.json", + "sha256": "bd7dd9d9b4a5aea99e6a1be7fa5eac556e12502cb8d9ff405a7f3e98128c7be8", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-02/request.json", + "sha256": "02f99abd7de90ce1828c5e3dae984d52c0d33f006063779eccabce91c00e3b22", + "size": 2137, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-02/response.json", + "sha256": "069dc8d4a445c689fc6917da4688c271b53020b2336958dd9a8663533dfb720e", + "size": 6415, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-02/verdict.json", + "sha256": "224b19748101fd2859260ee6f722b49db6a7db6b4e143520233d15a53354570d", + "size": 1001, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-01/receipt.json", + "sha256": "bd7dd9d9b4a5aea99e6a1be7fa5eac556e12502cb8d9ff405a7f3e98128c7be8", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-01/request.json", + "sha256": "02f99abd7de90ce1828c5e3dae984d52c0d33f006063779eccabce91c00e3b22", + "size": 2137, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-01/response.json", + "sha256": "550722358b723225f17ddc5259ec89bf54751b4407106caa31f993c2a942bf7c", + "size": 2598, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/stale/run-01/verdict.json", + "sha256": "68f4537467b9fe8a61dcd7e8e69350440fca52b9e6bd006a1c02037876873643", + "size": 670, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-03/receipt.json", + "sha256": "e71c6a3343123bd65235600b0af545214bb48d868bd3c45b93554943d1f2df76", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-03/request.json", + "sha256": "652daaf9a37df1afe5c7dd68c10ce1143c0d78504c9d56a1a0a8b370857468cf", + "size": 2142, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-03/response.json", + "sha256": "f4c1c2a4f4f53930a09201e0a74b365332b64e8f31f80aa57283e608a6adc00c", + "size": 4849, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-03/verdict.json", + "sha256": "b14e4b1eda04556c912e35c28d810e914b3212aee2ca62571c4cc9522f210ee7", + "size": 574, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-02/receipt.json", + "sha256": "e71c6a3343123bd65235600b0af545214bb48d868bd3c45b93554943d1f2df76", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-02/request.json", + "sha256": "652daaf9a37df1afe5c7dd68c10ce1143c0d78504c9d56a1a0a8b370857468cf", + "size": 2142, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-02/response.json", + "sha256": "f866219b67cddb76d115189cf57e9b81552b03b6217a19e4a820a3abb8ee9428", + "size": 5529, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-02/verdict.json", + "sha256": "62d87e255459006f79403c3122bb32422a2f2ce9f9068c404d79289db24b34d8", + "size": 769, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-01/receipt.json", + "sha256": "e71c6a3343123bd65235600b0af545214bb48d868bd3c45b93554943d1f2df76", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-01/request.json", + "sha256": "652daaf9a37df1afe5c7dd68c10ce1143c0d78504c9d56a1a0a8b370857468cf", + "size": 2142, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-01/response.json", + "sha256": "4ff3875ec21038f92df7ad9154b839a315e337b86336b7ed019ce2897835bbb7", + "size": 5530, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/refused/run-01/verdict.json", + "sha256": "4ab1d2b70ce02e32f6485f99b0f6660d733ba5cb6ccf2b10fa78517c32b5e14d", + "size": 858, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-03/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-03/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-03/response.json", + "sha256": "76c839cc5bf9207940560b41baa557a7d9cc5d5437869f51bfb341afd36261cb", + "size": 5654, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-03/verdict.json", + "sha256": "80ce13d9a5e141e3a86b391e040ccac7382569569360039fa43def7f295b2a6d", + "size": 986, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-02/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-02/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-02/response.json", + "sha256": "e831b73c2dbe6b8d789091a125475d3b7c88a100108ae871ba8af764e84f237d", + "size": 4952, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-02/verdict.json", + "sha256": "56ab779ed284c0a17aab5cf8aa025f12fea8af6b115aef5f3cb8a239294157c1", + "size": 693, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-01/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-01/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-01/response.json", + "sha256": "4c7dfca82238b1a2a6fe87314c29ffb84ada92165904b93b9b7d53502cf57ea4", + "size": 5850, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/missing/run-01/verdict.json", + "sha256": "d828aca556aa1ef9a2ee0d4ad105de5f16fe20a0ac84fa4433e555b9e11f554f", + "size": 802, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-03/receipt.json", + "sha256": "72362019100548419b44894a6be464d690ef912fe06547622f30696f0c614267", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-03/request.json", + "sha256": "062a337cb81133fc3bcbc2f5250234cbcca014bf9b2f0643a9e8d5c434c3c278", + "size": 2205, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-03/response.json", + "sha256": "ab2ccad5265184c3df328f801cc1681a03bb2712d38fe12042665301ee43d090", + "size": 5563, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-03/verdict.json", + "sha256": "66ca7dae6d0ed0bec0679059d1d0cd9fa0c950d46294c1a12cd02582698a5918", + "size": 840, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-02/receipt.json", + "sha256": "72362019100548419b44894a6be464d690ef912fe06547622f30696f0c614267", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-02/request.json", + "sha256": "062a337cb81133fc3bcbc2f5250234cbcca014bf9b2f0643a9e8d5c434c3c278", + "size": 2205, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-02/response.json", + "sha256": "447b3c143626baab387abeb83ce1c9839d9e63d3e6c1024978a038de1fd37d16", + "size": 4859, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-02/verdict.json", + "sha256": "a5c349646fa2599a72be5cc519a12b68941ccf4dcd6516077abce50f981ee0fd", + "size": 599, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-01/receipt.json", + "sha256": "72362019100548419b44894a6be464d690ef912fe06547622f30696f0c614267", + "size": 257, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-01/request.json", + "sha256": "062a337cb81133fc3bcbc2f5250234cbcca014bf9b2f0643a9e8d5c434c3c278", + "size": 2205, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-01/response.json", + "sha256": "b3208a38cce45a0db327b83ab2df0677138e9eba550a5e179c99736b2345b58e", + "size": 5822, + "role": "degraded-evidence run" + }, + { + "path": "degraded-evidence/malformed/run-01/verdict.json", + "sha256": "bd958840d902a18a9938eb193e6269ce52c57a0b5974aad88b9651abaea20dc8", + "size": 897, + "role": "degraded-evidence run" + }, + { + "path": "scenario-a-billfold/baseline/run-03/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-03/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-03/response.json", + "sha256": "05ba6aba48c77ea78b071bb12bb676e70369342eefcb485024831e6f1284b1fe", + "size": 4702, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-03/verdict.json", + "sha256": "cc32070afcc39046e9a0ca44a8efc18323919f35e07d8e08dcd243cef8da51f4", + "size": 471, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-02/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-02/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-02/response.json", + "sha256": "7c582173cb48add196e3875756d6fb8485bff9a2d8bb5c37216381ed1c768d51", + "size": 5837, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-02/verdict.json", + "sha256": "b20edcd41733f30abb666841542ac9a2dd0583ee9ea606b42235a9371e844d51", + "size": 997, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-01/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-01/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-01/response.json", + "sha256": "b55895df661613323d1554ef042a3b8411acb654ab1e99227ef26672ea68942e", + "size": 5764, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/baseline/run-01/verdict.json", + "sha256": "1315de174b2a04d6c389c63805fcce39834734d11925cb649f9ca770a891910f", + "size": 945, + "role": "baseline run" + }, + { + "path": "scenario-a-billfold/perturbation/run-03/receipt.json", + "sha256": "8dc17d9f49e10d19755c12857f04d7ae2e16cb0b6e28d6eb99fc39456bd252a5", + "size": 257, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-03/request.json", + "sha256": "eeac2b866d167ae7659937920def12ece38b3132e78d05708bc4e6d6ff34182d", + "size": 2005, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-03/response.json", + "sha256": "95e1c3a807124557f021abd9864ea39c29ab84d43df441179ae45321120d0f0a", + "size": 2473, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-03/verdict.json", + "sha256": "e966af8e9cdcfbaf74509fcd62c93269454b5ac9fa8eae450f05ae350f4870cc", + "size": 558, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-02/receipt.json", + "sha256": "8dc17d9f49e10d19755c12857f04d7ae2e16cb0b6e28d6eb99fc39456bd252a5", + "size": 257, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-02/request.json", + "sha256": "eeac2b866d167ae7659937920def12ece38b3132e78d05708bc4e6d6ff34182d", + "size": 2005, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-02/response.json", + "sha256": "204ac93f5c139efe59b2641205f47ada64620ece38f097628cd03d0092d949cc", + "size": 5278, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-02/verdict.json", + "sha256": "3b9b1c47caff35dbdefedd9cad38d525882ba049298e4b54954547fe71a77c01", + "size": 893, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-01/receipt.json", + "sha256": "8dc17d9f49e10d19755c12857f04d7ae2e16cb0b6e28d6eb99fc39456bd252a5", + "size": 257, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-01/request.json", + "sha256": "eeac2b866d167ae7659937920def12ece38b3132e78d05708bc4e6d6ff34182d", + "size": 2005, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-01/response.json", + "sha256": "2de7b4bcb2910d7b6668b3031d3c90d13aa14b1f99f757b61ce18bd60310db59", + "size": 2443, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/perturbation/run-01/verdict.json", + "sha256": "87195b2caa588035f24433f45a6fdfbc5ef63e6923d9ba1fdc7665043669bd52", + "size": 528, + "role": "perturbation run" + }, + { + "path": "scenario-a-billfold/treatment/run-03/receipt.json", + "sha256": "7bebeb2a43ec2ea61fc3912c6d7b0f66136b89f2b56e54b803f60da38fbd1048", + "size": 257, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-03/request.json", + "sha256": "3f1d4e96ebf3c9f0b55ed72b21892322943dd9db1f4597d48372786a544c57fd", + "size": 2137, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-03/response.json", + "sha256": "7d3d30ad9c36ef6cfab7dd665d1540e40dae16de0677fc5709597ee4eaefe7af", + "size": 5309, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-03/verdict.json", + "sha256": "8e115237a5a3cba156cc685d4e52acb4ece0517369aef1fc932db853d546e33d", + "size": 950, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-02/receipt.json", + "sha256": "7bebeb2a43ec2ea61fc3912c6d7b0f66136b89f2b56e54b803f60da38fbd1048", + "size": 257, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-02/request.json", + "sha256": "3f1d4e96ebf3c9f0b55ed72b21892322943dd9db1f4597d48372786a544c57fd", + "size": 2137, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-02/response.json", + "sha256": "acbcc5563db76312c75ba7367c7d6960e0df8dd4c53d346415bca396fcf7cbbe", + "size": 7726, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-02/verdict.json", + "sha256": "3b87f115bd76937248d49910d1dd32e2f24d7394c3a70280fc37385c8e6f96ab", + "size": 1086, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-01/receipt.json", + "sha256": "7bebeb2a43ec2ea61fc3912c6d7b0f66136b89f2b56e54b803f60da38fbd1048", + "size": 257, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-01/request.json", + "sha256": "3f1d4e96ebf3c9f0b55ed72b21892322943dd9db1f4597d48372786a544c57fd", + "size": 2137, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-01/response.json", + "sha256": "a1838d14cc6884320fec27d0fc8c033dab6b83414cf35ed2fb747a4bdd31db29", + "size": 2626, + "role": "treatment run" + }, + { + "path": "scenario-a-billfold/treatment/run-01/verdict.json", + "sha256": "8dafee70b397a3de04c1fe06f1fa8243a6d8483cb959ebefccb74fe967c245c9", + "size": 701, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/baseline/run-03/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-03/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-03/response.json", + "sha256": "bd01c57e2d9c0cbad9ecfd60a7e61704ed24778bdf87f44ae35bc50d29616a00", + "size": 5614, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-03/verdict.json", + "sha256": "6032ca50426c3c96fabf46aee7bfdf5f2b234144b68791c52f6cc01be6c814ff", + "size": 693, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-02/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-02/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-02/response.json", + "sha256": "b80e23775b7f6a576e7b3033a7ea5381fadaffd2c2b2c7c5bb81572ae5880228", + "size": 17677, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-02/verdict.json", + "sha256": "55bf44c63e157e10442d0d8c51c10b928a0ae2c6101cbff8bdd5b84b7710ba0e", + "size": 967, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-01/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-01/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-01/response.json", + "sha256": "7059d19f4510d99210b657ff0efd56f73dc938c456a69db6834ac5b21127cdf8", + "size": 7810, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/baseline/run-01/verdict.json", + "sha256": "7d896af9602e0aaf2faaba49a960765307fc056edd0dc569c33526ef7b2b4ed7", + "size": 862, + "role": "baseline run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-03/receipt.json", + "sha256": "82c1a3f7c06ffab9117ea7590dc0c39f6cd9219afa44e98b46ea3a6580df266d", + "size": 250, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-03/request.json", + "sha256": "f4921476c7760d216cb71cad02dd67fbb305264b61e9ea96613e92577259f4f2", + "size": 2533, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-03/response.json", + "sha256": "9be040efcb034574e184cd513349e24a38e0d56e4ffa9aed6d018cb37eb41770", + "size": 7333, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-03/verdict.json", + "sha256": "4d98ec745b16bdc67844cb5ee75847793c902b6c708d62454a513b546f10eb41", + "size": 713, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-02/receipt.json", + "sha256": "82c1a3f7c06ffab9117ea7590dc0c39f6cd9219afa44e98b46ea3a6580df266d", + "size": 250, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-02/request.json", + "sha256": "f4921476c7760d216cb71cad02dd67fbb305264b61e9ea96613e92577259f4f2", + "size": 2533, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-02/response.json", + "sha256": "8c0c0543a5607ef48500235f5585810dcc4ce110ce12c6ef3906351196425275", + "size": 7394, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-02/verdict.json", + "sha256": "ddcccef1d1d23403a2416ee44e9bc0592c8e29441d402de1381c092d48db5fb4", + "size": 639, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-01/receipt.json", + "sha256": "82c1a3f7c06ffab9117ea7590dc0c39f6cd9219afa44e98b46ea3a6580df266d", + "size": 250, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-01/request.json", + "sha256": "f4921476c7760d216cb71cad02dd67fbb305264b61e9ea96613e92577259f4f2", + "size": 2533, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-01/response.json", + "sha256": "82e836016191860b2f2e7367072b46a305b150d35f34e2ee21a1d2b0dd0f4ba4", + "size": 7801, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/perturbation/run-01/verdict.json", + "sha256": "eccdbb4a8b0c13c3c7048771dca1092dcd4daaa213bf5aa0677de898c1d851f7", + "size": 578, + "role": "perturbation run" + }, + { + "path": "scenario-c-syncpack/treatment/run-03/receipt.json", + "sha256": "7355496ee1c6fd1acda390964675a742161673df5197612a1fd5ba637c768265", + "size": 250, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-03/request.json", + "sha256": "3182b2976f9aff9f2b827dfdf7c499d4616294c7c3870071e1ffc2997e7d70b9", + "size": 2607, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-03/response.json", + "sha256": "20ca00405f033cf6134d5dfcba73d946e0557454ed1ed21b65bb572c7b4cc865", + "size": 12345, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-03/verdict.json", + "sha256": "c2b0c864fe5b9f886b137194535244440a1a053e68f0c67285bce84ff831eeae", + "size": 1056, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-02/receipt.json", + "sha256": "7355496ee1c6fd1acda390964675a742161673df5197612a1fd5ba637c768265", + "size": 250, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-02/request.json", + "sha256": "3182b2976f9aff9f2b827dfdf7c499d4616294c7c3870071e1ffc2997e7d70b9", + "size": 2607, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-02/response.json", + "sha256": "c8c949f40fd6aaea20e87bc1bb3138ec15a862f243ab6c22def5f59db25fa000", + "size": 10172, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-02/verdict.json", + "sha256": "babdbaf8ca5cada7fc05597873d65de022184d9cb682ae426066376da41e3a62", + "size": 692, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-01/receipt.json", + "sha256": "7355496ee1c6fd1acda390964675a742161673df5197612a1fd5ba637c768265", + "size": 250, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-01/request.json", + "sha256": "3182b2976f9aff9f2b827dfdf7c499d4616294c7c3870071e1ffc2997e7d70b9", + "size": 2607, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-01/response.json", + "sha256": "2810dea8aeacc235c8216bb9a8f339342d62a5753ac8d0e4a1949d309ac682c7", + "size": 7614, + "role": "treatment run" + }, + { + "path": "scenario-c-syncpack/treatment/run-01/verdict.json", + "sha256": "4f37a59ee251b140cba9ebe3192abb6269dece9c52072ea7d3a584c3680bbbad", + "size": 774, + "role": "treatment run" + }, + { + "path": "protocol/run-degraded.mjs", + "sha256": "c11cf08ae2d9ec7da2ce656f4dad49fbb40b7a287f1923b86dd4fa0e2fd8de20", + "size": 3625, + "role": "runner script" + }, + { + "path": "protocol/run-scenarios-preflight.mjs", + "sha256": "b37781f5713d85a2ecf6138954affc8953a6f4332397385bfb8ff08f5d97b08c", + "size": 5803, + "role": "runner script" + }, + { + "path": "protocol/run-scenarios-v2.mjs", + "sha256": "97c68a5927f6c26095ef5bd0b559e6fc26c94e27bac63ba205849d79d79ae4cf", + "size": 8493, + "role": "runner script" + }, + { + "path": "protocol/diffs/scenario-a-billfold-baseline.diff", + "sha256": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "size": 340, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-a-billfold-perturbation.txt", + "sha256": "fe73f8c7eedc40856fcc3c1cc4cd2a699fdb36c067825fcbf74652a2da6f96bc", + "size": 473, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-a-billfold-treatment.txt", + "sha256": "ce24a71a068ac67c180c2b00ba5d5f02dd596e6ce2f8fe43febb4fba73548ac1", + "size": 603, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-b-integrations-baseline.diff", + "sha256": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "size": 292, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-b-integrations-perturbation.txt", + "sha256": "f161fdffb52de8a233b3282afdedd82d27ccf9657f24cb507a53be4e3cf4962e", + "size": 480, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-b-integrations-treatment.txt", + "sha256": "98f68df92d87c4201d0f3c0884247db0bc3aba09a1529d68d139ef6820e33aaa", + "size": 555, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-c-syncpack-baseline.diff", + "sha256": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "size": 743, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-c-syncpack-perturbation.txt", + "sha256": "89dc60fc80acc5f08f48720dad393b00cbdee944278fc1031525f9e8492b451f", + "size": 988, + "role": "registered diff/evidence payload" + }, + { + "path": "protocol/diffs/scenario-c-syncpack-treatment.txt", + "sha256": "6401ed15eb71d65db978836ddd932895a875a3b33fd7b8a75bca50688a909864", + "size": 1061, + "role": "registered diff/evidence payload" + }, + { + "path": "preflight-rejected/all-results.json", + "sha256": "bbe228328c57ef0803020b9d7cc657b7a77123c8262a9a2e417634569e34a508", + "size": 22573, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-03/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-03/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-03/response.json", + "sha256": "d97c78d3772b8cabc6dc0328c457bfc84a0b2d7ad66f62a966eb5d59c23f27a4", + "size": 5028, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-03/verdict.json", + "sha256": "78728b9af8fa57e8d4891417afec444a78a3ed6a6417a58172e4c8645ce9afe3", + "size": 715, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-02/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-02/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-02/response.json", + "sha256": "b3f29985527177672ee7001ae4f81e276d6739743559b584758919238430bc5c", + "size": 5475, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-02/verdict.json", + "sha256": "b2ab97221548b12491b2db84b0b46aeb4f082600583867dafd5fdb327144c30d", + "size": 793, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-01/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-01/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-01/response.json", + "sha256": "f2cd5aaa097ed0656de05f0d4197f7a2a4344b0ffe44beaee73ce26e61b57e93", + "size": 6075, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/baseline/run-01/verdict.json", + "sha256": "c885653d07c513aad37bb6598727847c44e100ca7f480d939984313db3589625", + "size": 770, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-03/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-03/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-03/response.json", + "sha256": "52c67254bbb9e530b0775e5d417b420e8ab4eafcf74c65fd8475961d2dd03168", + "size": 4987, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-03/verdict.json", + "sha256": "db28e580de040298823bcc8506c7724573f3c81da0be743d3e480b2b69a713bc", + "size": 706, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-02/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-02/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-02/response.json", + "sha256": "5ba4bbcf9ce45650aaf17d78a0266bedad9d75e397e63a2189389ec867951a7a", + "size": 6376, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-02/verdict.json", + "sha256": "e7b1ad9800db4f2c32f3259503845e30453987fcc11a6a90a17227830b6e5509", + "size": 785, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-01/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-01/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-01/response.json", + "sha256": "b4b9698cf40158cdd1b8f65de9cc90c31c1637e1491d41c1a19a76e1dfd32d00", + "size": 5755, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/perturbation/run-01/verdict.json", + "sha256": "64022403a004ce6dae3bf7f7d5485f78354eddb20da5d2e4058fa71373c26bdf", + "size": 825, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-03/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-03/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-03/response.json", + "sha256": "7e2dc690ee496c4f92a960f10595a5a29818701d863624e6c3ae7e2f6292cb52", + "size": 4778, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-03/verdict.json", + "sha256": "1bf996a4348d357d16729923fb4a80d2ced00beb9c4629b73a5e95a5465be065", + "size": 669, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-02/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-02/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-02/response.json", + "sha256": "13f413d16af712767bf9345b737350a6fc4f979fb1dbe2306b2e9f6dc416de20", + "size": 5959, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-02/verdict.json", + "sha256": "660fce95c6cdf90726c79320fd9dfe95134a1e5c63ba8ba4d1df00cdff5a7b55", + "size": 857, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-01/receipt.json", + "sha256": "ba94ac24c1ac9b33a409cb4c7c7abd55c9c9ea0e2058b06fd76766f275376412", + "size": 257, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-01/request.json", + "sha256": "c56c65c1a992b3930d95435274dea31da7bdb69b7ff01d7d80c6aa23025e2c97", + "size": 1870, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-01/response.json", + "sha256": "7710b42c5186e73c1321d23396ae0b64ec880339c2930258175d858f6faad6cb", + "size": 6325, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-a-billfold/treatment/run-01/verdict.json", + "sha256": "1458b2e88511b79ad29846bd6bea4a6243828600c913bf7570ccbb6b5c29a05d", + "size": 961, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-03/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-03/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-03/response.json", + "sha256": "44af34d156fb92066cc0b841d5ceed4dc0b86db8c24963f5c1c56ae97cbed035", + "size": 6443, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-03/verdict.json", + "sha256": "8cc468369b7a9e4036617817d6bae7dbd76b74ae1bb06f2ece40d1db28ce3428", + "size": 597, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-02/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-02/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-02/response.json", + "sha256": "bce8d44505edd343b57877dc39a14404ca55047fc6c71d816b99b0c974d2f28d", + "size": 6147, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-02/verdict.json", + "sha256": "09fb96e9bc60b6331435615ecd4ee630a1e732c73279920dbec62ef3fb5e3552", + "size": 693, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-01/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-01/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-01/response.json", + "sha256": "e1e6312d9876d1229df9bd23686d981747e9aa5d7c76536b02ee692be0814c46", + "size": 7874, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/baseline/run-01/verdict.json", + "sha256": "c3945282a48df7beebf2ec7d79f33d130fd6ca454185db0e253549a5334095ca", + "size": 665, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-03/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-03/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-03/response.json", + "sha256": "09f8f06f8f4979a13e4865546e63811bde6748ac5925b6ba72cb226c67f24e29", + "size": 7480, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-03/verdict.json", + "sha256": "8f92d9251eaf64482e3fafec5b1f105f8454a170311d6c8cf1ccd4c28de140ec", + "size": 606, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-02/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-02/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-02/response.json", + "sha256": "3cc108e5f6ff668ae3bc82e68e3eb5075ef1e7b78d5b15fea2018c4fbbb26511", + "size": 7647, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-02/verdict.json", + "sha256": "57b6b84f28f31a6f0264963548dcfad47bd1b6de590ee2516a644475adce8dbc", + "size": 718, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-01/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-01/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-01/response.json", + "sha256": "ae126977abb9bbec357bf0cbd5726e93f5f817bd9f5cccf18e93d83a61690d53", + "size": 6531, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/perturbation/run-01/verdict.json", + "sha256": "da46dc4b005ea4b2e959cbafa5db98da2ed6d5f0621da49cf2edb59a3dd6ff19", + "size": 780, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-03/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-03/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-03/response.json", + "sha256": "ba542097d3e7189ba06cd09d62c5ae4b967997085db0c254ea9dca35971f5c32", + "size": 6930, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-03/verdict.json", + "sha256": "2399cb5596387efcefae3d257ba0cfe69954949ea3569cbfdd076b004052ebc3", + "size": 502, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-02/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-02/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-02/response.json", + "sha256": "a8b937d030a13a6cdb29eafd2268f626cfe9e46f8ed9358d4f002007c1299a43", + "size": 7505, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-02/verdict.json", + "sha256": "97790419025a829718e5c458be2b396752ad5adb4e347cb70f953e98edb5647b", + "size": 648, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-01/receipt.json", + "sha256": "aeb792e7c8ea58716fbd7ee1c45d661b1bd06599dc30b886546c7fa965af1061", + "size": 250, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-01/request.json", + "sha256": "d0d2f98b9718651c004531491cfa875547a5a031f19f6edb6a1f54cbd48405d3", + "size": 2284, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-01/response.json", + "sha256": "6dabc9c61d3e08355a9482af9125539955d39e00c6041329dc9c9ceb3d88016d", + "size": 6369, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-c-syncpack/treatment/run-01/verdict.json", + "sha256": "9c3ca617b8607b8423106c9a414acaf04682efe62d788d0a859fe7a271f19d64", + "size": 610, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-03/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-03/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-03/response.json", + "sha256": "ce79ef594ecd7c60d0c57d03b0909274dff64e69ee6e6d2ac57dcccdec0922ea", + "size": 4831, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-03/verdict.json", + "sha256": "a14d7fc2d82e1868837ed6550ca8a352b0e5c8c0c7c8e859c4ac3d908c606191", + "size": 695, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-02/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-02/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-02/response.json", + "sha256": "984e245d6134bea7134d8cb1c8a7aa2db5a6031cd5e521fc0c932000e5479ac7", + "size": 5652, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-02/verdict.json", + "sha256": "b8d38a20d55cfe3313810476904ccdad5623a75ec7f4f520f3da0817841e422b", + "size": 882, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-01/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-01/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-01/response.json", + "sha256": "33af7a32e6cf76dbee9126d6e8bf1f4be19299fa1c3141e4003a548af7262b84", + "size": 4919, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/baseline/run-01/verdict.json", + "sha256": "6f73f982726ce42aa3136afa37d4218a1b31f80cc0aca33056f32257f501e5b9", + "size": 706, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-03/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-03/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-03/response.json", + "sha256": "05fe6558a97d04d2588fd9085fbb0e6cd0c201bddebc19b3257b0a231d706dbb", + "size": 5115, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-03/verdict.json", + "sha256": "e0d18053944a6085ea7c875aa428c1f2a8c434351e4eef386851d7a2636e7b47", + "size": 698, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-02/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-02/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-02/response.json", + "sha256": "b695409057f5f804a46c7f4d768a321c71b8fc64e37e51c16769545b83f9697e", + "size": 5222, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-02/verdict.json", + "sha256": "4938616762236339b3ee8583eef1203f618a232f8e8f83e5aec275cbf60f64c9", + "size": 740, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-01/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-01/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-01/response.json", + "sha256": "6354b8c6198506bba2490bcaad91394d1497a69a85204381225c2d4fa0713495", + "size": 5153, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/perturbation/run-01/verdict.json", + "sha256": "d19b7b7d91824a9cb7b97b10445299d28c4eead9aca638dd7f4d711dd980a442", + "size": 641, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-03/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-03/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-03/response.json", + "sha256": "39a61c33eae856dc02d8e160c94fd6750ebb8dda38ab1c895a0239a85d698db4", + "size": 6215, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-03/verdict.json", + "sha256": "aa25f668c41848e6ed23567e8432d91da44ba48a878b45232e4820ddc5916827", + "size": 744, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-02/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-02/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-02/response.json", + "sha256": "4cc1bee3fcfc4d17b990f50bc3ea4e2b35cf3c1f2dddd176176cc81f6011a14f", + "size": 5164, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-02/verdict.json", + "sha256": "fdb64acabb1b45db6b4d632d02b69e60f376489ea62f1cb72bd7649d015e6764", + "size": 769, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-01/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-01/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-01/response.json", + "sha256": "b24eb49d6084939ed347214ce7194cf8dfb229efd3fd3fbe45d9d8e31f9775ef", + "size": 4842, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "preflight-rejected/scenario-b-integrations/treatment/run-01/verdict.json", + "sha256": "29e1af74145390225c9c6f64dde0ad56852a27cbaf00ab2c62dadd77d93fc08d", + "size": 662, + "role": "preflight/rejected run (evidence not delivered)" + }, + { + "path": "scenario-b-integrations/baseline/run-03/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-03/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-03/response.json", + "sha256": "c975520ce15ea087a70095763248d12b81c7d1c6f1761247a70d9058ec45af87", + "size": 4929, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-03/verdict.json", + "sha256": "e3c27d1c60c63c7c8ebae816cfa94a9266cb1d9571c3f4a826687f1e530dc22f", + "size": 430, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-02/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-02/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-02/response.json", + "sha256": "b9847df7fb1cf5bec6647dfc303b4cd25fc526f289e4e12ecdb0d118eb5158cf", + "size": 6187, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-02/verdict.json", + "sha256": "e271c66fb5fb39230df1ea97f5405f14e37eace3723218574605f00f4547f756", + "size": 1004, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-01/receipt.json", + "sha256": "2269b561ecc3768a039d47559484931a7c681c756ccb21001e5cf7775b173ff7", + "size": 260, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-01/request.json", + "sha256": "581ef6565439b3bd5bc8462ee046efe5b68255a6c6d05f8bf5443c867d41e805", + "size": 1822, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-01/response.json", + "sha256": "f6feb30b951e826c5503020e18685283da0f8d22fd93565d9bc24c4ed7d163e0", + "size": 4838, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/baseline/run-01/verdict.json", + "sha256": "230279b09bc44c6a84020568f55d0a1daaf33f4eed9537ac3508bd8f308226ab", + "size": 678, + "role": "baseline run" + }, + { + "path": "scenario-b-integrations/perturbation/run-03/receipt.json", + "sha256": "a468592898844b8be59c4a55309487f682e4dcfe19d0a89e7b7fdfcabde28ecd", + "size": 260, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-03/request.json", + "sha256": "17d37289c1216f49f93f3a5a93f2af65a4e9e5699ed28a43af35cb4733c3bda0", + "size": 2013, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-03/response.json", + "sha256": "6ece8b68418c8d0d697ffbe7b90fdc0763e9cb622472ffd6d21341fca1aeef37", + "size": 4557, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-03/verdict.json", + "sha256": "79de3066dd0393cfd0e2fcea15556cb007c3f38095f1685f2af7abc87c627d15", + "size": 673, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-02/receipt.json", + "sha256": "a468592898844b8be59c4a55309487f682e4dcfe19d0a89e7b7fdfcabde28ecd", + "size": 260, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-02/request.json", + "sha256": "17d37289c1216f49f93f3a5a93f2af65a4e9e5699ed28a43af35cb4733c3bda0", + "size": 2013, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-02/response.json", + "sha256": "7e8477341733fd9fcd05aae467151a6e6db78f2b82a8ea9f25e994f0ad0e6c6b", + "size": 5216, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-02/verdict.json", + "sha256": "efd07cda9801b162fb5e4038fa44243aa7fc58b802947714e6b5530ee421493a", + "size": 701, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-01/receipt.json", + "sha256": "a468592898844b8be59c4a55309487f682e4dcfe19d0a89e7b7fdfcabde28ecd", + "size": 260, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-01/request.json", + "sha256": "17d37289c1216f49f93f3a5a93f2af65a4e9e5699ed28a43af35cb4733c3bda0", + "size": 2013, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-01/response.json", + "sha256": "86028ed4d4df333d83c0a763a2712c97fed7b6f61bec4c59d17e74d7ed3dc6ac", + "size": 5386, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/perturbation/run-01/verdict.json", + "sha256": "9156cd09cdae4a2e698ad56b1fca8db8a851436826163c9749b25aa5e9681b49", + "size": 703, + "role": "perturbation run" + }, + { + "path": "scenario-b-integrations/treatment/run-03/receipt.json", + "sha256": "02757ef0bee092c3b07503ff081e71606cdc290ca1b63fdd553bfcea6c674ec2", + "size": 260, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-03/request.json", + "sha256": "25b5f6a047a23f85199ae009c83594c4ef5d9a5e050366425dd3e123b3b96760", + "size": 2089, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-03/response.json", + "sha256": "fb9b0d9afd12ccb18c96a1e74c6faf7e93481a43ed010d56c49f440828de881c", + "size": 5198, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-03/verdict.json", + "sha256": "03a94ebc9ed6ae5f65efa838f1194478670c9a94091d1c565d7a11726d4f0382", + "size": 704, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-02/receipt.json", + "sha256": "02757ef0bee092c3b07503ff081e71606cdc290ca1b63fdd553bfcea6c674ec2", + "size": 260, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-02/request.json", + "sha256": "25b5f6a047a23f85199ae009c83594c4ef5d9a5e050366425dd3e123b3b96760", + "size": 2089, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-02/response.json", + "sha256": "57679f9c30745a1ea2d444c2b90ca6f6d9b9a5e92faca8436d8696789367618b", + "size": 6667, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-02/verdict.json", + "sha256": "a224aedc9204ff3ced75486202d069e9cde3f3422e3f6082daaae6f9429d377a", + "size": 822, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-01/receipt.json", + "sha256": "02757ef0bee092c3b07503ff081e71606cdc290ca1b63fdd553bfcea6c674ec2", + "size": 260, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-01/request.json", + "sha256": "25b5f6a047a23f85199ae009c83594c4ef5d9a5e050366425dd3e123b3b96760", + "size": 2089, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-01/response.json", + "sha256": "8aec33c2086c1c7a4d459886ad50aecb13746022c7d02184b119d5e1d1100367", + "size": 5435, + "role": "treatment run" + }, + { + "path": "scenario-b-integrations/treatment/run-01/verdict.json", + "sha256": "5b0e30374f416acb8b45e26acb0dcd026d1cb1aa3e4b870bcf0a0f35f24caa60", + "size": 737, + "role": "treatment run" + } + ], + "fileCount": 281, + "totalSize": 687929 +} diff --git a/docs/evidence/meta-362/RECEIPT.md b/docs/evidence/meta-362/RECEIPT.md new file mode 100644 index 0000000..646c368 --- /dev/null +++ b/docs/evidence/meta-362/RECEIPT.md @@ -0,0 +1,173 @@ +# M2A Causal-Review Experiment Receipt + +**Date:** 2026-08-21 (UTC). **Experiment:** META-362 / M2A Causal Review Proof. +**Preregistration:** [META-367](https://linear.app/marcelle-labs/issue/META-367). +**Disposition:** [META-372](https://linear.app/marcelle-labs/issue/META-372) — NARROW. + +> This directory is an experiment receipt and evidence packet. It is not +> normative workspace.json specification semantics, conformance requirements, +> an adoption claim, or a claim that the observed effect generalizes beyond +> the registered scenarios. + +## What was tested + +Whether descriptive workspace.json co-change evidence, injected into an +existing AI review workflow's input, causally changes the reviewer's +investigation behavior. + +## Review instrument + +| | | +| -- | -- | +| Repository | `workspacejson/integrations` | +| Package | `@workspacejson/codex-mcp@0.1.9` | +| Git SHA | `3aa4531286ba8ebf8fa65bda3ac065fd66a86dab` | +| Function | `reviewDiff` (embeds evidence into diff text input) | +| Filesystem access | **None.** The reviewer can only reason about what is in the input. | + +## Model and provider + +| | | +| -- | -- | +| Provider | OpenRouter | +| Model | `openai/gpt-5.6-terra` | +| Endpoint | `https://openrouter.ai/api/v1/responses` | +| Reasoning effort | `high` | + +## Scenarios + +Three scenarios were preregistered in META-367 before any treatment output +was inspected: + +| Scenario | Repository | Basis SHA | Changed file | Co-change partner | Support | +| -- | -- | -- | -- | -- | -- | +| A | `workspace-json/billfold` | `0ff147b0` | `src/routes/checkout.ts` | `src/webhooks/stripe.ts` | 6 | +| B | `workspacejson/integrations` | `3aa45312` | `src/services/workspace.ts` | `src/tools/workspace.ts` | 4 | +| C | `JamieMason/syncpack` | `958d3068` | `src/instance.rs` | `src/version_group.rs` | 17 | + +Each scenario ran 3 arms (baseline, treatment, perturbation) x 3 runs = 9 +runs per scenario, 27 accepted runs total. + +## Results + +### Causal scenarios: 1/3 PASS, 2/3 FAIL + +| Scenario | Classification | Treatment partner mentions | Baseline partner mentions | Perturbation partner mentions | +| -- | -- | -- | -- | -- | +| A | **PASS** | 3/3 | 0/3 | 0/3 | +| B | **FAIL** | 0/3 | 0/3 | 0/3 | +| C | **FAIL** | 0/3 | 0/3 | 0/3 | + +### Scenario A (PASS) + +Treatment runs investigated `src/webhooks/stripe.ts` and identified the +idempotency-key separator compatibility risk in 3/3 runs. Baseline runs +(0/3) did not mention `stripe.ts`. Perturbation runs (evidence removed, +0/3) did not mention `stripe.ts`. + +The underlying consequence was independently verified against repository +source: `src/webhooks/stripe.ts:7-8` parses the idempotency key by +splitting on `:` (`String.fromCharCode(58)`). Changing the separator to +`|` without updating `stripe.ts` would break the webhook parser. + +**Important limitation:** The reviewer did not open `stripe.ts`. It has no +filesystem access (per META-366). One run explicitly reported the partner +file as a gap because it was not included in the diff. The causal chain +demonstrated is: + +``` +workspace.json evidence + ↓ +changes reviewer investigation target (surfaces specific file/risk) + ↓ +independent repository source inspection confirms consequence +``` + +Not: + +``` +workspace.json evidence + ↓ +reviewer autonomously inspects external file + ↓ +reviewer verifies material defect +``` + +### Scenario B (FAIL) + +Treatment runs did not investigate `src/tools/workspace.ts` in 0/3 runs. +The reviewer focused on the diff's truncation behavior. The diff modified +a function that returns co-change partners, and the evidence provided +co-change partner data. This self-referential topic overlap is a +**hypothesis** for why the evidence was not acted upon. It was not +experimentally established as a boundary condition. + +### Scenario C (FAIL) + +Treatment runs did not investigate `src/version_group.rs` in 0/3 runs. +The reviewer focused on JSON Pointer escaping issues in the diff itself. +The diff contained a salient intrinsic issue that may have captured +reviewer attention. This attentional crowd-out is a **hypothesis** for +why the evidence was not acted upon. It was not experimentally +established as a boundary condition. + +### Degraded-evidence controls: 4/4 PASS + +| Condition | False-safe? | Uncertainty visible? | +| -- | -- | -- | +| Missing | No | Yes (3/3 runs) | +| Stale | No | Yes (2/3 runs) | +| Malformed | No | Yes (3/3 runs) | +| Refused | No | Yes (2/3 runs) | + +Zero degraded cases converted missing/stale/malformed/refused evidence +into an affirmative safety conclusion. 12 runs total. + +## What was demonstrated + +1. In one controlled fixture (Scenario A), descriptive co-change evidence + causally changed an AI reviewer's investigation set: 3/3 treatment runs + investigated a historically related file versus 0/3 baseline and 0/3 + perturbation. +2. The effect did not replicate in the selected first-party (Scenario B) + or unrelated external (Scenario C) scenarios. +3. Degraded-evidence semantics are sound: missing, stale, malformed, and + refused evidence produced uncertainty rather than false-safe + conclusions across all 12 runs. + +## What was not demonstrated + +1. The effect does not generalize across the three selected scenarios. + No claim is made that co-change evidence reliably improves reviews. +2. The explanations for why Scenarios B and C failed (self-referential + topic overlap, attentional crowd-out) are hypotheses arising from the + observed failures, not experimentally established boundary conditions. +3. The reviewer did not independently inspect partner files. It has no + filesystem access. The evidence changed what the reviewer surfaced + for investigation; verification was done separately against repository + source. +4. No general review-quality, safety, adoption, or conformance claim + follows from this experiment. + +## Preflight/rejected run + +An earlier run (`preflight-rejected/`) was executed before the evidence +injection bug was discovered. In that run, the `reviewDiff` function did +not deliver the workspace intelligence text to the model. These artifacts +are preserved as a labeled rejected/preflight result and are not counted +in the accepted experiment. + +## File inventory + +See `MANIFEST.json` for a mechanical enumeration of every file in this +directory with SHA-256, size, and role. See `REDACTIONS.md` for the +redaction log. + +## Related work + +META-323 (file-centric co-change retrieval) found that the global top-N +leaderboard was hiding potentially consumer-relevant source relationships: +14-43 additional relationships in syncpack examples and 50 additional +relationships for the Polylith target. File-centric retrieval exposed +these without changing the mining evidence itself. This is a separate +result from the causal-review experiment but is strategically related. diff --git a/docs/evidence/meta-362/REDACTIONS.md b/docs/evidence/meta-362/REDACTIONS.md new file mode 100644 index 0000000..77c58f6 --- /dev/null +++ b/docs/evidence/meta-362/REDACTIONS.md @@ -0,0 +1,43 @@ +# Redactions + +This file records every redaction applied to raw experiment artifacts before +committing them to this evidence directory. + +## Redaction policy + +Artifacts were copied byte-for-byte from `/tmp/meta323/` except where they +contained local machine paths or import paths. No credentials, authorization +headers, API keys, Doppler values, or secret environment values were found +in any artifact. + +## Redactions applied + +### verdict.json and all-results.json files + +| Source artifact pattern | Field redacted | Replacement | Reason | +| -- | -- | -- | -- | +| `scenario-*/{arm}/run-*/verdict.json` | `artifactDir` | `` | Local machine path | +| `degraded-evidence/*/run-*/verdict.json` | `artifactDir` | `` | Local machine path | +| `preflight-rejected/scenario-*/{arm}/run-*/verdict.json` | `artifactDir` | `` | Local machine path | +| `scenario-all-results.json` | `artifactDir` (nested) | `` | Local machine path | +| `degraded-all-results.json` | `artifactDir` (nested) | `` | Local machine path | +| `preflight-rejected/all-results.json` | `artifactDir` (nested) | `` | Local machine path | + +### Protocol scripts + +| Source file | Redacted content | Replacement | Reason | +| -- | -- | -- | -- | +| `protocol/run-scenarios-v2.mjs` | `/Users/user1/dev/.../reviewer.js` import path | `/reviewer.js` | Local machine path | +| `protocol/run-scenarios-v2.mjs` | `/tmp/meta323/scenario-results-v2` output path | `/scenario-results` | Local machine path | +| `protocol/run-degraded.mjs` | `/Users/user1/dev/.../reviewer.js` import path | `/reviewer.js` | Local machine path | +| `protocol/run-degraded.mjs` | `/tmp/meta323/degraded-results` output path | `/degraded-results` | Local machine path | +| `protocol/run-scenarios-preflight.mjs` | Same import and output path redactions as above | Same replacements | Local machine path | + +## Items checked and found clean + +The following were checked and found to contain no sensitive material: + +- `request.json` files: no Authorization headers, no API keys, no Bearer tokens +- `response.json` files: no API keys, no credentials +- `receipt.json` files: no credentials, no sensitive paths +- `protocol/*.mjs` files: reference `process.env.OPENROUTER_API_KEY` but do not contain the key value diff --git a/docs/evidence/meta-362/degraded-all-results.json b/docs/evidence/meta-362/degraded-all-results.json new file mode 100644 index 0000000..e6c0696 --- /dev/null +++ b/docs/evidence/meta-362/degraded-all-results.json @@ -0,0 +1,220 @@ +{ + "missing": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the checkout idempotency-key format invalidates keys created before deployment. Retries of an existing order attempt after rollout will use a different key and may bypass prior idempotency protection, risking duplicate checkout/payment creation." + ], + "evidence": [ + "`idempotencyKey` changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}` with no compatibility lookup or migration shown." + ], + "checked": [ + "Idempotency-key continuity across the proposed format change." + ], + "gaps": [ + "No evidence of a rollout strategy, dual-read compatibility, or confirmation that existing idempotency records are not relied on across deployments." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format will cause retries for attempts created before deployment to use a different key, potentially creating duplicate checkout/payment operations." + ], + "evidence": [ + "The key changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}` with no compatibility lookup or migration shown." + ], + "checked": [ + "Idempotency-key construction in src/routes/checkout.ts." + ], + "gaps": [ + "No evidence of a backward-compatible rollout, dual-key lookup, or confirmation that prior keys cannot be retried after deployment." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format for an existing checkout attempt can cause retries after deployment to use a different key, defeating prior idempotency and potentially creating duplicate charges/orders." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility handling shown." + ], + "checked": [ + "Derived idempotency-key stability across deployments", + "Potential ambiguity in delimiter-based key composition" + ], + "gaps": [ + "No evidence of a migration/dual-read strategy, key versioning, or confirmation that old keys are not persisted or sent to an external payment provider.", + "No evidence that orderId and attemptNumber cannot contain the selected delimiter; delimiter substitution alone does not make concatenated keys unambiguous." + ], + "artifactDir": "" + } + ], + "stale": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff only changes the delimiter used to construct the checkout idempotency key from ':' to '|'.", + "No supplied evidence indicates a required synchronized change in the stale co-change partner src/utils/format.ts." + ], + "checked": [ + "Reviewed the proposed change in src/routes/checkout.ts.", + "Considered the provided workspace co-change context." + ], + "gaps": [ + "No evidence is provided about downstream consumers, persisted idempotency-key compatibility, or delimiter constraints; this is a gap, not approval." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the delimiter changes every generated idempotency key. Retries of an order attempt that was previously submitted with `orderId:attemptNumber` will use a new key and may be treated as a new checkout/charge rather than an idempotent retry." + ], + "evidence": [ + "The diff changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` in `createCheckout`." + ], + "checked": [ + "Idempotency-key construction in the supplied diff.", + "Provided co-change context." + ], + "gaps": [ + "No compatibility, migration, or dual-read/dual-write handling is shown for existing idempotency keys.", + "The supplied diff does not show downstream idempotency-provider behavior or retry/rollout handling.", + "The listed co-change evidence for `src/utils/format.ts` is stale and does not establish whether a related update is needed." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter in src/routes/checkout.ts.", + "Workspace context identifies src/utils/format.ts as a stale, low-support co-change partner (2 supporting changes; last observed 180 days ago), which is insufficient to establish a required accompanying change." + ], + "checked": [ + "Scoped changed file: src/routes/checkout.ts", + "Provided workspace co-change context" + ], + "gaps": [ + "No tests, idempotency-key format contract, or downstream consumer evidence was provided to confirm that changing ':' to '|' is compatible." + ], + "artifactDir": "" + } + ], + "malformed": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format causes retries of an existing order attempt after deployment to use a new key, potentially bypassing provider-side idempotency and creating a duplicate checkout/payment. No compatibility or migration handling is shown." + ], + "evidence": [ + "The only behavioral change replaces `${orderId}:${attemptNumber}` with `${orderId}|${attemptNumber}`." + ], + "checked": [ + "Reviewed the supplied diff in src/routes/checkout.ts.", + "Treated malformed co-change-partner context as unavailable evidence." + ], + "gaps": [ + "No evidence that previously generated keys are not persisted, retried, parsed, or used by payment/webhook systems.", + "No evidence that orderId cannot contain `|` or that all consumers accept the new key format." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff only changes the idempotency-key delimiter from ':' to '|' in src/routes/checkout.ts." + ], + "checked": [ + "Reviewed the supplied checkout.ts diff for directly evident correctness issues." + ], + "gaps": [ + "Co-change partner context is unavailable because the supplied workspace-intelligence payload is malformed.", + "No evidence is provided that downstream payment/webhook systems accept or do not depend on the prior idempotency-key format." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for the same order/attempt, so retries spanning deployment versions can bypass prior idempotency records and potentially create duplicate checkout/payment operations." + ], + "evidence": [ + "Diff changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` without compatibility handling or migration." + ], + "checked": [ + "Idempotency-key construction in src/routes/checkout.ts", + "Provided workspace-intelligence context" + ], + "gaps": [ + "Co-change partner evidence for src/webhooks/stripe.ts is malformed and unavailable; downstream parsing, persistence, and migration/rollout behavior cannot be verified." + ], + "artifactDir": "" + } + ], + "refused": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format without a compatibility/migration path can cause retries of orders created before deployment to use a new key and bypass existing idempotency records, risking duplicate checkout processing or charges." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` in src/routes/checkout.ts." + ], + "checked": [ + "Reviewed the supplied checkout idempotency-key diff.", + "Workspace co-change intelligence was unavailable because workspace.json was not found." + ], + "gaps": [ + "No evidence of a dual-read/legacy-key fallback, idempotency-store migration, or confirmation that existing keys are safely invalidated." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format will cause retries of checkouts created before deployment to use a different key, bypassing prior idempotency records and potentially creating duplicate charges/orders. Preserve or dual-read the previous format during a transition." + ], + "evidence": [ + "The only functional change replaces `${request.orderId}:${request.attemptNumber}` with `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Reviewed the supplied diff for idempotency behavior." + ], + "gaps": [ + "workspace.json is unavailable, so co-change, key-format contract, and rollout/migration evidence could not be checked." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the delimiter used to construct the idempotency key; both orderId and attemptNumber remain included." + ], + "checked": [ + "Reviewed the supplied checkout.ts diff for key-component retention and obvious construction errors." + ], + "gaps": [ + "No workspace.json or co-change/consumer evidence was available to verify whether the serialized idempotency-key format is externally persisted or contract-sensitive." + ], + "artifactDir": "" + } + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-01/receipt.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/receipt.json new file mode 100644 index 0000000..4171b87 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "36aaf68d1eebaf75ba067586a2f94b837ad6d8547b6cea5cd859668ce2561076", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-01/request.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/request.json new file mode 100644 index 0000000..4754727 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners: [PARSE ERROR: malformed JSON payload]\n raw: {\"partners\":[{\"file\":\"src/webhooks/stripe.ts\",\"support\":\"ERROR: type mismatch\n expected number, got string\"}]}\n note: evidence file could not be parsed", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-01/response.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/response.json new file mode 100644 index 0000000..5ce5eb6 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/response.json @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283784-3faeTMPJ17B6KzwBb9ZF","object":"response","created_at":1787283784,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283789,"output":[{"id":"rs_077aa6b056a897dc016a87c94951c487d185e2d5d8fe186a11","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8lLnTPZp4OvCfciQospg66sXYNm_HCp3hNndKDvFMdl9cCbYR6EOlrXog8cJCjkhoCR06aNsgMEAVSrYYtCAqf5eDq581eukTqZ903EJXv0nzzSXoD1whrtYv7JSEkwuB_53r3IPVItBUwGM1uRfE_dlwMax-FWd7SImsHfCFrvMxwvBs1fsJsHDJI5rqOv3BjlyYcYXfTKt_vCY9I4suF9a2U5dj6yJfxZWhHpCKnCbGuTJvvIhFU-qKz5Iq9ja45pAOvrLt9CaBSjTvmvsutMRhly3gGe6B-dLaLb4nw5UhBT0iAc_f8ZjJ6pMWruVO2wr-O64NjpaZjXvfAzqbEPzfXVSBQmpqvFStEwWuobIbsqed9IYw5PqX-f9eZUp6aEF3NcO1PQai5No3V-ZMZ14EwXu6Z2IClk_8UAr007gV8JUgcJIj_CKagxBp_PNAkJugn8NXu3HgeKHrVWA6LsnhZ4CWTzx14xHamfdixWEYh7ov3IVrVSYT0hemmzPDj3G_dq636TLHjIyrB-Ba6I8FrGFzYAndnKpnmDczV4lzRRNOgSukcq5cfbLj4GlSWbvvnti6xMqXjYhkAyvnStmU8axtR9A4SmBYfZXKB98NJ82WoEJM6tKtNGd3Yc8Sz0JZgbvFOaUrINo2V3A-laE5fgN2P7AzpMbQs-7kU8o_zSeMWUSPYdA8hPUkIFdvRY18ElQDCJJcdQjU20qSRA6zTGCgUm4EnfoSpANykOsc8IxZ2tU_n2ItfL_GGpt2nF-erdllTUjNd4weON2qHDfBIV6lX2HWhLuDfGV45QpM1lgH7FmStsIPxGwLnobYmRjootpyRkUCY0h6OpcPYSaQ3zcEtBlBivU2Ah3CpGrI12YmFKa3dZIw0hwCfBd-E66TLkqSrykt8QLcWGG_MLVWX_qr05qoxamNntgDSj4qViRuH6_zAFI0mbA58FvWXUW64CGXlJLtTxvJLgGanDgAy9c7LFRs0FD39R8kNV3gl-jJcoOagrCd8ADwnMPC1K-lUKx3QvSayt0xgYvEbYAn323kgTJEy44SE0lb7P25w5eCMtuCJbwjf6JSA0jaQykJbbew-Cjx6rn0_xCQkS2glLHEzqZlB3wPudt_yLP5F2_oTgtdPn3KD13pToSUMKNDPneR5NsVcDXwDnEd-t3kZCWGQ65zrLud6RiNpyYcrW0eISE-2iabXdjIw99-mcwxSLhkMsxvCPqpa_O5xJTpsZZMQF-nEypyk16-QNcbesApMskS1YuBjedqiQwNAUDqQwUZ1K7GKCAaDtPKc7EfDrPKvsOEbEtbnAfaQv0vBvQXmj1JzZGYGSpw1MK7xIfisdCmrDoxH6e9iOMzSuXqx5j7-qNIdYJnUzambWdTDzjMLMANhXpBJwYP4woHhg2auN3YBlytTvDG3m63mKySbTIVJ472JpqbFVV2loe31B_YTYOO-tBF0rT042ZWqw628FsM6cYPHhbSaEdphMy-3PoEJeU_ybWvflfF1bP6WYoAZOZDDQZnZwTmANUqE88ARfB1q2BqGWfDVyktElJBUjU9Va0kGIdUuWRa0bMiJn739eyLrWrfbT3DZ9LY9CpbHC7eUYauhQtf3UBTeVsUXI6gga2yC4EWsWKUGmH2sF0gVMnvAZ--mUimKpwWbDYpgN8uWmAHiE3ipQzpf2hVf378TiS46V1EDkKMquv2X35Staftj7aWEDsX1UzTUs1iDuru3qBgWruRDNnMOJeSwNnjmDCmbGx4sHUFD3UNnIH_iheJazb_5_ihzzj6VS3pSs6_aZrEsKwaRueFrTiNp-252UXKNJGSThJT4Jj04J3D0b6x4iehYq6ZvNkD7d57rpUBmGa6yuOp_ubV8UDhuSMAlSvjG58nAazqX6i3iRjJ-mjW_sPnfdh7vaGGyI956SdMPm4gvAmGk1wM1jSgKkk_5hZkkVI5icZo7TdIsvDc94xMTaSz7lV2im9flna__5m9ZV--CM2WoFWBQkhBo5kl4bNfUw5cRX_-Wn2Hb3VL5qOibNaleXMPqx3kz0Slc5ji0hOUZcMK1su9bUraB5XdxZCN7JcQ48wiReoXAEyzCUWvLdMkO-H6fAGZezRpRsSad2-8qbp8Nd-dehFOxylTDXfpmekbTxgH6WYOzq2VikqzgWIDr1POrFGZERHxqfDcJ9u4IRXmeLBaCvJGhRJ9hWM2Kxi5mTbtlGNfwcOyfKuKAltIyb6oXJFs03-YJAM5E09WrY16L9mcDCR8ow_25rDJgQ6L10X2cxEJc3KWzKUFwhbiUn-da2J5ZBqr3X5kbEOyoJuDycAMsGF8dmHy5BZ768ZSlUx4k5VFCq4gtV5DxUVpnWuLfQc_bhkFD4gmUlz2vhWiPmzuSZM7UoK0WENtBfMZ7h6l8R7QjP4cVkr3swEnqUe3AsZUq85HZOOLGSw6pY0gjW5sAL-LCoYIeyj_QNBQ66zqqEM537Ktllk6qb5KjjzXbGJUjGlo3pKsG9hpyGFJ_SYU1PC8PwSTgMQmOYycZGK77dC174W1PKI_9H22cfjEdLFJczZA7NNU-h8AAUs6GApxkxghT8fjaTW0CN2FWYAQuNpyl_8MMqc2br4rwVj0aOp-zoh9SH2PoyE_s810cL3G8NfVdtZDmqwlj74m4WrP3KdDw=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_7ajazmsrvgo","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format causes retries of an existing order attempt after deployment to use a new key, potentially bypassing provider-side idempotency and creating a duplicate checkout/payment. No compatibility or migration handling is shown.\"],\"evidence\":[\"The only behavioral change replaces `${orderId}:${attemptNumber}` with `${orderId}|${attemptNumber}`.\"],\"checked\":[\"Reviewed the supplied diff in src/routes/checkout.ts.\",\"Treated malformed co-change-partner context as unavailable evidence.\"],\"gaps\":[\"No evidence that previously generated keys are not persisted, retried, parsed, or used by payment/webhook systems.\",\"No evidence that orderId cannot contain `|` or that all consumers accept the new key format.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":319,"input_tokens_details":{"cached_tokens":0},"output_tokens":351,"output_tokens_details":{"reasoning_tokens":182},"total_tokens":670,"cost":0.00485,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00485,"upstream_inference_input_cost":0.000638,"upstream_inference_output_cost":0.004212}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-01/verdict.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/verdict.json new file mode 100644 index 0000000..fdc1028 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-01/verdict.json @@ -0,0 +1,19 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format causes retries of an existing order attempt after deployment to use a new key, potentially bypassing provider-side idempotency and creating a duplicate checkout/payment. No compatibility or migration handling is shown." + ], + "evidence": [ + "The only behavioral change replaces `${orderId}:${attemptNumber}` with `${orderId}|${attemptNumber}`." + ], + "checked": [ + "Reviewed the supplied diff in src/routes/checkout.ts.", + "Treated malformed co-change-partner context as unavailable evidence." + ], + "gaps": [ + "No evidence that previously generated keys are not persisted, retried, parsed, or used by payment/webhook systems.", + "No evidence that orderId cannot contain `|` or that all consumers accept the new key format." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-02/receipt.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/receipt.json new file mode 100644 index 0000000..4171b87 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "36aaf68d1eebaf75ba067586a2f94b837ad6d8547b6cea5cd859668ce2561076", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-02/request.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/request.json new file mode 100644 index 0000000..4754727 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners: [PARSE ERROR: malformed JSON payload]\n raw: {\"partners\":[{\"file\":\"src/webhooks/stripe.ts\",\"support\":\"ERROR: type mismatch\n expected number, got string\"}]}\n note: evidence file could not be parsed", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-02/response.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/response.json new file mode 100644 index 0000000..02d86cf --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/response.json @@ -0,0 +1,13 @@ + + + + + + + + + + + + +{"id":"gen-1787283789-aivkUDITFAqnQCCleZag","object":"response","created_at":1787283789,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283792,"output":[{"id":"rs_042acb781ff18d57016a87c94e403c87d1afa7528dc359d898","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8lPP2XMpqAKivHGDqEbHufN05RLpnaynMv6AtvVfqGGwvrLMJVuzJdkgDVbuP38KtKusaqCkY8hwBBkvxs-ZyggePlq4nQf09Oyu1u4359g2LbcI-hcLNOS22ramMcCMzI-aGEtwvTduGa9lcwUNxGsqQuHgkSETW9Oz6BuhOGq7AXkcyP9i0PFDwoq1NBExop31f9dno3Fi3XqUnyPuKUWNuTcCPyQbgXbAt8ZwedaFLrXaZVh16ayRHPz8YVqrUC4MIyOeMSdCuOzU7tjXgCX7HmDi-0ckQUqU2Uu4eUxpjdj07jVKr_PekogrBDWustM4TKn1YWYKxbruQEPSoX-gRUL7IMmlku_s6pMgyt_veWh6VU8uba3GYwYsfXhaWTEfmw-ZrH65kOIDs1-8ms9LCFB6oz8FohIhgWJhZWs_l7jlexzULK-zz-SSi28Aj1ftBs62A7n9BizFeUgXz4NeZbwPkVgLCvWpedPkXN9_U7s_2MvrbokLzEWXBtktKNc4MyXbNcWq7Ou_-FUnO8vTrphL5XbYTegugUlxy7k6hGmLnk9dySsOltr3fc5RszI6RAso2HDuQ-7wvpw4yYTCxElspOxgTvR-tab08bYQ6Sb9OYaDgIQ38N_M77yN4eVQbxdupuLd1U2Qw7XPxx_9Z0nu1-T0lEsQ9VfVkDjRdy7GPAFPlX5tuml4JH3YlQAGC9UcoLs-9jlMgQPFrrfAELUSr4lexZpxF7BPfSeRbJKHH7_mcCmQw1Qj-UpjoWB74mVEGmsqubkdn-_zs0Ht_zpCnPbSezHZ91_DrZxG_QMg4zHAd8zyEA9epQMtufBsut-i5GVo4BHER8dksZith9ThAg73iFV4G66Qmizj_kJ4pz42OBCsCuhGs6vW3cU2q_S9iVsBaMDbG32RluaPnA_G9YwMqVfjmdU0vtCzIeHLkmibtVlfjBuuDSdKhp-2T8VO-cHK6O2iPCMFDf8gCRfRuPiI1h53seEfPKlE3m69yGZS7zpcW-ckQMujLDvp83brfbjVvo2YvhxpS6do_T2A8PG-C5zNlqZ5oAqpvhSEYW3hsejTXUonAsCeFULRq6PFmomsgIRaCQlRof6vK8StRccEFqlT9Af80LRcqaizSjP-t9f8Lwb5JUEA0SMHK4Kk4q9p_4Zuffnade_XfnJhm335kU90UU1PHPyTv7eWdyJxaOsx9WZunve65o_UIqN5gbrk-ydBSXuKHNhFVwCnXmNCy1qzXw3x_war1QBH1lDmuMQi5enXCjpJwC1KAZkO_PuErFv0GxZbl74uJBff3Ih0ksps_qfFbo-eHVycLJe2-US6M-XHZOkyAuLYaHRSKaH9LyKg8OUFafVjYmQbq81nWV-UXjiqLXs44s8tcgS7EeZPhJcLQeoCyiNytICsT2qwu-WjHcbngPoHRjPDHs-if4vgrstbmzD7FQNsLPiHijhcx0_9tJLc_jSyN_hZZrK-H7Mkaa7JMkni7_iyJxaL51DTn_RIcwYjbKzpgrSOJapY6yVkPNh-CHo9ZNUCQKivlX_58VmxeTR1GiHkq8K0C7Ggnwd7l0csjr6JhdyvqCTOdEoVMXn5IxvA_46TljdNHKME-vgtt72gQF3i2DXMzxFKgqVayfCcDvkytDYsXwLabt19q9ROj3-MqudqZuEeVK4Le6Weix6mNRqoqrpj9IS1iHuKOdG7YA9AZlkuSgfg9o9cMFBsZtNRu75BxE4aF9TmjSFREtx6g0JsUHuYDsbkb60AlZ92WDzvv8MMZm-bTo8zVYx0shVaVY0_taLkUkVIoqJHkrjvbBQGyyngDU9W1226q7jHn_0oAsgbJxN_TQUsqxnUeCmUU6XUPywdloDv9rZAVWQZbd1QjTVkrrfofjt616im6Fa3bysP6_5LKvTD7j1wVmcHYQOZ919Iy261tRP3sm3JDJvu1iK3tMpbIKafycXEEo6hpGAcfgZTuBafM-2njM2q0_hvq2kkO5PQi8Mfi92kfJHFGbC7DsgjKLToQv-pI1rBKyUVB2gE1ysCwQiaLma.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_bfxk7wya0ep","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff only changes the idempotency-key delimiter from ':' to '|' in src/routes/checkout.ts.\"],\"checked\":[\"Reviewed the supplied checkout.ts diff for directly evident correctness issues.\"],\"gaps\":[\"Co-change partner context is unavailable because the supplied workspace-intelligence payload is malformed.\",\"No evidence is provided that downstream payment/webhook systems accept or do not depend on the prior idempotency-key format.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":319,"input_tokens_details":{"cached_tokens":0},"output_tokens":207,"output_tokens_details":{"reasoning_tokens":97},"total_tokens":526,"cost":0.003122,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003122,"upstream_inference_input_cost":0.000638,"upstream_inference_output_cost":0.002484}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-02/verdict.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/verdict.json new file mode 100644 index 0000000..4701a92 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-02/verdict.json @@ -0,0 +1,16 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff only changes the idempotency-key delimiter from ':' to '|' in src/routes/checkout.ts." + ], + "checked": [ + "Reviewed the supplied checkout.ts diff for directly evident correctness issues." + ], + "gaps": [ + "Co-change partner context is unavailable because the supplied workspace-intelligence payload is malformed.", + "No evidence is provided that downstream payment/webhook systems accept or do not depend on the prior idempotency-key format." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-03/receipt.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/receipt.json new file mode 100644 index 0000000..4171b87 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "36aaf68d1eebaf75ba067586a2f94b837ad6d8547b6cea5cd859668ce2561076", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-03/request.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/request.json new file mode 100644 index 0000000..4754727 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners: [PARSE ERROR: malformed JSON payload]\n raw: {\"partners\":[{\"file\":\"src/webhooks/stripe.ts\",\"support\":\"ERROR: type mismatch\n expected number, got string\"}]}\n note: evidence file could not be parsed", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-03/response.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/response.json new file mode 100644 index 0000000..ddec821 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283792-wOZRcObu3aupIPXWNGl5","object":"response","created_at":1787283792,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283796,"output":[{"id":"rs_0f505cba645b1606016a87c950f31887d1b33f85514a61a22f","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8lSNat06Rbkb6YV3EKVsSMlh12ymRDx5MZrJ7xEE4z1pa5O1_QXzlrGVgamKLqnx2cih8jPOe4F41960SW7gPaisW8AJ_ehWRExUjEqMRiTVqDYx9TgDkYVjcL8uRVSfbFcDbKICU5_dCMEt7N9bw26Ebm6EBnIzuaQbVocIuJGqVSxPWFAWwKnVQ4HvFO4-y6UvrAv7_eqbeOAKmhDfArYQdpSkYUx3onGR3eSafIRt-QDkBlgrX19QS3-4WKX4rRB2_k8gFOh_DPVxeAiZ7xewQxKNujDwBeGCtIbiLiLntBjoE0Jj3L01jVkTv5CIoll_Mc2QehfFakUAuqufJy5VoeO7PeWSqHwFcFmdF_T32BUpQ4RGYbaqEBW4o0FmtHjYMdV8o5egqkl4UzC-J-u0F1rTjujipNz3_kCkR1WBiesMhJTJmhw4bzAu4PsOme8hNvQSJruMql6imtafWK9wxGim-tY15f_9s99ujy_ZksSmVoJVwB7IMX5bfOZ4mhrYu8E3tbjbUNCXnnUxtsgHa0s_mPHFjojWTWNxoKWKTK_8rUnTqX8Y1TlYCSTqtx2fjjBoa4cksuENBCbRNjHTDYUABtPXD4kyhpmzneKLbijDL9OAeXTe24N8SDEZY5Z7yymKx2rmKUm3vJIe-s2owYhZ_xTMi2B5fwLrDM9_ZP_77jEJ73x32tYTZ5ICAh2IFrbkEK_5gIbhhL4LvdoKUOtV2GI-hLeM_2tswUtryKspGJjzPeGgatIA3M_vWwS7Y_V5FsbnT5_e8IyzqLLY89MN0oobM6ikbQb6aVGiaTgRI5cZeoADpy_ZIsHUKdzF37p1iKAyvi8V-jaRzUJvUg-JuvfVj4aoNtVXVxH_m9KJzB-ljH-Am2g2n1Ko8NJLhMmrM5CvgYG2f6y9nLx3Rdxd43Qbv80kipHP6G3vc0dkKtqqUKeRoIpCEDgXoYLcbyi451IHDwwdYdU_HZcXTWXwTpuVuBqw1fkLCPgneRsceFnzepfB5j8pV5PDY1FO9rI4yJ7TsroFLBalOT0Tv3djWihyf89ffcH43hHP1r4Ehq_UGx4K7ntjUHo5NlkFPZ6sTxH88jdWDgZMRLqKaGHbqGG9yLH6qBX0k_LRh7wEcLcQy2bCosJ8BQalk5X826LB9-eeNEYmp_FIL4UlDZOzWUqcNpmkGy3ioHZvWjAzuBhuTLgYWxk2yJ9-IjTPOyQaB-ZC-Y2GXH-ZPp8Wwz9lFW5nIz28LFk7gJsa76SXzyB-AlDX_NQMFa07Z5f3Uj1Epvr7FaNkWSA3zAEQBvkiWr4JYLuXxlZYIzKQM9LxQD6CgAl2U74q_udPwpN63UdszRa-zODc8m95zkK8ZapczZll1yBqLL89Q_KHk1uTXaVCsgvvm-g2AslszDODM4j0UYUj3w97UCXd7KPRXbi1n7oa2vcURACfVlp-glHRv_gQyha5QD6uVFcEnfU6hdNCBd3Ni5Iv7FoLZ8fjsBHQRqEyN2jA20Tl-9EDH0K16Qyigg3ogwXl9xaDTeLmU8DZfy0N6lbaHLXWl-9j_5HBg-Kh79tX5H0mDxOsRsKi6o9Pr13qHapqeS5sUg4Y-Y1Xgx4om6Vb1LHWBGkWkgbhwfRMa8rh2zek4aphm26Q1qvVgH7dX6r5B0oxpbOFMhukZWkJT7smspRPRT7H061SCm18jM2BZH59um9rtmCUwobLQKP4NdVPgjUzf4I3-b45nBw5ehND6ELqC9629ZDuVosDpBxUD1cMhnDUHKH4p2VcJD8VRf29wN2tOchtAhWeZK_0mkDLMcQPYVS-2OQQeoYBAEzzANh2aAForRH6Sj0pqphWGWU_LI133V0_4H2ygrgkVipAI7THPHBa-VftcwbYg8QJ3sCv9tr1SmANOnjRoJ0c7Z1-rp3xf3eMULMOF98SLdrer9CrcINB53wXth4gj15ygPl_TmJcK8H09TAoWznyLjt_Vzbw3FhIUHLBtNVc4URfjKzyfR-u8xliOV1fOExjAhFJbRjCL4RGe7nZoQJyEvDfDQ0Lw1Wp5JaBPendHDMpcRD5FJbPtXT55HQ1vw_hh3U9OA-8PfgAdz9bnKTdCbSqbgZKhBTPcpTPLjL5mw9LbalNgodektql210Q8JwO2SfYaHnlLC6vMrzrhnVeq4q4s-fLYWEOTQtonL7Cj4Ny2uPkAYRqHqvi6ONxiVnhKvFNbXyIPUQpO0UrqGr7m9wwkoLJ4dfkvLlKqiKeHZGXsZ3F6FfiMNyashWzUMduqXwYvlkQoV-966THbhwFoMEga-NkCZUOyhZwzZWbFzMxpQSoZOGHaVkepylgLG7-0mIkvdvbMb2otbYNbLwPzX8PD9sotpfH5jCf_sRHRJ-BB6AAEb9QjeAbj1bQfxeBrij8jEz2JmCD-iVk-cZdLaa8Ki7iWotyTrFa1iJVx1MFRnGoZoC0Mmq2cgQfLt8q7D46MxtSfK3_vLEZxsOmy4WhcKvAyN5.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_xs7cj11o83","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key delimiter changes the key for the same order/attempt, so retries spanning deployment versions can bypass prior idempotency records and potentially create duplicate checkout/payment operations.\"],\"evidence\":[\"Diff changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` without compatibility handling or migration.\"],\"checked\":[\"Idempotency-key construction in src/routes/checkout.ts\",\"Provided workspace-intelligence context\"],\"gaps\":[\"Co-change partner evidence for src/webhooks/stripe.ts is malformed and unavailable; downstream parsing, persistence, and migration/rollout behavior cannot be verified.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":319,"input_tokens_details":{"cached_tokens":0},"output_tokens":305,"output_tokens_details":{"reasoning_tokens":153},"total_tokens":624,"cost":0.004298,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004298,"upstream_inference_input_cost":0.000638,"upstream_inference_output_cost":0.00366}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/malformed/run-03/verdict.json b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/verdict.json new file mode 100644 index 0000000..603348f --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/malformed/run-03/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for the same order/attempt, so retries spanning deployment versions can bypass prior idempotency records and potentially create duplicate checkout/payment operations." + ], + "evidence": [ + "Diff changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` without compatibility handling or migration." + ], + "checked": [ + "Idempotency-key construction in src/routes/checkout.ts", + "Provided workspace-intelligence context" + ], + "gaps": [ + "Co-change partner evidence for src/webhooks/stripe.ts is malformed and unavailable; downstream parsing, persistence, and migration/rollout behavior cannot be verified." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-01/receipt.json b/docs/evidence/meta-362/degraded-evidence/missing/run-01/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-01/request.json b/docs/evidence/meta-362/degraded-evidence/missing/run-01/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-01/response.json b/docs/evidence/meta-362/degraded-evidence/missing/run-01/response.json new file mode 100644 index 0000000..dc20318 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-01/response.json @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283762-VPgfOiSFQL56YXQtHFFb","object":"response","created_at":1787283762,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283766,"output":[{"id":"rs_0aa74989a48e13bb016a87c932a78487d1a27b4a193c946d4a","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8k1SliW3KT7NsF9RSV6EbngywTlF1SJT-tBtXaC3JnzwcQEYVreAqF0_RhO5sH6lfBLzT-fSAyNi1SFu0G-owP1A2ePjeuTlsEHqTMU1eai4WHGXJzcvc-qUTKGY2B2kt_5_WrDR_q_zLBkCHsqCLiLuKyo2Ztxcx_RDw4nYdPnIGlT9C3M09JNwZyPDkl78Vcumn-ELcNGDcUkYrcaz99H0vo1MHYhevIGk6ZWLSch1EZPAst3hpdWChZx6A91S5eJ8xQGOVJNotHbJC5ExoIi3egT4_CVVzfpPLRZgZNg_yJgV_iWVC5b4hlW8SRZvy3HhPPRkFs8NXYDleiIljp5yf3bq1zdqniJqVpgSgiCohdgDnaBE-eVS3xqqM7FFWznJ2alaodqhq7Z_FPWWN4Q07F6JOifddolDQYbT1ARCb9nuVxtJzERfxEfpZa9nlxAfP5KWvMg3frCyeZ5fhgHyQnUPl_OUrkq9H0-KqVhBJd6-iXrs7EYbZKx4ohs-BiyZ9Dj3QIn-Sr4eo6AjByY0h4m9EgSC2OBeCcuhV23ylGuZop3_vYYOWKrrEr3ddlIynWHIyEHW28aPpJE7FPAV0FNzqa-H2VRRm_LtGn1A3BOSzn0oBBW6qK0KlgDT2RXQLAn3BKPDvECy8kSzNszRuy8ROdJwUV0ohhxhA5XJ2FWItRXJEQlR3IMNHswCGB6FKg6W10NepQidb3Bw5t2CvbLJHkGngqG9O-raShTYUHtpqZDiv7GTIgaMX75GZ2GRUMk03aNN-gg_0MiNHVWin7S8S2d35oY4MY6RfheN-7q7XjGffr-cv9ZMCy-qOZS5mjBr1Sq0cnKsmcaNPM8hGXTmjA5WN6kTFKMYywvTDI1oiptE_Kcf7tUYtr863F8n25Gld6gzQ5USSNC0ulzBYyj0OSOScrKbaxvLksxMr2HvHWic7QD735kmUZyuQ661p0MXLFi_dLH7Pcc8ktV4tOybwKMFVtuQXWreNrzFz49sBAgVFAmVmkooCZvEYN5bJgL5rAmGCZb-cmDr9W89AiIJVnrF0_u5BGa0NWeLxwaVkzDbMbweCdYhW8RVgcQ9uS1A8kV4OlIIjTcm57mDF3vU6zCcBOK9sZUSWCTb7PSD9B8RWCp2qe3R6V3FwwlTHmk-s1GhLyngIFdYOi4bAItKKXF0kc00748dlb17LS-Lxfjyv-_gerXq-U76-YlspZN_0bwURAJjA5OHqmrjLvvvBG4hOG0Uqyq6LjyZuTPHGTMMijQiztXIwO66MemFSVawcSoFtdbrYKdXOVnk1OjbGVeoQrKekH-4FE97m1UJQz0T2J28C6OsLJifOThD2MmW5Y25mW3m3CWIGkDGAvoj1x8dSXwjTKRfb80C9Q1gt87_6tly3I_dJIWtsrsU3mUzrIrOtulE7lgeJ9sRKNuW7aEcMWEyMGqYTU1nsHtYMasTq_b3-04eR7OIm7PkMLYW42Fcn-kfhp7TgYvt8n2AHkmIbHSVUJ09BPIXtWuK_a7EJ3cPEKZXJDZblT7gyXFidF0Cxrvhycj9aYVFd674YMe9UWshqsPqNAbzUrVoMGu3ppefWy4OATKVC5ntM9hYsL6AlSAqFDZm4wFGSW3gTno663WCUdJjWWz6QLDCz5y_lAk2bWUDsSIbS91A6yfZRd_-s7MbAt7v4hM04b5RcW9P2BhDbUGyq_UB6CQDRj2uUQyQpQX6uaXTIyHA0icr2beUAhhw1UbaGojQ_GOINlt4EPEAvkdADE8BPCrdD1BTuJAdIt33uz28846RbCzMl6-UZwO9w8IvV3TVCyfeT4mvxDNFeBDvCoEeW2P10v9t5nnMkA6e3aaJ3RgrJnxHybch20rkrZYRDP6eGewAuTrHu_BdTSz7lLNIFbI1G26IdcEbtm48VNfiKnotOXRYA18ErH4rQN4uDFb4lCFXlME2GvOudvRgzOl_lb5AkSZRtNQPEz9NQlB3SRfpqnL1Nc07HK2CyBEcEmCVTP2Lz8a4aJ7xheAQyvRAObN8HBHBHWuv6y98HMpjJBkReaykLdGUHPbADX_57R1TWttZYybPwPKKyXCMDyoIIFpRUKnE9OJt4_JPND-RxVm-pSmJerfbKf2Jlv3jgWROIGNYQA6_KlkrKJekvRYYVmvwg5IdgWZdNzLfeadd4bYov-KVK-oRpiE8WRWq6lvHRFxK8IZ_BT32fqqQXNh-bJNsD8gm-R-X-_0sRUOEYtFh0ljYxdjwUHKDuI5Dk1TEbm_ZvN_4f2O5dfp--4XqoeP9FpUUaMQWNMcMtHO7OSxwzStAwcfquT1Gc4wmJId2HKuacAQhIpknPsvpF7WqbsndWOtfCjCqfYe214td-bLQuUueTaoavXAKnPrcxGEc6YL22SKq116OJNT_wUweuRKFz4Sl_6vtq1AcTjZNd9GESmhyg8--_xnLgJR5Xyls9WE_W8NCCsUqJxuXc_ipfDu4BXI4hSjBfsVwBLMVlARhrJS3AlCv9N10UGCKyWmv6egry5fWiR0U1z2g1uZKOta9GAX9tcNRiK5QsSW0S5DuLhCiSK_abU-0i42hmLMo2sOxIgMkta_7oMEjGPwZ2I94He0WxqOxOWUzTw5byI792EwEJ5mlosu70C9NGHAJP6s6ER5K22chEz8c10RICbuST6IF-jM-1s6lnz1EsNcmx-Do8J9t8gqiUFWildkNfO87ylQ2CA7BPKngqXzgyHpw739czhxE5Xg1HoyeChre0kMGKbz1m-EtmeC7rs4hzwPkE0yBwfjA-lBXZ7K96o=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_aan76dfyjaw","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the checkout idempotency-key format invalidates keys created before deployment. Retries of an existing order attempt after rollout will use a different key and may bypass prior idempotency protection, risking duplicate checkout/payment creation.\"],\"evidence\":[\"`idempotencyKey` changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}` with no compatibility lookup or migration shown.\"],\"checked\":[\"Idempotency-key continuity across the proposed format change.\"],\"gaps\":[\"No evidence of a rollout strategy, dual-read compatibility, or confirmation that existing idempotency records are not relied on across deployments.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":353,"output_tokens_details":{"reasoning_tokens":204},"total_tokens":600,"cost":0.00473,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00473,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.004236}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-01/verdict.json b/docs/evidence/meta-362/degraded-evidence/missing/run-01/verdict.json new file mode 100644 index 0000000..b87a33f --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the checkout idempotency-key format invalidates keys created before deployment. Retries of an existing order attempt after rollout will use a different key and may bypass prior idempotency protection, risking duplicate checkout/payment creation." + ], + "evidence": [ + "`idempotencyKey` changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}` with no compatibility lookup or migration shown." + ], + "checked": [ + "Idempotency-key continuity across the proposed format change." + ], + "gaps": [ + "No evidence of a rollout strategy, dual-read compatibility, or confirmation that existing idempotency records are not relied on across deployments." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-02/receipt.json b/docs/evidence/meta-362/degraded-evidence/missing/run-02/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-02/request.json b/docs/evidence/meta-362/degraded-evidence/missing/run-02/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-02/response.json b/docs/evidence/meta-362/degraded-evidence/missing/run-02/response.json new file mode 100644 index 0000000..a1634b4 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-02/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283766-T69RsDgNzLbh6WQ4ZXgg","object":"response","created_at":1787283766,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283770,"output":[{"id":"rs_03d06d817effcf5e016a87c937674087d1af67465baafdc0ae","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8k5arR_ctboZENwKFqc4RfOSYAnJEGwhphJI3HrcRILU5Sz_SiIf-CC3QwHLmiGHmiKkRgFFiEDbt3wK-J0g9MSlnVuPHPC8kCtrTl4zmq7lob6mYrf7ezqKEANH51kJ4Fk6l7A8ulnKEMAVpZLlEfAQ45yianImzr5bbjm7fJflSP_6BxEwyc6N9pWCYp2DCbg8Ldhru_8OKvbpW_UNNDDJtGDm5QSHkHQ_ojlBPNJ2UC9WRbSn-kD3D9BuKxRMbilbwMQCTe3bVaFXw7xkeji7gH72aIFDDIH7ksxopKfFy-X2z5RRXran1tE-EQpcX3Uqn_gGHz5lwJIpk6Nzjucy96tySIr5uQ8VqU_3UnKetoGCm64Y2JfRhPEVV8LOwwmO1og3qfqAvH7jVNT6NQmylJldmL-uFmNmde5Vxep7N51cQ1hJku4g1OFs0Wt5aWBs5D9v4m4nA_FiIMOx8uXIBT6B9WD3s9tcFZpe5xv5ZHSYywTR5LZtDLtsy4wv2NNz5ZHJFPTbe4DBmQszeM6eIxf-Ff8KncaCY_hRrbwaxfjIJ27WEoU7VBVSBvVQBSkW3EthonxY6H8R9Dpvf83Jg1G2Sh8PzA8qx1zZaqX9j1qw6bjnnfbOP8pkR_wXAUGMCXEsiEyEjdQB7uIzAWul_QBWZin49Kf4_jEnx_501RV4YFtHFNEnAZLOH_i4V3BciG1umJxnhPwlT3xe0qQXi3TND5cLNpAcn8zxokTK3ADmpWPwr7EWLKklIGGz04MBEF8ZlQksmK88ogvaqM74Iv3iOXZ5YQc9-iaX3pCQ1zIFp8l52Sr4EVHgiHrBPET3gxsWjEBkgPO3DvJUtl-8yvrQ9Ep9gNmpuBDQU4cMAJjtbh6Yhi5kN51nUr23yGJt-ihDoKGeTjGr-H16Q3KfZOB852zws-7VvrsZ2saIOy78h3-pPNa_RekFPhYZ8I7oRVCvJuzioBBMKwCqB6BuJ922_p4EWA961Yq1h3JTIFEakhxKSP2KQ8rQXu6JHMTSisvDNyb8j9bQxs9wA8oBU1Winr71siQZ-36cVwsxHkWCCOenGR5sGgtht4d_ZtPAJu631Tlrvqb7GCTjw3FLN4kwmcdW3zLhyEwxDV2JtpIjPEB33PNOf-TFAJuntfapt4aQrlN2adHuqTw7W8v9RUOlE0rO8RT90JzaW64TqoV0Jxpy3qsf3IRYoRqLOSD6kM5UXCk9PPPgC8FqIrcebJdIkxZmpdaocNt-rUtRZ2vOHA0Ds4VW7pBxke-anKKi2G_PO1RYAgs557K2hcDuiUyA5D6aW5HUuEoVsBOlq6hlxBQSKR5uu7xec1cg75EdqVoYXfWiuJO1Xz8EnrJ-eyvJGW87A_6W41l4AuPzsrztsrosFZFx9sFrw1gcTKIC5JneeON2dTmjhUGLEm9Wgap5D6t7LzPzoRZMjbopmGI0k8wr71K7l9xsJWVUFPTWV9mFMGAH_xIu6ybnZidnVYd6ZjVWBXyFZTalM1m0eA5KlDY1DSkGGrWKSeVkMm9hYQfhFpszfNMzFAdRMwgCFdh_joa7Hxj1Rk-8Ks1DGYhFqXAM9DgCELQJhVLHZ0h_oapun_4gdou4YTSuBdNh4bIYqa0IMUTvcMsnoXCiJG3FMAqERN4oRZYvhse5EysCxefW_fl1Z9-K7YHDbgGF9awLv5TCiMqYtsJKb09PwqGhskEZ0KhOd0KVoWUF6TueHjnNx-Nt1B99z1c6q8a6Cl1DtLuyUcMt8v2ce9G99ZRDaGfWizIeCir31BSxA79dKWGL53Z3cHHXTSPGEnp4W7fYuFhIsLQ0kmgwWWQhoHSBm6hrblPuA8GRYS0j-pjcRPg8P2i2nb9n45Nd-pQrg-gHUeXCzKsjFLG6e2B5BQeyTcoKK9x4Y-fbUiLk3uLkso8ocn3ArqgE7R6weug8dzO1abl5Q94TYX9ekGEeE78oMeGOxUxIZv1u61KwRhLmTLfhZsZ9DCN5Bv--CJvnvNnuXOSX9DPg4WKlnjucW4=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_x2dfmwj0t68","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format will cause retries for attempts created before deployment to use a different key, potentially creating duplicate checkout/payment operations.\"],\"evidence\":[\"The key changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}` with no compatibility lookup or migration shown.\"],\"checked\":[\"Idempotency-key construction in src/routes/checkout.ts.\"],\"gaps\":[\"No evidence of a backward-compatible rollout, dual-key lookup, or confirmation that prior keys cannot be retried after deployment.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":226,"output_tokens_details":{"reasoning_tokens":98},"total_tokens":473,"cost":0.003206,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003206,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.002712}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-02/verdict.json b/docs/evidence/meta-362/degraded-evidence/missing/run-02/verdict.json new file mode 100644 index 0000000..8ef56f6 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-02/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format will cause retries for attempts created before deployment to use a different key, potentially creating duplicate checkout/payment operations." + ], + "evidence": [ + "The key changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}` with no compatibility lookup or migration shown." + ], + "checked": [ + "Idempotency-key construction in src/routes/checkout.ts." + ], + "gaps": [ + "No evidence of a backward-compatible rollout, dual-key lookup, or confirmation that prior keys cannot be retried after deployment." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-03/receipt.json b/docs/evidence/meta-362/degraded-evidence/missing/run-03/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-03/request.json b/docs/evidence/meta-362/degraded-evidence/missing/run-03/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-03/response.json b/docs/evidence/meta-362/degraded-evidence/missing/run-03/response.json new file mode 100644 index 0000000..1c5c0bf --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-03/response.json @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283770-4y2VqQUcuZ68HEFRwq5d","object":"response","created_at":1787283770,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283774,"output":[{"id":"rs_02e779374168a90a016a87c93b262887d1bdbf05135a9f4103","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8k9tFuMAE7fFFS7TZpfp2h1wQYuZbdELa-zP8QBAGSlRkNl3NZCu72sgicXiLaUQRzH9WF031VIfW99FxlmFW1RLJixe0y4nfZl-w7E-fHYbNJXzMbbtelymKadeuQEH-MU_p0XJpMBSoRfvAjeDb6pWqgZubDq7OHzuz1gR5_S5tLgZzsDQ-jlZboXhrW0yR9GiiX8w9aAnQRZ8ihQVDGBLxgOzwySr2dES1FsQUftt6NsMirQf1aXVhjYREGH_iZcB3OyArX2C0nBjshgq3QP6Kl_F1UFkAPnGqe-ivY-pAvYqUEyhj03Cmc2CLPq-1QVahoY5rm3SsDaur2BknPZ5e1_-e-eUjieZ5QsJlbMfHjcERiuA8oNLE8sY3FkKCfeI60-ncqsE4b9JHj9W6AsCd8K2LeScAKhecnEOQeVJGeThEz4AqPmErOQidlqbsCRqhjiztg9SCBzGeKgm8PUb-3wGHF1qJBIr3ahzEqlpOSNwKjiFRhKF7hrGiDvVSJeHlo6pu3DrFcJv9GNxXOmaxxfmFCwsZOmc1p6MqmsOziN1mHMUghfrDAo6uREBoBsHonCIfePJYUl7Pvp_0-KxAjIfWZVKcxeURonK8c6Q2Vm7It7lHWs-fRRAPmlUW3xEbH2GjhUk3_KLgpEeiEmiT6hCTuF-8K2TV0DPuwbX8y_ezxOiWLDEkE7ZbZfRLLhVMQQmtFzSXuqlvWKqxf7-zFSSS0snzZjTh--Qj3VK9oe_0396itxzfjY1dUyz6bXOOFrSTBB6myKQi7nUJ3ieir04lAlSr-HX6mc2_UZhJSa_IxFPZsH9_JnKOdlowFnpmnNa8RSnJTxXF7PT1YyQUNKM1e28UStQwc4Nb3ejEd67sMasjVHxLZoe3KRqY7oMMVOofjhlNZSdNQZiNSdTpuyI-sTUsRnsf0afhle-qU_iXyfQ81wb4M12533t-kvJcWOCA7PwBNvbhPquKYSlWutL6jkRYyc46UHsvMRaM0nNyV3143DJup-TzZW11YahiuSCJ5cDseUzpf6YniW2gmxQQ4JiJSjvh_jVYX3ZHKudcD3P7TA7EWgiBJoJom27QuqnyQD63_9r0obp5dcCZ6iFJOIVGZC9I22GW_sQXWQwa2nPbE2zFOmhwx1hnKcYJL384YlBlJHw6rWd7jJeBF26AI5FtYR7YUK_NvfQYA_TPUCp6cPEf4FKON1Mox-slZuT6xtw8rPawKawynxtcl42Bon3BWCLnb_bAiTYAr5bSk7vREgodlHboYdyTolQwm4WCAZ3LryOWK16jo2qhiBhwtohWweKUkoBj00EfcQ2caIUDDWvRtDdmcjVybFIKGUzK9ra_fkV92I7DkXkWi0tjfY6lwFZaudszxxXDZXOcucQ_BQRdg45_wGqaP9Vgx5e-G3uWs0d3KbfJSRwVYPvjmpgWvPeSt_ljIi1qyra9uJ49vW1L4Dl8V4O231Idl99nTJNCGB6eV33h6RWfHEmCXvGZ8u8pD6Br16zainMcsbza52L4ZgGLDWoFQHQ4t4UNnvSmhMjQ7WqypNZKUEDycQgX5o3ydAH3XfQe-Tf1SD6FuLRgv3_Hos2codNsHoZvKjvw0IquhEuXJ1Yb_Eqf38z4y6moB0LhFVuL_3bbt8TUEAxlU0g42dUjfh8oyfAkpqIKz-_CP3flmnHea_UPkP3qv8s9J85VdM56Z2DawVMRYyI5F7Joe6vRgzPg0PXDEbh0e6MwSGd9P5ChPS8zxqUlPBjTmYYyYRGJg7JxGAMSefykga2cp8WBi3T_TklKfrdj_DFgwP56K0Zm2PvLolrLnMrFOoa6dlCsypv5jQFj1OtDu-khnnzP_YU2jRT7tE51pv-7SgiXEb9hb0yhXmJKXuv1ZI5wr3m77zeEOpqTAxeSO_pGuEPjqdd7l-juW_eUSuQQmLtY_tT8C6h_Y_Z9BpQEKNi8NrGg1kjiFRSMI1PGWA4tJxOEMGkAAJ1PDlnpF-ATqeBfXuTLknExQC1f65lNhzzb42dwTy1MBDpylp6ZuW3uNXW9Q6WTfHLyXEpL_tw2i7vqY6UPIikzhSeUzHPpaUV7Eo4UixU-XBtCXvTSSOlVos_7dJBWPidTl7o93Yd-91FaWBNz9bFBDy0e-rBqla9-yOcmRySQWBIzKCliYXsgB0Mlo1JqRxWktXAHcKgqHf2wimPy5t9OV3ho1mFZeXLeCRrVWtW9U7lRZsmx0S5yYaDmMFRp5sQ9V265-69H3VE3fBupA32U6w2oBwk4XwhgndsXqCBLTXr2wM_gobU5f62FGgobLAo6RHm7dKeutk7xG_OOBVHxRpeJo16gq12bayh04xLzOn-yLs7VLqV5wbeyiTa4YyCMRIt2Nu0OOU3kHDuAN0VhEgvvfq4XYFVcP4d2-gxxJwuUvQvCWlBlqQdF8J.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_w65vfeahhp","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format for an existing checkout attempt can cause retries after deployment to use a different key, defeating prior idempotency and potentially creating duplicate charges/orders.\"],\"evidence\":[\"The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility handling shown.\"],\"checked\":[\"Derived idempotency-key stability across deployments\",\"Potential ambiguity in delimiter-based key composition\"],\"gaps\":[\"No evidence of a migration/dual-read strategy, key versioning, or confirmation that old keys are not persisted or sent to an external payment provider.\",\"No evidence that orderId and attemptNumber cannot contain the selected delimiter; delimiter substitution alone does not make concatenated keys unambiguous.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":326,"output_tokens_details":{"reasoning_tokens":149},"total_tokens":573,"cost":0.004406,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004406,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.003912}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/missing/run-03/verdict.json b/docs/evidence/meta-362/degraded-evidence/missing/run-03/verdict.json new file mode 100644 index 0000000..80f6772 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/missing/run-03/verdict.json @@ -0,0 +1,19 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format for an existing checkout attempt can cause retries after deployment to use a different key, defeating prior idempotency and potentially creating duplicate charges/orders." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility handling shown." + ], + "checked": [ + "Derived idempotency-key stability across deployments", + "Potential ambiguity in delimiter-based key composition" + ], + "gaps": [ + "No evidence of a migration/dual-read strategy, key versioning, or confirmation that old keys are not persisted or sent to an external payment provider.", + "No evidence that orderId and attemptNumber cannot contain the selected delimiter; delimiter substitution alone does not make concatenated keys unambiguous." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-01/receipt.json b/docs/evidence/meta-362/degraded-evidence/refused/run-01/receipt.json new file mode 100644 index 0000000..843f85e --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "35b4cd4da3f258b4b176640bf645576c51c88ab30e3ae9c6983e0265e5d920e2", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-01/request.json b/docs/evidence/meta-362/degraded-evidence/refused/run-01/request.json new file mode 100644 index 0000000..c7e03e9 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners: UNAVAILABLE\n reason: workspace.json not found in repository root\n note: evidence query returned no result; workspace intelligence is unavailable", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-01/response.json b/docs/evidence/meta-362/degraded-evidence/refused/run-01/response.json new file mode 100644 index 0000000..b11fe89 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-01/response.json @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283796-PodR5tS1YxT3JYDWEG9G","object":"response","created_at":1787283796,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283800,"output":[{"id":"rs_0c632c82a95b55ba016a87c954acd487d1be3c62eadfcc3114","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8lWN6A9-iIkEomz8urCITfrboP3iy3gADVQ-vPwuwa2U2m-w8QBvd5mCDirUpXRQ0TpDlLXczjL3CwrutZhNeAwGZ3GiLMqaWVSHXw5IxFAetgkgW0t6Aqud4qnRseSZNEt5CmnYoiNab4Db_oHPvES3ad68KBIn5ql89ER_-jm-vovWdr_zVVxa1alUv04M0XKTrjUgks8kxd1xr2j1o3K0M-HrvLccCZNwiLOlLihrOx2hyILQmEbCRark4l0YFjIjZ3bIcRQrZ-WZD1W5OIZdRN3cljb2_6Fs86j9WPLjyGm2WWFhO7eFjF3ZrumfaaIo5ip-MmRydhVboCNRklbueh7TdLtorGMjjY7itTTU4l-oSnTBn1jllrI2ltsjG5Xl06Xtl5UvnswGBWqa5KIzTO8vS7Tmtfg2HLvcof3bFadx-PNsAnEwUkBmOQ65sqhxRs1xccCIrN3gG7nEFKz9W_cB0kHfRjBdiJEGfmojuSafgWuA_VhVydhbR-HRtwC1noAbWAHx5rw2eMrUMF8jvYPuoVzyiAmrDLVth2PYXFk9ASUHigUfvnCZQe2KpdzxsZdlUlC3B2UfoM2llRHrfAjkoWTpV0C1lI8qIM_xsebCBg19wrYkMHnXpCfmbg56ZGqoclbISBy08hmnP2KgI4yyyGSCN_iC2LCuBL1N6xKG8HUvStDw9o0izBAIt16Ngbv_K1EiRs7GXBXniEmleklWxdevfe5G79ipmLR_Aw-kU09b8ZRdtc-jr6_qSvkjlqQB5BLyRAT6GB7gdvcADcBvlwTmMhkAPU4PA4GugoWi864QqRRzUcLKWnsn8MmWq2PAnsfkX4NHRRNIbgbp6FRNhOyP-vPKOiepoNGeuRkzqLaAzBhXXKPhpgo7-EBVTVkQAsq9x0eo_N1iY8O3q4LKqf9lMG3Q6-hf7jDP4HUHm2chMZFcbip6dzrm7od0U_Caz8kaSrwR0S3PMolJRbMCPNW4jYnZ-qGtA7zIeHof6Nh5EXUZuS5y9pJ2KhosF5XLmA7au-kD_wzDZ0sjGHNAWYz_NEk-k7PopsJCeDD7fXRnorlHExMoIS5FfF9XRHgRNN6oHqspgYwpi_rMn0zb8bEvZKe-07a1nI7bt3IVxEkXk-le3D8mOr8yaYRgwJ0EbRUrjT-REkHM0Mf7dSx4-VV4Khe2Z1kIDh6LTK2czI_5gVlfC-pOS3l4OGNHn2p7aNbpW9FDJULxAAzD-nISq_P3PqDUHCnDwgAddjcijlXKcY6f3zHKuWl-J8bivGYFlcSXZPTv7_0V72lGaT3k_k1XXJLGyYDBuxBHVCiUwcPknT413JVgxd9dFccm30hCd0IIO3g_6uaigV16k-peNsk-s1GOuCm-hp1J6sBatkJ2SZAet0XIel07Gtk46KGdt9q36z2fh9g0kdQfHHNjOSkZmvJl4mb3PWF1JyF5nPbYEnxLV9GYiApy3SMQG5-z7XvAXRLPV73cY65MzhC0z44ImMkgyfwy4NuV80ObbdAREO0wf5w7SgI92qNJT3KWkDgWkfuVA-2Pdpx3v7CMKWRHE0pKWHaQHcyTyJW90utDpx71Kpe9VNeyhCRfDEbkn_dLFEUPIKlR9XmP1VjY2AnCPoSS2YAS03nsNOuDIgBxjdgSIQO1F7WKsqi0cHOOFKbTDUlgr1-nZ_VjAhamRexxTxvaU2koVrN8wQLGH2kSFXr3lQbCTKR_SW4SFL_Anu0-cpP_1mQcnopJ1OptCl-IyRqjKhYjK1OOSKWLu0uKgYzEvdqESmnuec3tuy3zGbE3RPXepLqtv1zLdslSIFJs1JGXNzPdMoTERNpoXPhkYs3FLIOYajbs07xMbmnmJ7Rr6nvMBI8kzTLqSUuL0eM9AJ4CAl7klY9AAFy3L224B9VmgJCdwv9B0oO7VSQ1ElEOp1yodL_7BsFMQ3v_JBcVPUmX7rxh_TPwvjB7ljOEHtW1E-GFqKn8z7CYNUYrwk0K3wGoY99887jyFbOun6LfUibwQkSOrim1jKNTm_AA8m0ajQ2bkmnMk_HZUa7r5cjA-0qlitei7Bu9sGTwMV_AJOA8LiYTvGajzdVWD8qC2HSJ2ywrKt9TQhwlf9BZtIKy6D2mn5cOTmPwkzLJM5UNh9usFjY7Y0yPvCcynUgnuUemCWefAlx-H67HXpvI5MqE083tv-9GukKa5_2RA47oTpGZGY2HBACzMgaHuyE1T1uQ5maVW-QnEuOl_owj3Ku0nlWEtrT9_rFOOo02AttqJd8JbQQ7RyZGEd3U2TmqXYzCWSD_Abl5cgHxPXdA-F7fQeH_s04KwzwxBt-S9AkVnxNSTJ9TKtRpk9B6X7RtNwWZnV6TPlI1d70_eA8xIQX4Z7y8OyMojUTfujd3b9M9PkO1gstJqN_kHmx6v-rzScOKH-4riWjfjs1.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_4mkeeovwmhd","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format without a compatibility/migration path can cause retries of orders created before deployment to use a new key and bypass existing idempotency records, risking duplicate checkout processing or charges.\"],\"evidence\":[\"The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` in src/routes/checkout.ts.\"],\"checked\":[\"Reviewed the supplied checkout idempotency-key diff.\",\"Workspace co-change intelligence was unavailable because workspace.json was not found.\"],\"gaps\":[\"No evidence of a dual-read/legacy-key fallback, idempotency-store migration, or confirmation that existing keys are safely invalidated.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":297,"input_tokens_details":{"cached_tokens":0},"output_tokens":309,"output_tokens_details":{"reasoning_tokens":149},"total_tokens":606,"cost":0.004302,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004302,"upstream_inference_input_cost":0.000594,"upstream_inference_output_cost":0.003708}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-01/verdict.json b/docs/evidence/meta-362/degraded-evidence/refused/run-01/verdict.json new file mode 100644 index 0000000..70ad328 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-01/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format without a compatibility/migration path can cause retries of orders created before deployment to use a new key and bypass existing idempotency records, risking duplicate checkout processing or charges." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` in src/routes/checkout.ts." + ], + "checked": [ + "Reviewed the supplied checkout idempotency-key diff.", + "Workspace co-change intelligence was unavailable because workspace.json was not found." + ], + "gaps": [ + "No evidence of a dual-read/legacy-key fallback, idempotency-store migration, or confirmation that existing keys are safely invalidated." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-02/receipt.json b/docs/evidence/meta-362/degraded-evidence/refused/run-02/receipt.json new file mode 100644 index 0000000..843f85e --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "35b4cd4da3f258b4b176640bf645576c51c88ab30e3ae9c6983e0265e5d920e2", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-02/request.json b/docs/evidence/meta-362/degraded-evidence/refused/run-02/request.json new file mode 100644 index 0000000..c7e03e9 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners: UNAVAILABLE\n reason: workspace.json not found in repository root\n note: evidence query returned no result; workspace intelligence is unavailable", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-02/response.json b/docs/evidence/meta-362/degraded-evidence/refused/run-02/response.json new file mode 100644 index 0000000..2e704d2 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-02/response.json @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283800-pRkaNTM7mjY4MdzRrKly","object":"response","created_at":1787283800,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283804,"output":[{"id":"rs_0b13c363bfe0df75016a87c958d38487d1ae6c7672885c8660","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8la83uy6OBLTHTApfoKm69GFlq32ttAa3sawqgF6QG-3tzfm4xbdYBAK16hMGMcpGcbyyIr4y2SB2qnQUEZdBF_Q1JUYUhpwhCrXcWBVOkuUuCj_CNfKRKjLMXIYBxxcwIKgqCDK5FQ_N7QLRHLF-Ffu5aeUof8mmV0iTRuZMuetxU_FkEC77y3pwWDlAFmihbLhHJQzLU_AMcdXYibJniBeNgl6Ia13K7XgrWw6ySUCRJH3hHoz_k2S-R8YkChaErtJCiLrR3n8JahdgZauw4wwH8LEEbB8Q55FyZfIftw-DsfKjM07Wbebt9rH2HRZvimuTcstP7qlbAUqAAjERR6w1ufn2TssnrANpYqhKjLuHHO4-moj3XwAdtb0ojZJu-9GiSstJs_WDlG56kcj1ygXe5j0kY44pL-2viuGTKvBhFeFswvOARu6r4ZPWwHAd216GfdnB86M_rnMbri7yYvQd1sxGsos7A51J_xR6WmTrFUw4ew_ohvLSTTwpxcbOYmEtZSD2TJFt-UsArc-NGiA1bMF-LwIYcmAOK3tgs2i8ECzZfeaPBS_7XYJaWead4oUF_qvkEcDfIwba7sQtpQS702xOZbPyujveIOtaXJSYz5qAXfuR8KCCyOp5mlwaNYgMrqF6tWdqu7zmCIUmzkxvc8iQQeNq-9_cfZV-hSTR3QH0la-C0LtCJtOBPpu8qtbuqTM_RfhFzbRSiZ5KKb6aKOWwoM2ald-jjoGBbl8AEcKXbkElZCf0mryQCw4fu9XEt80qnHKKI1w3WdH5-tKzVNPC2NJLOOmTdjf5J22mwL1IkSlBp0JujAHwTvLk2zr_nBMviYTqzAzCHf3ncZAchEZIQSzzzRUUO-vpS_7_PH9eKJb5r6E9p2GAnhjQx4SIdUx_eqFkFAfNbyB8-jOQRh8Wy8AgeO_S-w3o4U9n3YAfguS8u95kBmdAqyQ8yZkzbwbQiFCgxl3SYYeiIEo7vhZ58-DZXOTAO-MfhITsnMAf0b49dqKs0O6XUPSLlvsUPo7eIlgZU8KYtvPYC0FjcrhfjtZNq4fxa8vI0G25Oq1ZtFy-zVl75sTKKSf-HwBHLPfEzsXRPLfawJCHEKM8IsK8b4nv79aEfY33SbxBJgYh-_-XxceNMKp9fDYCINd0YAgUbok9BUZyCGwNHdxnzrzUyy7HooT8lVcV_0VN2Byqye08Do1ZyuapuXxHfBV5lWJ0Asx5uhhXctWzCpLqv6x8EHwRdQ6fhJcof8W0i2mauGu0DWmw6rBOsTTde9Q_N_x3VoeaYE5noF4ew7L2CpUk5LHf02cLrOdnhyto79PZ-e4uDKyuF8pIAWYCpkoKhuHpBZLHPRqnJTZKpUiTnQ_V4Mg4b7PlLOZzdOH5-rDlZ236z1TeW7c_r3bZfOP0RLSgdyNCwLbJxBZdOV-_RtgCdwSrlD9lPo0FAfWqbeLmlSABiqwyTdy8cPOeowg89ryCs8X4xSJQkV_jLhUSahS3mdJosZh9SBKjNDtbx_ij4aWO4F4YaE8yiQzH3rpCjhonxn4mNiRo2g3PC3syrm6hLBvF3om0NLW9tpzyoklfZR_NpZUaX2CVylbNfJUhddMupLxd67Jo_W-fbweLY8v0G0ifnkmtQu5IARIAv__ETkezt5z7dVK7MU8eZNjNqwNTBU_se8RdS90wXmXNBi_q6oUnvIgS6K9W9R4egEJJjB-lMqoKwAkWDFbzYmfxBHZL7ks6a-rV2XcfWxPa22sYlYtyN6DNXQbOXzevvmZNhjl1PNrRFQsOOSckLYzVT_6w0wA9H87UGISni_bIMQhvPiREmWSiH9x-fh0ID-YD_hrMLQx-o76ub2tpqTs-IemOgK94NpsJ8NofUTnIDDnEt0a_6QQPuGjdLycA_Fwyc4Y89qZtgi7CbFiOX_GIXOADmg40MJm1uWLsYJ3MXuW0FmRdsLdOTPii-TP_rWtBTZQDGiDEdMxSEurOtW7LWCr1SwPagWST0jHDKOVOG9UH7EtefbHvYxtEsajBBy-NwwuC6ULzoEAj7WmnaGHeO1-c40mk47lM9VVhF_q5UbgcfgamYzpf05U4BBDFooWU6fJ5PwGYyuQ58LoAZnQrTsVDR6AbSrI1xYVfVsn1gGp1-wWUUXxgqfFSKvMR-Vxti2ZAKSrlOfaEsyRJRnVrOaKKm1dWPg1l4SHnAElJ6buPIIsroL9D0F3UITv8hz5EBFrkmH7BM5KrG7Oj__U6nksEpRdXRsTW_FqXGsIKlO__nR7nK2Oj9dI9iFI0NuQT5TlYbIwL1gf37L0PrE1KiUeEbmK0JsT3NTtPp9Sz_sMOsmkFaixGtH27ZW6FKNyqPcpIFHbANuBnNfExMlacC8XBX1Q0YkygPN2FYvAHhujcOy9dfM5r5fHKrKUE2OehohSib0UiOSIc299lSoFb0RYM7dypi4NKrp_Qn5Qlt51vmd0UlSBvxxa3-Er7_QC7SWNwWV8CfSsSekmvK-cCikNIeC9HrF5ijcvJRHHw==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_iunjxrascv","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format will cause retries of checkouts created before deployment to use a different key, bypassing prior idempotency records and potentially creating duplicate charges/orders. Preserve or dual-read the previous format during a transition.\"],\"evidence\":[\"The only functional change replaces `${request.orderId}:${request.attemptNumber}` with `${request.orderId}|${request.attemptNumber}`.\"],\"checked\":[\"Reviewed the supplied diff for idempotency behavior.\"],\"gaps\":[\"workspace.json is unavailable, so co-change, key-format contract, and rollout/migration evidence could not be checked.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":297,"input_tokens_details":{"cached_tokens":0},"output_tokens":313,"output_tokens_details":{"reasoning_tokens":169},"total_tokens":610,"cost":0.00435,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00435,"upstream_inference_input_cost":0.000594,"upstream_inference_output_cost":0.003756}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-02/verdict.json b/docs/evidence/meta-362/degraded-evidence/refused/run-02/verdict.json new file mode 100644 index 0000000..c3433fc --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-02/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format will cause retries of checkouts created before deployment to use a different key, bypassing prior idempotency records and potentially creating duplicate charges/orders. Preserve or dual-read the previous format during a transition." + ], + "evidence": [ + "The only functional change replaces `${request.orderId}:${request.attemptNumber}` with `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Reviewed the supplied diff for idempotency behavior." + ], + "gaps": [ + "workspace.json is unavailable, so co-change, key-format contract, and rollout/migration evidence could not be checked." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-03/receipt.json b/docs/evidence/meta-362/degraded-evidence/refused/run-03/receipt.json new file mode 100644 index 0000000..843f85e --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "35b4cd4da3f258b4b176640bf645576c51c88ab30e3ae9c6983e0265e5d920e2", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-03/request.json b/docs/evidence/meta-362/degraded-evidence/refused/run-03/request.json new file mode 100644 index 0000000..c7e03e9 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners: UNAVAILABLE\n reason: workspace.json not found in repository root\n note: evidence query returned no result; workspace intelligence is unavailable", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-03/response.json b/docs/evidence/meta-362/degraded-evidence/refused/run-03/response.json new file mode 100644 index 0000000..e778aaa --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-03/response.json @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +{"id":"gen-1787283804-XDwujYXDDGWyuynURtT5","object":"response","created_at":1787283804,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283807,"output":[{"id":"rs_039c7faa46f727cd016a87c95ccdc087d1935da5008aeabd88","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8leWZAlQU2euVFOLGn4JqKSZuW7_d4b2dui3bzF8-EE4UDvY4bVyKk-g94TYN-BmuKNkiSLaczftO1HY17FjpkF3Y7vay3UcqbALwDui5-3_SLq6iaGd9HZZ5qlHOVCGWQ7g7BfJ0XOIT-8G_jhGgsaQvGN2bj4SsK5w3S9UvkZ_tSew3of6JGMxw5Ev5pX9hQ8Br630WcvX82hb92Gsg5tr0SHX2zTphhtI6WA4lQxUJeSirBFxi2erM4jlBYXr28OFL4V-wskZcXVfbIfmvYhGMynqCyJVuRFOwV_Dtqu5j5kVhEBcS-GSvgzoJKT_JigDQaduBUJfxpmdx5eF7TQUQyO7O4aCJSUy0OdLemJt-5u-d3wB3Bfr7qtOKSUkUyWeTjE0GwHkhfngtTYE1_PkAFKbggTc02PRo6tsFdfzxQqFkdkhVbkFHlGB6yYfy0Tv1it3CWMpnXaWKiZ-ZrLYtDqGC6uUkAup7wYacitLbzXIUCKu54eEuqV6o7L3sSifx3eitlR0qProuVSf4hoDVK-XUtjSRywN2RLmkeoRymCk22_aHETApdj0JQqdx-29Zg8247TZK0yV8IC1P3PsOxxOYORjFYMncoNNvQ6UaZyfRfhOhQFBJZzjrdOKDUIRbbw4p9XqP7dJd3gcoHoVoLclD4aammgW-SFZ8VqY4EsRg09GaSnsBfHTYPXILb2dXEGJmS8yk_KtLihecEmlMgxW2KPmYKiBUPSPIPp6lT4l0sInC7ossJynrFJW9a2N89dVRcnEObfqT7vt2A5goISCbpFdMbqIkDRWp4Nt-I_Eh39MUQ4T-5wGJqp53cOWWkVf4uJ2vpizZchnrH2271ws93APQs8IM2bkjtbs4ZalVgSisJskcUTpvGDFUi8u8C01I0eXyzTV8htNqH1keRyg9flMmhQtzfN5Jues3Ty8u_rlA_lNTzMPgVHzKwoONt5hzIKr79WVfkcD4Bxs9xlUoo8Nre4T6Wz_Ss9xmsLtUlL0t0Tkb6GXkCan7PB83COf9rrt0rZYn5PGX1ExWeBHjsymHC3cOu4Dc_CDOFr9Qw_InYgNjcUWA-1dOSyyzWDSzFlqp4OhMa6F5g0NIJvR3dzN6shvhh63cTg31ymrr7ZC5ggT9T0fCIMvoQxgpJtX9GjhbY6J4jUlO-983ke4qMN-NdWiaVFpF0bILrQROTHIYMkE7OuGtGDxbJWHkzexlYzSWwLojAJErOXWxpDPEb3N8fYqhTKBPdtQ4HSNKpVZxuDnn6iR3DYKQKhQXDk_B7VOuC8FeM4e3F6JC-YD-WDECf9MxwbN1GpWuZMlz2-_WBoS3hDTQDRklcpmZOxPH6jyy2LW4qwNfQZHYh6255KxXM1zMi2NVTbHMTcz1liCSsg42u3WFg53PNcYFTiVBol6bZ1jMleFdZqRGGtpNj3r-X669Il_FX_O9cTCwQdovgv5ZNqK7FnOyXYo3w8kLKU8heP6jgCcUXgqhQzE-Ze3jiHeOBylD51-bffA7HbeB08KRr9AkjHSVMdj26tJQbtr-zKb-s46tMugYWP2epQLHVCkTZ9F0ZU094iA0bNWPynx7MharYma9JuxajB_2wRCsA7tKOawPOFvn_Dc_JK-l6-6L7t_vJfE6V3keFLtqBAvAdNhbIzmRrH_wW2Zk-J-kNP8FMnXLcP_1aaPNchFoo44RTcDuDBO2PeW1B3v6IP5H2AklopJg1H0c7E-Q1O0XlHMOF1pIIxtYRz_OynKFoFNBHG2j0bJvCywnlbckw8MZftrWAulKocTvE4R3GXdLdgOz3l9ksxKYdTaTh6OCoWn5fPQDvGFbeaVTx1cNsZQTaVouH4QZ5Fja65s3Pn148bTAy5dZgr5Z8RK567JNbu7VRHFGamUC1wQ465rbVyOShT9PFRk6SnPFkoAX4fqqYHnESjA4-yzoe1eyidnZpf7lLiuwd1s8Gb4cVH9aDBSg3an_gHmcKbLMaVjJuClFYRIRBMTTZZiuDeQkmOiNvaoboqIOaF7UN3wqCn_wRQCUgPEXh6ESw0.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_bokjk5sriua","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff changes only the delimiter used to construct the idempotency key; both orderId and attemptNumber remain included.\"],\"checked\":[\"Reviewed the supplied checkout.ts diff for key-component retention and obvious construction errors.\"],\"gaps\":[\"No workspace.json or co-change/consumer evidence was available to verify whether the serialized idempotency-key format is externally persisted or contract-sensitive.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":297,"input_tokens_details":{"cached_tokens":0},"output_tokens":204,"output_tokens_details":{"reasoning_tokens":101},"total_tokens":501,"cost":0.003042,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003042,"upstream_inference_input_cost":0.000594,"upstream_inference_output_cost":0.002448}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/refused/run-03/verdict.json b/docs/evidence/meta-362/degraded-evidence/refused/run-03/verdict.json new file mode 100644 index 0000000..e902664 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/refused/run-03/verdict.json @@ -0,0 +1,15 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the delimiter used to construct the idempotency key; both orderId and attemptNumber remain included." + ], + "checked": [ + "Reviewed the supplied checkout.ts diff for key-component retention and obvious construction errors." + ], + "gaps": [ + "No workspace.json or co-change/consumer evidence was available to verify whether the serialized idempotency-key format is externally persisted or contract-sensitive." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-01/receipt.json b/docs/evidence/meta-362/degraded-evidence/stale/run-01/receipt.json new file mode 100644 index 0000000..b533997 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "85b8eb928681d0544446451918349ba88379a66a7a97651efc05695c6814c194", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-01/request.json b/docs/evidence/meta-362/degraded-evidence/stale/run-01/request.json new file mode 100644 index 0000000..91d2999 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners (1): src/utils/format.ts\n src/utils/format.ts: support=2, occurrences=3\n evidence: last observed 180 days ago, basis revision abc123 (stale)", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-01/response.json b/docs/evidence/meta-362/degraded-evidence/stale/run-01/response.json new file mode 100644 index 0000000..9eb8670 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-01/response.json @@ -0,0 +1,9 @@ + + + + + + + + +{"id":"gen-1787283774-pRwC2jfHlkV1aAl0GB5H","object":"response","created_at":1787283774,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283776,"output":[{"id":"msg_tmp_sc6vda2g7rq","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff only changes the delimiter used to construct the checkout idempotency key from ':' to '|'.\",\"No supplied evidence indicates a required synchronized change in the stale co-change partner src/utils/format.ts.\"],\"checked\":[\"Reviewed the proposed change in src/routes/checkout.ts.\",\"Considered the provided workspace co-change context.\"],\"gaps\":[\"No evidence is provided about downstream consumers, persisted idempotency-key compatibility, or delimiter constraints; this is a gap, not approval.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":311,"input_tokens_details":{"cached_tokens":0},"output_tokens":122,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":433,"cost":0.002086,"is_byok":false,"cost_details":{"upstream_inference_cost":0.002086,"upstream_inference_input_cost":0.000622,"upstream_inference_output_cost":0.001464}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-01/verdict.json b/docs/evidence/meta-362/degraded-evidence/stale/run-01/verdict.json new file mode 100644 index 0000000..837354a --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff only changes the delimiter used to construct the checkout idempotency key from ':' to '|'.", + "No supplied evidence indicates a required synchronized change in the stale co-change partner src/utils/format.ts." + ], + "checked": [ + "Reviewed the proposed change in src/routes/checkout.ts.", + "Considered the provided workspace co-change context." + ], + "gaps": [ + "No evidence is provided about downstream consumers, persisted idempotency-key compatibility, or delimiter constraints; this is a gap, not approval." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-02/receipt.json b/docs/evidence/meta-362/degraded-evidence/stale/run-02/receipt.json new file mode 100644 index 0000000..b533997 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "85b8eb928681d0544446451918349ba88379a66a7a97651efc05695c6814c194", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-02/request.json b/docs/evidence/meta-362/degraded-evidence/stale/run-02/request.json new file mode 100644 index 0000000..91d2999 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners (1): src/utils/format.ts\n src/utils/format.ts: support=2, occurrences=3\n evidence: last observed 180 days ago, basis revision abc123 (stale)", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-02/response.json b/docs/evidence/meta-362/degraded-evidence/stale/run-02/response.json new file mode 100644 index 0000000..c3d21c4 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-02/response.json @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283776-WFCNEgGeIBCoV8zuMAMT","object":"response","created_at":1787283776,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283782,"output":[{"id":"rs_03855bb0a383db5c016a87c941390887d18bc2b6a12d61d54a","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8lEp6I5GGtg3hvM0GkcMp4fHG-MD-vxp-j3qRee8L-MW9ere5xl9R5KYfzVsE1_XFECwQY5pUfkrjf7-rnRr2_GwnRfm9SMqOIWvK1-57MmAzm1IbhlmoBYihf1s6BZ5R5dbjrvMOUuMJ15XaqfyjFrX7UwND_CrjKLXDWJMhxqmDEQnQTzeMNYL8CJ6GqwIJdvyudu7cHvF3vNYuOv3EVwXXAoAmSdBsTWT9G8HF14INvtKXraODfrcE_GiLDg_K_b18mSjiFTSeNn6LyOXrOK0PCq4A-AB7rwkuhrZVhz6Ak08X1YQP0_TLpNm2dEncHvb_gEIKKdd7Co1akRKAyimtVKf-DGn1ylokvu7MHlzo4Dy9QNx6-O5CEjL9Yw-jbbnIX6Crk1MvrJl9zA21IgkIX9sVV-SZkVVAp2qZrJ753sjNTeuFEGB7OZ_0617iZepxCqcklrHSftu9ER3mcjfNpjUbF7eir2C_cokkTAfHfo9Yf27NuQ3KOIQwJHguRc1E1C1jAoHRnUmUed-wgctxGYQVndKm88Dk8Kq0d0bNcvLjpHUqSPbq47mVWm3sQZkawzAszk8EoqTKQOJjk4sb3MSi4ysGTBmhrerbLtHDPDo2OziJsI3XLS8Pb4MMs1fsSb88ggz7Ukf26JddS1yCcn6HpHjXPSa3ud8LssJk49X5rhhz0uHAdO9O75hMHLWyllUcJNqy-dOv6_g9tr0v8sJorBd1bDH2mIEVQz2kXHMtIaM-paBGNBhRl6dddm8TDtd8SWUHRj9IHQwaRw22sGku7GvY0rZ3g9U58H-NV8L02MukGXFS_rUUsEjISc3UF1PmOodnag-TJCWI9jhB5r_BcXUcqjE_1DK9BZnUNpp76zS6Chq4i4sKrPyK1-YLhcrZRyZiDLHZ3LBcC_M47HbiqKWa3KFDwCJ9EJbe6lRikXoMe1_VxuJ-zboRJBpOSRj_BNAzIjFjaTIZA6_Dh8Z99ULAHiGkkp0JQK8veAZ_k6haVxZcTEjp-oE7haSSWNhD27qy84cpwGfKJ9tmt0zEGald7yS9Qr1--PHn0z_lEeeYq59ANcbvQZvEZnW0UGRBeZu0AwG7g_grv-DM5aea3YyxkGE-g1ICzAqb6uao2ATuz4Fs2E0HKoCBbScXvbTCA3CXIyTU7Jn_g_YnddGwwDgn3--oUKhE_ckU7ElxX_LxWSWndX-TeAWK9bXYRbcEdR-JLcXtnHUK0_LfRRNVRr0eGRxS5-GNQZn_CfVGDgGRYrpzDcdVrcHjKCv_W-mLlq2k73nc0TpW8VJDeRkc-WFuBtIbLx1BwgMkSVwne3VaGvTVd027fCbkYFREz5Y3MBMGuZF_x-hYOZZPUUJ92WgQfexmXtx1hI3TxWdFQSp4pqpNMiqFvna8tYldgxORjOcRONFJpH9SgW5v1PGdQUiFWO0KAm9rUF6VadHCWOD13GouAC-3dsx8tXkqTACbziaxc3w_aAjjMfzCz8pFDEbjiimzjy2U6iAnBrqCW4L2k0SfH370GDcFH2Mx-ZdyZ5VqQE3Sv4KObZd2NVNDVzdlh0x489sxgfU62a2jDvcYaAvej0cq477Tdmp7KuHm_ATgjMZ5Z5FVfsTLcSo4QquAHSCISP5yBbIHHEpL_nmq4Aay03OHKhpvbArWsJdQW8N25Mk1ZNtsHr9WldEYdjjlCWwKzyY3-OT1WJBSGowi1mtqm5yhdmsaw3OyNG-Ay_Qdtqn5-PSFncXfewzhl-BMJbbGPDp1oOjJuoyLTQAaxe4JKWfNl8aeR9eMNuYHVa138XEH7dyEMywZQGd0VBUlSt3QamPw0KNf_RHfkDDZWxJ5O4YJeY07tZ8__CrD0zB1DutfcDEQVyShoyBrcNU1iXx3gmpeyzVG17HKLP3SAFG7VnebOMUYnJUTJ5paOJeFPURKP-JQDvcRf1jlJsmSsrPsGRZHPD1dwXXigc984M7TSrfq0ZvSEgRwcN-JQ8tbHLD2AuCM8ST5g227c6uVC6OYyzNhsvgHWMBuwh7ZfjvIkw_XowdfTQRs_0nqGcObG5mosuRcF7aP9EIbzOrrdZh0SwN9OPPi02SZ5WQAi0ohIDw_IOgp1ehUA_UkwVmy4jHsQcpR-uC_3VdW187vT8TN2sNrMJAgNWulU17ZHlAF_MzGnfdetKjFEvmY40VT-lYYihLu5pdikSAINFHWkr3uGX1q9c9cCp53YD-MoxaIM_fGnT9Rnr-NpLNJTGpQh934kmsX-zF-zifdhjC_Zcw5g702BXV26thmPe6GHqrVUbxv9b3FtHO3gu1oxPxjp0cBQF239JwAPtNd8ZSqNRhPxoQSH1VaCTYwK6FXHHxuufiYaD-5bKMJUnrR7tJX_FHkEqqxh-gU1zKyRtp57-76UuQGtD86YyDQ0eCtZFweGRY93Ttu61K9KJh6NMZf8ritfyJMCEjG0oFNetndewoLLfAeCA8oL3TaWDUNb2-rMjCGki9StAVlF8kl5X_yuvCaF1od2pgDU3KDdG3GE7H0TQpLr5JhNB0V17IMgMATwOnHQ0Gvtgveypa96WBs0YMC5ajpyh77lwltnk07bPdEaOA40hvUOgFVagxX0vJNwrgUIJriQ5NFabxnGDjgXAAOZc2mM95hDQ2GQyXdx9rDCD3Pfo8dKtHM89YDZs4_WAvDVod4F8EMkxyXfY5gGedOy4m-FsBfApP9zw1vGdYldK58fcQf6zm1EL4tRvorNTkC36HwOSn8PWAdnogDh68UEFG5FrLh3T1rgOve6KvpQsQX7IjMSYXdxNEvW1CAxnXnBC2l7-IDoGAwlYwWwRde9d_3T57JpcTLOmSOGBkv9ehlXv7O2xdMphU8GsqrBy1lJmiB-_Bli2zZmxLAa8iX9cO30RkX1Un1mwcucVU7KNECEh8EjEAW-vNkdnfoO-WRfzuaqMr9nMpEIKQptUCgvBJtkFctfjaidZjyXR_kTDdEXcIyCF9JCxjPUuvwqa2M1ue6_HbHtne1oQ3bVh24WhfeCalwJevhfs37nWvYq7WZ3Zi9mHZ1eatPBvN7vBdxd5b3IJ8xae2dZJdOFiMJotYkYwyTC5zwOVGBIZe-l-glvx_7SGeVW6NpkM7inRSK5YRzmJ.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_6vea21t11vn","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the delimiter changes every generated idempotency key. Retries of an order attempt that was previously submitted with `orderId:attemptNumber` will use a new key and may be treated as a new checkout/charge rather than an idempotent retry.\"],\"evidence\":[\"The diff changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` in `createCheckout`.\"],\"checked\":[\"Idempotency-key construction in the supplied diff.\",\"Provided co-change context.\"],\"gaps\":[\"No compatibility, migration, or dual-read/dual-write handling is shown for existing idempotency keys.\",\"The supplied diff does not show downstream idempotency-provider behavior or retry/rollout handling.\",\"The listed co-change evidence for `src/utils/format.ts` is stale and does not establish whether a related update is needed.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":311,"input_tokens_details":{"cached_tokens":0},"output_tokens":467,"output_tokens_details":{"reasoning_tokens":267},"total_tokens":778,"cost":0.006226,"is_byok":false,"cost_details":{"upstream_inference_cost":0.006226,"upstream_inference_input_cost":0.000622,"upstream_inference_output_cost":0.005604}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-02/verdict.json b/docs/evidence/meta-362/degraded-evidence/stale/run-02/verdict.json new file mode 100644 index 0000000..f4eaa61 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-02/verdict.json @@ -0,0 +1,20 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the delimiter changes every generated idempotency key. Retries of an order attempt that was previously submitted with `orderId:attemptNumber` will use a new key and may be treated as a new checkout/charge rather than an idempotent retry." + ], + "evidence": [ + "The diff changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` in `createCheckout`." + ], + "checked": [ + "Idempotency-key construction in the supplied diff.", + "Provided co-change context." + ], + "gaps": [ + "No compatibility, migration, or dual-read/dual-write handling is shown for existing idempotency keys.", + "The supplied diff does not show downstream idempotency-provider behavior or retry/rollout handling.", + "The listed co-change evidence for `src/utils/format.ts` is stale and does not establish whether a related update is needed." + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-03/receipt.json b/docs/evidence/meta-362/degraded-evidence/stale/run-03/receipt.json new file mode 100644 index 0000000..b533997 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "85b8eb928681d0544446451918349ba88379a66a7a97651efc05695c6814c194", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-03/request.json b/docs/evidence/meta-362/degraded-evidence/stale/run-03/request.json new file mode 100644 index 0000000..91d2999 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners (1): src/utils/format.ts\n src/utils/format.ts: support=2, occurrences=3\n evidence: last observed 180 days ago, basis revision abc123 (stale)", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-03/response.json b/docs/evidence/meta-362/degraded-evidence/stale/run-03/response.json new file mode 100644 index 0000000..08919e5 --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-03/response.json @@ -0,0 +1,9 @@ + + + + + + + + +{"id":"gen-1787283782-zZlWyhTdYOC5kfjZe7yz","object":"response","created_at":1787283782,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283784,"output":[{"id":"msg_tmp_h49sjhaing","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff changes only the idempotency-key delimiter in src/routes/checkout.ts.\",\"Workspace context identifies src/utils/format.ts as a stale, low-support co-change partner (2 supporting changes; last observed 180 days ago), which is insufficient to establish a required accompanying change.\"],\"checked\":[\"Scoped changed file: src/routes/checkout.ts\",\"Provided workspace co-change context\"],\"gaps\":[\"No tests, idempotency-key format contract, or downstream consumer evidence was provided to confirm that changing ':' to '|' is compatible.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":311,"input_tokens_details":{"cached_tokens":0},"output_tokens":133,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":444,"cost":0.002218,"is_byok":false,"cost_details":{"upstream_inference_cost":0.002218,"upstream_inference_input_cost":0.000622,"upstream_inference_output_cost":0.001596}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/degraded-evidence/stale/run-03/verdict.json b/docs/evidence/meta-362/degraded-evidence/stale/run-03/verdict.json new file mode 100644 index 0000000..ab128cc --- /dev/null +++ b/docs/evidence/meta-362/degraded-evidence/stale/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter in src/routes/checkout.ts.", + "Workspace context identifies src/utils/format.ts as a stale, low-support co-change partner (2 supporting changes; last observed 180 days ago), which is insufficient to establish a required accompanying change." + ], + "checked": [ + "Scoped changed file: src/routes/checkout.ts", + "Provided workspace co-change context" + ], + "gaps": [ + "No tests, idempotency-key format contract, or downstream consumer evidence was provided to confirm that changing ':' to '|' is compatible." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/all-results.json b/docs/evidence/meta-362/preflight-rejected/all-results.json new file mode 100644 index 0000000..a07557f --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/all-results.json @@ -0,0 +1,493 @@ +{ + "S1-billfold": { + "baseline": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format can cause a retry of a request first submitted before deployment to use a different key, defeating downstream idempotency and potentially creating a duplicate checkout/charge." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Deterministic idempotency-key construction", + "Backward compatibility for in-flight retries" + ], + "gaps": [ + "No evidence of a migration/compatibility strategy, retained legacy key lookup, or confirmation that no pre-change requests can be retried." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for the same order/attempt. Retries that span deployment versions will no longer match prior requests and may create duplicate checkout/payment operations." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency-key construction in the supplied diff.", + "Cross-version retry compatibility implied by exact idempotency-key matching." + ], + "gaps": [ + "No migration, dual-read/compatibility strategy, or evidence that old keys cannot remain active during rollout is provided." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format can cause requests that were previously deduplicated under `${orderId}:${attemptNumber}` to be treated as new operations under `${orderId}|${attemptNumber}`, risking duplicate checkout creation/charge during retries or deployments." + ], + "evidence": [ + "The only change replaces ':' with '|' in the generated idempotency key." + ], + "checked": [ + "Idempotency-key construction in the supplied diff." + ], + "gaps": [ + "No evidence of a migration/compatibility strategy, downstream provider expectations, or proof that retries cannot span versions." + ], + "artifactDir": "" + } + ], + "treatment": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format changes the identity of every checkout attempt. A retry after deployment for an attempt previously submitted with the ':' format will use a different key, defeating idempotency across the rollout and potentially permitting a duplicate checkout/charge." + ], + "evidence": [ + "The only proposed change replaces `${request.orderId}:${request.attemptNumber}` with `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency-key construction", + "Cross-deployment retry compatibility" + ], + "gaps": [ + "No migration/compatibility handling is shown for keys created before the delimiter change.", + "No evidence is provided that order IDs and attempt numbers cannot contain the selected delimiter or that the downstream idempotency provider treats this format change safely." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format without backward compatibility can cause retries of an already-created checkout to use a new key and be processed as a distinct operation, potentially creating duplicate checkouts or charges." + ], + "evidence": [ + "The key changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}`; the same request inputs therefore produce a different idempotency key after deployment." + ], + "checked": [ + "Deterministic idempotency-key construction", + "Retry and deployment compatibility" + ], + "gaps": [ + "No evidence of a migration, dual-read/compatibility strategy, or confirmation that previously issued idempotency keys cannot be retried during the provider's retention window." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format can cause retries created before and after deployment to use different keys, potentially creating duplicate checkout operations." + ], + "evidence": [ + "The only change replaces `:` with `|` in the key derived from `orderId` and `attemptNumber`." + ], + "checked": [ + "Idempotency-key construction change in `src/routes/checkout.ts`." + ], + "gaps": [ + "No evidence of backward-compatible key lookup, migration strategy, or confirmation that existing keys are not persisted or retried across deployments." + ], + "artifactDir": "" + } + ], + "perturbation": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format causes retries of attempts created before deployment to use a different key, potentially bypassing prior idempotency protection and creating duplicate checkout charges." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility, migration, or version-handling logic shown." + ], + "checked": [ + "Idempotency-key construction and retry compatibility across the format change." + ], + "gaps": [ + "No evidence of whether outstanding retries can occur across deployments or whether downstream payment processing normalizes or otherwise handles both key formats." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for every existing order/attempt pair. Retries spanning deployment or callers reusing prior keys can bypass previously recorded idempotency state and create duplicate checkout side effects." + ], + "evidence": [ + "The expression changed from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility lookup or migration shown." + ], + "checked": [ + "Idempotency-key derivation in the supplied diff." + ], + "gaps": [ + "No evidence of a rollout/compatibility strategy for existing idempotency records or tests covering retries across versions." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for every existing order attempt, so retries spanning deployment may bypass prior idempotency records and create duplicate checkout operations." + ], + "evidence": [ + "`idempotencyKey` changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency key construction and retry compatibility." + ], + "gaps": [ + "No evidence of idempotency-store migration, dual-read compatibility, or assurance that old keys cannot be retried after deployment." + ], + "artifactDir": "" + } + ] + }, + "S2-integrations": { + "baseline": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Hard-capping `findCoChangePartners` to 10 silently changes its returned result set and may omit valid partners for callers that expect all matches." + ], + "evidence": [ + "The only supplied change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence is provided that the function contract permits truncation, that callers handle partial results, or that `partners` has a deterministic priority ordering suitable for selecting the first 10." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The change silently truncates co-change partners to 10, changing the function's observable result contract and potentially omitting valid partners for callers without any pagination, limit parameter, or caller-side adaptation shown." + ], + "evidence": [ + "`findCoChangePartners` previously returned `partners`; the proposed code returns `partners.slice(0, 10)`.", + "The supplied diff shows no ordering guarantee or documented rationale that would make the selected 10 deterministic or sufficient." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No tests or requirements are provided establishing that a maximum of 10 partners is intended or that consumers tolerate incomplete results." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "This silently truncates co-change partners to 10, changing the function\u2019s result contract and potentially omitting valid dependency/co-change relationships for callers." + ], + "evidence": [ + "The only behavioral change is `return partners.slice(0, 10);` replacing `return partners;`." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence that callers expect a maximum of 10 results, that this limit is documented, or that ordering is deterministic such that the retained 10 are meaningful." + ], + "artifactDir": "" + } + ], + "treatment": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The new hard cap silently drops co-change partners beyond 10, changing the function\u2019s observable result contract without evidence that callers expect or handle truncated results." + ], + "evidence": [ + "The return value changes from `partners` to `partners.slice(0, 10)`, with no truncation indicator or parameterization." + ], + "checked": [ + "Behavioral change in `findCoChangePartners` return value." + ], + "gaps": [ + "No caller analysis, requirement rationale, or tests demonstrating that limiting results to 10 is correct." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The exported function now silently truncates results to 10, changing its apparent contract from returning all co-change partners. This can omit valid partners for existing callers without an opt-in limit or documented behavior." + ], + "evidence": [ + "The only change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Behavioral impact of the proposed return-value change.", + "API compatibility risk for callers of the exported function." + ], + "gaps": [ + "No evidence of a specified 10-item limit, caller acceptance, deterministic ranking before truncation, or tests covering the capped behavior." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The change silently truncates co-change partner results to 10, potentially omitting valid partners for callers that rely on the function returning the complete set." + ], + "evidence": [ + "`return partners;` is replaced with `return partners.slice(0, 10);` in `findCoChangePartners`.", + "No ordering or documented limit is shown, so the omitted partners may be arbitrary from a consumer perspective." + ], + "checked": [ + "Proposed diff in `src/services/workspace.ts`." + ], + "gaps": [ + "No call-site, API-contract, ordering, or test evidence was supplied to establish that a 10-result cap is intended and safe." + ], + "artifactDir": "" + } + ], + "perturbation": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The new hard cap silently drops co-change partners beyond the first 10, changing the function\u2019s completeness contract for callers." + ], + "evidence": [ + "`return partners;` is replaced with `return partners.slice(0, 10);`." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence that callers expect a maximum of 10 results, that truncation is a stated requirement, or that partner ordering is deterministic before selecting the first 10." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Hard-capping the returned partner list at 10 silently drops valid co-change partners and changes the function's existing result contract." + ], + "evidence": [ + "The only behavioral change replaces `return partners` with `return partners.slice(0, 10)`. No ordering, caller handling, pagination, or truncation signaling is shown." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence that all consumers require at most 10 results, that `partners` has deterministic priority ordering, or that truncation is an intended documented requirement." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The function now silently omits co-change partners after the first 10, changing its apparent all-partners return contract and potentially producing incomplete workspace results for callers." + ], + "evidence": [ + "The only proposed change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Output behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence of a documented 10-result limit, caller compatibility, deterministic ordering relevance, or tests covering workspaces with more than 10 partners." + ], + "artifactDir": "" + } + ] + }, + "S3-syncpack": { + "baseline": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now removes the property addressed by dependency_type.path by splitting its final JSON-pointer segment into parent pointer and property name." + ], + "checked": [ + "Strategy match coverage for PinnedVersions", + "Pointer splitting behavior for nested and top-level slash-prefixed paths" + ], + "gaps": [ + "No tests or surrounding PackageJson::remove_prop implementation were supplied to confirm empty-parent-pointer handling, JSON-pointer escaping behavior, or the expected format of dependency_type.path." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and leaf property name, then calls remove_prop on that parent/property pair.", + "A leading '/' produces an empty parent pointer, allowing removal of a root-level property." + ], + "checked": [ + "PinnedVersions strategy handling", + "JSON-pointer parent/leaf extraction", + "Existing strategy branches left unchanged" + ], + "gaps": [ + "No tests or descriptor-path contract are included to confirm all PinnedVersions paths contain '/' and use the expected JSON-pointer representation." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now derives the parent JSON pointer and property name from the configured path, then removes the exact pinned property.", + "The existing VersionsByName and InvalidConfig behavior is unchanged by this diff." + ], + "checked": [ + "PinnedVersions removal-path handling", + "Existing strategy branches" + ], + "gaps": [ + "No tests or path-format contract are included to demonstrate behavior for root-level, malformed, or slashless paths." + ], + "artifactDir": "" + } + ], + "treatment": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and final property name, then calls remove_prop on that property." + ], + "checked": [ + "Match handling for Strategy::PinnedVersions", + "Pointer splitting behavior for paths containing '/'" + ], + "gaps": [ + "No tests or surrounding type/path definitions were supplied to verify that PinnedVersions paths are always slash-delimited and that an empty parent pointer is supported for root-level properties." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The added PinnedVersions branch derives the parent JSON-pointer path and final property name, then calls remove_prop on that property.", + "No unrelated behavior is changed in the supplied diff." + ], + "checked": [ + "PinnedVersions removal-path splitting", + "Existing strategy branches left unchanged" + ], + "gaps": [ + "No tests or surrounding type/path-contract evidence were supplied, including whether root-level or slash-free paths are valid and how remove_prop handles an empty parent pointer." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The PinnedVersions branch derives the parent JSON-pointer path and final property name, then removes that exact property." + ], + "checked": [ + "PinnedVersions removal logic", + "Consistency with existing PackageJson::remove_prop usage" + ], + "gaps": [ + "No tests or call-site/path-format evidence are included for root-level or malformed dependency paths." + ], + "artifactDir": "" + } + ], + "perturbation": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and final property segment, then calls remove_prop on that parent/property pair.", + "The implementation avoids attempting removal when the configured path contains no '/' separator." + ], + "checked": [ + "PinnedVersions match handling", + "Parent/property extraction from dependency_type.path", + "No changes outside removal behavior in the supplied diff" + ], + "gaps": [ + "The diff does not show the format/invariants of dependency_type.path or PackageJson::remove_prop semantics, so handling of root-level, escaped, or malformed JSON-pointer paths cannot be verified." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now removes the final JSON-pointer property from its parent object, analogous to VersionsByName removal.", + "The split preserves JSON Pointer escaped slashes (~1) because it only splits on literal '/' separators." + ], + "checked": [ + "Match handling for Strategy::PinnedVersions", + "Parent-path/property-name extraction", + "Removal invocation" + ], + "gaps": [ + "No surrounding code or tests were supplied to confirm that dependency_type.path is always a non-root, slash-delimited JSON Pointer. A path without '/' would silently result in no removal." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and final property token, then calls package.remove_prop on that property." + ], + "checked": [ + "Strategy::PinnedVersions branch", + "Root-level pointer handling via empty parent pointer", + "No mutation outside the requested property removal" + ], + "gaps": [ + "The diff does not show PackageJson::remove_prop semantics or the invariant that PinnedVersions paths are slash-delimited JSON pointers." + ], + "artifactDir": "" + } + ] + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/response.json new file mode 100644 index 0000000..0c85b60 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/response.json @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283280-0k2nUGFX0V1k6Z8EWRKW","object":"response","created_at":1787283280,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283285,"output":[{"id":"rs_0d0945661cff4e17016a87c751426c87d1b3c56b5b9b08cacf","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dUp5RS4GTv8j7gJLot-jhRwsWZ1F3ip_U-AAhPpMX3CqNOjV9N_UtChCfDwSU-44IYLBUTOCQpqwxrRNgoJzKceswXsaKONYIHXMP_IK9xq-UvCVD97dMBD1GT1u8KotvN5iaPq962xg4FCnnWbaOjWu0yCqQJ4Ds5UAlo8BoihD7AMlCqoJcbxXD_NwIzFoZoEfKwZxapHbewkU5t3QouCRidHnsIHs8yiofGQNqpxBWUWHPDNN9kLqMS8br0oxhcAlS44c6g2VUvl6uhuyK9FXN-l73mDnBn1CEIzALD4520Eje1cjsLe4XIwSF33JjNJG0aEU7wiflxd2gEDa_-4pnRG-W3xKpjp30V2IM3kR7rLw2nz-utr-TtPHEFjIkpRRD5ImTX87WdZCR7DkET1XzQagI8oceKhmclpqXuXtJ6UCaMiBOCEUqrQuYc296hvSGCkFx0_PBHNlky2pKCvIb07-k3YADu6zfoJo5EzBTOP9uyjxwx-eKp383opb27RQDPOOm_7ZFnOaFFFlgcvL3BKsVGfIRPmsPqeUuz_rBzDfRILZTMN230KfCj8jloyxha-9JVkJ5HF0b0FoQG3PwsN7pGXe27NXJLf_IS-8ZrROXVubfvNx_bJYYI59KY1Bnne_uCAOkKlSuYhZmw3cuoTuhIYM5VGTs0eqSq4SuBVcN2c9dYcJIlz-3xgYYsfwktpmGc89AmhVOSyOVWtklxfYeoDrofI9r6IRaMMW9Ji9iUw8GxAllHsaLAJMlqV7-T90DahI0ij48B9wkEi5nTCFvHdtZ8f3LwEE1vRo0kZUFqCFu7CmSBueKwExm2CRHPjDUG-WUf6ZUV2SyTCRHSXM9B98kWFrp1-68A4UwQGm-7RggOOg8yd6mozOTlyE6FQuOFdTadViF8Czs1k2MO7T2kJqbhFuUJqp8jAGceq1ID-pj6ikaNDqO08a60PzaSI9GFQa_A04TKwO7CK-g5Go5QWPyN4cQRMW-8rnK804nVzMw700_TKbkD7eCysxRG1gcRpMPOU7mmkSNY0PYR1x2GO76ipYC2QXxCpgAJIPFR8qaHl-z6QZyD_II2WK3R9OX5NLHRz_cIcGjnkoootL9pQgvorEIw8MPbrLYPgOyFR3jv5aQccQNps3VK6jSMk0lT2opggA8BtxCZcfpVJt-62iKQC1GC-9hS4kbKDc2c_YAObchHbjIR_fjA1-tzBLeJnLQyMOrjXpYIkyY5cVPkr4gsJ9VOrAbQoXVepViX9_XLkF0XcupsU_vvUZJPK20bm4J1PMJVErR0TqX1KXoHiElfv-zlwqA82O5xG8zMVC68Q1wN4ltF0FLLYIuxsxI5ocT7M_s8SoDJXxS4agj7cFw_6afYaX-zXyDnnHGe40c9zH0yraMgN1ffYzkcL0XrpEFJInB7DkUp7Cy1K46Uw-p0KgjiUU8VXlPDK6rdPm1s2LHuDgWyDjRDQefcp79_igLJl8wlHXJ3Loyr_Hm2LRiRX9Mx3EiKbah9fMNVebbR8tM89Dd7T07HzUYXfSizgmWFgbEPXtdnF1sE3OrqsSTNXPs64HlmJdy6yQA88EJEfpUYjsBEUB5wEWeGlSX35qykMkXiJPdS2lLLHvlzPvC9TN-w7EQe85z4SIvjj-BPOfLphnhE24QRzT6ghwvGcdy3TXI1KITR9Uq6QONpWLt7Bwi5G6OndlqCYUy6BhmcMKx307QW7EAP05wo9NxrTvYNbWpBuGFooUKFas_CT87L3bgbWkXuWlvz0oB4PUk2sNH15_HzLPBEBfsHIdeeCcfsjtOnuvtAiZa-oRzFpI6IQNwsPBCEMQRQrN92gtD1YftD3Duf4iOd1QSkZDGpLG_wYeW8hqLH_OFyZbc_4jM2ep1L4gLJsbaFmHqQ-Uo7M-JaZO5YTZZ60GuyWdMOQF6JGVNdU4HUHXRQW0CUFYgTkzOsPjcEL5BzoaUUJHPV59ShGWV8gbiKQ6pkrVlRJc19wWSisdI6ooRbk9l3UiqnwSIBXzhZ5VJJFR6e5mmSWsVjFjYmi0NNjhYlSMaMlz6CS5485QjOj_c5H8aO1NTYJGcyxeRbveoEcQH1c2382Av2yrf71BvQFqVVPAMSjmyeNh2pCOYwclsS0XT7clKmrbo16w-gnC20qKLDfcMOv5R7YJb4YecD8F3NsgPBDR6B1O1tr7KtLgSgQjMdPSI-I7q-yd1UCUSAfNHFH4Gn8HRab1SiFC6UGMBJAcEuRDTTJA-Rc5ZobHr6Po8TBg_wNrn_Zmxei-orwILX_LvQNVwiegF9HGCyjnTtKi-UmqGGmaYFhzXTCZQPp7ZNuTEwXz77byQu8_b_0iEtzU6yhJuQRusgezppU4qVCC-E6W8pi1-aIVmBI3nkl_6BerOfA8ByHyF2_J3t6oJMxZd5UwpjivX1-5h-0HYxlMQeLnKnhqkwGu-2Kq0p0OPGA87LVbGQNWjms711boFLoHWr7BMgVv9CTcFDt4dS_iw3p0YxZCzx3pvI43wvd-_7eocEWDqMEPJvqXZS5ouKkeTYf57GM_LzCaeCRMSMaqZltaBWFPtV4HcYnoDSYQk9hhkXqBCFxZFk-vRWuBoZQSzFWjMhgPoAT9QacArBV8hFbQTvA_qWSMwyGkCyy_a-VYhY1sPGWIdSV334bu3-cBDKQRRDotJWMJXh_AHqETJXI14p6-3-1MV0V5d5nCKCe3ffAfOHqlJLZNMXN-cNs8H66Hs52vceyN86j1S-sUCCVbHKfoINphRHcwTtpzHPhpuMFnJG0Kj2wHEADQrHFf8v5RK-OowZyN7U8-bBbjklIbXxaf9gIJJiZz4LzLwgTUV0oGrbHeYGbLaVcMZeJu9EPNpA_3bHqSXoz_IeSe10ElOQq5-kho_QmhHyPC6EfYWsJPtg1IVKsbihecIyC2KGDAbxANx26sDf6OrlQots9sQiSM6xE-NVIr4d6_etzPzqwbPR0thiorMYvEGotT_6pxGO52h7wzTm9sI3ZZlshZ8GkTULDENQ1Q==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_gvwebbgspls","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format can cause a retry of a request first submitted before deployment to use a different key, defeating downstream idempotency and potentially creating a duplicate checkout/charge.\"],\"evidence\":[\"`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`.\"],\"checked\":[\"Deterministic idempotency-key construction\",\"Backward compatibility for in-flight retries\"],\"gaps\":[\"No evidence of a migration/compatibility strategy, retained legacy key lookup, or confirmation that no pre-change requests can be retried.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":387,"output_tokens_details":{"reasoning_tokens":239},"total_tokens":634,"cost":0.005138,"is_byok":false,"cost_details":{"upstream_inference_cost":0.005138,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.004644}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/verdict.json new file mode 100644 index 0000000..b148910 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-01/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format can cause a retry of a request first submitted before deployment to use a different key, defeating downstream idempotency and potentially creating a duplicate checkout/charge." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Deterministic idempotency-key construction", + "Backward compatibility for in-flight retries" + ], + "gaps": [ + "No evidence of a migration/compatibility strategy, retained legacy key lookup, or confirmation that no pre-change requests can be retried." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/response.json new file mode 100644 index 0000000..8d75b65 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/response.json @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283286-WTUEWSQMVh2umZbP028o","object":"response","created_at":1787283286,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283290,"output":[{"id":"rs_0951cb0949031945016a87c756bf4c87d18945c6d2bbe55756","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dYCAj-Mx38Yg6YzOvZ3Hz8SCLIMzku-cE37WZcESCQFeonNg4lrZB3z65f2qxbKj2wNV1RO5KfCvgtpwRinRj4Q8uVjj_yZ6LQNVkHaN3rwPrK8TVAoWTLq1bz5VY8SVAWN7vePH7-fYhkt_N7XMtbZEAB2voOcCUwB-AclxPp3hidyIVU7SyG5nHibPErF9D7rE_f5WKILVET34Xe7MJSzy49OzbqsdX_9pwifmVL2lICk440AOSOSS_IxJgMBdZX2uiNIwfFi1CUxEb1zo1T_c4h7jzrC4rAJLksESr_v-MmgQPtXV7Lj6Ida7rbNAWv7uNHISTl5qmAnRzqDgAEHmwLAgTfVI_hmM3pWrJK3HFxPBx14jrYeVoZGuoSHqLVOr1gs6Hz_AX9gngPtY-3cJh_J3NJK53DSK_51GP2ftb0tkHXbozNbJc6KPz4Ycj-NVpLPRMGTFm2qlWFDIcpjRdp6LOYbYVZpUgZYQbPUqNuWaVfcFDeZkX_oJE2lrcx1tG_tepg6CztD4YFQ542kmcGp5H5AJOMBbcu7xZFqA8_s3a5AoUEt_ctFz5FSRGZqQO62mEa8NSjz4XVKa-IiCPioMOADPExDZheQz5vagiuVMFKzZ-en3ZHH5mqibn_qZ1WtGMGnkQnDuyynG_owf1zGc3PdhOSdTc9Qt7hOuicBWHQy5NE75i8Wghqyqw0hg0gH4oCymcajU0K_fMe1FVsQCSybjLnGx7BllZm-5mOKdAOif9nOow41FuaNoB9glPlGMVBeIA1aOTj2uh9nPJiG-_vUXwIV4oxwm4kCQAvu0e_fXz48aE9_fqEbM9CvSOTUVmeAYygTRB7_EBAGYFI6IY8BgEzgGkgu4ifoTOx7rNm8Vh-AM2EBLfTh7IOxn68ipyszGLsJzermF47wEhmcNN_Th7eiI9jmV1Bkn24yMiqixI7lrAgS5FA7nQBMMRBvY-XDG8R1Gms5ouDy-7-2zi_OPr7UXHN1Y3w9D3tt3VB6G2_1hGl_t8n_W0xv93b-fIe3UMwSi0JEN3re-66cXTRVeTm75chkNdg1P01_xasSO79TGQF5R1UQxkZ12-XX8RTEoJBlQLWo7cSldIhRdrz74ZO2GpX0UAo841weciy4YWTGS6Wvoof9deVh33fV4f_HlbjCXKaWfFU1ySxeUwW0Bujy4ZHLnaQhhXhxou90whQeyUstJ5-NKJLvPxk1_q0cX1Ke9I1J18oFqnhmx-nx-1jNT_AL8fdXFB6Oo2bjvVLzhM9lvJInWQz5_1fBqVzCP51jyEMjU66mE2nrmcUFVEDLHTd4ZhCFbm9jQ0kWkJ7BFYF8LC3PdHzFZBBAVo-MhJL4s40kRWVccgUx1zMbevH6VqPgMdPXhDeFUe_SCu24xmir5gokrPDJavGW_DK3dEKC53Ga7dubCf8iZXVDMrEcPu2eqw5oZTLoqQeHrN8NijR90FOAG4da5dapXWzP7JofbicK5rFNLqKHKIRLbNKKMfg96MCz5pLraV5Sl8iw7liPtRbe1KdwbOGlwtk5y7yBfKiJV41rz-dfIB7JT5T1gT3cqzCWIX-gkP-8y3wwdxBUDKSeFIGjmQP3I5DzQABJwgns0ytIg2nNVpoO56dxuPTAp3Y5AnPfIW9yvKp5ilB3N6HRiyZClBKZbZtwTGnQaPt5sct_9Lwai0eQKqJ8JMLck1rqqGqW3lDe4U47E_IanQxo3rAv7ehVip-aM8-34Htiav_lGeQIc5qWCG9__E6zZplsNlXrQPcSthkCmmJvH_uJoWM-jhVDHS7n-jFOLkO5d_ftU5FqAqp8FwRjddUwZ78PWrPMxBjejB8N8-gmkUb8iWBPEp25HoxA2KpRvd5GaxQVLGDcoZMzqr_12SLkwIGnXAbKD3Q8yErOUePq0xMgkN1e8ge7El2p1PJ4KTYaGYOHLvECUoGXqkdVqyX5Y6q5Ut0kylUxDEv-Y7DWLoJpbrEc2PrDs01pPPfZvKKxyIRc_D6kV9NOxd9mzNSu81rtgIL9cba6I6VqHzjeQr8Gt2vuIntd9j5SEcyLusLw8JuiWkEQKXnaS19PuzUezEMsnRy4XuZ2SW-DsgFA_KSs-yZpY9AeWFgjS8qx9itNc1PT_iICgmxUwGfq_JsBN0scXDZwS_JS3gOrsg4ujrTWhGI2tKkwO5wsQdAPSY1pApSqDlcg7u6jkTfFdsXGyP-Rr9_zvVjI3Ivo4hnMVcFcTSTFKM6TUfx0g622xLosBWFrYBYv1Mi-IjBFMElQkZsirUIW0cKbANS3xPWVplyy_oLFvBqfdbLtyBtFkRi-GbJeFiBX6xkVrx4McuRnInuutp0yIvJOAhvZkdSYVp5H51j_ruWeBx1A9H_a0ZzcJi-Fs7ptrGPjxhgL4lAZ3OHgtJz2KWocMMMMWz33kKgoUkx.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_0zzifnyrke8d","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key delimiter changes the key for the same order/attempt. Retries that span deployment versions will no longer match prior requests and may create duplicate checkout/payment operations.\"],\"evidence\":[\"`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`.\"],\"checked\":[\"Idempotency-key construction in the supplied diff.\",\"Cross-version retry compatibility implied by exact idempotency-key matching.\"],\"gaps\":[\"No migration, dual-read/compatibility strategy, or evidence that old keys cannot remain active during rollout is provided.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":300,"output_tokens_details":{"reasoning_tokens":150},"total_tokens":547,"cost":0.004094,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004094,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.0036}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/verdict.json new file mode 100644 index 0000000..cd5eda2 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for the same order/attempt. Retries that span deployment versions will no longer match prior requests and may create duplicate checkout/payment operations." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency-key construction in the supplied diff.", + "Cross-version retry compatibility implied by exact idempotency-key matching." + ], + "gaps": [ + "No migration, dual-read/compatibility strategy, or evidence that old keys cannot remain active during rollout is provided." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/response.json new file mode 100644 index 0000000..6a9fe9e --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/response.json @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +{"id":"gen-1787283290-Ter4qdzHhWFRUKb1G6B1","object":"response","created_at":1787283290,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283293,"output":[{"id":"rs_0dab1864dd31d88b016a87c75ada3887d1b7d540d8f67ecfe2","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dcbGSB6wbDfMxjHu6phXnOLTz61XSOUYK_W86AUdiX5Ohb-1nLjbVu8xSFw6WsetcupTwk2WK__3ZPlrnIbOhBvmyYBva_bc1nZxGGq0AadVIw4V93fjtjHH-G0zT9zeGxQ2deL90j3TartJvJAN3_6ZmbN9dL8MTXiDuu0rPYcHxBVuBJrC3NzsI9zZCGHuS0nhAfN6_YAPxcCrAknsHleF7bFoJHwCuFnEwY9ZPqtjMyg4H6SgQpGIPKDrIgfXBa19D8AwpVzmM-sfsrXy3fpxqej6fXITARSREkYBNjwkFBzTcAYGTOomGL4ITlIVsfDWhrjqiO4teRqvOduL4UDDipQWq1P1nJAoo4yfUW6aewJa25ffOOyCV43zvskOAaL5bVHpM-NQRvGxndBf5-2js5R7eLzFv_4UkVvW-NEOcYmt4mIIvAfKomGHz9kxG4Fvyo_jApQHnvRnlElms9Z-agPaBDow2_dTcAF0Wo-GyKf6Qb9W4sqTdvYxSUYvL1wJSEV9bLVdK10xSRXdC0frgZy54SKnEjAsaK1F_s0U38mlqlegBsy6d4zciqKkTZfHVO7vc_m7SHe0ShmaEgJfI_1XKZE-HpMj-CHEtw0CRqT7KcU2qlptL5oyaxk-lOA38Ps6djknZ9x2X-nALHTZ_nx89cP35smHH91ryOwiZcVlIARNbNlj0-2dYnpSXn1nBKhJXkFeVJ0_XWSgHwJNsoudBnD8-8Ihl6cBE1vecK13Gw2kkc4ftYFzdtUQxJ-AxHyeFZNzKhEU0_h4NePylQgAvdU3b-PHo2-mb4v9GeNXKXmvlTE6mOewwdyD62pLieP5Juw6Fr8QMZkMlXicG08J_mFmwEUhRA6x0pDcJOZ9os4TjTWdaxAJVYcf-SvL3f_8xJ6uY5xdN4aLRs_QU7md5vwkAFPkK3B5xlWO-UhI9jysPyk8LIiBA8D4taILl1SZRxVjsDn3TBe-ArYBs2zDQDChgveizdYqaajJbwohx737eCID1XvGYXJ-JokxI80j_gmEAKDjOeBGceRHgg9KrkjRifTPpKyPPkfZdhXKsUfhGr6xXUyPr0vZlF44LnjX6z9iJHrEuUOVZkDCQVaUoiPLxhpU-vKA6eCd05LwokDF8drflSltYCQKIuSM23HotMh2vgbZlUnVhFG38An5fw3ey-0J1ZXLWB6mJKpbFBZm37yB1MIhbjNRHvKRB7SgQnyv0btXNNq5krrVbQqaK9Qjp2lizAV1J_8zeQXYYJlDvOyNR4IHv_UzmCyVQI2LcnHlwv5GoWI5fOxJjjZxCOGUaZzt7RHoyL5gidyrjp-WjfyLG0lIq8qnNF9SS8AynsfxtzpU-hk_6Xj3ZRIWJUYDEkxssdeVM1MoLzyiA0v0IjPFtmSCitmgO5M_t9NJ01il-VXX3NVi2086IV4S25AqKSiH9Aq0fK8jpWvFl8mUtpJeFvxBadEb_UaA44ir-P71tpmV_KmzCStQ66DSrWMQGuVkahz--zxhOlpTY_vtV_k1ezOG6LUIWzHIuU88UDF1c-6PwkkDGuWQdDIZwOdLsdVjsKI5_7xWpjFgv7e4Mft7PBpYhw-Ww1mcxb6rcNRNJavW1xov5R0OyPvSMYi7bBRY_IZlDq9SDK83JcOPSanaHsjRYILR1K-Wm6KaWwO6gRS3gVoM8uuwnk0e9MSoRHD7XkoqGcn5ACDJ5EzroHmc3Zmyv8Jl83-emeHGNWG8hHbZxmHR1Eb_MRJ4wlLYkIlwXOAzuVssNCXwqXZSRAz0npZL5Ijei0Ptxl73xod0pnF3u6xrsjrCj3h6ZKfzhQSP72Dn6LKQgpub-f39VSNLX3VxkCjsifz5mX1k9PDA-sNyOcE2lbnoZQSTeI6i6R_mToKmGFcDxyi0Zpt4WAnF_LRbUb-wnZRKmHP4onXx83swgi2QaW_B_PS3avALZHm0GhouYFRa4nf3TvuwWHLc-FVPnqlkZqU3DFsZpKo8EABcXzhhhyTLc8DN2-nYitr2uqjyDxMJD_0K1p0xa-yldPCVh49QmBXk2Gf4T2myp13u0Da-Ju91FCUlSSyMknQj6r0Gbobuo=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_6n4k75qe6qk","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format can cause requests that were previously deduplicated under `${orderId}:${attemptNumber}` to be treated as new operations under `${orderId}|${attemptNumber}`, risking duplicate checkout creation/charge during retries or deployments.\"],\"evidence\":[\"The only change replaces ':' with '|' in the generated idempotency key.\"],\"checked\":[\"Idempotency-key construction in the supplied diff.\"],\"gaps\":[\"No evidence of a migration/compatibility strategy, downstream provider expectations, or proof that retries cannot span versions.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":239,"output_tokens_details":{"reasoning_tokens":105},"total_tokens":486,"cost":0.003362,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003362,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.002868}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/verdict.json new file mode 100644 index 0000000..01752c1 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/baseline/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format can cause requests that were previously deduplicated under `${orderId}:${attemptNumber}` to be treated as new operations under `${orderId}|${attemptNumber}`, risking duplicate checkout creation/charge during retries or deployments." + ], + "evidence": [ + "The only change replaces ':' with '|' in the generated idempotency key." + ], + "checked": [ + "Idempotency-key construction in the supplied diff." + ], + "gaps": [ + "No evidence of a migration/compatibility strategy, downstream provider expectations, or proof that retries cannot span versions." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/response.json new file mode 100644 index 0000000..c6c6ece --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/response.json @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283306-ndlKXKkg32gsael4UMr2","object":"response","created_at":1787283306,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283310,"output":[{"id":"rs_038ec4979449b168016a87c76b4e6887d1ab466c0dce308dde","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dtI2fxmK-m5wMsCqy5ep_NBgEw5sIIM0kGP8RjbAy4ecEOae9VqkseuaKcH24CkKmBUTG2mdHe3sTWpW4Cnb8tu9dGU76vapcDAONrRf9redDShxgn1VX35TAvoVoKgMTkUL-49xH1z3jaMY5bzwihhfamxw2fwkjQPum1dRbqlEwWWUMGUlvlgzGWuvLETBMtXqlFA22enFR92bYfMKb1mJQM8WJXtYTtdEJeZjkEz_0z3W0FcLHvBnvGiEPuXXJB9stpekVFCqwWpSH90PQq-Za7_F1LIpc17Vv45IeS7QdeeP-4GPOQdGkUgOFoGgxf5JZd-CZP45WPTYUd0aSDe2ZoxNNJ8tAv_C9X7Cfp5fbfBCqU92i9vy7uQilnDAbu2PkTz0iL7EKf36PGM21toHPTdLF35Zsz8Dt4ScNtIucKYfS771K0YKgbOjusGTZOyBrkkOv6GqfVlTpTzWOcaxXzrc3ba_YPshUIPtVegGa71Y_76XZ_8xTgqK_fPtAs3mu4cgpmvExp_xR9KRQJzQjv9H-84SPbmD-NExIf1HkKaoP_pIVFXQ9DTdMm_znKEg04QeGXd4mg36UfirXeZNAQYnuDIpubAw6nFe-kevypVazsPnAcvGqDooPWATRI9xcfbnV6t5AmQHVDiMDIyknA6P8tjP3vlMzmlGbmsEkBvWQVddb061ag-iixTv78ZBbg_WMSe4HwzlQ1EOCXaGMTDmfPXZc9IV9juhjJ6JG4hdPF81uoekifgrNHWdJy6fAJrkRlJnkb_IQZnCxbhfGJQ8k8CpMwJZHKMTDwuzGjZwFXDLdaL6IxGRfsdrl23txs3CWeofFW_c_dV2QCTBqusjGMeMbvkyqaqh4qdW5Olx7xBudZ9Eqsgi3GUJO7BTNnMqi-rvhi-OBT5FFH7jzQEANMFJT2Fj7_BD2LVt0umynqZwv7k8wBEHpRKcYoz4pAzdzs39FBbOS3Jqbb1WQhtE2CQBPAQ4bIz2IhMsVOJmjUlfKO7ja8k3HLNxjg654bgfwOXVqNUAnVTh6HwBEG82vKBbpv3IoS1uVLPKfhw2BwWWjcYgWmXFZR0HPRTx74fsvok0F11DIhUz-T9SPBqdUku7y4ZX1uQ4dBxs79w7wpclKQlR7lfivC__AhbcF_U2CnTnLzG-SICeIgxPKiykdgiis0PXL28_mNNJl6vTpA29QOijLtGOJJWCxL2Zaq3rVV_HBEk2oqrFvCJTXKznAi6TyV5oiwE9Q5MSArcX57IlWDPCyPI3CjTCTyL-ZLIgfkBTLwEMKZrEAsBHmCAcnn0DhA8qq6qA22-8wYT0udEOzBScj6YYHsYqepz5hhoa9XzLcsSnHEY88AIULbtCbuiDO2pVYZqA027NmyumPSudqXe1Wj9-dKmv47M9b7VwaTrdlpcFA32Ecu3h4mXURcgHCH5lv2dHBz_mx0QFW8CST68AeBAz0K0HtPtnPobipzMQ0QxIMM2uVpFc8GXXa6LqLlQ3dTk_4LF8LSTUNBLdwIz9IDlDwOmECywsJwcSTw9j6zpjpQWjcQ4_qnW85HOkd-dtQVGmZZFR5Q52bjDgNsblP-HvEXPQnnVhQ6ZT2F_JR8Kyz41cZN7R6Dh-FXZpHLHENu3myOBfblmLiVIBxGtqsOjQPLaXmUaFTTTmj0rRqdCeQb7D344RalG_upKlDn4Hbf__qkZ_YcvLjmgvGFd6SYBQTH9LdOxNc_Oi2g248oSnk_5gSU43UGxEPxBUbMdJZH_e5tpxxeZEQD9hlbfaE1dfjWFY0ygPxLCwXFFnlYYSUf5-1msdzIkZCjhG9Kh6P6jkoGnttEeJuitup86Ee9SULYWMU9q8bUY-Bf2FjEJArETls9KuebJ-IO1vcok4UWi4jN_jIASIUuaOet6iuv75wwQWIQXsLAKEL2FNqOvd2xgfSK5wxEhLny5kL2LuvtK38RylbBUNqhAhPW38KSPJeUqdOhyTL2puDzBjstnx3F9QP5pZLAqyCaGGr-r3R706RaIdq3KAA48CGe0HUpNW8JEXS1OAgee-IvZ_hA86XIYCFUnCgzZJqbh7wKlwF2-Zg8QUAnfdS0B5X0LXFTgECd7OBiNRcWXIhKKhw3V0rOeoIUs1zmU3RqPan1sMMOsNyQlpC9Nfsg86RJ8uuNMenzsHEwYBkBY-FwXY716JfjCfyUDXAjwquqFeJrfWT-4cjbUlLegPVk9yW6n4n2IUiss4lJ-3JFHwqTJOZo4l97pElzO9jbdFToqf_kdn7e2k_LCuXFRwThVvraWH2Z03pRvswI9TBba6SvuTineAPiZjeZyTNv9ceP8NRucNma7rjMsY_E465ciSamc8KO9QFxNMdrxaNraLt4aU2MIRqLOdJF2Ywh2uO9ynPDB7Y5E0emKFf72sgVlC49dco0KhlHIzzr5tY8K4YlPoH136xVkRLXBfSdzW2E9U2yLJmz2V45tCwOqUIKi2Fuu5WZhBLAViUb9B1EvT32QbIjnxlJvjXkw6SviQHpLfMWYManEcfa49VjMNqpu6TJqTvbBN5Q_YvI52h1lwY-2ShcZkg-V1-K93vdhIHIrMDZff964_Bf6giov2UtRcNLeebuudnye4nay7tQghnak-n84cQXXfVNydCCOJ3EI3fGIn3_QTUyHTAuhX4cEF48_b6oetLm1ccJ.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_u2ymzjlyi6","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format causes retries of attempts created before deployment to use a different key, potentially bypassing prior idempotency protection and creating duplicate checkout charges.\"],\"evidence\":[\"The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility, migration, or version-handling logic shown.\"],\"checked\":[\"Idempotency-key construction and retry compatibility across the format change.\"],\"gaps\":[\"No evidence of whether outstanding retries can occur across deployments or whether downstream payment processing normalizes or otherwise handles both key formats.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":334,"output_tokens_details":{"reasoning_tokens":188},"total_tokens":581,"cost":0.004502,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004502,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.004008}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/verdict.json new file mode 100644 index 0000000..ec7c059 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format causes retries of attempts created before deployment to use a different key, potentially bypassing prior idempotency protection and creating duplicate checkout charges." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility, migration, or version-handling logic shown." + ], + "checked": [ + "Idempotency-key construction and retry compatibility across the format change." + ], + "gaps": [ + "No evidence of whether outstanding retries can occur across deployments or whether downstream payment processing normalizes or otherwise handles both key formats." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/response.json new file mode 100644 index 0000000..e8c1f2a --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/response.json @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283310-mfF7Em0M9WBkRnuDkjLF","object":"response","created_at":1787283310,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283315,"output":[{"id":"rs_06fe5f9270446e94016a87c76f9c4c87d1860ce77a1244fd39","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dyybjKbTDOYzoTVp1z_JoMksVLM_aHhLo496SEo7N6R73QVySqKCaAVrhUhNah10NeOuRxEviNj5-ubn2pwo8nS1-7_Q7vcRtCVRq6oCAg_9_11C1tVqCJNiJdL-1x07SsiRTAIlYwaneJKVeOk6HdUuH7FXqnT06WXq2TTF3DZ5xVYH7jjB-9I2ohQZG8xdeKA6zqfXOXKELI1Yi4JmILntC0KICLVBVAyC4Mkw3VOuisKSTxQgtc1TBtmgzx5ROGr2Cafi6kWrbbDp3f325U-Zpua0XYnvZUeqXGD9udQ4Ig2xWH5h2rngo6670SQUBxN8-K39gNvRsKoIus-ntQ5yYYRDOTKdeQYsAKSmczX7miZJ6Gv2npBFYuUqVrUS5cFHbpIWIoyAWm93gY5vean_CamVQ9qKQhso1hHnN9nbyV2GZ6GnGgxDyxF93hDRaLgorR3-0XGsUBfWbBCgaNoqhByGrJQodFI3jlOSIXaFaeq_J9Uyl408b6rW2FtvMwrN4XQf0IRv31tqF7eImNwJ7ZmyZaI_a9VdZUhLOWdqWcALkAY-UNV1BpT0P3jpoTfONd9_ZvR7vLiRxzsmN5i8s76Fp5k0-T5XWVb3rk3gpE-3YlEy3MS_1NaQifx8kP_gDD5btEsLpHfIRvLgT9IpIwRolm2AT1fxXkoMdadQWxN7fBF4BhMtEX-sVpEa1KPVoDY6qeKbTSFW6DzXZdedlm0Ftu1lNqjOBGtCiBlXGG7OO4w56JeHEpux7WwNRWgraQOsZuacSgf0oMQHbGJZ9pnRR7N_aX8pR9_3vZGPldzoVJvwD8qEuGqDOfA8OWAPj0G6ADpCGS_1hH5rjgWSxHzUWij5pFM2BOJ-428ouHO80iNP1H1r1MRnm4RnkfUacxBd17A8_q1ARH4LQKGxyWknYqXSdybQ0Zb10F_C_uJ1Dc9tosZ6OZGHi4j4Ruhm1FSoR-e0e1oGNdfpWbSU44TU8fIZ1HvM8Z_L5uBaYaNREsBVL4E_PI4KsdBYtBq4wWzv-qU7TJsXg_oW5S5lJMuo2A4uKCvqN5LEnuv3tH5yT8o0XzPbRh_wSneGtoqKuezXy0PDhCSdb1hz8tp1upJuKH-WYm0RhZKcEQ18ZOOqpqomSngEF54G755x3B0JNuC0hMwzqp4o2oYc8Wj6GfERSBaKZGJx7HEci172-h4V1lNhNK3oFuec057j2KJGSeN-Euowy7fKZ8bcQrYhfVg0vuZs6lnk5Gby8qp5R4m5W4FkghqyCFzsP-BaNa9PNqvgcA_biA_I33YEo5JPhD1COWkpf5U2dG7OomuU7O6L1CCGf0l9_0YTUYvPkm1t2OvL-YpUE9gIkoLbTUeVolc3qLSR1-JPjw_zj65epQi1bNFLQVlhJBT7nU4iz1ZkCj0MSrQ9PG3c7xz0PiozSloAFviV6HoVkDFuJKQQxjTcNfTp4MKhV7GrNPSQ7j6_qFekDsduLyS0QieD39raLORGNjYoulw4kfT6eTrdhzy-ek8ULe-52e_8cGL1JsJGyr_SBCbsbPokDzvFHr68WbJ1AYNjs0L3NeB4h7za7ddRRGPNi-jFG46vOIHoA7oXVlG5x5XJJkyrl4f0JDtbqr3Kf4cWU5qyrp5ARw_NR0p26Rc9tJ9W5nYNr-jYwnUmzJY58hLtgVe1-UpmYvf_UW1rqTXRwtQ1dOCqvNlh9zp6qvPD2vlErsJ1iGj1O9rRufgF5y99qr2a3Ir2QNVw0adGBHZsY4AA4XiF1Rm9TEm8_kZBGvIJQ7Mj6VdNveJumIX-pJWC3NyU-4BbMR1QpDTXN9ZBiMCos2oYX7csaNj537wKAAkdJL6nT0FVQOUZmLjTNDiMEfv8lWzF9s-mIuaZdfnK-Y_puH2r7zizvvQIZd114hX54_nJq9q3lhsfqMs38wfgl-ZR0CZopE6pPDcEv08PXuqxRB9f6RMwPA-BW_9q0Fko8W0ZCX397MAPRQEKXniCa15vXJWUb_Ic0ftWBQlcCQrMGiUn6IZDbLNUnpx7I1L6sevoDSh68QYhLcHWCK8qXZg8Ynf9AuK1BVrGcTR6uRF6wLJbbObk7m8zk4oGU7s-1IaE3kHSxw6qJZpg1l_XAop8naqLjZVcNl9e_NDCpKMFefOirh-htYqz0cdCjKimEc945hFCyJv7yR3tN0_tRv8WvRO3rtMEPyyatq-nfT0b1xs9Gqs8baxz-1TfiU9C3aP3BPwPVTaEYqeCUYK0FXn71EJBxt6-Epy-w4MW00bWnefoX2eabY0lfbCTAuROEzW-73uzUD4m-oH6tRZeRj0yZexOxuZt1DmK9dgoFgQxONT96t3LaWQQ_vkCwrtYvd0UNdhBlLL2AGO-O9TXX3CNIMDBIcNpRMxbwkr7NmAMQ76x7uqEKDuBoBC5uONDW5LgAOdgf2VB3o4dFuAy3lm1-7YFtaf__9EqbJQu37xquizlcjvWxBwTqbYwH-fHZeBYyZGU0p2E7L-QmalC6bEdYPKHVobqV73Ckw_OMmsZDWIWlix9mcTFQ1XiHaJm3AFRSEqQF2xVTRm982WdjycU5XpZMukhZ-K4sq2E0nkz1MEe9ZclVjaSSyjAhPYy1v2fhdKjB3i4jhNURwg90nCweUpPEhNLY9ip_lYRsvtXD_XNwdBKqg7Yq_moz5ZtwNZakgTBX7F8UQGUClDi0nhXz_yOJaye0PtmLDm1q-W-fQmZl--ERoTY167xhtPcTYSgHXDNzV__hcqp9VR0l5D2tf7J7OBqaOjXrrna2YWn95nfZ3iGe29VS-mwq68mvmTfdKoFf2CbfB8uz4JabZFZIKBe8nOyuCeQF-WFT5tYCGM0OdfkY6u_BW4IX5deetWRnMLboisf9AtqTk4QNReGvzvNss_Vs2stoHuXmGE2dCEtxUIPj_JrILBng1-GziE3HhxYzgpUXRtgyVEt7gc6gr0aEmaMw9r8zpfpF4U1oXX21deDD-dmPgD0tEKIjAFJdyvi8On2-ipo6cCCJboptMdJVeSwWgiUJWkpvn7LajsL9M29hmGY2T35MrABnfm9hMwJtfdIk9fFL7gnqPjcJmxIJ5FwYeGxZQLva_qIj3p78f1fCisJYNzy392k6SfBbtIJVZV--Aml7q5aakaCGNp9seqPzzmcaHuROFAF4Dn1QQ34a0I96vzQY6NeJ9qcw7ToPAjsFUCTgouKi1zeWQc7yYhtWrbZCa40d2WSg8bNo_5KnXwK6heL3NbEc-7Xl3HkEp9_6Z_ZxLdbOYrqigXT1xmsX2djNYOaBgAbvnSF6UpLeoVAVxF2VzWkEy7o2AtDEd.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_wt2ogihxwe","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key delimiter changes the key for every existing order/attempt pair. Retries spanning deployment or callers reusing prior keys can bypass previously recorded idempotency state and create duplicate checkout side effects.\"],\"evidence\":[\"The expression changed from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility lookup or migration shown.\"],\"checked\":[\"Idempotency-key derivation in the supplied diff.\"],\"gaps\":[\"No evidence of a rollout/compatibility strategy for existing idempotency records or tests covering retries across versions.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":410,"output_tokens_details":{"reasoning_tokens":264},"total_tokens":657,"cost":0.005414,"is_byok":false,"cost_details":{"upstream_inference_cost":0.005414,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.00492}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/verdict.json new file mode 100644 index 0000000..f793b7c --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-02/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for every existing order/attempt pair. Retries spanning deployment or callers reusing prior keys can bypass previously recorded idempotency state and create duplicate checkout side effects." + ], + "evidence": [ + "The expression changed from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility lookup or migration shown." + ], + "checked": [ + "Idempotency-key derivation in the supplied diff." + ], + "gaps": [ + "No evidence of a rollout/compatibility strategy for existing idempotency records or tests covering retries across versions." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/response.json new file mode 100644 index 0000000..4a93871 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/response.json @@ -0,0 +1,13 @@ + + + + + + + + + + + + +{"id":"gen-1787283316-C2Da9ZNCBam0NuQVEfQr","object":"response","created_at":1787283316,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283318,"output":[{"id":"rs_0bbe60446bdc727a016a87c7748dcc87d1bd4d609bbd62874f","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8d1lWEZquA8uMkB_aTDHAiXp_6mjmRUNjjQhTy-jIsIPT18WDEIethJ_3HtVPfwTwHDXwESry_k2cJyAxXoB0tMVco6SNNQUUtvcxkjzdAXgn7OloqCkdnKkvjkhvCyJlewhxCa7WIyOaIlFlDAbzT-YvMEB4fyqlJjwj5pLW-TuWz4vDe9w2GMoodsDvSxfJKfC6T138M_wIl3MQM8ylOBUIN7kHE-5z9t-g8rWYIPL4jGQemT_NkbbqGDZdtuT3VETsU770YHVk7Bbw8DybAYkX7H0TJsYtDXkQI8bHQ-D6HfnFJM1ZEkOuPsI5Co-oAhiMJ6TbOpsXx7_w7nh-bLgjs1gE48mfyvivk2V7HEXSYhJ2JAxV_KRfTKxMPI6bQj2rk8PIa3rGUxR78tb-WrRsAxSVj6Ve0KagMP43lr2P5k7ObmTB8lX0DOvjGkjua1NSmfpkqDZMT8ul-B6_HcBMfjum3eqAbr5XHkiqCsk5b9BrPHjPncTAuQ8A2S1RmhNgkMIxM22K2Eylo7hJy3huoFnPaBhhD3QbUS3wvvtC-V8TtCIBwJyHlkn2U_FWrA59pa3N-G0qPdti7RSkk5WmVymNleazybpwV9cQqrL6wWIw8IptNeTmTQQ_i-wSICyBu73XVBdn70RdS7XFiKu3pZmmvfJyKCm02Jc5Jtp_T1D67DIhHhg9AQJ2aZ3m3xpRMPkg1JmM9Ow2jOPEckbv1cyCcl4hJbOEKGDda_iKm48qzrHBQazvVR4oT32mf_UMWBMKIq77sSUBHmAt3pvcZs1z4BZIpnQvxTiv-h74BwQWJ9qUJi0VKckXFvxGjb1hqqFiD0udQU4mUsaQELGWQ3abP8dqmlK-Oxh8dQ7YEQGk7sTPgBpC3JhYjD9wvND03lD0Q-monGSXUzUm-3HZYdXSthojpkMeYtrGycM_BYaVVhk9Ethsorw2FDII5GgQdaz01mIGqyhpbXeP3hu-r3swwIBMGIlBwOtVd4V6QJhg4AMvgHpqa9G8ym52JlU29NT8ZanU6gjZxhnPCw0kLoi1dcub_dqhdqylnJlMu9TTqB2DVXsr0DzxhAV4cgvVLQpUznrX5flAGlLiF9bzbv0axNurVr_Mi1FaI7KOxKq-sxKmqhc7jGDmXzXVcVosz-XtWft2i5lm0JMXvi87jba2nEkHT3Qr8U7UUkl6ErMI05msHsx7azG08dTTTkEFFn7_el3sdxqqaEai2E1Q9wVd-24RLxLJuFkvn7KGDHc1RtDPb2f4meR494fMmmuFMffs7ej6eN-B_s6e75X4Lv8hMdhzUZnPn9bCU6lPqXcCHAzGvKfczHz_W3MoIUu_CHz1XafaXaoL-z7SRbZzSVGOLW5mFMHtgJ3WmIvgoq36tH3JVzDZB5qYmytdmvyZUiu62p9dZzjhhCEXIFCEzqQdRmPnom8GuIzPQnEvr9wXyQwqVcT4RTTvO8x09Ib2xM6D15pRtnBoyq1YCpgXeZrXtAZTw8PHJ72O_DH3KvR8bIefVVJMcaGwdOfw1cSMB0B6-RhJO_QTMMt4hNY6ecAA8ETBHpF4rOs1BDZBfkPQ8EwZNVmvDk8YPJXtwLFobwJFfjOZp2kgjESFlli4bt3bTVtFE8pjcmI944n2X-lxskgvYHBO8_q7l4Eibp8DybtXIN9HQ1AXngeAZ2syWqjFK0p2nPAsRwcFoBcnC-tVPVyQ3-ntLECpZJmfW7gphFZaAQbdwuL8w3Jdl8FBcfY8jBRGhZoSr1IlpE8hRhPd45LkQdAORf2BMLatMJKaXxUaV35Tv9Trf8Yw8dzgJw-merMKKfAvY3b-Wc2ypS0y0Lt6v4fpfpYVcxAAXm_66-Tzz10D346YzxymctIK8cqNl06Z4-6GQeLXcc6_tJxhBKHHQsF-Aqvz1xX3oHiDAa6omD5b4mRHIL2rWESsoYhPYLtsVamd5IY1stS6RK-oFWzyJQoDVnNuOeh42Wox1kZgxDlyRv8i-JWiSDPMTPiQYIElkVqfH0n4uuD2LAJTdRPelbhLlpcdCUCFcD_6JbJ6d5O9-XM3W2LDMPPA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_v6l7ov56cg","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key delimiter changes the key for every existing order attempt, so retries spanning deployment may bypass prior idempotency records and create duplicate checkout operations.\"],\"evidence\":[\"`idempotencyKey` changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`.\"],\"checked\":[\"Idempotency key construction and retry compatibility.\"],\"gaps\":[\"No evidence of idempotency-store migration, dual-read compatibility, or assurance that old keys cannot be retried after deployment.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":236,"output_tokens_details":{"reasoning_tokens":102},"total_tokens":483,"cost":0.003326,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003326,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.002832}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/verdict.json new file mode 100644 index 0000000..f9dc639 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/perturbation/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for every existing order attempt, so retries spanning deployment may bypass prior idempotency records and create duplicate checkout operations." + ], + "evidence": [ + "`idempotencyKey` changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency key construction and retry compatibility." + ], + "gaps": [ + "No evidence of idempotency-store migration, dual-read compatibility, or assurance that old keys cannot be retried after deployment." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/response.json new file mode 100644 index 0000000..d78751a --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/response.json @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283293-Ya27HZq0JJGbG3yKJ3sz","object":"response","created_at":1787283293,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283298,"output":[{"id":"rs_0ed387bd22d06f86016a87c75e57b087d18c03f69aad48c889","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dhoABhtShLOydeccyhrXhP1Hrxy9u_gxbHuCt3jBGbg2y-32Y7E2jC1FKT4Rl4R-DN3Oi-8UMIKAnkgXJHHeWWe2LwdVWcH2LlMaeXUT421a2jz5QclxGdsK448OQiWnoF-27ouFbj4n8cuuSF2dAvFt4is16E_XITB-sbjyxOIVvyJjR_JQLXi5TwltUfpwmJMYGzmh9nDTuKXzuQqiFCgQ1J3Q2ZgguJfcCDLgJHmYwkGhB2XVRa1xAnXbQ-qIboGkJCqnPghFGRMp-eRCIJDo9XS7dSj_ZuvvYsmf8YbWLgr40QkIeFhx8mnHK1Ga1HtH30c_bMC1RvY7oZaco5PkcdTTVst2G5_QnYrllKqcgEQrhRMl8BJNwmdYkyUtdgaM9Kr74gGgW_Mp8dQ37yqtVGptOTqKhd2DbVdbA_yzxt6qudyWhJXe0QH7c8JWUUEig3Kq_Lr7QonrQFLyU5VnqdebD_WcuNfz8JThy-4wfIr-T-MMzxcFOT8wdscmer4TVayHeMp67VvvIKquSayRN_iQ1qvFaeqTbefyERTg9QqoV-sBoUlXJYLoGy5dRi1e7S_6D2ZO_1Bw_3E3OKhBthD_CGT5l2_jn4t5QiZO5MJhZjhGWAtH3XduPzdJBwEOi_IqzoayTH5GW3DPAKSvh_VH6TwP5CZMtw0vyNUOIq_WU9oVdKrbWJsCPuvU752-VQaJR0EhLuXs5rJpHTxrZ658AI4cUX4Gf8eQZXR9JMtMzJsmbpq5lgDVgr47QxAEiYAe3fdMbA6UqqD31tCKSeuCAs_c9Gy49HWeRPe8WIfVAuu_OmCHLrbVq5NMwAf9c08jaWQ50YmeWczvuKSlpuGKp4anYSo-3ia9J8OnSinv4TH0zMeRjonqaXuFmOImRZPdp0uuIep4_C1oyjUIOmqXM9dDVULhuyFENdpeqvfDLo--_qIPa0wVyThkvaYpef_yNlAQCXM8OxpDH3N3lLBBtsa-tiOzqmj26KgnBAVg162jgOvmjo0VtS1523JHnTHEcrJmyPRIaoyQf8OlZ-uQAWxe0yfd624AcCT2y6oInFVklgbKuGvdjzuydvEJZvkhT19aoO6DpMzXRGs-lOiO0Ja4s4cI0sAYpdx__4X4dRVXFnF0hZG02-2iKsTtmUMIXtzt21IdPWKOfOQXLWdGO9W-appLasmAaqM33htQm2j3mMA7_1-VtYc08BLPB-1RjqrOHBwnrw0J_BXdBeFbbSar4RCFZTYOHJrsPpyyJSM_0golNgx3faeqe4wz6rs5klWfyUlCIctArzETSNlQjnn6-b0_KtuYtYMs4wbFakF7ltSiuqEB1PZEsuHyrlMV_gVzQ9khV_XiaEYutI4jUDENXu6hGqzaE7-7CAdjv3TSI3z0O7P6nZ_vzwneDanxuS-82ibcoL0tyTwxTmz6Mm6fJioUaCbrb2__MZrMXrBtcDTACvhkHqhC-MANVaMmar3puSZ8Zqp3UDgAfEX9JdHSR3Bt8kA-VphlrFFtZh4Fd2QvNdyrHtPZO0UadVqfArepRgZQi_rJikOsPbxLQlG8I-dBg2mGtUgQiP4ax7gwgkmd-apfJELvPIj1Fs1gHedF3SKRZbf7VvrXuqcuTNPliSTwUC4GVecTTi3ldbAyS4Sx2HPGx2N6ybfd7vuZF3DuOGCz8CBtnjcgbh9IoSFKQU0AoadV2rd9u9Wvy4p0evU4hTT9RLwGL5JUYk3QX4_zW0gkhJGyeBWZ32cTi5L5P4wKhZxahQL5daeIUCDsDe2CyxFUNtFxBzg2novFgicsN0-RN_exwVq38Wm6NcHpBLSmoS3DVyLI33h62L2gtI4-5nkH8vQF_wcMYCvECbZYTAeGNHOTbGMrYDFpR6HOYA_P9aWoE7LLdmG95F9CEMmNo7CSOI7XPgpLnsCaTPnPV9Oq8saEIueqsm3j6jC8VdAKkUiPU3Q0l1xr5yHMQr1TIQwwhzm9t0IqzbE_PJwOOAbj-8Yln1BLExm7_soznqW5AkNMX6IK2LbvAkCve_C45jc1-_UhoM2FeTAbFtpl6BUspZmQSQ_QPi-NpzTXPjzzQ4hQzXDV1E1xh_Y8TeytfaI_LpLF1J0jos5blht7X1D9iSUlvqI3kEFm-hBd16oXQaNsrZ4xFGmpEUfUUsL7uoBLyMhbCfDGgzYzTf1X3KyPoH9xCad1UoKLHDTeCXHNzXGpAd6vq_C0OZBH2jDfpMwCWx9aeQQAGDuehaFmrKm1R_83fTiyVZBeksHcUByrta0LTJ8sYZG6qry0zuBPYfJrP2pu2y9dwXdOL5f8MuIPN-U4QDUzIIfHYelhBVrVdxVaKWGyGD7BNt4Xazqf4yWuWGoDQoCpd8u1Um0WlN5FnvGMf4yoRBe8DXGVTTTG-zxi-Ka9OA1_qxkTiGCpK3AUDRmiY1t3W5LrrPBODXrz_QdHq0eTzug7lWELSmx1CZVziT3DxGNqGa-mmrFkBA-W0QjU8UyOjkb6Qgi4Ps4eiLd_u6Gl5_e9ZGaWkUvST1wR_4fFXoFPlIjbun8f6Z07t0qjhTyikDjXXg0BVgrZrtyXCYbL4OOdDgf5yIm82GlW8fn6LqK3jxXBtH_YzVeaLOuM0vIeDjFEH1kOgqYMtnfkXMAsitPNhLW8OJHQgVuWfZlyJ32bAF7qz8w_G9LDLdSfi59yQCFcnNZs1fna5whuaHDa1xG5K1pRLEw-F2JGHyWjUDO8uFq3msYZur4M1A1sPYplfeWTPU7N_mLq2cnzEMX3gxvPtrWZnOOr4qhzmacq-8rUd4OvnAlG4IEFMstoK1TJ_7pxKK21iuD3s5rqp4Kg3xtYWLo_MOVUNm2gSCYck7usYrp7uRI6nG8nIcXrTi9PexQ49maRHaEI0m7wtljgkxfQlUixizkb64HkKWhoSsvgg7IW8U-CO0vCbVB0q56_db0XBI1NBa4sqBT_Jnc78cDiJcX0pqyoiXJ71bi7csV2mMsU4q6ECNcirzYU6ra3vwMidyPLJpUqNPKcYIcwixDaHhBScjuWfg6hGv6loRfRO7Ha2zz55CxFgvDIpUqQZbspYh1BwznYEtM9eBZA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_vjo2mjyjx69","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format changes the identity of every checkout attempt. A retry after deployment for an attempt previously submitted with the ':' format will use a different key, defeating idempotency across the rollout and potentially permitting a duplicate checkout/charge.\"],\"evidence\":[\"The only proposed change replaces `${request.orderId}:${request.attemptNumber}` with `${request.orderId}|${request.attemptNumber}`.\"],\"checked\":[\"Idempotency-key construction\",\"Cross-deployment retry compatibility\"],\"gaps\":[\"No migration/compatibility handling is shown for keys created before the delimiter change.\",\"No evidence is provided that order IDs and attempt numbers cannot contain the selected delimiter or that the downstream idempotency provider treats this format change safely.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":403,"output_tokens_details":{"reasoning_tokens":232},"total_tokens":650,"cost":0.00533,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00533,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.004836}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/verdict.json new file mode 100644 index 0000000..539b5c7 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-01/verdict.json @@ -0,0 +1,19 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format changes the identity of every checkout attempt. A retry after deployment for an attempt previously submitted with the ':' format will use a different key, defeating idempotency across the rollout and potentially permitting a duplicate checkout/charge." + ], + "evidence": [ + "The only proposed change replaces `${request.orderId}:${request.attemptNumber}` with `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency-key construction", + "Cross-deployment retry compatibility" + ], + "gaps": [ + "No migration/compatibility handling is shown for keys created before the delimiter change.", + "No evidence is provided that order IDs and attempt numbers cannot contain the selected delimiter or that the downstream idempotency provider treats this format change safely." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/response.json new file mode 100644 index 0000000..fbe2606 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/response.json @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283299-wYfAjQW1qFc04LAXfN8V","object":"response","created_at":1787283299,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283303,"output":[{"id":"rs_0cc562678ccc5844016a87c7638f1487d1b41f6ea764033e62","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dmJ0D_Q6fh_wEeq3tu2XsO4eKjTjdE9PL3mazVoxOPZfgQtPX26rNhirPZr74QeEW0UM7RqJnQ-ouTkkIa_tsbg3k8XnMY1eWKhXpif-h2SBanqHTuQQYVbdHLWN4SwoYka6C7sjaEvHwzUjjPRYY6C711cP1dZb10HDEAl-47DR8mMaP6lw04ijpYp5BDobbdyHG94Wl8yIdwXYTCyDTuc41005FWPWufJlt_QaNbH4zUhpV92rcrFwrzSVetMLVVbMhVXBZRGJtNsIKkuilsGCVyT9gA6v70bwcnWvmFSMNW_h0xNosX1cxpL6zBBuvSr8mlf629HnJ3GmFIcETWwh6cdO_2zof_iE6HldGn6W3THXViBqprl70_1sX0d-Jb8aFegNVEs9omG0V1glZnLLZtnEnhsUkAJ6m1xWv-Vkp_MJEi3FGk_8CvaZHszd12-RSHMO4DtnIHr58w5noQZZv9ymN2JZEZWbVrFUn89UEo-dhU8rB5-TjmPYD-IBhMAEpnRvIgtqbK3rdhmRClfG_hcNGZR7cCSb6nK_0cOx-klO1AeA25yjUftT2gUbsePtAQiJI7-n7tNAlUxbqFDwauHMOUnwwcP1U4ZJlZx6ezoGikA7qIqMEZytjJHfaivAtIY9pleNtd8TH78zwsodGV9hcmfMkrX-wyy6uLz5Q_trG9FEVWDLRloQst4g10Tze2Y8_cJS0PwJhjd8NdxmMjbWkERYXNyhrYxWVxupkVwCY_zOua5tE6OHGbUD_Uzf9q-WmLofUuy6KRUp66tQZDWJEgiJTS2DXGz0DA1my2D7iG_sJeuaRMO3Vabnb5TabpmW3lC8JFbQ54C2fkkHGS6dk062Y0Hb0mncsJyRcM1WoTWdRHirzG0OMcc5G0WhPBRjcCGDQCkyklIl5KNwQz0FzL_fCak9ItLHWyNh-vJHzptbJ8IPG08omt9Kg5G9dAGRK8_7vnUfPLmCNfk7FpOoJs7IP5x4RsSzfCMxSXmM7E9KlGPT-qf-d3hH_zLykABbkAAgmkcY0-gXhm5KL0p71MqzySZr7xWHsg8T_4iH14tqtUANTlhEY8rNPV5vguuBt4r92vabJ25p1VTIlDXqNNj9kpUO1dg_Ec0xGbMRenCCjwT7Ql_WjGVpROx2jA0x605s8dBaZQcNVOkjPLKzUNooTzp3UBMO1wU0R_wJyL2yviRar9SS6D6QJfud80joYEwlEkCHcvK-GTQvSFIF6lo9NYtrlyv5QV3618ObrSppfbvjCkWywi9Lf5xtBoFhFGFVxrEemzmT6OYmZ77OsfdeTC9g98_CF3PsJ5kUeUG_NPjlIoPURBux7OkGo4y1jyYOqQlZSexwRFPG01rwF4Im7Vz2BNo9V_OfajonUciyoDumidu0p2VAotgr3A2XXUkjaDGZx4KYrr7rLY5S_UEJr-vkg5MfK3D4REyrJysGTE3J3oBIqOM3_RcQn-vTHwR8HSYYrez6u5UW9zoOQJM0BdWjpO9hFNLMRLbDyWkWC8Udlg_mpIS5BJmySeeQYmafhtf_cAWqgr_i39dmSDsr-wC8UHYViNURmOkwo-N0RI-5K0i85CU2ljQ3675vqt2FbdKTSVcLgxtZzt8s96jSQkecZNucbrVxPL5zq4Sw4SQJdpvIUiU1eiGB80w_cCdCqwIA7ce268Rfc_s_KQCPibuN1YSUgaq1TokTmK_voo28d_2LrtcRtrQ_yqcfHIV15od5b3lzrFfZf3UjsZDJpIadrwks3TjVfUBDB6C2wjBzys7-KoTzvoyexzmkosdSPckoQgMM_LoRY54AvtmNHdSVqogwPZ_ka4BGBTfOs19d9_PbjVqBDllEWnVTefIcb57vXRYAVUb0PJ5UMxEB8boLPFVdWoShsy6NFj3zqE7c9jUYDzSykO5jtfpTbkU5AQBGzjZ2GVkYL_jWiXb6SseuOqisFsjnMf2-G3DS1nRnKBv6DjEbCCoR3YOrcxOQKCopBDiUYqZ2cL-D3sSCKfgnwHaWcULh0Cbeg4jd-8P1t0gRC1rdwM7SUC-yJ5M1wM2Vl_SIoolYldTxf9jrJw53o3PjTwEnRJVIoIL1NugXcRjx-1MOLFj034S0Ux5xbvVn6iVfictBQ2y-9PMZo7GYhrcqBeNUUXiT4jgsZc3icIFyQdiBL8Wc6wB-5u6opowNQGkQk0PXXWVK650TaU1Wox6uIrcJTjRSKkIHoP54KTsmKbFMUdCDyNRPGFXf0PFlQP_qNVIgPL86E1ju3nGzQRLhoGY8N85VlxcoGfDgXp_tSlW6myBnnloBhVJvJeFzMUo8iJxV4c2pQ0xEI08oxZD-h-ePP5WNITQqEFmC8s7wiwQI939mHmGSkXa7VMH3qKrylqAJmEWZpgu9h0Ajxa9a9JhXB7AqRoVbxrFdzeDAJVaTCiW5vAWiG67KyLKk9owULD3Q9GXSnOa9JsTFeT4Z-wOtc3RvvWY6fzQYvoFwMUVT-CGn58FcJqAsEbAvhlH2_RoIOaEkU9cz7dEHNKckJ05QFEpUk40NzjViudQcVl7tR1F0--HgnkkGTyb86eemYOlE4FapPn4NUFMChunppE_YeatWEhqGa_ER5NM6nNWgb7m3J363l9A72pbXAyOLAMP8ExzmR-WlbTo-2aHWEpOJiYjeEOlUYuw2te-6hXEu47Ybpf1W6hr_COQ7QSsUgUhKjm2f3w3C-jc49SBqoSYkpUuChfSM86qKyuZKwe-EkDRXQVvu52jE4cKvS7LAsZTCbmtmLxgJSV8YyVokkJce_mpa0GMyd56_kqZ9H5PKkshkkzBlni5HbmdZPJAoAKBg==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_7ygaxibgwp9","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format without backward compatibility can cause retries of an already-created checkout to use a new key and be processed as a distinct operation, potentially creating duplicate checkouts or charges.\"],\"evidence\":[\"The key changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}`; the same request inputs therefore produce a different idempotency key after deployment.\"],\"checked\":[\"Deterministic idempotency-key construction\",\"Retry and deployment compatibility\"],\"gaps\":[\"No evidence of a migration, dual-read/compatibility strategy, or confirmation that previously issued idempotency keys cannot be retried during the provider's retention window.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":366,"output_tokens_details":{"reasoning_tokens":208},"total_tokens":613,"cost":0.004886,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004886,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.004392}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/verdict.json new file mode 100644 index 0000000..e0014e1 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format without backward compatibility can cause retries of an already-created checkout to use a new key and be processed as a distinct operation, potentially creating duplicate checkouts or charges." + ], + "evidence": [ + "The key changes from `${orderId}:${attemptNumber}` to `${orderId}|${attemptNumber}`; the same request inputs therefore produce a different idempotency key after deployment." + ], + "checked": [ + "Deterministic idempotency-key construction", + "Retry and deployment compatibility" + ], + "gaps": [ + "No evidence of a migration, dual-read/compatibility strategy, or confirmation that previously issued idempotency keys cannot be retried during the provider's retention window." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/response.json new file mode 100644 index 0000000..4286e13 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/response.json @@ -0,0 +1,13 @@ + + + + + + + + + + + + +{"id":"gen-1787283303-MzZJKVIY8kwZgp39NWo4","object":"response","created_at":1787283303,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283306,"output":[{"id":"rs_04d9222f115fbc9d016a87c768c0fc87d180771cc0e928f07a","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8dpXMvayd7rNj4dtZFYXpFRiieohkk_2aLVXy1kZci-T0fd9UJOJolLQjqUTbKLZC6O72oGG3nP2EN8geFkKBS4jvkK47QEkMXyTxJ4MgA8l7xyGUg2rz4FPO7Rg50U2B4MbKFU3iMaIouSTdFk6j7Kg0otJbcan2Z1dfDGcWCxXxteNqVcXTO6YWqcv623Q2pX99hdb9adbSO7cel-N6b7NtFkfKbWtVcUobPFxG0xaHZD-s-ymtcSbUM1QIYSAFbzfQLOYbTGZ-JJon1FgQp--TDMoXgAZ32Z6rnK4m49LmYVxAXO3G7GdncAiiyp3b9DA9JgEozoPXWfSi0wQLmiatHYTiK0otEbefNdkopPid82zwDmgH9ouoViDxWdTQSDx2Pe7YOEvph02ZY8dFFzcSV3x2hhMKvjPEDlcoeZ3_ptXAfJSQgMaMnhgPcf2CDVqcNZDqKieHhFO5tove6bFgfEkwifaCX1H3n8gNqPvASIMnjM_JEVKtClfqy98wgCTYbu2-LY69cVzllax-6JYYGSKsWgJ1o9fQOMSos1OntH-kY4uOH7is-BSV3ahU-IlRBu2gIz4v99qora23CV9xu9AzcU8nPoTERUflLRsghfJQFNzxzpg2mZJJw2y0-nBSqoQnFaqH9B2s5En8wZBpUoR5OlS1Vu5SulzLmR_4WKMZafO7e3ZKzP9gsKIXCMcKwii7Sxl6JVwTq-8NjoCyNn_4Xrsael7u39VqAkdbqTVfOjAb-qytqyeXwFBt2xLta2kRZFQ7kbQIRkP3_pxw4GuPFOG0c2u2Yy_Awj_WqGJY6MJJAYjfcI_FErSez04sZ9cqXyj6gG4iTU4Hu8brTK06Ahg0ep9ECH0vaMdXJs6eySzzpKqdUpapqjI1q8lbG5qfXZhDD6HA43U7J08KQYH_Ywz2Ywp6qtbDdOndKX9Y2YJtyJFAM76OEsiCxHx_JYgDvSCEh7irrya9mv1r4TSQB6fk4Yo2n3uTyT2AKy21UlfbNUC5zKMzZQnSL_-ZdECzEoBJiPXvuqlj3yqYJH7qCqUyVlkHjjK8U85Cegl79sijA_981s1x2LXFLs_PamX0sp8-bTGkTHYzWpE7i7U2HXZo1AxEwxA8PkecTM06C4NnBTMkgdNHqKQbE3kVh3P7KaxUNoZy5HdgbQLNgk2_afRhRVs8AapT6rjVu2eDJU9Jtjkkrw2WJQuYLWTlX6sROsISCgtjgS0G00-xN39z6Qb2_0hxgdwCZKA8CXAKXXqd9iGxarZa1hprMqHiYpcNUGZYvGw3bRXtuHMij-VuQ8hE_91sv9WYIBiVZ8hwPNyYlpIxosHS5IOei8vZbRqhXoe3pL0xGIHrwwXVIGw0s5CXnfMYijwuvnT8SBVWeDxPZFdnpU53NOD7YTZ3LvhrW77NphKe3urWJDO5WxuPl2hAtMV3w1tsQFypOJjCOCAiPK8oczyZmKkEDr-uyYQsEqaHcx8nnHRNlSd5MOl3A5N98Jo8umC9d5liw6eflUdRXxlcVjGXYVKlkQnz6dJS-s1qsJa4v7N_ekGM7nEVoOYxPXeuj6arnP_XyqvjrvraSKMSpMatsUD6rhp2BeMYHkbgy6YmvLcgPcxjDIOC8k2OoRfA3ydZR_PrJJLtLq7aA06ELgawiQpv-Q6WtvYx-rfGrxg6khM0bzVd6PmlFqysAYqZRgduYeg3NcG_reYa5XgXA8ENskDeqD0a4_C-56Ga9t12dgx7rop_ZgoWoFZaQ16isrqPhvAyn6ji83TVEkRvY2m6I7OfpAvIyQ_LXxIruTZory0P4ENkTr-bjI8CgM3C9GoBwoHslcI6ZVKij5OM0onAjr2FB8Hyqm5ATphz4Rv__I9awVjeL9KHhWqFHEABCSZ-um9Ms=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_4qfvz0k7kbs","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format can cause retries created before and after deployment to use different keys, potentially creating duplicate checkout operations.\"],\"evidence\":[\"The only change replaces `:` with `|` in the key derived from `orderId` and `attemptNumber`.\"],\"checked\":[\"Idempotency-key construction change in `src/routes/checkout.ts`.\"],\"gaps\":[\"No evidence of backward-compatible key lookup, migration strategy, or confirmation that existing keys are not persisted or retried across deployments.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":204,"output_tokens_details":{"reasoning_tokens":77},"total_tokens":451,"cost":0.002942,"is_byok":false,"cost_details":{"upstream_inference_cost":0.002942,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.002448}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/verdict.json new file mode 100644 index 0000000..cf1543d --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-a-billfold/treatment/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format can cause retries created before and after deployment to use different keys, potentially creating duplicate checkout operations." + ], + "evidence": [ + "The only change replaces `:` with `|` in the key derived from `orderId` and `attemptNumber`." + ], + "checked": [ + "Idempotency-key construction change in `src/routes/checkout.ts`." + ], + "gaps": [ + "No evidence of backward-compatible key lookup, migration strategy, or confirmation that existing keys are not persisted or retried across deployments." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/response.json new file mode 100644 index 0000000..01799f8 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283318-wItgspUmdojNbJVU3GS0","object":"response","created_at":1787283318,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283322,"output":[{"id":"rs_0bafedd05fa88882016a87c7776da487d1b55b38481c6a1b9c","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8d41xU0AQ8q_sgAvmM3mRjoYK34oKz_3P3srtKOrdlSxnpmjUzmRNz3EYDbkrdBc9zMbZdddWURZnMwvouQ_EUvk-unM10gixAxA6Y0jBZLwvTt1ryGmAAE3KPHkT3kNbWZOODpDCV3Lq4FFPU23cEKBfGUPyzFcHEfRaEnzDPBAX6J1O1bniyUs6Mak5U-GWLmNjD28BjSzfM-R-hT0BKY5h2Q4ljs_hMao5OKN__N49R8JHi00OFe2PFIqIoAjR0LNrAlVc_BdsocnwgzMbPLvXduuussychh_FozlMLa7CdhAx3RUqqJR509p6UjhU04gzAJpRyJFwQLFurUmwRchSG8XSaJ5po5n1ySuroYsNIHgq7NIdZYcTnO7a1XoDAyr6Q9vboP9hED5-uPRspxHMjDp3GJHmwQw_KXNaEkx-9xG4nuhvVMyo9dxBdKR-9iO4qNk3qtbfXWfRKkuqikvtS4gWfy1i3FIE_6mPp_wO1H8KR9BVphM-h5iPcLHqL7oRYVTp5W8Kce4AITkEEyp_g0ET2Sw0ZhiPztpvLYM8vMmC6gVpjADk8QyZ3WoCIi1g533DChETFTbBTJdbmbiHO8EPepK3olCMY_7qVP7w07WfZh-X1-CRsptDBBnsrOkCA-lQnET7Dfl9BuJ2eWLV9tnH5nE6E7IhfK4web_544ZrPozPoBAIJir10jTOc8ftSFqAskrb8BBAJGJJidCtsrOCsiMjzF8grQUtSZXJFt4XzS4YnKlmGnr8PjIljjM3MrD74e3G748lGrpWLGv5QDRIMdIPUdDd0EH-U9MWlj8hGgZmnpVLjQyMLDgRv5-tN8MuuzfUgezVD51k3p4F2lWrmk_thbIX-PM0EOR2ICnBrIA0ENDQINe_CVQJoRZcTRWS50afwlQJchB9RkiSqbIBEjkT4weXG3EZRuX36oo7YMJfS8L2q7TgpCnND-zNbjseGxIldoyQKLTTZH81PwERQh67e25XUmZQI7VkYk__QiZePCeHnP8avGGine7wZHuMdXufcn-s7nY6g3jWT1rAQR_eKSXyyToJ5K-f--1HD7UyZfu9QBZjahavdeiZRSKE9m9jDbNrxD3Vqt8dIBTNjIug1BJJxdUqej0w1aRvcCBAxXBfC8BTa5mfC8wIRUs__NajEHTn-WbScaumbYjqr1zVeaYZjNqoA5oKgmjMOunR3p6OtU4kvZRnAFWDLwOxCkkZCR1yDo-4jxKRa0nO4EeFLNjgfvYgTW2j6gosywu4krHHRivQ-hRIsYdw9TJoMAPfqdCT8wONspGYPbjMK2k-60tLIfYNKuvYm0iBzG8wgUjnKIbdVo4iGh7eD32awg8rMoMzpV4r1Q3LdIww9KZJ6qSc1K9AxDgkW9Kb9iAQt_YO_Wyx8JVMjFFa0_a294SQQYuwlbnCEU7eyZMf_Iy_xfMKfGmtAdbzk1BB4QWYIeyrXQAUZ4cR3o87eDuL5AHZjXw94vgDq8oFcqo0S9ZqbsViSRS9zQAI-roqNagOCyr4JZNFovfbbjZD4q1z01juvZdxuucr_-gCkNtPsS_FdAol6Ci5H-rBSfbm9tHp2VaEPnrvgqsvAbj10yldqRSPqSYzGjmCB6R-xhD4kgcwsnFdheGT8IAdjMgPrE73zHn0yR6iQIxbC71eFypDG6OysCh90uLMYQUt-ziCpIYGIX83XCwFQV6lR5tnvb1ZVrqRAPqZgOKfsnK6OP_pibN84kTmlwCQQ-DkMm0YZDlwZId3D2afdn18Y3DCaJfp_hTWtaEb3ggayIz6OeHUDqfaSJzC-ty2xh3wY8TYf90kbEwcwGncWhwczyahWKu1DeomsVUHWEPrsT8DPbctd-coXOOMk-a6CyPwpFHgTfex8ipcDcg_vnong-MbTtxulYbXP7V9AgDUXQqNjqBKnskGHa1hR0ocnzFbthjKKY5DLADSx3gnQZHotsAZ81Oo1jxAJ_LZ4ZP2Ve.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_b3yplal6jd","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Hard-capping `findCoChangePartners` to 10 silently changes its returned result set and may omit valid partners for callers that expect all matches.\"],\"evidence\":[\"The only supplied change replaces `return partners;` with `return partners.slice(0, 10);`.\"],\"checked\":[\"Return-value behavior of `findCoChangePartners` in the supplied diff.\"],\"gaps\":[\"No evidence is provided that the function contract permits truncation, that callers handle partial results, or that `partners` has a deterministic priority ordering suitable for selecting the first 10.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":234,"output_tokens_details":{"reasoning_tokens":94},"total_tokens":469,"cost":0.003278,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003278,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.002808}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/verdict.json new file mode 100644 index 0000000..3587324 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Hard-capping `findCoChangePartners` to 10 silently changes its returned result set and may omit valid partners for callers that expect all matches." + ], + "evidence": [ + "The only supplied change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence is provided that the function contract permits truncation, that callers handle partial results, or that `partners` has a deterministic priority ordering suitable for selecting the first 10." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/response.json new file mode 100644 index 0000000..c068b80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/response.json @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283322-enacDeHbqxIERigMx6Kt","object":"response","created_at":1787283322,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283327,"output":[{"id":"rs_007f8481958b7f20016a87c77afbe487d19027d0ecf43d6123","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8d9LKJ4PBxYPJWoYPRyDcsK9EieqczLlBqk38HYMlymxZufcL485KQcVoAXnHZLpdLtGbRxRyNtm1CEfqSR-IhTrBChx-WuMZlGCls4LQ8pfrSsY9jg8-OAHtdUITLIMTYA5Aj3ya1bTGAIQ9O6qqr_GY6HzJjDVGUk_6tESpp7hePS6mNFphiX7AMEIUUkB-D4K-NUO9Ev2-bjlgrkNVsJXBPo63vlWJ40-_Z5bd_zC2hYQxkhWvtUrt5IIXZICNoBI5AoRvoyO64udmFtL_fmRbWtNgduLkoE2z7grktgXx5JZHa-hSqTe41II6YpWx-B5Auylbfk7gU-X65ITMESwZpmfnT3gQv-KmHKF5i8Q_yx2NKCI5hMlMnTzzQrL4WSAahI0bhXzPI3uF3LT3dbaKXbotOYWhVEnep08MFjYMw0FoI58Zugbha5ZuxdaBKnCK-Yjbx2Cf20UgQg9BlaQmS11g5XWybz3EGKkjTPZF8l5xyPCGThIaUoP_oi_trW5fuiHu6kcWj5xnbGuaJTQ0LNO-_AzqycIMzgJPIPoaxryukHXZl3ocJqP6NW_OiJNNzDECgUpa8uqZz8rbyoqCgrMiDq6WFYFEjTGXL5LNRAGb4rZf9HTIRAD5TVVztMLSlYKLETmFUcoGEnnarIL-TY9pCHsNyfnqgyhUs7BB3GPZuII0jMSyFoD_Muf184EGQUNCEyn4sElEd99dts9L3r2KsSzZdiLzxt0vH5Yxu57Zh4ML-4-eWaaDfOD-P3AVpkj2IR4x3-jG3ztAOg36FL0-UryOIEw00JgH3vxlTG_ichxt8asYqV-S7IlpgGANi6jjuoVoD9l45nNTcE5Zv9xzAIWp9mvh5NQiatTQL-PzxPjPcJDRX5YgLLDBsf9YEZoROPP6LJSjoss8tfZ0rWhg8ie3ghFp7TFAaCDHTjB1nCf0H8btCXm1oHM3Iw-Ooa9F-G8amqwdTzl6GSJJGq6IFsitywysOjTxSxEu9-2JYTnJCNliytOUE7cBtcnv_dxRh--CNcils_vhnjBFu2vc4gv9R2c9P8p707kxQT3QAgmHKbW50qEzEL07QkLv4hJ02r0y8xqzKCLvz2IOEQOp_uIZMkXZ5mWQOnwM_k69XM_x2gVVPeGP88shYwaR8gc4HES7N_ZeAnBGGYouAD7I71iABuRQXwNEEdpqPIUCXeJeX8LfHNyCeOzkXI_hsTP-6C7MBqTBO44yigMCP_qKMzRyDSIlyUbZ_rRQigIX7sa3dxOkEukr3t2oczuFJ1XmuNTjt5NKOyip4pdMT07EwlwCp85quQMG60-c-K8FKBx7P34Uj5nrGy22AyCaZz1RHleX1Lu4WmsGbYL0qeCOeJPwBfLEyudbyer3Gx014uGPfbJpStSeTIoAp3FDvnwbxlTxCfBGDu4R1J3MTE5_AwBFS4E6WL8yBs4ND2f2QFXSBLI-tUp_yStoJubSng2zzHCAWi8tyYtY-UbjATZgiHyx9ysfODp7HLthlup7l7MlNs7jvuwLZuNJ_H1U5Zk-buHYsb2de3sY1WNeqrgJAs2J6vXqEt-J_EQOK_fbsbLoiG2n0Mg-UEuPqS4BwhdHeg6ENMHXq6ziQ2CvsDpkJF9ER5nDgjX9tiCmdHEEGFrxx6oL02MWCxdXTSbXrFjYlEmcRrDdm_zKN3dzk8HxeQ2u4-NwMKbcQkOoMM7zXgtQudP05FuvyXil3mzAKE_X1etbYW3DEUHbBnu3eU5kQlsO1bAgrtdcAH7cUoIU5v8Dsh0oHPA0bOw3kS87S7Q6QvYNpwpBydpyNPkPr0s_DnWr2t6_1bycNCImerudRcvye_BS6lJjXViggS8xvw1TtTqiqneouYRMxMynoG5oxH8e9K3PI5vR1SUMKC4m9AR8n2FF94S5t3Q8jIN79CkyFAaUy83mjWcaSCKl_fuKwfjqaLCwaYoOz5OkFwj2p-dD8LzsnSRhhJ09uybxJwdjACW3r7o3HmOXF4iCCEwaIRY3VK_QLxzQAye0KfyE6SGV61x8yxO2RxMlR1TLKnRvZRgg5Fkj9e24AR4TXjeMquWmZGciATs-uUqOztRfWGsZLNMhC79XxqyNYCuZ1KD_6mArGQ0h_R9jI8AJY_AGLoVue660hue4aeL8jtLbxcjvqITJDiXVnbGKEnH09cEELsQ3p8N634HOPszesQjcENLepQ5-QvSnjzNg-OZwM21y1pyup5tZiaBZIctwIwTEeXBsP2fnuW81w03KcGnX4_OaoHZFyppcbwg7Avg174aBWRLLgihb-4WqhJnDo1w8B6-JXKGUJquZGYJ65bPUKBIQ2Z1J_xPjWZZP8NBQ7Te_Zg8DFUscYA338Knc-N_2i8dyVZ8lXGZvtysEC0wuui7rv0VhTVVLSs96_py3tvi6WWymln6SisaeU13wmnIUUe1xVTwjC2E_bdYSJK8ptcSKD-RNLkc0GRo0dDSmN9jAk1dAUSf8SzKGgocI8Per-ebsmPGdpYAV9Dlw==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_m422rjwc6i9","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The change silently truncates co-change partners to 10, changing the function's observable result contract and potentially omitting valid partners for callers without any pagination, limit parameter, or caller-side adaptation shown.\"],\"evidence\":[\"`findCoChangePartners` previously returned `partners`; the proposed code returns `partners.slice(0, 10)`.\",\"The supplied diff shows no ordering guarantee or documented rationale that would make the selected 10 deterministic or sufficient.\"],\"checked\":[\"Return-value behavior of `findCoChangePartners` in the supplied diff.\"],\"gaps\":[\"No tests or requirements are provided establishing that a maximum of 10 partners is intended or that consumers tolerate incomplete results.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":328,"output_tokens_details":{"reasoning_tokens":167},"total_tokens":563,"cost":0.004406,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004406,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.003936}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/verdict.json new file mode 100644 index 0000000..07cccdc --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The change silently truncates co-change partners to 10, changing the function's observable result contract and potentially omitting valid partners for callers without any pagination, limit parameter, or caller-side adaptation shown." + ], + "evidence": [ + "`findCoChangePartners` previously returned `partners`; the proposed code returns `partners.slice(0, 10)`.", + "The supplied diff shows no ordering guarantee or documented rationale that would make the selected 10 deterministic or sufficient." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No tests or requirements are provided establishing that a maximum of 10 partners is intended or that consumers tolerate incomplete results." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/response.json new file mode 100644 index 0000000..6998611 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/response.json @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +{"id":"gen-1787283327-VZxDN0g3gQeq8T5xpecR","object":"response","created_at":1787283327,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283330,"output":[{"id":"rs_0a079a1830b7d818016a87c77fc21087d191481e4b78ca065e","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8eBlkYvMZQy6Ek0d9f3eylxPdNUWHVO7TSNzLR-F3kawRlIpYVKNV-SumBeROAeuQFzyo4Woxn1uPSH10QSEurN7lpiFCdBjIHZLeo6UHZANHdgRditPiEG0DcLYibibbglZrmuUDiZp16Iz1tb46zVVsS6o_59sddd-OMbIzvYumJXYMRYC7wJvLfMiysWC7z_IhuaE-DvPnA1ThamTkP6TTueA4HwPfNe3DP511-YL6wKY-19B6XL0KaTuQ82Tlu6szg901HJfpB7YwIpPCJbpPkv4XG_V7QeiLvUuM96R-Gf7tjCje3rtHMEBLWaPa1CLRZDMUUKnkO211MgPC0ZZUBjX5OURVImzV40CFBx_loAtElte2wQhLqGvH7JpNcXJB0Khy1_fzVv165ZiLS2qRmFJsFfSDmErSkeNteUQxANo3JDTWy-XbWqpI6oGzQQXjyzM8zUVr-gnZX_Sr_3b9wzOEvAeEpLiPciIQ8C1P5-8rcFq4Ol64a-2pXoKyoNNpQ3v1EeXl1j4xq11DqPfs8s5yzFjhE64usqv6FQhSzDfX0eu0-ooA9NSpEnMtqsXTFo1-mhXk6lfBiRe_AQs6YgMUu7I623kfQxA3v6fgcLercy-MRUQh9FfwL9g5vx6OyWZy6bBBvCIo5huIEM7L5G-BarNlTFgoG8BK_fzkFa7BI87HYifm82hKrosWDVS-dHZnPkrMN51xqZA6eQigisWF7xuhTR4mAJlsqIgUdWqrG6HTb4gGNoltRdavU6uaIWsVHoZVHVjylEw8HYeMBV59byPjI4ZpVipGNJJLhN1HGKgw5NQPIjzZbzYa114k3J03M7ykhPACwzf7DZeFl8tEMmpQq-PO7mXJ10Onxi3-EC6wQOMiKdTU8gJ561LEKJn093tY0caJW7YmoQ73YZHMxK9tl1xEhdZtklovB5DyeFzrT8CXD5y4Lzv_ur5HtHSlD1OrJxXmtwyDGuRAxOzfuu6Nvig2him3KtY-fV28IP_vHwj60woDhpFXtla9L9118nf8_sSxmB5lVwPKmWm3fIYjz1jExbqyvC1YWIav5hyKXsCisuSfydydVjN027OTaMeHTJafB1BfKGImsHSN-Z0VRk0z8zLekqr0BOvocxN-os3kkO0KZDbvHskbxxCrkrm8YCNc0S6RQUV4JXJzloolYAozhu4TSiy4y-DVqIJpfjs156qAYnWaSrLCowDRZrDAPdqk7HjbIx2RBGwBpP2bPNTE0tnD5YBt2O_dpcEDQbAask9nz_SF2VOS8P5-joLq3gQ9rincNDHlp8ObY0MrJ9rKgrW8ha1HKka67CHcW9-nugmuRN4rg-tJ5bWyuxt9M8t6NhnCgac7Jp9eGDp58zG2NU3Gl71vP2CuyiYg9tFzl29F4FNdrlJ4GAg1cEnqWGypTKauaREL0gjcn9Zo1cTCscbepMmI4oJ63RKPpo6fgwe4DTuOoxr9p9-jWfjT1M1oI2ek-3h0uQpmLgBVqyA1oXTreX4lJ8Y4-C7E50Ge1HHqZ8Ksuf-dSdY3c-EwCF6EhcDO1IhCSedFGEsJTVjjtnWDmyyNekkcUug9FQIcbu2Hnu-EdtY92Y0wxw3M-xXAMMdx2IH4h0A_OsTGZei_T2_FR1e4xBj6USbSjnJp6oZj7JvAMMsxZHOlE0D4GuaIH077Di4ljyg26Pph0PwNtJPmtSSXmcAeEcNiJh-mf_RDuN6xLp1tEga42OZjQNHJQbDRTjGM24wttsydHLKSRU95spGh5cRBIWrHtfV1WevgQ2V3yd6ztOy7JsRJt2o3kGmKczcahhyVKFgVaf-jDYRe-XTlCnfxdBvYF2M9xAFpd1X4OkTQB0VZMm5fvF2EqJRY4AW7gDCkD5BBKEl6xIzETORHTIiLaQlzMwWyMTe5TUDntD.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_xn4x81vfd8e","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"This silently truncates co-change partners to 10, changing the function’s result contract and potentially omitting valid dependency/co-change relationships for callers.\"],\"evidence\":[\"The only behavioral change is `return partners.slice(0, 10);` replacing `return partners;`.\"],\"checked\":[\"Return-value behavior of `findCoChangePartners` in the supplied diff.\"],\"gaps\":[\"No evidence that callers expect a maximum of 10 results, that this limit is documented, or that ordering is deterministic such that the retained 10 are meaningful.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":217,"output_tokens_details":{"reasoning_tokens":82},"total_tokens":452,"cost":0.003074,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003074,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.002604}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/verdict.json new file mode 100644 index 0000000..beaa73f --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/baseline/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "This silently truncates co-change partners to 10, changing the function\u2019s result contract and potentially omitting valid dependency/co-change relationships for callers." + ], + "evidence": [ + "The only behavioral change is `return partners.slice(0, 10);` replacing `return partners;`." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence that callers expect a maximum of 10 results, that this limit is documented, or that ordering is deterministic such that the retained 10 are meaningful." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/response.json new file mode 100644 index 0000000..f990394 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283343-HrYtCSykXi1oV20UrMMZ","object":"response","created_at":1787283343,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283346,"output":[{"id":"rs_047ff510496279db016a87c78f914487d1b77724a5977b1e1b","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8eRK11yFa8E1c_-oQyLtRyDUPpK_gb92j3Rk8uM0RG9SrFUYvOkQnGsafTsHnr_9JYaq-jrTN-2NlZjpgOh63Awv-b8PxKilmfTXMn5ufScSPJNVzK3gDZwYxUXqPB_jBPY0kxqEGTIwxSrI65_sAzBiyj0Z5svXcDCgJuV2WNO_y9mnWdH-qjRZIU3QWGTYZXPm5uT5s_cIOooEucZn1Ae8Sa6wosmdWlp9EZeucf9eQv43EEYbUKMAavKF5gZksY5Gsoq4129bfAYevVkwrwc1WHva_mTLoMQi5x-CxhREEtsQv8XMm5qU1dDtn2T3NATtkgTitQqyfiUMSdsreXve6LVJuYoPAxPL8fYzPtATAk6WfwIIi9aBmLKM2L9_f7_rrSfnV1tTWL7rxdk4r7xN2FwX__D9LeipWaHXoEKN7d-meFSSSSmNkYRBSiozvf00ndxm4sfU0E6pAhckOYXjMwa1WwzaEZKUVnCLK7hGCoQ0dKRBr7wmbiVGBuDDOSKM_dohkmxVqtcxZocGTCvwQKDzqu9hL9NvgjWXDnYbu0FBkvzN9H7SYYYv1_T2oLBc7b38dvWP15EIO7gEMxwsMhMgG6sDv7o2vyOj8Sa8pUIqawQWOxrWu3F2c28ZyhZDVrkPFx7L4w32PWE4g5cIsyjqrn8xhyAugYgPIlqfOc_87sEh7n2E6PEjMgdMVGymi8A-FLw92IAqEnmuaJKij9jWGQtPip1e9DB1IqxtdY25rnHG4yxQYlDsi7g6vlFeWRZI1d-tJjgvDA2Jc_8M_N4nnC0uURtb84S8Vv-WJzx9VDG_IaJiKfWs28J8jGy-Et878YEkXosUB3JM7GMKTmdz4iW1PIPaD49KHLP2pD7uN875cvGsKS77brNkQHGwxfpyY-GcDFdzvl4wIY6hVs_wIe0imV0GebTAhq4Qnadxh7k4LUioE1ocdh9JDu0S6Wq7HC-GvayCFFcy3-MZJLl4mcewGML5_noHQkYOrPSV86ZS5MhPXF9r25yJWxiauMyc_RWjblKowQ_IsSEaG32PnD76ycxphF30B5Wpn9ssDASySV8-ZbVQoEMSbGqfH-NvncAGjZ2l38D99oK92Zts8Dm_sFXVpVrq9XBtxiHFIjAdGPjA-1J28fhnGntE6r9aMR7LC6rmJ4e8t872ixDLscXW04fbbvqPmSbjqZgIOJ1WD6L01n_56GrPt5UNIh8yZ2YNqxYOFDdZVfRr7LRAi3cUog56P3r69M7qlOh8qfPsgZRz_ELFs-U87D4BDXrYQUevBiexZS2inSi4Vlrg56vfZQZEUlV9PhDrJaUJMLqjWaStpfIrggGK1-dKRwCTU1JR73aWPTKKYvoHz7E7gicbIuYoM48NAtFB1_8dSmtuOGt_ZQRADwMh9c0ch3be0qqWtuV7_yaPerAYRBCJ52doAEPUvlAWiN300oAP7EgJJzNSeuk6gaoDr7zAVPRaAkiuenKtPwE79f0zqhNoRBbteLV7_CCU8WtBxR_iulJI-9TR4NTQcgW9lXxRVSjqQmPZVy6H28Rzitl1kVMyU2mKqF2BwqRCa0d8-Rr_94AB_9CxkkwLDklWWHXRELtaWq0gviqW1Gwr4C2g1SiWDgxAvjLZzGe6d2E6-tNv4oJOICdBxveCuuIGokNkaeEZjIZXoA_8enDI2gcA9rOqW3qCnfWXHePikmXCtqch6XPXoMi1O-39trcQGXJvyvA-6D2lO95XTuhVFc3sNKif_RhuXpGimsdZieJVt3HKxQFZpmuLjjfAtAR0DqAAs-cD65Ij4nrfu5guy60_knQr5h3zl6gLOsU4ybrvkNnOLuqxwoQxQlbLYVIkAZ7dyDGcKFsNfTGN2C-JOsxqNHVgvTJZqta6W6phXWnLdrjAqX0ANgiDu-QghwjTez2Rn8Q_RTohvFerACvNlkDeatTTXlqYkAHTslj_BDjoZuCMxoo0b12iuVTrb2Naf5lxZHjMkkzNzsJFH6cs4fDP6LK1GtyXXv_ogs1onHdOXxOlii3ytuxKln_mj7QSbCV6EGW8tb8ETVH9NSHl3225rZhnVte7sPnL6-uieWbFbULZem87bxXtm6IpSE1bOPVal2HmNaUJCVJ8z62_Nr1adGxXUsOkY_iLF7mZMOg1etbb33AVfk9gNjDFtm1-sTVJ6f208GR5oTQuKfIYoYwylcU_5o5Va6FZl6uPF7bkxsztGeU-tln65KeTMINWnjEqyi7Sgx-WZmoZpFA8crRvpbx7nDXOYGtjAPtlHUzCnk=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_q5ocjehv36g","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The new hard cap silently drops co-change partners beyond the first 10, changing the function’s completeness contract for callers.\"],\"evidence\":[\"`return partners;` is replaced with `return partners.slice(0, 10);`.\"],\"checked\":[\"Return-value behavior of `findCoChangePartners` in the supplied diff.\"],\"gaps\":[\"No evidence that callers expect a maximum of 10 results, that truncation is a stated requirement, or that partner ordering is deterministic before selecting the first 10.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":262,"output_tokens_details":{"reasoning_tokens":134},"total_tokens":497,"cost":0.003614,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003614,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.003144}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/verdict.json new file mode 100644 index 0000000..a6b136f --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The new hard cap silently drops co-change partners beyond the first 10, changing the function\u2019s completeness contract for callers." + ], + "evidence": [ + "`return partners;` is replaced with `return partners.slice(0, 10);`." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence that callers expect a maximum of 10 results, that truncation is a stated requirement, or that partner ordering is deterministic before selecting the first 10." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/response.json new file mode 100644 index 0000000..e8e626b --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/response.json @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283346-K0Tsz2pHEK2kf8LUWjIj","object":"response","created_at":1787283346,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283350,"output":[{"id":"rs_09650beb653f7e65016a87c79326dc87d1baeb3c202096f22b","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8eVQmtirhj4kXbwzfO-2zh8lke9aedyUIpweMFF5z6IkD47Kz3Wq0d1YH4fa8Yh3VuISISalLNQaqp6KLw48-NQzfUFqsetscFf_C4WXDa5HBtki6LjgaYKgpuFbXbsFfSXOFVi-9FJaG-L_RJeMMWNK998Axchxe0vSr4-AD_wMhXkhhkYWGSSpjXOpUgwf0cARbz5Uw-zzWJYHh5jSx9LVmzFsVoAkLmJCLKGmi30OO7WOTUboqXvMgcWECKq4Ua5V4OT9e2Gkuj8G07-i1Wt4WseD5y_L07NT_Fo41O3UTAZMWeDML6t21-kOOm_A-fykAUIj-jvcmbF98Vxg0m1rTELiRnMU7To2omavtBNYnRDmHPBAZNPQHsOTgd42XGJwS2450dFRBr6_kMmB6uGZKlhs27tvNPSUJOjFcW-_OvhtkwQgSeBqGDWn6thbGMbZmSjevALKrcIEYgngtwDorW5_1WncSG6Yx7WuYwv-N-vGDk7jQ86EIUI3FT-xVec3VxxHnNHoCjCe7IbQLeXhJDvdlp2o0BxuxP7d7kxpb8-JSVUo4w3bSgu8olnpRKfrKF5md4LsyCMJEh03oftCJ_ZfHHM2602lTRu-UHAUicrpyrRapUJ_sKxn8JoqsHSH3mXj7LPF5PQNmccB9e-rtMgPMbuLOTnq39N2MrtlrjxV6Jr15elOnNgG7bZs8J1Mg-yf_tIy5S-QSSxxjZ95nCO8qf2D4u7ENf_KwveGUZRscYyAbqNjYk7_VL9pePqGk5yZFA8DCp0EvpX4NnoQzBijezdVSKqRPTq7Bmf8S2DBRmdWOhs8SHsINUB0qcjmtmZapxKUNI3bQK_YVb7CVQfZg4H6pB61NaP4GJLJeGZ4Weeg4-Uf3dedNfFY1nInWDj-Wb7tYrmQCGzlxLN0qBtSpaowxvnQ8jGfjPCVhszc6T4rlY89TtAIhTe4WqW-GRKXz_fFNhV1lchum4d4BC_G4aGhRnpjfHtV-J-o51VSBUye3OJkZy_uL3BO6lPnClY35uuzXaenyM2xxcfg9ftss-R5DzgzW5PMZ_NmcXOgSHLq9CnUyASPGfMS4l6row7C0xF6zflzgBQ31hglv92Zj7rsHuO346voORxntcLTzfVuQXb_n5vF2_2z0O4VjtdwULkv9RdAkqnHrlSRR2CqdME31smduWZ9h9B5ANAmgAJoPRHhjrLUXvAm1XmUgHlGMMsJ5VhR2txJB9lcrcDlUvTvNW1_USBl8UxhfaE2oY0mKbDMZBMcpSHMQcg9toVLwAZz629t_1KH9yVHCTI5Ln2Y6w803orjD7s-QajNZ_T6kMJ7D3aAMwUqteE4J0CaImEXe_K4m4a4QCTbUx9rOHcP4GcuUjsStEMfDzCP_EW7F2NKEUwIJ9EYmipIv2BluL1I0q1bS_mNB95xhgz_UHPJporJm2bXxdvfE6aa8ZXwDCDXqWYC28XkVZMxQ_ZcHmtzpR6PwKa7o4hUDL2dTBpAVh3OQAUSNGL4VqtmkrWG88O7R_Ka1SNf2XJBajBj4Lsk82DAVQMAvUXhfbL1FsURXVFhEICwMDp4Pcjw7PRV76VbB001oJIAbEL8jsBRHz_zWnlvYh0zgNqkr6fBa4zuvHzZE-8au9x1mVyOuanOhCen_u7erB4E8VlWng43hmbtwXRJUoRcmsqLmissQYT8vQk9Er339yvHm3wgY30HxA9BrY6QY5rgN11kxDaeTqV-SChNtAzV1vOVGM6lSC4bblo5szxPK46O7h4qAlwaRzjvkQPEmz6CdgTY12dwykfCP8TqIz70_XGiXM1wACSVtlD2aw5CLykkTtqWIGCJGyNDXyIXGoxn6OgRuASzcp308IHheyuT-GwPDKYbDuIt5g6H2crHQM8ZoSbwLSxaAtrI8-xgrWBSbv97r0mHj3L9oTzPONJFUhysebGNHdsZddl_U-InDVXDCiojRJAZhesUjXEG17ollO-fPaFvObCJ1dRv0p7Wh3x-Lkf4KBFVyQuvL0N0lbFXZbOgsXIi3bmDyYFBMxfyT7CmfPB6CgJ6Qg3ikpjjnmG2840YoXV2OAEY2egz5SxiI5lH95ABZjyCk0H4RgxMokY0xjlFuZ7vLcN7qNl2wOOEMVI_6PjvpffhIFM1Dh2fpsowLBui5uaiYjYfHyv1R8c9nc9VV2ilgXmL62Jswb4xxz92fI5BJdIHrpJqHqwUB8HHTltRHD6cdtW4CJ85dTP.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_0iq2ny0ne8k","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Hard-capping the returned partner list at 10 silently drops valid co-change partners and changes the function's existing result contract.\"],\"evidence\":[\"The only behavioral change replaces `return partners` with `return partners.slice(0, 10)`. No ordering, caller handling, pagination, or truncation signaling is shown.\"],\"checked\":[\"Return-value behavior of `findCoChangePartners` in the supplied diff.\"],\"gaps\":[\"No evidence that all consumers require at most 10 results, that `partners` has deterministic priority ordering, or that truncation is an intended documented requirement.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":268,"output_tokens_details":{"reasoning_tokens":125},"total_tokens":503,"cost":0.003686,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003686,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.003216}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/verdict.json new file mode 100644 index 0000000..05c1bdb --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-02/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Hard-capping the returned partner list at 10 silently drops valid co-change partners and changes the function's existing result contract." + ], + "evidence": [ + "The only behavioral change replaces `return partners` with `return partners.slice(0, 10)`. No ordering, caller handling, pagination, or truncation signaling is shown." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence that all consumers require at most 10 results, that `partners` has deterministic priority ordering, or that truncation is an intended documented requirement." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/response.json new file mode 100644 index 0000000..8cfadf3 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/response.json @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +{"id":"gen-1787283350-YVasx0ta5z7Gf04jVclY","object":"response","created_at":1787283350,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283353,"output":[{"id":"rs_0b85a2da275fea12016a87c797130887d1a0145ff4f20f256b","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8eYVnv-f6lJYrEDOJSkhNXDgPJ_X3i1WvZMMrD6BWr-iYGm7YkRlySropQQXfKmXVCoC8Kowq_MnMYBsj2F8bnFTDS6uRYE1-8uENFer_byX33hW2bhIS29UBCRHS0iUAn5EH1k0_hoK0R9h98g2HP9uqtYEdMWl8XGNt3Y_bCCO14RAd7GdtGqNcMgVfjGXuLuXzjYtR4CGU98M1t6l6ikR2waGsHaWhTKQUa8PBbRlAS_RTy_Sg9jm2Q9MaYLaq5V0NgbAVqso4FE92opMUWm8hmSAJUu0Wd_UsKRhq3hSSK7xpwRYRFAz9JfkUuaAHnuKnTRbPimxg8qvIORNTHstygre2TTppMvbbyTk4m1Lsi4iS7pyTDSDVPUVd_cF-FsmmTqHXO1NAJFyKvQL43VvpuxK9krS2zVjuiJr3xCmY6r-z_1Cr1NVDsAfBLhmkAwi72zoqEgINhu-A3UWCsXvSG0bh-RYDSN3AtdwlhDGPOW_Dis2n14PNFcJr0DaXvcuh8LwqsdJgAK-gvXkEbTv8eKY99RL1i30l1AHyNT2r37hOYvk8_NLhzDtufIsx_Gt0aeGPVSZwTo94SHxZoepLc9pxvjSnyaRSRfVTBUrj8H0P3r6J-4RnQs7HU9cz9X7vehYOko6D9FirmnfA4nqdWGXxSsH3eeO7zpZybY-2QNLIgUBTK38A4kM4kGrjU1vBZalmZycGLvE7l6q7lQBkhP1A7tAY_bdhv9KPkRDI4W0m-tsdH92xSlKOyA7Q1lEkrkwVwBk8yIaO226iTpdRdnv6NMAew1Ycy5bXuu13H9kEmeQnEDuFHTH7J__AKnKXTGYum0yEb4EJng7sfgcBDeoeLXscfFqVsuyRTapG63ZxPdKiYaGZaSF8bZ_WR8zxfDpjP-cmNgT7SXpyI3rTA1NMgT1ZaNAn--6nqjfq5DKFzq6H5YNTz95yZ6trXQUIxLnNIHdD7aOHk1vomhFoH0dvt0EuuCIBsrIsJ5FqKACADRu1c9_Dug9BXft2bV9BLlSU8jvebs23a8V-8CpmC0G-e3frUoxsfmEQmto-sY5jaR-1cGz9cDXwLD5a0y8t-3EYSqPg3KUHnD4qmjTedHXfLKZeMGVR3EBunl_2tWlEwSs5z90F-alqKbC2WA88xV-k2s7oQjmcY3t4NyI5CZVHKel6Kyrpm30YXD66i3jkyNVDlLbEzp7-NEFH3dsC5cZ096oG0R5pnK61IQVgtH7tIvk-EBm7w0xnbZHKJRYdkb5dDh06jT3HiFYNULcWWm20e3OI0HReV-xfb7SjIiXRvJyhzwraxLx3QmydmSWYbSswO1LMY1KCvsuQMi6D7jjbxCClhMs_DO48-3tZhUDIXRhs4L7dDbKsFF_NIVXnuanCHIldjKI_2phjmJSBZwDdjJtOVgnpbA1y5-q1B80HowZT6UfmgbOnpXGolvTNNgE3XIdTcao-uIBTgqYyOpZjD7swpInSZXxh05tSELJF7r-I7DS42Bits2wJDx3q4md_x1FRuwaagHesOXl7UjSegYWCA-F_fCLG7r-TqJrY7Q1ysag4JwDT_Cs5STrlLW0YzuVMjAiH7pPnbqT5ZQ6WBvJdAJviWAh1-6PMlPlEvv0p4rp9lOk3ndcIID6xQYS61mOkQ9oCq-7-hBSycnv7PjYfz_Emn4grY9illORCObiVtY-WwGIlTKVfvHSkF3wXGjWIYA4EzHxSymJGfJ1AIyABPSxNtozXZAQxIwY5d85-hWnwfMsxcP9UzLa6vzwfrRgeQbEwgVZYjF764lnVghQBnb4bOqhyio-CV4vKgYXUgUVIk-WKak-glBuD4Mb_k6VappjGv5dSdsjs53LtlWgiEbnZZh2EHaWz8liJ30IdQ7bOK8wOINOVd8vgbdJnUXWOFG5_TC3AEKyZmJSKoHT0LDzARcBlUgp_YfNLQF9FsB-lOrghs0cjRrn1go48UQTcqnphhCEkyM-7D23H4goRaRrOhHRUkszCyJVx3FIB9-9Y8BlbImyoEbLXQHOEfQbQf4ISozmkmWcfvVUwgsVNZALz1HBS3D_AkSfGYO60PQUFSVGyHZapvo2D8u6BdNcIKUyovM2Yk122BwY83-Y-uttVLTxZE6NYxxv7uxQ-Q4ZQ_PHMDMiqWhbMyRkQZZPcD3a8U5ZRsBJJMLjdvzH6RLXez6NrNBwA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_s02xel74tzd","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The function now silently omits co-change partners after the first 10, changing its apparent all-partners return contract and potentially producing incomplete workspace results for callers.\"],\"evidence\":[\"The only proposed change replaces `return partners;` with `return partners.slice(0, 10);`.\"],\"checked\":[\"Output behavior of `findCoChangePartners` in the supplied diff.\"],\"gaps\":[\"No evidence of a documented 10-result limit, caller compatibility, deterministic ordering relevance, or tests covering workspaces with more than 10 partners.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":255,"output_tokens_details":{"reasoning_tokens":121},"total_tokens":490,"cost":0.00353,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00353,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.00306}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/verdict.json new file mode 100644 index 0000000..f18c8de --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/perturbation/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The function now silently omits co-change partners after the first 10, changing its apparent all-partners return contract and potentially producing incomplete workspace results for callers." + ], + "evidence": [ + "The only proposed change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Output behavior of `findCoChangePartners` in the supplied diff." + ], + "gaps": [ + "No evidence of a documented 10-result limit, caller compatibility, deterministic ordering relevance, or tests covering workspaces with more than 10 partners." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/response.json new file mode 100644 index 0000000..e99a98b --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/response.json @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +{"id":"gen-1787283330-c997INPZ5zOPuSAApAZL","object":"response","created_at":1787283330,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283333,"output":[{"id":"rs_0d494cc91afd4505016a87c782d8f487d19872dde6caf98fef","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8eDpQ8nlJaI8hSuhWOqIWg30qFBjhXXMmpC7-DxS8QisD1k8g1EBgWXI4yTcpgK3LoMf9qYH0_p0u9OGnANuVFMASeAMTT6DteDQ-IxnbJ5Rlj-4H9eI_IulAOjjPhjUJZeCjzeohFqsXrdVnAWMrTvxVPzVAJHh63oadjxLfBj-ZhtO6ntEOgOme-qX7B4B3po6rRJtVb_GI1aV8Gl0-VvomdQ5vawGxpzKIFkfCi-LKH1pkO3RBmYr2tNfeStKhadbDLhHIA67hGg87c8WGfctxMWORKMk9hyBXAeyOrBXtPt2umM1EyUetCJqt3AoGVncHyHjp-uq4IZDRW-j5pESt_luHD0wM9DsSBQh_ApjjqGbWSkRDuKrs0FC9bSjjzSzUs1JyWMU4P6bY0nJF0_MKyBak18298dDbANNRQvhV109ssw9YU2rqZZRBbL-sgCovS-FCZpngbUnBgSbj2ESYBDgfvJcHKl0y8TfRsY4CNH0lnQjkcSZbY_gbah-td5PpBN1A11oulqgtchTmtoQ_x_jV1_LHGrUlYfw9_5uH9zVp2sL9P-oVCnoc3HNyjvOHl5I3gGWTzE7cvEeaGD-BjoBhop6F2YCkN9j7dvEEWvwhxbx38R9HWjBvPsvP4SDMqgBnqo943Im-X8hMf-Bq2GQT-O_7-aGYDiOop1wa1Th_dMrCjE-9QSyCslz7XnL4dNkHKNoLS7zGe5E1OZ7rlT8ekhZAsA8uFmSmpKHL6mmEVHL4tCFxAnLv2-Fd8v_9MytqrbXlZ6Lb03eQbGAuO_jYZHWlMhs8Vx5h4ET6L4niIZeM7VayOAyLQegNLY47Frb0i8YEqgxeWN-WjcON33hpzWH8Pg3QP0iW_5wPwmNArMCj1j5yAbcuOBQvZ2Vc9Vgkmt0QIysDxf7XfFrSJearVoFPJMA6g3thEwpLMs4db2kBX9t43_OdaSCEP1hHyplIwCVVGEqdZY5niq1x7N1iUK5I5Je_kVPI_mw3BQuwq-yvzleCp46PBmrBkLwhjNrbDsJ3UzQuzozz4c1pT0UhA8cO9zexkyryBVfjWrfQ4N8Lp4XDe8V_2sRF_3MvW5iKkB5Vt7evuPASHZJA6lqmhNLh3veD5FWXaWR7xsgIH82-s9jfjdrQJTIOdFYTcXqAjqo1kFAn9FTyDk4_2jY9U0XozeDLVU3aFOc7lTHtbgqA2FRSNQPrRA6tFILa2Rmv36TqUxM9pwyc9Qb2pep8KF6jSO8GjVvU3CFooraI2XiQN8pehP9JZe6jqsCyH3kwRS5ZPjAa63jEkpT4xPkfW9E77NeaPANq8JNnOYzPqLC8HWIJQQageBWIvmE1hi5VUE2bH5YEXUszebgIoc8TkkE-pJ2TOwGMdzUwz2rKtCczbD0erR2AWe6LgT8Iuuq0DoWQPXMoRkAvAviNAucg288R0jMckKs8ewxP8O2qgry8yTvhmpcksvBMgfHQ2IYKy2dGRE7FHli_ZnXMMYqON94TIDqRp035FzZQDbVi4qhOE0OKa8iekI2hglOtQbgAc21AJ-ceTYKiFh8TT-8R2mLFDc6WWJDyahxd7YAmAfpfsLC35dBsoj9XzJQkTUnj2VhsJq5ezJmM-3emHhv06ZBGcMtyYVMT7OVcLEuFVtIgJT0QcugXZWOJIo0BnFWAEvlkl3TZxK_Qy6Pzp0K4fi8WnAYnsv1bJpRpelOTkKcJXR6tGW3OgxwPvXl9JUq_taSFUVB1ansbAsZLDR6-bcguLcz3uF35ICOy__JN5SVOiDfeXpKPb2ePhtn-2y6yH3vU5ZN-qbYM2LQH8YQYsjkeFX8dI2V5ssnBMTqUNuQ83CAo6zDcF76EJP2I0HtTpcLbtr2FepgAOdbHu-Nx0eimXtP_hXc2qIfjgTV--ESEq2xPQOKq1k8n_T2By3EHbBz_p8eMZu4vXo0GVN692V17XAl_CddmYGjLI=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_82vnokdziwg","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The new hard cap silently drops co-change partners beyond 10, changing the function’s observable result contract without evidence that callers expect or handle truncated results.\"],\"evidence\":[\"The return value changes from `partners` to `partners.slice(0, 10)`, with no truncation indicator or parameterization.\"],\"checked\":[\"Behavioral change in `findCoChangePartners` return value.\"],\"gaps\":[\"No caller analysis, requirement rationale, or tests demonstrating that limiting results to 10 is correct.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":216,"output_tokens_details":{"reasoning_tokens":90},"total_tokens":451,"cost":0.003062,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003062,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.002592}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/verdict.json new file mode 100644 index 0000000..0294a34 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The new hard cap silently drops co-change partners beyond 10, changing the function\u2019s observable result contract without evidence that callers expect or handle truncated results." + ], + "evidence": [ + "The return value changes from `partners` to `partners.slice(0, 10)`, with no truncation indicator or parameterization." + ], + "checked": [ + "Behavioral change in `findCoChangePartners` return value." + ], + "gaps": [ + "No caller analysis, requirement rationale, or tests demonstrating that limiting results to 10 is correct." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/response.json new file mode 100644 index 0000000..3c98aa9 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/response.json @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283333-OP6pwst9oi1QWYIeyavq","object":"response","created_at":1787283333,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283337,"output":[{"id":"rs_0e66ecae5d9589ed016a87c78619d487d19e2bf8bdf99edd4c","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8eHhU7jC5EZuR4gWA57loFmP6TJCD54w_XPqj9WULz09dbnN_A2shxSgUFAcK0BwNmOtvuE0tIA4MgxnE6U2Omb0FZfdt2_EMbMgbystOmnmM-ROuOiS066hYTyS0JslnXNl8nb57FeJ_d205gjFawv1xchZK5H38u1DwPsrXQEcVtv5xTFptMt27fq9AnG3ZftyxTpdnU9M4Jyoy3U2agUAENoA3oGjp-9soz7vRLts_BC0RAFudP-tHy_GWAIKPXKrBImoDNX_wZ3rfZq4J_2-6L-Zj2BYswyuAMf7l_oYDNSHeCh5SGFpzQkom6V9rDuAiXS8u_YGeYdizgK4AkJ3OHihzYNC_ZCJfF9d8OO3t2b46uYmijSpabWQ7MhAEJWbFZqPmJ8JkOW-vaHmBUaO_4eXyZi5V0tnCK8YtfQiFF5cmmBbwYqfmOsK7Qm86vmDgxtvbDqGxvZbpiO2HDUep8ztt-o133PXoBr9_aysaUOqg-oyjlUydZgNJlTEvOrZOWHKjdJP6sHALyP_bKsshWvKb_ZdD2sfjbsZWA8mYsGTnVSirMMwBFClUoXbfXeoouKm-a4MzaMKOFnTgl6_jkJE3RvZPjSVDWGn6bAqzYZlVy0Z8QzzjwjM4ahpqL82iljpTD9gEiTeeQw3JvGDctAUD7uKxly_HaOrwDizcPWCpGqkhXyQgylJWSsmd2ZBAMnzdNkiXaSfsFYmMeQHHNgA1YVnVYxxQlrT9swTuI0HGY_ftXQUru-fvlj8WgarjZa4syHjSmGzNSBwyNOrr2Iq1hdD8I58--QMta6Z-PHDRfpc2D3YWyZ2QeWnM077QcziW0rkYV6nnk5aqQr4yQj_-4h5ZDsrWckyvw9jOHEOU7LRin3m_ZZYr1z4XkpL1JadL8QP1igKuCMgDvGSswZBghERPnOjeeYxPvw8HBG1G8QMTqB39m_kHSQLrDUMbCExBTYsb0yDiiQHAbB1OmFjk56Gm01zqnJvL7bLERXGKbmlQs2d6jmhWykG8AqROk_OinyR7-mlx-JJbJlil9pgQ2_z1iG0TIiYmmi86COWlL9s6o_4uTy1L9-S7jViNgojrb7qknCC8XyPz17woWNAOWvpu0frl-1dYVK-feJLuuc36fuw7ZLaFVCpFy_qsaCAbr0zVGtTBYHUC4BV3yTF5F9k1aIjT5H662I5gc4AsGn5vlPJszYVVksmXhojPi69O46RMGkGlvrF7x_Uk8Arco5DhWVrolje9Mn2cT46lJnD8fokk7OSuqrTYo90kNgM5-KSdMzSpDjnBWS_t01D0tGDGm1SE-0bPYk6EO1hYA9IxQrOsSfH5W1O7uPrBHgNYUrLKClgZd6ziFWMPQnEBzEG6vaQvmrO9NexZziFI_Fs3wKdLnSJ67AIx_8kWVFnILeSVpIqNrpK5HprQSDWUqGNWt7C5R_zogYgco6wm6TDXdBwvU7_Q7uE4MrLv34CnF-FcPNgfuNIASEmtUxXxUfNbNGF_L7uCee4sgAmOM6nIgbYD3aDSDmN7G92iOJhCxb1jGk5QVYLb3VE4_VQPMGMZwkX8Tx3AkBIzv2cZ-qrfnAXMpzG80ZHiZPSaz4ITpXbdVH2gs7VV56YjYUGTznbJRO8Q8U4X8JU61y3iDmfZEHDp9jlEAKa1UXJr420D_JnBpnvwljp-Z6g5EovvmV3ClUB5gew3mqUb8bZYHKZp2yi5AbOZYUY2TMXr97GYjI6un6IfX56SwSS11onsr9cLkzZabUXWj2nIL1hHolpb54n4-8sYJMxBwS_2OVJ6VBSRk-Z_OPEpTF75zQU-bwTr31fbKgCkwiZAsVPB9bg6xkek_e-t3h_dy4MWccihMspYffF0RXXnPazQOdRiQUATqrs45n5ZTSSahZLYzjTnw6_eE69CujV49-dwDfqZISJvHgcD0wUs0WG-txCln_9Bqn1yrOh8qnFBcbjn-ELIaULrcGEFGBOBCIiCgZ6JX8ys--g5dMpqI35u6cgqUVdqSRi2nQAQ79-l8F3r4akYiNI7zu6RszVyB4lMtChmojkdQR8fFqXb2TXjGvz-d5pms3jPNfCkNgn1NcorUoJ6fBfWf6PSgnLtlnpHLb844qKU_-ThM-c1Nr7sJ0p6kbcSg05zu5_NC1xq8=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_fmw6z1u6ujt","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The exported function now silently truncates results to 10, changing its apparent contract from returning all co-change partners. This can omit valid partners for existing callers without an opt-in limit or documented behavior.\"],\"evidence\":[\"The only change replaces `return partners;` with `return partners.slice(0, 10);`.\"],\"checked\":[\"Behavioral impact of the proposed return-value change.\",\"API compatibility risk for callers of the exported function.\"],\"gaps\":[\"No evidence of a specified 10-item limit, caller acceptance, deterministic ranking before truncation, or tests covering the capped behavior.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":258,"output_tokens_details":{"reasoning_tokens":114},"total_tokens":493,"cost":0.003566,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003566,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.003096}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/verdict.json new file mode 100644 index 0000000..e148bc3 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The exported function now silently truncates results to 10, changing its apparent contract from returning all co-change partners. This can omit valid partners for existing callers without an opt-in limit or documented behavior." + ], + "evidence": [ + "The only change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Behavioral impact of the proposed return-value change.", + "API compatibility risk for callers of the exported function." + ], + "gaps": [ + "No evidence of a specified 10-item limit, caller acceptance, deterministic ranking before truncation, or tests covering the capped behavior." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/response.json new file mode 100644 index 0000000..df788ad --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/response.json @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283337-X6qdnTuvJ1CgzQBrA6bU","object":"response","created_at":1787283337,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283342,"output":[{"id":"rs_04f8e27b641daa01016a87c78a03bc87d18bdcdb4d23afd577","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8eNkCY8b3XBvxXsj7yooaxhRyUGulUKwcRZK_KA2fx5KUFtwYGuY3pCkshOnAAPJc5f6X9LjHfRUWfSuvKw6LPd1k7qcywDIut2UNpJKcJjsMquBAR_yak3A9ck6l-PsIPgl3eNZ2PV3VujGZjoq7V40ZxolKQxlIEtAQxbuzFHIX5OjqVza0nmvog_X8YMCBH5Uqx8xL5BupElFUiVhWofe0oR9kOFsBEwbKdKMmkKqvMC-HCUwrx9tisxfhtf8l_iUaPsGjC2Wj1dL3zt4_CEppNPcVFkc9J59wUHQZCssXfK-o_3Qdbz2zFkIUcjeVa4SdHUymZZjWmuNAYKhM68gaKtkm9SDkS5ZU6LFfV7bug51Oh2TbNH9Ud0ybtTfvBJldk5GeQSfdDmk_iRRL6HpReR_1oQFTCenpMGdf6LATR1x3SluNKenKs5l8BgdWH33gh3jjDV9NdsxRf92KUVqSFtNao_PXr9-1S8uQB2DQTNZdq-s1NcJ25E6FKji3UXdSS9SrarZj55HFzHReUg8OHrQryK81gGiGpwQk_Kr2VREuy9dFZwa9tfnZZLHky1j8n1rGjlp2Mm-tX54f0MjOEfe7l3Pymn5zGVLfvWDk0HrhvWwgnwq6J-uWdkVx6yLdsG9__Nk3hrLaa8JOk4TFGUel_neh0w8HUHuDmUyJoQqpfdWg1FGavQbu_rz15T26bgIVQB_nzB5aoFlFQyIt9bb4P2t1UDa8e7FB1i2uKBAnrQCxnCi0m1KlbYbt7DklEBA4XOimMx6Uk0lXU_Wf8OI0sf7xHDJVUycQYnQtrEKBteolM5YRgaHzpCurWY4ZppgFQdFx1_04AI3xK20ZWKzfNi6LqDcUijYxV58pDNslCk9RMIhYQS9Bi5epV7-28ahJoLQnHEJmQHaHaYkrQm0CkSt5o0NDY5vAJNzF0tFnimyN_-u5tbIdom79nBN5hyOL1Gn4nZom_P3zXsyjE_D1_kTAgxi2Ud5Y0YsHt91ENOndvHiweBM_np33NpqkzolRmnyls1DECvJwYsUpRODQyfxTS-tACy2ceRmeBEkdDOSTNjgLanhGIBtNVuqy4SD9BYJqZLpsm_jTyZyx1AU8c21FlfCoebT8fglZGSZnxDopOdLGBuh6qTuA04nJZv0fPPir8CvQnUQU6JU_ADT5NWijsY7HblA_cNHX0ltATTfTVjm7XmUhq6Lsov8o4RWpJQU938cGenu09ppb7kv5xX6IRrfZL6AXTazm9artYgEA9IHaTTp51xO-D_Tq79L4Iv5GNdvKTBkGU_td44qdplKbIydy5o--sTlxj2140n04jmLLtQa9rBhefheOeYj_SowyNY5uk6u-JmZ0K4bpgFKm5Pehqn_Rc_n0DkVxiw85HOyhRimukHMXbOdqt2tJASlYmlNsMrFEz1Dj4NUyJsyhNENLrSRWUYRkN6brWy0zIl_Xqta8RKZTx5u7ReuqFiklKH22jtJj-H9i0uzVajblY01EUvvwjzApKh58vG_Svm_awklg-ME_8sBVsRil2OXrMdsUMfiGDnUnmItjPEn90BINgpizxXUUJ1AhiLzxf2aq9pI0-Al8ESTIQoldnIafwICzeAHssykENBwlgCXUu3IHqNcZXkANvyEMKr2r4m9yU1buSYlXu5rkdubo2Rm9aOOJsSM-k4FW7dnpdZZGL081EFiOgVKkk1fSolCg1oNgg_VRMmKb2ZMA-SEgtceqaYuKi5L1juY_xCYahiHmgV4vhDXsdLfDt0frl1Tnp04sLG_h_94biAHz3Lh-hjnYBqIxai21F2ZBtpW-5b3hBciA45kepjORtcGztCEC902fYLVUVm4NDqyv9oUwmLaHK8vu9_L1-ldVF4WhBD3587VGYfZtcrHdfVQgqyQ0BVSkOmVD9Zf7gWzrdU8BTIiydtrlcD5LEiAq9cN0m5L25JZl6sFGxUx5pI-54I1YmIl2tXruVFMrDaWJYUL2wIjirWybSvODemNsnQXTPisVkSxRYB0uvxAqmFRVhGeo5fqW5t78z2P1SjiZI9gz_3iVAN2OkbNT5X1iGTDajFgovkcIHpRLVbqkMdAQIMMzlsVWEgjSmhkAeeVqqwZ5c3sU668J8YpyklIbHl0LeclaJYzLYpryu0FI3G05djKbwkn7eJDJ4b7dZ8A1MJWMDVqIBMo-Yp-0A4diCL3_axd3-X34QY6ZzIfj8B80G2EiBVlbUJjwo8cdi_Vqwl-EVYBCIynvR_ZILRb-1pxpGXY1tYbHcjOytaaNpZJxp3fLsSVaK0_Gl7qvt3LQ6n4HG0IpphcZArm-oNmjPF-Iu-es9VRbtzIb8n_IvdEuh4R2cn_sf3hdCq_gZtgXUDEmh65s4DjvysjcZyj9tXXVH88pSUNxyC9AzWtwCNOcdPAl_lQQc-ln_07b00AaNIY9HngLrGkcz2sbicpqAU46x2NvKSNu9kBTLzzEauu9dEVS8FY43R5FYGlO2WWb3JeAiA1C0ie748FwYdA-mm4kRu4cCjJEEvoXlbOKqkwGKLyxkzYMbXmz0VMJqxS786HlG0C3GO_dzB2YItRNEw1sXnuHej4IJGqo3Gl-cgBZFijL_ZJP69bRiaHbPFyM8VHBgIk5rox0eIMG7Qfq2CrPTeTGewXtQGbcu5VW5IZ4buQkhsv2x7yXTcq8ec-kJSY1AiObDbzUXJPT-uGmr9LEdyvL1u262_igbaY34vqkBDOYhnC7mxuddDOKtkEJBfNfZdKyuC6vbdnyYdzegVLVvwp63_q1UXD_Pjp9DVkyPL4-AdPhRsMKWyn0oJfySi6r5VfMcgZu1gBoFS2qAH51GHxDsFA3ct0jcu65XJc8-B9JR6VN8bvw-Qb6evcpR_rqWrQwvW2BaB0KQ0YY18KKHQy3RQzskZvi90SRcgIf_OFPazB5IZA-0eYzDzcLPCgrvC7VZbU7e5JQle5168sQoC-aD2fhQUGHXuRHARMmmFtz27DwgtLvYIcekQq4aF31u-PZ4Ha315Pq64ngRHhSFnxkqWXDwQ6hy2xvynfxVFAFKpreZkJ5S8h2RREZsqFf9gG9pSzGsGdrA3D9nM_yP-G7jjUU-SdcSEDeuC6t3efmF4QC9d7CNUoMCbyhHwUqx9aQns-Guh4g02yrLA48gr8XzBMI29S-IxkcOLKwxI-1FvlrfRwwZLXOMo.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_mu9ptfbius","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The change silently truncates co-change partner results to 10, potentially omitting valid partners for callers that rely on the function returning the complete set.\"],\"evidence\":[\"`return partners;` is replaced with `return partners.slice(0, 10);` in `findCoChangePartners`.\",\"No ordering or documented limit is shown, so the omitted partners may be arbitrary from a consumer perspective.\"],\"checked\":[\"Proposed diff in `src/services/workspace.ts`.\"],\"gaps\":[\"No call-site, API-contract, ordering, or test evidence was supplied to establish that a 10-result cap is intended and safe.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":416,"output_tokens_details":{"reasoning_tokens":264},"total_tokens":651,"cost":0.005462,"is_byok":false,"cost_details":{"upstream_inference_cost":0.005462,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.004992}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/verdict.json new file mode 100644 index 0000000..b42f981 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-b-integrations/treatment/run-03/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The change silently truncates co-change partner results to 10, potentially omitting valid partners for callers that rely on the function returning the complete set." + ], + "evidence": [ + "`return partners;` is replaced with `return partners.slice(0, 10);` in `findCoChangePartners`.", + "No ordering or documented limit is shown, so the omitted partners may be arbitrary from a consumer perspective." + ], + "checked": [ + "Proposed diff in `src/services/workspace.ts`." + ], + "gaps": [ + "No call-site, API-contract, ordering, or test evidence was supplied to establish that a 10-result cap is intended and safe." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/response.json new file mode 100644 index 0000000..2014227 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/response.json @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283354-5y9RgkPa5W0gUxh2ZfTb","object":"response","created_at":1787283354,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283362,"output":[{"id":"rs_0dba492576e89511016a87c79aa0d887d18e94338fad031acc","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8ehm9oCqv7RRifw9bvoZzxgyYQ4ItvUyOjZH-5LoPiSODgJG0MoSW1L_8N2X092FDR_fzFpFZ5d3MbtQ6TgJ0J9wRViVFa-ivxmO-FbScG-lkeYfdcy96BXDfIhchAMs5kndELYVxar11SiES1MFWBDrO34cjD8z5f6Oa7VDOdBkEeVG5fvlMFbBeEDunKJVA4M17yhEpfIKdJUkMOUpewVib3PfUI89F-rGWo2JY0IC1vgnqk3B_vKYavXaFeA3WgY5IhAZ8_UUSDyufEcBhe3tf2B63sik3gCPDnBxBuSO942siSRnt1Eh8_97IviutVl-3FV6QKk6bvQ1mQSV_WvCT2KrDUpp8KUHdFFbndjBvwsuz_s-wwtSa6tN2B8VoN4Mdtk3Sx0EI4MXRZk7PS7H2IDGYOYra_hDRY8eGhyuxudeBSEMAExEtVdB1Gc4dkMJR008UrdMpP5PgCPVP-_DZ0w6wT3i1ZYIKVxq8b9bDeUAgzM-50hUH00E1qb5n-CXY8a6k10OPmMRYl8GKwzY_H0QhjdMwOMqmi9cD5svXfYPZNXu1HQ9VoxZ5LOmoR4oNdXJHxs1BxiTQiZY_eUKbm7uTQ6GOdpy60i4wuyuu6ALnvf8jYpFA648komVdHbFePoYzeLuF2R-pVnYU-Nusn8ClozKOBYRSDz7P_hxlyD5cCMQ-lG0bQ9qjFgK8jY8gpDP2Po_XfGwx00W0zyLp91o-jjzPJn9BxjGi988l-96bUGREo1KuPuJLsyY_HBqHscXTDFldJW6mNeL1XVqEdDYuCP43BCk74ccbd1uu0ZeSXV_cbHb0HcJBz0Qbn0Oj77O9tQPw9cNetvamTEyRogCB76XgnWqKVscaRl5jMxYmnzytcumO1aK8eCKA8kegs8AnGn4aQFlR60h3V2yVFbQLSKOWhE77VD0DaOmkdp3MmPSE1sw_puNHNhcPCCraC0lyv4PmjFkQh9yDeTCw7Dwm9ANyAabUBPtVlue8Ql7PppyXHNz_JzJCykqqzqTWQP4yvUZ9mvoIqQlStmocKYwWWdrmBgZBEAIN0iilTp4Sc7aI2XTCsjRTacgQ-s1-_8ihMc3C5mYsbst99mdLRYnPe1LNsqx2ptJbk09B06xEvveI0TEFNkuYvwhDrfFDHjQzMvj5ALf3BhDsPrSiDPzAN9ABC6TxyXyXTP0ZIe0zhaQRH2xNx0nTXlxOVbal_AOQ4fH130ppOaVzL4afRQ9fuVj3A6s7VM2HwStaQHKi9geekIkSK4g02sQ6caTv2LXpbs9LGq2E0peGabOnrRiREpYi8XOMyuA_asCL8qaWqqMg3FtlI0LrbQIlH4doosxexHKxXQOTXUo9kZW9i8hoeF8I7L8TUZGh5XwH7NmuPI87THOwywG1OwGaHZQcYckyBZp79BRqSpzI12f-MZgXBsTWs1BwJxgGcBjQ9urJR2Wb0AF6VQyIkjxtTV8jdQmW15zoUUcncfRLg-5vNG5lxgbp6kuuWORx04bxBvfD0qeVV0sGb3SZIAxKJKJidpqlo08KbzXrgkeNjujQXZJWUay_96g8tT9MRV0jvVdIQ_xHRjLd6fZIrKMe1f-hUh8xacbFDv04w00JTIxDS7rtZQMC8VYHvRRLlqE4m_6Q0JhUr5VQPMZjirhFVoRoufwxQX2vP29flSRpfT3ZQwYbHB887xaiw0Xp63Swhsk0RdGB6NtqLxZRiA5CCu7zJzJzM9zkma_NCTp8oYtbzmnvWa47Bc90OBmGih0tfPXacAXyJnhx2iBl3Qa_mjSClKXG8hwj5HK_82QJaujncABDNMMdtbMVB7jRK_OFE-UM6Krdc6HRBYxRDXG-AomW03ucbglxoU210ZZnTSh9uRn0PNdNGreq2gyLL022XNxMu6Iy4FN8ofHjyElgEbN3jHK2hoB2OW8hqBxwAP_hbnm8GuAXqbii8vwxX6sVAzaA1r-zEAQwPZMYWPZ7VnYh7FPGL9dUlD7RQTn8veiO-T5I1FP7dtEOdizhpcyPY2eu2zRJ0vFEg12GZKb4rwuaZUo1lc_rVjhd-5YmiHNJIgWXyYe-913kKycADRWiizOaMoLh_bBDh_eQ0n6Nn3sm7uBuTtsv2L6FN6q1ujkaEil2aTq1W6afIR452eCIn5uhzwlUQ-nd1x2ZWr4pjHPaBQUnmVkx6H_bvVS1AU7BxRe63POJSVfuIgA2RPhnk4bgXUtNXd2mW0sNpAk1Wa2-g6uKRe-kECBM8JLmyDy4E_ZwrWv0Xv1vBjmNml11W1A2vh-7X7p9uASGvkB3WrazaSGwj0feYtohIwh5BwA0hMNTXGx2z0Vm8YdujXcS7LQrNx7LKNSBHDr8wuqv9taMM0voOXXiJ8aGsiREMy_Yuh9uYdN-B3aeoHBPs1VwjxvqUZoMUTG7R6QYhycvlzXawSADh2C4r2IfIuVMAE48Eak6gtFGZWu5d7F4t7KCdCnYBTIOxTn26SHvBxAp2OgHCZWFPcQi62NQnATk4c7FC7rNd2yExve4o_uaCYR0fMu1cfkh6tA6r3UzT3-g92EYTwM1t81Zejg5IhspM4gemSWCmMqu9fracsJOcz5chKd_qby8Dc0vsqWt3TRwWh-_MbLpCucLBPeWGdm8i28OtJJWgbG1X_sQZ57fXmgn-Qfnb54X4SqQBi_Jqnk7fvnSm8-UGbOcuzqolCpifeIV8p3Qk_fvfG-3NK0nUYjV4dTjMsauZpIUGOCzeOxtzOTRvPZNx0rQZk3jriliQE_LK1An_aBKGmnsBF5obmBtzlMhh-R9pyM2CZDQq-IU3urqbc3b51YJNPwShiWV1V0vgGNhzXioZlrJY6WY9tswYW2Lzfkr8JoUc8e3OB8vnAfkST82qrzrknON99w4gOJAYa8SE2jk_m-wyo4R8IySgws6EwoJTXCJIbaFY4o2ar6NpqMwlSg5_5bh--9xR2qCTvNAEs_1vxmpUEpmlv5n_NL6GBGum3wrgaFhHg-Z_uGMt8wwHA5lfjY6zK5CyCVzLMmqlThENaU9yw5HU1SbL3Z0MmOV_CAWY0qshPuQwOqLbTxGJr7sdfUpX-nY6YNdOCzTxSnS05D9H_IDgjtJOFdL4crnBOqq4nOefW0f3-OnGXsAm3tnu8wDLfCFozhrQS14_xm0D2evbfcuj_3h1bU5tVTOD4XeqoySDIWmEKwzug_wImuNZgAt0ZuqL9AhZYrmxwGdq8PvFivWpMCpVZaK-hWJ0GqRznGYhhxH7X4w--bkI9MoUZZD9gqQO2vbzTQ_rrk-S45FYk-I8DbaCh5Vgc-tYVjEOaDbeUHkAxWnWTvUqyjkscy7wJ5_ahgivYpZoZYKStq61gNC4BBbhjeyYmG1duH63cilM3gZveswWcOYB7A2OKahO0fJp30gmqlIpyRb7QuCK_6QdeXICJgH4TWxD8tCiAe3OzEsEvYhFtXeAK8RhlFRME94G4g5a4JEZfdo_m8B3cbayyOTC0IgVDLxzXu1Hh0pN52UHvQGVjBWFEVO2kERKENbBa_i1LB-DU5o7xWVkcuHK2tu5lyoDZN7tUXxAFoXHka26tjz1bBkMFs-fvOq1ZBPyyCviYThjTYMH60kUEl0QMVsXEvLEJMWVkSivRuYSXr2F_6SbHi-EQfO0mdSF95O9cQ_rtWTQVbhnHSh4m0t_RNP-eTwmyKgX4TDuyglZhctU8sOkhAZOIrH8Ve-wwmarI889NDVr7lXnF3ldoVEX6BZ9hwDt4TWvBSkAV_pTEBiE1-YQhNin4q_qC18FjuMGwpCc5Ef-Nj3TvWIkH7d89xhz086O0aRFrXreQCi4XoCJRhLrH8gBmUllsSQEqnFXLHYzldX7LI2AF3hMPHFdJ-u4ak0yhsMIXco1F9eMKbnqXu0WRSWPRAt3BxqH9q_58zs3Y5L9B3wO2iQkhuYxrt-Yvm0Ziyuh13mv4QUJKWCSmgM2THT-q9I1LApp2FJkr0iEVK-aeVptQfVL1kbpjTIcyqaUxuoD-51ELcim0IJ_hbkbyxhsUbD_0lUrzf31tCnvDUBhKikpqqT0pnrHxL-xDJCzU6oRXJSBwI1Pc5OgIjy4xiTuMQAxrY_C88iDXscq9Lt-5joELcU6dVn09wPo8dpn88LD1JYjS0QcvuB9a0fl1kw3QJhd5stZey9FCp6fqmlhGf1y1IM7hcSeUCgo78efKx5f4L1Qox5nIsE7Oazgt9bBaTHOCskgs0Br56ln9xjbycwWqc0fFKr_OPdjBX0M30aQa2ct0eSpMMtROVAgItVLOOxEcX20AOapUN3f21vOxUyIZp969h0kj05C3wT5uY7bmbQZ2nBRA3OblmE8VdgKxIqJHpge2v1_qmbujpC1h8Eun7A7MggP_C1KKLx-LXqTW9y_13pxOJfiZP-LGkbtDOX7tgxqQXzcD2-gexvmkU2OOsWI--SotQkaVaxEF2jNypmMuRMZLpJz48yrAc_S5yylI3DJwzvcY9n5Zqymx4B4b4Fsejtsh-yd0FBFfwLd2MK6oM5SwoMn1WMpYsqaxibC-be7xI7scPS7LMt3XZXV1l8-TbgTWfH8RZZ-XS3Y1IwGPBa9SgEs8RWa58UM0yS5qca2AR6ym6LHkjRAtWknHO4QioxhGfsa6xLfm2e62auQ3KqhX_VgVw9NtauSvMocE8WEkpHI6cVCxqU9CNwZonDWS6YrDeNHMGOUuADskMeXh9uioCKJcIEsnj4p5kit9d8ZYzGthDOhVOTyM2T-mwGWqAcXHxWIJ0jcSNOB8rWW89pgTL9HQ-7J4FrpBfXlH9I5zL9TY0aTl-5f2CrvoBaNzj22xpcU=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_5knj9o9r9cy","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions now removes the property addressed by dependency_type.path by splitting its final JSON-pointer segment into parent pointer and property name.\"],\"checked\":[\"Strategy match coverage for PinnedVersions\",\"Pointer splitting behavior for nested and top-level slash-prefixed paths\"],\"gaps\":[\"No tests or surrounding PackageJson::remove_prop implementation were supplied to confirm empty-parent-pointer handling, JSON-pointer escaping behavior, or the expected format of dependency_type.path.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":631,"output_tokens_details":{"reasoning_tokens":516},"total_tokens":975,"cost":0.00826,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00826,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.007572}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/verdict.json new file mode 100644 index 0000000..3b5584d --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-01/verdict.json @@ -0,0 +1,16 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now removes the property addressed by dependency_type.path by splitting its final JSON-pointer segment into parent pointer and property name." + ], + "checked": [ + "Strategy match coverage for PinnedVersions", + "Pointer splitting behavior for nested and top-level slash-prefixed paths" + ], + "gaps": [ + "No tests or surrounding PackageJson::remove_prop implementation were supplied to confirm empty-parent-pointer handling, JSON-pointer escaping behavior, or the expected format of dependency_type.path." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/response.json new file mode 100644 index 0000000..de24ac0 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/response.json @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283362-jWgwjRqBpW06YwdFZ9Vb","object":"response","created_at":1787283362,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283368,"output":[{"id":"rs_05de219f64ac8b47016a87c7a3795c87d19acb46cc12754e52","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8enTV8K5qjBsgcz6E89RsMvt5d8qyGfgRh4eMaKyYsmt8VL8Y4aCt6cXdpo_kRnG7hnOAcz_-r5QGXoU_eDyZPeYR7ex8pdfbGRyw42R4C6W6T_JRZ7O-ORliX2GHhynY_lLLqMfSvw0bepKvU71Ac9quPpqvC2z81ESJlBJRr8YYHUXs8ZwtdQXl-4tx73wv59vzgBhkudboS29bz3Olhx1KPLRnS3sdYX4ZHBsmz7Lh_PEz48pdvT-3F28emyudVWLAvd1Q2rw21JNIhuqd9NbA1OqtS2rjZd2YYNggqOw7f3wCf4NAdXj2ZDG-syMdixIuGAqsp8Ldgv1iElOwLm0A92-6vabq_IJeK35f_9WIcsF9P7bTxVJKp-cmNIySt8GVePCrWSRCP8z61uw7Wo8incnXuLFbQI-6CUCx_u0pQN75PqlcN8NRQNt3-NeGhl02k19-aX1NGCeILyzRpF9McdSObO4PIED_cIa3x1UGzJHW_6uqH-tVKT7yOrANwOlr4DVtSUQOGRMCkjk7tshYO1n-gNSMfj7TcL1C-vJaL4PsLBtm80zEo2R_dF3gNKFkKnn4nkh6Aa-obBl8sVCiqFjFyb8nHWoR4VEVP8Mj3_Ez3WoaYlMChuhgoZFxh4RcBCu0X7dJ42X6A-8t3_-4oeoyduTCt6jeX4cCU6WS1rkBZjOda1_O7hIfZt8t4rbtNuXvEeUAVzWfxD6m9yV3e5z5ZVdbLAEbv4O4Z7MtcQJEO2NAsHV0WZZcptpEb83uAd6q3GodejIY1F3TWPbi4UBssTHmmXUOoxWhL2WsBVUmPi_HCG_9UEYW79AnuNtqRFsXk8XqLs2c5yeZT8y-fr1HB3OF8Hq95mU2wj0zWlJhQIhwS8tc2ph0rLTk7KBbLq4q-LmzdDDufL7nmExzl3Lm5e7cSvp4WKHcSN1V7dhWMGFpecwmzt7wLSlAbSlNKo4PoyE8H5xvnQvZjpsleOax4qTU2qgB7_TJxCeO1sMRS4leIDXhfKJeNcsUzYq2v07-DJf-xNCHxaV7E2eFKIaGO7MX_8N_QBYmGwWkACNCqPVD6ZLXW2z7eTPlQT5Za_tlmxLOXBBq2PCL2nB-kY4XvEnDbSotPQ_iJYnetSGyJ53BHPvCXQ_M6RxfhSi2dUdsgIJWuDRgLNwMl5P_HmXW1Rx0EbzDfVDX902XiayW-CXsgqyR1kC7z5wjhItt8wOxttKCPMtrTboHpG3Dks-ILRyvDDpowiaC8Q9_OvRoJX-SlIQl_PqzoE2sZ_w_b2dVDLqzPtTRfVEafWtnd45N7wJuMYkE3WRAeUuO6H7u1XY_2eLOzYp3fhMdI4diNZrDTZIvgtNJg6KGORZDUaSpbmg2fZO1lWVx7YjZ90djFDPDhagZuznnpXPVmsHeWgTk4vMROYxXvjIn_NYnDViGqV8y-ki-qzS13zdd9qiytAfHDy3rmDDGkTIcupJxC4Kocojar2bFo_nzxZSNSEYz3-4P9NcI4_9VRBgTdE3Ag3fMd5iVq-dq6cJP_08S3e9ZGRg1M4lN_XzuLkRAlJqillroxyUbGuSiNNZYJ6h0bWPoKGEUFMGQZF-sCVkTWH9zah_KrDVFnlEj8sBs7fIQIgqDNHUJD4zfMAan_CHwDFpwbb5ykI_2-CuOBYcj0vfZQB61chmOnO6REhLxINzoSz-1aiCMU8ZsoMRNAjotAbfh5HHHz9hseVFPmUyS7yXvJ-THVvT1WYfrvRZHdJ3n6x5SSYt5OY2znh3p4BWCl25C8slQQxwXNK307a89AsvhHpBxhL9cG-Qn2sD4I2tgvKpJZ7f5aXstBCbEyermLZNhdoJw-qgppuDgKlH-X8_ghMRTZ2cFN0aK82D0KEBBokgVNke-mlr2wjnDcTE47er8tX0CLjfYNl5xXZ-gog7yncH1xymsKSfc74ivY4b3H8cGrMrK73vH1Nj2ouUL80PN2pOOQhueDd5gf2nIB0ElYP9EBUh4k-FzAXaH8BeNckOweByWsDiafkKzEXVqpv94wo9DK0V2alpU17SfDzAWn0JHVQvNs-wCeCkA0KleIGm5K1KWmSdTZ2VryUHGmCo-sg3dkUATS-aFqCYG4WKflkT8ADCuPN7YB-r-bMLFioNXVywkGLtpHTSVVGObs08PHXm7JuzSiuxclNrE9p5ezJLliMQawyhzbt_at0-mjbHibUU8Lk_rAcZiNTRpbibHngSYppRSaOWMilokasBJlKUf4hRm9wxz5vKqFsD8hRzBTHtcz5QxORIKPIo_uNIw0G1USlHKKhORvG4rPu4Zvj40Q_ghQUSiHr1Z98txQDpT9d_QQKQM7GPzikpNArYufOaTbNK3AXc_RzyrAtyOqpUWxJVg7KDiV_YOVN3fcarhPiauaHGscxNMGsOc47wgpOixNv3lcKUGTLHQNY4RiNB1vFEtx3YNytz9xaCbelfWEYPr4iffD6dSBERvJJMVZWYGvVoDsjBxU9heui-6e8OC7PE5L-wMtEdi7fSHIp3M4MLlPOotj7rgI2oHFFzYTkPFNUZCeIJcxyrnJ98ITmQ9tKmoISubrv8OyIpfusfa_ogvt9l9zO22dNstkxww9N9xudepldbITfgxQOcCOiIP5-s7BuAYR82j8WSoc8jivO8ua_AMW29N9s6jpXisDjoo-47z4Xh_9zYH-0FKERn8ZXxWmhRYS6GHA3FpwEu2Lc8KZdDl0OtAN9vSMLMUUt8xF25oNry1BvK8ZZVGvVFTSfHtzLK8hGFPt-Uon6N24_YqKmZ6q7VbpXoEjGBIEma_CQys7x5RuhwPsJvE6egj9zBhRKO6J1ARSLJ4mNA8N9327JKnt5KdbA7vmdnM3HcBssPU12HRHemcvEW976Jl0Qzy-r0hMEetglwOJru2XnuhLPBvnpjYSsMxMtXJz2hHMs3o9UUYMkn6XJR2Bw3H0MhCxlwR30u7k1sX28LuEfDajC340dQrkwMxzVFRiAqmRWvQLCoePTP71C9wHd8cHf48J5p6ABRgwk1iZjl-cQSrdcTiAbrgYhnkAcMHKzQc0xLD5AnNeviI5_c4zkW74yrEonwZiPZwE6d38gKDCyE3PHDDlbBCCvUJIPo6b4X2ib49WSRmdzrZm1fcyw2NOcB_M8wddwuA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_1xplmztqjap","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions removal derives the parent JSON-pointer path and leaf property name, then calls remove_prop on that parent/property pair.\",\"A leading '/' produces an empty parent pointer, allowing removal of a root-level property.\"],\"checked\":[\"PinnedVersions strategy handling\",\"JSON-pointer parent/leaf extraction\",\"Existing strategy branches left unchanged\"],\"gaps\":[\"No tests or descriptor-path contract are included to confirm all PinnedVersions paths contain '/' and use the expected JSON-pointer representation.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":390,"output_tokens_details":{"reasoning_tokens":270},"total_tokens":734,"cost":0.005368,"is_byok":false,"cost_details":{"upstream_inference_cost":0.005368,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.00468}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/verdict.json new file mode 100644 index 0000000..6214dde --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and leaf property name, then calls remove_prop on that parent/property pair.", + "A leading '/' produces an empty parent pointer, allowing removal of a root-level property." + ], + "checked": [ + "PinnedVersions strategy handling", + "JSON-pointer parent/leaf extraction", + "Existing strategy branches left unchanged" + ], + "gaps": [ + "No tests or descriptor-path contract are included to confirm all PinnedVersions paths contain '/' and use the expected JSON-pointer representation." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/response.json new file mode 100644 index 0000000..e54110e --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/response.json @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283368-xXeVXXWSfOlL5vF7wB4T","object":"response","created_at":1787283368,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283374,"output":[{"id":"rs_0074ea58e6d7b085016a87c7a97e2487d1a664292e086be13f","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8etKbU3CEl7ouyOT-wduIXrTF-KdkzpTBl_aCmjUZqwr3PPWxjRaM4Xm9jdGCiF4EmTqYT9xCFwxolCFB_8Q9jaBniEzYnheFkwrtKuSZcSTedVFAoqPVAT41pw3rTx0Thvjw0NP9zeXVzZNV3Sp6A4QDwVhIMUkZDVUb-b8vEBTyIIQCYknhBQlZfRrIyUVCh-jQaWY_qx8yovhfOH-IX83FGQkpXrH-R-6Is_xDwguvpLvzpf-JWui60Us-HfTaNefrQzdizFwKX4Drw27OZs6mY1N7FKRvWRAWO3_3gMBOkR35PC8UFgxjnvIaJF3q3gMcUK2_-HZ-NjUC2QHZbZokrKpzlfWVb_E9frdD2W0EQTF3IOR5arJp76EXR5XSzrA1PCIH-Dv06eFRkCBverUrhl9fEK-00yseu9ziA8FHJK_azKmYoY8TCA3-h_P5w-uViCCsbQ48eR_O-7veNHd-95jpVOzon0QlesdSb2dlEY-Yuwa-m4o_22VMxdcJSegJeKUfvOvCmsz3ppcrEwkp7jnOMod8elTtobw6AvLvvYcG5ZYSkjeUTKEtUE2zClT2lX0lek4c6nNPqlvJeFaGGmiOwVGwHO4Fsbmm6ul0muVKp7Ivw7Iyyiximxw0Dx2iN0tAVechqCayc235IBuXwPz6lPuI1RA_dkULRb5QbdJEenyKBWROa7y7WCGgYFg8s_iU9EXSQO8kdHej8ODxITGpMaDSqxDQv4QiWbSSMrgPcn8llM2qdOZPZpnUiAQ74qnUU7AhibKqDYcsxD2zDeTfX4wTOi5Z4PicKiPPVqoyoCR2Buu0g1mNxcMDlLP8iApGURLuXgDpnkwEdaK-1N4BqUoy4kFj7fi9JXy7dp_4G8PR5a_3ZMnowJs-Iw1M8a1zPZq_dfld3FfIeN8Jdgn0M5ZilV_fUKPMDYp8NWuenxIgmOMd13_FYKPV0h94cM03ckb8n6B1w4r2KzT0XEllO1ETVZk33qWlz257VfDtQL8G-CIPeCY0abqal9-jB-rZsRgtlCpowzVMeSUYQ_XPxHzblqtL5hGvqqSq8lPrJ8eo2E6jLFxLsqlQylE-xIE7e2Y0lakNcq-Ulwi5VQklAWUkZeXIs-AjJr7MKORoNQ4MGEvvQ_HuQCQdxbG5-WR6tAKnKTreWJ0GYVTkTaXKb6W4BZJ493oJw3DZTrHINKvSpACaG5uepFFq7Qm9yisAGeyt9h4KLJ64oHFmB1ipML5RKWM5eGFvqVAwO4SNx1PwWY-kl5nXhD4JuUYKuHRm3IcD29NpcYcL5i7AGTEGF5FXvTWx8V7xvfnmidkHsFPF91GxaPEPqP0-drYThgKxtffIN14rM1ZG9hfT0egbL72gj2ngAaF8E4IH58Rf0f_oXWYpxK3DL0xgOISbfjBHykbQy71j2BL-dp3Kr9M9T1XevVjNcMvqJXWfcdcfJACToLQ0xkHfkstXnbY65yvDBBMZIk53VMAnFo5BN75vp0xgL5rczNOEDsRe_XfJzL8aLaHfzI-OloAzRZL7RD3a2uvsLNAbNDQVCTbq1N4ntK0ESDxor1LNNe6WUFGy4KmCSMKeXUz0qdr7xR574MZCctjsVMGfh4GhrPIZMtpf_lUsHP4SoY_8fCanuq-MloXSxTCVFU-fR669XK4NOMa9eUvEyQLYoe_wZhKEXFhFmcy3Jy-cSIa-jE9RbjcTKWQoC4vfPiWvCAWGETJ1Umsz51HLBHo5bqa2c-DErhMmrRrrOkf2TZQqQMQNTzqnbmHNhUKQJvvtkr3vbQKEArwp-QsCfa5xO2eOXTivoxfp2UVsUWOGkj82WXRQ5iIt0UlJq6OTc1l7BBaUeEYpte-Dnlw2CREXu6evMX5D2lCdGq8USfq-E-eH9ai-bszVe8XwaZ0lWF1lAFR91A9GzxZWXRcH_xpc40fn2scUwIfwgeNAtvZNvLXDaJUvYc5rGPCLkfAeXBqmwqI91NnNRJcXZgxITovGMkYvqdzr6Acqb3cBb2FcmlnXd7cuklDchb6jC-qzBnYQfLWOwjwYVrMMs0VRRzXPHy7y82BjXye359MkHsduRtQ-jnqIn6RV8psdz8W4zYm5oKAkSDME7o8oZB-Xc6UxwMT7xmxKxbvcfvm6h88MTZfP4FMXOtqGYZj5B6JtFhJ8-u037w7BRjsCd5nek7RaPDtR-wlTc8Sg4kxhPzEw1fTHdPhx1TaP8o1UBVsXch8dIvLtxmz5s7lyQhDwtBIzrBWMLvh7YhvsfQppHAjuucLphmYdSqVaF2E9outoxAIqxNbIKVPfSeYmZBzym9V5KnGgfluxm99xiP_PEEg3BDLWhy66SE5fZgENxBSySEJhG6zccAsCgt83nUoAVP_aon7BzYJOBcU4RVICVn_KU-m1NCBCwK2iMSvSvNzZ6SMsZu-2YAF6Nt6hbZg9k8J97LQ4KuxmhgrRKIap15cVSRTwJ0ZEoZHU0gh6ziyErhBHxiKZjvU_zONVoUqlIDW2Lj2Mpy68bDpbjdzeimsLbutrrVLX-2ss9aYkn4KC_BLjDDz35eciVDcdSWTYL1jaYVmPD2LdIt4LFKZZP3NHp32SNvlgvUx-OD_OBJa-wC4UMCYLB3fbrdpP3RYVUQIDpkVjAddWQ-u0z4SII_wa50Fa5XajvwRxGHf49ygzloJH7Zjb8uOsqtBpwbuYdkBXMfJsoee9G5RT8smj-rPXYts_u8hCAnq021K0gHiA9Fx1VSKAFD3RCr06yN8QI9BruDCyCJPWmTB0l3b3ywlwd3nhfY-Q4Cl_9GmQQ0g9KtAdqtYOC4VNvH4HyaidhGtxWvbrRz8wwaAfl9mYVNkCBmhgWGIR96OUh1T7wa6MQkeNmm_XcvAuBLe9I63lc61-B247_pfm4foa208hZU9apM9TNBp5HCCHcSjuNqCBo-rtUjw3QGHVRNYJCqHklnYfwyD74aca3ZypCEurUBCRIQH6JRPNzUADVtlxFdbMbewDQnotBs5uW-DNxIL4EpxfhUKYD6nHfy00vU3n4FyWSvr8mAL3LyozKr8exV3HCffgfrdJcLXoFlEj_2c47YHQGwKLbJKZLj6ozitzj7HE3lY4y4fFBlW3dV2MdjdJ3EHcE1AdJRfzs6zHXRJxwUlgGKdFyDkeWD77L7dB0jpWOdeBWafnuhf3_tMMt4-Lm00NhI3JYF6Omc72LgxoRz-LCDgzPPb2m0mbDUoMj_oyccZk2xlCNBuZ4bOtUF7KLBs0AvhvGI-s4O0JvCgZSXKNCMMwtt785sZrLZkCf37QKSuTCn1ZQjwVIZ0d26lCr7cIVCfwyMQROaz2yiSDs_8L_UhjA863qUl1uF6WxUHhuZAfB_im0qwI-ZyEH6ouuwWWfM41-4kzJxhryY4g7pMBko76VORYraLJZcomfNru6KTCTBZC6W7vE0x6FAdsv10X_GWt4NzUKQQMog3QGy5QxjCJL8X3shVkieZHx8kHptOEIBx4Kx-nNIXjAiXQpT6cJpUcQKjbFrUc7BYsqW1zF-s-De_C-pnaaKLhyp122IXUIuQdE=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_9wjqvw4uo8","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions now derives the parent JSON pointer and property name from the configured path, then removes the exact pinned property.\",\"The existing VersionsByName and InvalidConfig behavior is unchanged by this diff.\"],\"checked\":[\"PinnedVersions removal-path handling\",\"Existing strategy branches\"],\"gaps\":[\"No tests or path-format contract are included to demonstrate behavior for root-level, malformed, or slashless paths.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":426,"output_tokens_details":{"reasoning_tokens":320},"total_tokens":770,"cost":0.0058,"is_byok":false,"cost_details":{"upstream_inference_cost":0.0058,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.005112}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/verdict.json new file mode 100644 index 0000000..e2096b6 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/baseline/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now derives the parent JSON pointer and property name from the configured path, then removes the exact pinned property.", + "The existing VersionsByName and InvalidConfig behavior is unchanged by this diff." + ], + "checked": [ + "PinnedVersions removal-path handling", + "Existing strategy branches" + ], + "gaps": [ + "No tests or path-format contract are included to demonstrate behavior for root-level, malformed, or slashless paths." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/response.json new file mode 100644 index 0000000..19160af --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/response.json @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283395-nWQgrpjWzp2OHnGTedVZ","object":"response","created_at":1787283395,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283402,"output":[{"id":"rs_089bf1eb1fb216ae016a87c7c464dc87d1a98a518f98bc3943","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8fIXf65xUXwDoVHb9x5dZT61rhih7lFnwKvjj7CCvuzzivmCW5OQkbmanBQxRvxHePd9SJFCTJKv07aHRtfyCCMW11N76ZoMMZ-5GTIZacE4eBhrxRBYAlKHDOHG2IU2N_6y1eLmNA2OpegAONzFq9fz214zZwQ5jCmQf5JYHKKW-UNd-TeRomO1TXXl9IWF4undveoH5rCa_pxa4e9yMpcdQrAx0pX-MPIegc_mrFVZ5_-fUVi_Mn0dTOIjTKSdvu1R65cendObPXuc8ZoJ_1K_VPuME7iAhKE02fkZlXuI0yelPLfm5jKi3mUap5MiHAnwxoa_Y8JNRMwmr1861e9qeaNsGVbXd9eT6eWTLp4rs9gj9stb5mLxiFKvLxCXBCt-AhOEUgBOBvpygxqMkuoCO8oNRLwHQkLmqkIwMqhBntrRpGxQU6N-nF5eiVbMF7bvRMTkash3YBB7uJpcNBSKKoZp_6MMLIhLMrzspCxBydnMognfkjzVD9t72TXFDlnhhBV9LttgFbdh7KB6GpPBYvO8CTrKS0Hl_1fVobzRC3Cgb2VvFgNF422TVXVEiW_IfFEhp9T0PM7DLa53ec-6t4mftGNRKpMhmYfPIC1DfbE-7Wpui3OdBYUx_Vxyp1e4-fDhlHPDdSfl0a-PG8t0GeoNnIBnW2q_3kgFN38DvcsYH8UD79twl_b1wOj9T0aOo_vRp5CUEdqcP-kZ-n0Yhl98QXRZl227gWzMyo_VJuP9JMzY3Z5if6_bKCKUUHGaBlQLkg2FOJiB3RA38208aBrZ6fxrSrGgQFO8ZmXqn0d1pYO9gVYGityUsFL6hdHuVG81vWz3wEdo1PyIwteIJIf4985m6MPwvBU6XCuWjAOn1mzb5xHAyXQ3EpGr7grltjs9jk1OG4sKzolLPCEx-m1CDOnkzbvgNkuufPqjItJFRPIXjWEL8-I8CThvAbnFUp7peBu3oKi1idtFwjGA05F1bmF9om2L6PJDw95RIsJBzO_kttHtBzEaeHL6_ZHZ8A3rqTyTRKCiIlc-ClEF3s-D2_frRIZ44GuEbu-jFtshEbKqeCooSL4PDTGgaPv_4v2FHPuZKS0gwrcmsTzRreXY_DbuEcaRkKVWdguyCZ-w72BZoD7UuHYwDkzNflgDO_afwCYirBTzJqy1CJPHAZuy73KJTeZLS1ynWSnm8VNxakWZH6Mxt_QyTHl2HsFTZJd6pcfI3OjgQtxvqT79tmQu69cQ1F22lK9D84eIsprlUOGkHFIZFqnA5HYQ9G0ht3zO9pVKlRaW8Go9D06LU77IXdpl3NLT_t02sWBkFnWk31PcMXda_CQCwdZF0A3FGMhPG60r4Gwt38aDN16QevCayLYeD5NrC_OdwpP5x5oAgJmTIHb3IWHuVjrX_2lrd9mHd01gWYdzMtsIrPysjMx4fdPDgNFR94T86L4HY452iJSLj4kebSM0nSCEetF9mban7_IhwYpetYbnV78wLilhvRfar0-rAPCQdAwdQO3KsTM7PqmuyLBFr3vDmqP_lGgzhjJNdKYRdLtO5GuoWupTEnI91JaK3OVHdiPMv5R21HzcVNvBq_9n5rMp6JaiyL7NO9pSRjpeXGsLNqXMqXD3Ru6YOxF66O9ZLvv8mi6UdjP5gldvg5IcGB4iGth7Z7k3Hn38B624aOPsi57yU3gWbnbD1UHxOW8cZkO0Lt4d_3Q_HM2jaTWHorKfyNwPf_D6WSjjJfuA1nx2eA4e9nuz2o_UfxN3yBJorXopi4qGovYdLiMYpxAUt3thxctMdxu_H0gMf8S5UMWfXZSs-nINgO8vs3xRCekYoCOV181kBt64Nok8QLyooGXPg9UBvoPUrgZYWnc2uoVENtCCrk5EX6gDF-DBQTf6wE8und2XijG36ruVnK5DD28YHeefUombAb93nN9cxMnPPi66GRWv5-h79oeZ2vXR5mXNrI_qGDUqeqAjgFqGwARTdEKeHmjvhd1_v7Kg21mSV-oLLbME_2gJPuzkHlx918-39HzT3rGOFM_n4dhv8bcg-GJzkQshcBWCd91B0z7gn93fpBaFtBioJxbCwbvguUAAbpQOCW_0AjWQ66FXVgPxAuYcyRh2fI1ecY8M6tSoWnYm0WIZhFbWq4BY72kJH56qRs-ZIldpV2iNRac6dDjRr3_eWhsJiNgSRHaZyWA9ysDIPzL3iD9D9B0L4UBBE3CjS-n0gGep5B6r2WjaKYsnRronLAIVoHB4NWhPg6GBpT47LmjU_FCLqdtpQICPZj9HTzogaIOV5gS8xiuL3397ga2Oyf5EOzLdZy7uROXAX2hG8v7q2X5-mfpy4tdWjV63J5rjoVx5KSGKtHN_flAHfPg5ToEsnHleYSZoZCKzNILDTg4gt5EHcdJNtMVVS4yOfnexC9AS46aoLNOjSFySm92nbpgdHb_IW0imbb4CQiOv5LcmG-UJ9WebKk2nGgczolNNvSJw0-tk4KJkRJz24F9wUnOtFlTTFN0kRCyeyPPSuEslw8f607m34ADbaPBEe64dYlk3Vxc1JWT3QcuMXuRFX_P1rfNYE9EhYOW95n91JA10mKfbWl5LIDM0YeqJ2EkUxl-o2BS_BrbgMfGdinm-PjwdxwMzZUajYFrtXZoY0SZjenpFFOy0gJdDpCGEfQwi7uYXIk3h6vT3Dtz91Siu-LlXhVJpiqUv5Wdzhmra8tBdWr0z63U4FUkkpTPT19u9ZwBuUV6aMFwTtJuhcyzH70U3lPWhLy9AfM4X-vqwnFALmepyRszqZQSxuV8KMXMFzXlzSUCp7cZRyXZqBIcmKGtf63qUCfnUS2V8pAxphMOMmV4KyprYx_AYaKckXBoIakBh92nVpEu06bCxnQeJRexxveNVGxCPm82oIzQDI5suRbtQyTY-HvCfwtuJzx5vKarE321x59uJNg0vXhWu5gY0xsluuFWosD5rekWNkkHzia8mbEd9SXb2baGhJqLUQ8lKv9zZTU2x2qCDOOFcn0A7-cV2OPFU-kS3lnIWNBjAs9WnJMuL5u8qA1azrE1CPRswe-uAZZsYW8Sp39lwDRdpYlVfBMgfI6BGtnQoTW7X7P1mCvRxHwuBYpkrKa4zlAdoCnKhcsLRAtqawcF_HD8YsnMu23Sg-GoBtO42WMA3Yk5v60gEctkjIRxnjWqBrxf2gwmN2LQNUlrboWYkp0PO127_DCyhG7YWk3MMIQ0evmCC906lzT1cvWZXJmT-IR8D4_kBajTJJEdu-hNbOk8zBPT1V_i6L5mZDQmWwJdGplWp-dtMZ2AinxL6bkLDmS_indRIABOGftxB-XyX2VxIfBr9pADx7WJxbRINBMWkhEXl_5grTHryBto28-anQJT96EE_rIWMliBbojkS1UslraDPFZjjeLC9OiC41VwiIV_tXQuOx5xjrZe0UVRpUHSUX-FIjGOZwzM-KEM.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_vs5lnh2dbgm","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions removal derives the parent JSON-pointer path and final property segment, then calls remove_prop on that parent/property pair.\",\"The implementation avoids attempting removal when the configured path contains no '/' separator.\"],\"checked\":[\"PinnedVersions match handling\",\"Parent/property extraction from dependency_type.path\",\"No changes outside removal behavior in the supplied diff\"],\"gaps\":[\"The diff does not show the format/invariants of dependency_type.path or PackageJson::remove_prop semantics, so handling of root-level, escaped, or malformed JSON-pointer paths cannot be verified.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":437,"output_tokens_details":{"reasoning_tokens":302},"total_tokens":781,"cost":0.005932,"is_byok":false,"cost_details":{"upstream_inference_cost":0.005932,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.005244}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/verdict.json new file mode 100644 index 0000000..5ffca71 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-01/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and final property segment, then calls remove_prop on that parent/property pair.", + "The implementation avoids attempting removal when the configured path contains no '/' separator." + ], + "checked": [ + "PinnedVersions match handling", + "Parent/property extraction from dependency_type.path", + "No changes outside removal behavior in the supplied diff" + ], + "gaps": [ + "The diff does not show the format/invariants of dependency_type.path or PackageJson::remove_prop semantics, so handling of root-level, escaped, or malformed JSON-pointer paths cannot be verified." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/response.json new file mode 100644 index 0000000..6005944 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/response.json @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283402-P0duhHQlLlwgZzBANLzj","object":"response","created_at":1787283402,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283410,"output":[{"id":"rs_0c1f66547cddd03b016a87c7cae23487d187cd53c9d0e3f6cb","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8fR6gvo-8meqiXbl8o-_TFp0Z-ezjz6PRcsG3bgCQcIpepveqzVWELkWd71mmLH9tQEHnWuxcAvzhOuyKSifPeX1MVA6Te5XH_GjuqQtdfSJMH1hhqyzCBBt5eNA5EwaNGh-_zCV3VXMhPzyPKIbAFpysuJpDAaqugABWq5TLSQDfHkRMs2NJJp5p0IPu8L8jxN3gvjlg-uauu3MhdBENSzJgLzcIVgMw4InShfRw84jF7CtgKh8zwlKuRMfUbazenXoy0Wg-ylXsiRA2BrgzpvTGY-9HIg_SCqgRyTyEfUptw4esKKTmoWJvPqn2QfI16Mg9i5NpJ-mriYULW_Aji4J0OUoxH1dcmiST6Psk9F0dRzyoT0C9cD-d9hjpq_KMAol_P1hT4kkCX2h2x729TAqayMFHd3wasWv3cKN81Ib3_FdNmtLWbUIHjzn71M2OU9b3bJ2nkBdi0f0m_a7pDgJj8-oKKZDIJ6BkawwZ6K6T-sOfyBaXb8uGvMUHla07JpX-_iVPGs0pCl28eDposMBbwF61h6y3bq-4RC0p0n3y5BX3AJ9DBE5XsUNvX5iuPY0HMw8YyLuY31SZ98mai8dgHGo_8rcaQjgweakRrfHu8oXWuxxjzE1WgDCtcw_6SEQ2fjTg6KeQue7IKQe42qHxQTPOjssVpxQXS26fNskUvTSCZob3GQjW0BP0NPukKrDUBRhZGzm19WxWMCzKgXy-9hbYmvC49YlNJ0gdcfy4fQsS0GGniuAs3qpGNH6P1nhPincPyd-RNPwCGZTzWdGgd91rxtcwRWFO0Iop0MwtoSobS6DGPaCSOhzZ_Mh8uU0v6xx4_gxPWrBciO66R6RjopDkIPygNdts_5utzrFMPELa0bPHLVWlpL0I4NRZIRhsYXm2GWa3osr9jXheD7o6xq5e8HILuCnJ4z6etmeAxyW9e29bS4ygqFEjmncYvdtBRQHS8rbZKe0zgELSrfoX2yE1bSNwodCfgCJcsfidJdbTIWK0QUzSLLOEXNPKulUhpLwsIUL-tRc0-z2ddrBGtqmzULV31pe3fIXigYYKBw0nR4eKq8FkDEko-fQLK572eIXxjVdpii34q81cJ5M1K5bodQyF017ayzw0LWysiI3sJxzIcp2dzUOeyBCmXviXRTTTvxkDuoMr_gpa-17mi43BtZvC41lJJ89D6PabPC_MgP2mq25W9BlVFHNJFDu0Q1HkDRK_v-MPY3IiLF-mJb-X0kT_JCTddnLPKFALX-TPeq4RAvSgfwFBoDGRLD-4dbJdyd6WQRkx9Ec0EwVrOfZ9o1-V4wa16kF8PFOUHc6sM07poo3wENr2rgX1QwB9qagrX0Nv2qajW1AEBSZ6c-_YDcZicIaFfLuH3lXruQSXqmVdZbCk4rRo5jqfoAK6g-lzjmyeN1g80clPLUX1ZXFBQ7tUKQkD1IJvNAI0VjRyjaqHEBs4LHyJUCVFL_xEps_fJ410mPhP_PtrPBSbLs3PVQqe8g8CCBo_qR6NgP8O9dyLU5jduxWVDOZxBuc9oMj863sU7LkfW-rjqw5r14MGgkpev3MsQCdpPB7eCWhHTbGangjjK-eEom8SAs9MUPp92h20agQexfGPaEWmY-_SxvP-ZpRslIcUAs5_JAnKrozcfzvd-GAUveJDqx9pB2XGA6xbwH4u9jrJkyMpKOh_3Mct_HFrwiIetRb2q4d01_DA6ElYyMvjw1i40B8c33AcKm7wOaAmxMdkFsTtmaFTfD3rSMamBFwjxkPcgfLSCDVKiIoRAOsFLh_pgDU4qVDsU1AtNVzdmXVB4xFgfgD3dv1Nfnuf3tl9z9zZLc1b0USpA1W-8RrNAFvxuNSU5yfrbpC2dMAmm7iLG96eBIo8PxFX-DvtRVd2CdhB6inv-rxI5zIFdnPvFq7ZsbLjfzf-O5GIEmAfCFB12JULGsYQPl87DUeVk6WHUtiqDFm_YZUUHvQ2ZmnSmny1V2y5aLT455HGSCGlkQs6UXKNKE6HrNMDIsDr6J4K1mqQJLusrVkY5RQQjuI2ptsFxma-Oj4BPja0FgyF7H_BofzSJ48OoUtDMbDTSve-S5guAMB2myJTK9GyuegBYj6PS1UXyl2n5jHg1S-EnFNwmzxtQQJH87AfoPYKZ0Ng1dIgor3XcwANHfhYCrtvsscBLQHnQHKo0jVtswP4p9PJuB4QiXRTJEfxuVfBZe8aMM24Dr1_2bDi_xNpuHtQgmWceCY9HGCqKRR6MtPBc99NlB52SF58XDcbmPcpgPBIAaaLe79X6qmpoZ4jFSR_S4FVJYLDYdySRa45AYIkSewTuyCw4QETMnJCxmWHcLTEatEy7Nm95mVDKqIBhyDti9Y3_cq61GWJ16nGXKp51h6OFvNJQSDsD3qMoOgQNknlHJREfS0qPob8NLJUjOifE91BshqPIocrOu5dXOXPlB2BXWiSyXS7mbElUHaGi9wmcWpaTeguTVF-Tyhu6M8Rlyumo1kKrVRwUKZI38cqE4kwe4BUV39uQHB3eSLDXsqgGfn3w41gbkC20TDwcf7oF4FaPkY8FFWNDn1v_kNwQaslDeeddhxitdZBL1oQwxPWu7IxiP3naYiqdGXXNntLt3qsKv0fYCOoydQzRliGtnl-Ij-beLn6ijCkKBn_slENv-flvvFPsKeVd9_Jenhpx4PPmzhv5-psR97t4wSloc6stgBQelcAOUNntH2t9WvnqNivsfrD9YjodoJ4MOfkYiSuHEZxjNCaw4BRR1VPi54waTHjVx653HdU2TDf3-IRuqcpRlsxnUHXLvXpQZ-QaDnRDovZT-tuHMnLrTgWi2fhAFxBCECu3uj0asxtIDmseENqNPRfSR6WZuo5H734EPTJqOhzgKrbWciHWNNBJOWJ5LwRAhaEAfkkiggAIBf_BCErFYQkupcgnjTbFRfVS2TfH87iVdnKWTdDhKCPnH4aed6NhB1k9NiliKMalPa1RCvGXFa-dwJf3WgnU36h0kxIIfJCl0SEtrfY0612G8ZFiaqoB6kzXnpkCAdZsIObvORZDKlLomVbt41HPnXoGNaBC32EB9oKlTAhbmflBTSkpmsyuVzv540VqM7VXQFyfs8zch2EIssi9C2yi-ACXFKluTkvCcRIZqwm995lJI4yXRee3ZTLkryFRxCSfCrhOGe39JmxKeJTa6X40YilwTlWifYIGGphl9CpIrQVtf71T54zCi_9diHpDJ9yfXC0MM9wvCADk8EZOPsj414s9l72SApX7lp4hrLkVEbmwpdcfIL8NS6EBzy10cH-9AEKfOFaisTYNMyjkGwa7cc7EJIq31DZ7i-ny-KpVPhtdt1iJRSjVIZgToI7k52ihDFKdljSNhgSzkOOA5mQLRInf5zNuQ0FvcyhU1nsGVApWYWU0zDqUgIVqitgLRylLmjd7LbXXRACLLjDNRP2LkCpkppNhDbXTAzbP4cwqvxYxDbJSmpYZ5Mg_nqjPu4rV2GkuBCrj6TCY0ATGlY9HXIJXSRPumq10Ri25-3RfcfEqrkbCn904VhJuq3tu0LgGG9BccgqhS8wf1uoUXPR4t-bei4sYwk-lVEtzUUVB8Ax3z1jN8m-RAf7GDLhfT1xRrxgwQaq2tAMIBaFVY4_B5KxP7hJY7zYkcfVD1E-fl2naIYYpjeHCFWwFVg_xe5ZOChB1HzvcbgfB9jitcNxcM3zzb7NyScc6-x12MWAnYzcUhSrIA-PUJet-HUPQWS1lBnsCGDdnvCYa6VUdz5pi7mqjJG2AQsZ796j6IUcqbZ9xTD1t6HC4t8hlcIapJAAqMjQUguKhput-hOlv4NCISHsLw-f1-X6-wzXv3VQPOwmhz8reSwOBfFeRdyQvLYI6IgmtYDJrTgIpzf9FDqdKyu9jd1XMHEQUxKIx3cooq7k2KXErg_5768sTIl4MoSRMVhLZgbp1rbIREjbbI3vJbreKGH7Eip8pAZZ4XT8hlrz8dHMOvkOnRZP5YCjDKrtOyJO0nMugiX-5ZZq9mvbt5_My09SFKsWHJwfXxFITfTI-fHCG2FSVA75NhfgK9Ca8cVZ1DJqgoeKaebmhoGnvPzq0L1ttkvyPy8AdT0OadcBQDUSGqM7wFTq7PFdaeK-Tnqd_86m6xMHzwXnuzWJJvuMowckV40YGcRfbFwzGQgS_Yf_MjSwHrkDHTbSUIwgzd0eQmNR0m7WlfYjee_7cglftAFsJHJXQ1QCwHmSuC1jUM-BzS-G5iWpIlp86ztO_ngFb74DXITkSXSYlMhOjiOXR_2oxzYvVujp37W2bdd0XqyGOrD_N3jfoluOG-sw7-q6mvpqmF2royoQzECXV_FYP4FVmdz6m4ZaEFH7-e6Pu5k8JhCc_jMYgfswQQSmhjv4CHN_8md35zQ085_S61OYNbAUXLoh5AlJjHOj4L-2osU5NeVOKoQffKzThjOqRe8dXGsss7p-H-bRlUiwBSd5MbycR2YJ-Ax9xTblXQNZP97FSCeL9iOvGFG3a0WxwyfE1BzCrpPMaSYtnHe1k_NWJKkpVHv_WTx5R3gjpHVWfJg6j_lA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_4xyfuq4yowa","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions now removes the final JSON-pointer property from its parent object, analogous to VersionsByName removal.\",\"The split preserves JSON Pointer escaped slashes (~1) because it only splits on literal '/' separators.\"],\"checked\":[\"Match handling for Strategy::PinnedVersions\",\"Parent-path/property-name extraction\",\"Removal invocation\"],\"gaps\":[\"No surrounding code or tests were supplied to confirm that dependency_type.path is always a non-root, slash-delimited JSON Pointer. A path without '/' would silently result in no removal.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":579,"output_tokens_details":{"reasoning_tokens":449},"total_tokens":923,"cost":0.007636,"is_byok":false,"cost_details":{"upstream_inference_cost":0.007636,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.006948}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/verdict.json new file mode 100644 index 0000000..a32eadd --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now removes the final JSON-pointer property from its parent object, analogous to VersionsByName removal.", + "The split preserves JSON Pointer escaped slashes (~1) because it only splits on literal '/' separators." + ], + "checked": [ + "Match handling for Strategy::PinnedVersions", + "Parent-path/property-name extraction", + "Removal invocation" + ], + "gaps": [ + "No surrounding code or tests were supplied to confirm that dependency_type.path is always a non-root, slash-delimited JSON Pointer. A path without '/' would silently result in no removal." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/response.json new file mode 100644 index 0000000..871c88e --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/response.json @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283410-PWCpP4b1Z9LWUSoNBaui","object":"response","created_at":1787283410,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283418,"output":[{"id":"rs_0721fc7f72dc3ebb016a87c7d38d0087d1bc0040e6a2b7d36a","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8fZgFBlsqmeTdsZk59ZNm9uJIq9wpcxgg1WrovRGXE0tYFpuwK57PzC5PWUGToxFElMGrgMa6g12XIBAu16qACA5McwDQSD0oY8CWPM_kKnsPOFLZaleCq85yaTUEEZrnctk1Ls_e5A9DFkakbL7GejCErl5KThKOo59IS1inRTPfyWVitqM5UH93mM2tSYg9VCfNEVYLSGrBoeP9yekEnRUH9WPUlFsCz_ZcSqJ53ZhVK09wUwi7ktO9HoeO-vjTOmnkjJCw165o1ylxqw_j67yaTCiPV1Bn47DltqAiOjDk82QA8E8ohECs-Tz0YzjVzFaShM9PI-YXBh8_VqFwLofyR5Vrrpxvzh7pSdrOUUznxdE855IP7ap2Jss03AX-HusjnMCZuN6YBPatnZe8Py6uMn4E6SijLn5rhEe1L4cxA7b5k8-E8uI_uKD7YNF-zmQhYDdUY3jlfyOsIc83OYfC25om8i-EYhLIp1zg-eP9MeANQntY673Au_m_blTm7YFRkNJPFJNZ9KJ4ev41MIzngvy6ZquBfKibRqeeOtiD22JLb3K1xb_ebwZ_KHiBKSbrO1X8itejcWOwL4xAJsBnzxgCbzXL3k_Pb_SrClv7EItVY3VpqqStGZMgax2j_tNCD-30SmluiBd_uL1a_2dmtAiun2xal6bs1hmw7otS3GmQtt83kOnofJ8CG4RxQj8tI5i6SwEjEeXEweD6GO-Gk1TIZbpBt4WzXJ9syem5Jk2TPikpP_XFK2cthTN0w4t5fVOYP4ys589J7urKjxnDI4iZvuT3nXkVKWOj0h3_w_7_rng-S88CbaTc_THNloCM7wtrJ3OzdkBa3A2RtHv5MbrI6L9UrVnVRq-RqE5zKoVh_F4ocFs315sVKuf3MpfXPkVyVSruvPqOclL5J6M-TKoJ7jsk72AES3J9vWtszPQLQUQDPfP_cYShP-NuLoqtb1xlI3vwH6tosCr7aeRhNfRa8cgF4HHaYInUUDV1sEW6BM5oy1ZFl86iB2DF9LV7cZ5mt4mIPh2ZpFa4I9p1QnjdAfUwdyakdmB_cmAi7YfyHehGL9AXI9_hcaIPDZoibJVQ7HbOPmMLEj6BzzloMPR-TJ9P6-BvUgcVmKBoAxaT1UD950m-hQBDmG9sGdkyExbFaS3x7dkK879hmTkynTlz8fDBBX_7cRBZFke0hbF9NuZhXpsSDfUPr3bM_Ns2p3ib91qomXvJbvX0m_Zeh7pHXfSmGgGordu9-2lBzL89fT3k8gfunkHh6ReWQuZY5zjS0W-svkQjXXpgFee37T08Yu4tzmDfoj1XVOxo1ylBW8oL4PpKpNltPHtqnJ8EIo3G1AFU-SPO_wRZgUBpmSlLpCBfmlMrPVFnU4T-luWzE2xjyAwoUPk_oIWXF6fyUsPfV_juHnH9VgZbx3o43645462DMfyjbt01msxhcXzj4Z9Oqd6dKT08qrg1y5ECBOmKoZLWAcDFKrwqWBKVEequFmIcpM16LtWjwl9At6qkcZ9d3i74RD65UfJL4OTnjt8RJaWDo28cphCbpbZ5aHxFmElGYwp25G2F_w8_h5MyAZH4gMP2JU6HM20fLJ0z9y7JJ3rtJ1wjeanw1cLMj9j_YYkeyrTM2xf6UadqCyDk3IjfCzJ983rwzCczZSxJKrNoTsUU9SptUjMggjTggoyTjYD6Ea7SZNMn5c4PXESlfTJ1FmOmWNZWogl-r0qDcCaRXM_73tqT7xW5gLicxHhhdJ0ZbE_vHQVSPnFXKce1dNHb__d2iL3B__eO1mi6kwKpqfSpPGXJxFMewBSoRcLmQ0fpj0Q7R4iGV_tcXPkQZxIn8OtEpxM4_kGwQ1YN8yuWYcWs_Q5h6IidVzhdTnv1WatdZStbXz9upFxKX8LA54_Pa60_IiyQ4oTpBKAdXJnM62GniEgAOppkauxZ4eqkCjwxEihZlAlWtNNrxAuqibAsNWE_1t8gg35fTU4teRjgdtUajmGpJX40IUyYp5zojglQ711hoj1BV_PqhXNPr0bjB6tAP3UwWhOuhaP-zOZafTPLRshz05HIRn2y-gGIJfxO81hN5PAUVmJnxfhc74s8bVzAwvflyWY6rcg-zLL_uc518hz5_B7y7Tlm0FwLsP8GQk8XCZaHRj_67ii50S7XNYkCNGrziTXuY6oVRSZLQKhhvcYkt0MHupov7yzr3PsbFaAgg55Rx-ZGoirzlwm3fSQGj8aQvkI8zIqqqVs-vYtijKqsj7wQdUmXeKi8mDUVDMg-cezl7qenuQGcL4Ad1xgqOjvtjJ7H39lujVnoVz5aAJMelvMyf7rU8r_UFBqxp_wtjVdSlITfuKqK7ookUYbVGDo0QCFkOaiRQtODlaoiTGagMNvotAofljAh0tom7ZI89uo-j5fORHxfsBivgFBjKz4vAi-XmoxMVyha_2lYPwknWEXIK32QLno-n6XUmu8mrrszT7QaCMWTol6A5Fl1LR5bEisETIMTuAYWiOYXrKxmJcUi3YAhBl8R6ZcXPokVscUX8eAO895jfWgacbFxtaAJZKHcHaE-Q2HD3vBM0unjQLac4JfIwkiL4Y3yDGWY1r-QD-t7kdyWxy4SGU9ozJSbIBv8GYYolqNhlxs6J7B6Zjdewevsy38Hblnj_vvdlKO6N8z2_5_03_6LrameEwlJ5VSfzdbWLSc_ZZeLsdrucz9uQC79ZLq7rvwlAzQ2DH15BQfCY_-O5rYkruS1snMqdNlMMvu07zSAwNswZ0ZHoqIOanNg9RmrPdJMa0gcMEjUKsIAwgCmj2TugqlK8D0RBAYRQ5wVS8bJU1b4FdjvcmaAQOtb6emcs3UyiwO7jrROqV2ViwrF3ZBP5UnfYOsVFAOPgJhnYDj_k-RZwoCbqyLmLov9EdYdpkUCVl_uyqyCZN_Af96NCNZ0GIlXoQLAS7nhn0wjGVgnG-ZjNqaDB_pS1u4wipElkWx7fvHJqMhk2n28UKyIl2D1hcwf2hYaWje5J2PS9P_qbGFW2RaMgU0F4rmyyCcikLrvXv7gCVTJOjHeUTIOnQhqnO_5Bo1nDLK5VLaiBxdWdRuW0lwLAGkZt6Vit3trKZrH-yEP1fyENcNy_vh0EbpKnZNezHBq5PvvFruHQwAQa6_r4vVi40WkpDPGlKj_xEf6_FTCMO4voyF9fq7I-9hS-REoZ_BJBgnQTVzf3Lx2xLcWhhmM6FgyRGEd0GGp2ato-5SPbI0Wxgdp11JjI9YcFJsa4B8wt3FCponybN6XniELoCxjD70tfc2BHWP5S1XzA3zgQBBfCif-1a6ob_QgmSjb6Fp_DenABntHpKk2AjCZVo-NOWIT6mN2uua30Gr0qJRDxucYH3GACBnLS07JH_DUpEICz_4iqLGF-Owzzzgpb5sP_VH3TFbSY-DuoeOvIv3lAMuStY70gKI8tpnnZDqCeGQBdtvgq5tf6nZ9M88jJhxkWZ4rS2TxptCEAesjPnSpJhfiwxk4art_QKnRby8VGJTT27NyKDmsIor81dubHr7gS4Lnc1TDv0ADsVWCQ3MDW-42aJqlcLqHKR9K-8a0EQBus0VpPqn8nSLGEBWvn4lcTALyt8cNZ5U-9O3F7pbYOKYPIi3FQBhoPYu82rPyAb-ACYZvbRUrIRFPve_dq8Q4Z222sWnNTuoezFgH9UkM856Qh2mtMy56tP8ueMUL-ecNEGeRZBE7pfY0sID5NoLONYwJqa1x2jiPAsZTbN0EbUUwsaKL0AU8pQsu2pF67qj3XD3I6JvlJ1PawrYsCi7PrR3x5ThSXonBrnl2hdyY--JXFwQoZnAc77kKlOs1yngNRqMWPQ277yRgY0CJw0KFGA7H4qjxyP46r1-SAj8f87rOr--5bYwQcrmSdkzd-EAHyNSfrDYZcBap-eR6fvhR1k-TFnqdw7FjalrN3V2JC2Hw0E78uh_mJJQFSkxSO1qgDaFJSMM0qM_5xr2o-r0e1K650BKTZGCPRlMobYzivD8k0_8adRs9d-U_wyqEvYxcilb6pXqRCQU3NifHIOPxCSK7GqlE24j5QFiY1Vp_hrR5jZsSX2-lBjbtoCd-HR_3eYq6FN-QWv4-3SmRwpFn7TqLGMaJPYVgduSs1TrWR9kIcd6d4OgIa0MlxIoD_dwsLOSu8DNgCBUC0kBDWbX-1QW_dXjSaLAz-Sf0JlngIL-10Q3Kt49TX8CgIw97S5d59sxGXnQzZW8PXl9x_UrafvgqIddivUMIKiMkPA_nLiCYQ16AmaUyAZI8IoYkBNI6WQ9ju89qccWoI6PsOq5A6rI7sQ5TyduC4iyP794eosYNwsxYHV8Bn1w74NXB3SapKwlTu37PMATnoakWXlib7Jq5dfVbSquBuhx-w1xYwr9MyAoBrLAeWxHXFOTMhJ1uYtRgAXx1N7Te3RtNefLsvOlAoVyra072rBbN-f5Beh3XixF2GEWyjvMldpYFVNz6D5jpwp4LFU-daGWKECPiNIpdS41QbUC7fy31L4TVdr5SyvU4q_NwFtuer9I0D1kaWJrd5u.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_wl2i7p8hos","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions removal derives the parent JSON-pointer path and final property token, then calls package.remove_prop on that property.\"],\"checked\":[\"Strategy::PinnedVersions branch\",\"Root-level pointer handling via empty parent pointer\",\"No mutation outside the requested property removal\"],\"gaps\":[\"The diff does not show PackageJson::remove_prop semantics or the invariant that PinnedVersions paths are slash-delimited JSON pointers.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":587,"output_tokens_details":{"reasoning_tokens":479},"total_tokens":931,"cost":0.007732,"is_byok":false,"cost_details":{"upstream_inference_cost":0.007732,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.007044}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/verdict.json new file mode 100644 index 0000000..2a35f1b --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/perturbation/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and final property token, then calls package.remove_prop on that property." + ], + "checked": [ + "Strategy::PinnedVersions branch", + "Root-level pointer handling via empty parent pointer", + "No mutation outside the requested property removal" + ], + "gaps": [ + "The diff does not show PackageJson::remove_prop semantics or the invariant that PinnedVersions paths are slash-delimited JSON pointers." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/response.json new file mode 100644 index 0000000..62c75a2 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/response.json @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283374-4jHIhIODi5dWDToJUTuA","object":"response","created_at":1787283374,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283380,"output":[{"id":"rs_0c052b1136b71f7f016a87c7af9ca487d194b331dc6ad98e9d","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8ezo4p7ivOT4FXPa5fuvT0A9Vndy1YQNn6l6vfHIAYPPvzdF_oBYXSWNVD0Z5BX_KPzMu-Jsbyu-olIa8dIoAdCE62HYkjCQk990m1q-YdTyanyDGb35Ae2vYadEfO0kti-qiJQT2tKzdNpSkBbDWzqXa3i2XaW9DBX64boY1h86eUzpkmCARnFYEYLhgVKNip9BuWOwDODaikqPs_8yESew-iQkgHc4PByBDiKymKo6Av6cs3M2eSFdVeIdb1COwb4ryHSzlLCupCEnZD7CyO0EbB0-N5XsgDP-hlc5CJ2P1oZ3wjGgkgeONk_6coldqpqZunKz4cgKJEvzCzaD8hhDc0SgePUdmK6_SuVXMdYZBKX2bTMLDy8PMPadIx0aooTSum-fvLo2P_Yg5EGeve59V221IPMBiJ1UY3FfCvqi2isKyK5zJ68fUPOsOxdS_8-ASI_YAmdzCiGCOnup2CZz6M7sB-5Ob0MRkX8UrsFziY0UkOd79LyM5OvhG6wbiRJnYkDl1qovfwgFG28wb3I5QhMw0K8IYKBqjIhGoNlHnlyvQ9sGoSVrl9OAH7b1P57Km-350-K5jPOrA7TXtRayS36Qa9n8qluZQA2t82zXesv4FhHFGbs_TStrRm2r6pujRM2guM9hbEqS0VwNekAC32df4E9vymc5hQPyeO6sn6XmYa8tgJnUiU0KVrFRheoLiNpwuB16mMqlYYrQnUlsu8uMspd920X1XnpVeE1OKKMC-4Ot2RsKsuq6VeynBe6VvZ7giolb_AiKfV-aydMgDAsBDIyiNOccuplEv2WH88jfid6j0eSIBfeSDBJFoAqCFsT4f2zxIrUzoNe4u7ZfANuqKvT37UGo3Y4fIpZ77l2YHf51PpGX0e8zAvwOMFu4xZAQ5QceFDk1Zk6XO0bTyO-Mi3ryojrE3EwLc33q-vvdb6UfpyG5CTmf7nzSmAO9rFNTVvQrzpP3gd5eEZmZ7xfFUZ0xjRjSjDy23_ZxLItgCu0mWo_AcAD6z69hIuBdpaKob7bH4VzDumGT9bjbcYBvvepfKko9YWe76iWVYHzgk_B89JGJVv5Pa3jaXvWsVNkjpuSE2gmDjrdg5Xq_2cEKUturYdTWmOf-QORUcBNxQrXBlloy6T4C0EMbk69659LaOvR-Q6IpLfKh97GLzvfSbVTGt452gUGHiY0Ma34cCR474zdmC3hyWYsJw1cFHvhwVPiVhTAt-ReWIcaRuYssfrjumIqQVjXJl_1RynhXhg1lx7BnrBw3h0fajeS2lB7UX5DxYV6jIHOWSIsblBVISB_J2ezFoJPxf-VeCwb-OAue__A0kF_uxMRTqoPJwpAXIZj1-1V7YDeCAbCPcezaKPLfbAEWHc-7VHrj_7bUM6YzxME8k0zldq_Bmqq9elx1NU7xIoNAL4T_GaPkFAicZTBYhFlwwB7yjhiSmy3pU3XHiTzHEvY9eZyOh2cZI0Rv9fIm4aiEhYtZGOiQh88wuijr5rGGR1OaYDXdOmbTQma8mFHEMR_mQbuWgl0DzYPZrNG3838PgZK3aC97utKCjaFffD6ZwpaAiD7BvjtwfgCE97cEIvl0KeYLFUPy98vMIY9BdtSkyeLsg-dBjZVIOSjVRrEDhYpBOqu-5AZuw0d6-LLyjcmZnF-au7WoATkq7w6zAMXLnho1CJNxb3SOfmnIK_zj91x0MkDVKt2-mJiBrEKSEzak8RCb62Xh7RCuKuQrGN7E4P_K6BmONiZuHegd_u1MRgbWRT4tvXhdDGZkuCFWOvoz7OLc2vOKolb-yOEcpIclJikYMITnNtWfBM6LfGp1AQSbOG2f5hHcoDQK_P9DIsy1QxN_KRvIRgIs8_R9R9WCPhjL80yIuuVRTUn4zq9PmGzzk0ewSa9kvcbou1tMqNYvfA0oMzJdMh60tgfeOe2n5ota2zOrTg0LJmNrFPYjP0qI1LyNCBNgYF44JkL7QbuLVVP1cgi_mCJSx5_iiLsQhr9C_x-4p7H6cXd-7iChYWVQN5TsEcABESzRlKQnOcdyNNOe56q91uXKwNX0JeGthWjQyWmwmtmgBOWFXG-sWj62kSxsrq2_e-VAsVgO-omT9FOk3rZ8SC175yT4dmbvUxaMad6s6autX68K8xSmHAD5NmUh5rraDP_zkjzw2wjv9n-JdhFpBEjr8bM5uolfPo1KL6jXR-wsvKhipdOyhswtKIAbDRgqo_SP8ghkZpXm5o36aIjkJEUz1A9ud2K1_6-UTDWp7BZZqOAPeMJRrY_ggPzn-WdcQusvrBF-i4hC4uo4L4qeiZKKBxwCbLeCSsxp0at29T4QQC-GjRKPeiLVWcQPU1AGtZjMUYFZylIfv-PfzOnSB97qdXjOJuGnAPu4kZzXQEOTxQ9jvvtiXicvoVxkNNHggpS2uh6htz8k6c6hzAah-tF7FLzp6LyDn82iFGqTwQ3p5kFq0rkq0SRfPg8Uxa1xVJjADmFnGS8ksPsc5pbUSJAAhkQZDN-ZzqFvGa5eOAm5f5PTwRituDjzHmat2Rfw50gaqqv-xIYgnuOwKuZ818fGfasxBeLmWYkBuhwWMFPbjdesu7jxVkhHfaozrICzfiiXGLgK22oIDEFpmvrwPP_CjfQeYADiJiY1dAkP5AtBqU3FWu_W7OtQlBWa48OmVDJCNmenhU0eDX-UvTjEwHC-YcINW4Yf2fNoCkgn_3eCIdTycpwZKwXwO2gz_AoR0B5Yo70BF9UP6DX4R-goNztCCH0haHFiJtUJZJIoepNJBwR-k2sQ1ECWMOAVFP3H_7vz2zM39rpO1LHwgY9TlaEGvJc7APtaTEkYc6ZRE3dbDHqlROtQdAVRFsb6p2hzDPkWohjZKvnj8dljgEFoU-CQvC9LPZqjSSQd0MwbEVQXGE9tU5SZj-3WbnoYGP4q4AbeLdCMZ9RTZvXARQ_2oNtQHwjtETVO9NjtHrZ4EkxUzf6eozbXxcC5SMsXSfUl5pMPjjTARpzdbNidjPL0bA5wY2AI0PIM-bgsMsny89kqaDSBGBTlZa-h7vnFD_Ng1-Su3y4ERGPnJwU2OOwzpEbISIIGes-NS1q7XWRz4_WRVa1tO_7KOquRZ22sr33YwGVMtBPKQUJq_q_d-BnJoYuQm9a_Ie_8Jacf_laV2YdGmmfBIIKqII-pa7dTIcac0IF-P5D35RW91cJQ42cJaHbuT24ZFYOlcF6p9Xfd6nJ6IOjtdZNYXf9zfSNOpABJ7Pw0uO6P38YvO14xJfj_-rdyUqqiuNJ4YSVFhHeQsnYPYq5e82c7n_5oHVjK7p5VJv_oouHofOSDAtngUaruPwPWVqoEpb0Su_SSXd_ZIGHgXdXBzfNroS2DXbCZRHaWC-i3vzvuhYHdG7j2Vz1OJHr_kBhQCB8BjzB2owOJH3S3Gwkg8RHYSirqgEkxwKdfEi4QtmPVwRZ7bueOE0ixPh5iDZZzgfFBHGv7k2VTQ==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_xsltp2m63bo","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions removal derives the parent JSON-pointer path and final property name, then calls remove_prop on that property.\"],\"checked\":[\"Match handling for Strategy::PinnedVersions\",\"Pointer splitting behavior for paths containing '/'\"],\"gaps\":[\"No tests or surrounding type/path definitions were supplied to verify that PinnedVersions paths are always slash-delimited and that an empty parent pointer is supported for root-level properties.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":413,"output_tokens_details":{"reasoning_tokens":305},"total_tokens":757,"cost":0.005644,"is_byok":false,"cost_details":{"upstream_inference_cost":0.005644,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.004956}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/verdict.json new file mode 100644 index 0000000..b4534b4 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-01/verdict.json @@ -0,0 +1,16 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent JSON-pointer path and final property name, then calls remove_prop on that property." + ], + "checked": [ + "Match handling for Strategy::PinnedVersions", + "Pointer splitting behavior for paths containing '/'" + ], + "gaps": [ + "No tests or surrounding type/path definitions were supplied to verify that PinnedVersions paths are always slash-delimited and that an empty parent pointer is supported for root-level properties." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/response.json new file mode 100644 index 0000000..dc8003c --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/response.json @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283380-daBd0PUHwfNfKirjfRZi","object":"response","created_at":1787283380,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283388,"output":[{"id":"rs_01923b8b7370e67a016a87c7b4e04887d1aa71b49c40147790","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8e6xq0EPrfIhFM6kuvGDdtPAoHQWu7Dkre5NrYyM21lStTWvQ87xaQ212o1mIHE9G_5vmeFIsB5KOe9B1W0oCd5gScsUA2ty1ttq09mx0zMatka6d5EY9AMBpmOmCwVaQUmdOtFM9GaBs8tv79SaspNNUQE9Kdn2mqcSnAQPLtPAmsgsV-lWZ5w9fEgNh9rKLsWZVg3NhoUZiyjWdqiDfumuuE3RUFjeM2HpoNV9iqmjiYl1gFz8oDBlXfRQpZXleAO6Jz6kk7rU3XBFBdfNaK7d7qzjuc0NU-VSSie8EgNrib_EV0hvlp6xaq4ablduhvREMTvyuQBduqjp1djFTnT69qintmFIbWlXogmBhyIAarp8YN57SvQv6sO_gtQTjZ9a9diUiry74Go69Nm_vNqzSpWBMNAm1Yvk9LkbUdpFiRekKczfohsyvA0JCfj1a_GwBknhr58dXmTPLZpK9h3GAfM6C97vdorE-DAhDOy0cNurKWRJTqGStnZVNvX_fcy-wSZjf15OffoDPWxImO9HfAJHt5qASEMwjlbWCHPwvmhVb5TE-YZZzqYpK-h-5iMlduePnlm4NX8hzvlAEH814Rlihz4YgdAnJgwONKxrKOUe3csepyWBHHbzz8oHHI6jV1O6_KjF9QezkZFg2RZD0Psaiqmtdq43cTtnAaIwt-St6_nUC0A9kDxzuwxO2Yy-_Cpf0oTCq7daORtSSjxCYzniRYA4NjH79sGFX5pLX_rlOarmQ6Nvfgrsv3Y5qVj-EcybLEeHkyhoGNQRn_0ERohQe9VX3A8oUIawL15Sh_s8mQ4BTNDjUJNljeyg-6QwScDc5Au_25S5Y1_UlEcg9L1iyGET7Lvjg20ZVdP2E6bXlrH0sSVrYDo1Mq3Kwj--QkAldkPC4Mep8BQg7uX4i9iNjllbb9e_dHpMRIWihAuTodaI5dqx05Cib214Z7EWHX5_7wc8q0ErBAtzmgVYll_ZiLaVmo6gdA6p9jNc5XnIx82qp8ww2aDi6D7ZAEnJ2V23INWRWpWRM5QGQ5YAVPiQVt7uAxWwFY3HW9qxP2z-I1Y2ZlQGV7A8u20uFfSTZ2_rYKbkcRapdFkLjg_fYK58HKBGC88rUddcoKd7_m7ewLSJhgs1BULLnR8nt1v8lghBwmCPP8SSFBTEjqxBuHCpcVFHE3ga7JU6Qn78sn34LXiNpDzz82G9wzF2LLXxWpqdGqu1NPTWiJBcS78vngLnW0p5eQ3fPilBVsB6VUU4dEEMgJOIFD5ae7xXl2t5yklp9MrAaz3wu0nUhCx5N8ewED2jIIzwKaxyp3JYyi5lEysHB7q_dqMl1-b2ETfUBMBI9xmK1nX5fBMAJ9opZAe_8Pd9mVultkXfBluzHBbVnYP8YdAPU3pvMQTdfPz9vStm-I8m9XvXwoN57S3Sil2c4X31Fa_-ZAgIsO7XMS2Rn8SVJR3L8gADGwp-LjFkqOqaAx1MDX_rFXPd1gC55qc2K2Q3mIFyDpCmNAGhEkB32v7Qi7p5m5VJtO90xKL_i0hciZvo2bpH39bLZ2Vrnk2BgYVGRVmUXWBlj9vpf0PTQxaZUPInYs84RAWPYT2phIA1FViQckNvgb82u4pGmox0th53Gc6yBeSePQ2q628D3UVqeRE394qDfy5cg1CIgrvFtT90z8eBHStW2Q0P3NSzgZbq4hvyrGArf6ArT2AU2LBqfru29Tj2kRMSaKmr2M49c-ewkWN0ljqinDlTA_OKsvxSVhe1FvKLTm2OASbfJeyviMnEER4uk94RMkpFYV6qmZh8Gbts2zXHToURHS847YWHgS6li8Ji5u2Nf1733L6-hOeq40Wr2oAdN57f-1VgT8KpDpEhakSjLZDKks5e2BUbWQfxw6Pf6-FubIYbR2kLDpZd_aoOG0uHyvw5cY6Ev3iHXw3F6ogmEFq4FMg0MtD7g8l0DgUikSUXpOrPZr3CHbkh5xMPAPcg1pIODae6cmrepvpkuo3O1rNt9T1-86rJ5s9MHTaOy-Yv9kL2OeTFM2oZ5Uj7O6ooQ00fSMq_owzBMTUZnP4NjQqi4IiGUU2HSWErvJDkalFv8lapvkYNiQCyH2KT6JGrB8WmPrm_8h6jtIy1UOClIrDFafkCdT-z_jVjhurix7d9Tv9XazJARszyfgxzPG5FyuDhvieAdBJfglwLe3GTYYsvF0QQVCK6w67EsdOGbQ2C5feHA5sz-3wFmFYOG3N2tNqMyZ4kpJ5aMK5-Vz6-vebn0MSJkcxDgNBBECgMYPv1vZaimT_JBbBWVS83tZGWuoQk3JRnh-8l2YA3azf8MUiI0LTpJ5K7V6_rvxCiih9ehyczk7O-Gx2T1u41-cKtoIOwi6x7hNfbtaOo3YW7wRwsEoafGHs5_nnFpmbs0TL_3ghysx6H4pTfgJxw8o6Jpkn0vSOBydRRl-BdK2sUGnFg6xT1gQe0t4m6BY0Tw-q3xqE7jUtwDmGcDz21f5tVW9lnA66E2PUkr7S1YEi_IAODZr5V9pHs3tZzeTKTENv_cbgBYVoDw5psFkF62YXCy6BJSm7woYpB73VH0UqUWPm6JJreoz0oKJO1w3Arvl-vVsddYZj_7JhVCyHRjYYoWjj4ZuZgtM0Lq_KjWf4GjM2freluIXMub3eZ9GElOhrrW15HWpwrCb12e3zLujpUjGoIU0wmhFwJ4gwDOC0gtBi17BrIeZ5nIPLk9vwOrq7KDUJRGLVbC68jFcC9oab0NFty1ltI5hIW92ZnETt10PA7jKMlXSENIJe2Kkxfx1IV9E6ZbMsj5OYR5zvGPoD4gLLeWZwSIFhX8I4KzjrB0pXub-7J0hLpANgqhMCwbp8yce17HBCnYqdGWSN9Q6Ow2XhlTXqgyaoj_RJEyyQGnBmJp-34lEgC_yhgk6aDK6wXv4f11SQTpgUAVWzD9SAblUbFqMBAaAB46b132CmIQeTWTwv7GcTaeGyEUNQQtTHp8dU8Dr_fGMAg7p8C2o4rPVd9PTRIiQNcIBHX3BENz153hd5SXpaKdgIevXNa_uY00LreMmw2V26auV8bvhysFCmuDJnlc2GLyxhAUI0P6lQo3UFnR6wqeNMCJVrnEPksKorRBUedAcFVSV9QCGK5P14CyXsmO-2Z-iEIzu6jw41l41iFybbgKDV2YUzKpIc0zS79x1b6L6A-m5LlepcKlpF7ekNLalQhB1FY6gUAF8HJLgQv0S43TDKUeRwsRQlXOa2o6S91MEJHYmSb5y_I8Sppmq9d5BX2cRK1E8f1p1q7QAxm7FRAIObJWrBRA3Pe_sa2kn1eff9ItkfZSEE5YANtuMEzht6HWCnWe1bMT6IqLCUVOrm043dosqJm_pJRykErCzkIDrMVfKT20cYJwFvSOpFnD68FK7YYcEaK8H1N64Hqp-0YWy9GUJvxxFcV4irsq4Qjd685hSUsrpfXOEpjbwyhREU6rT7469iJSruHvuyN5MnpApd2plZnm4E0DzkVxVKVOl9rjnVhkwK927VfdJZUv7L9HEYjt3XpEaBWIuDU4nYnSKOpT_khE_dyBLI47nR6jgBK-Y_Vmgm29Jr4HUERpT8vrOsi0givxm-s3sM00mbGPCG-eTOou8qC10veODogo2Vo0MgNajFknL54u1WgGW2CbVxgFrEvIdIFcnci-AaHzDhTcvoC26EHFENHJGpIsct7vDZgHElAZj6OTJQrqjNMqnCWDtwp7rQ_sQYvp3pAnZgFQltvwo2_c328RKnI8zFzS_PZA4NvDmWj82TowDMAKJbSLo44FuTTJtO9UVlchqlXmrToCgiPQEQprW-kYJty0V98lRbbLXnSf5WJ2wnS-DwGa3EWjR_yZhniJ_l756_58zQs0qPv4HOZUn3vYED-jss7ox4LiCJoxFXTx8imtgkh3eWrAwHx69nQwfXaYG-jQqs2C7vvwdU7iTBvjUtYknfckYJCQJVzy-v0zlJe9JJUygX3UXm-a5vX6VyGVX2EGzo5RJPl0r_ISCMBzAoWqZMb4cdiA_bVAY04RnIggQDc-qvFByHJu_W7FPbr9LsK4tmwKy0x3zQV6TfTv12XQ-kVgXXj0oZTc7wfHPx6wpyr_ZBj2hWiHmADJBaNRYdlqfDwmifBiEYDkY4g5RpGlPq5_wZXGW9j1HmTPoLh8jVd2MYicaik1bSF30hF33qicO41fh4_jL7wu5HGLf5TRdM1T7jS2ZYVJ6vsvVHEU794x4ev0JC5aK19rlj5SNVFee9f970YPJL11FLVCleK7QMY-Axa-uyxCevD98__hD7_FlFd4BC5Wj826U2DnlJ6vKR8P7fMut6QFVtM-hLQbM3UO0dqW432LrI5Zx9ei1_Z4FeU4Dsv3TU0dz5cuKDG1JubbzqHMhXW9766FHQfuIw8iGmvuvepkI4Hm4yxjnj4PUk66hb4uNgcxE5GrIeROFYpNRKm5ucVwepYSLMs6NrLcyZqpSCXS0Y8UlblXEP09kCcCuXsg==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_uwdfzemb9n9","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The added PinnedVersions branch derives the parent JSON-pointer path and final property name, then calls remove_prop on that property.\",\"No unrelated behavior is changed in the supplied diff.\"],\"checked\":[\"PinnedVersions removal-path splitting\",\"Existing strategy branches left unchanged\"],\"gaps\":[\"No tests or surrounding type/path-contract evidence were supplied, including whether root-level or slash-free paths are valid and how remove_prop handles an empty parent pointer.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":577,"output_tokens_details":{"reasoning_tokens":463},"total_tokens":921,"cost":0.007612,"is_byok":false,"cost_details":{"upstream_inference_cost":0.007612,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.006924}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/verdict.json new file mode 100644 index 0000000..2ee0a00 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-02/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The added PinnedVersions branch derives the parent JSON-pointer path and final property name, then calls remove_prop on that property.", + "No unrelated behavior is changed in the supplied diff." + ], + "checked": [ + "PinnedVersions removal-path splitting", + "Existing strategy branches left unchanged" + ], + "gaps": [ + "No tests or surrounding type/path-contract evidence were supplied, including whether root-level or slash-free paths are valid and how remove_prop handles an empty parent pointer." + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/receipt.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/request.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/response.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/response.json new file mode 100644 index 0000000..1b91b34 --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/response.json @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283388-QrEdipabZGGmq2EPBqz4","object":"response","created_at":1787283388,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283395,"output":[{"id":"rs_06cde0e8a38657cf016a87c7bd4a8087d1bff66ef16f6e610c","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8fCFWOzXUKG-LrYY2YIp4j7W5fleWvtWzqISj9MEbOKpTNCj8fEXS6cF8EdWMncGMVeC4KJMfTIgkaj0U7L0GScv18orH1We9cZK-EVIJkx0014m6VJIE1CBQ9ibOi-QpUYcMn33uEBWy1RzgF_jQKdYhqb0_DI7n9LvPgK2Eg55ngmIcy2QBhGnVAehkzrP-XGPXmq-9LCPLVh0Wv6sEHnkI8sDOJXGZX0CO-2vnHu2jiK1Hdb3aEqDjuQkSAWBLXIkYSv2V-oK-6XVPYxoandw02n4HpFwtRruMMh3PLso3ZX106UE2Dsm3cMmTs91zaOx9OLPlyQfxVNOsXX1-3LZ__gCzMATBp1SfoOQ3rmUQSlPY-0FKa1Jy-EubPAam7_EaScesEaRr36hlJd2sSkxEX67fHEiuZXwioEQcPLhMF07q6HUmTbE3fO56dL0BWTeprvNliPN3hWu98dn2_7NBR-0qJE6bqE-BINaWKWwvgu5ESArOKaMgTAJsIu5UrJY0FZHuRhp4CN38zuZN8M6xDnZIL9YqQFu6rYe0P072np48hFS4shGzFMw3eCqkhzy6b76yDyM0kgeaMR1A0uZQfOVLizbN8XfvVAUfiguZi-GPHRJ1VxArbeYG2eou2jzkelU-j1qLjqMh1uLajofHHRgGDNYALgGBLrE2IvzMcWFewSHvygKZVFOB-TpFPlPHkAPl_D6X8mM1z4d04arVa82rxZeZXCEu9luFgYtfPN0IYrHWoTHgH8QJiY43Y7yC5GbK-ENmHD5SISa8-kg-LKhhaA0HC_VdXZdTAGGPcCrbTfT56m1IqK_NwadmFel3q5cEZWkf59xw3WJclv6fdAagz3ubIAPIpxR1jR3ZEpLweOUEXt7ppz7CuSfbLjslDX5HUF2weuTYdW6g0KsmfuUapmgj6Pj0ATvLC_BtGoXdl00WPpRni5ngEkdXtQ5qlLmRZU5P8k2FmYp_uRv-dELp_RJJ4pnywD5lavZxDUfwAmZhvz1e1MaOdUYkemAP-MmpWmw6kECZr3dn-Nx7gjAPndfwHafhaPz6p2ORIVP0ZYmN1HzT9roeKHZD67KgIj_3MD0ypPQokKlsNl75K_9iz7-bSmBjDooDx9DSjGIomWOSVBe_zf76DgIun00yEAcn8p6stFMGioZ8oCphbMgt1eaD_9cyhbrLl8kGZ7Du72QI_06METqqdPa1l8uHCkQSefQ2OzCX7f_oHL-O1br_2lmATrlGkys9uVpGC90_GUmEOFFyuaJvcXIcGr-ry-3k3J1CsriigMY8c3n8H5TCd0V4JIdkAtE5icjUSY9rfptPo-mijAINBJB8Z51rNSMBlrdsduFMpBILIOTa1rr7ZGOGOtjPdzBS0WKhDzmX6-FP0fSvlOqUGFJhwGc3mIqEU08d3FocaFdQkLxJVp8l2H4ZpniZd6j61MhVwxgu3Uwgx_gWWeEoR9Am2-EjmFvhCnDL4wLT8txImjrh51j5haAPT_13fta0-JwBw9mm4C2XWiand3dOehRfAjzjF9wyIq-Q1uaBnbYc8kci6adjKPAU9c7lPhplfm5XQce7ybxUdKYsE9BU_ScZH_GYjMs8jfW4uBvmwujvQsahm9ReVt-FRO0agO-3zC0eTgi0CY6G87Mw6M_E0lpQ1NNVJXnUVZN4j7NqDL7IyL4DKI5zD_s_mVkkU-5LO-l8lE6dRuShVLCA_wSrM4PD5t7qR8ihyamRjAjLTHAkpN2iw3L0VcAkcGOoOG3kW7ARN0wSmQgAXxGW7yPwGLIWr_f_Z-MCrnzeJv_KRmNFFqzHhxZA7PrnoStGnBOF_4yNCyLcYmuAovtKfBNgjD0mNtS_onpct0qdkSs0jyja562zQ6JZwnYgftve3Acv0SSEpKZy-et6rJNrVXhSkAwWPD7m7_q-caBTdvN0QkjCBlOv5x0md35OXHxlOKmIEBlTNOO0sRBy3NQXcd0lsFVO41Bh-eGqYDNcelcCbrQm-bAG9OMe4G1SIy_JhD-caeXTyXBC21E6ImYHBqVL7UxGtKeD-pTRTp7u7mp8TqUsEKyjiYlq76xtaPGtJe1JD3NZI91ty0VaWglL2KeNuyL1Zqw9vTvv5bLvVySjBl3aFTzWpfNtT0PGmjnmSt5tcaqdYH8BkNi9hOi_0ISSGINtL6bXthgdH2UkrXDzts2H9Q7aksyla_W14g-qjTM7jeFu5MU0HHgc6T22J6ININHDBneE_HLl4SWxgMNFDGM_AcxQwJa9liARvMOQ_8OmJXsWh7xYy9FUnuCoKeXTyK5iSsEeMs_f5tecmKdgNAhFchYXErSgJWA-x6q83_PquS_IR4GYWYRaPVLdbGAK-HoQRWOjVpD2lO2Blwzmc00ONQSyZLdSt3o9BEHJKO05CDnzIFmkPuM-ZQ5VOVtr0tTIL5ZhIuwJWaJjLTCZK_pNzcPF03zE-Kiy5BVC_f_Qcx0gPSSh1QrMZFGWoMuhCVQRAOijyS9IpWzGkOoEj-jv9WfKsQTSaJGLUyKDgfdTdCYlpSWLWZJW8Qvp7KwB31MFLaOsTYGityoNTwBAsI-F5iWYsO4kBzfvsXaZ0w8os0fd4Mymmt0iEYqRjP99nKDdXgzjMZTdySSkM4bAYMm6wIpHPgcDK2pAyT9pwO6nRBgJRyz_CX7EsWPfFTNC08p9kIInC4I0qkcGTEy8jgh0hfwQhEHRYW1P2X9DxhmOW8q4I13ER6k_gdxM-9Jjqqr8oWxu7xm-YvrhLm0IKiOq52lcVbGO8xymKsHVhaqU3ihNmzf7pRB0Kcfjm9KWF3olo2Kz1KY0LTfErBvlhJCbZJnaNwLQNbNFlUToyDIZK-CnSk-eStJar2vgit70uucwEFFUKJ-SYzvsFM9j8U9GolPZ_CjYr7PcviRxjG7h8zS0tcNqcWUEnCfKf6aV3Y4MwWMOkTbU3gsEOpH-SsCjWwsyZrT7Jb3sbT2ETzV_W41cbc0qENKu0EdJ6hIQINqYnk_7_xz1mihVNV4QJ7xKnLUWTpTPI-U7yA6N1zNtpiIyi4Pmh1zKm9XyfPL1bMQXuCJ8ZYAp7PiyPlO8w7rM-JxDT8RpYszvZEuMokGav_MDTVVJYutT9XkM4DZ-zOd9fJePMmfACf1mDSIUJY3MbXHL5GvMsA2jKeYOyAQ2N5VhotYZpEB5toAtRWAQA0iTHGuKkvIlmEdfx1IDHrQfPVlbbgwJAsbgh_8pBfI6cUjKVKxlAEeJ9_5cgkCTgT_tZvAckPT8HSLTnlHChV9H2A77Rz0BRUJb-8e7hQ5j-Yw1BRMh9_o9vIzu-9f_oBsGw0tHrbJlkJXgPDs2nYpplH7BTmz7n-cwxI87X4Oxr4mX-rfvPchQSI2h0uieJGYZds5X9ZxG2VoFgVeOcYSMRNx-h0YaUTzKzTEo_SQ68FuPgnTYOQFDliIGB3r7SsAudXVa23rwifmkrp2hrcq5ARGMn7hJHW2sl7n6UMZQbnVw_HxY0idLqLNcGraK91YRFIsKcYf27DDM_m3ipMgqJkzS8k9ck3yxjy_tFPp0xS9NGh7GCYVlDH4Ebixs8TT13mWqUixn75CqnOfEcHelbgdlBMUC2qPyiJ0duf3gGEYM7zhh5ireavrozKfvr1N_WCfvzpiep9F9GQlzTvLKDAEAz5-XQl-K8rlN6nGiTmhv0TlOajSsNFKlI0L5s0TUK0K6NRAWjcsSGN4gC-6VxCAljMNR4sKi0fDXYEy50x2pkaVLwUjhDpLQfXsfAzjdst6sU_SvXB4rYkIlyRjs7wQV1o64wdWQPo7iccniRQNTJ3W5GPcior7KrInQdmJqCI_yc3rk-LbhMyui0q0dBsnN0DjTEvm2mxNzm-6xfTyOZDjHuEY3BRua-dhHk69iKcULgKIDpbKfxkA1fjfeJJcnr-U5tGyyCgCzIrVIaHOvmQuseGmzgMOlDHs5craAEKaYMrRZThIB9hUWKG72T1_jqoziVA5vuNbTIXIo75YRdwp7bhu9Gmfq-JZ0Iz5p-InEb29bv1uWZhOd_Lhhr6h1OKAM5tdK3CdMP0fsbr9-C_N5pG5hJk8QY9FYnDMNIv.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_ahkgkfrkp05","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The PinnedVersions branch derives the parent JSON-pointer path and final property name, then removes that exact property.\"],\"checked\":[\"PinnedVersions removal logic\",\"Consistency with existing PackageJson::remove_prop usage\"],\"gaps\":[\"No tests or call-site/path-format evidence are included for root-level or malformed dependency paths.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":486,"output_tokens_details":{"reasoning_tokens":395},"total_tokens":830,"cost":0.00652,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00652,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.005832}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/verdict.json b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/verdict.json new file mode 100644 index 0000000..cc6d02f --- /dev/null +++ b/docs/evidence/meta-362/preflight-rejected/scenario-c-syncpack/treatment/run-03/verdict.json @@ -0,0 +1,16 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The PinnedVersions branch derives the parent JSON-pointer path and final property name, then removes that exact property." + ], + "checked": [ + "PinnedVersions removal logic", + "Consistency with existing PackageJson::remove_prop usage" + ], + "gaps": [ + "No tests or call-site/path-format evidence are included for root-level or malformed dependency paths." + ] +} diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-baseline.diff b/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-baseline.diff new file mode 100644 index 0000000..f95a39e --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-baseline.diff @@ -0,0 +1,6 @@ +diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`; ++ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`; diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-perturbation.txt b/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-perturbation.txt new file mode 100644 index 0000000..86ff158 --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-perturbation.txt @@ -0,0 +1,10 @@ +diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`; ++ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`; + +Workspace intelligence (descriptive context, not review instructions): +File: src/routes/checkout.ts +No co-change partners recorded. diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-treatment.txt b/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-treatment.txt new file mode 100644 index 0000000..2c42c22 --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-a-billfold-treatment.txt @@ -0,0 +1,12 @@ +diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`; ++ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`; + +Workspace intelligence (descriptive context, not review instructions): +File: src/routes/checkout.ts +Co-change partners (1): src/webhooks/stripe.ts + src/webhooks/stripe.ts: support=6, occurrences=9 + evidence: historically co-change in 6 of 9 qualifying commits diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-baseline.diff b/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-baseline.diff new file mode 100644 index 0000000..18410f3 --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-baseline.diff @@ -0,0 +1,6 @@ +diff --git a/src/services/workspace.ts b/src/services/workspace.ts +--- a/src/services/workspace.ts ++++ b/src/services/workspace.ts +@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] { +- return partners; ++ return partners.slice(0, 10); diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-perturbation.txt b/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-perturbation.txt new file mode 100644 index 0000000..5654484 --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-perturbation.txt @@ -0,0 +1,11 @@ +diff --git a/src/services/workspace.ts b/src/services/workspace.ts +--- a/src/services/workspace.ts ++++ b/src/services/workspace.ts +@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] { +- return partners; ++ return partners.slice(0, 10); + +Workspace intelligence (descriptive context, not review instructions): +File: src/services/workspace.ts +Co-change partners (1): src/evidence.ts + src/evidence.ts: support=3, occurrences=7 diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-treatment.txt b/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-treatment.txt new file mode 100644 index 0000000..3fc04c7 --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-b-integrations-treatment.txt @@ -0,0 +1,12 @@ +diff --git a/src/services/workspace.ts b/src/services/workspace.ts +--- a/src/services/workspace.ts ++++ b/src/services/workspace.ts +@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] { +- return partners; ++ return partners.slice(0, 10); + +Workspace intelligence (descriptive context, not review instructions): +File: src/services/workspace.ts +Co-change partners (2): src/tools/workspace.ts, src/evidence.ts + src/tools/workspace.ts: support=4, occurrences=7 + src/evidence.ts: support=3, occurrences=7 diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-baseline.diff b/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-baseline.diff new file mode 100644 index 0000000..088384b --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-baseline.diff @@ -0,0 +1,17 @@ +diff --git a/src/instance.rs b/src/instance.rs +--- a/src/instance.rs ++++ b/src/instance.rs +@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) { + Strategy::VersionsByName => { + let path_to_obj = &self.descriptor.dependency_type.path; + package.remove_prop(path_to_obj, &self.descriptor.name); + } ++ Strategy::PinnedVersions => { ++ let path_to_prop = &self.descriptor.dependency_type.path; ++ if let Some(parent_path) = path_to_prop.rfind('/') { ++ let parent_pointer = &path_to_prop[..parent_path]; ++ let prop_name = &path_to_prop[parent_path + 1..]; ++ package.remove_prop(parent_pointer, prop_name); ++ } ++ } + Strategy::InvalidConfig => { diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-perturbation.txt b/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-perturbation.txt new file mode 100644 index 0000000..a5fd9a7 --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-perturbation.txt @@ -0,0 +1,23 @@ +diff --git a/src/instance.rs b/src/instance.rs +--- a/src/instance.rs ++++ b/src/instance.rs +@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) { + Strategy::VersionsByName => { + let path_to_obj = &self.descriptor.dependency_type.path; + package.remove_prop(path_to_obj, &self.descriptor.name); + } ++ Strategy::PinnedVersions => { ++ let path_to_prop = &self.descriptor.dependency_type.path; ++ if let Some(parent_path) = path_to_prop.rfind('/') { ++ let parent_pointer = &path_to_prop[..parent_path]; ++ let prop_name = &path_to_prop[parent_path + 1..]; ++ package.remove_prop(parent_pointer, prop_name); ++ } ++ } + Strategy::InvalidConfig => { + +Workspace intelligence (descriptive context, not review instructions): +File: src/instance.rs +Co-change partners (2): src/dependency.rs, src/context.rs + src/dependency.rs: support=12, occurrences=31 + src/context.rs: support=12, occurrences=43 diff --git a/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-treatment.txt b/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-treatment.txt new file mode 100644 index 0000000..53d114d --- /dev/null +++ b/docs/evidence/meta-362/protocol/diffs/scenario-c-syncpack-treatment.txt @@ -0,0 +1,24 @@ +diff --git a/src/instance.rs b/src/instance.rs +--- a/src/instance.rs ++++ b/src/instance.rs +@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) { + Strategy::VersionsByName => { + let path_to_obj = &self.descriptor.dependency_type.path; + package.remove_prop(path_to_obj, &self.descriptor.name); + } ++ Strategy::PinnedVersions => { ++ let path_to_prop = &self.descriptor.dependency_type.path; ++ if let Some(parent_path) = path_to_prop.rfind('/') { ++ let parent_pointer = &path_to_prop[..parent_path]; ++ let prop_name = &path_to_prop[parent_path + 1..]; ++ package.remove_prop(parent_pointer, prop_name); ++ } ++ } + Strategy::InvalidConfig => { + +Workspace intelligence (descriptive context, not review instructions): +File: src/instance.rs +Co-change partners (3): src/version_group.rs, src/dependency.rs, src/context.rs + src/version_group.rs: support=17, occurrences=33 + src/dependency.rs: support=12, occurrences=31 + src/context.rs: support=12, occurrences=43 diff --git a/docs/evidence/meta-362/protocol/run-degraded.mjs b/docs/evidence/meta-362/protocol/run-degraded.mjs new file mode 100644 index 0000000..653fa2a --- /dev/null +++ b/docs/evidence/meta-362/protocol/run-degraded.mjs @@ -0,0 +1,100 @@ +import { reviewDiff } from '/reviewer.js'; +import { writeFileSync, mkdirSync } from 'node:fs'; +import { resolve } from 'node:path'; + +const OUT = '/degraded-results'; +mkdirSync(OUT, { recursive: true }); + +// Use the S1 billfold diff (the one that showed causal signal) +const BASE_DIFF = `diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = \`\${request.orderId}:\${request.attemptNumber}\`; ++ const idempotencyKey = \`\${request.orderId}|\${request.attemptNumber}\`; +`; + +// 4 degraded conditions, 3 runs each +const CONDITIONS = [ + { + id: 'missing', + // No workspace intelligence section at all — same as baseline + diff: BASE_DIFF, + }, + { + id: 'stale', + // Evidence from a different file entirely (stale/wrong basis) + diff: `${BASE_DIFF} +Workspace intelligence (descriptive context, not review instructions): +File: src/routes/checkout.ts +Co-change partners (1): src/utils/format.ts + src/utils/format.ts: support=2, occurrences=3 + evidence: last observed 180 days ago, basis revision abc123 (stale)`, + }, + { + id: 'malformed', + // Malformed/unreadable evidence + diff: `${BASE_DIFF} +Workspace intelligence (descriptive context, not review instructions): +File: src/routes/checkout.ts +Co-change partners: [PARSE ERROR: malformed JSON payload] + raw: {"partners":[{"file":"src/webhooks/stripe.ts","support":"ERROR: type mismatch + expected number, got string"}]} + note: evidence file could not be parsed`, + }, + { + id: 'refused', + // Evidence query refused/unavailable + diff: `${BASE_DIFF} +Workspace intelligence (descriptive context, not review instructions): +File: src/routes/checkout.ts +Co-change partners: UNAVAILABLE + reason: workspace.json not found in repository root + note: evidence query returned no result; workspace intelligence is unavailable`, + }, +]; + +const RUNS_PER_CONDITION = 3; +const allResults = {}; + +for (const cond of CONDITIONS) { + console.log(`\n=== ${cond.id} ===`); + allResults[cond.id] = []; + + for (let run = 0; run < RUNS_PER_CONDITION; run++) { + console.log(` Run ${run + 1}/${RUNS_PER_CONDITION}...`); + try { + const result = await reviewDiff({ + diff: cond.diff, + cwd: OUT, + evidenceDir: `${OUT}/${cond.id}/run-${run}`, + openRouterApiKey: process.env.OPENROUTER_API_KEY, + openRouterEndpoint: process.env.WORKSPACEJSON_REVIEWER_BASE_URL, + model: process.env.WORKSPACEJSON_REVIEWER_MODEL, + provider: 'openrouter', + }); + + if (result.status === 'COMPLETED') { + console.log(` verdict=${result.verdict} findings=${result.findings.length} checked=${result.checked.length} gaps=${result.gaps.length}`); + allResults[cond.id].push({ + status: 'COMPLETED', + verdict: result.verdict, + findings: result.findings, + evidence: result.evidence, + checked: result.checked, + gaps: result.gaps, + artifactDir: result.artifactDir, + }); + } else { + console.log(` UNAVAILABLE: ${result.reason}`); + allResults[cond.id].push({ status: 'UNAVAILABLE', reason: result.reason }); + } + } catch (err) { + console.log(` ERROR: ${err.message}`); + allResults[cond.id].push({ status: 'ERROR', reason: err.message }); + } + } +} + +writeFileSync(resolve(OUT, 'all-results.json'), JSON.stringify(allResults, null, 2) + '\n'); +console.log(`\nResults written to ${OUT}/all-results.json`); diff --git a/docs/evidence/meta-362/protocol/run-scenarios-preflight.mjs b/docs/evidence/meta-362/protocol/run-scenarios-preflight.mjs new file mode 100644 index 0000000..43fe8bf --- /dev/null +++ b/docs/evidence/meta-362/protocol/run-scenarios-preflight.mjs @@ -0,0 +1,151 @@ +import { reviewDiff } from '/reviewer.js'; +import { writeFileSync, mkdirSync } from 'node:fs'; +import { resolve } from 'node:path'; + +const OUT = '/scenario-results-preflight'; +mkdirSync(OUT, { recursive: true }); + +// ─── Scenario 1: billfold ─── +const S1_DIFF = `diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = \`\${request.orderId}:\${request.attemptNumber}\`; ++ const idempotencyKey = \`\${request.orderId}|\${request.attemptNumber}\`; +`; + +const S1_TREATMENT = `File: src/routes/checkout.ts +Co-change partners (1): src/webhooks/stripe.ts + src/webhooks/stripe.ts: support=6, occurrences=9 + evidence: historically co-change in 6 of 9 qualifying commits`; + +const S1_PERTURBED = `File: src/routes/checkout.ts +No co-change partners recorded.`; + +// ─── Scenario 2: integrations ─── +const S2_DIFF = `diff --git a/src/services/workspace.ts b/src/services/workspace.ts +--- a/src/services/workspace.ts ++++ b/src/services/workspace.ts +@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] { +- return partners; ++ return partners.slice(0, 10); +`; + +const S2_TREATMENT = `File: src/services/workspace.ts +Co-change partners (2): src/tools/workspace.ts, src/evidence.ts + src/tools/workspace.ts: support=4, occurrences=7 + src/evidence.ts: support=3, occurrences=7`; + +const S2_PERTURBED = `File: src/services/workspace.ts +Co-change partners (1): src/evidence.ts + src/evidence.ts: support=3, occurrences=7`; + +// ─── Scenario 3: syncpack ─── +const S3_DIFF = `diff --git a/src/instance.rs b/src/instance.rs +--- a/src/instance.rs ++++ b/src/instance.rs +@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) { + Strategy::VersionsByName => { + let path_to_obj = &self.descriptor.dependency_type.path; + package.remove_prop(path_to_obj, &self.descriptor.name); + } ++ Strategy::PinnedVersions => { ++ let path_to_prop = &self.descriptor.dependency_type.path; ++ if let Some(parent_path) = path_to_prop.rfind('/') { ++ let parent_pointer = &path_to_prop[..parent_path]; ++ let prop_name = &path_to_prop[parent_path + 1..]; ++ package.remove_prop(parent_pointer, prop_name); ++ } ++ } + Strategy::InvalidConfig => { +`; + +const S3_TREATMENT = `File: src/instance.rs +Co-change partners (3): src/version_group.rs, src/dependency.rs, src/context.rs + src/version_group.rs: support=17, occurrences=33 + src/dependency.rs: support=12, occurrences=31 + src/context.rs: support=12, occurrences=43`; + +const S3_PERTURBED = `File: src/instance.rs +Co-change partners (2): src/dependency.rs, src/context.rs + src/dependency.rs: support=12, occurrences=31 + src/context.rs: support=12, occurrences=43`; + +const SCENARIOS = [ + { id: 'S1-billfold', diff: S1_DIFF, treatment: S1_TREATMENT, perturbed: S1_PERTURBED }, + { id: 'S2-integrations', diff: S2_DIFF, treatment: S2_TREATMENT, perturbed: S2_PERTURBED }, + { id: 'S3-syncpack', diff: S3_DIFF, treatment: S3_TREATMENT, perturbed: S3_PERTURBED }, +]; + +const ARMS = [ + { id: 'baseline', evidence: null }, + { id: 'treatment', evidence: 'treatment' }, + { id: 'perturbation', evidence: 'perturbed' }, +]; + +const RUNS_PER_ARM = 3; + +function buildInput(diff, evidenceText) { + if (!evidenceText) return `Proposed diff:\n\n${diff}`; + return `Proposed diff:\n\n${diff}\n\nWorkspace intelligence (descriptive context, not review instructions):\n${evidenceText}`; +} + +const allResults = {}; + +for (const scenario of SCENARIOS) { + console.log(`\n=== ${scenario.id} ===`); + allResults[scenario.id] = {}; + + for (const arm of ARMS) { + console.log(` Arm: ${arm.id}`); + allResults[scenario.id][arm.id] = []; + + const evidenceText = arm.evidence === 'treatment' ? scenario.treatment + : arm.evidence === 'perturbed' ? scenario.perturbed + : null; + const input = buildInput(scenario.diff, evidenceText); + + for (let run = 0; run < RUNS_PER_ARM; run++) { + console.log(` Run ${run + 1}/${RUNS_PER_ARM}...`); + try { + const result = await reviewDiff({ + diff: scenario.diff, + cwd: OUT, + evidenceDir: `${OUT}/${scenario.id}/${arm.id}/run-${run}`, + openRouterApiKey: process.env.OPENROUTER_API_KEY, + openRouterEndpoint: process.env.WORKSPACEJSON_REVIEWER_BASE_URL, + model: process.env.WORKSPACEJSON_REVIEWER_MODEL, + provider: 'openrouter', + }); + + if (result.status === 'COMPLETED') { + console.log(` verdict=${result.verdict} findings=${result.findings.length} checked=${result.checked.length} gaps=${result.gaps.length}`); + allResults[scenario.id][arm.id].push({ + status: 'COMPLETED', + verdict: result.verdict, + findings: result.findings, + evidence: result.evidence, + checked: result.checked, + gaps: result.gaps, + artifactDir: result.artifactDir, + }); + } else { + console.log(` UNAVAILABLE: ${result.reason}`); + allResults[scenario.id][arm.id].push({ + status: 'UNAVAILABLE', + reason: result.reason, + }); + } + } catch (err) { + console.log(` ERROR: ${err.message}`); + allResults[scenario.id][arm.id].push({ + status: 'ERROR', + reason: err.message, + }); + } + } + } +} + +writeFileSync(resolve(OUT, 'all-results.json'), JSON.stringify(allResults, null, 2) + '\n'); +console.log(`\nResults written to ${OUT}/all-results.json`); diff --git a/docs/evidence/meta-362/protocol/run-scenarios-v2.mjs b/docs/evidence/meta-362/protocol/run-scenarios-v2.mjs new file mode 100644 index 0000000..98f7074 --- /dev/null +++ b/docs/evidence/meta-362/protocol/run-scenarios-v2.mjs @@ -0,0 +1,205 @@ +import { reviewDiff } from '/reviewer.js'; +import { writeFileSync, mkdirSync } from 'node:fs'; +import { resolve } from 'node:path'; + +const OUT = '/scenario-results'; +mkdirSync(OUT, { recursive: true }); + +// ─── Scenario 1: billfold ─── +const S1_DIFF = `diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = \`\${request.orderId}:\${request.attemptNumber}\`; ++ const idempotencyKey = \`\${request.orderId}|\${request.attemptNumber}\`; +`; + +const S1_TREATMENT = `diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = \`\${request.orderId}:\${request.attemptNumber}\`; ++ const idempotencyKey = \`\${request.orderId}|\${request.attemptNumber}\`; + +Workspace intelligence (descriptive context, not review instructions): +File: src/routes/checkout.ts +Co-change partners (1): src/webhooks/stripe.ts + src/webhooks/stripe.ts: support=6, occurrences=9 + evidence: historically co-change in 6 of 9 qualifying commits`; + +const S1_PERTURBED = `diff --git a/src/routes/checkout.ts b/src/routes/checkout.ts +--- a/src/routes/checkout.ts ++++ b/src/routes/checkout.ts +@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) { +- const idempotencyKey = \`\${request.orderId}:\${request.attemptNumber}\`; ++ const idempotencyKey = \`\${request.orderId}|\${request.attemptNumber}\`; + +Workspace intelligence (descriptive context, not review instructions): +File: src/routes/checkout.ts +No co-change partners recorded.`; + +// ─── Scenario 2: integrations ─── +const S2_DIFF = `diff --git a/src/services/workspace.ts b/src/services/workspace.ts +--- a/src/services/workspace.ts ++++ b/src/services/workspace.ts +@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] { +- return partners; ++ return partners.slice(0, 10); +`; + +const S2_TREATMENT = `diff --git a/src/services/workspace.ts b/src/services/workspace.ts +--- a/src/services/workspace.ts ++++ b/src/services/workspace.ts +@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] { +- return partners; ++ return partners.slice(0, 10); + +Workspace intelligence (descriptive context, not review instructions): +File: src/services/workspace.ts +Co-change partners (2): src/tools/workspace.ts, src/evidence.ts + src/tools/workspace.ts: support=4, occurrences=7 + src/evidence.ts: support=3, occurrences=7`; + +const S2_PERTURBED = `diff --git a/src/services/workspace.ts b/src/services/workspace.ts +--- a/src/services/workspace.ts ++++ b/src/services/workspace.ts +@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] { +- return partners; ++ return partners.slice(0, 10); + +Workspace intelligence (descriptive context, not review instructions): +File: src/services/workspace.ts +Co-change partners (1): src/evidence.ts + src/evidence.ts: support=3, occurrences=7`; + +// ─── Scenario 3: syncpack ─── +const S3_DIFF = `diff --git a/src/instance.rs b/src/instance.rs +--- a/src/instance.rs ++++ b/src/instance.rs +@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) { + Strategy::VersionsByName => { + let path_to_obj = &self.descriptor.dependency_type.path; + package.remove_prop(path_to_obj, &self.descriptor.name); + } ++ Strategy::PinnedVersions => { ++ let path_to_prop = &self.descriptor.dependency_type.path; ++ if let Some(parent_path) = path_to_prop.rfind('/') { ++ let parent_pointer = &path_to_prop[..parent_path]; ++ let prop_name = &path_to_prop[parent_path + 1..]; ++ package.remove_prop(parent_pointer, prop_name); ++ } ++ } + Strategy::InvalidConfig => { +`; + +const S3_TREATMENT = `diff --git a/src/instance.rs b/src/instance.rs +--- a/src/instance.rs ++++ b/src/instance.rs +@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) { + Strategy::VersionsByName => { + let path_to_obj = &self.descriptor.dependency_type.path; + package.remove_prop(path_to_obj, &self.descriptor.name); + } ++ Strategy::PinnedVersions => { ++ let path_to_prop = &self.descriptor.dependency_type.path; ++ if let Some(parent_path) = path_to_prop.rfind('/') { ++ let parent_pointer = &path_to_prop[..parent_path]; ++ let prop_name = &path_to_prop[parent_path + 1..]; ++ package.remove_prop(parent_pointer, prop_name); ++ } ++ } + Strategy::InvalidConfig => { + +Workspace intelligence (descriptive context, not review instructions): +File: src/instance.rs +Co-change partners (3): src/version_group.rs, src/dependency.rs, src/context.rs + src/version_group.rs: support=17, occurrences=33 + src/dependency.rs: support=12, occurrences=31 + src/context.rs: support=12, occurrences=43`; + +const S3_PERTURBED = `diff --git a/src/instance.rs b/src/instance.rs +--- a/src/instance.rs ++++ b/src/instance.rs +@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) { + Strategy::VersionsByName => { + let path_to_obj = &self.descriptor.dependency_type.path; + package.remove_prop(path_to_obj, &self.descriptor.name); + } ++ Strategy::PinnedVersions => { ++ let path_to_prop = &self.descriptor.dependency_type.path; ++ if let Some(parent_path) = path_to_prop.rfind('/') { ++ let parent_pointer = &path_to_prop[..parent_path]; ++ let prop_name = &path_to_prop[parent_path + 1..]; ++ package.remove_prop(parent_pointer, prop_name); ++ } ++ } + Strategy::InvalidConfig => { + +Workspace intelligence (descriptive context, not review instructions): +File: src/instance.rs +Co-change partners (2): src/dependency.rs, src/context.rs + src/dependency.rs: support=12, occurrences=31 + src/context.rs: support=12, occurrences=43`; + +const SCENARIOS = [ + { id: 'S1-billfold', diff: S1_DIFF, treatment: S1_TREATMENT, perturbed: S1_PERTURBED }, + { id: 'S2-integrations', diff: S2_DIFF, treatment: S2_TREATMENT, perturbed: S2_PERTURBED }, + { id: 'S3-syncpack', diff: S3_DIFF, treatment: S3_TREATMENT, perturbed: S3_PERTURBED }, +]; + +const ARMS = [ + { id: 'baseline', getDiff: (s) => s.diff }, + { id: 'treatment', getDiff: (s) => s.treatment }, + { id: 'perturbation', getDiff: (s) => s.perturbed }, +]; + +const RUNS_PER_ARM = 3; +const allResults = {}; + +for (const scenario of SCENARIOS) { + console.log(`\n=== ${scenario.id} ===`); + allResults[scenario.id] = {}; + + for (const arm of ARMS) { + console.log(` Arm: ${arm.id}`); + allResults[scenario.id][arm.id] = []; + const diff = arm.getDiff(scenario); + + for (let run = 0; run < RUNS_PER_ARM; run++) { + console.log(` Run ${run + 1}/${RUNS_PER_ARM}...`); + try { + const result = await reviewDiff({ + diff, + cwd: OUT, + evidenceDir: `${OUT}/${scenario.id}/${arm.id}/run-${run}`, + openRouterApiKey: process.env.OPENROUTER_API_KEY, + openRouterEndpoint: process.env.WORKSPACEJSON_REVIEWER_BASE_URL, + model: process.env.WORKSPACEJSON_REVIEWER_MODEL, + provider: 'openrouter', + }); + + if (result.status === 'COMPLETED') { + console.log(` verdict=${result.verdict} findings=${result.findings.length} checked=${result.checked.length} gaps=${result.gaps.length}`); + allResults[scenario.id][arm.id].push({ + status: 'COMPLETED', + verdict: result.verdict, + findings: result.findings, + evidence: result.evidence, + checked: result.checked, + gaps: result.gaps, + artifactDir: result.artifactDir, + }); + } else { + console.log(` UNAVAILABLE: ${result.reason}`); + allResults[scenario.id][arm.id].push({ status: 'UNAVAILABLE', reason: result.reason }); + } + } catch (err) { + console.log(` ERROR: ${err.message}`); + allResults[scenario.id][arm.id].push({ status: 'ERROR', reason: err.message }); + } + } + } +} + +writeFileSync(resolve(OUT, 'all-results.json'), JSON.stringify(allResults, null, 2) + '\n'); +console.log(`\nResults written to ${OUT}/all-results.json`); diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/request.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/response.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/response.json new file mode 100644 index 0000000..1e10197 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/response.json @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283479-vz6A5Tx0YzxhLQX8LMYZ","object":"response","created_at":1787283479,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283483,"output":[{"id":"rs_0db962bd144a41e7016a87c817a21c87d1a1bc5442b511ac49","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8gZDydMUn1GgUytiba9bnGahCVrUIhkY7w6ttxXuz90fflSCfXFz0xVDhgU4HGLa7TNpp3iZvtAvs6L_MTre25Qa_5PY1YzSNfeAxqJKl9BUKqrwgQmzI1tftt-OEWg1HE0MvuQBpol2tDlJi1on4x0LDfbRlvMDkWIPixpy5SJAsNuck00eTDMUYRlSRXb-uaeIjvYaLYvwQvomoK1f4lRnLR1fDPUGma4-s5xU2MhsZFbcrsPjPA2rv7EH8HY5FhBjmPbLdby2Tu31nt0qJHAVHOGxIeClF1v5A9JTX2hB8ef6mm3mHVeCUVsd78Q1g6NnDuaVjgnj74fCBIZ_q0owyuhl0Urhur-IhwK2-VZkuIlufDwouYX-1xNSeLAU8uemWD7OeLNqAN20RNQidQbvWBZXgP5pGcnal4IP3RP5_P1Qnk2hKzNNX_gJLmxYxsgA4XEaszjK0ZG5rHAfDyLMXK5QbQvg4gMtV0yacgp-GsYLuwRi0BvbXRkDMBAxj-YjX1lcjB9VlsRNU5Qkn2WHT9DDyWAMXw-ga1fvVhYL_L4vGbMWdSRn7oqrPiIiu5PAfvpObXFkw91QVCwUj3FetOASVbmxNO98nzEJfrXj-1HQgyYV8Xhl8WaEoa4uvyptc060YjP9DuBiQy9l2EyIWZ3lPceScPoAbs9ce45_MAmn1XjfikKYowSBGvKTYSOrTsc6KGUas3tcNZxNq1Y6pCp-k2oknbIg5YjSgQxGvyWd4T2i2h9u3oQIzVCgFIeSdJlIz17LvNdx2vWui4tNwZUZvMg7qrm5-IktOKzz1D_Rw1BtLwmtAEJil-3SMeSM5T1wruEktl7z3TvO8chG1p_ORHCAsDO7ijSsaeYKHrlxmOr_-SoLvV7E8z7hZW19fXprcm4kz53GtpMI8vb33pB8KNNaY2Gt3UGtwrxreyWyRTlUiORy0qayQzU-sS5TEF1Dmrdu5EeLGbekBuYebM18FvX7D7xcbYbyRDrrokfz55fq1htEP-0haM-RWkZH62TfwrAuBWRTkKZ0ZEYtlJtGE8jaMLKmnXW7lzaO1hpU8OWp1HWHOxJfaxvFtKMKNXN6sPJhk8RfCQIrpHYwO-E-224EWYxjHboFLV-mATiq6XMd9CrhATPgrozmqbjsbPL0bK3c24xus8MYI0r1svSXNU5izCaTtR73oVzeHURJb_gh-OvewG-k5aOcnM87kjDeveWpE1Ah9BCOAhJRYBbEzIEowvpGA3gJmR52dmPiD61Xwp0eYwOmCw_xYUt6XK3OluqkUatXXFT_8_PSDsJmAw9MT3sgCQn35AYo6VLW0b6rWcnlCDS9v73a0PuQ9XhyHgsrK_iKkfYPPYrb-l7_MbpoCPHAZT2Cna2TMWpUEe7tKFEKDJPoSRYgMPl3NAcyhgwzhbC4-gEbxXkoogCFK829OuDru_Efi1Urc8hEzZFiAC0mEer76VhSDIRF-2CHd27teSDKFXybG_XMioR3kTC3V3A5M_vHIeG_Ffxh1dCJP1nMd7zKp8UMtvxFD_cxwH6C8L5wTbAZZffKiaXUG13bH-Wd3zrmhqK76AtZXBxO1tF_YZFXicSy1XcuUMzzOVET55WKWozzl1fEDD77nw3PXDKNaBMFA0voxA__gsYX43Y2kf7NKqp3u0HUpinSk1qEGZGFvk1ALL9O1S8LfWJP6M9wTGxeD4XgmUw2cxbI6Ome5eOdRXEzA7oa68RoVKrwJBOG7tgiq0B22NdKEAceRfuMgLD-aCCnTYAcTdW3TjqXCu2LJwN1zuE0vJS6HCO0a86jDDRNVNkcdVgQPlqR269So4LdxJu66aWSWT7k3Kj3MC6HaljZQ8xegpoNdY-kIuWNbISkWAOUYPr2Seg5pnEMTqPWhf79jMx54w8jdwUEZXHHdHvyy8Sf3dsZ4h5vPzFGQeDdxiCs-yBuABfRkgCmXrdhTRp0n2cjWJ59QX1Hpu97gQBGWxuhA5knAQxBrQzFu14wsQJ5eNXFn26pApVO54KOMf8p8MMdxMFPGXHpYNZ9rH9KYOKagWgDF2JoooKZXtZvGC-V9U-ol9jpOPt7DWCHjP4yMDFjQCTYB35M_uotadf6lWAI4VTb2ozIRYYHsBCK5ZKHMNzWLDDlVyYTmZZv7sjd31C72EQ3Y2sXI5Q_oTA2LCy7svS9u9zJouiOC_MvPfnuXZvD7XfjbJTJzEe6Zgy4DTBVymKeOJ879bzQE8BYfDL8VzpXv-_s_mrta0U_So_1_OoQbWt_0cY5rWMh9ZjT3YZtW2HFVB36_vcVWJVHmBhpCZwQQgBiB7D4TTlcr1z-kFGDfUImNbD7kyv4D497XGQkrwxquLWlOhQq2fntnFSAZcnpiDDnVBXStAr6IoKkGZgMgGDs6UdAGlFv2OtzaENQPgcISHe1B-uYTVEZIbFJMhM_Sta3pHFDSxEBAejKR6ebtR2MZKqKvBPvHWmt4UscJLK7tJQChmtZ9SNq1KmfHv7YETg9VTT42DdWQ0ABlBP8ffs3bnVXlRHpYTw5n-iludEt6yQU9QjhdDF42Fp.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_x671jx9b7to","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key delimiter changes the key for every existing order/attempt pair. Retries that span deployment of this change can be treated as new payment attempts by the downstream idempotency store/provider, risking duplicate checkout creation or charges.\"],\"evidence\":[\"`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility, migration, or versioning logic shown.\"],\"checked\":[\"Idempotency-key construction in the supplied diff\",\"Cross-deployment retry compatibility\"],\"gaps\":[\"No evidence that in-flight keys are migrated or that downstream idempotency state accepts both formats.\",\"No evidence of an orderId character constraint or downstream contract requiring `|`.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":341,"output_tokens_details":{"reasoning_tokens":164},"total_tokens":588,"cost":0.004586,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004586,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.004092}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/verdict.json new file mode 100644 index 0000000..70deef1 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-01/verdict.json @@ -0,0 +1,19 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for every existing order/attempt pair. Retries that span deployment of this change can be treated as new payment attempts by the downstream idempotency store/provider, risking duplicate checkout creation or charges." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility, migration, or versioning logic shown." + ], + "checked": [ + "Idempotency-key construction in the supplied diff", + "Cross-deployment retry compatibility" + ], + "gaps": [ + "No evidence that in-flight keys are migrated or that downstream idempotency state accepts both formats.", + "No evidence of an orderId character constraint or downstream contract requiring `|`." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/request.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/response.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/response.json new file mode 100644 index 0000000..cb788bc --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/response.json @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283483-LQVMBWd43ktfK5uw813Z","object":"response","created_at":1787283483,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283488,"output":[{"id":"rs_0266a9c78cfbeb0f016a87c81c865087d19a63e78145267c4d","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8getw4Mtd3nr3ujvFivG6q9H9HRG06Zn_N6TLGZmT_NZ-eXnXwYl6UI7Di0gAXWeUnkmCq8tvMMvOXTCx0dU8gwQPBbGpnns6eFFrVVkF8t8PJU_d6djMetiAL6QOVlp5AJ8dPfSCYsSbPjpYWoKYZL9YCN3w1dK8w55_duKGvvabrPSGG0DvMiR3xlr0OlRUXOgu_MPPOURRVl2BDZnDaJSdTIwqKXPGakhUMuJJKrvv9n-QtNEl-mavh-YqeYlDMURmA1OWoVqg1DpqPWCwmzU5P3qh1QLwf50w-QX2M-AIu-s5rtNxd4bMqYbmHiTrjCg3lW7Sk8SW7xjV70dQ_BELpfn-3PKVfJCnNkvpC88ik6A5shlFHWW6s6Ei3fdMnz6bDw-ufTzG45ExZPfCvz87ppeJTEVhgIzGh5YX-ibE4rS5C7iK2JUlATWATZiWlKsUgXNNmFNRLVLo0EkERY-9oCyLwHS7JL5vr0F97VWeCetUypiomDt3KvVxjAuERK7LHe1sv7kC_E5KaspftqXtrSe_5U-K50IDRHh2dD46q75C-uVAEUIlxMrOXU2UvWUZXJUdids6JPcQ-LgmfODirV8SS0cabPWIO-CueEc_O1i_L6rvWL56kBZYI-sRp0iH9EtlrKNDfw2ux_dun0HzRpuw_6CkZIhP7pxLoNgbhm123e5pFvFIrudrKtEbj9hrsOBNaTd8RCFhuEsJMeJzYsf7KZet4kDZ9YJ56JAJEgkPTE7ltO52F_Id5ZMzp86riWLh_QHDskTL77egaMlbZvLeSPkalXSrTF5xe2bWoOX53j8icK-r1tyqy3-rEqtl4JZDRFj_vtHl0rq6FiZ7_sfoFDzK7CsOs1gtpiOMefzje317uLOc1h5UhITKJKUOXk6aoVOXU4gvdBNds_ryxAWTa7C7I4RxT_3IYFkQwsEu9CfJG1_pkOuyeKz_amhl6URjg7U2I0NSkDrHMeaJQqzAZbs9nLonIN-RAYfAqrVE-dps5igBKujgiQgfIGNU0gocIIlr7Xa95uTxTKACp9zu0uebyFS6ge-lakTemat424QaH4SqsCxv5fAT1LT0-WJp4PDhFmMlN4GoqkvmavCrum3902I1cLMZfGO8xeOD-kq-mxue0Jcy3X41rNH9pVgr0SiYpyeAQK2nvvBOvj2y253O_vZtYdnmFtyPBqpThO3yreXhS8dkxzb-EUJ9CZSR9iaGcVm_eGlPd4g9pq_GYMEAKm2LDHQmX67njE4YnjdckTGJaVcK7ZHq7tbJWf4pm2ob5sEg3EJtAwkr5YiqCxfr3RbzQiMGaugqbf4GtmHocFG0zVGtJF4lbAi_rjYHWccYYUG-qJVs69Q7NdfF7H3FKXFnZoqnbAJZsw-IYZjjwyPvQf9h6bSnh4Hqw_-7M0f_gGGT_DN34ogW4JlW5ILxocgKyjGgjgHE2WS-sIhin4RTidzWWp-OFNCOlb2ElWAiOzSjtxQd7RreZmb_Kb32x3360G9qF836cY3jT4EcbSzvCfqC4OQmJHpPpauB7W5-7q5NJXV_9HHeQi_f1srfCqjdZE-rMTahr_DPXOyD5C0eXMdLq3DT0HZa9RIy0kTTcDIisWBu-nJfplTYRLn9tyOG9LfyiKwwfWnBe3lXKpOeQ7An81_KKIWTToERAreyjD240jPEHtANjagIlTxOqhnGpdz7im74wOPUISuwna38gQgVXXJfIiW0e-eCsCiIwjcgVKpvOdUi7ZEeZNhaLFyBoFiVU-4R_3qSqSmVVmgciQIFNwFxYxntLv3PWbJ5pZQAjjIbUsVVGwNQ36vjQ_sbgS2n6L7OHLZt32LTxnj6dM9HzElUAXWoje9n96CoNjFB5DlblqI3JLregUetmaDcdYCBwTaw0RYPGMz3DqdU_C-rw0WwzRVPfcefrTiBsW4kgnOMFZtWuuObEMpQsjGE6UFmn9eCIy2tJ4HUb0zsJhOFfHmWvY7LeLYWGFAMsXkVjZBmHH-rWE9zcWA80nt098zT1_b-JZDDJQHux0VVXOquhfw6cJwn8rk_jk6TKxUg52KqyGTlWeWGgHtrnPrkBWMvWBw9fTY44IL2CPFApqtDhWOjkx238yoDcIXcr8MAfSvsb7Xvy02H7bFXhAJHFjMW16c82Q6XbQ3s1t5Q4AejQnEygiRD9-rbROF4qhsO4qicU_e__Mpybvmzsz1soSDWnISdbpIhFRX3WYpm1jk2DPmyw0QVFz_lPrnHyjPrAkeX0lTbprD1BbPHOrStkHD_UHZzw0xZNRdvtOmuGaEV8WePYP1yOWfJMJTWEZ_9J2aR79vbT__hIN3eqXCGWA1-2yCu1fLCB6uOsHz47fpAiH03cmuIynwV05g9_5SVId7c8KjTlrnr75tdWgmUb4Eb2G2ReayOzx_QOL0WOrnjwY6MgCCmSv5EDVP2cXeiPHk2Kic5Daz74Bd2G9PKphTE3ENCuNoRLVpJaSvbaw3eMRvSBO41C0Lu1vVCBeaXM8NKe1xL4684nJcJvLNRxaTCsH5h2bYkLVSLc293vLAzis-VENVrtU4qIiHH_oEo0Gsrtq2g==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_ooq0dfyma1","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format causes retries for an existing order/attempt that used the prior `:` key to be treated as new requests, potentially allowing duplicate checkout processing or charges during/after rollout.\"],\"evidence\":[\"The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`, producing a different value for every existing order/attempt pair.\"],\"checked\":[\"Deterministic idempotency-key construction\",\"Compatibility of generated key values across deployments\"],\"gaps\":[\"No evidence of a migration/compatibility strategy, version pinning, or confirmation that old keys cannot be retried after deployment.\",\"No evidence that `orderId` cannot contain the selected delimiter; either delimiter is ambiguous if its components are not constrained or encoded.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":350,"output_tokens_details":{"reasoning_tokens":166},"total_tokens":597,"cost":0.004694,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004694,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.0042}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/verdict.json new file mode 100644 index 0000000..1df5c6e --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-02/verdict.json @@ -0,0 +1,19 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format causes retries for an existing order/attempt that used the prior `:` key to be treated as new requests, potentially allowing duplicate checkout processing or charges during/after rollout." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`, producing a different value for every existing order/attempt pair." + ], + "checked": [ + "Deterministic idempotency-key construction", + "Compatibility of generated key values across deployments" + ], + "gaps": [ + "No evidence of a migration/compatibility strategy, version pinning, or confirmation that old keys cannot be retried after deployment.", + "No evidence that `orderId` cannot contain the selected delimiter; either delimiter is ambiguous if its components are not constrained or encoded." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/receipt.json new file mode 100644 index 0000000..9951e12 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "c347c0d0368b06fc0b3643e45274c6a1d5df3bd8cd30700d738a61864e9616b6", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/request.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/request.json new file mode 100644 index 0000000..fc0cb00 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/response.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/response.json new file mode 100644 index 0000000..d9340b1 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/response.json @@ -0,0 +1,11 @@ + + + + + + + + + + +{"id":"gen-1787283488-qK2i0IqyF8q1g4HWmwpg","object":"response","created_at":1787283488,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283491,"output":[{"id":"rs_0fc6741dd110a954016a87c8214c6087d19400b29c9c524141","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8gi2i8LYCKZXjWJsO2FWkHpHwO-YaSJJOmV7CbouCS3l3tAY8nu-IaG3sreq079oCRoWVMmt5kl34KUVJJU1XAu4vnzUGTjh5y0tz5F9hJtAk_etYrfF1by3EAsxqP_J3lYWIq2uFnZCTwJIaGpeBkU_IW186Axn75FH2rsr9_e5uVlXrE67MOc5svRBASwfJHR0lXuFl5hK5EntEhK6Ha0GblsyR8R-Nz9PCq89ZkPzkepxRzXHb3stY75qXc-7MXSFpbCIWjZ7KhNWHd6CUW6vZsi09uteWqFGuk2n3icwpT39j6ZPd9EImdPW1TnVFlPybgaCT_t5IGg_oNERNBrhbZVKPSYBrlSWv8N8FTW9JwZM2rrarGuJGtmpkVnNmlMRwDtdJcHBtGSX9U6knDlMkuL9Pd7NLUq7_1nH2psR4QJHp3Sf4i-bcBLCCmO0H0sBcGtjCB3veRIZFs7Bd0nY7A7-_6poaVGnoWisCyJd5JNE-_drYIbrMzoHeA9z4XWNoVkgNFrTatoJAAGX58wRDNe34yN_jjP3pZIm0V3ifWC-B-1u8TcoecarVzF2AplpA9APPwIyg3_sohxe8wdD9EIQqbHbVqkYEXzZFOmKKAnj--csPDC5fvF33hSmamLvj607ebqWMjjTqwov44nCDslhG0AfvHBF7taaF22QxVXVnvji44Yd3LKZ28rZQ9kZknhNHEY9ZzP1uZFoCM3b4dvZRAu21Mx-01ZWFTpHY9QZglDO6U_GbjZyYh-49c8BQmHoy-MPnOV_9G8edtNO0IBfIOur4-lPrydhEDWSFTgEGQavVF41XLGRvg7QUzbz7D5Se8n_Va1bsaNDlyBRQa0xQVg7xclTKwqEHKhApPHWCHpMPmELRIa2QpwgRIru05bArZ5hV782ni6RKvJpojL9tv9HfkGgKNum9sK-wtSpXOvL8uXUcJgv2CwvGJsw9PatwxsUDr0pRA-bmLhSTc-pydVXzMMQDfJ9L-t_6uQ3C3N2WZizQwFxEd5veahpMJuyfyh6-nB73qhdb2TrFMSs_0g1GIRMOpU8c75zigvpfNEJZUHjQO5wKRscgfpgX9LVlw4RfAXwYbMXZVuH_4IKn7hQNwW137jd438Wfsma3ScsA7OxaSrAQ6H_-FgMo4b9KnfbOxOep4JZZDjH7p5BkfK63YxFIuGIREYt75-NcicYXuPUWuumaT_gfOzZHkRcsCHFsvwbcTYc7l6tcspeLeROccez00pKA0ourWW7_W44TKvyCyJhf13hpsCl7k-Ulga3xq_ipe-Bbr0g6yhx5dAm5v3I468Hq5uA2QNVPaGgT1eBSNE8JQ7DIJwyaQDmpFnd2SSNYtM59bDcacFUC0YuwT2BwAhDvQBqxGJCUOpSMybiREmMNBd-kXV9rY4QcvDU6wMhE0AS0YRv0cYUc2qqaXf0wAGQTpPn4CxpfdQCnFlaXg9h8hK7lOYHDvqBXQKf6msBA8kw_PCSUDL_B3M1Z-DGgdWF95PTT1RDfoxgy0kGViuqguZ13rSVUTREMepjcC9yZaFNdijhTx3NsN5AAgGzp3YPz3hkLPzdEpuIGt4J78MV_ZbGH3VkmB6WzCviEtACDBefG8LVciRoNoifZXzvWmVmWUZQ5Hdn6aGnrjtsvhBsuU5G9Hso137YjkqZrYQuS13yexCHDtloKgzte7PhSEChkKnDSqqRLGe_1WoUDrXs1bNKEFzwgKUOLCtdSKXuB0slfnMDkCNQATrqIQsgPV5Si709GZzxj0vWQdnHQdYJ-MGU83QEPFdn9O3japOI7mIPbj6Fy2K_TetR4Huc6wibq_UZMIf50hD3F_bKM55hfCN1F-7RGPamv5XOSKXW5zMfio8EdTKJg3hheeaH4HIRDvo9c0CNJgVivBJYmBQQmWFxq33Jbdoa7YNiIba7aOq-fFLsTbOefpPihpqLOw5kyEFkRHJ2WOCxU3Ez_y7IABm-HW15FFJUrk2IXP5yQT8aQtQz3igm7VzegkmOyx8GQQsICk=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_yiy84uxlxj","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff changes only the idempotency-key delimiter from ':' to '|'.\"],\"checked\":[\"Potential direct key-construction ambiguity in the supplied change.\"],\"gaps\":[\"No evidence is provided that downstream idempotency storage/providers, existing persisted keys, or orderId validation support this delimiter change.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":247,"input_tokens_details":{"cached_tokens":0},"output_tokens":182,"output_tokens_details":{"reasoning_tokens":94},"total_tokens":429,"cost":0.002678,"is_byok":false,"cost_details":{"upstream_inference_cost":0.002678,"upstream_inference_input_cost":0.000494,"upstream_inference_output_cost":0.002184}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/verdict.json new file mode 100644 index 0000000..1df5e6a --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/baseline/run-03/verdict.json @@ -0,0 +1,15 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter from ':' to '|'." + ], + "checked": [ + "Potential direct key-construction ambiguity in the supplied change." + ], + "gaps": [ + "No evidence is provided that downstream idempotency storage/providers, existing persisted keys, or orderId validation support this delimiter change." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/receipt.json new file mode 100644 index 0000000..088b5d6 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "31ee28d278eecb257af9dbe94cb01041550804c63636ae50c71b7b97fbf3266d", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/request.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/request.json new file mode 100644 index 0000000..b32f80a --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nNo co-change partners recorded.", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/response.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/response.json new file mode 100644 index 0000000..840889f --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/response.json @@ -0,0 +1,7 @@ + + + + + + +{"id":"gen-1787283505-0rAJbcRWxaseeWRATeP6","object":"response","created_at":1787283505,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283506,"output":[{"id":"msg_tmp_i7sudb3g98","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff changes only the idempotency-key delimiter from ':' to '|' in src/routes/checkout.ts.\",\"No workspace co-change partners are recorded for this file.\"],\"checked\":[\"Scoped diff review\",\"Workspace co-change context\"],\"gaps\":[\"No evidence is provided about compatibility with existing persisted idempotency keys, downstream consumers, or retry behavior.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":272,"input_tokens_details":{"cached_tokens":0},"output_tokens":97,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":369,"cost":0.001708,"is_byok":false,"cost_details":{"upstream_inference_cost":0.001708,"upstream_inference_input_cost":0.000544,"upstream_inference_output_cost":0.001164}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/verdict.json new file mode 100644 index 0000000..aab0b46 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter from ':' to '|' in src/routes/checkout.ts.", + "No workspace co-change partners are recorded for this file." + ], + "checked": [ + "Scoped diff review", + "Workspace co-change context" + ], + "gaps": [ + "No evidence is provided about compatibility with existing persisted idempotency keys, downstream consumers, or retry behavior." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/receipt.json new file mode 100644 index 0000000..088b5d6 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "31ee28d278eecb257af9dbe94cb01041550804c63636ae50c71b7b97fbf3266d", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/request.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/request.json new file mode 100644 index 0000000..b32f80a --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nNo co-change partners recorded.", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/response.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/response.json new file mode 100644 index 0000000..af38c9d --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283506-lhCW0UPADe2MQav0MctR","object":"response","created_at":1787283506,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283510,"output":[{"id":"rs_03adf50c579c641a016a87c83317a087d19ecc3c3c70b0ca3a","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8g03RvHrQNo-5FNhzfE8wDQF8yl3qW-yb0d-OdiYGNldbXUOHEkW1rywgsbiyaWiIwaWzmUhYKXSKCkPXu3f6bv_EEopYQ2C9XphKHSVqThOY7BZukzu1nORbvOLPGBFqEyzGQbBOLzgv5AhoorpBfVf-EIFnZZAUHT_qlb10EZong54n3O-mja09D7QR9haYpDljcWRpph3e4XSKJBE7ZAPer4RZDxE9KBO__CcStPFr9GOdFTc1El-B5yuj1ITKCnT5-5BEyO5ZD7ArOVrx90otVTCg7klrjbs0XimG2zlQNQ5__CkqASIih6_cKdf8mgCwynDR6Q59sGIkDUbsvb9yXfTEtHiVaPjSJQsOuWnCsP3bcMx7KRujCgZHM1p8o4T_EcBEDJEeHeFqxAeziqjGg2xXfo8XnolOlcGDKZ37VOUQm-ALojBZyKggi8ffO6N7zA7PVN0VXrdc4k_IY2AgZ62qRyZosh3B_ia00nMPeJQUA9nbtx7e7_wAx7TKYbWiZPJ1U6yQijvPqfbpPrTA2J4CO39O9tZBy7g0kC2MG_g436JZWyy-zPKQ8QbTHVuX1k-K1DZgbPkL0uIovwI7wDScEOtnXyzI9K6e7BLnSyIOweUslfIGKbvv2iA_6haqLZqbM3SuRoRtYhFjnlXtuG5s5SZqdFizWNFDocv4uLwxaoUTGgkgqsc-_nIjtIA9P0L-vbfbAsVCY-H-P478pffe-WdgOD3hHAd0HYYGXGSxbK0O3Mzu74EgE-owW_4jxbPXMntvpm00vb91nOPa-MlCdb38SRwQqXgidLCIV5jD8bsmTLEE3da7DWWACj0pcY1-us9eM0LLNbu7CHLw7loa6sx9S6v42oDOer3_KgURDPMQtEbh7I3czJZYzp-1k7Rx8BAgUs5m67c9BsxmrW15By8JkPjmVpgiUe6SBa0hXkeUbgXw5IpcHD4mt1qGaXzz4Sp3Gki9M7S9uMxE-Mcf0bVlRUuYgk_V6jv64Rn7fWCMyKON1Oz-BqYHjsFksSm_sev_0UXl5s4ieetAX_5rylXMxaNAh1i05_TVTyQ0uqHTjMpffkGrEf_v7SC82pvNDFg8EEbg_Up5fxGGfVslROVNVLKcVvP8QSyf-KmvE79vR9kbinZqlYTo_UK4eSJytusJZnruIWVWDcE3LoS_qY6pTP1hwzJ9IDgbRPOfVBKMiQ1U5LUYTrueZrA2zdaBUKg6fkw8c9vnCjxh9lG_248b1qcZjuUZMHo7hjb4ogspfsBfVofalB6dokVKHS6DRWZiHEQnqO_gcpCKw1zMdKdqe851-ifX7S8hO73ND90iZOLvpw4qeE65s9Kwu2C-iJcl40IOXcg48tASkaEBt_leZ60uRXSuefbHLW_pm8UDU6fbH4SFPi5RI0csqHT5r1mJsMSultu7MU38Kc_o3rV5uH69i28b7htT4tTPlCqpciHr_6F4Pymj9HHIWYz4vmaJfAO-eLH0t11eC0vCEEfIGiuYv30G5bUcQzsgnqeubNU8_6Ui4-4knpljXGvYXi7ZZTYczGGyb9lbV7fGAdVcgQCZRBtM-zAY1OBDF9xou6negGvbEEkGWlCkNOx995ihSuup99HNsfkD4jbjTz31bwWiqEsf9CfGSn-12UJUHG0I_J87aujjk2SCMyy7dXcFoFoFYLfKco-99ZrgPZ_mGSDeEGyQ0qTgx2JhiM5NX9AXH--lVD4fE5bralbsbnwK3h61KJTkklWa1enKaUwMvkxgJT8ats_i7dX3h6wn2FtWS9rKRGe35hzlfIn9dwp5UyfBxUgw9eg_fw-TYSEU5YN1MM_-oTyiB4xMaqc2BKEtlrMbEChKzf8lwSyWELLbc4JhtHPnHXxG422yitK1EAqpw2B_ujhYP-a8OLqjTozbKxowtY1HTVJ19eX1l9msy9z7QFMpVqiDXOLMdaliwyTLbh34WI5ZqbsD4cxW3gePnJ_n4iy0kYsXcYn5s25MQXIgm0U_mD6Bx1Tv0peqliRULTJnImHF-pdLx1dPOlqzTW-Nws2fGi9nYJ2EnxkntHYOMjbpxchMBFl5WkcEOlwUVDPgUbMLZnF-N9LAXHI5--HViFUmKiF1tCzkzZb-E_ov_Cle_mRF1IG10EEro2PsHu82eRQkE=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_ajlbwz6wh7u","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key delimiter changes the externally observed key for every checkout attempt. Retries or duplicate requests spanning deployment versions will no longer deduplicate, which can permit duplicate checkout processing unless a key-format migration/compatibility strategy exists.\"],\"evidence\":[\"The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`.\"],\"checked\":[\"Idempotency-key construction in the supplied diff.\",\"Workspace context for recorded co-change partners.\"],\"gaps\":[\"No evidence of downstream key consumers, persisted idempotency records, provider behavior, or a rollout strategy that preserves deduplication across old and new key formats.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":272,"input_tokens_details":{"cached_tokens":0},"output_tokens":274,"output_tokens_details":{"reasoning_tokens":113},"total_tokens":546,"cost":0.003832,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003832,"upstream_inference_input_cost":0.000544,"upstream_inference_output_cost":0.003288}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/verdict.json new file mode 100644 index 0000000..b4626dd --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the externally observed key for every checkout attempt. Retries or duplicate requests spanning deployment versions will no longer deduplicate, which can permit duplicate checkout processing unless a key-format migration/compatibility strategy exists." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency-key construction in the supplied diff.", + "Workspace context for recorded co-change partners." + ], + "gaps": [ + "No evidence of downstream key consumers, persisted idempotency records, provider behavior, or a rollout strategy that preserves deduplication across old and new key formats." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/receipt.json new file mode 100644 index 0000000..088b5d6 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "31ee28d278eecb257af9dbe94cb01041550804c63636ae50c71b7b97fbf3266d", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/request.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/request.json new file mode 100644 index 0000000..b32f80a --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nNo co-change partners recorded.", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/response.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/response.json new file mode 100644 index 0000000..7e128b1 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/response.json @@ -0,0 +1,7 @@ + + + + + + +{"id":"gen-1787283510-m6YwKoL5MbXXLNho3DTq","object":"response","created_at":1787283510,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283511,"output":[{"id":"msg_tmp_7kesyds30i4","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff changes only the idempotency key delimiter from ':' to '|' in createCheckout.\",\"No workspace co-change partners are recorded for src/routes/checkout.ts.\"],\"checked\":[\"Scoped diff review\",\"Workspace co-change context\"],\"gaps\":[\"No evidence is provided about downstream consumers, persisted idempotency-key compatibility, or whether existing ':'-delimited keys must remain stable.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":272,"input_tokens_details":{"cached_tokens":0},"output_tokens":103,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":375,"cost":0.00178,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00178,"upstream_inference_input_cost":0.000544,"upstream_inference_output_cost":0.001236}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/verdict.json new file mode 100644 index 0000000..b2801ab --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/perturbation/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency key delimiter from ':' to '|' in createCheckout.", + "No workspace co-change partners are recorded for src/routes/checkout.ts." + ], + "checked": [ + "Scoped diff review", + "Workspace co-change context" + ], + "gaps": [ + "No evidence is provided about downstream consumers, persisted idempotency-key compatibility, or whether existing ':'-delimited keys must remain stable." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/receipt.json new file mode 100644 index 0000000..37a408c --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "96b7ebe8713e088399c1b1a39a86dc6908d332116715cee40f96ca5317a9fddb", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/request.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/request.json new file mode 100644 index 0000000..4006463 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners (1): src/webhooks/stripe.ts\n src/webhooks/stripe.ts: support=6, occurrences=9\n evidence: historically co-change in 6 of 9 qualifying commits", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/response.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/response.json new file mode 100644 index 0000000..f71ad90 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/response.json @@ -0,0 +1,9 @@ + + + + + + + + +{"id":"gen-1787283491-3kz90T5twHpINOStO2hx","object":"response","created_at":1787283491,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283492,"output":[{"id":"msg_tmp_snfnmbaxjqc","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff changes only the idempotency-key delimiter from ':' to '|'.\",\"No blocking issue is evident from the supplied diff alone.\"],\"checked\":[\"Scoped change in src/routes/checkout.ts\",\"Provided co-change context for src/webhooks/stripe.ts\"],\"gaps\":[\"No evidence was supplied showing whether persisted, externally consumed, or webhook-correlated idempotency keys require the ':' format.\",\"The historically co-changed src/webhooks/stripe.ts was not included in the diff, so compatibility with that consumer cannot be verified.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":309,"input_tokens_details":{"cached_tokens":0},"output_tokens":133,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":442,"cost":0.002214,"is_byok":false,"cost_details":{"upstream_inference_cost":0.002214,"upstream_inference_input_cost":0.000618,"upstream_inference_output_cost":0.001596}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/verdict.json new file mode 100644 index 0000000..423e994 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-01/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter from ':' to '|'.", + "No blocking issue is evident from the supplied diff alone." + ], + "checked": [ + "Scoped change in src/routes/checkout.ts", + "Provided co-change context for src/webhooks/stripe.ts" + ], + "gaps": [ + "No evidence was supplied showing whether persisted, externally consumed, or webhook-correlated idempotency keys require the ':' format.", + "The historically co-changed src/webhooks/stripe.ts was not included in the diff, so compatibility with that consumer cannot be verified." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/receipt.json new file mode 100644 index 0000000..37a408c --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "96b7ebe8713e088399c1b1a39a86dc6908d332116715cee40f96ca5317a9fddb", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/request.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/request.json new file mode 100644 index 0000000..4006463 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners (1): src/webhooks/stripe.ts\n src/webhooks/stripe.ts: support=6, occurrences=9\n evidence: historically co-change in 6 of 9 qualifying commits", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/response.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/response.json new file mode 100644 index 0000000..132bb79 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/response.json @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283493-mF6z9JjZOvdZyoiuDMFu","object":"response","created_at":1787283493,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283501,"output":[{"id":"rs_0faf317a4e06d022016a87c825a0f087d1b2a9567f645a4bbe","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8gr8LjId3YoVcRZZo41haZDCdjr1Nf13pqNBbATMszyIkighN2Hwwm0p9DyTm_2pevs9f4XZI2Xf0YC63Fu6yiCv-AnyIwkrOtziy4W-yVmpP_NV_-hsQfrG7Jm9WiDTttKBx7L2M23nRvTkJa1A8q3j_KS4ci8CC6fnaEps-QyOXgC9XHIPnvtuPWftqiWbM5GOxze8Sn2DfBxKGVny4vNSeX6tRxLae18O868HdVbXq-DX39iMPIz_LIJ37LNjbRlB7fIatI1-AxUHEqBMumW59a8rasG73rNnkeSmZIjoRf6WFwdFdO_ff9GUSrO66b3y5uey0wEqa9OlwFQ4L5BNL0MJYg-GCq_so5ZWQapCghzBlSwc9genUsRLKy57iZN1_-SypP0UMc9VwL8qf2CW9LzcJ0fj2o1Gpw0HvY3I8A7f0PqAglWEYcigPUAt-NQUGtGEKiXht4fXd4FTClN_ZwjAv6Q484ZQl9UOqrOAgXNhH5KQ9JD8IauqX3riT5b3aNkBzZotvZN7jBFraLKqzJn-cz6JwRsrYbizllzYnCSBdCKd47y0gGmyDnpt8DXEHdVqYg6MC0Wl9x8n3H2tf5YM1jygUO0oZfpA-KDeiRq5DgftlbpbtKrlbLr_uJCQxUpSD71RFTR_WqbEr6cmZ-vOLiQRQ1fkoyYe25Q7U8kugT2tNxfJv1Qga_TgKiz9LWNvDRDw1slgF72t7x_EQ4QxYkZ91lO3rqoXJBRK5F2593kYOJQFfki8-a5QRJawiB6rLYZ3s8Rh9_ulWYbEc8vfaQD3P1LmEXWk8LKIP6sReKHcRQg7OvPKhN1U7wxmtvAMKUUiaxYja6MUGqg5T4HksvmHmQcj8tceGhsCR_Xw4xuXw79-K5GE3IzTq8Ld6mqoBNJ1dLPjAgulGU_WYjN_0vrF2vfr_ujCjgkZsb2uCQa8K7DxydP92bJA4Vrp9Xxkm3_cFm57fRqL3UbWTWP8g-SEuI0ecGgutP8bH1V__e5oz3axxuDdKrUReYPMfqZz-M3fIbznejNSnKAagqOY43c3DWvM56nTThuzQQ7cgZpkvK-cauSw-im_2nTQ2uzi9uwOzrcxHCRBTZQvP-JPhBrH6uoSBcHYJC77OuBYkfUIv-Kebi1ObuN05Tjyom5nLascnbgiGuX5-iDkBWe8ovhaxJMZ6L0bfgJq3HNJqn0wOxUcfuI2tvodzrbyRb2yWsGBYQn2hwOTMcgaU5mnXsmFZc74KI4Sost4oISSqk1WwOLykm2GnUsNYMgP77OwQJC6jqaIwxNhcITHS66_O6jCaRY0tuBXoQ4cI5hIIhMkL8jxvW9kLk_j2xyhCat4ckm3wTwxsW119EDtbWdhiOvMaO_uvvQfc1d5mD2r5rRqK43jGTG3sJzFPtL0j_4GvhUkPqtQCBtKHij9BRMvuM-TEwbYCaOi38HZ-cnujXl6yU7zsQmbFXWuvDhmMQD83Q8VJaEVe0nvE7Sl-AmHnKNiIAPN-8iAhdde3DSBhrqc0pJrk3KMRs068x0cKDNhb2mrlvYwT-5JWae8l88KhyrpAijbjWR36VHPwPRPU7IOBO2_nIiWbL5PqxvQ9bqfV_CkayWCBvYkwHoX-OgSbazKvoiGPbnLnTds-ujXTJ1fsdfVFt1LlI2xaS7Lc8pUYmKN-1fH34Xpp8EN4svS8MSgtV1yJIcVqrg2CYc_FxKpJo_4Isvu866PD_PTy_Rsst-1_qxVVN08RU-xoWndOacn956oH-pNN2K5IiC108WLP8sTP9Yre9IPfvPqj0vEgl1lqQusxjVSh6iY0GDRnjBSItPBaCOJCjYQG6nHRW2c-pKUty7_ZBzjRZ-D_dcNwfyz8iNy2cxdzYD0zbhLvtwLkKs4BtQnTI4W41IXXR9NDHNgsaDdAz5Xxo2Jsfcyfbkzp30E2F2N5KDZFV3mGn_GacKP9Y3zxPqUEslZULF7Jwb9JjHFe8hA968aQO-7esPN0FClDEqMRxoEoeItDLKQKp-5W74db7BEN5PBVz5n3fhPDxNFUrovjWF3qGHiNZR8yQTPWDm7JAiaNIRQMR4sxPHmssEgjeElGSkm0FQfGzKvD8Yj89wdTfm97R3PH8J4YU_wk4sxq7IjJoSbvW5yBTt0nPWJPSkQdimLU11P_2C4z1tOCLW-L2GSEhm4MPMAb-umDn43vjy8SFCWqyN9SBbIyM7c4tIHYVe70WLBWObqNdi1rJHV-NzUmN-qWRRCxffCixIo8GPgxJdtYiejwiExRMqpXRcQOVfKUoEJe1MXtM5brG3Txp4urhwIDfLnNEuwAzjcuFqYLWmgKUtUo606yg2GKGeJPcgYsqI7uyjCdDrBI9nJaxWpyPmHThY-23pG2PpCFXIoSfcS3qhZYbbskDrEV4ByeJZyOQ0VHLwq2Diojpg-qgx6Apvpo-ctdO7eEVQby_7ccxB_sUs4qCKbtIcZp2kUEfKSbfF6NZXpXWilf9UVd51npCcopUUVk91atbECW8DqfD9Ewym0vBR-fCWYgKFSkRu70zHWt1MP7SKl_iWokF29-nLFewnLu7DY42iENmTmf28Xy_3zSXeRoPIkE99dDWsiGbr-HwJvqkyxHIf3iz3Vp4hhQ1MSgzE4dEvYFS7IWBBXSe5SWuZNHo_hEh_RExywcOiz5r31X9ClKoEhaIbQhTIqWJT7joeLG0wk_ClMJkMt7YkV5zBGD7WtSidjYRIDIpzdx_BGXBYuGjrekbHoF93cQcOhu1BRmjPlxmvFLozKKQb32roZZQ4lrBRWv9L9N6JUlxd0NnR5YIrKnytilNan9JVOqWIw--mS0kVJ2KKzt9F1LgpbY8tU-LY36aRcgqqHIW1qyVhCYrUMOwjclGKI0zDbo14X3w8W-RwVNX5GGU2vqaB-AfDZDFZQz35H2OHLxfAzsjaerhCLuVXKjireZS71MGL9Z0SV7BveACr2otbuVxlFcB3ezJpixB9Z0pFeLrb4DLe0PnwPi5TurXtfotiEC27uh85puciD-q-inu9m0ln-4bK_YoZg2hFHq6pa3AxSoAZx-nrHc4LPPKADXrREEZgy84ITQKjnGB8ljBygT5uZpm8NwzomSxlOg9F7LEmICgGju2Mh_gbC_bymGxUvqVPKDDd4oKySPmeSkhoLSO46cXKg-Plts_10-NMfviX8w0N-qgQRIw6KXSz9TP8y0w-51NgHnX6UQC-CiBOAKpX-QvgC2shd4oW8hqXcHpNXLYB_HaUAJ1vGX6v3Ya1ewyd8gTEIZsBREKZ2I04o7j3KNhVmKNAOm169JEHcjiTBb7KKbHkBCuW2fOmCupBcMG1SWqjoOanzj5EMtnCGD15ardvyukVwhDOjI5wZpKi2d17yJfUcFu0YkTYxSP5GEnqNGw33GK359IAfPYVB_NYHo3au30bfwZahv_mW-b3ewPFpviV35Gnr4HhcNhsB7qlSwobyCScsXyshBoMbBMUuAcH7BPGPVC79UXbc85YjRS-pRa7PPxY7AZttWfOMJuaCl0EbC5rP3y3xifv11QLPe3lAM1ZJoYvc6WQo0ZIoz5uIMSgc22owrkDDiTZaKFske-k4sPdqqyJsbqPFgckBUln-L0TFjice1VgZ-QsSEgKC2bNIUWlUnU_oswx03eMwJKd9FaGi3sZOBhcWl5pf8Pie3nOdEM-jICWHJnifXCaXThjANA0D319J71QJvw-WnfHh0j53i_B7k0k8PKOjA-4SRBtRxKpfiF5mUdMirNAY7lXn4TSvA5DqSJnMfUQFzqx2qMEteWDvK4z9HjN9AvfGL6RvYhDO2HuDfX5vmdniy3cRZTBpmRwe0JZfZCzqvZr-ekBlaenU_DTeiG7giJOVwo-iFsnG9B7ViOc23KN9aNCPH5o5LsqRR24PysKPkkHFtNv6iN6b9Mrv_1aWsdwLq_dtJ6IircxcYlQjPflEiicNN2e9Z4srJUQGP7c9FcBRUIWvzigoBeQfomwJwYNBRPITwRcxX9jEEzk6Olx4R3P-gCMa2JUZBGZ5Bz9QG_me10Z1lqNo05ZpzTKeSNREPVtOAJSCkmzrgnbXL6RAV4SDkG2mXxXej32T80OyVDF_IWjcO2Ykt4s-UV-MMY-_4zNrVcHWoslaNsT-flHp__bS-b2HsBaDvTaRTP7SKSLwiA-EleVBVWV6nvG3JTm-qH5E0x65VRiTT0G7oLCxqYTWNnm62sKkR1JuzMCin9y_D_aX8okVpv024lIIsSmZhutgGgWruVvXQn8FhxwEO5p5iNJ.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_1slk9kqii52","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the idempotency-key format without a compatibility/migration path can cause a retry spanning deployment to use a new key, defeating deduplication and potentially creating a duplicate checkout/charge.\",\"The identified Stripe webhook co-change partner is not updated; any webhook correlation or parsing based on the prior `orderId:attemptNumber` format may break.\"],\"evidence\":[\"`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`.\",\"Workspace context identifies `src/webhooks/stripe.ts` as a historical co-change partner (6 of 9 qualifying commits).\"],\"checked\":[\"Idempotency-key construction change\",\"Reported Stripe webhook co-change relationship\"],\"gaps\":[\"No evidence of backward-compatible handling for existing idempotency keys.\",\"No `src/webhooks/stripe.ts` diff is supplied to verify correlation/parsing compatibility.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":309,"input_tokens_details":{"cached_tokens":0},"output_tokens":628,"output_tokens_details":{"reasoning_tokens":420},"total_tokens":937,"cost":0.008154,"is_byok":false,"cost_details":{"upstream_inference_cost":0.008154,"upstream_inference_input_cost":0.000618,"upstream_inference_output_cost":0.007536}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/verdict.json new file mode 100644 index 0000000..bdc98d0 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-02/verdict.json @@ -0,0 +1,21 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format without a compatibility/migration path can cause a retry spanning deployment to use a new key, defeating deduplication and potentially creating a duplicate checkout/charge.", + "The identified Stripe webhook co-change partner is not updated; any webhook correlation or parsing based on the prior `orderId:attemptNumber` format may break." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`.", + "Workspace context identifies `src/webhooks/stripe.ts` as a historical co-change partner (6 of 9 qualifying commits)." + ], + "checked": [ + "Idempotency-key construction change", + "Reported Stripe webhook co-change relationship" + ], + "gaps": [ + "No evidence of backward-compatible handling for existing idempotency keys.", + "No `src/webhooks/stripe.ts` diff is supplied to verify correlation/parsing compatibility." + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/receipt.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/receipt.json new file mode 100644 index 0000000..37a408c --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "96b7ebe8713e088399c1b1a39a86dc6908d332116715cee40f96ca5317a9fddb", + "scopePaths": [ + "src/routes/checkout.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/request.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/request.json new file mode 100644 index 0000000..4006463 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/routes/checkout.ts b/src/routes/checkout.ts\n--- a/src/routes/checkout.ts\n+++ b/src/routes/checkout.ts\n@@ -8,7 +8,7 @@ export function createCheckout(request: CheckoutRequest) {\n- const idempotencyKey = `${request.orderId}:${request.attemptNumber}`;\n+ const idempotencyKey = `${request.orderId}|${request.attemptNumber}`;\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/routes/checkout.ts\nCo-change partners (1): src/webhooks/stripe.ts\n src/webhooks/stripe.ts: support=6, occurrences=9\n evidence: historically co-change in 6 of 9 qualifying commits", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/response.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/response.json new file mode 100644 index 0000000..c22131a --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283501-Oi0Horz5lNLVBYELvcDW","object":"response","created_at":1787283501,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283505,"output":[{"id":"rs_008e4a8f64874d82016a87c82e168487d1872f64583e73b84b","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8gvv3r7xkTLK6kOjzMBI4O9_uClK2VrkAdAarNxHrQ-zXP1DqliLDHfx4rle8XwI2QbeQQFlZGzTLu5LKC7i1JmE597OKD3AJIvgU1PMhll29dHGDm62rlkTbW_zXFAs8QU1zjL4N9VTgEY6qJl--sHsPCfazhKu4k7rU9kawK-W1Y6nsP-leJq9r0232XpG8Dub_EZZ86P2vBQvYu3z7BDqpS-CBtbd1l9g0yCq1fyLZfZTNf2J4wJym6Mi56_8DTIGa76Icw6T7bV3W6JGPj1OUdj8wAmD8kDDXayaaHIihnm3J5-NZwpgQJwRKr3KF2B2dXTm8PRBiujNav0PIRl7TDXTSyY_QnqTAi4inY6C6Tt7qUsYc60xdMgEj7sqfwvNjXaDVWmrr8VI8mZldSqR-deNKbQXJnP40n4R0b84yUbgfaUJbVntxiZZSMmiVdSPryMzlQR5Sr-zj-Z7WGW5yjxoCJ0styWACW76LmyImxldjeSxxfxbnEWbQ4R8XrWIgZY3bO6D_H07BCUqzNvk4X-TegZqDjD3TPVoYdNJW2hss9b66qgU8ciMmos47t_0_6NB2ibGAXXou337i-SQEJpV8o212Gn6rLDKW64OAnbx1_xlxqgnXlYi1u0U9EZJVXm8r5OFrx9VZmhIHK5d539bwL0bdiouQIBdZFeiMLLNAJUVxy2rftxd8Jy-qWRnb3XZNtf_qQfMHivtC8-wwbSlB1NSMzPkySF-Z88KuuA8q8RRMfzzINXRnhpx1CiGe8la2tgFYORQP4PFuJX37kD-Q2KfefMxTlPJdSO1DSO4Q2f-iUywE3zsZcDKzNhuYgOQ4a_BT4Gz-LoPmU4z2HfrMdMuvbsDbZB2Po8bRVy67pov5Kz7HOPThUAKndYjcgicr0b8OS4yfo5V4ZtydsGg_4gWg9OcjKd1Ckmrny4F2LBxMzKv-0KppjS-f3k_yL1gN26gkSzmNcegu6KaW8Zi2c34njJIOOjosS9pLWBdPqEGYVxriIjAQny76vee__EA2cZddViN1kbc0DJCfRgL75OBRRKfPNCTPSNt_XhONrS3Cqtr8BltEecqSBda9ozCEOMDjPECy-rU_bdu0W4GaXTMfY4p8DkXDkPSJgOmqYV25-jnFGgOGE1S4jW5hU2OCTsEItl-YA1JfxjmQHu5rma8ZUfkBxHM7dKogmt7SvhrntBgzjMPFtYcPnAkDvuBe4SwjKwgI2b_0e6D76TWLcMmkHvaXR5m4oYQ4QnxNqjfBhQLMTKdvLZHyIp7JJ2d3r9c4ICrzqUtwKabSvjYwoawe60tqmPKK7DQJLqZtv6gMQaFdIatvqGtc4knTAhIfdmPQQLxPp_M17F-QlJuPbFlJA4fkrCuYjIZVlEMAQLBDUwIuBm_a3axPDM_55zhFdaxO1qtv1u3_aooA9TLv_-tCsS5cfZBjb01gou9HKDaoXUghwbz05RrIg32tID9pSQE-CiAl1lhVa_hvbyBjVqyTYOJxwSvCSJBYnrSEmmzbtEmkqU2yiXQd-DG7SszXUHnpRhqMW2BNQiKY_zw2G6RWEJj33NFdH4lkgKrvKSETMu1rJeKl5I6ibOy99RB15kQGqF72nXsIG6WSAndrrLI9Gq-jyqQfOiFLOTIkhjFx-mu-vyc9VzxOJzg8e5ZiKjdSUZlxMrbadWCdKr90TZLEikyvtfZGFtXmHw6HSI4pn4AOLgQJ1anzJp2Vekcx6UxeerZPvESMIfrivJ6o5I4S1oy5-cta7UMPhJKv6a4-BTlhF6GK1vjtSa8bK3vOoVj1pXulfJGRrtvVmAyTFgq08lQNV5oj-hxO1GKO0LnjZoBMiUc3K1CFpW-3N-aQPYTh-o8wlGGvQAz_l8TA7dtd_qwV_3XRcgBK53zjrYzT8bToRAVUetgTv9gVXpINKBVliSeDEpJAShPTi3HI4-cWm0Li4_3rpuPOzAisJ1QgthsjNE9uwRP_ZLz9kL5nJJ5qUQphOrm-sr0bBOA86s2499ylHI8cTexpUJNjlxZt8nd01qzPqcCr_bGgoU-PV7frQx2Lqn-Qyir2_zckEKCTvpIaDz1eYxQD7ufjX-TJSUkq1emB6sw_o8LUP6Vc_U-iO7pEwToRgjQA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_punu89344in","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"Changing the checkout idempotency-key format can break retry deduplication across deployments: the same order/attempt will produce a different key before versus after this change, potentially allowing a second provider charge.\"],\"evidence\":[\"The diff changes the key delimiter from ':' to '|'.\",\"src/webhooks/stripe.ts historically co-changes with this file (6 of 9 qualifying commits), suggesting downstream Stripe/idempotency handling may depend on this behavior.\"],\"checked\":[\"Reviewed the supplied checkout.ts diff.\",\"Considered supplied co-change intelligence.\"],\"gaps\":[\"No evidence of a compatibility/migration strategy for in-flight retries using the prior key format.\",\"No corresponding review evidence for src/webhooks/stripe.ts or provider-facing idempotency handling.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":309,"input_tokens_details":{"cached_tokens":0},"output_tokens":282,"output_tokens_details":{"reasoning_tokens":109},"total_tokens":591,"cost":0.004002,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004002,"upstream_inference_input_cost":0.000618,"upstream_inference_output_cost":0.003384}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/verdict.json b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/verdict.json new file mode 100644 index 0000000..1f4ea90 --- /dev/null +++ b/docs/evidence/meta-362/scenario-a-billfold/treatment/run-03/verdict.json @@ -0,0 +1,20 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "Changing the checkout idempotency-key format can break retry deduplication across deployments: the same order/attempt will produce a different key before versus after this change, potentially allowing a second provider charge." + ], + "evidence": [ + "The diff changes the key delimiter from ':' to '|'.", + "src/webhooks/stripe.ts historically co-changes with this file (6 of 9 qualifying commits), suggesting downstream Stripe/idempotency handling may depend on this behavior." + ], + "checked": [ + "Reviewed the supplied checkout.ts diff.", + "Considered supplied co-change intelligence." + ], + "gaps": [ + "No evidence of a compatibility/migration strategy for in-flight retries using the prior key format.", + "No corresponding review evidence for src/webhooks/stripe.ts or provider-facing idempotency handling." + ] +} diff --git a/docs/evidence/meta-362/scenario-all-results.json b/docs/evidence/meta-362/scenario-all-results.json new file mode 100644 index 0000000..5e7023b --- /dev/null +++ b/docs/evidence/meta-362/scenario-all-results.json @@ -0,0 +1,507 @@ +{ + "S1-billfold": { + "baseline": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the key for every existing order/attempt pair. Retries that span deployment of this change can be treated as new payment attempts by the downstream idempotency store/provider, risking duplicate checkout creation or charges." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}` with no compatibility, migration, or versioning logic shown." + ], + "checked": [ + "Idempotency-key construction in the supplied diff", + "Cross-deployment retry compatibility" + ], + "gaps": [ + "No evidence that in-flight keys are migrated or that downstream idempotency state accepts both formats.", + "No evidence of an orderId character constraint or downstream contract requiring `|`." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format causes retries for an existing order/attempt that used the prior `:` key to be treated as new requests, potentially allowing duplicate checkout processing or charges during/after rollout." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`, producing a different value for every existing order/attempt pair." + ], + "checked": [ + "Deterministic idempotency-key construction", + "Compatibility of generated key values across deployments" + ], + "gaps": [ + "No evidence of a migration/compatibility strategy, version pinning, or confirmation that old keys cannot be retried after deployment.", + "No evidence that `orderId` cannot contain the selected delimiter; either delimiter is ambiguous if its components are not constrained or encoded." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter from ':' to '|'." + ], + "checked": [ + "Potential direct key-construction ambiguity in the supplied change." + ], + "gaps": [ + "No evidence is provided that downstream idempotency storage/providers, existing persisted keys, or orderId validation support this delimiter change." + ], + "artifactDir": "" + } + ], + "treatment": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter from ':' to '|'.", + "No blocking issue is evident from the supplied diff alone." + ], + "checked": [ + "Scoped change in src/routes/checkout.ts", + "Provided co-change context for src/webhooks/stripe.ts" + ], + "gaps": [ + "No evidence was supplied showing whether persisted, externally consumed, or webhook-correlated idempotency keys require the ':' format.", + "The historically co-changed src/webhooks/stripe.ts was not included in the diff, so compatibility with that consumer cannot be verified." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key format without a compatibility/migration path can cause a retry spanning deployment to use a new key, defeating deduplication and potentially creating a duplicate checkout/charge.", + "The identified Stripe webhook co-change partner is not updated; any webhook correlation or parsing based on the prior `orderId:attemptNumber` format may break." + ], + "evidence": [ + "`src/routes/checkout.ts` changes `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`.", + "Workspace context identifies `src/webhooks/stripe.ts` as a historical co-change partner (6 of 9 qualifying commits)." + ], + "checked": [ + "Idempotency-key construction change", + "Reported Stripe webhook co-change relationship" + ], + "gaps": [ + "No evidence of backward-compatible handling for existing idempotency keys.", + "No `src/webhooks/stripe.ts` diff is supplied to verify correlation/parsing compatibility." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the checkout idempotency-key format can break retry deduplication across deployments: the same order/attempt will produce a different key before versus after this change, potentially allowing a second provider charge." + ], + "evidence": [ + "The diff changes the key delimiter from ':' to '|'.", + "src/webhooks/stripe.ts historically co-changes with this file (6 of 9 qualifying commits), suggesting downstream Stripe/idempotency handling may depend on this behavior." + ], + "checked": [ + "Reviewed the supplied checkout.ts diff.", + "Considered supplied co-change intelligence." + ], + "gaps": [ + "No evidence of a compatibility/migration strategy for in-flight retries using the prior key format.", + "No corresponding review evidence for src/webhooks/stripe.ts or provider-facing idempotency handling." + ], + "artifactDir": "" + } + ], + "perturbation": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency-key delimiter from ':' to '|' in src/routes/checkout.ts.", + "No workspace co-change partners are recorded for this file." + ], + "checked": [ + "Scoped diff review", + "Workspace co-change context" + ], + "gaps": [ + "No evidence is provided about compatibility with existing persisted idempotency keys, downstream consumers, or retry behavior." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "Changing the idempotency-key delimiter changes the externally observed key for every checkout attempt. Retries or duplicate requests spanning deployment versions will no longer deduplicate, which can permit duplicate checkout processing unless a key-format migration/compatibility strategy exists." + ], + "evidence": [ + "The key changes from `${request.orderId}:${request.attemptNumber}` to `${request.orderId}|${request.attemptNumber}`." + ], + "checked": [ + "Idempotency-key construction in the supplied diff.", + "Workspace context for recorded co-change partners." + ], + "gaps": [ + "No evidence of downstream key consumers, persisted idempotency records, provider behavior, or a rollout strategy that preserves deduplication across old and new key formats." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff changes only the idempotency key delimiter from ':' to '|' in createCheckout.", + "No workspace co-change partners are recorded for src/routes/checkout.ts." + ], + "checked": [ + "Scoped diff review", + "Workspace co-change context" + ], + "gaps": [ + "No evidence is provided about downstream consumers, persisted idempotency-key compatibility, or whether existing ':'-delimited keys must remain stable." + ], + "artifactDir": "" + } + ] + }, + "S2-integrations": { + "baseline": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The only change caps returned co-change partners to the first 10 entries via `partners.slice(0, 10)`.", + "`slice` is non-mutating and preserves the existing partner ordering for retained entries." + ], + "checked": [ + "Diff-scoped TypeScript validity of the return expression", + "Non-mutation of `partners`" + ], + "gaps": [ + "No evidence that truncating results to 10 matches the function contract or all caller expectations.", + "No tests are shown for result limiting, ordering, or behavior when more than 10 partners exist." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The function now silently omits co-change partners after the first 10, changing its previously complete result contract without any caller-facing limit or indication of truncation.", + "If partner ordering is not explicitly deterministic and relevance-ranked, the retained 10 entries may be arbitrary." + ], + "evidence": [ + "The return value changed from `partners` to `partners.slice(0, 10)`.", + "No corresponding API, metadata, or ordering change is included in the supplied diff." + ], + "checked": [ + "Return-value behavior change in `findCoChangePartners`.", + "Potential effects of hard-coded result truncation." + ], + "gaps": [ + "No tests demonstrate that callers expect a maximum of 10 results.", + "No evidence that `partners` is deterministically ordered or ranked before truncation.", + "No evidence of a documented product requirement for this limit." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff applies a deterministic maximum of 10 returned partners." + ], + "checked": [ + "Return-value change in findCoChangePartners." + ], + "gaps": [ + "No evidence is provided that callers expect or accept truncation to 10 results, or that the limit is an intended product requirement." + ], + "artifactDir": "" + } + ], + "treatment": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The change silently truncates co-change partner results to 10 entries, changing the apparent all-partners contract and potentially omitting relevant workspace relationships." + ], + "evidence": [ + "`return partners;` is replaced with `return partners.slice(0, 10);` in `findCoChangePartners`. No ranking, limit parameter, or caller opt-in is shown." + ], + "checked": [ + "Proposed diff for `src/services/workspace.ts` only." + ], + "gaps": [ + "No evidence of the expected result contract, ordering/ranking guarantees, caller handling of incomplete results, or tests for workspaces with more than 10 partners." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The only proposed change caps the returned partner list to the first 10 entries via `partners.slice(0, 10)`.", + "`slice` is non-mutating, so the local `partners` collection is not modified." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` within the supplied diff.", + "Potential mutation introduced by the new cap." + ], + "gaps": [ + "No evidence is supplied that callers expect at most 10 partners or that truncation is an intended API behavior.", + "No evidence is supplied that `partners` has a deterministic relevance ordering before taking the first 10 entries.", + "No tests are shown for behavior when more than 10 co-change partners exist." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The function name and prior behavior imply it returns all co-change partners; silently truncating to 10 changes that contract and can omit valid results without any pagination, limit parameter, or truncation signal to callers." + ], + "evidence": [ + "The only code change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Proposed diff in `src/services/workspace.ts`." + ], + "gaps": [ + "No caller, test, API-contract, or requirement evidence is provided to establish that a hard limit of 10 and silent truncation are intended and safe." + ], + "artifactDir": "" + } + ], + "perturbation": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff caps returned co-change partners at 10 via `partners.slice(0, 10)`.", + "`slice` is non-mutating and preserves the existing partner ordering for the first 10 entries." + ], + "checked": [ + "Scope limited to the supplied change in `findCoChangePartners`.", + "No apparent runtime error or mutation issue is introduced by the truncation." + ], + "gaps": [ + "No evidence is provided that a 10-item cap matches the function's API contract, callers' expectations, or intended UX.", + "No tests are shown for behavior when more than 10 partners exist." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "This silently changes findCoChangePartners from returning all discovered partners to at most 10, potentially omitting valid results for existing callers without any pagination, limit parameter, or documented contract change." + ], + "evidence": [ + "The only functional change is `return partners.slice(0, 10);` replacing `return partners;`." + ], + "checked": [ + "Supplied diff for behavior and API-result changes." + ], + "gaps": [ + "No evidence of intended result-limit semantics, caller compatibility, deterministic ordering of `partners`, or tests covering truncation." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The only change limits the returned partner list to the first 10 entries via `partners.slice(0, 10)`.", + "`slice` is non-mutating and preserves the existing ordering of the first 10 partners." + ], + "checked": [ + "Diff-level behavior change in `findCoChangePartners`.", + "Potential mutation introduced by the truncation operation." + ], + "gaps": [ + "No stated API contract, caller expectations, or tests are provided to establish whether truncating results at 10 is the intended limit or whether ordering is deterministic." + ], + "artifactDir": "" + } + ] + }, + "S3-syncpack": { + "baseline": [ + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "The final path segment is passed directly as a property name. If `dependency_type.path` is a JSON Pointer, escaped segments (for example `~1` for `/` in scoped/package names) are not decoded, so the intended pinned entry will not be removed." + ], + "evidence": [ + "The new code derives `prop_name` via string slicing after `rfind('/')` and calls `package.remove_prop(parent_pointer, prop_name)` without JSON-Pointer unescaping." + ], + "checked": [ + "PinnedVersions removal-path derivation", + "Handling of nested paths" + ], + "gaps": [ + "The diff does not show the `PackageJson::remove_prop` path/property encoding contract or how `dependency_type.path` is represented, so compatibility with unescaped paths cannot be confirmed." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "PinnedVersions splits the path at '/', then passes the final JSON-Pointer token directly to remove_prop. This fails for property names containing '/' or '~': encoded tokens (for example @scope~1pkg) are not decoded, while unencoded scoped package names are split at the wrong slash. The removal can therefore target the wrong property or leave the pinned entry behind." + ], + "evidence": [ + "The new code uses path_to_prop.rfind('/') and passes &path_to_prop[parent_path + 1..] as prop_name without JSON-Pointer token decoding." + ], + "checked": [ + "PinnedVersions removal path decomposition", + "Handling of JSON-Pointer-reserved characters" + ], + "gaps": [ + "No tests or path-format contract are included to establish whether dependency_type.path is a JSON Pointer and whether remove_prop expects encoded or decoded property names." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now derives the parent JSON-pointer path and property name, then removes that property via package.remove_prop.", + "The split uses the last literal '/', preserving nested parent paths." + ], + "checked": [ + "Strategy match handling for PinnedVersions", + "JSON-pointer path splitting behavior" + ], + "gaps": [ + "No evidence that PinnedVersions paths are always non-empty, slash-delimited property paths; paths without '/' are silently ignored.", + "No tests are shown for root-level, nested, malformed, or trailing-slash paths." + ], + "artifactDir": "" + } + ], + "treatment": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The PinnedVersions branch derives the containing JSON-pointer path and final property token, then calls remove_prop on that property.", + "For standard JSON-pointer paths such as /overrides/react, this produces parent /overrides and property react; root-level paths such as /react produce parent \"\" and property react." + ], + "checked": [ + "Strategy match handling for the added PinnedVersions case", + "JSON-pointer parent/property splitting behavior" + ], + "gaps": [ + "The supplied diff does not show how dependency_type.path is constructed or tests confirming PinnedVersions paths are always removable property pointers." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions derives the parent JSON Pointer and final property segment, then calls remove_prop on that parent/property pair.", + "The '/' delimiter is ASCII, so indices returned by rfind('/') are valid UTF-8 slice boundaries." + ], + "checked": [ + "PinnedVersions match handling", + "JSON Pointer parent/property split behavior", + "Root-level pointer handling shape" + ], + "gaps": [ + "No tests or implementation details for PackageJson::remove_prop were supplied, so behavior for empty/root or malformed dependency paths is not evidenced." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "BLOCK", + "findings": [ + "PinnedVersions derives `prop_name` directly from a JSON-pointer path segment and passes it to `remove_prop` without decoding JSON Pointer escapes. Keys containing `/` or `~` (notably scoped package names such as `@scope/pkg`, represented as `@scope~1pkg` in a pointer) will be removed using the escaped literal rather than the actual object key, so the pinned override remains." + ], + "evidence": [ + "The new code sets `prop_name = &path_to_prop[parent_path + 1..]`; no `~1`/`~0` decoding occurs before `package.remove_prop(parent_pointer, prop_name)`.", + "The prior VersionsByName path passes `self.descriptor.name`, which is the logical dependency/property name rather than a pointer token." + ], + "checked": [ + "PinnedVersions removal path splitting and property-key handling" + ], + "gaps": [ + "No test evidence is supplied for removal of pinned entries whose key is scoped or otherwise requires JSON Pointer escaping." + ], + "artifactDir": "" + } + ], + "perturbation": [ + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The new PinnedVersions branch derives the parent JSON-pointer path and final property name, then calls remove_prop on that property." + ], + "checked": [ + "Strategy dispatch coverage for PinnedVersions removal", + "Parent/property extraction from slash-delimited paths" + ], + "gaps": [ + "No tests or call-site/path-format evidence were supplied to confirm PinnedVersions paths are always slash-delimited JSON-pointer property paths." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent object pointer and terminal property name, then calls remove_prop on that pair.", + "A root-level JSON-pointer-style path such as `/foo` produces an empty parent pointer and property `foo`." + ], + "checked": [ + "Strategy match handling for PinnedVersions", + "Path splitting behavior for slash-delimited paths" + ], + "gaps": [ + "No tests or PackageJson::remove_prop contract were supplied to verify empty-root pointers and malformed/no-slash paths." + ], + "artifactDir": "" + }, + { + "status": "COMPLETED", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions derives the parent path and final property segment from dependency_type.path, then delegates removal to PackageJson::remove_prop.", + "The root-level JSON Pointer form (for example, \"/foo\") yields an empty parent pointer and property \"foo\"." + ], + "checked": [ + "Match coverage for Strategy::PinnedVersions", + "Path splitting behavior for slash-delimited paths" + ], + "gaps": [ + "No tests or surrounding type/API definitions were supplied to verify dependency_type.path invariants and PackageJson::remove_prop handling of empty parent pointers." + ], + "artifactDir": "" + } + ] + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/request.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/response.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/response.json new file mode 100644 index 0000000..3ae60f8 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/response.json @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +{"id":"gen-1787283511-GIJ1T313l4bpWKQfIaWd","object":"response","created_at":1787283511,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283515,"output":[{"id":"rs_008725b3274384c2016a87c838579887d19e7e9e2bb2c438c9","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8g5Wi891okNSX6hmIE4wg-GSX7SqT4Jj3OVlWMBc7U8B2qQOprK3NsRvpkJMr1rsoZwz51Z_v3f6cmM0znqhb5ELYRT_NBylPRAxeDkdA2H-PFriHoBFBuniPkxstWHyPc9A3IQuFgSaFR0axUEOCP9owOIGy-ZCWxpeQIUcwX2GycRcWUX7lJLhPtoSbD2mLFTecYok4gw__9tt6WygswyzyGDvVTKuVY-k_KVW8G-AjSXKpCYjBXnBtm9s4vi-tttGeg4mky79Nbt9aVQ_fa29JVMPcz2TMZz3LQyXzo8S-WOBbmheIGkgb655REZij88iC6fe750STPmMwWTRrejAGHq6yeSB0NwWrh_HLcs8W9XPhaaHVWXHdilAFwuk5588elpJcgzAJF2RrVNWgrAuQYWGMPy9m3QQYjuaN4g8aKuBhMb6gJpAiLdjy36KSWjPhSaxgOpORwnVIKU6zOJ3YGClc5DsH8kjfIW0Roz_aKwtepACjOhTUEvuUwsKMcfyvBAysikWPIy1Klb9E6ZfTGv55BaeKMS4OgjM0zQKYM--FJpf49-Xs2nb8FkRwVarXG_2fAHtMoOguUc6IkX6lklCnTuuJU8s4dpDs0drjqKXpRjBrI_sf1030LKTfHU5xV8IBd5Vx-cb17oEn54M2-N09p24AjoFNxpahkNq0ZLY-qVu1UGlrUxWK4VOLIFvDBRoyLGwh-ivZ8t5FAukmjXDyIHiBwdOSBnVQYs5Vt8gzXRmCljGVzX4eI6ZD1aB2N5Ig1-hQgInkBZDfMLuvJFrlqp5RhAbvkL6U49Jx40pUWNIoep62Y2HCNp0_eLb6pKAK--kd-s5sXXCSg-ymbmmk0JrRSzJzWVFafm-emVl5wI81qTKCh2Rkz6agpMD_fpXm4biTKmSbjekMcUhcaCretxIpu3tlinygJZwi6M3oI1VvDCQmNZHOvlIWMf5IJSs2hHMahWwJajvH8VkL51YX3XWb6PmsTnfb9VAgX9UpDp1RO2CoY2dvsMUs01GEFeKUpYYGVnFm6kIYuv4LtOihxXrjYCAl38Dxh1-V9qGZoeR72RwxW42KqoBCb78nq4PHaBskbc90-uciF5uiRYx8qHRNncrw6qn3LbgXN4yhwC4bAX8jYrjdPjCK_0UKe6ku9pj9w-aPX9SrDznDcUquqWUljEFn_Bl7lJoFI83b15Uwez2ddBsUrIKponKzikD3iIi2sl-gupisjfNaxnqqdNZWrr37oGRe29cw9IRzYtPm72IvAUUp1N4JS9MftPgISKidcZk2YDJWm6rEHkzKbBCwF_Hl9LzDj01YWpyQwmRVJfO1DMfeeTBnURqLn9hDiZxFIN0o1_svknLKlkE7h-l_8niejQV3ZklN0hwnuWeke6i7CKEJJWmfSsiX_lPsH1k6iec3GfWzYB-nwZZdpGo4iDC4hReWDPeH-98zNj7--zZlxlpdYWOOv1b0jVqoCjZG5HayVQ5z65YH-DY6x6napdHtYLKZ1E0PXqvXZqHSh-Od8C57W5HKemvu-S_OxioAfW2XfxbeCaxRoiWhWX1bJd3_lU7H8d2qbjIXdA6J230stJ2p5Q1C1OnEAu7f8gcgavnqFZmRb3pdY6RYe4Q-nX0BkOk9nDhvD-LFMBSDMb6E9OltpbpFaKWJULcs4j80Lq5k1KhxmCJiQi8FGGJU9Ug6Et1g69QjS_sPYFIoIQvnnvdc6sgz9jmHqCOw3UFb-EExei1eiMpO09CQzaxAIHo3q7gl2RNxufdEBllkwzi-ujrEDk-lpxdGfpL9tRw-6dGBl0vJQ4T1_s9vH3r37hhcHEjLr7g_N7H6vnDmEJI1JqqZgyfdLyC7JiQAV-fEYZzPiIKHWAZ40JcRB3xkIW3ATtuJRhyVOZvHtZI0lDNTJSyYRy3ni02DfS3jrk1ScmPgU-NF4n3w==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_wwr07vsro97","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The only change caps returned co-change partners to the first 10 entries via `partners.slice(0, 10)`.\",\"`slice` is non-mutating and preserves the existing partner ordering for retained entries.\"],\"checked\":[\"Diff-scoped TypeScript validity of the return expression\",\"Non-mutation of `partners`\"],\"gaps\":[\"No evidence that truncating results to 10 matches the function contract or all caller expectations.\",\"No tests are shown for result limiting, ordering, or behavior when more than 10 partners exist.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":222,"output_tokens_details":{"reasoning_tokens":86},"total_tokens":457,"cost":0.003134,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003134,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.002664}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/verdict.json new file mode 100644 index 0000000..9a00e11 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-01/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The only change caps returned co-change partners to the first 10 entries via `partners.slice(0, 10)`.", + "`slice` is non-mutating and preserves the existing partner ordering for retained entries." + ], + "checked": [ + "Diff-scoped TypeScript validity of the return expression", + "Non-mutation of `partners`" + ], + "gaps": [ + "No evidence that truncating results to 10 matches the function contract or all caller expectations.", + "No tests are shown for result limiting, ordering, or behavior when more than 10 partners exist." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/request.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/response.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/response.json new file mode 100644 index 0000000..327a281 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/response.json @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283515-QSORfqXlTfa7AeiREtpX","object":"response","created_at":1787283515,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283520,"output":[{"id":"rs_09bc0c2f1012caff016a87c83bbe4887d18a6629da33262732","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8g-df96xj6ZvYT55GaaP2v6VLxw3mUGlNT5N3ML_1zqafdI6afW4bRYXYNV16pnyONdEtSX_sxHzybKxtC1spzHtWor2-Bakx7GeI3AIInGDnr7EcLu6O7oeeVP05fDVPZMjtPMqJWVCNuFjcBlKJnicHmNqWIrbzWyVD4J7Ta79KnsPBS9P5Azyp6F_m0tvmZcQa25YbrRccDFzk3JIzGF6KyfJK7Oa7g9d0Y94W_KM2E5uYCJBauFenAcey-YpmD2ICWNhdcmjrnVWizCL02sRpaH85VFFAhdcfCSxSatjE7KpAB-t-qF9lKPEA_BYgPADTSeJ7_uvEWtkAezj-ACPUjoYIHYKc7k4VsD4YsYmBvd-UntVnO3ItytFpXddWOhw7V4pu_v23NF-o6306rVOSpSjR60yP02AL-jb6LWub3ip4WoYoGH0ssEiyuGb6-18XZoKUEb7sdSQzwARFIdP9uTDs40gEZEbYGc1AzMPVnGtAR97fTHziRYdjBGAlrU7i0baHa_mVy7rUdIYD736rU4vYl3lumkkLmef52rAxPAMt3bAeLzSfXIh2CDDSibeiJSn9SIicTEFWKfVlpg6HXpSLXEMQsGBKc3qOkr6GhF7oWhB3mlJV51NYOEQpr7uh3D8yunwAmOvHYwKxSiwCYFkcXAHUKx4ofG4xyZNXm5gctJVrBSe3dwSwkEOdwhqsJZgWui1BAvhomRNzLXxTJQehgxb8Odg2UWOajw_rqtYR9oZA1JKUvCm30u6Rf73pCEulP0to32v3k0c-NZFyDgX2JNZWHauIrfs9Ud1taXm-Kf7FaUQF8mPDP11s705JNY_kMuKQPHAlP7FQl06XBtSQyWHWoc9iJAiWTuLdi3nWwIXdUcp6PbRQ3N2dS_td9zpEZc7H_QiZkEvEBe8_F-MgEYvBoWa0SIOEOryeRbtP7cns-b_YMeC53trMgdAMrcrMl9WxK1F9bieWXDD5Qiah3HwKUKC9iuXVrhb27IbiPuh544E7clwpW5p68U9nwVItfz7xM__PP7Sm70xEEWEOw3XN9xEIzDryQzrnN4SHjYUoE81fjVQmOUvrRTAGgrdQXnb2FgfORyKW36eCG-tk60gpAm4RjNsdprMhTquLVFypHfMPU6GHNp2PiEOSPHi8vIRDh2Fe5ShgMMSzsP3zugVMVQLvYG7KiV9780OWX0vhqwRUqiMwR7s0JRFmSjfBKFuJmpoBgTJ1WT_tOcaf0bIA1kc0_zJjVKGoVPO6EE3Hg7pVB0uhODL6TBujuZEYRUg1UeoUpshiTMIjJEox2pSG2XNRk4lSCEv0n93HCRqqF3z4ozU8elOZrneSdZ_EeJuqk8ch3909KQWbkfvzuc8xiWdjuDnS5-LAsVrkY9kc2k-JMVylVTuhmoP4kVVRlL_qsZaWdwsxyksmo9RnQHYrgyQdlgdIvXVQuqgv5RrdzJGjzAXAluHg_d1HVfx0LJDdoef3qTwIsQg-MSFa58y6_xGrUPZ-BtfzGcbz2vGEh5zJi4o6-p3zPMb7fr84rQc_cRszDkbxiNmMsPpDHF0KlS4feDZKaKVQ8jNLY-e1LrojUxVB25mdFAuCBMz-nKXNsJTU5RHKdYg4VQFPoJklNjwIqVDh1O6AdCpSHHY2ekhWe_6Pnp3KGqXbQacjC6m3kM_zyQaoDL7hEddpybiAAi10kFlwd_a4z7Hr0eZwbopyibuD3f5iDOpp12dGOV3MejAwScBM91vtVjMaqcqhcadPeXoewQS_TeA32dfF6n1T117NJwOUC95R4aqUJayAQ4F9pZYnFbJp78A11eXHbiC3Qs02ZrYqg4BHXaI0hUsT-EGGdM_Afdip83HFmwKM3mDj0_Y4ZAc-bxDAxntLtw4X2vlRwW2SPYBtc--J-EOOvVTcJYOsUOLMmRDiOvg1_T-YX06i6H1fNUAPh1tDLSz_aw-VBZuKtlvbH4raZ4iSxQyXVne_FMro3T2cEz-w_klrlVzQ2kvQYSnnLJHPv0jlxog77rPzkjz5xPC_bKcrf_gCFUnxK8tyelVJpoeYt77tyh_zL8M103zZTglXo-npil0wOeurLO5zo53MHC_B7rOvanZ0_OZbE6-R--FfqK3k8v4RrHsr9H-SwGvXJLY6bJ432HDniOh-8zzSAcGVk17vCFSXKWYg36_vrNqiF9DTykAR5B-Zat3LWArnAUT5OoPWqPSykxCmw7Td-AnUaJZSkx0Myht10mhUoY1a_HhGGp-qPYL5LFj9vrDFjDUf-nQjMeB5rNgytrlZWVisESMI-SdgPcmDjhgiV3NGOynIY23CfqR-r2ZO7-lYCo1uBZHs8SUuXGtDVfabKklk0yM6xhpe2C-7GA4zrz0Rj_lWUe_HM3UR_MDHnAQSkZ4eGomiDc6A68nC6QNJYDhJ0CtMdpGLp2JNyspGVK7lBpcY6fb3CQL-Nu5mlr9gqg7AqoPOFcyppOn-Znloik502UGr0XUNt142Q4qcL2mGKJA8U7kRxyzeoytK0oWCSWm0b6ox3abLdSbyk5EOsAlumlcbGOi_WUbw9m11qr33Ejr4OiriA6eSIo5Y35miCYfv8AA0liy_SP1Yn70x8sq9J0zELaJ1tOXftckVT2rexEF6RM8zgbBEWc4NhFhknX6gzFohc_DrKWmL-N7UV6zyn8Zj9WiW_Ir9ECW730Cek6QyGc7lZ8Zd1RrdkBvVg6B7YFwJfdzcXP6GhtrJtbcleqJvZSViTmd46EOUgaM2v3K_wqNmMyx4fQTSwQzpnoTQc6TOwfrXW6P7Lwqfcg8QaGpqo_2_QsPeMN_UMUJLb23KfRNqXduo-GzIwo2ZODTlkznvZ3FDhGDvFnreOTTKsGtXqDyTufT8B12waXDG-2dGyYcLwh1H415RX__sBA5j9FJ1KZgSY=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_kxfdjmbezc","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The function now silently omits co-change partners after the first 10, changing its previously complete result contract without any caller-facing limit or indication of truncation.\",\"If partner ordering is not explicitly deterministic and relevance-ranked, the retained 10 entries may be arbitrary.\"],\"evidence\":[\"The return value changed from `partners` to `partners.slice(0, 10)`.\",\"No corresponding API, metadata, or ordering change is included in the supplied diff.\"],\"checked\":[\"Return-value behavior change in `findCoChangePartners`.\",\"Potential effects of hard-coded result truncation.\"],\"gaps\":[\"No tests demonstrate that callers expect a maximum of 10 results.\",\"No evidence that `partners` is deterministically ordered or ranked before truncation.\",\"No evidence of a documented product requirement for this limit.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":401,"output_tokens_details":{"reasoning_tokens":216},"total_tokens":636,"cost":0.005282,"is_byok":false,"cost_details":{"upstream_inference_cost":0.005282,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.004812}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/verdict.json new file mode 100644 index 0000000..346e0b9 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-02/verdict.json @@ -0,0 +1,22 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The function now silently omits co-change partners after the first 10, changing its previously complete result contract without any caller-facing limit or indication of truncation.", + "If partner ordering is not explicitly deterministic and relevance-ranked, the retained 10 entries may be arbitrary." + ], + "evidence": [ + "The return value changed from `partners` to `partners.slice(0, 10)`.", + "No corresponding API, metadata, or ordering change is included in the supplied diff." + ], + "checked": [ + "Return-value behavior change in `findCoChangePartners`.", + "Potential effects of hard-coded result truncation." + ], + "gaps": [ + "No tests demonstrate that callers expect a maximum of 10 results.", + "No evidence that `partners` is deterministically ordered or ranked before truncation.", + "No evidence of a documented product requirement for this limit." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/receipt.json new file mode 100644 index 0000000..64e2439 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5f6089dfac693d145f6afd870fe17c8457c5f18bc1dc000332528e5ca373e547", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/request.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/request.json new file mode 100644 index 0000000..c683e51 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/response.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/response.json new file mode 100644 index 0000000..b1a3629 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/response.json @@ -0,0 +1,13 @@ + + + + + + + + + + + + +{"id":"gen-1787283520-fpUiJYxlYMfmzl545EzY","object":"response","created_at":1787283520,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283523,"output":[{"id":"rs_0b49d91463aca86c016a87c84147c087d1b69ffb711a7d03f3","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hCuE5MLroOv5-orMkN9IP1SCjCF_UYLYKm00Ru1PLBm3NnDbYYJxkxTXUJo9hayHyS5ZjO6XTDaQCVFoKHsWbL6ZwxIM_H7PLXbu8GxSETPl1uIIHyQ5bmTr1ins9HGUQCo13q1IlRSVZgBd_gQC98yWynSdyt1iaruXhgCce9yg05hd5RtvKL3vVVOCpgUukod-ytbtcaZQiVMBpUU5DJfex3ORgY9pDoAhSxJjoxnQQzRcZqCLhWyjwhfGOLMuR5AJ2Ib2KcataWkOrEFixdkGQ-1mEjjno3VGDKGFTNAOLVrnEDaiNbMFAg5bDFTftNIY907q6mt-XWDHCudZZpZ6UISbaEp06s3ZlrFhxm8T6hWtLL9oqR5aYraYVu2sKcneFzXSHpirKriI0zHwgxeyXbi_1QtW8zUhrEhx5RknuDooqlt-b0tBvsBAFnWPZdJSwHseBbnk81xZ2cs9DUEj-ebJiV1abHc5aIgUkELLtlu5sVW5EtV5Rn0DRp0hlez_YuysPje0RsZsweyZs7fETnwGMFURB1vNgvJlQ2Auc6J-0AAptou8MGbjfWlSwOJyTi-IxlHEO9qWcQ8Oy6EzEEJGOhQsv4biW57tVOXAe8I1IQ1CpoRnuVOkjvAZgwPkZ01PHRcTFmnj9bF2x051Wl9SctCjmPihnhqRhK9681piXSOAbS8iZ8FL0j_qGsOiaB4vJUaCFrzdEPq9CBtiRPE14lTl_DOdoYyeXDWcIDGDFxPCrnJHnkrQELKBCZmAgYAREsyB4gS_vDJiXYF-vPz78NFq8XcEiOyc2uJe0CyauBXKkpppx3ZQBcOxl39CXfyWi4ECwl20S0WKC--I9XESvVoEeVCLs4cPg3JUkRNt-7ThYbgwUZ3-DU4g3Dv77_ENTZSD9xOWPubmsu0sxd0aa4rpNBfjnEsosVEzYqimdR7kQBQmmsXwrbVwHX2Tp9TWDw3e3VMfEZFhvWvjX6oxwcIxTfp_A87hdT8J_laCo-FwUBhHNAUHmdNr-diBPHSjnGHe_ivjoQUjN9nwwrAWg90MynEMonj8kL3NIGSveYII72ex1jqN4v_BqXPUiJE5NhPRrQeN5YpG6ERclWC-ICXS5HQ7nHLEeJM3UGvGXu5OutcwHtOM676sLjM7RrhOtJ-g_BskxyassS_0kal4PifXxntor_NsFWZXde4EaY4qjfhZ4PiMvUL3SK7chs3bFUY8NfXuOez0P5s0kxFM2op8FtGOJwYzsMRpQIMgJPOaqr0PlwUaXK4rq8N1LmRGL3r7EdXiFHVlgbvvPCSuiX0oxmOIW1s62YlBzj14FH8LgQOivHqznWECClfHYrQWhCkziXqIfd_7Cp-ISvgvA8XplqH2nrj1TGvXMpYtVzJ3p9Px-oqILXG9L_EcxWIOjWQL9jnL2WFp8n2n8zhVxwLO4QBFsV_JsaF8gH0eWPxGLTvEypMI7UBppvxY0keT-FIJuWO_KJjY_O5AFm4gyOSb-i_cNOI5ZRMLVGp3qB-EYIzqOUt9T1WoA-t6Q9sy98zX1rR-mLC31F4P5jAMdeCE1GFSbOBiUZ_V2XYZzHVNaPLvIMLXLGu8-x68szGKnokyPWo3nlcQmEJDiw57ySgBVk8rdJa5vGG1NygOBFY5fUD0fRlOf7964Ipmj-F6ITwg1FM724FxbyidC4_Ot1rcaSiLXw7mzyLXEKmJ19TvxYRCV2NR2e66Pj2xHXKgQajWSXwzVuz5jThjYL-L1cGIbwJ5-fe80butzonEembVmOvqZh8AG7aVpJC7c1rudOK9gTZ0g7jZFSyQG5VbItttzMR23CU_BGeoYF-vXAKF4GRJY-dbHHRkcb2Y9FjWuDkRuKCVVB2ASqytVl_Qa2zF6fDbytvTAB1TUHtByga1wvEGuKTs36ke7FbabyfSzIu0ojFcF92sPwmFcoceEbpbD20Hi4Psfut_qaafnQwCRBH634qbq-B2y69E5NOFhXP3nuZEhhsgESlmmXrFYtJMnp6SIsoOOm0dAyY0qpLC6IjdrR-QWsberR5Uu5GkZHE3kajUTOPUo9yUWW10SkaDxZ5dyIPjpiiFeM80DuT6120hKCODUk341OyszbCW1IM-S0tClN8M2tC06NfUJXfaFqDWCqH41EWkj3ZkBSshrMbS2pwjQmggXHNMF1Af1vjg1w5TFlndB5t7ZC15vXxFE4mxwuKHLN3d3ac0MQcnuZSBU3LdI-JsU8qzPNtJe1AKaijoIM5j4XCQIVuRHo3iB1opjFZglt730=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_g7vk82cew37","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff applies a deterministic maximum of 10 returned partners.\"],\"checked\":[\"Return-value change in findCoChangePartners.\"],\"gaps\":[\"No evidence is provided that callers expect or accept truncation to 10 results, or that the limit is an intended product requirement.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":235,"input_tokens_details":{"cached_tokens":0},"output_tokens":217,"output_tokens_details":{"reasoning_tokens":134},"total_tokens":452,"cost":0.003074,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003074,"upstream_inference_input_cost":0.00047,"upstream_inference_output_cost":0.002604}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/verdict.json new file mode 100644 index 0000000..bc28afb --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/baseline/run-03/verdict.json @@ -0,0 +1,15 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff applies a deterministic maximum of 10 returned partners." + ], + "checked": [ + "Return-value change in findCoChangePartners." + ], + "gaps": [ + "No evidence is provided that callers expect or accept truncation to 10 results, or that the limit is an intended product requirement." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/receipt.json new file mode 100644 index 0000000..02151a4 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "ae6ba1723f5df59e06aeb388b771ec72599d8272510ac94306f61c712159a514", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/request.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/request.json new file mode 100644 index 0000000..aa00b7d --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/services/workspace.ts\nCo-change partners (1): src/evidence.ts\n src/evidence.ts: support=3, occurrences=7", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/response.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/response.json new file mode 100644 index 0000000..0757f57 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/response.json @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283538-xyEQQmx36PFFvK5eQUQY","object":"response","created_at":1787283538,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283542,"output":[{"id":"rs_0f954ff7257ad3f8016a87c85310a087d194c20c9e07586cee","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hVYrdwdzwxR6Jf5b2_GM1f-OimTEWAq2ZIQuFZyUmzBTtvQfrsYgUHq5nbzpDtxRwYzClXSydvNpS3kjzaHu0K043TNn4G95_HHUny7mGKGYq-ZKtE3mk2si7EwsTYZYeZeoGI7LEiVq0pKd5Y2oZJG7K93KpGoB2pfMDtdFt7T9PjHVUsUXtWKXoJVhL0kjUV_2Eu-M9T3Fiu5uhRgZ4SEycZhNHt6ABXq2UsPksS1ycRXS_ZG8gVLUCAtokLCle-3dl7Yf9oRppTfGjc6W_X6QpVOiwtSPfop4G7vggIXoObC0_gZYDVeJVdu7lA6CRIW3bBuZbbgXmGG0uUo1E2zM_SCpTY9XeGGbP601M0OeGc-Ne6Z-cG7x6C9KRLDKCOdWZ5cEp2DsDiedkPBcRM-tjNFPWrc0VFxBfPNAtU3AtMYWQ1aqeafXLWWeFn2DXsaOVahfz8MyT2x56e_IwZNCeCuhSQoFzRdW8o94yPrjAGMq5cyuL5OT1E7zioZOY9CmJX9gUGNvRxid_gOV7OmUCzS902bH1JoE0Tln3zfiHFcqWRtdvFvCCfzwmGy0kw_Av__iYkgFVZzjf1FiqV3ylRLT8-PD9qWe09df897yDiHD8ejN6748wSFpPhyRZdghVghiWmTKOfoLySgj_wutKkNLuwrCm2u4sU8csWuFXBdJyjqg0BLgrYZw-NVI3voRGK5yoLrEltPsNHSpcZDzEB_T_9F-RPJpUTPjUvdU5zDAl3vyF6EjTu7vyAoaVvL2RQiRLhhodiARO7p0GtRe4SujNm2ZBYGxzCg_YZezm6jXQYbv8fMl-hqhBfwWTOIYiQmfjBw6OmUvVXdQzdgkWaShKOpIBTYNYzMvzmxW6w_vTl3LNKnFlk8JImsQP164oyVlyac-c40G_wFJaEP3lSlipCxWQuS0j9TymGF3xJANCbu2I1vBE48roMfwgNbDAuwKgRNwmFzdm4CrLFTBW9sv2PiaiVn3olcV_Siz2nHVVNP4DGj-GFeg3F8YyCC7L1NbxbTjw4GCTWJ7TONI257pBVzPIQc4cIvfTy3mMT-C_YTrvJYGbKQuKsCrDPgdwN08XhHdhIJK_l_3-2xdtvFl3B7z0gR3njCzhRyBFpViKo2kUYNFl_4xec--maP7SkTG2UVhPd-IxiIDLn4YJ2S68VaU51PbvTa4W-dkuOorKUqLnuGqkMoo-Sbu6BJYzFZ61xnoVQkiRqs4-k_Aw52QvZMkoAu4KumIZeSMN65opzdy1FI9qZg0yg0HluhMZHdu1zuEkcHFLMePj2bD9CJvm-AQC8U28EaN9cn4rUpNhNd2w07RbdLWlcx5Nu8-JIvLkWbQKgh8_xuHPY6leNnPYlJsCmzMdhyEIxCE0BQAINlOT8e26jX3n1EGmr15vouXuIYCACwx9ug4C6hoYBx4aeChC3zxGIo6zCJ0i5ychhIbGnXk_hFUpUQgg5jcyio06rpfpRF7q1CeWe04EsjAO-bR3KM-rHhMpEL71xOY9J_asWw6-UE1J026j7i89jS6wZ5lPdCowpwBX1UDPWFy5iEJgX__iK3O9e8gWtvT8vMf6qyNmYR8XVC0yEnPFSlUhQQLFFLUB9rVoo7O88PAiD9eI9i4gERima6AFhjLxmhcr87mo5DdSb03pHxlPnI5CtbkOlm_-J7XGOSxFLxj20SZ6RTHOcODA7PAr423kOTUtVbMnIL4WlMunrqydQeMRXss8Z3DF5W4W82osMKxgfLum_lLXSHzqZS_2WCzcsYEdyOX2cJwVzEroUqeU_K2Xs2my6KEujh0nwJo1bLHew7c1LO3nNd-KCXiFxNcPe_to_LIM3PUwzufKeeIRZELlRXOohsp_9us2TzqdBjNDyZOaf3zfsKoQyTpRHp2lUIyzA1V7S9-c5No0xhcnTEDTSZb-IBdSauc2uRHEYV6gYZjQ8jzpzy6t1d2zMQBr5HDHVdRPMkl_UZwLuqT0U2eiia0Is_OFd8h8_reytfTCcutgfsDtQv0S8jmQQRz7-xE-Gw3I8OEviCPKYZhMjE4RgTzAdMhxQc9n7O51glzZVvdUopU5OFiCAh-st9f9oH_oVzAagl7fkpeo1-2FRvh1d3BNrRqd0eJ7StlcRUHiNKdFYu4fdfng_juFdCwvWvFySZuwLwabrnMtKiIwu-gpmfbRjrq5VQY_HoQC8T99Lg-N1wSBNFUjQNRQumLPwkAjGYEUgQAf2M3HZlld2Amcms52ZJEk8Oh_aDY-QMPL4_t3iOQ559DnWEDXizhg-_GtS2Mpi1P5UkNu1lHdKOGDBKWIP6BMPzjVT8a6SX_qKmPwCqZMiF3amE-JvfOb1q5ndv4IQ-wcPdyN98wUhrAM5bKGNT9S6LVFfx5pruAVBfIQ6bkHkR70p6Xd8lAIToV2BhMvUki3qj_sb.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_gvc58vj70ub","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The diff caps returned co-change partners at 10 via `partners.slice(0, 10)`.\",\"`slice` is non-mutating and preserves the existing partner ordering for the first 10 entries.\"],\"checked\":[\"Scope limited to the supplied change in `findCoChangePartners`.\",\"No apparent runtime error or mutation issue is introduced by the truncation.\"],\"gaps\":[\"No evidence is provided that a 10-item cap matches the function's API contract, callers' expectations, or intended UX.\",\"No tests are shown for behavior when more than 10 partners exist.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":278,"input_tokens_details":{"cached_tokens":0},"output_tokens":301,"output_tokens_details":{"reasoning_tokens":156},"total_tokens":579,"cost":0.004168,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004168,"upstream_inference_input_cost":0.000556,"upstream_inference_output_cost":0.003612}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/verdict.json new file mode 100644 index 0000000..75cf1f5 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-01/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The diff caps returned co-change partners at 10 via `partners.slice(0, 10)`.", + "`slice` is non-mutating and preserves the existing partner ordering for the first 10 entries." + ], + "checked": [ + "Scope limited to the supplied change in `findCoChangePartners`.", + "No apparent runtime error or mutation issue is introduced by the truncation." + ], + "gaps": [ + "No evidence is provided that a 10-item cap matches the function's API contract, callers' expectations, or intended UX.", + "No tests are shown for behavior when more than 10 partners exist." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/receipt.json new file mode 100644 index 0000000..02151a4 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "ae6ba1723f5df59e06aeb388b771ec72599d8272510ac94306f61c712159a514", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/request.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/request.json new file mode 100644 index 0000000..aa00b7d --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/services/workspace.ts\nCo-change partners (1): src/evidence.ts\n src/evidence.ts: support=3, occurrences=7", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/response.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/response.json new file mode 100644 index 0000000..706f20d --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283542-4uJXPZQjKFo2YboVP15z","object":"response","created_at":1787283542,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283546,"output":[{"id":"rs_068a4069476c73c8016a87c857814c87d18a91ad1b4168cedd","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hZMA7c0rC0FiY2sDWxMzk4Bci_aBo-Gpy8ibM-2czsjh1i0JsitdO452fu5OC4DLvIFCE0SDf0VvYEeLoM1VWg9ztjAkixQ7MlRov50qoiX1i4j1FOpWrp4OEPsXO6Nq2ME2e88T6tx2tE86NnHH0rZ_J7SL6M2w4pWsLJafFodknpVWL9JOV7l_R5XQmMLcFeyGDHQkiyK1n6qGVg2-oBrdWcd3iahZW8i-AD9ccAQ6FhoyU9dt0VzVG8pS5oQlSTEMrKgBuneA3Sb7Nf94canQIa0X6Dz3YHwvE9TArDyR3MB2M4Qdt_gRKnXM22aiCmL8X--28Cd3AE5b6_V6rJAs57dKscaAeuBQbEPV2kiMrLl3T1Fh1fSRDuzE6fF2F52_DI3_pJNCFLYH2Q9XAANVmHBDafI8x7EIEhK63TVgnu3GGfm_Zd5EY1-j_IcQrjSpOGYxZiF6C3fXaduVZlxZo-Ic8py8WBU8YujwjGLKi8nyPVxwXZu-_QMz8VS1CN2VopQgT9lSwf9-LsJIVTmIHMUB29gfGUDAN1toxT20euAIMzA2PJomMK3v1YlpA7ZcSYnSsmSYDXUwjd3Mld6o8DOhHRN-az7Ir9a0PdprR0-tjPbOY-4cLCNBpKraFi3QibWtMeLNbVBmxVowuD-uSGVpT8xumXN4pfC1X1BaPhtU8CacwjANbg1lJZshtQVu6N6ToX0-2RMXgB1slDGHlSc1lhibdQ9rO5l2Oc-O0VCcEch4FxjC4UHrgzwNAfoeEQ3LLhLzJH_dC8nbKYefEbDxQYhOqhmoN7LTaazx5Oxf3grMx5UoNODXZQtdbr80AcDdNn4-OpfCQYXfr1ht1Esgp3bNGvjKoaLrCAk0_61a5rPcJU9y7SxC9sCjwu1R9reqCLlaWbFZ98UdZcCe2bwGGJmrnY5HexvAA6Nvrd5NHE78T0xtMW0iRtZ6KorFgCWbTmp98UXgV2HPa_dCopLO-3HM7RuVqES22H1-52PH6sZiczuFswWmUWppN1XGmCxpehC3Vwel5PLd57Sj7ml7BCRkB_3GaFCXSSNGZRbAk10F-1PDooCwbDipj-4F5GhNG7Mex-ikRRIgpjpGmCuvJKKZQZy7kUa2oVC0aKIHW-5WfDFLnl-OQPtkmEj-6zwwq3nR1mcubSxDRDtjfRbeIldAXDzdheBlzAzyOOOGcaXpNiwJRx9mVvO5vrR7odH1t8v4eyDT4Cn7sOxNqOhsoh3lliCLTfoPEpMvP5FOifGXGYbo8ez5wPrEkhsY2Kl-XmrYoNmQSS5RmE1J28s8bmguKhJ0toWj54d2IvkHQ7stgIRT4D0Y_dRn-BGvw8ScVmFbsqGZVDEVG7Es_Ngsdp6VVVj8HrfN5qLHosGYx1mnky8zArRYJenoOAeoMkh_S0TBv3FU60e2PFy12DEkPrf14Og6BGt1iTDySceAd0pK56OdubkPjB5EisVwGlOLyQB0VXixGmjw_U7insddpHBNuUsvu97_jU52uI1d1LHde3I1ASrNX8OLnROTCLixkBc_iHJNwTl-OESyjiuPDCzonBXMy11aDHgCfGK2bjAIy7I8sFfzaHXdC8IKczZmH9jHhOUwjXj7DlViebxmfasVOKoZfBkCblDz7NWZ3wZpbIOaJr_1JNv0E16mrQjPTWTiFe6MRYLWaGOteDsHXxaAMdMj5048iNt8NgxyBaeQ5FIW_beIRF58cDwcmFoJlgq9M9jn5HyJiN0w-9chTuNBkeNFLOGQ8bHX6Xc-nu1cGJPju5uFjTBIxuOlevGyYZTENU4XPiD7NoAopd4KkDn0zCe0v-0AgQNivF-Wd4ufRRbX6N_z0TE01O9Q1nT0C5UNTXFikkQsfK_voutQK14LU8xcc6d2gEM6Jm5Bl2XHwx5u1Tl_OSEEWj2Kyh1Kf0n645BcgdRavdqQJRKzXqXZrrdVcR8o-NoiH9wLixp4YSKy0CFLGWH0skjzJJgCYLDjG-zaGMzXo4PIjUKZbjQMrbvuDLiJBWQIxvdH5Gx_2wIoTBn2OZT13gX85R7a8QKS30DCbnDU9_ChokmwDzK2oVqa1bZ3LpHugus6AqlwfiyzJPcxBT6vLybiFkcWo1TPRqiawvPc8PyNrRmLBqMQigjKk-o_g08Xffs1YU4Aa9R9_ievwwcSL1UJ6zztHzTlVOCdBwLihKC2e2ZyiWD6J7XvvCRAKZ-1pUmu_4v_j3MSwzI5eqTdb7mQF1-PBg_kHxocLgLnVvCe0rwObrkByPOENIHxIS5kM=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_1lvymu6g0my","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"This silently changes findCoChangePartners from returning all discovered partners to at most 10, potentially omitting valid results for existing callers without any pagination, limit parameter, or documented contract change.\"],\"evidence\":[\"The only functional change is `return partners.slice(0, 10);` replacing `return partners;`.\"],\"checked\":[\"Supplied diff for behavior and API-result changes.\"],\"gaps\":[\"No evidence of intended result-limit semantics, caller compatibility, deterministic ordering of `partners`, or tests covering truncation.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":278,"input_tokens_details":{"cached_tokens":0},"output_tokens":270,"output_tokens_details":{"reasoning_tokens":140},"total_tokens":548,"cost":0.003796,"is_byok":false,"cost_details":{"upstream_inference_cost":0.003796,"upstream_inference_input_cost":0.000556,"upstream_inference_output_cost":0.00324}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/verdict.json new file mode 100644 index 0000000..a48030e --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-02/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "This silently changes findCoChangePartners from returning all discovered partners to at most 10, potentially omitting valid results for existing callers without any pagination, limit parameter, or documented contract change." + ], + "evidence": [ + "The only functional change is `return partners.slice(0, 10);` replacing `return partners;`." + ], + "checked": [ + "Supplied diff for behavior and API-result changes." + ], + "gaps": [ + "No evidence of intended result-limit semantics, caller compatibility, deterministic ordering of `partners`, or tests covering truncation." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/receipt.json new file mode 100644 index 0000000..02151a4 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "ae6ba1723f5df59e06aeb388b771ec72599d8272510ac94306f61c712159a514", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/request.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/request.json new file mode 100644 index 0000000..aa00b7d --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/services/workspace.ts\nCo-change partners (1): src/evidence.ts\n src/evidence.ts: support=3, occurrences=7", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/response.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/response.json new file mode 100644 index 0000000..c0cf295 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/response.json @@ -0,0 +1,11 @@ + + + + + + + + + + +{"id":"gen-1787283546-FigyfZUKDCAN5IKW8Q2Z","object":"response","created_at":1787283546,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283548,"output":[{"id":"rs_058025237460c9f5016a87c85af94c87d190912e96cc8d7b23","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hbnJZuEFusz0DOHN2FW6qo3zzNydnNCOqdGYj5XWENyxNPLvgQZMR2UoG1dwNO2NLbm0e4rWXq78LT6Zla8Cos76iUxUGR84Tf6vMxxwC4pXSpY2uobm1QuBAngreKzdbfk5CABSOgCp9FzeybEmfly6HraXJTF3q8aZFQ6cKeDHpwfFAGBnAggDz0b3pz4XplV7QLDIrKNTGKDqB-7o2crOUpNqbzdXIwhpbmmq2jg4h3Hjil7vFvHko5r6eiTW7Sr71QOneMrkfoPE55kXTVWhmrwifzi9d9uazRPEe9F_ivvy3uZO9cmPEWbYm5X8AdFZNtFOmXC-YexMLDvxszsXHXdFV9uCl0vk8A_4y0erzK5Mqyv-SIdPBNhjpsvIRlKlTn0NnDFDWpejJLjFBr8P91OIRyikuy3P4NZjGpm-lz6KW6rCBkSyVqZZzx9lI77Zyd0K4XVatUREDn9uHdv36U6iYomzTG5dUl_9eM8kJvqyzCU4ObDrIyxRLPRAtq1tfNJCxGEPFl5xfSY9A2F8zjuROY0sd_K_-dF-NvoxmeZ0VWjqBBN9ILJJ6zwMBBRRCNMyMwp7cMCD9ZeM_sjL7dewANbHIHfYmYVdOhLvQb06hr4SwAxVvPgjEgpZYIx7sqDlAer76iJBwXiPFjB1Ov6WyJHHByIuTy-oFMjW3BAQ6loNe6A012uDQAup0m17uNA0TdhDhLdI5Sux6m_EQogB7riLyFE2Xmjd6U8m1lpK93kURDosrFPx26u-EsQVd9mk0IH2Z6HWf4F5dpXc1YW2k0yG27Kl9vz-W9XhBoP9jBOfDUltwFQAJQfvYv8fHBEHJtrESDxoF-bSNaoayIIYS9uTIfJdVS5JW6tFWdT51lmmcjqWWS8dMs6F7lQWmJ22J1aknYVG4NIR4SB_VPtLGuQ6R2IXZeUsY3yWlGGsVe_Jsd4Qv5G0GCKpkFYvLWjrD5D6yTuGZYFYwIeQ6I9riCW3eMXtRYF0tGgL-hgn_36YuZtC28wB2GU-hNz0ZB63URuTPICSNFvJjPqy4PQmXdXMljC5mEqfDHKy_LR09tsKpQYQEnHecu1cUgm9vs6haDhf79dLy-GoKCkQaPc-_qOcgTx6YnRsiZLzbqcRbATds4BLC8sMfMVZJ5AibOi-S4jvMZAPDxpFAzHe3yD6M-BHOTWP2LBF2_32O_QFQjLwhCIpT85Cu2vXegSQ9kPalN4dVEzrgOAU9SkMIghi5zJqmKMW_fQ1ThDHNWv779sVDEW7_6B4t9R60FrmO8wfh-H7jYCiklzQaVFzfOd7uKTYJi-ffhBl3WFZF1VFxEYgFVMV8TUenUsQC5aB6QcdUX7ndI57V9kVoK67t3u_BA6I3zVEFp3HT5kwFPMhLTahuB4G0DUuQmT6azrLllScW_wxTmHVXsVKQxxA2BRqPyw0LecZodEDUYhrufFyTlvIkEnsyCPktlPweFgQWea3iIOJZ1lnNyUkE1GoUMqUiE20UebdN2j2vfSpo4gKTO7fam6nAymYwX_HDZ7gD0VqOqR3B3mcypxHvQRQKAcngaD_41h3brGbKjC1b2upG4LE68gUB8FNdLASI8oxBZj9TtlYbilWWTeLwPjMOPlNEnhh_3WmFzAW_dufmg8m2UP-d3fN7ASSORtV5mZEBrM8IdbyhudtqLlqvVlA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_zmt2uqzheh","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The only change limits the returned partner list to the first 10 entries via `partners.slice(0, 10)`.\",\"`slice` is non-mutating and preserves the existing ordering of the first 10 partners.\"],\"checked\":[\"Diff-level behavior change in `findCoChangePartners`.\",\"Potential mutation introduced by the truncation operation.\"],\"gaps\":[\"No stated API contract, caller expectations, or tests are provided to establish whether truncating results at 10 is the intended limit or whether ordering is deterministic.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":278,"input_tokens_details":{"cached_tokens":0},"output_tokens":185,"output_tokens_details":{"reasoning_tokens":52},"total_tokens":463,"cost":0.002776,"is_byok":false,"cost_details":{"upstream_inference_cost":0.002776,"upstream_inference_input_cost":0.000556,"upstream_inference_output_cost":0.00222}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/verdict.json new file mode 100644 index 0000000..fe0a527 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/perturbation/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The only change limits the returned partner list to the first 10 entries via `partners.slice(0, 10)`.", + "`slice` is non-mutating and preserves the existing ordering of the first 10 partners." + ], + "checked": [ + "Diff-level behavior change in `findCoChangePartners`.", + "Potential mutation introduced by the truncation operation." + ], + "gaps": [ + "No stated API contract, caller expectations, or tests are provided to establish whether truncating results at 10 is the intended limit or whether ordering is deterministic." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/receipt.json new file mode 100644 index 0000000..cd5f5e1 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "ea3e3d7794b98e09ff312df5a7da4af91b7c87048b6985fd94d4209ac1381e87", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/request.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/request.json new file mode 100644 index 0000000..9dd556d --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/services/workspace.ts\nCo-change partners (2): src/tools/workspace.ts, src/evidence.ts\n src/tools/workspace.ts: support=4, occurrences=7\n src/evidence.ts: support=3, occurrences=7", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/response.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/response.json new file mode 100644 index 0000000..dfb9472 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/response.json @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283523-YLJjybZXbSImvFKlUH5Y","object":"response","created_at":1787283523,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283528,"output":[{"id":"rs_086c40d907d21402016a87c844792087d1820e8999c9102358","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hGiA5oTZtqOcxP4fGNOSj0cUgN-6QBgrXB6H2qpXSj8lldOHQHvb0RDaHfSb8HIhPwLLJo4z9KomhZEEZUc0NXxzjDsVAWCHc1a19nhpGxYay1srZ7XJBPQPTyhRCPn_NnI-SH_29bcmuflB74CozR95Yr-CfA3HDH8ySvYatmRp1FH9FlBpcJFpDyQ6u5Q-hMPMwBv0yId5EhBV_aUbSOIGt-REIQu0mAC5s8ZqlZBocxsYl9neARAGecoP7tq6isdOhjRFxBv12eknzmy93zoZuRBUeaG9DkwOfgcqAxX_HHOgHINWq_HUoPZNVd2bfthHkf9HOSb9oq9NT9oRLhs6-PcF2FYgnO4zTsg1SgIzUuTyxcmsk7lYaV-hBvGxACoRwBccxXTGnogAB7zCMbokyHuxuH3Fop-SpixXYrbUkWTtBd4diBa5ePDeibjav3w4lxJSMcq7R1q71G1ENgmDJE1cJ_uVHh7NTy4X8gCaI4OVuS83zyFWrkt7g7d5Men6akrL29RFITUSBVl9xGL-jS6-9GoMca-ZHPnAXUsv_blIb_QFZxpJg0MgHhSMVl7up3B9LV8fGjW_fCSMvqKtR-1DSV_WeBICBoruJ_nfEK21K8Y1yfN4ESNq6b6IWuYf-bBeOdkxWqr0ET38Q_W7KBG3y-EBrWE-8FYkdYDb0nGqnxY_fLavKLLN1MfpFnWpEklvCBdDhHc7G3LcwktajCRufuswJkRwYgMR4mGlc0yj48MWzlUozAtJLGHti1ef5zb15Cpu1yxY0mn0cSmzsFNE9V-Ls4bDqR2SMxbbNgpjakcJGVS2_9Gww7zCXNJKW4cxX_b7oIczNyMklD2JIOxC_Ma9w7WBkEixy24UiW7v7I9TQUUh9hNhyNl8KPxfbM6ph-jl10PzlFHebIg6QqxYEvvIV_I0_jn8QcVk1-PKuIfQ3byATsznjzE-gH1-i4-f3SWJ3lLAkXCvJfVjH0AbPUOz5Dg9QM8hXAhfiPYDijZlVJig3iO6kEkyQu8cAPhLHVcpn4yz5ySCqF4yS1KGVrnR-0lNRzZYVax99wvVpxo0Khq_LxFtgs8XS0NkJEktKsbqF16VBscnQa_8qNxMJlVZXeH5TJYIhladsp3Okih-AARlwMWS6_QLEI2IBIMTDUB7wNcnCBaOBNN30Dok1W_nKzYfSHHryUSas7ZNbf3i3sf_NYq2fFZ8nCUqFIaxx38YwFVhp-iDkeh1Njf-XTiKCnkHdBOxCTZfgbL1GhJ48Fyc8MgrA7qp_dWkY24b_OEq8J34arndT38HCFhIoNaQE1k2tI8Ui9iTwJUBTJCQz2kVlBr1V6lJhx5OyFmp8Dd-sz2TwOVOJbpU-Ws7sSHKvlI932HYFKY4cKHXt4jlziBi5xNZZr-l9-MocYF6ImuZKMCH_qS4qmBcN3bB8dAB-w4SMzuFx1eAiMw8JBBxDhHKsrYwlyP_qMP8vjNVoNcmAMPD-c_yq9cnWDCxmk01Ol-VY8ssSKD9tg1jSaLLeH5dFI5Dm6MbUM8Xskey-WKoB6_fpt0P_HWQK-0SoPSXNjIQxtwRqoTdkozIKeXFUigU-YZ62TPPD4C5LIFNePmPbMvUvOYguGpmAWHl1JGdjaeNFnrbz6Zubd4yc-dDJDspfQpeKjkSHLn6MesqIjl8JcI6Ffu2GyEPmsiSOtwf2q2gXz8XAVo0yS36mJ1kJzJ9afr4FfdSSrpd1dYJxXB4K3nAnrxS_szrZlllC7C2m2R97k0IKzroybgvsbhqd9d-Jz2oZrxiRX2B-oAQMU7IsuugVmThDUQQoxzYF5rjzQiHIJAcvxBqoAZG6qCDOCS6iJfQVlYT06TtBPeSxDnaqMkRnvgOfXFekS8PlqZ7XJueBl9ahGa8KvejAcnKOtYqw1X00wte6ZeYonfvDvpfKL9JVT_4Ukpy1IjuIPVMGjjg5959J75MftVHIJ0PosZx-kVG0Im2pQ1GW7EUDSYOPuY7SAxPiXDUZQfbXM-PCYXmpqcaTlK-LJy049Y_z6NZk7HHr0Jta2cJh91141F0FBGWkGQ6LvnJu10ZMNo3xNcDz2scK8hmf5OQTyCe9jBNfQhmf_XeLzJqx-AlsVn_2xoQU5pQhHt_C7NU8w83ai8d7UpAlnIXdo5LHddhzWU_th7jgc4gUPMDIv3mVQ0K4KslAAZKES6KJEQNDozMiOVXkaO0wLPD2W_khV8f6yi6hf2yogfTTsexFT2PMtZIsP9kFUmGKeH160t_mCPAhHPsJ-nXi7byYWIXIOPApOMWjGBlQ9FQeXBTmAJP6UAxyq0rDm8cXuqp_-9eYBsInSvP-Xd37K5LEVICA2faEkqZfcLgK_tBxnXDolUu1g25v2X5kXm9aBQXhxLV5I048JKVSs7mZhUPowqb1GLShc0cm8mdagwv7UIlNW6kQpumr7EL_2giZ34A==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_u7ampni119","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The change silently truncates co-change partner results to 10 entries, changing the apparent all-partners contract and potentially omitting relevant workspace relationships.\"],\"evidence\":[\"`return partners;` is replaced with `return partners.slice(0, 10);` in `findCoChangePartners`. No ranking, limit parameter, or caller opt-in is shown.\"],\"checked\":[\"Proposed diff for `src/services/workspace.ts` only.\"],\"gaps\":[\"No evidence of the expected result contract, ordering/ranking guarantees, caller handling of incomplete results, or tests for workspaces with more than 10 partners.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":299,"input_tokens_details":{"cached_tokens":0},"output_tokens":308,"output_tokens_details":{"reasoning_tokens":160},"total_tokens":607,"cost":0.004294,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004294,"upstream_inference_input_cost":0.000598,"upstream_inference_output_cost":0.003696}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/verdict.json new file mode 100644 index 0000000..0e69e8b --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The change silently truncates co-change partner results to 10 entries, changing the apparent all-partners contract and potentially omitting relevant workspace relationships." + ], + "evidence": [ + "`return partners;` is replaced with `return partners.slice(0, 10);` in `findCoChangePartners`. No ranking, limit parameter, or caller opt-in is shown." + ], + "checked": [ + "Proposed diff for `src/services/workspace.ts` only." + ], + "gaps": [ + "No evidence of the expected result contract, ordering/ranking guarantees, caller handling of incomplete results, or tests for workspaces with more than 10 partners." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/receipt.json new file mode 100644 index 0000000..cd5f5e1 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "ea3e3d7794b98e09ff312df5a7da4af91b7c87048b6985fd94d4209ac1381e87", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/request.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/request.json new file mode 100644 index 0000000..9dd556d --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/services/workspace.ts\nCo-change partners (2): src/tools/workspace.ts, src/evidence.ts\n src/tools/workspace.ts: support=4, occurrences=7\n src/evidence.ts: support=3, occurrences=7", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/response.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/response.json new file mode 100644 index 0000000..4db401e --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/response.json @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283528-jbKYNWWFqKkt421erqzh","object":"response","created_at":1787283528,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283534,"output":[{"id":"rs_07dd4e6c2c084651016a87c848a8ac87d19b55506fa66e23fe","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hMBJrRcOl__jS78iIttiYYuzNAocan2Is9RDcQ6oVeC-7wOWgjK26O9xUvNXCkhO9WUuQMYp2XoB9MlQmIEuAbptgMIxkOhmr-FKSkqdb4uGMVQqbBZHb4gdlvIY9NcXw9XV8Gl2t-71CvpsbwDuBkzVrPw9KbacUyW1wQlB17rmpJAR7G8h3Q8Pe4e99R2JevNY1DA48OSaTOthrbjUt4JWjyzF8w8hD44TnB8iahB8hjxzhAq9NObPOlGzr5cTu3pOJ4YqRXjTCkRpcugatuFBedUU9kNClu6tKdIIWs8bddOkA83GNdTKQNDeHBf0MPINA0cC2rBdQDNVRsKvI-HSTLeJ3NGuthwyD1qt2pf2HVZJuG9u-7bBdODfqv6dRPaMsPgXQ35ipyOR9GxNvQf9Mmhsz-4SlVAxfBoz6Vk4nC1suWl2BYH1lXOcd60hC3fjVI9CUgkOKVEjryxhxrRTgOO1P5XKId28rnjzpD6EB91TjPEE42sNEJBDiPevKg84b99Dzn4EvjU0FoYx7FgdDpmozuqS6u_FTHsZ0Pm8VFhXC9tRDeZNnJu1pzP5rgu3aJFYdCJoRnA-RLWDuW1hOJ9zdjQlG2I_QU-56st-bkIEyXba3slDwxr5FElCK9gdrl7-Hp1h2tOYKnxpIQLYrQURhAy0ycz_99syqqtwq5sguyIsmWueC05ZYUCIf4ywfOcQ6L_W9JUI4tY850-ZRAJh-kiaMUNGReYbSOmY3GD2XIZRyoMxdxReiA2-ZoaodiVsNLJ8mbxekbyzNm3Dwu-qOPvf0qX1ljBPCl9YoKxxoxiXt5qc2oAwN_qq-XO5z3NxVM5ULogxrCqSoEIActrJyvJOzwiYf6DUKkIgI-0TygDE_lLwVtxX97B5zrg7lwbiqw5UgzLmOPoGrwTZAxmMjuRnCf48ZYo6bvBhXrzxiUbCGKIDCjQb2ltMQ1i8Ie0mTVc7kPlZCbDRZvOlCAnGCLo_d6c0isiaktcB8KuWaY-hi94KzMR_Gm7Rq4RmSxIdN0QI3Ty2azofTjOZqIqJ86RXv1mx7bHM6TXJagEB3YHisrTDskPEhALYI2hz9h0M8ZijBjXfyXH4xJMB1bOdoi5FeGbqMiJV55BhGanKG0HEq144Q-1HzZ6K794AM6wpBldvELHv-2HY33qzlXaUHQoHFT2juRiguGLs3rvsRQC-YVR-VgoIFmuPg7VuGHrKsNBNBWqqLA8bKurK7_MCQw-Ih57_GRGchiOllyM_637JldO5EFcGB9_TnLeWNVZZoqdy0YiUptVLyJDJaNeTtvUFeAXDLSG8063aOnc4hbWJ2jfDodtk2qe6C9NhDX75Vw3bxJvN3OnKhz_w-NfJpDabxtq-aNLGaih_BXZcUcXQeRWb4i7dldG6NrNxV02Vhl_5aNB8dY_cqBMoFOJEzLDHAef2zUmWki4JGAoaO5b7PtVeV_T2bR6RYmzaxV73nIeMnYEfc3XcJeR05v465JZlm65lKJnbF2-atgUlfKtP0GRTVvQGxtALBeps1htGGIPIuapG7KxSbfMt-mosaZUsjACaMGUcBOhviqLmGQT_0Xcux63x3AZYwLISzPJNUG_TaBpc2OrGPapSbjMgX2MiYloFNF9AAxgwdwOMZ9tw6PG2sUQjriS7X_u6YHJ7sBzf_3_shr9EIeqwJ83MbCX2uwUEZXxnm9qa1nBuf4gbBOek86M-LmKTi7IEbTkBFAO0i12brNj0hZ-adge5RZmm7sbxA0DSzZV18oM3L3tWmJROyLSdyf33-3t7cJn3h2Km_9bI95jKmFWgdvkSrfX1-F_yf7ySPvPOT8Fw20KqT6ViNtikiw2Gn1b4X7hRQnMeeJoerleqK7E7sLl2o3dVuhqFboVim1LUV4Q3-W2sfnN6CGBe7UcLzbadLfo7s3pYqqRzAEzLhFrbwSSCgzE1Hn-trHV-WKf4A-Fr4tMbwqGxEUetrT8ngKFHWPjT2hhpAaW9mwK2SUqPRSaxkzmp5GWMlIMOfwYtwv5hBsCetIo_NGUUMlMDtGhydevWMt3K5bCM0HJrZZv-WUpwzI5nj5Bn3gvumrlEVOY5wIJXzM9wcF2L2znrPxTwkG-0YScIXPwwwtazZAHGvjZ4UGs-sdgBxbE1GsZ9Q7j5EPulBIL8XBjH00CqCp2ffi48srH3a_jRfU2RdKbUS1bM0f5KwYsq5s8uNkgq0evCpVkKiON1G5Is8VGcitfc3Aoj6x4zAYvEUtF7zyfAZIktE5C_ECENY8ASH_gPDARUpRTwCT4JmPWWfapeCcmYWNj6x3LElCkqBClfc8ELY0JnY6Z8BQPvwfPbESu1PXRqwmiddom17A0LjiYdIdnOF2euaK6RrW5Ry8W8sGe8zPFE1PrZtKnxuh0x57BZDOIlietrlYlvyn9Vy0YNE0Sw-RUdntvQnB_Zf_ZgVsh_ysBnslp1IqzEa-1MD5iZodsb_bwLPpvSVUpsxqddnot_CxkVtq2R95RA5s-tUitK6jQntaglMxdcYYMA4lOW2lX-GLVz_2UCdolWyI17kqTPSpSIxHnAYwR9wHzIEp46mdXJGd34nTRcmuERzbBeUCuWyx8YAesJuejGTV5LWJIDmEg1UIKKfNOHzF0GnNFqQb7VItOoRHTBzlccYO7qCqZvEA4dhJG0lIolhrrbOoZ3JOMoxkSeluoAjF_Dy_mgiruT_s97dQIsniQ3ivfJE-qWLRDAduXCvZHR2tjPWt9kCGR9-HGV_KmA3kY2bZUgX0dbD52x5d-q6gj-5VBexqoknpUeQ8V_cxuWf9biNJJUoiRBhuq7DQjAljs6rY4krMfdGhjkTQmzD-CVaBikL1j6Jknf01TBMbQhQnc9LeP8M_TkUOXGj1c4eezItnusUNN1YhyHGNeGDGdJepvcMBzyntsUKLuqTAwI-KHOpAA0S154HXkKvT561mrj7Hq31n5--EZAmnjcz8nImPEMmaWJuA1IanohpI4toMRbPHc4GCLXCcN5QJoTfDGoxXj613efxCSCW9YZExSHvQUbx3Mh0KHA7rnoGva3wqcdNkTYgyUkiY89MrXeMYr1MJ0058DecFSKxtRucLPlVdg3UK-tljX-ZElwY2nhVshLR-VXDak7fBrlUt0NM3TiAUgKiqMjNpzzOL9nLnUat5-iT5OsVKQA4qmHwnz4WxnB04apP0W8oUBWjLqKSrA6W8PoxSmw9LU6aSfDR_qq7ftfsQHp6VPI3uWen-ipBe8KrDAGecnhw_ODCLBcHt_uj135pBKaLLdryggEDuqlyoi0VByC7dhT2NC-uL5tIl4dr_csktJKE86PSdVp1Tdju4hQ28Q8kR0lthpKvbj7jk5GUfqbOrczEiziV_4yEV71MJufPKzawzNwehj8Hs7uKPl_ykMKXcssD1VCRQeTJYbsxeMKNUTyY5EZHbof8KIbu-W2_BiaWSP4rg7_XXa2cknOmq2W7BTM8GpqG_12QDGXgjJvHrL-VdjS9IWawEiu83mIHoqXBnMSvYwQWxng_fiA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_d3c5o389sa","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The only proposed change caps the returned partner list to the first 10 entries via `partners.slice(0, 10)`.\",\"`slice` is non-mutating, so the local `partners` collection is not modified.\"],\"checked\":[\"Return-value behavior of `findCoChangePartners` within the supplied diff.\",\"Potential mutation introduced by the new cap.\"],\"gaps\":[\"No evidence is supplied that callers expect at most 10 partners or that truncation is an intended API behavior.\",\"No evidence is supplied that `partners` has a deterministic relevance ordering before taking the first 10 entries.\",\"No tests are shown for behavior when more than 10 co-change partners exist.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":299,"input_tokens_details":{"cached_tokens":0},"output_tokens":480,"output_tokens_details":{"reasoning_tokens":316},"total_tokens":779,"cost":0.006358,"is_byok":false,"cost_details":{"upstream_inference_cost":0.006358,"upstream_inference_input_cost":0.000598,"upstream_inference_output_cost":0.00576}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/verdict.json new file mode 100644 index 0000000..fb81051 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-02/verdict.json @@ -0,0 +1,19 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The only proposed change caps the returned partner list to the first 10 entries via `partners.slice(0, 10)`.", + "`slice` is non-mutating, so the local `partners` collection is not modified." + ], + "checked": [ + "Return-value behavior of `findCoChangePartners` within the supplied diff.", + "Potential mutation introduced by the new cap." + ], + "gaps": [ + "No evidence is supplied that callers expect at most 10 partners or that truncation is an intended API behavior.", + "No evidence is supplied that `partners` has a deterministic relevance ordering before taking the first 10 entries.", + "No tests are shown for behavior when more than 10 co-change partners exist." + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/receipt.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/receipt.json new file mode 100644 index 0000000..cd5f5e1 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "ea3e3d7794b98e09ff312df5a7da4af91b7c87048b6985fd94d4209ac1381e87", + "scopePaths": [ + "src/services/workspace.ts" + ] +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/request.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/request.json new file mode 100644 index 0000000..9dd556d --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/services/workspace.ts b/src/services/workspace.ts\n--- a/src/services/workspace.ts\n+++ b/src/services/workspace.ts\n@@ -XX,XX +XX,XX @@ export function findCoChangePartners(ws: NormalizedWorkspace, path: string): string[] {\n- return partners;\n+ return partners.slice(0, 10);\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/services/workspace.ts\nCo-change partners (2): src/tools/workspace.ts, src/evidence.ts\n src/tools/workspace.ts: support=4, occurrences=7\n src/evidence.ts: support=3, occurrences=7", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/response.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/response.json new file mode 100644 index 0000000..8794d84 --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/response.json @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +{"id":"gen-1787283534-iRWFLErp48yHMzrMbyPq","object":"response","created_at":1787283534,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283538,"output":[{"id":"rs_06050524ed687344016a87c84efcd087d1b98217b89b41440c","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hQny2V1opBQOF0pDjBKU2bjdM3rWCkNdTrXu8uiptCjebVSkrqZJW2aTgIW3EN19GcVmzxw-u9iOPfbWTeGeuUAQCW_gbpa2p8sk6oOSjsjkdB0i7iOa-Yumrq0W7qZ1ba1O09JTuOGAq9U1MI2-6jMcntofOZBdgbZ6a84xPYTc2pj6CNxqo2QXqJCcKeBUqLvHYz1e3Foc5kqcpddwWydyXpQdw8oTDR-bgSf_rB5KLWXn5VLUTQRBhj6Evp7fa29bIF1mxcqCDU80vNNf7oGwsYu58bh8krFRaf-FpKsZz3jmno863pe4lw6gMrNeqh8iNEhhFuSaCAc7qmTAp8c7SLjTkFoLMQNj4B5jERQYJdO18C4mkRwyVv63iovON44F9Th-qr5IpZLFA7iwOWJO8oj7N_Vfex9dgSw11NkUlKtQ91zlij15LYX-K7kk82JOXe3sdcqv_vNNrSN5e1bazdBV38efKXq981u33EmEpF7UDZ-QGTcyCS5fb60DX-MOTzMc-4VN1VjgmQ_q02_5PiDxJFtjbar8Qd19m9rX0ZNLJ8I_uc5DsVZO5OvmRJ9rK0n_jiXiDRkjbI9EgB9uCsMGuOMVC3Mj_jDmeqzuRez7ahQRYCwPxjCrGCaWpuYrJcr2ILUeu6HotExzLTRu3dPGoctXshWicGhuhemeqAWzrXiJmPZLYYvVTql41Bh22O4KyyHoCLMvq9P2g5THSdzqNX7HbzTnSooSWCuNiI9D2-dXchiI_lhUricbHaNBFDfw5XQUgYYKmK3G7kHrg8YngOZellByucWGvfDBBWRGU0iwTx3-B7gPAK3QUpQ6wl81X3mRRBxWnq9AvC5kazu67zOTHiTuw8RJh2t5-sjzSTnMnm1aiz9lCsPhPgAZUc5EWFfp54MGiaFuo2OqmWx91oVXxxidxeqkYYnisOLftKdilj6t_BZETLYyR7Fu5M1UsSd9eBi7BNnK-Y1YxnV1Chzq664mg5Ox3R3f_rfx-T2Csfcb-OhacIY0d-0_x-8uZGoNBf69FzdQuuaVUvbo-Fn-ky8l-dCbZ-S6FJ2RGBDOejXZGiQPd2hIkQ8XXjYmSHl5y62f0JZRJX8jUHvj9jFwZEJR9MkngavnC1e7hDksjUJlA8TUSD7oH_zwhFk-wPb6iOSdHaC7HO-6kYJIt9OfN3YBSfLmGoOabPBsA24TT6yBv7erTyLLDRkY57WM_iHZhINqEtmLKEEeGDSjwY_RKdXlQJuTBDUiiYjR_7tZGhe_kXdbHZRqlfEEMa2_KNcZdP3UE_B6G7-oh5VVqKWvgSgUjZajvRn2nh6cyl4boT0GZqVK7OEAg-6WFv2NG2Ou8E_r-u3tKgsu0dZ155QQiR1Rl68RoF0WFj0XnSJ8tLgIWolap89YbQoV4b0VdVCX_Qcdlf4Y5M-paamTFz577f3HBD_DMbjOfPbhKS0fKZtI-b6pgfKH9I7SHv2rsTyNERJisA1jeCY7OA1Z1DffPZrWGVwHfXxwIeCwirQuFpXavNACImWJC4_jj2YilSAeJm5bj-nqbEIvx9tL9axGLrVqWGp6wzxBofFgikqUrad6oHJIPSoXv-8pdl22lZlbetRNtWhh7N61bf5tHQLzgg4S3_n_cjwRIrqG2yi1rOHHTRaCbU7Ig3eoYz-qicVKVMSKVkP33dFdoehINfniorZjszi5WTW4GRHhApDX_FdJu3uG6MqyfHXd1k4ptkX_Ui0wK-UceuZOUZXordMlN2ZrI86Q4VQ7XxvHIAmddeiSPB-cVKWlPToDANMQQVBG3z4xgllvlRvNy3swrTCVZDzmqMQNqk6wpFeISHMQd1ZplvChK4dj1z4k3nYrAoTiVmkQUSsVhf0J3w3TXv57S6BZXIxfB4Min4awChplLkYZgeUo3W7aqjPfEJbYQmAH3b-Na6cE9qfRODpCUYVbS1CKKZAo1PU1WVGzbP8baWs4vfsxL8cBJJwa1ombaWXkFjBazjGndnnqvDu-Zsc-2TwehCzLSQRpsjXl-ltGBtCMlT0uZFl_Vjbz2NIpaeDTRgO55xoJLEVCSjkCXRijwu_0JxhmfFKD8xgyJRIqbpBZf20OfFpuQ0foBR1HxPv9jR8sxGchYtawZk59fpSQhzKfafo4TqVugIcsXxY4wQ64UefTCAus7y0SV7SqYgYrPBNinToGGJZDgvDf0e8krGaETnDyFKkYt0cIOArsqObHuZqmjD4Pbd18jgdHiUKbQ2FP-89xDlbg==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_n0zll5nj72h","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The function name and prior behavior imply it returns all co-change partners; silently truncating to 10 changes that contract and can omit valid results without any pagination, limit parameter, or truncation signal to callers.\"],\"evidence\":[\"The only code change replaces `return partners;` with `return partners.slice(0, 10);`.\"],\"checked\":[\"Proposed diff in `src/services/workspace.ts`.\"],\"gaps\":[\"No caller, test, API-contract, or requirement evidence is provided to establish that a hard limit of 10 and silent truncation are intended and safe.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":299,"input_tokens_details":{"cached_tokens":0},"output_tokens":271,"output_tokens_details":{"reasoning_tokens":127},"total_tokens":570,"cost":0.00385,"is_byok":false,"cost_details":{"upstream_inference_cost":0.00385,"upstream_inference_input_cost":0.000598,"upstream_inference_output_cost":0.003252}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/verdict.json b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/verdict.json new file mode 100644 index 0000000..5e1f1da --- /dev/null +++ b/docs/evidence/meta-362/scenario-b-integrations/treatment/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The function name and prior behavior imply it returns all co-change partners; silently truncating to 10 changes that contract and can omit valid results without any pagination, limit parameter, or truncation signal to callers." + ], + "evidence": [ + "The only code change replaces `return partners;` with `return partners.slice(0, 10);`." + ], + "checked": [ + "Proposed diff in `src/services/workspace.ts`." + ], + "gaps": [ + "No caller, test, API-contract, or requirement evidence is provided to establish that a hard limit of 10 and silent truncation are intended and safe." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/request.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/response.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/response.json new file mode 100644 index 0000000..8608332 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/response.json @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283549-XqVLYImxP6AnLT7MIlrA","object":"response","created_at":1787283549,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283557,"output":[{"id":"rs_0e9b4e313c6d9007016a87c85db94c87d1bdf0c2ebab55cac4","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hkwvnP_gSP1FZI6dL7Purn8BlsQp5aYokSYNsvHkl_R9VP_saYtljEhNNYiQOOYnDyPGDVRzfDgMCnsHJ2Z1WJzyVtp9N1TrcQ823hsIj3bN4b2bG9tdT6teABXJFMa3PjZRVeAJkYrP4Eo3LMXn-Ac8GxryGfYt3JzmWyyxjeEQKqGMPp5Sf2KbaZLx2DkQBC1N5BDfxArStPCLeP-M6iCDy468eZSUvWVgE_39g1cwYsgMaazo8n-CMYJvWwH7NX1exWMHZjulVeastM6p8bhQL6GFiKyhWWrAZTlkUmABZFCblM_Smhr8qrGWA-jtoQPQsDATrkDszB3VVQGaP7-u9IQU9lo7xEwHosFFG6HbJESAl4ssp5hoDLf_SPstFVY5zcTW5NAqUUtXuXjaRFnP68MsTs95bJLSTPNqH1q-j0hBvP5o8ZbcnFeYN_0tAVhRiEJIwIROrmfaaM22LuqqRGbQ_LuVbnJz1tk5qFxiu2Twsd7pLpZJZIIAvVuA7qkhZstpfbrFG4HVWMGMdUT5XtsLN5LAByYntb88CKqRQL0UqXvpe_xvkYi18E5LTDvjLWiDcYYLPmSdjA59t2S8TT1bml9lbQtFejU3D-woxivrReM9UqG7pW6A8u1vna_ZbSThFORU35c3VHpJflMn0vb0LSeuveYki8rtxEs1711e-5xgFDchUTzwqVQKKVhKrM0s31HlTxsn5Pq6F25ICEmwkclk-PB-1gxVlXiLeiIZiBpQnQ-2Yz53M8aCJsCPz0Cha93a3YudrfC_4ZxHuDUDrjVu81qJVSfGNRczU-liIkIvcRxx783zAbD74W2FCIHl8rf0iOEpVBMug1JUpL1lK-TT7NOeT5ytfq3zPkRVRsEGAgvFYTnceSRHVsm1Kt7C5m5q65RaSPmA8kqzpEpSrCxhRInTwxJIwzDH-llTnnehFAbVs3MdUVDY3hBaCCxV3Xp3NsNtTaz_o5aKWClKwnPbq83PE6HIVjXSCn3D-oD4JfkZ_1Qe9SaY4EOztnT4uH7KbausQBmmqXcCl710342a9tAOIcAr-7ya1mdi7va-fDA_DudtbSoCNpc8I0WB2nD0l2oxt2NVuOKGPIQyyAHZS44B4qKHCKE7luCb_s2PFCqkIv33X8pCExGV9an7U2Rwq7iPHAtR4m8GV27aHnSBP1BYeUWv-IhFEAORh3smEPeEIxmH2dL_K1VkVkeW4FGMka7HALYcfcmjLiGg-QlScfnN7V6j8yG6mhymEqK7m6HgiTgNWqUbnbP9MRVQxkYN1tF_j3YZtWacuVNyQD4_Kxrvn9fO1Fdd7oDs4kF42d90zIeHy0f_JgDjfaZTDX5Mhiv1fcw62NI4aWGEM3ILEhpSqc9d7eCfozKbABSH0hdoOQMCOXntRDzs_bMjky0qAoG-_mvahC3by69DcZrrWa9y2Bl7T2oL0fmqZTUukSvNYVJeGK5Xivvy6qJOb7vOcxoxAk3s-Ton-Sdrf8-IWNwTntasvcZEGLODJvVSEpX0G-1jWqqboKj6vmsRjiUm9kE1NJL_ditrK_fua8XusPwv1pTS8fdm68f4cpl3krLnGlBF7mFkh9q7OHFf4RZTNXyi3w5X3wvnO1frK6_iM21rXL44j5a55WpsTvoInM3mWzF7ofPosP0abHPQjy5g4dsuyPT_PjmVhU3S6z6vR1_nuMrXg8iZABS2iGe5BN20mfIwOvkftb-CKctRCa00Ei2TBF0TzYc7FSUBXjjC8Aq8N9dWQHwBiMIFv9ihaQO7LRClZ597jrtvdJcY20qqQBXHJY2-atFX0FUVDdu6ddhsx6lAKa8E3gC_3oeJZLz9z47NzhbBzsCCYbLsxv7o-OlWqT_CNU9VM3LfaEsv69w92s66EBzj0Y4SoY3CTU4v-9_PQoKHS8am56qGHWVBuwMMz1ZEjhQ42hZMgUZZOIPDZ_K2EKsvtqLtb56Z6ALDQU0ZIYHsv_-IXGJZN4Zhk4afgn49rqVVJp64DTtVrknLCfx1pf-ZQ31aeD6jgpg9ktZ9-YHJpM7kfEw7_uc9XEwJnvk5rnwW17O3aLqt3UxZHbu8Bw9pra7KDo1D2OlQ_4hxE0JdYJ_zQJNVp5cziWj_27J9PqLBkPqcPZe2wm2IwCrqMiHX-JdEr1mPZZYxuJdqGYTrVWOJz2zngW0W2yVpNo-IcNj1azedtiYa7SGAqEgiWQdPOtxL3in60uBpQ8H1c4x06E_FwaJnVUIPee97IFeE0WyDqb4tEgU9ldRmUZD7TM0v6mntP7cSZZm6YA9nOoUlhCyQ108-hJ-YMOAU6WDJVOkuN87ZuI9R02jMH0uiyMjR661wTh7RWm4yCdS8jxJvt3CqXtInh50cHi_7EtQWJ4WmwZglW7ol92JPSb_uKiMVKQHMCE3s2Ys5Ij5Hccrwcyv2F_akUSR0j13eLqGgqESMn-6H4VNeQkBMSfJM3hEPCIXhjCPaa0gCx-qX6vEH6NNM9S9imAkHwrBY9RoqpfTg8Dtr0wlsUook69RvZkMSr3BJXT3mqxWlUT-DzqBnwkURViK_RqPJyDBSDGoEbHRc2MeFR5bAOLAOomfArLl9rZv8z_nuVPloZK6gpQELp-AdgiccgDFFpRCyHOF5BzxNTYPlaQ4akiFqMbSjkrlHZNlm_55xXC0-O3PIauroq4cty_VamXtyAIVts0dnMt69r5KTs8-mJPOcG_VA3q293SBixT5T40Jtuo9bRjDlqq3h85cWtMvH8oZ4wlyTvef4gZfjY5bxYnMD7A52cVeM8-PUPlngN8089S7ScsG_vz8r6FYkWtkZ-mWnmIma0A_9dLAZFnpvfq8OZC-eiHVERTkDEWUtEHK4MnRNtkhlrbfXlmnmedm7QOSUi6nT6d6gHkrapWNCk-J60xmaWkSKBbS3dxLuQkz81O7XLzQ5krnr5Sh4UwMIKNdg9ltB2S43Zd_8dp4nVkuJn4eQZoB6wk48A3Z82t-1NGhtUpReg3w60YmH5qx_8NrA-Su9KKLZcy28mwaMZ_--UJFgYYgf3XQEj_3bqalATRLgVDgvxbdLzMBDemYFBm-aHiU5Zhc9JxzM76uMl4kanr4lBXVr_HkEepRpq_ZrHuGY2AY7OkZ1wm43Qn2cBB6lBO-YOJm5jDTLrSesinp_WGpMHgD6ZHMF4tuFSWu5YjQonKspQoi1f_xpMabvf4mTqC8lF2XTqKXO1TdCCTh9gBp9cOQvMZLCjsBKYu6wROD8rTgJFAfgC7LRqTGVf65Wl3uvzrgXwN8MecOpcVM_GhuE-rbrboT2B-hfLiN_tCHLejcmeHclkxkKZzpTNbpxeLh8Pv3eI3S0eVMOUVukww68VNeFsEC38gZR4IBF0c0WWiCFIERmxvwE4b9XNHkveC6QzaqK-UJi38MB6Eq7TF005jB2X_TKiuDowRCmD28wnBMyo4qdoac9WfC2Va8l3oF8bOqaKCQUd5wB8EXHC9WYnxMZnN5NgxapkyrWQTxnlyuaCj37viUbN0kd9fn5pizOt5Pb9MS4YC2dazT6NCOqbtfEn1aZGyOG-nGGO2uONlVdqzytuekdAYwTMHUbkz5GIHI57afS0bBdFcz3l6sRPNQC0H3HXhl6QLlng8N_Ex85SWY-BLYopX59WqsImK_5VidiQcH_4QzrvncIhWiBA3jYKBy1KIS7Q58pOX73JrgIci36FMzej5FoPv9oL270B_rmacB_CARxVPQ04SA77DCaz75Bu3y_50Xj6laAzOyaBABtfFvaFz2Xy45DIOHuiLKBVfkmACgIGejA2jg9y7FPSwrWtMHv5SlxYXHPmXyBX0zN12wJYB8UOzgR-sSWWuDfDlgFBLf34_F8Yn0UJgz7ndHivCmuDZSznikogiG2VFwHep_cdOll4g--yTBcRwv1lGC_MI0vZHyL286TJu-UxFQM3nxEALWfTuNQp85sYCegBVJujtye-pa3afaoziDdQpqkuJ2Mx2pDNThzLIS-S3p4y0TgDdqr99IAMLU-lt_10c1arapX0Q3RJRUVorJGuUNqNHhdRGAYqYeVMcdzwJt17UZGgtp11SFKCuWowSrdSYhPxpeLJfbUGKMKjijeNrR7Zhf1mKSpHhX0nI5IJ3KNUjA1TmbxWJqyCyXSTJ8D29lFvFKf1S5B7utYHjs3fm4Bo_xkeSB9qguGCxt3mzaKnq-fJy3gH9Clex7BIaTiVI1-oizu3glsIydFrO3xQNgArfr9pK3YJGV0AgFWcyGfETzrodbNk_lFLATp8KU0UQ5CcGPzs0FdUaXVKL2MRofJipcnN46gJl6Ow-Q_a6NmuSiRqrdGjHuWTDGbpwKpq16Mt4jSDoeCdp3IL7NerdEBQtya0JULPPC16FulIVB0x1tRlGuF2Nh0FaowBvGmlOuCDbi_d-ecDglQPg-W7Kzg_eqXt-7eAaqucdQK_61alyyesNKl0kR1WN3-d-P0EcWlzx3HNxsBI9LtZkaOh0BxKKSv1sY8CnaqjqAwkZyM8oM4aZl0hn-Q6patyfd2alAlXlxfNOlhOQqGTWX6bqEURvfm46zT5ZfNY8z5k=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_mnjh8bvrtk","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"The final path segment is passed directly as a property name. If `dependency_type.path` is a JSON Pointer, escaped segments (for example `~1` for `/` in scoped/package names) are not decoded, so the intended pinned entry will not be removed.\"],\"evidence\":[\"The new code derives `prop_name` via string slicing after `rfind('/')` and calls `package.remove_prop(parent_pointer, prop_name)` without JSON-Pointer unescaping.\"],\"checked\":[\"PinnedVersions removal-path derivation\",\"Handling of nested paths\"],\"gaps\":[\"The diff does not show the `PackageJson::remove_prop` path/property encoding contract or how `dependency_type.path` is represented, so compatibility with unescaped paths cannot be confirmed.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":642,"output_tokens_details":{"reasoning_tokens":467},"total_tokens":986,"cost":0.008392,"is_byok":false,"cost_details":{"upstream_inference_cost":0.008392,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.007704}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/verdict.json new file mode 100644 index 0000000..c8e4ace --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-01/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "The final path segment is passed directly as a property name. If `dependency_type.path` is a JSON Pointer, escaped segments (for example `~1` for `/` in scoped/package names) are not decoded, so the intended pinned entry will not be removed." + ], + "evidence": [ + "The new code derives `prop_name` via string slicing after `rfind('/')` and calls `package.remove_prop(parent_pointer, prop_name)` without JSON-Pointer unescaping." + ], + "checked": [ + "PinnedVersions removal-path derivation", + "Handling of nested paths" + ], + "gaps": [ + "The diff does not show the `PackageJson::remove_prop` path/property encoding contract or how `dependency_type.path` is represented, so compatibility with unescaped paths cannot be confirmed." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/request.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/response.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/response.json new file mode 100644 index 0000000..5660c7b --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/response.json @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283557-ZK6Ai5o38q9ALhsX4ZsP","object":"response","created_at":1787283557,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283578,"output":[{"id":"rs_0f54766fb534b281016a87c8668a6887d1b7e82d5c34dbf428","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hscV2rzMqTFrvc5BJHn9MJs4i9CSv1289EzxEgCuUAiIavJUMYb4SipKx8gkO12iWKKmt4WFu3ry4DrpipTF4d7bqVMFGeNEtXOXEeHwTFIGeOnBRkV8ay6B0uYjNoa-MUfmPLdslFsVQUiCjNTK2DioGJ4Y9m6DobuUGmFzsZmVkXjrYNH0mgEZzDWuh9bKdgdJBdPf3IWw_tUQcZb92Ko22KRpjR7RsTBFR5bV8oA9eX02GPUzJ38b6EjNF31UGpwy0LqmIBzYqnnxNfU_Ywk8tBwMcsOXD93gjXeUEfQkUcGr96bqUzFVQGyWoIcPmyQaykibrRHoa4T2s7dXxUPEKvmlfqvJb31d3vghsZE-wGeICXISTNefXAH5uxSFqC8iraqgcFO3OCSF7NJUX7ajIid0DR0z4BA-o6iQQv97iHJFP7C8_GLuO53adezvxBleOl4U4iHECgUNRz2-aNXG2Q8nwnBUPsRaMQXTPBiU9jcpG6Vqmzz9aR1UATJioS5W6GPlReQDrhiwlniT-vk2rG2sSImmlPeOpua-ybbzfTayQyOwUKfrkhj76xf6j_lwVgSVSm0CLM_af2vu7N5q4_fFYJTVzQkDzUT9fOylyjzrU5ALeT7tYaIaW-sqd31nzU5R_kB6PCmUh2CIA2yEYT9pfXFZUKcEsBNtOIgV-LYpcVnWR1vAZoh7bwBinDZHqlLlMxdYY_WiPbKGyicdKFQbyBWvPfmGME1o62tyb8IXqIe_q51RvOpUFXaqJaZqE9ueu8-G7EW4Uo37SGtjOHD0XwoSOKmWfEnVrByNwQYEHsBFEb6mFpKW_e7Lee28SWOM8evB3UjhZ_uFPzdsfZa06p9gVzpi9OKhOAk8pchH-sRks9DvNKOXoGURCoz0NSGteMc9MICsy2KLjS3yyYr5CaG3bCk_WFiPSKnLlqHdjd7TXSjeHed5fOlLRB7c5EJKoFkaTLIIGXJFGGDjtPG6fXoe3y2v79w68sxqwuoKWHO9VTytnU15pAZoVV3DKROShh5sKRK2U5cL5zNGm2PIfT3Cr1FgETzaiKlAJ_ogAQaH64SFdsFo_Yrdqh1Dm560n7c6ANYzrKqqOiTVNK4t9SEW_NzahxljgxuH0L_3UD15jmhNEs6HpzlYw-Asdyc8Hkbm4fD547UrW8sbgRx8rJq9hqE4GJDheJCu7etnLYahiYCMOoy_3VYv05SVwiGmjs8-VihOLMxHxPJg8ZkWI3lWWjXpbxOu-9WjJ5sKp1KTA9L5g-dj0IiQVxvxmuMT8aAFCUlxVFY6NzBmTKRmCILZZuhEaBENxIcUOKt3Ei0HV_tf6NlenitGG_UrEjCHnKYTNN0uoUUpLYYkDp66nHnCIMboftnmf2wV-phKXlJHK8S9KaywJE2oP_hcpR6RKQboMi94MhcfTqj2etceOzbysQXQtVJDIf0vCicqJQNPJ229hVkn3QFSzfxnZU4mFd3HGMPyF3TvWODgxZ6tA6lLmjx1ogdgNIkQZ63MQDHq26dP6T2Cn3iMsFKh1ANAaTLCJ79acNfrNKqwTE_M8pLg0ipYJeKjxTJopZrERZ3pKV3mhbY8VcBE9JsoQepRdVDBj75Rc-GOyHb-lmVbZ5Qsi7ClTI7FiGlrHUEkAlNSz1Sn87c9LttHXp_74pbyiAxNDl9mxQPpxc_ulL9BzsvslldlNt6V1tIbACDAstnHyVCWZX-0I2QXgTaaPM7fsT9RKavVto7Lc0LW0s-i71eL_xu7vJt-_J15gOeKugUTJFNn7bkRjVrPPxC4ymw82PS2HiKlu24kqgo92jyIODc_2XHEaQt_e1u5cfeUg79E1YpXS1OrZj-W896v2v_CMo2f9V3DA0wYQWQtNgBuUBGUoqfMi_VIrxaNhD0fSc9RXeXk6AZ_Di_98NMrvdIXz3jtsqWRLBFhc-5tq00xAlou_vBaekxG_NFSaFC5Eao4SUpf8mu1tfOG9QSeuBj0yMkw1csz_TspAK7HKBbF94YYt_zhMdWRM05_AO9wfuAFGlMeYo1XQjN9U7quYwNoK6jlwiBqKx67uh3fkssgz_-VJPEuwsmUFuIzvZzcEL9_tfhFKPAyInaX5RNlBPMQ4rhSlE16z9TEtmzmww_Nl7iJy0lh70T8hKyiMhr7w1isEP5CF-RWJa0UFCEofKVSPkXi63cUD3ea5Pj4ldk6oAdzrt4NByojsiZTWgydLN1M78p3g78SaYpPIbu0YvZ6QqBHmuDfM-7a90TT2qS2ai6eT9uf9ZrDRehRQ1uBcSM3pEM96-DRZ5opZ5vk7wiju9z8rrZA_2LMNBgAaJ_usYL52NeFJ57C-PqubEh8SjY8JxvvEtjLq3SRzfy8IAI80gZA2l2aw4HhwcrFzMikB8LtH7qBcDeADUHr8oYIlqaW3VPBXTm5lrawwhj5zeON3tQtxVrP-JBk2B1H6alZgIPUMt9JADVrSLu5pY1zRrULkAN5hWSGpgzS7clRPYpqh4FajBcHpfKaZvcg-_Mi4VsLK42zkB7KFmVyn0Wi3K9AmNeaDjiuDuXnM3k21Yt2wNI2G0nEGPz1-FwpTXQ5PUvigHzw-L9hpxsHWRM7UeYNLOnPnOIV6F4Egkw1fTRZHyRBgATy1NwbU7gFoDruwmKe_8-OMB-SP7bjH3VG1EP_227C-bU8tNwWPa0UTeFD5CELW3qVWmdMFC29pY1t1Ao140mJx97LhnNgWumLr6xsw4yqdc19ww3gc84AtlvMWXOhxas9stkS6Z3FWAlPlx7nkEEOYiXJaeHgau4KiAOeqgl7FLAaXaUq8XiR9bN3xE1eZYmOEa45JID695BRzdAJI6z8R2XoG_grAfiyyQfKsp3cpsIpOXTBXBXEFT8l2ffhcsCT1ajxyVwoW9gNSTEtwuKGPRgRLorYXvfEmxF7Opec3m8zyWYrcz0vyTsK1FlBwK2ypbyqSU-Ysr6-x-5P8MEfgTE04IbvNmlDgE4M7acT3JqBzr4KcvHvwrnT9AH95Lm3anPvIKIbIBBWp0xm9ckmwH7kLCDRMoeeVDFRLLc80GvNWNWdooT2gDuZJbyeuUOy-fO4F5Es1Ak27bSAu1QK-smwSikiCbazEbF7XqD7MkU1cFwaGp9z3hheE7hjN52qAF_0Z2tfVTH7SJLp7GnNiBwc2royxveRJLIWadL6Jvp5v521Q6vYWRUy_mslokueEw4epcwbLXC92eu3ys2hnTXvj-71dR8Kt8vX_v4VweBhjRfV36vtPjqALcJdFFx3HXKb2YcXwJlDq1b3p1cGgRsClPAtz1vcF6mSUI5R478-SsDQ4aVr9FYWJa09-YjuqV9V0EH4tgih_DGQxEhc5fURMlsx5DFWR12ji4yllHEktwVVqx2nLNM1Qz8ySPXt5JahkqH8qccpLRbbopLr6Coa_1G1Xyvd1Uex-qf7CBpA1XKjwMBc9vSWBs3oNbvDSHp5n3Nrf0VSYS0OPyV1pRggMLu4k-rGszUIYiTPSNWcalM4yH_AnW_o6VlATKVbaH6qzf69IK2LT9p6tBYxx3FbeV3kJaxHZONtStpi76od4hVdIzlq9cdwXyEo1PCYC2m59pVfiC8XodOx_xfpXQUEEaERPIjpy_W3nhxcuPsIIRqi7aMyyRMtQs89lwItWF-zCklF6eu3yDA9dL4N4WbNN2x0KJl25CFN1mlQ3F1mQ6852Y6PAu3tNYJGjcS--15yQvDElJr5pzwUoZc_yjIvlo1LygaQ0GK5xwYdsMffYJYiElRlQ_7T4cI0fR-Yy0HGGgXzKgz8oXks_TgB1teSe8jmzIJL0O2CRLaWeqdRt5X5_rFG3jJH3-sIkIUizspW0T98v-vzVvM3JtChLxqGxEAKHv7ephwd1woOi9Vb8JFu4qrkBdAhfvqd-bj11jH7oqmEmeDZlI-feuMr4ouRrn3jwTof7K3NAL59YRr5Z4PNRHPkdQ3KId4h7rjqRAn-VE88Om7j47OcoXf_7vjt1x8S_m_7v5_ViDPGJ9BqnKLZwNItsOMhzVNWBnalyLuYMEq4wbTz28fVls1XmEXyxkgkHQhSS_w6Krx7Gwv3kYR2OiLuUfeSY0qSRo0nF4YU5dFGpHeLeDrukAgwdWUpxZ_SWk6XnElOxV5zfPutTWXLDUynQCaSke33YA6n1KqtiXXvrT2ASZJ6AykjIkscJR4eZUlvByOgpjajtecS1FrzlIHKd0a9nFFHXutWu_jnujaC5drn8fQPL9yaGkMZTe2aaSolzCnWl_Gbi70DsrrzmdbNX0_6RlbPSfR6W7cpUR4V7ZZgsdd05uR9kRJ_aVEqioMsbtwDQ94J2EJYSQN3s3YpWrhBo-D7PLf3llmsToguYEWRMS21Xo3qcYl9v2MMDF5w1yPgIkPTn8TswWGgOa2jC8ghbDySx2jNCUz2xvUKj-HWIelntg5HXYvPaplwAGUsJLOGsPoJqmI7GYDFgaGROHk19D9AtPiyMk04_zGzYL5dgL2Oq--LRi9qw-V9JUYOak1Jwk4mqqDFA4uc0MDslod-QkulQmHdmHzpB9pBCKjFx-wmr-FzEi5kTpKyBGiMxzDDJL4iIOKEZ7UBeFg3gZFkc9SE1K2uc1gqjmFz1VEL7wyXsf0V8QD3rTQmSzmw6pTHmdMx--EJJWJRSfzCLeFjiyC2OYWAQe6IbGxN02UVUcl0ubKNLfWNSyv-L01BwIaPHvvxx9NG6TRDIb8nkjRlvHTEvbwmpeGWcQcA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"rs_0f54766fb534b281016a87c86cd55c87d1a315402914e088ee","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8hzJ4LRDqg1F4TlWCnvW0CoXCbVaDq7SdXfb-KV0TJ7OuEVrmw8pBFAYc3XLbtrW_sDNju2HRqREuUJCPQS1nS1-l7yt2ziBCrM0ylfaePLSgwe58dTJcSnh8GS1IeE12Ro4hgVULXIWA8E9MjOtgzpck4nATz4KcZxFSHhdn6qCCPya9nAGpPfwGolAs4fAEFyRxnHAlMQ5eT446JGlFW_QA93rt0GzBlEU3ya_M76y15qu0w1ByUsZ5weQvZbMX9FGetoEdhwbWe-HtyaHLdwXAyss31HN6BVOIG8eaeCbBS46cbHlRbjYPzlcUOmnkEI0tSXkj2olKO_L-G2g0lqVosylZQwCKJdDQ9jfT8ABN8DpIvchyD7HOlpczytzZrmcz6SGrB9KiC_xv2r07tBjk2e_yT0nKoO3XjJsLXvE5bs4Gq1sAZ9f8OlWN_0aW_OigFUasCFIdXi_n2vkVkaJblzeUDB8eMUbnChfT0PzEaI5YoM9sf_1MLMSfiJwfnURYwmgQ3Ym8NHP0WUOjlPfiQIX7N3IhZSNZwJ8ecDPYrOv8xTtznxy_F2y12dkdvxvmQfmc7U11juzqIZLwG8p0I3v8EbLciPa4la7WjM4GMzhgVbUWBj7QY7QpdakjlYI0Zd44FLJCz_lz_T1ees1GAJdNVMNAPcW-dbZVAm5KqyhWoTds10rWMpEbMHF8Vuq2QgRdlOxE0C6gJUhCO40eofG0eexIs5-azfxqBuGgcXYU521_Itg1AfePtj3ijk9vkbqOjjXEfI8Hd3tvTK1b2qJsVNVIYNUTPfxoFrGARqMRg4_Hqdn7KiXN2zY6HRAxiGRtvFOeVG0z_kIw-7AywGwDInLA5VWfFydeiMBk0C8Szx0AFLxh9__Ghao9Vopd9jsVuw2Em3wrIi-dsYX7pNFib-LRE3_Go3fFDpQSYXxS44qtRFd5SXh6zzw01nNtcg6grZWMJLmSXRJYh5n48yxNnUNyzIi-TBJNc9IzyeSSijBAdd_91cmxiBImeg0IPy8tuSzsA-y9xNdtTJfECI21h53PIhTb3o6WRgKwNOXsLBd1ntEIyQOaGG-LExLjQAhwhO0PIwIMLviXGT0IJvth2SadiBolaE1YsbmgwoYbt4jy-LjhOt83_BDkHlPg2Zzx6V9O8ezc1siWw2b54eqIzQB2Nt2hoZcB4jWxx3tvjkMqCHnIJoKz1bOXeVJS3n_Qqc9LPjwB3iuDU3T0TKt250aw-5AwCS6KymX4Q1IYb_gkneEBf76li3L0G9VUoHG5eECFbNLbHQpgxkO_BmMuD0YR-HWEIddcqOG5fBgmx3RCvIxPcwAXXU75qca1duSsIOd5sLOJ2oeQzKc9b7AJy4tXTIxmQOLjqqcAV23g5azuQSXz-yNuKHApwqmmK79arTR6hyPWwUaxG1wqXlZlVZiQ_StJP4iPVYhKUzCbtIAIIyb1goiKYdVbp11NapjgZVf611wXp8F2zUQrNGLXOQFaXbzO_LOiOUfFu0K_kXL_AW3-HNa_AtWLxpkiGIbFRm45XCI1499-Rgl1tNrmZqiam3lLh-XLtG6NmWmACRgqYb-X51cfz09xsepM4k70Ke4KS-I6-Pn7QbBfb3Uz43i_glxuMWC6gjOdgXG2IxX-rJ6_NTNY-F91PczOPH27z4YaNUccXEWrloGDBBBSgYtH5OGqe3-jeDXDYph0olGvjZuubpORMfdMp-ZHsbYNFLmmmW62ikn07_j4eVufLRug_1HneJCoJ_UfHNeQosRACrjw9Qgg-zs9SOQQwXMr5MXAYyKYk0Xs5P4atezqmG-qdavQVYKbVDuXULumpqnWPxu3Y2eiNoe503Qn76x3JeASnwog670YiOgHgdI0jF6PBDHrkP6N2UDIOavQqP-v3CRVHO5XZH2MUXJn1UCUFcXJWh92yuyzK-IOxosyUSlUyDQfv5qgYo5Dqv0emq_I8PW73SaolZm0FCOtBECOOedYdWMJUE6Lu3IXOQb1GmxDwceawO45JJtdF9ihO_m8Mv8gIs_4Y4r9FFBfjKUr1LJQxwmod8zayJbDal-0y9u7Ag_z_DB_0BejLEosTF1kOsdIBg-7niL2W7TFayod2ZdN_cjj8VlEImvSgOZUz_M1xDLgWRoGNdtwEorVS6z91wkv1LdK0wnmZkP_pSN-EH6IViPrPic044no0wdnqDgRM83Sm9TR2kTNYNdZsIo2qusG-da6mx8pQmbytx1uK20xoRmQhwXWTFalP3cu6sX3vH0CIV6AGIoFpJpJoYrpHHGudS3SYDuhxjuNX6iEdAQYCnFQuHNaYei6wxN3b9g6eTpDF2CD9K5o2-c7sVtQziAebx3TPYzpKoSbdQ1jPDg1vEv0JnUT2IawvJ7EDCw1t_gpuPADJeGXe-xoEzUPqpkBiVPbYPaDgPQHYwZSDkygVNxmjhY2S7Y6FTtG_3-ePInokYXkRGO6t3fcNI7wrGdOQVShUn6tCqUvpmGXflTZsQx8-O6cPstkTYNOp_rioaC2g_wBiZxO6KjWZI45MMLqwZweZPD88rlzsC6fdr_fDdTMFA8GVrzS-2rjolyfgPk5PbhksDzTQQzCnsuEezeGStFgtzD_eZLyMWzjpEU2ebnkkeelMiN3AgJzgugHfL-VQqUZLxnSZGgozoUII7j9Dbt_WCy-aGGEGbGLbbEATUBAMB_7hwFW2XH9n969VfCV7wAGAuPGouWjkF6vR33CLKnUNCWAUX_pva4Qhy73aDjnhaQ7zU1zdLZIUe_C0SCqrxnOMitTLxGUMgEHbzbV6hxrKbcxlxvo314MHWPBlFd58Wp_JodMJ1mV11yctS1J4kIZIkPfe5iqMKYQW87_2N29yuKNr1zET24cpmZ7EDbaGddu2ee1w-CEAxSI0h7rZ0HLTHmeLo9HhVS7Xa8rQt_qDUiQX8d0t9TCcExxSzijBMtjVuO07-SSmTpsqedHlpa9Xs0AbGct8q1r8Kta2hCVfnwNROF8s5J42Isl3JRfkNLixK6kqf0pRFruROK6Gq4K8CUa4rMHxGcKCeGIWhPWdO7kG8gULCJbjP1doHg4YUdBNExfSrCUCdeXrubjryi_0VIaTvGrhCAX69URqFqBGJY5pnhTKqje1km3pgoG6_IlPu93QM1ZzdCWuCnLqUNVkUEzyaQ9ThsCpScurPOUNoUbyY4sV67ywhh_5tnsMsvZuKvQKuCW8Zp3ABXoDKfCWwBwlAtk6lZXcLrNhtYAkfIWj6jTXHr-NAwhNX-u93QkdM1R-VRV2dEgUqwmE5ivo8KV7iViajQEl3HKnuiy8HTlORWIUa8pJk5xFm9klOlIaQdJF4wP5-KYHjF444Zu7tRtG6Q1pCmjWogwjkXfhB9Q892lBzZpSXRNO92wHv4MvQa2Tue49LQUBkNcorI3-iY5lwgNei5Cuolf6pu-JZ95KyL5qvseLKbkNyJZQgGJa5_mob-zaSJBHFL1OBz0Mth4BQ3oApvrXot4oP36HloNih4lLMq1BA4cMsoL1NrRMD9QYANJvR0usZT4P0Xg5GlC40fNcrSic_UhROCUi6S4ys9OL7cs7tylclKQpxw-2rdWSfaIX8FKyOF9KZvNBosGAsmmkX4wwB5kGnPPj99pvVFOjSiRHatzDau-2yULX9gQY5a26oNpn9WDVut6Xfnbx6wrlojmPzybBbn36SN6bXlbLinMJGNfTBgDQs7O62Pq-M9bjRQz5LJ_v5lIBhn_mGD3Jl5Z2qoFcajOVxt0zekngK9II0r227PTUeVL0LqPaJPiZeAlKLfDaJgX46YKj02p6tKZMaR0uX5FrN4aP2xbWibla_xMNzDdyoVxonIp-0H-rUAPevd9QkhhPXCcyMBiu73AxnUr5qD0aEj_w03CXHHksjol3NJzNbU3Afpq_1O3-lIEV8QJmUKKKi1rsyiBj3HFQSABtQ9C1V7dLOv6ngR1SluGiAz5SYw6Pdf97NLqHiFy-YpNJO2VOPmOmnw36NN2KvfKwetJym_CESrlhZ4HxFPTCQnK5L2BNqeungeOnvZkzoEkcNoZiQynDMPUpltzq5pmTMFjBjazn1G0MCv0FIzY2lmSVV6VG-rW2KKw_8h9iPg0jAfnICYigNnEMnfQYx5y179YxhSo-lMahXw3bFjT4OVTvd3NN96WGMohSwWWyAlEWXHEt6xmVDfeDeJhGZbOv8U6_hv8M_tMhLSK-1rQvI0Blm3TQP-53TDkaWWC8B6C4-a1oavOixfJSeRUUFJCJwjQSZzcvTvLBBtT2QsC0lo5V26XMeo8cK0WNUVyR4DmMcRqgRbIuOor51eTpyPUpbiiLOutJKj9_NMthsSjVMcqLTye0rCP3fRBcUUl2IIymRm4u6aDXKrHkE5UXJmYOMi4D3qwytoU9h-l-L4HvJ6ITO1jpj1_OQxQB8sblbWoFZFHgZbNLXNnJ0o9Vt1N-jrHDcY20a6cVyeQ_op-9Bvy9M2p6eaN7JBX23t9PEsVfy39k1XNgq92wgZCehgcoRwZoCZPmEDBCfu2q2uAt6Vm40bBEK52nyuUHmg27v38z-9AMFFx_VHAFgrMA-Nq85ZNpnPUkVJcoW3dC9Vm_UiYubR8pa8JYFcg0N-jKSH2bikMenf2oBy45ZcfuYE57aMj7_R-l7TMS5YKt7bHqKaEMBAvBdUA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"rs_0f54766fb534b281016a87c87385ec87d19e1adcd2bce864dc","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8h45ydr8jUfdX72HTyru_QVdPlsAkXSfNdKIHAPwHzF-Wss_iwfZToD6yZHIImKx-uZgBG_Q1_srm4LNMxOYq9rL-0F4ebPnK6KFnCOufeLraemMUIUmFeYjtCsYKYlVP1yzcl3g0Ho3caO5x-5VMNVoJE9j1ag4ZyYsA9pa9DEr-Jg117am_0HWw3ELvnK-G4Jgm9KNJm6n_ehwDBhu9VeUDsTP2d0ozHr-s6kEuyOiwVFnKv45c-cphd0UMk-LtZ2syAZOKgZmv6gY-pfpxw0J6tKGmvYqpEPU4ap1OrT6UKQiQrJNMfdHUzNOK1H_spDHu4XTHoSPoUsbAPCu69-fTbW3uUnDcN5FKa8sP0iGBWT5OuPU3xRDJALNYQDcp9KaM1ViUrMK5wSH0vrQ_CGPSQHCJsQsmoZ9ULfN3KgLzhpMdZMn--e8xqq4ZkRcN7sB9D1nyTN_CxUGEgKsAk2a3OxJE9HJ8hCIl0sD7kYBcau6NRUgvE5KQ73nPHfzHKYT3R8WZO6j3wWvREHDHA0U83tTL7GUMOrOJlNnFb4V-awP6cY-2laFZhf3H030Ow1UbC0t_kuw9qqxD-bKNtOi3csQC2lE8sKHvk2XkmT4nh9jctW1GAgedy4TQulwhdz7p9RsJfacHZTCZqyNK4fYQND9v1UExDKKt61ZOexfkaGp0FrXTJj5CP009cEIwyrL6RwN3Hju0a34SGtXAXIEhnMEjLD1WGftqyQv0K8wqRMawX1s7kudQeyVf23DucjX4H4ipZRcctlmYcH56SfGQ-q7wxh2mESVeFFqmlG4LHklK16ITG-DClyis2dCaluaZKbqM6q9ckl2gRtj-_BdEipzBw-4qonTWGnTR9K8LUwXgMhhhMJyWq2E3RHC6ahOl6UTjTW87bodqK8rjhA7N0lfx3UD6rKuwoyqMvlZx2nxAFg6pKEl82zHf9XSETEZ48m1CrY_jZIsvEZahW6xE7BTfGnJMeL8rX6-J-PiN1dZg82ckp2vJCgM40gfOjs3w2wk4mF2v47J4gsYB3t7K2NDJTiO-Qd6ylUVerh8i6XqzFT8xZJtJnb8nVQhIKDcRV32NfW0URoS7whCHcP9RZkyl5Lph8UAAb6uLi8lCloVU1IDMWOGWl_Ear2rPMPAtho0DSI8_8z3HD8WSb81SK-dQ9j756aLmhgSNzWNaLVesTI2iKqOk2wtLgt3zWm0ErzIRS1mA3oIA2tLXqjAykxKWZChCjS5EC5EPDjg5i-nL6EBlTaFv2837eLDC0abCY0S16CZIr-ZkWhnpYAHERYDUZO4-WypXtLv-obwmg6_VV586rMdJd2w4biWwVQAmLpK2CtnurqGR5UTawqevPIgBaffUxMx-D1b0FA4X-vUpv7cZ4k-p_df3Ki9Mm7v_01gNr5aenJSyCU8Dtb2ZN28lO1dft_BEDX_7AsXM3YRnj993yzXRdvifMkaYwDPT_ICrmMk25JxwLQZTzEQnl1WdcPhqgqm6Er_J_gsQbqbsOsCdGqbWBjZoY_klfiXpkpmJuczHCd0U7fu_8DXiH8vbhmg4ybfZgClrYzcNOgHpKCaIXOmhwNmxnsVrHj8iR0pv2e1pdd_eY6MtQHZ3ci4K2FdimRduLUvrgAcrDDqVKmCIV_ZYa0tvpvPSlpdM42wYQ2V6r_dS-KY9zVOC5XqIMa_EJH0dxG2T6Z5q9GuHcsKv0fVNxfbGbhc34KnABkAXnQHWwgZ6BrSEbcVJnJTuUwbsCqARgIm2SuSeX_-fnMjaMZyoFmPWhTUbdWkQBACG4ARPSM0mWAC3suHiO5CLs-wKmuk-00T2Dxy88mm8Fu4dwx4KVKJCX6yIUEuxy1SslnRAQmXkHJxAIZoRCYzc2q8HEod-ttI-XdJezLUKogp0fuo8l-cnyf3SEy9-OpEo0g4dnhyY9CiURF9WanuES7f5_bs5AOq7qSo9wcUol9fk_O9ok0z56nzkA3UCGcyYXItQdLFgJm4G9ha5P2DjewDeqitEqa2lM9Z4KoH5SNWTiTc1Wm5-C7SVpExkKudulopkWi6rftBhCD9ssSEC26vnMkZSMvUu26fxlnj2YetpPRA65CNKn8lpx5DZnnzJLrPNhJY78Dro-ryk2oOgBOXWlmt4-_zKDL6elfZwH0qMDyMqCBYaMNGn-Bh4Mzx2LXkTkPFkHPFw9AdY5QkzJ5tjf0Fvqz6p50dnLZqhRHJvlecwBINJzQAs4Vpu3YsOFUQ2MKZBYJ62D5ngFSbi9aL6VTn4MCsVN3BuqBQwxwTeJrJTtffmk4DiTJd3Z3gVOPtqaquLLew5xkNZLSaO6bEERbSg_y4bvC4DHRLhMKKtWzoRHGT8aJbnvusRRpXhlpwDHtrymkgWg-ccd1P0ZeBSS1Z4ksxKu6zFLFkWE49XBeYTj4CJiYSeWUF20BUDntdc-rw4vjRHgnoe3aNUyVP95jqpt-dd5xrwwXY_YGI4PlxPylZkA-e_gl7wKK-S4a8h7jFDmKJ5VezAOdGepFdV9_c_JT6JKfbObQVI1AKgtll285IeJgMhj_kBzlQ8VOYxcBYxEU9yt3tfEoeuasucofeoewjtxdhTGJ76VwPQjuTClrGzazBPp925dwekJhj_-un-zjKTdY54dJzPpPgOadwf3qJyUKge8mJdCVtfJrfiF9S6byQEra12vyTSj8c3Sx7COVV4cajD7mJEPBxQ1hnNGiDiHPIA6VX826AMjVuTIQVq_dgTjv_XHljH6zCX0SIZK0NgsW3ebR5wIesTq6Pw3ABko-cP3jWzz47vJjtRlvrg6S6G3S15QKIQLSEAsv_oyzMRPNS_7MJz9uMD_urWcHEPJ9x8of4s6DIYlZ0ARmCKmcj7hacs_-ExnMSLGIQBwbUlq5cVPviHx7X-yZVet-YiAz4a9pvXtTe8_7-_6WjGqEgkP5IorEpH_y0BRazkGc6TqGMPHrCxCB8CbAOwoq3QUYzDwWH4TebhOfnoSYLIBf910zigYioNj6HnJd6sprHCfLw4EY8A9sQHnkP7C2XIFoRe3Gu3D_deDwg4NT7QAwFbZIN16YgbGBKEW-2hRktvAWpEvybP-kLSvcOWBapXhOrGegjjndandZJICfzoI5gb7NIBDBx-dm8X0sMGtU5nlKtgGKS7cPudUmpGQYHsFhxnpxVR3i7BRsLcy9r_7hta5WLKcHRf8J8ezDyP3_NkIfeXbFaOzBKAbfr0vQwe8rAVOumPAssFsShjX4M4E6qmwWPtcCwLqKHB3aEp2lcCX3MvqDlXxw0pR31tW5LM-oX5hJ-L-rz5AvLb2R5fFoNwop3suJPujszodYXY_jAL3FeLDtlEFvAqi0VIO9bw7Epn-xLBr5o_NAUeIqm4YGjaXhy2fKkv64-H0W5f0Sio64iu5Ekfw-FNxGeSXdDc9eANgUQrW-NgFe2VujZZ5XhVBlZjQoXiIywC9ott5kkUAlByJDxePAwkBGqO4mqlgSAI-eKOOmVUBE6UL8ihzfql28Mr0IVIZkpxxtP8XErrseRototOEhnVMEPeToAjdge0k37zgz_39SACEq4sffEY7QmcEdGurXMK4duj90r-_M0Y525yqGzI5iKj5q1jZmAynKC3MKUKMCUkEHp9wrhO9cXePUeXvjp1MYkSnVUnQitCTX5SfrHYcCj0MjnzOSDMzXhI3euSgXEa9GaK_58Htly2w213Gx3bRmkkleTndCSrSUgyo99Xibcn509xUveOKWCpIMggyHVZdIefswWY2TNSuKhjCpkPwM1VhXV1W64GXZXsCIu_vfUE5uqiHXurzz2iiRJzp3ypSIPag5s8D1JRpfIVABRpDhp5KyBklQJ3rbW6FyoVpn3EdBV3TX8AqOXzb8dHESftyuBJ2XI6ChNExYhvhP_hytlZdg2OtbS4a3BmH3nSBdRismA4Hs1bi_BBHbpQXDVRq5DDyVAKoI7eoqkZRvn9LdfOt41ppXQQhLib80UQiBp37Z6SP25YP7acQkVw131HBZKTATMeFsFC0bgLlrHXXdU1cuTprIdw==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_e4x3szm6nkv","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"PinnedVersions splits the path at '/', then passes the final JSON-Pointer token directly to remove_prop. This fails for property names containing '/' or '~': encoded tokens (for example @scope~1pkg) are not decoded, while unencoded scoped package names are split at the wrong slash. The removal can therefore target the wrong property or leave the pinned entry behind.\"],\"evidence\":[\"The new code uses path_to_prop.rfind('/') and passes &path_to_prop[parent_path + 1..] as prop_name without JSON-Pointer token decoding.\"],\"checked\":[\"PinnedVersions removal path decomposition\",\"Handling of JSON-Pointer-reserved characters\"],\"gaps\":[\"No tests or path-format contract are included to establish whether dependency_type.path is a JSON Pointer and whether remove_prop expects encoded or decoded property names.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":1630,"output_tokens_details":{"reasoning_tokens":1444},"total_tokens":1974,"cost":0.020248,"is_byok":false,"cost_details":{"upstream_inference_cost":0.020248,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.01956}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/verdict.json new file mode 100644 index 0000000..08ec402 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "PinnedVersions splits the path at '/', then passes the final JSON-Pointer token directly to remove_prop. This fails for property names containing '/' or '~': encoded tokens (for example @scope~1pkg) are not decoded, while unencoded scoped package names are split at the wrong slash. The removal can therefore target the wrong property or leave the pinned entry behind." + ], + "evidence": [ + "The new code uses path_to_prop.rfind('/') and passes &path_to_prop[parent_path + 1..] as prop_name without JSON-Pointer token decoding." + ], + "checked": [ + "PinnedVersions removal path decomposition", + "Handling of JSON-Pointer-reserved characters" + ], + "gaps": [ + "No tests or path-format contract are included to establish whether dependency_type.path is a JSON Pointer and whether remove_prop expects encoded or decoded property names." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/receipt.json new file mode 100644 index 0000000..c52ed80 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "0c4dfb43f2c3213b0296e53eb1d497f1ed3dd199a30e7d7e2345fb08ca72d553", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/request.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/request.json new file mode 100644 index 0000000..a8749cf --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/response.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/response.json new file mode 100644 index 0000000..2325b44 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/response.json @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283578-19i9WskihTXS3Xj84HUO","object":"response","created_at":1787283578,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283584,"output":[{"id":"rs_0db74e85ecda11e1016a87c87b803c87d1962e34e2e37ae94f","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8h-DRuHSCcyWxgi6qbN7u4msjQmYIpQlAM16e0VBoibge1l3WW-Isnqq8rFnELX6-LtsHNjB_USGXpQ1S4fLiO2U0dZxMcgRTl-BpCnoO7oWhc2a-q_ZzzHgehGTgKaMtKiGlyc2FcIa71t_Sw6qspkQOlZ6bX85sY-H1S7XH1PkhV1hYZQimb_YZvFHEaJM6hDu8dSpaockiBzTFdzlrhWhcYZ65Ejul4wlAiYz3-n2E3uwboc7yh9MCP4K1-q86cziWH9ficKhl7w2gpTY1fBEBa_svWjOjmKUUpW6UEA9OJ6ckB7VnfuzCnFJL4NBaCXZ5WjLjXSD21lCmpMyVSnHw8aJ0Jt0nGUQ1ravqqcNTnThXJaRygJD09t4Fz1KEmZaQx1h5plajlFDG-F3R1omfffemK3Am_8CBgpoRh0GPoisQPZmvn_qN7j1hjt1Su12zVD-N-susJUE0EQ96aHS_GTe7jk_5Fn0pKzKJzwuouVumcVzZHasTcmfj4SqWGV7S6fW9zcXDcHSFMLbUtBEIIEn7w2xeg2ZbyXW2Vz1y9Qn1AwYCUs33MYQKbA6gbStP69z9_3MScDe1nbXisIQ1ibvI8t-a2ZL5kijr1bCmOZR0qPBWAmKh3dhPGmegGu5R17iJB83vlg8JAxBOIk6oyyga0wIwaxY1VJNtQjNkiC9tGvDy7JeR9ItqoTWdVn7B1zYJzZXqhjal0ggiG-eo5z_LFmR4M3hXEU9OwLogxuWsF4DxjNq7IrsiuU4svfLtqvSh4LcprvLH_YfLSB55pOMKolGGwaJbP99tx_jOqESPww43C-_7-S81kWQECcUWYp19MdrPDWhSp0eEVpxiCwXIvLzoKrDtKzqwTMFHfYnzknS3OdpgVu7l0EjH08ukC7K2_--IKzPJGY6pajNJVL6hY7sbD3KnfxrBmM3_uO34xAQAcRso9EumA_ziDJRbTRWmIAR5MKUm7xoK2oEgpxRDO95CR639KiXv7d0pN1mi4C02qBCHTMramdYKVgTTNDhNvWr1CBBLrCHHfy8KXC2bSALvK1Nb-LAvDLuojoQmcbmFSDJ5lZ1QydxK2GJQBszQa6G2paraHJn2zoEy0MC4dIflrQ9Xsru2wnkZKy4vpINH3kquTXKXGnAHoopuzxw1Nh1cDzOrv9dRPj9jYtFZCGRK5A3hhYSnQnt_eQQpS75VLs3GdQn_An_I9AJ4flKzfO-OpTp2cgCpjI1V96TuKOX72WYw6stJnvXCzlKANFIKDyjT1AqK2nOfwCcxEa-HB-5MX94FdR-n8E_8GUOo1mywl2-DR1isk9JVECLjAGjxKQeJKb6KNuycepoBbFy8kOGkHKGwPWcnTisBn1hQxCrrL4MK8t2WyqKNw6aa0G-2hJfl5diPbi4ISzJsyO99rCHUZ02bLSvA6SXcMVT7nyKL2GIiViHA6OnNCyAc9PTz-7MoopWPVZApnFXMAAZ5lfLKgfknHADOCTXIfKowu_546sYzGbFKi3IY6JZx6x0A-DcwZe8KqH8xhOE4ZmLGjTtmmS6-NsTYpVrmGuGSxicch4B_kEBP-xVsnX6LaXtiN1-Dpx0yc5kHsfrUtG_kEiA_znEWHFytR7EhATJyjbc0li3Uwn14ZNhApDmjoS0QrmOc_cCf1b3mHjBxt9qFzurKtKVyV6VvWH70ks1oBqDfPD6HK0FIvuZe_c2JKlRy-yCU-How5Emkgy9PRnfkUMo0t0B73LORDI4XAAsG1oqGFrF3SPW-g1mD8Kshqn2gUr0v6lD8lUUNcN-X78oaNG-n5AH4kpRRUa3JEwiX-Ibm30a1MWnXoGzI1i41iICSAUVpg07eQ121CtHXO4V4a7Wa-53BZae-snemN4_OS4LWXjWO12rJDccKtXeHGyGNxbY5Jb-k04fHrtkDEmqJ7yWWakZQ2yrHAGntFygkDgDhXjjpZHLA70sGS3e1KkLsYB17iIeXpAz8Zh9zT2qBwS1UIg02si_3iyiA63BD42UETLPdJBspxrpFYrk8s1IeIVlgJpiWM-Mj8t-cu7I-LCTyrDPlNu5TpWoePYzM7BXjeoUUNt1FQPNvX2xWFr7KfzdPdFQVQE4aMZJAoomoWQKsjm4kVEDQQ5l4WCW6-KvtN50uReHWJTgRDKb6yrNZOHkYIoStLgkBkzAPMUHtvDss5BBfHa281NDKF6FQ_-QrgnQlHZZP8qd1IOnjAoiQxzpLPBXopC2DBM8kAzFl1ZzH0Xee53vehrUmGAxra-H9LNwXP9VZg6OpJ2xgU20aiKg2nta1bwzsfGJSi67ae8yABGsugs3CYBosRW5ssp0sWQEX3PbI_38wLthNui5IWqBdwArM7qtrP1UK1EOF-_r2B46pNHf-A1OmJm6XBEgCCKbhLne1DYoZMusDEFjux8jNYr3X4hZh4f6i3G9xeUqs304qtrv-nul8hwbLqltp47_LJmnqup_NzOrdYAMXiKYDHv3w4fWYiYLpV4H7fYlfiBxKYjcmpHGj2y8NyFeK839Jr-WWv-unAgVvFjf1whHLO_Whv87_yyb97_0R5pJNuAgr0ONxkn26mEf9snsQViHcwD3Gd3AImdoiUzVXnOjmzxr6AbgU854ecUfyNM6tGD3-sWKq7XbA==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_3dwdj9ehcv3","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions now derives the parent JSON-pointer path and property name, then removes that property via package.remove_prop.\",\"The split uses the last literal '/', preserving nested parent paths.\"],\"checked\":[\"Strategy match handling for PinnedVersions\",\"JSON-pointer path splitting behavior\"],\"gaps\":[\"No evidence that PinnedVersions paths are always non-empty, slash-delimited property paths; paths without '/' are silently ignored.\",\"No tests are shown for root-level, nested, malformed, or trailing-slash paths.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":344,"input_tokens_details":{"cached_tokens":0},"output_tokens":327,"output_tokens_details":{"reasoning_tokens":200},"total_tokens":671,"cost":0.004612,"is_byok":false,"cost_details":{"upstream_inference_cost":0.004612,"upstream_inference_input_cost":0.000688,"upstream_inference_output_cost":0.003924}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/verdict.json new file mode 100644 index 0000000..b17d8fa --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/baseline/run-03/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions now derives the parent JSON-pointer path and property name, then removes that property via package.remove_prop.", + "The split uses the last literal '/', preserving nested parent paths." + ], + "checked": [ + "Strategy match handling for PinnedVersions", + "JSON-pointer path splitting behavior" + ], + "gaps": [ + "No evidence that PinnedVersions paths are always non-empty, slash-delimited property paths; paths without '/' are silently ignored.", + "No tests are shown for root-level, nested, malformed, or trailing-slash paths." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/receipt.json new file mode 100644 index 0000000..d467c94 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5139c6a35ca554b4b3032597dc9906aec427276ff0b720ff0efdd1c7ced71de0", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/request.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/request.json new file mode 100644 index 0000000..0b9273e --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/instance.rs\nCo-change partners (2): src/dependency.rs, src/context.rs\n src/dependency.rs: support=12, occurrences=31\n src/context.rs: support=12, occurrences=43", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/response.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/response.json new file mode 100644 index 0000000..376a536 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/response.json @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283616-vh50rgkA6J3kyqxFlQAh","object":"response","created_at":1787283616,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283625,"output":[{"id":"rs_0b550558c0456dc4016a87c8a1122887d186d0e292a6d3fb0a","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8iokFIkTjasagX8qpFkcpCl9jCkD1dYlAYpK38oU59-osdHmpL8rkGIUdSMQBslGWzzAAihAZv1m-45_fwjhLclCiCtm3BZvl1IxMWsfuLbNovgl8pqzUKW14rS_HPFC_esCrS6FUHEP2eZ8hIRabezKbaDVi0_gWoLtJ1ORQZBZ6_SZ0NzrmcWQgGFdKwVw6aDzm_FfXbdxCqqN3SELJNE6DrUyeCbWYCCNge5EVNjdfyN0a7KNLKzDIjACUVpEUYwsuWYS_BoynSJgwvfXOmzUDKmjzaD4RM-LHgkrS2G3vN7pg8SnBYX1vm2pbU5njiUPPMHRPsXqByjatjxeFLxAf3VRk1mVo4KunOauakxBgqq9cUbrkcKMW-_IjL3NaEUaliHoWmouWXoPKqr7PGg3g8Em-Np8xyNzZvAq-GrkRAhuX0hXERj2SbkwOJQLaMc69or4qwVhfTWXjc5UM3NfILSlZY-cQg90Qjsw0amvws9Q1WwwLksyK8ed3RU_xDqj0tUH4-R9DI4CkPcqbGUI8-EefjZ3NzriX4EpAQgb1FrpI4gm9yHif2ZI2cTmmN19aZjzkJfb87K4QRq4D6-UVc1faOobdXgeOlbk1-QN91GD1gHTvQHtX2Iry8pUtlVI0_2wg6aH37TX1yHKWRhY0jBiAdXZrBzLlt4l_iQt00SF6BEW1WYcG0M9n-u83Jm5HSv3Tf7y2jqVYCnhJfdOXwxXtjK_KFF5XrLNo3yHcZ7QwO2xYbBDJzYbxTOZ_59KKTDh5dNPicN4Ue_GtSXleYwvifchjYs-reJzvzOxW7Om_LWbCCPBu9HGkeVy-GsRxzpL3qWuxQWoE4XOo2RYynd8r7C9P0nGsuh3Me_agUOkC2XpyvuWBFa6dYvm2tf3daae6x8NNYXGOoOHY-fveGX9BBbDGGQ2cmoitpJ5K7uIBS62lQFnIl2W558fDQA4KQ4Q5Hn6pe5o8ZSKrWvw_Ly3rQ1lOVV4Jpq-L20alwRA4dB5jH20nSxcOCHLdOjsyFAkJ9uWmzjcZQ-mkdn4AaVyX46zHw43POzzoRz2UV7Zqo3P_E0DizYxrtnVC-_oFPwZp1zYn1dsbpkJB_CBHNDhmKwciV_4WE5LtwRVsAC_O_LLvOfYDE3QDuA--eIgyL76niap1jdxjq2hAz1MhtXOiHe6Zj6wkLob5wjtfEdiYgLpiJvA4_zeo__pKjuuGAmJFFkmwoReuEsG8OFREe9QkVrQZS9EmwoTMJV930HWkKn03Cxg0TvQ4_P1GSiJni3ayg38kwUEeTPw0UhD30bxuSB1rMqNHj3mdQffDR-y9O4LSsdi_pzHmdYzXP8_MvwQbp_HkqvdIJdZNR0FWxdPl7scPgu0tlYmGiLn4Upl6GbkZSuzckRj8P5pjtWz3e0fLgHUhpE6Qh-18owk0aP147dhvPqtzdYKMSNDH6zANHsoXdWhNB4YvLFa5CN9XSlCX6ieh97BaC_9-QoNum3wbv2g1LYUJmoLdJAplhSsUE4KkBB34WhN-CeFYJVO1HVKK3MTcQi5FU1BgWODCS8q3lbzkFVr1aTKsxtbTdy-mUiubQ0y9-cjG3sFf2wQ3CwzH0d0Z3yBrT6u_cxO0l6cMJimrqpKbJb1SCSttaeR4JJFc82nt75E2gSQnqwLVDTqVkW-ZEB_vDGqwZUsKqGJrAYnlL92shia2cG6t3-IzqLWoCYUMytj2GmoZeVy6MG-gSvej8mVeEqQdnoL6B5VOX1hWi4iwPTzDcmMcmL2Knbqn0Hwe8p5TepGnMrZpPPMzSxYUrCmqAabmfz8XJJ3esLRmjR-G6dj_UT_84ssg64DwJMAJCY7izdiS2WQQxxKQksADkXgO7nhOYbxHeemcXDl58EmWPygx_cEx-Xa2KDrrF_uusCWBCVhXdXLp85a1t-oqiURWh4Nd56cmtp7wcw9ZQ7YEn8WIPTo7gYrG00CgS9KP1RyFwYcJfTKVtDTs4EtW8KF_9qZZTBI5w3_q6iFfk8wJaYRmLWlm-xkfDjtB1TuKE2kSt39_Zjbh-Bn-F_IvK6XVYsRTfEI8Z05o6e_yYfGWtdwiFnQ6hCN5xAMS5mH9k_K3DAXOC-ymFFpisaA3nthtDprNL_h17GqdmQ7gvaIlRKyETpmq9wbxHFvVA4p_9yQGNxz84w3kRRkDQ5BYRLoiJ0hPA8z1CutPlrgWtRE1i6ceJLiHf3HIB_6hjQQV7dGOLn8LPVJXD4m-nwiUuEScV8oVC8IG9Au51hOCs0IRNsrATUDFRAI3-vWfnN20FBw1jYUI6V_s6BT909wrENJsFOZN1Wqk-NjhDo88iYEQ_CsipfoiainGNrZaqConz-b3Sb-UXwLqADy-agOUomZjP-Zj1ICANYUSZa8AkYc-XsNga_NsKzAWWVisbsV90LY3a_uGR2l8LemjaGaLAtJ2r8tQ3hE43Lk6kdSWpbMbgPcZ4f3IdyWu-fERLfbjfFmdlZ883mnBZXFMr-SBIUwweV2Q-NKSLfUbctRpftonHqNCZX7UVq4PqUerMvwAnnf76KBKh2lkvbYUMRwkxd_vPJ9TbrP7dGM4g1KdJUcQk4sbbBpwQbaPXYtkr9PULwo8bAR97wIcnmR18hi0II-cN5vKU-jFP2OYP-MvUHkDhfF9-J1_Us21z0lxtfp18gAZXienVoRSpYhPDwzXTPLBZo4immXFA7YsR_UlsuDcCSXJqh-K0uS5PiaOSLJ5Wa8newDa-sf-_1M7hnY84CgW0phNVhwZt4esGbhVkyC-pfhsCfZWXoJk9jplwgm2Vo0gP5GpdgKwesh6k8_5vlpZCJtpyOzsi66i2XFznSNkFUdJmyZnR8zjB1guIuTgpJZkdsgydyTVEgHenDbt9VEBNvP95-AK47VQp20JSLL1VHMiZm7kd5SPq7ypxa_xlawk4bWnjqMU4YGhXAigzsBEdlowOTvsqTKQmqeB92NYel5dI14UwWEmBhFl8hOs_J-8L8-d49s_9vlgWpftjYy5DQ-BRNgWhqd4SxKEL5o5E-qfqRIaOB_-ZeveCeCUL3qB1k8rYTl0lGWpi56lzR94GNMNxEvWfQSbkPIYdKeiFQ_xP75rkxf_UTXjCbNQLRsLlBtDCxM3BphR4QAyADxCUQvIGEDLkYWJswPpreGw6anSCbt0-9rqqMNI7uWfL9szfyKsQUJb4pX-xPbA0xZV94APU9Keh7CYXStNME7W2hL53990CDOzForsdPtnCyXbS_Djxxxo-6VWJXOT2YZcvoKjuZ36rSIs3lkmeB8HKR5iXHGCYs5S9nxlqjSLBx6ikB6JNi5EH1oOX5XykuiRRtI4-dnWoZARNwXGuAZ1WrfF_7pyqjQWVcsZhHRZxh-6LO6lmkyEMOwd3suZ-oPSoyA5iZ3anU3YYt2q2UpnBQ31w13e8V3_zzHne0eMMlAO38IgZVwuuZ6ih37-1bSfnkLSQSKWGy6L0BMKbq1opSPuhADGJZEEyRIal6-NpfqCgF2DcK2Y2uo0JppYncgbP9Jvw8_rEzuxiQhY9trt_NEQrDAknsRsLSpWBH3iJ-YuQR9M09-f1aRJ9287dJAYiT3iPKGMQGcerEdSmDwiLZDzF2lTR_57gDnye3CWXSnNkQVbZtp5tV62OLWuyohXjtUCcbIPsw4iY7Si4cZeljpV4On7uEhxNkg1K25BQTQTFuPcyQ71T4w_DOsNifP74LdpteWs7YMbmEUKc9Eq9CT3OA5HSHqqAC-KmFRLj-Ax6PEBNYCZ-IfneUKSj0etQV0YJGmDwoP0FbVkFFo_AIUVE-XRY1b3q6sbDMark_7O2Ikui8_bStUWkjOclZw3dyTeiuewCtyhzF51KzrB3ben9gyD977i5DrOlBP57xPdpp6oa2iwPobGR0YxfEV_-dXmWO7g0UFFbmPXm7utADlC1xkwbDv0RzwUGHLT7rE2DCuq4Lcq8AfWgknUiETiV3PjcjYdnrdKVQRPhPlDVALfh1TqJhZfUNSnjPue_i50slwcpnhVqRQxotCVFvSoRBVYLkujB4O_FcxVym6-A9cR2yZQlRaeaCYfyNcq3SK57G6uav5oq5DdS8TU0fL7SrP5FvgWs950kF2wRu1FbeY6G05tfkgmLC2mjSIlfSsBwtNJhaA1cq8CpkUKRWfkpHgfYEH8X1yif1AuEkKgVM3RItJbf_YyCT0oL8iE6p3Z0uunaCulK4IZEq1QoUaOx6P4TNkyYXy9kfHgSRpurJrpr98KHjXIUfUuYXauLqkUZKIycBwhG17T02jvsmoeA9JBZcfBkHpIx7hGVf8Gu0PT4ClwyDvtbpUHKYbmura2d8kTk3niiuZnme-DCTnnPbNfebD1fvS-FEM-IA91ejgmelLqRrfr3EgMJ1vFJwPLH8NC0B9uiaJheQ3CgGp5ZcHU3DuiZZ-IiG9FtAPtluzMivKGlCvYmphTY6nQax7_QfsByCaPgJZY-5Ei3ZpakAXtVDbKbg0ir78NgaP4FUsRhL1XH7qoZCgOnEOGvB_LDqccYpE-Np4wDSzsCseFsVBs6J58GPHbSHbgmG1a09tIlDEZme5FC-_Q1yPh3qZyCv2-lwLEHLOHdVQFhssVq3KMUb3pkVORTIdskOhiPS-NDKv4HYaq2w6aWqWeMnfxpvDlVgGncPij-GRm2QBHqvRTEWWnTKZ9v-i10OkclkVyK5dcSYOKRCqyhYE35vh-pD7TGSsnrjfHXdZ9H-BlX6Xkt7CTxYppY2ExmpNbcnYFUwaq2g-sz1UaEGkhT6JqB4NjIsz6YaaLKKixeue9ytVDWRmNF1vZ-l2ISVWuArqpXx_G8=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_z0p2vr85bai","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The new PinnedVersions branch derives the parent JSON-pointer path and final property name, then calls remove_prop on that property.\"],\"checked\":[\"Strategy dispatch coverage for PinnedVersions removal\",\"Parent/property extraction from slash-delimited paths\"],\"gaps\":[\"No tests or call-site/path-format evidence were supplied to confirm PinnedVersions paths are always slash-delimited JSON-pointer property paths.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":403,"input_tokens_details":{"cached_tokens":0},"output_tokens":621,"output_tokens_details":{"reasoning_tokens":516},"total_tokens":1024,"cost":0.008258,"is_byok":false,"cost_details":{"upstream_inference_cost":0.008258,"upstream_inference_input_cost":0.000806,"upstream_inference_output_cost":0.007452}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/verdict.json new file mode 100644 index 0000000..ca38a77 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-01/verdict.json @@ -0,0 +1,16 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The new PinnedVersions branch derives the parent JSON-pointer path and final property name, then calls remove_prop on that property." + ], + "checked": [ + "Strategy dispatch coverage for PinnedVersions removal", + "Parent/property extraction from slash-delimited paths" + ], + "gaps": [ + "No tests or call-site/path-format evidence were supplied to confirm PinnedVersions paths are always slash-delimited JSON-pointer property paths." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/receipt.json new file mode 100644 index 0000000..d467c94 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5139c6a35ca554b4b3032597dc9906aec427276ff0b720ff0efdd1c7ced71de0", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/request.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/request.json new file mode 100644 index 0000000..0b9273e --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/instance.rs\nCo-change partners (2): src/dependency.rs, src/context.rs\n src/dependency.rs: support=12, occurrences=31\n src/context.rs: support=12, occurrences=43", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/response.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/response.json new file mode 100644 index 0000000..32e1818 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/response.json @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283625-0NGCnKmZQwgVXpjZA11p","object":"response","created_at":1787283625,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283633,"output":[{"id":"rs_049a4e940e0d7e48016a87c8aa279087d1b7db995be8fc2697","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8iw3dUSfdujrbi2xtcCXpYSX6f6r5swcWilt0K6jede5JYachADcGXDQZhc9IVophf2KDVVBxNNMSZ8apMw3mXfqWQYcJ9-_y1n0CZufpiOdMLUzC_k9R3wojDZb9Eg5lMHBcZP2Oiu86TdykAuH-XFT_islfhQFbiqY9PN75vkyTgM3eWRGVfUgkq33mLkJdf0igS8mSVuljdQHgXqu31ZL6dRRLSJ4ZOEum7UPlu3L77TQFegKYBiK9SOKNsPvNsnklnX9mXGBwflVPH0_wpKRW5fgrV54o8HP5qk162GYtvcsgaYYxQyHxBzhrAJcYTZf1gBOu2_7125uihseQifCsyHmgl2YBL3Avj9q2ADsVXN7kCLirUEIojNT0EjzPaRrv5DL2hS4bWr--K0GngLNc_sa51b_M36m6Hi3GJpQ9CgseGfI_Kivrp_vBLCEmO9z20P6H-Xmi_KKEq-BYwLrejHvTjNqeVk4AexUP0lmConFUAL7gfqmAmTR-1jS6homleWS_j6WGKfL5hRKpwA_WWlo3MNEuqq44DvMt_iyxaUJZD_9AvvB_SRTSYVo6vjwUkJB6p_zkIMRPikV1_t4yuIlcrlq6l8CRMHjrrTTKD3HNfvEeVIClc0UrXy-bHyEWV6DC4dwzAHeLtpum9mcALPk-myUEPaDlHl_ln6iyGBAESGizp1YcMoXQTS8U6mxQP6ZOHCJnoKsJ_Rd5Q3NCPCpB8nH37rK611APiuAPh2NFUjKdmsHm6tZkcPa-06D3yxtK2I1QQiAi8t8iBTvsDmvMF4ZlIUMaLPEzmpKaoYJajRqwnbWBci6W6RYC3OOK3Vl3_ps9fKTmG7B0XBucVUFXE69WOSviZ8LBeU3KzIb0-jSri--erBsXBoMvRLDVRPsOu-VzBxmVHxjcKAjNNjzYVMEAzrxZuFucC5dz6tMjTL4fNUCs_VGHDzMHHyRFPf9r-hjOBcDfpPISX6H1u9bXPRn51eTDFjkJc2uroyEKqTGU6MDTiAy3SjkQGJX0HvMkCrY0AqRS5KibB8siT_7ioWglZqovq0gt_KWwN6YEA609o9A1PvFLXB7hGB0bxsT37TpKpb50e8RzLO2wFtCVtjQ9zL3AdTi3lkcbnfYdPZ8JDaJXeI9oVqpucLHdNyFVafl8Ws0u3e7lk6jzWooq0iAa50BIFM1UqjjHjebvoxUjClqvp2r4egCBBVClmGglJwATlmpDV66hiQqBvKkje_eTvGiKe5qCepyO2_OIQgLMa46KPLI98Xozuei4AJpEWZm3se47k04ALiMP9_z0rUPaKiB0i5R94VuWISwd-usTs4BSV2nI4IXdy3E-45eD2xP04IPRzowNdiGESuX-7AsL4k-qUsceBxfEgYxveb_MSA1ahdsQ_vQR7BV56NO04mJAdA3zP0VhajPVjzGlJlzmXgOuPF5O422AlmHOILpO-5DohtTqZL8YTOxo0g2sBoIdIufWOCW6Xiob9UhJh7qdnCXF9vOMZP6UfQPi_euToZRvBiAs7rJbMI_tZCH5MbKx4cGtxE5zgeMMUxnrCHRsl3AoAiPxJU5tZZ8w_HeH3Lo5UCSdXBdEopEBgrwkxTgSAlTrKPehLsMbNNE0gae523yOYUFYggXYov0aA0I0q7-tHV_3f8weoK7iwOTmA1QzNBMkAyzzvHYPPDf9PlfVn4WMB-CIV92QVLiaHgakpFUPhb_S_x3-EwMcYc-O5WsrnsCedg41b6xG5m1unyMxqILqeFwVZsPPKbvsvUbuZZnmMrbi7i_-ETOUfqvFsW6fiCJcDgcElu5VErI5IhwzQVL-3ijr75QylJFyYh7fE97JODtcwEX_sKCaEIlYxZeoyDq_GGIyF846GMgBoGuzDqx89LAJtrHE7jRwXYtLqh0fttxZ4mrnza3TSJLfD0Fnav6LbgUUS3WlbuLfBymsRvqJsNriubI04iQJGsVRHB9zdrC40uDcxncRL3lRUt4I88MxATAtv2jdqvLYHID-O_z3wJ70REf81ahDS94-9JjKPAIQELjJZurjfuGWaCN7wsF7jlsMurMjsJBAyPJr_rwXa6XsK8YcafH-TvU9JIusXxDgtLf0kf81XSebZH1g8s0BVp57AzUVrbewykrgZb4SpnweVoMy0Hwvmyc8QCa-MjDN_6UFxcckdwl4BHMOndQJ0n3eurpnDVO-j0R_COFbRjmVxiozH3BeVyfEoYmjphkHQdev3XJxsBValw2FVhkBg3fB6NhKd_8gsGEaUyb_skkIJf8CtEKPRY43JKT4-ZNR379dwc6AMaGEeBwq4g3rFZ6mTWtWK2jWFpGxC88eHtHCfLCYqIAGKSrkxCud9vJm81nPLx8ygLbjFiiFZts4a5Xx_SE9iVEFuOgUFxvYr_dA6Q1MnMPn296AxZ9GoLqypWjTVHjP8hxVdCSAj9jGxprwLI5oIJiNF3tiY0fwrqDP22yQ7TG4SHnye-B6tm7Nqm12DXRExENC1MEb9pJ_QDTZvx4uhZBY4aOk-K5MbtBH9VD5nZTbaQJVt7FVy_KNteWwDuV6bIrmHbZQDknU7eEe6exJTHZSuAHKkixAr6vPheD6BzCc2XnP_oy9ISrU-QhONLqtac0OIaccXbrzvpb0GxM1p1ebqpSeVfFgta4iqsFlhk9aZMX40BMub0Uz_T68lrGj8DuHSH7VwlWm4lXeIaHzH9Vug3quP1dVK9qzWuJoSi388a3D-jsxdwSwGiiEgfJQoA-0DfMSCrl7VDjASGyxLsIqmh4_rv2176OZTwLey-Q4T_jLXjlycP7XjATBEjpyAZkRDiDU9jLO4dt72kpcemYlKJOTN56URVXPB5PAbgBnVZE0A6zehP04OULa6t1lG7i6w8CqopbjQXEZyD6LZUeE5deJOy1hVanpNlSt5yzMin-HOBejcpd-8HHXiZBE2my4nW9WNdDruYcwokZb_vUVQFQNMZJqXBXeAq7U5ZWR4yGetL0U0ZzHPNLILoEVi4llZJcs1TgNuGU0wcOCsKAHs6ATFcw5wk4lZcyBAXITsI7SKfpl-p4dFhKXKf0S5NgKq5F7sWhDfYgzIW60w5Gjnl_8Dtyjm5byLMzswzVllb3IZoEgp_pkI2mnhj0ESwXcGK3oP1eZtfU40OYTEPUwzwGiLUUOhLEereympiF035a5dncAC3tpOldDoCXoh6dEUgddvWsaKbGjmtK5kuJWLZxknrGdlxLvC40bZ4YQjIkU10TzZBqXaQvTJiQcerFYTBW0YLw8f9bp0n0iMvzAHJ5_ugaL9B-wRbYoMPMHw_qM57B9LBU8NbYy6f7qzXbRNEvmz1D1JsJ50jRwO6H4-Qi0aDUmmXsVRF5WxCMzdoHEUu3U_aBIZG3DUEnzhVjeJbeynUhJghyM0jEZdjvDyfkqaXh-IZ66XOuoYfY6CD6h_ZAZ61AXcAkXsyYqJNJUl7zrPtaMYG9FXrhcJSnqJ9IU-IL_xQxgVtiBJV7q2BntZ4YryGBzjEy1-iwj17KCXHSY9w0u6Aqc8SIWwaOdsfxdIvEwXUmFmh2G83Vv4bvIkeRu8WrmmWaclX0R7RlFNCKYWngmCi_aZxDc8Hl15quqFXh6l24ZRAu8QrVsBWhtJ-hooZnXw-MoL3ZPfZ2DVwdNp-uFaTec74bPohMX_Ib8ZlMs74UO1jaRHlYbHZoxEqh5XFTjvgID7Bb0A8b28LqvRGnGJbBtEKI-fEpdkcflX2hRmMuOvkqs_odaGqu8A3Iz1TdCEXj7XHcu7p8Zz49cEH6UPUHZ9uk56L9QN8ORBYNHY91O-Dx-ibPs7wY7x-EWfV3ZsKBDu1ju6s9lz3w7AQO-En39K-RyU5udNyYSuoOFMviH8zOOpF-Kj4gtyrt6RASm2TziXfpbEYDWe5oTnrRMKBtnk44US5P5FB1NdYuU_dZIFmQNO1IvV2X8Ke-34N0tqXshI70oMrbd950bmb06Fa6bMc5SBFv-TH92nzpNrIS6eDp32f-sw4IkoyxQAg4zcnfnIt9KbOjYo2B4SqxEuDew3UaxM0wXwgFrdJYMAvcVTQVS1MitS9KjVHScDlkU30I09pwUNMJgDLiobnbn_2OGUt6zoj7-zOffFxQ8s06EgM_Igau1UfvRmloRofjz26WvCuTdyAk92rkNsw5Vj8Cb5TyZD07qNq1XEzFYOAwz5bEqVwnuSD79EJIN08FWWvMa6ilNAynJbipJX3MD5HUBWfeBOWTkhTVrB69bevqvvUgAIieQ6xlFd6gY7bqs6XT9lklileBfwE2rp9M8J0IDllunPl-RASvRAfIvK-c1uOBBV4rMcLNw-fDENt6ycodZy4zy5mQMqS89AEj03O6NT7KJzCgbLTZAxee00kldr4_cWGj00c6KRsKWB3Lu4UCXrK.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_umk4g53jov","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions removal derives the parent object pointer and terminal property name, then calls remove_prop on that pair.\",\"A root-level JSON-pointer-style path such as `/foo` produces an empty parent pointer and property `foo`.\"],\"checked\":[\"Strategy match handling for PinnedVersions\",\"Path splitting behavior for slash-delimited paths\"],\"gaps\":[\"No tests or PackageJson::remove_prop contract were supplied to verify empty-root pointers and malformed/no-slash paths.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":403,"input_tokens_details":{"cached_tokens":0},"output_tokens":575,"output_tokens_details":{"reasoning_tokens":455},"total_tokens":978,"cost":0.007706,"is_byok":false,"cost_details":{"upstream_inference_cost":0.007706,"upstream_inference_input_cost":0.000806,"upstream_inference_output_cost":0.0069}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/verdict.json new file mode 100644 index 0000000..ae90327 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-02/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions removal derives the parent object pointer and terminal property name, then calls remove_prop on that pair.", + "A root-level JSON-pointer-style path such as `/foo` produces an empty parent pointer and property `foo`." + ], + "checked": [ + "Strategy match handling for PinnedVersions", + "Path splitting behavior for slash-delimited paths" + ], + "gaps": [ + "No tests or PackageJson::remove_prop contract were supplied to verify empty-root pointers and malformed/no-slash paths." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/receipt.json new file mode 100644 index 0000000..d467c94 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "5139c6a35ca554b4b3032597dc9906aec427276ff0b720ff0efdd1c7ced71de0", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/request.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/request.json new file mode 100644 index 0000000..0b9273e --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/instance.rs\nCo-change partners (2): src/dependency.rs, src/context.rs\n src/dependency.rs: support=12, occurrences=31\n src/context.rs: support=12, occurrences=43", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/response.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/response.json new file mode 100644 index 0000000..03428b6 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/response.json @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283633-XkY4zQ5G81pLDVKlBoRf","object":"response","created_at":1787283633,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283642,"output":[{"id":"rs_0e51587194e857ac016a87c8b2737c87d19e95ad2096f2c44b","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8i4M8CNtNOkCMePFdDwybfmhfIfSNWG2dtcZjscwjpuuDGSRmaqLS4W0obq-gwK7ofe8W4_1D17QcGM44sKCKCYaGV8FJiO5Wr6KzCGQIaImFaSD2FFDL5lDTDZjsC7t7KdRuk7KHAY38bCy39wQOEBNleyOoz-wa7EHcV-3OpN-euqeQXZm8mPhxex2nmSkfO4upl7iz9UFMVPumCta0tB26JUjCVLYTbl4MZZaynHN_DsediZMnGuP_LgL-B5H7XSM-GsDfm_B0U5Q-P4JkRsAynGTjhgLa60h2ktWKP6i62ZwYqmOL2DwmbEosxE2OngYaAixB92ExGZAEH_7EJk5rZ5Xn9kKWY9GjhyWz3eOfwlOS0fpigHDs5P5fYrRcag8QRwrDAXDOK6N9dYNlTm2KT3ipADik86cArVlhry8f2cnGCbkQFH0eclMZR4ywlYux-2audPaRhZ3l9MwcTqLoO0muoa-UZEmGlWWN5qU8IjPEMT2dOIwxsVFF6j_zqEXvX2qxZZzaIcpnXbCGnbu8muS2S-SXUu9nULbBW2o3fdZ1WF7y7dUrdyZ-AaFU-ENYoF36v32OnkGsgggihUkhfo4ixCizZaU2QvufCI3BXmc9uSeLCQth3GMSVjdIplOTkYIdILHLycAqU6Afx_9ARGCblf5FTC75a16C9Qwn2wc_qKp5G4PJ1DtpPQVUVnAB1XyCo3kbyhLyhTkoNk4QqzKrgvjVGUN93cWvmfgrmIgTMh3PWY3o27SZsnRFczQeIGEmt2ASHfVntlvxdM-awMXg1TZaw7YhQX8GOlJa4adHA0VQ7Jo0JjvOgZZm3baxeQTN74BF_pQNnhWyl_LgUtDuOsUv96VbiyDmIkahA72NUhQZBiMNxm953G2Hf1rQuvcSd0R0UNcV4RjE21OOp0Pr6nGbUm25kMN19tkzdYROx58nZP7bK7_mYV7mOIidyxxriEGlM3lNzNDjJScOb2sJ_eYgbzx3dUJdDcLLqJde8K4tm68hKMRxOal4doSoQIF6De2ybzqUPXd17JBQnuF1NKeyAOe5d3M32LJB9auuyvrX4PT9ZXLmricyMfDyWEet9gwsjXy1QPtlCQzZUf69YYmT6T5TBmhH8mCzHkgvRoQt-y84cqxLc1Q3EGF6Og7u54xmB4abF-84bwMAuaAnT1XLn3wj3v8yRxekhChRP4DDTxgvjQQlZM2mmrWMbVm-EyykqgbuoT8CTNgMDJo8f_ON50l21JI67DZH3moLYeP615hi0tVCsk0mqJg30dxr9mnIqf8ytH2TEvh9V3iAIapUgQNdnBQsgzKRNvjIncdRJFlM8SI-KJyxlwj94YTFh6YLZki-pgmiB0i6IMntMDwImvpWE0irxLHKugpgTBHkWjmK7LCYO-BuNja71C_5JCj-3Srcekv2Am-rcZrT_vxWPZqRTuwUjP_hjVZ6hxOiXcmlbD14LU9OXCxbonE3J6aDOSDVEdll4CTaYgJxxEswg8ysQC3-C2KxetBNxSjXsktqofQAuca4MOXJBqItMB5iv5_w4Dd7bVD_TMHSW1rnXLWC07s00hz1FuaeeBZ1ktF_2EuZ4T85FHRLlR6MiQ4TqCFyKKniOat7uACHV_yKvPcvhqh7PGVyyfcrbLWeIBJPRLlsZrn7AoRcsABv33s0g4MPr82avYiHYisvuqq8nE4ZWSge3QUi6LOTdtIM6A8XnyXuGrG2GhXeQbqUHVPQxgu6HXIqwwZdpcmTWQn9inD0lNAa1McMvFvu74cNQaqfOua-I1N35yfB3JfWH9OVaaiKu2O3lTOOEwkuQkO5ZPgiNvrYyK5OCdUAOCn3_aH_lm1UBx2OGe7l6W-NTh4uxUMqFvAk-CntQDiBpQ8-X1FnqY-pvOxrMfKIG3mR_NFBj9VfBegr8y5NrBDk_I8UiSoFqq7VZX5FN9bq9TAhErXziurmDnfvQDXnz4wQoROCMStStKEeE9f6DBXas7YVnBkP0QsAm8akAgwsEtX0B5Bw6TL2-zR6Vj7zHKJE6yEJkLg_7Vs_Q3cG9fPp45xMHk6NsaJVRSsNexKbrwwNv5byUsxV8xjbDMjhxrD_v-Ck26Ok2JYdGsMhwjgdDAPGFIK_P0jYP3rr8KHvaMAxBlAPt8-l7MFYOURM1i2RNPR4Povb9Iw6gkmto1yYthkIKsU-e_kuhji4nze41jcRPC6pM_g6yP65LAqj4yUAlsxJ8eqzd6vjlhnIyQSyqJlvR9rUeTqBZ2zQOCi4hWc3XBvyLl_8lZlFQk5fig6Yf5qKCdqmnx1iocUhahfPGLtL4bKuWJRVjFBBL4_a_HdyMLXn6QDgdSSZjBLZ-lf9mV3JecL16kaSGS-sYWAmZp5cwJ5PHTJ_vZ4QisKpYJtxjqEmM6f6xghuBFIOfOiVWPzIS--tYwX2l9KsSjaH6jsMaWmR89fdQ2ZxmTbGUvP90LvkKUeBxg9d6PPaCe8qvPkzEfcMPk4M6Pr-XhnVTsVfwTZjmqQLk4ZCOJwS4sDWuoGO02VAZ176Cz5xpdM49mWUY_tQoRBSHwd0WOIs4bUpZkwtxS8CFqao1FjIFXYHLcAU7F1nck88of4aZkFgygxRMiEBF_1_H0_TvB76aeXTpLHu1EqM20zgrUvWhy53V_2Misdg1ioqRm8TGQOFbuXwG2r6dBREzM7y3WnzcAoNS2iG6u1nPEhhrv-PadgsIqo-x5eZ_29AniO_2e3fO5t24wGFtbPFrbdMonqM3sorgtXLA8Ygg6foVmjSkQWOY8ahA9W4B4jonkSzgJcP4iz9oxnqVXlsT5oZKQzbe1sURDvdfmARzK2BAdwszTPG0oHDE_XckB_xntmqwuIqJSZx8Ytl9fFEs4T7R9On3Swl2DYyH_dF1c7VU4ECEqxEjSroR_2E0i0UXVHDbxc1M9BlyTcG0lMHPhzAXQAxfpnqCKopoiK4pUWOKZh_yPJs-G_3GaSnAtJG1zA1r-lWWjXN86xMSgZ4v7oA2-EcG99bEB_cOVtajiCbrZDnLGgUQ6Sd8akyulstaoeXkIhn_8fFPhqk1PTrTfOT1V6em0aLOeIT4RkCuQn9xn8EKpO27ItcFvNmGE7-1sELu9tD0GZnd_v2u_PKj3VBXXlZpDou1GmtWTDbgDSUVwjxQVUPCNSS7pJEcyi4R9Ytc9fK-TTogbyQOl4hzebRffsuKrsoeprCWQ7L53dU7M-WvSeyNbbSNvOI_pPTEyytE8Y1ejusY3F0viKGjkwmb_4y13Dseg3s7pAaX5FXcsWGj4shOa9enK96WpIzu4WlRRd0iL7_SCPWoVkImNTnQ-BZqHWrcFzDe6OaMUJnblUq0ReMvP1kN3Xdai2iYaifBXTJQbi512Il22dppXcHiVoW60QXZ-LBs4Zjx93HaQ9PSfZaw5gLb8Q3mfUnloPnqmwr-FljDfmk665K8F6KA_-qaEK-iSBF1yXctLE9JckAzPB9xMB0He4NGcBmdPjyRjiyCjN-0PRouK7mY-zBKUV1fTJ7_9F25LeExpTq04AmjW1VJJeAHjcUSbe2urCHDEFlrFpseTSxXWmO04bz_IHpuVrlCmrg33LausTMsDa6dKZCfePa-azIVvDWA9eNUigRnGVWMZ8salWAZY1U_YDP5xhvpVMRPJbAosdIEGCkDQblyziaEiS7BhTSo7Cy6dnHg61AtvB11iM7005wdM8EZWqVtnYlc9Zs_KObK8NJSAhQLhfUHxkvLblE3yGRsw9CRVb7er3oYN2sjQQE16jtNK3mlImkK7p4dUQibSP98YfYT-FipPSJnWjEHy_ta7AZaIpTmZU4AlqS5w0VSCQUUsKHt6p5d4giuFkNnyElUv68kVkHPDniIxyHHCcResnPtNqswvIa-u_lPgCKOhxR3NqTH47fEHOmmPF7v6cxh8VDddgIvVLziAzhgh1UQIp4W6SwOUhcJ7vkRcmX7Bbn1PGoP4Ej416VIqy67EwOaxR5xpK5sJVIRmd1FIGIMraoBNWBQUy6dO6JPIHmb1xOVsha2FMpZu0lboA2NI4r6jB6m0j9g1eOzhRYkOhUDay2ImwMGmNiT8I8TmfL7eGrxcDCs5aV84GWuzPrrVK7jRNVoK14WfXffHILNC9ofotk3b1Ju8x-Qf5cEr2eEBAHXArwZJAuOLlOo56EJE6NyNWPn5dGTEnY5kN45nzoDilzNSW7ARmWwHxXTYDUJkhsej3x1M5wDYaITv2Q==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_vyljb0604kk","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions derives the parent path and final property segment from dependency_type.path, then delegates removal to PackageJson::remove_prop.\",\"The root-level JSON Pointer form (for example, \\\"/foo\\\") yields an empty parent pointer and property \\\"foo\\\".\"],\"checked\":[\"Match coverage for Strategy::PinnedVersions\",\"Path splitting behavior for slash-delimited paths\"],\"gaps\":[\"No tests or surrounding type/API definitions were supplied to verify dependency_type.path invariants and PackageJson::remove_prop handling of empty parent pointers.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":403,"input_tokens_details":{"cached_tokens":0},"output_tokens":539,"output_tokens_details":{"reasoning_tokens":408},"total_tokens":942,"cost":0.007274,"is_byok":false,"cost_details":{"upstream_inference_cost":0.007274,"upstream_inference_input_cost":0.000806,"upstream_inference_output_cost":0.006468}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/verdict.json new file mode 100644 index 0000000..1e91aff --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/perturbation/run-03/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions derives the parent path and final property segment from dependency_type.path, then delegates removal to PackageJson::remove_prop.", + "The root-level JSON Pointer form (for example, \"/foo\") yields an empty parent pointer and property \"foo\"." + ], + "checked": [ + "Match coverage for Strategy::PinnedVersions", + "Path splitting behavior for slash-delimited paths" + ], + "gaps": [ + "No tests or surrounding type/API definitions were supplied to verify dependency_type.path invariants and PackageJson::remove_prop handling of empty parent pointers." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/receipt.json new file mode 100644 index 0000000..6cae2f9 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "cfd6095866b0eb0bdd6856b4efc2356eb1cea1c82764ed9ccae1f827f126020c", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/request.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/request.json new file mode 100644 index 0000000..585aa8a --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/instance.rs\nCo-change partners (3): src/version_group.rs, src/dependency.rs, src/context.rs\n src/version_group.rs: support=17, occurrences=33\n src/dependency.rs: support=12, occurrences=31\n src/context.rs: support=12, occurrences=43", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/response.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/response.json new file mode 100644 index 0000000..a57b5a5 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/response.json @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283584-6qSmYpkLW9aHtYluuhw9","object":"response","created_at":1787283584,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283593,"output":[{"id":"rs_05ccdc6f96d07abd016a87c880f1e487d19c56fc2c697b041f","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8iHYMQiBqFf42iVgCMadFtHLJ6sZYKITENc8_XVzwgAWXSWUT8uApBn9osa-I08RD9aLf79brV4QvSt0AtztYWg-A7SEhVkFUMaQssDsoK1xw2xk8r7qDOjYnf6eaIkepIqsA2Qrb3UDaGFqLzRKHUx31tv0IQhpwppNXqVfgNQRg9gjmk6jddES5MrcPc48SFySEFDk9W9A3er_sQ1hJWVSzf-rdh_rGYfrSkfbd243bei7Qs86HTac7qctLyALyM10Ehy0_dUMgbVDpLWjwhqgsDAE01v0ZAx8sX1H2-iQeKjupPcVegKP3QQ3P7aFfXUo6DOTQ3WEZoQvsICHAdMo-5t3eMhrzxDxB_HI3jFMcAlf7PbLX5UyCFXD5XVTbyZz9rpP3BmyDPXPgWYtOwxxfJSKe8LWeBaB3FenudDn9uDZan22wdAIYfi0QgVqXXNH9S2WjJccAaorCAuj4TX7urmXnXnwAO4kGbgE_KRwjZJJikNadL58KNUpFctbIxm9t_ojuID1ZQ5vTURRHoZyYeyLaEMJQFbW5Nuh-5b6GE8YEM1pqZn8WPg_3LJxgi3ersL4lANWZbjDpX2CylSeSzG5FBKKnIpPEsmvm5hydWAVUR05gLtxoVP7zzBXrD31ZakzqB0XjQQy04urD9CRwI8x8JoyWpDAtcHdHlTFprJIAxwLH9wsFSZQFBw4Usn4TlTK9NhpE7mVnqj6AdsmMMBt6BJGbZBEmr9ttTB3cy8gv38Vh17yIbLE3rfZReX16y0M2aLwYaojjZth0u8KKaAaplXpezif2aMvpf2SoYjAhFjIlTchqBtjRRgwHg_FUSgLIN53JI9AdVV62Cq9Kr_abu8N5oFt8GcvL74xfwoT6KXnZiKObbHGotwQSg0VmgPrHD5DX_HvAPoAGiCkAdDW8gv3VZ1xNtczX5CV4ouHByI_D2krH7CLqZZR-KSROZFJXf0jBKHPGRyKY9CDI0G4XTPo19dRB10YYAq8oAEr0w9LJMJ6xmwDBCbItbCQmHbNACPAh6bwIHAl0w8ILTWgxelba0QwU28m0CAEfCJmsiTtVVtcNchP2ZwW_D1Inf-X-f4QqcWAlWP4WxzQU1ok3xKKamgseQVbk48qDTMiVOdq4IiE7_WkFWNS3rsrQU9MhXnc0qReLD7gC5ZCeIZA8fwIbnn1wrsw8yctTXWg790cbujocnWshdB59eZ-MiJ4OmSkfS579RPIdcB6r8Sptrdx2D8Z5snH9OINCBnLMPYMl_t9WONXFJmvofatD2VTwEuJEJbVH08aFVLU0yued-s7OTecOnpQR02Gw3gNYnd6cf7zLBFW3bDxCnuoaCJ2ciHhiGkFd_uJ88TwJ7WfW3-a-iecRjxmEnOFUOjJiLhkcq43_gNvDpYx0S9I2q2IMXMkeodvy44K1t7-Fppeqmlq4CFWNxVrGBiAQQoFFrOdUYA1dKw3a7LMNIaqEACgBQUe9zOaSmH4NvthRKVpeuRAmG9H3y2O_ojKMqT6jkOPwUH93i-iaPHwsnCkzTXfbKG4MV018GBNad5Xv4FEHMb993OluHnBWMrg2IICWk9m_gyw1snxEwkN4-XR_PWvmOFN52Ge0pV44s6M8-KXTkweE7FoIncMO2JeO4eRnq6E_T6AaV8dOZYzaW3Kv-oDxUli6YHFVev400hBGmsHDW0-xeIp4r8aBJDONMqVVE80LFHLAH4lvn__yFWNYyFtrtGsPWeA59HXSqCShwLnBcB84PIOPCsNoOzbrle6DEideaDwzj-wZ7pSF9PKiz5KLO8dIiK_-ThM6rquaBdEaX0NXmSGs6FOHPa2X2cBSNXBfXGVgHJh3BUCRoDFwr2re6Op8ljWKbHG2yQIwwq5dLmGEK-LasHlgn35O7p0hwe25xE4i_M8G-5bqUUbpguVlFy2y3btPLjT3B-jubfB0ZtK6LIvdAbZeovLKYh_1YV29aOSAa5RJxTpsJkVQeRVSXuVP0Hu81k1SO3phAwbc6BVos7gPodTo4yIvaqhwD4VPJRnls1jp-oISp1WZjet4OllPLE4qrFG3n26Bm8KFpz861yj5_y_Qklx8PGSAkTYQ52l9EVSGjxI2REAAtqDJjwaExhMDOssBBCklKa6EBwbtcLbpHpjMAeOKWzwpqIdaJU_jbmNm0nOcqvNx9E5CPzszUJ1UQh7Zc0FZFSh_mXmVNxqs7qv3vNx6QOVLuqi9bnly37yP3Y5aezbs1OWqvxKPpF-wBoOxhGI8gakPF-b6DvmJzYC2DgzA4EtD3X3uomSgAjlF0J0hzCdHa7DfRUYgIHhc3jaFOpGyQnNOp1OfXf7hFNbJtB9-f3NhgYRFxsvqZTh0Oehy7EN4rgORJJMuiLKWDi2AZJscLJiV7N5whDZwp54_SR-icS5xUiQWIL3QcKmPMwHURFSzWa77WSuPfzeefO2cRz1mXBqnI0fdcFZ5feSimxvlLWnFVXfsl4fXSpYNiW-e3PhYjJ8Q60zK54qp5dlCoqiGg_TtIyoO70VVHkvyVdKohrcf25uBLk87mFG_xSAJ7UaVEN3ZIn_IcENyEmWZ9xAN8X9zXeJrRvkUoeaiFHayxzpTmFg9mDBf0Spf9e4g5aZ1SYWbMxtSEqKxMfCYQr6NfRH_v12UAdty2BniCeU3FqaVhpRHMIiCG3Jbn_pBD-pR80A7GCwZMMjs9yXuvi4p-u0NVYLI32bWVJgn5pDmhIpJLlprmuDvBduJapwv6n6lZE_kO5rV9kzdNug7fNQzrPx0Vsm3nQuHPu0qE-l_FL175G9UmnqFaGcZnNg5z8_JFZkSRtmMrVFpV_cqoqS974_CXp5cBqelA4TKMheiHlqVI-gSYv05PSm1c8ML7NFJhrCap4763vaWk7agqhciVsDVxtjw418JGxa5TfXaj31ycuMjJlVZtH8cfcu2yFCwe0u9WrHGO0Fry1sjA6cDQIilJOOrkQO1YvPTprE84oq8PFYSQTIV1c27CMm-tM_Zx_G8XaTKlh7zaNJnCocDpEjUNWQJpa-BDgC1NcBk2Ghc8T0mN0ESYQr2t0WndYrDYzaoEwx-SxRWnvrmRK_4pjaItBrxWn7fjKUpel4ys4wHNr4wpq1jmbWgCjYz_NcCkmUJTBYPprh5En7ZC5_sryLyQwQQ_uF2HlEUoLDh1_6b0ZEKPAGlz97pL-r_INr1r7GxCoCE7m3KInPS4ysmlus5fwuLFp2tJIjZ5QBnO9fUOVoji8_g5AYNro88CdTe9cH9JgRhzU2r-Wxv4ZXXLlzre4poF1SJDdfc9rZe2XaEUnjqrCwP_0U2YCwiP18AGJO8a5DYPzYBt6U57kSApYV71pJRkXfB7eNYYlKV1JYzIBgRIqqRxoDm9cnjDXebzTFuulJ1G09rpkdHPgXO-gNgYmpNSrm0xGKSXBDqjJaQp1g8JEheB86F2S0YSkAeomVV_0CslAw-OJsL2fc2vh7xg405Y3FvJUjislUXjM3wjFNaEVTWOJvy3zGRn3ow8L-Km-YRxr54bDFF6_tBZAww0oXzHUDQl4H8rSQ-Kfl1rxXAH0XfearAHyjXHWFuZ3D2D9822Piez9Od0dO7svB5zsnV7-hs5dVwiLLAMQNSHy1p-Oc8rcInmIoKuhFdMwxnfRm_nOZ6t_6Q5cT8rhVYWy2MikQHKbRclLb5pVyTZS0fxwJDqo-YYyj4YW7DlPvRSrjvLgqOeXgqRCNUfrkrvTEt8RPs9daSdYrM0cV0adxjoMF7ugXtRVoMXad8N33hr7x2WTCyLynhGhkVpywvmMJg1Tk7duyL8t5st60FqFYqoYvzcfUPDmjPhbkSlDNQGcHo8YNNMRRB1ODOM5kflS2AC8NSOQoSks7ugif2hJr3-zy3j3T8UCgiUs_PiKkcbtEmY1bpCjw2K3vfNmo0Syj0XO91Dd_WqdrxZa0NpFqp2TU5LfJEFnKxgCDMfZ__Bxzg_AGgJDgR0zrFknIZ8BA4cTffhQ9MnPLKOLBc6LtqADTs0BJhgYGxf1oXEf2B5Gk5tzKvqNOeIgvAETi9st4NAcoRi7_---mqPOTk8OqTHodzeWqcFk_y4RmqpI9Wp8I8lQJV_TlMNB62zdt-1Q2gLtoCpSkcH2E2YKHPYpqyEEPxGkXTynbA4aqhfLv8w2tG1gtm04RTd4yLiNybn8PeMOSu6UIX6ayPhl6oA9Eko7Pn36HDKblaclw9bTjKjyfFy81kNQAw5ciZbpZcpeQoXhDbyqmyw6M-6Bw_FBZC32gaqIDU70Jwivs6EI1oo04EyLmGy9dTvsycOxmmJk7J2BFgYcaGxSf-IRBmkJ2vOGb3AKfMXrtDTfUM1PFu8ZUBFSGxyBwoRyxY_LSZWUk5IPCZdHSzIyHpwgrqtYooEdlborzzf2wWGMNPz-290WKm8C8JVeSgr9ClHPEWmgywRtNV5DklXoN-c=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_gungf1db9u8","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"The PinnedVersions branch derives the containing JSON-pointer path and final property token, then calls remove_prop on that property.\",\"For standard JSON-pointer paths such as /overrides/react, this produces parent /overrides and property react; root-level paths such as /react produce parent \\\"\\\" and property react.\"],\"checked\":[\"Strategy match handling for the added PinnedVersions case\",\"JSON-pointer parent/property splitting behavior\"],\"gaps\":[\"The supplied diff does not show how dependency_type.path is constructed or tests confirming PinnedVersions paths are always removable property pointers.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":422,"input_tokens_details":{"cached_tokens":0},"output_tokens":591,"output_tokens_details":{"reasoning_tokens":451},"total_tokens":1013,"cost":0.007936,"is_byok":false,"cost_details":{"upstream_inference_cost":0.007936,"upstream_inference_input_cost":0.000844,"upstream_inference_output_cost":0.007092}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/verdict.json new file mode 100644 index 0000000..9d9586b --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-01/verdict.json @@ -0,0 +1,17 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "The PinnedVersions branch derives the containing JSON-pointer path and final property token, then calls remove_prop on that property.", + "For standard JSON-pointer paths such as /overrides/react, this produces parent /overrides and property react; root-level paths such as /react produce parent \"\" and property react." + ], + "checked": [ + "Strategy match handling for the added PinnedVersions case", + "JSON-pointer parent/property splitting behavior" + ], + "gaps": [ + "The supplied diff does not show how dependency_type.path is constructed or tests confirming PinnedVersions paths are always removable property pointers." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/receipt.json new file mode 100644 index 0000000..6cae2f9 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "cfd6095866b0eb0bdd6856b4efc2356eb1cea1c82764ed9ccae1f827f126020c", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/request.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/request.json new file mode 100644 index 0000000..585aa8a --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/instance.rs\nCo-change partners (3): src/version_group.rs, src/dependency.rs, src/context.rs\n src/version_group.rs: support=17, occurrences=33\n src/dependency.rs: support=12, occurrences=31\n src/context.rs: support=12, occurrences=43", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/response.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/response.json new file mode 100644 index 0000000..1e1eb34 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/response.json @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283593-WbZu1HmEQGcOIivKTLPV","object":"response","created_at":1787283593,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283602,"output":[{"id":"rs_03540b08193d6f86016a87c88a161c87d1a797aa8734578642","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8iPDiyXkkWgIWO5dTuapnhdDJwwbKzBA-FSuGml0Hbymlz5ipgnyekxF4M9G2MGZE93RV8uIHWx8YRMNEI0ASjeKTKoxzlfzE61xgI4PdAInI22JT3AyRTmW9gu-UIv-0ykBHUCEQcEvbxWlfv3TCA_AwnVm8Wm5757a3m7VptrXv7Dk14EJMN_OnGtkxe2VCcNfQARZoBsa9_aNYec9ghp6MjLMYV5nJZLMF-XDnu4-m2vRpIk_dRDkcHEX9gFjNRCTaxBxKkrZwE9KZNoTFiM8uKf5_WJY_fo6ZVy351CywkamyCOua7KRHauU5Y0eOZ5UX5bGeitEn79XjHgpYn-ugVcRi2tYwhmK4D5eK2Jr5-Ucvv3Ajzqwa4F1O1hSaa_1hCk9hYxQBhFPpUStoPdvlH7PMbwHJ3eggB5wb5Na8m3jxbBgYHfSfNmmV8q3U_JbYrQSvox1rWwHG00nxle59pZQO6I3WpcbpPybOSjVjnAB2nSNauLdmQ0RzZtf7SYb-TLI_SWMrp7NKNFMzAb9nXU5zLNO9Ci5CYzpaU6JF_nQXDBzOEQdw9Z8OVPiM7jfpgfZjtTEI8NFsqmIKbhn1oC87cqekj4OrKWnmo-A9v1mtErZ6qGPF5HJGZB-j-9qmvWPm9fhAosaRhugbJCVdlmAoJPVzH1oSoFIIqeiMIYkgGKMYscja1tcIiDNrR2i4YHMy0e4kP-_x2siRhRrm3wHtK1tncryDf7xyFO7S6chQ5ICpCPqjq8TNXIX2Yy6-bwlMAxmUlzD7x8vI82L1ZDe55zga_4Jz6D1kGx5ranmspJc2JmHvPgEv3YnCTNvmT8T6vgBnay4sk77KTxy1pJlJ7G38NxrgA_sNVyfpFth6Yq17VlOKYfABnWJyBSiKiPjycx1IPMEvrUNl-j3dIApbUvJ9aQ3bKWXRzB3g0uj7iswRJr_gNUE_XX7wDVNAuS0CvUep_cJJbrow_1H9E3rj3oJilbXmGuPyH6dr0-H3lNPtN9r4hVQS4X_5ANHzd8uRSKOPYqfcJMh4aevuAmThQAQjC3QT_D-tGhfSBHpU808A8i5k4Xp_X0BYrxWgBxdzo6RB9xG-BabhtM7BHQ3EEU08gM7nxvDSFHFnLxtJVK_euiCngAUUch0WHg9xbLcwNm585sF4r8imjRe9vrAkT_etTM8WEpDhda0WwOorEoAmB0IUTFJfIoO8sfvcM1LZKboeaJaiGKTzI99i0mOeQ0n2tycDT6me90HzsQgpLNjJsw_8bYlZ-UkX4pj1gKKtUE2Of5ulhDZPpDugo4v2SW6nQjby1Xk5I3uWkdgw4T1wlpjtSQTvPFh4ug7eX3buA4w4h7AAPktfy9Dk65Mi3-0Lo9P5fd0-M3j3w1RbbdjJsPPQ_ZD5-6eW1kEA9tbHwb1EBj03BUdDkJKUhJDUqJDeifniBAqElVE10yWd4MFqib8TijawdFtfov9VN_Vsr5S-AtJgfRVMUV9rqGMBaZOqLWu3xMUJYtHetbJYoU234Idx2z0pINGQ2FRJ2HEAnzuSk3xhS0HOnimYUL3HWoJZGuXzjgj8DfO4b3KMkm50Fi2hvY_jS6XD9LxjCRx5kDFlISMwUajQ3dFSbFJsGxMiLFp2AzPCcNsBI4VASPfQrefgJGSbOxwoi_fuUo4zII-sN9jMvhPa_2p-FkwLZwxQytz_odVWy4CAXs7xmKmYjeypV-48vFqVW_HNn6FSVUN5dzV-IUXHatJ9DyvlA1zsVoA2nZsnT-lmnbWrMYL61krmyOMyS_nsJsIAVNaO_O94sD2B7bYmy9BbaQ0eKElAWxvdb7dOfMLc0UPIMI9e7Cj_mRr090-qPEyHP2Y5WOS5JBONwLQK4BZ0qbPZ7R-r75KB_i1uhyOXFJnkjyYoFEmiuR077V10_OVS3WrK8VxnwbJw3pcdIwqoIydOJzXcJDurhADdPYZQpDfOYNf7zNRRGtAXEjwf6Hpe9NgLlvHFMPJ5iqomXDrDQulho3D1GwnR9Ezf-yS47JAprRMsLm9Qe0m3hWVVKgPWfIuqi94x6_Agzdt2YF4_lO-6w2N9kZAvCCMaF4qrBT5X8FoffgzVHNQM6aP5tXRPTtyWNUSf3OVj4mozBMgvqy7qUf6SInh7PRBc6kIOBDkqXhN6mVBeEBLykS9kO9weIYXVxx9kNrJGV8evHsZBn-gtd_eCleHAcbak5uf4-Px4a6CkK08TlnHziApecs7UQ2srAcvoZNp50P3HSvaqIgApQaTyKLITPFMPaLkw11uWdDjmTP3i69i33zEKGHPkSy20dnhEPOrg7JepR-o8NgHt4eOQa4CutOGVEfcF4Z4JfcqmfNQv973apH6xIpi_dDEqrK7O-eobTHuuivQS9U-Jomwe6Ov4sgnCffk-WqfFT8QMgVipqkGhVlLpbA8o8siNI32FuWTEqrSNm0QYOm4zsm60M0L3ldL_nFuRnt_NiZXkPgnVQZRVnDqlR_2vo4dVFzW1hZ_L_pGLu4WBB2FKA1RzFSSjF9AbR4_sg7UY3R9LAIYgj4Li6zNMbxkfXq6sivJVoAKUWe2ec1PqGDoD12NAfzZyjvyJjDFyJZZzlJjkZMSEa5enzOHOSBi4YdQO9TJtIdHvi_sl9kCPAmEptKuzTGIo-qTbLEBgRnuQUFN0_urOmANrKwGQwlzcCpaT5H0ujav1wlwbzde-24mNKYoFesRTybXA6KsLLj01R9UZYlKbgwOsPo4yfHx7xAo2r_5u5gb9jCp98fABoRgbzQ_VKXYfXBt9HWEfBSXe27X3MZ-D5ek00Ky-T0rvC-MpzAgraEoQikIOOnJiKHHlhk4cEc-qvpwj6UUKjCnNpV31xe7iGZjZiEUIyImY4ggvKO2DLUjAcFz2OyrFB9SeL42bGzNxD_9_h3iEtuZCsXx_SLRM0Ri28L983WprURwsSMoB45uqELZ3C17dhHj12PoNFcu61Qofviy1OGQBvdDko_twx_0-UWE76TNxztuJ2JEWEoSO5si8t15HbmcBS4pLeXpfyAwZ0u41oMVY9nZBeZ4HrOGJC--eFNxqzwKhgZuVtMnYCP6sws6feqXtMyBb_4kLgNbmenZofYwJmXWwGxxPutHinbxF93vppQe8hosl0Z8LqGCMHMslyoPAjpSiknigaKZJyerBw9B7s_y5SJwgeLKZo-56GsjDarvDI7XI39PllsCjzmnFATP1LJxjM1s9G42DZ3H2CCYxywUQoLhUIMfxdr2_aCtQPvNmUsR4ZjGpsdOHppFChdFA7EJEfBPTDwqp3wYu4Rk0iaAIvzqU18iwrATmefo6SS7Wer1vZkqNYWW10MzycvzcMyxPBe7RMsl5gGQkOZDvxDGSbTHHvqg_HBRCpXlDXUgtUgjQjHPyM_n-oC8YWDaWLSLWZAyOOreu797qYgxmQf_IReNdv5hDpBIQcuxUuNb5Lylu4N74HkztRFrCPcmGdnUinNpy7p7DPNZSZJiyxjQuKqfEGOjDvNOzV2kvmzM_hrATKwxUHC5jQXDJlM7idYhGdTiYlM8dJQBPU7W-QdqgYdbg_M_fykhm5hW3TdhKC3yAFqkhTemi8vTD8Rmjw_ojkWVv876iy79hr9BjYrlZkMmK52C5cEas_KFXn9411rkFh4ete4BI9EOrivqt4tNBnoHGRbGpFf3orfX6RQspzv6bc2jwjUq4GYCw9541rsLOZumO_-3P6Q2DhVvUGpB06cLSlAh7aRQOluX7DZfpiRy24O8VP5WrGIkbu0-YE-UNUCV3NoSyPCe0DS6qfkWt09aE5pW_yW58oT_4wSyqzOcmjWvJCIejIQLSyqdc0uekiKV-rBNDxivqjM1wisG41Y3usHFdAoh_hEpxnsUKgsVJpp-8wCQmWgEzFBaEv51lii0I-oqXszpoa4j3grPFgqN7XG_6wiaAxN2Kkceije1UyWHAI2N1j-E3izFanjUph4derMDBW6VMiOh7VOxNDZutWL36krapCAWjKrSfSX4Z4uJLVjD5b6Cesi0Pkj4fd7ogf61iurNrYhIFtOMLMeENYlvN0W2sJSxITALs7DEpMwY1qPDl-ShqXuI6cMGOMHO5fBG3ZVSb-bwoVplcDDM_n107MxciDpxUHXxI19k1tnqAyPASpfdLyMIgeVDwAx2PgAOD1cUz_t0aRSSbbjTmgXkXDogpHdPpCIiJZ7SAnsp_wGEoK82S_gKTfXLFI2zSQ5DMECkpKNZHj65fEWpnqS71hl3GOOzJD9zSB0MKJwLmMCtMcdlXHYGe6C3VxWNQLUO1DyPTG--XJ_m3ToDmdwcnOzkJQPrldlPtOJVLowRN-s_FD6x89_MYq--pdLD3KdDRvoQyApgLdHstKuoqyE7FsjVz3npSJ2_YwBgr6oMnU6AWKhXHR2qjX_jfjtp-ODomVw70REum5DK-WCUz21HJWrcghIdB439Ii7_LWaryXtwplehB2XQ_jaDIHmytPorgC-0Q7YLFrLl1dSSQyflOZ4TffZ-njCu9--p_RclBABEehznbjLg3-Ir6dGuR8B7-GpVLnJ68VCPwaVp9WNBPEdkVX94fNi4CM9y0429zFEVWR7Uj6NyPvD_TCnHHTATfOPWQ==.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"rs_03540b08193d6f86016a87c88f50d887d1bd50380a109520e4","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8iRybK1yXw6QI4pdqQFc9fma3GTC_fqiG3uB-nmVHO5MX1XpXHINbbVNWY7ZIfvGBzVN46h0bJ568LpOt_uAk5xoElfudFGPIPllsxrNcJmT75iFK_orS76jgCRScOfdoanqlKpa0k_2BJFVhp7SI4FvlAoCuxJXw8RrQ1nPEmMSmM1lH0LQ5MzTcy0k5UIL1Q-hb-TH3SG95r5s5BVRoMv6WPrUiWlHKmfTSVUTE8-4VCwWnjeBi7Nq_PrbpmvOr1wtLLIT-0D8KuVFdraqMhXdAPl6pqDIrMIKOqndExujJ4328GDW5i_v5KtW6_NKPAYdWyMlmyOIXKkfrRqKD0k-WzRD7y98uYthL8Uikr0hofk9Tk77aLodh-SaVc7z_V10UCjFYc_DiaxgbSxtXqAnFRyB5-TqfD6Ij8z5ays3gd-JcpIJV5B_9ZAeQ4JnpU4rNhmSMd-euLEk67Ua7sxak7IJr8hh-nrmiLTh2lj4Fq-COftgEfVJtDoBBU9e8s7Jgp1KMv9W3cWAW0kkx9raRqgUOIdgTZIy_tBmh-vCbBvnkGY5FxEWR_mgRhJS2DLty2fr78VJxCH2TKBN704JVVoRff9PSTJXRnldNubdlPuaHTuUv_a3l7q1mMDCvN20mks2EEHeDsrTwNbdcJua8Qh4wfqBG_Iq_U14qXsVJLFLw-9IFre6uFGQuH7OxyJT7j9CFUK9OE8Lvz-_OylFpzCuq1AySgGzkUpwUKBZ2WFFjlWbal86kJ3XBVC8enhb-wU6s_mJmzN3tS2ZsE0TGJYhPgTNUGsVbQrhOu967rNwcyYL1Xwc55db1eweyI1bhCbABT6eNjbmJ-TwLa1VMlQh7ZiaV9O406wMzIvNJt3Uca86XVb1cvY57IdxkEKinKu0u-Yw4Ub1LnlXsGd3WgDOr-15fdiwQNIZmQiLoffACrmk_hFhMqUyYuiP8H20n1N6xbhTdLDctVv-mca7ouuIGTgp29MkM7lR8aXdnLRJ6ziO7AaFvPW1TGwI-_nQ1Ze0GHMiTWmaoNIVz22uL9aysz6j0dFlyBCp9P2nwOjbNN8Cv6Ev4s0jZI8Efjog5BXE0-FzZVSkIYJWUG7zGiKH0lwWHWaBBNwISBuq0xgVhPWx97QxAut4w2jukifuoI60_e60bjGxpgAeevtOxDVE05wPn4auH7pBXgpKvIJzpzso_rD-YXul5I1BCnfXjbaqcWoKgJuo7m2yXIVtMpnjjXEFyCshvA5MLdv-whjFd-jd7xMr1Ulu7zGpAqnR_gsCQWHm6XmMtG3B8dE5MTQe-nj04Fz_6rWaAAseYDX9rqpdOlKQPiUxPemXTiWM1PLhpKX4EpZgGS3nUe5xtXYrnMX8fT8i4dlAx1csXBIomWEhXEwYghxAnVL2YBxXLiRVgnGa-qo9xnsVC3BuITPO7pnkEWwAlYZ2HpGP5LiRmIzy5PsDoawfmHB7bZe7RJFD1US2LX5CJS6CIaVxElh9xXl7hDQLUx7WdmWYvI97UST69_hpAVmYGOeOqnRNdmLUyZKIjHbPtGn22rbEMt1iVpFwKGgAMqlMIbnHToYbv14cALDVVx2cYwMwrQVgbxsO4TLibngne15JraFsGgxEcUtkR4H6gIsh4soq2UN-itGTZ_XsmpjouyZ_FbO75XpTTQPfBmBnlIqlUrFy6DW2d562B2DQIujEd_hwo0dTq2TwXmdkFmYbnNUTFUToYbmAxH1aeDfSZ2tzaxjpCos2vwhBHxM-2Wyd60_RMlXlh9Tkq1rk2AKrFGTLwWOCYOJgWbA_UlwD0swjeYUlfQxqpUIayumAHoFrdRI16_74GP3tJRBmXJMKY8blccXr-sppUMeJm9j60mk7QDMlRYHYzdHiguLyUgpxsyeiJN06ycRa_2Una01-vUBOmhAjmjBJe974hRx_nZQvTfcKNr3dK5_ijB4HI4r7-XWIzR66PBLXtMv3auOy8lRVgHMeVej07dYxoKqtRLT6_cDG8UUsby5UQE2omYppL3BW5b4ScWLTZ_vNCzkvYw3IUcIWU630d-2eATwVfO4RnO7n2o4bNLTm079zzz1rmz3Pd_77uCNn-NJVHISZhu4ncRdIJ96MckFwKNS7cYkMtM0eqyX9gk9s9E-mqZd4bJqgfzGp6OD2eJIO7NZfw4js8-gF2sj3OY1mdcxRuUCzRyn2x5dAoIuY4VgpI8QMh3LJFU=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_vt3xxmz5f","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"PASS\",\"findings\":[],\"evidence\":[\"PinnedVersions derives the parent JSON Pointer and final property segment, then calls remove_prop on that parent/property pair.\",\"The '/' delimiter is ASCII, so indices returned by rfind('/') are valid UTF-8 slice boundaries.\"],\"checked\":[\"PinnedVersions match handling\",\"JSON Pointer parent/property split behavior\",\"Root-level pointer handling shape\"],\"gaps\":[\"No tests or implementation details for PackageJson::remove_prop were supplied, so behavior for empty/root or malformed dependency paths is not evidenced.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":422,"input_tokens_details":{"cached_tokens":0},"output_tokens":770,"output_tokens_details":{"reasoning_tokens":646},"total_tokens":1192,"cost":0.010084,"is_byok":false,"cost_details":{"upstream_inference_cost":0.010084,"upstream_inference_input_cost":0.000844,"upstream_inference_output_cost":0.00924}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/verdict.json new file mode 100644 index 0000000..69ac661 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-02/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "PASS", + "findings": [], + "evidence": [ + "PinnedVersions derives the parent JSON Pointer and final property segment, then calls remove_prop on that parent/property pair.", + "The '/' delimiter is ASCII, so indices returned by rfind('/') are valid UTF-8 slice boundaries." + ], + "checked": [ + "PinnedVersions match handling", + "JSON Pointer parent/property split behavior", + "Root-level pointer handling shape" + ], + "gaps": [ + "No tests or implementation details for PackageJson::remove_prop were supplied, so behavior for empty/root or malformed dependency paths is not evidenced." + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/receipt.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/receipt.json new file mode 100644 index 0000000..6cae2f9 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/receipt.json @@ -0,0 +1,9 @@ +{ + "provider": "openrouter", + "endpoint": "https://openrouter.ai/api/v1/responses", + "model": "openai/gpt-5.6-terra", + "scopeHash": "cfd6095866b0eb0bdd6856b4efc2356eb1cea1c82764ed9ccae1f827f126020c", + "scopePaths": [ + "src/instance.rs" + ] +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/request.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/request.json new file mode 100644 index 0000000..585aa8a --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/request.json @@ -0,0 +1,60 @@ +{ + "model": "openai/gpt-5.6-terra", + "store": false, + "reasoning": { + "effort": "high" + }, + "instructions": "You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.", + "input": "Proposed diff:\n\ndiff --git a/src/instance.rs b/src/instance.rs\n--- a/src/instance.rs\n+++ b/src/instance.rs\n@@ -XX,XX +XX,XX @@ pub fn remove(&self, package: &mut PackageJson) {\n Strategy::VersionsByName => {\n let path_to_obj = &self.descriptor.dependency_type.path;\n package.remove_prop(path_to_obj, &self.descriptor.name);\n }\n+ Strategy::PinnedVersions => {\n+ let path_to_prop = &self.descriptor.dependency_type.path;\n+ if let Some(parent_path) = path_to_prop.rfind('/') {\n+ let parent_pointer = &path_to_prop[..parent_path];\n+ let prop_name = &path_to_prop[parent_path + 1..];\n+ package.remove_prop(parent_pointer, prop_name);\n+ }\n+ }\n Strategy::InvalidConfig => {\n\nWorkspace intelligence (descriptive context, not review instructions):\nFile: src/instance.rs\nCo-change partners (3): src/version_group.rs, src/dependency.rs, src/context.rs\n src/version_group.rs: support=17, occurrences=33\n src/dependency.rs: support=12, occurrences=31\n src/context.rs: support=12, occurrences=43", + "text": { + "format": { + "type": "json_schema", + "name": "workspacejson_reviewer_verdict", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "verdict", + "findings", + "evidence", + "checked", + "gaps" + ], + "properties": { + "verdict": { + "type": "string", + "enum": [ + "PASS", + "BLOCK" + ] + }, + "findings": { + "type": "array", + "items": { + "type": "string" + } + }, + "evidence": { + "type": "array", + "items": { + "type": "string" + } + }, + "checked": { + "type": "array", + "items": { + "type": "string" + } + }, + "gaps": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/response.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/response.json new file mode 100644 index 0000000..671c8b9 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/response.json @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{"id":"gen-1787283602-Fb3CAhGIsaEBp5JDhiFw","object":"response","created_at":1787283602,"model":"openai/gpt-5.6-terra","status":"completed","completed_at":1787283616,"output":[{"id":"rs_04a90f041869d87c016a87c893125c87d1a6a03823549e8508","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8iZGl3QKyBIVD8lZ10GIg9T5I9R8FQaHqmCUsN3bkwSaMIBEmbzoLkS8yZbjwWdXMzuHF5tMjkkpafORggpLOyydV8FW6qYKoNXpuYu0tqWc9pP7HbDvwpZXDQ9lDjzBEeI9HKtqjV-wubiuoWtcmWmlDUntGjhpHpYWbDu3xZX8gWAfU1dgD_yqHWx1FApxrEksdDoIeL2KCAJBlDNufDXJ81l2G5RwLI71k5mqJjXHP-B_pd24xCl-DpPObQjg4q-z0p81HJk6YlNg-o1GaLcEomrIGIITCqQDSL-c1YF10Y8laOLGl3NDAgxSs2XTpMLRB-Po_yo4cJCR5lKZ3zQd1lhvakzNhHuljNrplB-6iOqjhSm3pe6Qqc8D-goRrKxKvfYk-ZQqraKrR0oQAY-hVOS1OfPE2maAXILUYEVMWGEge9aCSc25rkMPU-m-pHOQXTD3hjkJlPSH5sdSJzUXjpQu8OiM0-uMul7SdijGsjruoXgPYO5tlvkMG1c_vO95X8M8_PKINA13eP-wVUsWOsURkW2W6WZvMDEYNZwPlQuh-aZQk0TyKdDk2lGIdXvVQBCZrk4kiFvhE39nIZMFWfstct-MZ0fZ2l3GE7u-x6fFnGMcU7WWHFSZok6jIAKywMIFkv_ePlgJHka3L2vbN6PoSi-SYKfZjE875J85JIrMrb5t1WMr_k0Bm-gPD1bVposezG9vZe5uHlePUW0Lo2iMusmou5vczb7V-ybj9gbxfw4Mw8ntoBC3yLjxInIo1VgbM4_uItw_SRt9J8DYXg3teJ3XSXj6b8WGwYE9aLHiQ9OvWf1p9tRC8PTRcoHuWsw6pk2MgteXfVRfkbVip0tbqO4xEJqeaPMpDs4SlqWSyw_qyHvoAUkqoIF5jAYBhXD-lV3DAt2iuAdhFnxv5uxivF2_HmXRORoxbPdra2WuA8W-ZUCPBx_umw-eBweMBcviXC6JgQ4LgOrBUmeuBTpAIhwhatv_ieuIVfg_0oVVuYarj_tNFwhxrI9iZdn2D5hz2tEzlBF_vbISvyIYQySJjfzv04Vt2GlaoDisEt_loZS2aVP91aAPDS3le73cgzHGT9uPHW8iKVCerpQA_Q4GuO67RBi-p2pjM7cY-R9Xo9gR8_XyKbGB29Hno1CoQ4-dO8mljQ6w8w_TZ8m_vMH5fpaLo1uOzK8XpZ_LrUwEHyGnfeCnH7s9d7vgL6oZKW8zLmg6AwsauPBZdEzLevfHHL8UenD4SM6nJmC2rywYvhr1iPZE2op3W3ILDfblLCQzGRFSF8BvNyMpdnGCUuT8whmY6dZCm9rC9b0YtftywOWV5v7DjjW2wc60cx4ZzZr5-gi-yNAv49R8HGRqjKpwMuVInL7gpnUaxiyeeDgQFnT03En_SBPAQBJon-adrkf2rgUGtf0kjHqtuWiO5UW83IzYz4Nag9IlNu8mOxJUDexLfdyh9Sv-umD5PsBe-suKiopoGvC00szoLyatVUegBB3jbLUtLHNfgb_zdznUTmb0V78WOr06Ab2eI7Mw-CvIwRUg4FTySVoMDb8QqKAToNpnGkQa0wy9noYTTiUfsmfDRAg0YGAQG3nvi763lMQpILlgNDRLiuAEVaApZyOdfcffgsjpJdqsy_ldBBVGV4vqN7N5i7sBF2LR3fZVO6eFw7Ix2nZ5MPOiDo1gaUuSVNwsq40lUYJu4XVFhciMRUfQqHL2RAFxY79MS7Gub_2eAj3YoZUvDL8Ezm88UuVn7vtuYaVIbM9OsBt0iqe_bA_pzTzAEGP2STVP_39pVssdu9XpISsPbGeEH6j3Koa9i_DdaB73pWbvW6rOTZLr21H3TWCEVsPc07vWDbh44Qb4lLST82JyPqKd5O_pkAGPxSNRepKE_fYC8MLhnIbxuF_GlT_mzhvddfgluth1gZviJJUlispcyPZWW4xJ7txJqti5zdmXr559jQPUyEm-Qpv0eAEVtnkrhDkDBnXQJnAN0CpG4nVr7hzPAM_RPAIZbk4T8rjEPb6LWb5_FQ-KSDJqgfB8MTrlm7T0dH1CAfpH3WNUoE_e8MVmrC-aKpH-RFtrlk48FbjQSG6cyYwcMyo550UJS69xgfHT9OFf1gmSgsoOVjz9kPOySCC6jCHxgnBlBcoGY1WfcM5hqHWIwERQEmn4TEHvDofDApHbcUzKYgcekLUcjxQl2ddsajg_5przNOuenRrVFlUnIyyMUh7kuLycAhcBPoY56ylAan1gqig8Dwjhzmh-iW5kDzXS8V-qZ09RUs4b7zGrvwQYgN4khrcyEVcqHY5d8W8bHQiovAJoC2JEGoBrjbnRTbziRYKQMSlPSAvUpvj8a032cKSh95vYOQjs0XfUTmPWw1fr_bATAiigebxcxvRSP3IUMwI6gM5pxt5EtbHnAG7pWUf6BmW7ZMWwnR3UsXUQNqcVmfmyB8gDs_xXLMrGsADWQg6rRAkgQz5nMhCeqkFfeWuUv-RLykBvwEhDNidcuPxTmsPThL9D17NZqp-rSu1l6CCuh_mfqhYMV1nXSfOoWmVr9Hoo2YX0QZ7pL4e7iojaI-nAGz7AVZdDHdk1t1tWGXasX-TkqHO0gGLy_hj0o0oQjEJp1H_z9BiE2ucFwlB7okJKl6GbADYINL-yU_kaJVmEmCKLnk5xKd_dJ1Pqb_aasJzXt34Yivh3naZMoMHXwgi_iFThY0y8DfvtGrDRUXH3LUHb1mwLdJrKhHvp2KpzWVDvCkNOOI3AvS2LvAtKzS8lSHiI8hQrsTYdwbhW3I7Noll9gbfvlNiAjl3ri6kMnoKaU7TnacmLD-wM7NnpYfPbMCYyZpXGyCyrHTfu2PqzubMCk7wflBCfltY_Lm3EeSO2wK2DZiIoYljcnXNbd-7YHjktn0PTO1qLKNRkrO9HSryWFZze6nwVvssTSYcUY6-ka49izoKDipSEp133eByU-IG9Bs9cn-fKXJVwxliz2U6dZFL_tK3OAgJq_J5N5EtqgewFmIyWrjThOk6BsVU23qSvDSwe75ucYwFBMg0qSi-_ye-3nd1UyJnSVe2j8JQBe-KE926eT79PXGVWwieU8MLygRWVGeI_ZaNsN9kE_mzHfnECAoUHnVBxcCJ086t6foPeD5a6jmpqNSle2aaMrW63p8cpyy-rTK7hxSPsEBN1xgfBa_AC_0Dk3-TXm58ejgxrGOOjBYcoulDmvLUSwIhLYjlGP3td-sG9C2Yyvdhi75s7hkJpkEm7TOiMpA9x61hIMnzvhGndhCb-HzkP65ag3gpdVY5M3NNgtk2pszFXJHNVGhDLp5jQF3goItF01zCKdSCkogYKbJRHWhzukX1quSd1o4jHdElPyDvf2g_BZSBzCViDtrg9mNIM2RVF_T5ikZ7GMo87ei3zJkJcq1uPVpziVO1s5W9dvyQoybzF1gC3HYcz6Vl0y-7TGa12VODDXzowbIk8fh3Mmz8VxlwuqkK11TvnrqW27YaQlo6x6WNkNN7rIPeblaV7-BSmqL5nCfy62pLGuuWOK2T-kb9sPOhEHRLwl-2DBXRxpAYtvTZY2K7V9KBXuhAYOh3OW3L2XgsahDb8TTRSWFsOyTJ3mhmv6MOmBrjZRx8Y3Kwmc_cpKYbayLrRZjCyPZ7pcB-SMiu32wNKx_d_ilvMGd7Dol-NwVpsA39C2Lngi1awpQMTnKQwUQ6IPlXy5_QKlil4qA4HNgZ9iueaIG29AUVm44mrLiwqcOQ7HzYvjczQxCo5RvsYawPzkGT4NEL4d-czPP3QAKlTYiJ7FvEl_fny50Ddnw25gPzL2464JGD3v0wIeGqzW_W2WP2kNBdcWTvw0IyUEuMQe-HH0m6WptRHmkzZLmdb5mgMzHq3xa_nDzwSdRkvXHPKFqAlxhwoGArJIq-xf4yzJ8_Yel4WTAaak6iUtu76gIOWXA2TAZDmJ79Cz7TVf2uymXBsgrjTrWX2nqnn7s3Q720yNQrwgEJRKbypRthrW8OvccDYoPqI5aPXQx9GxYUkvOXq2eDipdp_-7hNqSuUjoAP7k9OOxRVK4AuT_kCrQYJfQQoZCt5y8itBuG6P8gymWghGjJNgNTil2tl0WyJ2kJ9VFfWEaB2X4jZRFkYJ0WYj2IFfzqDRJusMXNrcmlRKRuscHA2wIExlP85LCb9IQxdacjZk_9qZKNftDBtuJfJ3Gsnmyv3K2_fTqnrkBjIP_07GE4_8eJdiFxTK6a4b1RM43tcJ4EH6jn48vbsKaT3jH60JnESTzb6H47NxKobvV1IQ88UO5szPzOzwXWLJ7d4NsreGhmq6CtZpXdmNTq339fMZo_jLuYCTmSgtvDG4aSHRS9ZMmH8Jaj5cFWOLfj5Xea_QH-rTKIQxz3-dFNieaA_uz1aVUEp4Ph6gwlXNZri9_wkX6PHtJrwqfGnRLsGIUJtxSz0QYZzceY4Xtbd43QDPtdFOaweP_veDsSNsJ_IBysEOd1dMvcyHflRKDXkNmjwJpahu7G4UBflQohuzjjCSONo54bYmLOoOeiVadGvtLBsN5H-ckQ_5E5Jm0OrgE8VFhFUDYcTuhxxzhz9oquHHZWyoxgIP5ZFc4tu1LdpYwOWGob1OYtofUALfjp5M7Bp-iFs3Xc70DrvSi1vqMu-BslfOKb6LjgbLQ5wugvKUXtpvTvSOe_c_qXHYlpQUhZre1wDJ5LV7-w40A4YW-M4DIIbr5T_zQFECA=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"rs_04a90f041869d87c016a87c899804487d1a54c63466fa3f24f","type":"reasoning","status":"completed","summary":[],"encrypted_content":"gAAAAABqh8ieMhC99m6Xj-l3IqA9dEEilo_NqKkmtNzlC_v6kn_GJHOAQEMACF5UJ9Xuqvgv-0MR2xNDAT5NxmCHCNn0d7GHcELdQrSX_uG6VBVkUkIktdDcIRUuAas2Vt-9xDu6PoUHR88COnh_-7SxWQh3BvFbXP7XII7OEweIXrxILjVGS3DMzZ63RaHyoFyYGaJrwxhWcTdas4RXML8kMzoSEeSXCOqJ3r3JPi99znKdEemN5IXWsNBlI8rW987pCjJDfWToYA2_jX9dur_y5ia4l6z2bMJ9ixakmcKzHi3BIl9iW7H8duRfegCLRvwc4nLiVpnHV0uKqRUqwnY8FLpkuLT_KhNfnbHGKQQM_dN_tGAbQmMZN-wnwqBQD3dnbwzqIFHAOiggNz3JlRQObsLfM9H2finWcr0MPRGpyCM2fucgM4lOA3HcUszqPyfFQe1z2wfC5bsx9u4X-O_yZ_bZxfiVX5khYT7NGlNQxIqNLpW3--9mpu7f9SuftW4pmq0n14Hg7qDC6zGib6SWyAZq2nm7fEyptjQP7aukzSx_CwCFZTWpLFWrJFhlMZX9X9jEJay4RKFyYGTnH4-1Ryv4_0MqyHO-CxY5AZCQ-mQaMJlkO9ArAw_NGeFm9CxT9sBegMDsNekyeBgObzdG_xQxt5aT_CstDjOZgD_vGPgxT8IavxLO7vM4HQn8M5uMHY2klnDF5vtGA-sVKU_L6EWIWNai-JzRs-hEW02GpF3wne4Ny1XqwROFTj8wZ4wk5Lx2KkpWQf6FbHM9Oe1gOL6QWWFtfssG9ikKuoVII8tlYCZhnI_rwAGlokzASe5m1GKE9_nNM8D5KpJjdYf7G6vnJgDeZKjzYtmZERad3SFweB-ef6emhKPN8cswqmmNm2jssz8oMckoknHyfvGg6GaCAlO5OtH44OlHYS9HswxIIY2Sg4hqShWmvuIO3mLdcYvoE60d_1x1z4Z8kUfNGZcUED2hq8XwNtQzn7ewKDXlZoavFLeHg5DSSGt_Nl6CDz4lomIOfbznTvYUaYfQE-pG5q9RoCkQtzWCpS4dwepyxn-i51xHloc1rQwf5NmVAL9h3VnKyQhsDkSiBJQwVHusfld6LEGSw_yrsZqet1p5pHx42WVic2h2nr0K2HSPrO53HOGwId0airISgZR22ai795XKfrhnRrL-JH0QDWPqG6Y5TjpUXTD7Ws04vBvHHOo6Qog3ZqfGOOJsWMiexiz13ckTlPjWoDfRWVBz_s27S5F57Q_3kdgA5Kwhp5w97BIQsV65QNXgsKS2AJTP9lVUIrQYMSC42qA7gHb8Gnuvz9EIpCcikQcI-5C2mO2xvaStDZLGnRMVdrsjwGpAewfCYKacdoAPcnBEqkLO0ibvO5hnaz8TE0Djcbh8IHnegOSyfhvzDX47BOVNNjnpsaVzOwI84pkfsXJbEpLvfX-HbwfxnnPX_xOqlkbKG4l5vbd_E4PNqP4FIOCnGH5FCtw8dc1QjXAgOqMVCrp72vR_cz8G8x3C6kle3Cir2oC-hrXLEaYW6_Tj4XxpBf8Ggjs11mNlw877Mz-d_SsPv7An8eQ9bBa661nFFM316mOMhqLsudwEsdEz923joG_SmiOGWcsyzCgXtLbEIX5Abzk4N880olu0SKAvtQb5g6auSCnqFHJoDa12zNhHBIuzzGELjXz16fTArB4wUjuIiq3l7fEPEK0DS28_J2NRGpEbHWm3-XIkljNj2qOb3t0HqlpXl_KwdaMF4L7goezGSoI0k5WRlYgXuLMS_lYuQe06Pf49zDdQixwo0fO6olwaUp0A9r6aL1fwtRO72nqY6RCbUeEUPm53qE9BjTTLp7bZNpxzntOGs4NSpGzONrKvR6Ztj2uJZIyxb40mn1Zjqor_uGZL9faIMtgH8pdOfvmBnsasqR4JBDd0JHFUW50u_myVcDnkDG0dgAz2QJUJw7haCH2ruSGdMjHU0xf-zvXgP9qKEZnDaT-7ym3wPcXKiTPlwyevQbQE938tlC7_R9o8m35UcdWetdBQRmwf9VFm8BXKd88IYEgcmGtXpOoMrbKpc1pkTGx8vE15jxVPCnUrOoxf0Tpvjalfkjp5uqiluKSoCAa7-l29lxSvosUwniYY5Njg8Z3h64TwAxYf5jMiE0lmAtXfpyVHm-GL3p3qej7tsIpYYMKGGnp3r4Lpk782mRz4kB2X4HZEt6o6uiskSQEv_T84C-gmQvNnD9XPXAZCxm0qQ05YAPx84Y1eSZXJsq9l6_cVIRZxoJoq4WMms6QsN1Z1bTIiJDk0Y1xddKOyBGxAjotOS7J4FAmmxqLwGNg54hYzrVHLQcgCQXt4QKxQqq2f83YwmtLJ360LkefriBY6VqKv05g_MKSxDe-i_mpk5D4uw4N0WQ7K9e7tlMczXT8ZBeLcZGEulfiyDBItZOjhc1ooY-y24-hsfm9xgRN5bh50VoUmxU8Uy0zKRF1FGpVU3H60DPBQSeL301a1vWs5oE9236RTuA1SJkBruvgIV2aUFK8jMbkgfHcAj7PaXrUtDLQpz56wA5meA-oHwrCyPWVrX3E5LZix74HaCB6sbTo7ujCERXlM-plqAPCTMlKm7KhUNzpJXoOo09Qe1f-fmBjUOid9kJ4YCPNl25hnbfF_RooiAoekBZqwc7wHEcpUx1RKhb8DVmPGfTudxN57ijNbRpbeu6kiuEzJ6Xf7MIBJFHJ62XAfL3ITIymrI-kJ5l2jJz5DKbzVbOwRSsVEXlu-5jVmDn_BQDDjfOP5un2gPzNbN4SMK6qWKR3wDglHn3PtwNGDWOkTprTOtcggbu7nMxsPVb44q1lU3gD12eFWW8Yg6uAyEIz1EE3p88fn7T8dpmH1weMTV9OCY3WPL0kAiwO0pu1QyS6zW_UScr956PI5cJxEmQpg50j9EWO1iYza4c2VSDlkYm7VCChPBPh9AdkzjYwRn7-ZInufQ12-e7W4CGHjLzmYAzZfXME4rRB_22I6PYWmJv_btYFPb7lEAq7mtzet7K42CP-LHYBD4kVh5sNgp8XGrBon6h7A3aaOW9IxTRaZA5TbFDS1WBsDLqvznTzPlwKf_N-c9th-KMWeeiGt2NXxp_9NRGZIlsxx92PE3NMxbYK029AeQfJ9Fsx5jZiODfwDski6SxR_zRHfi-n97R5TUL1FYKfS98Ly960lNvurytuFBj-YlkwuctF041z27kjt8hC8FGqBIJIc5iOLYz1_UfOzIB6xlzzMSjBTptb2R0GvpJxxvgBvCa88DCm3tD-JKY-ZzrTJI09973utUT1xVjNqkMuT_1jalcKMNzdn4QmXg3P3MgSLdfBwAtvICDep0oyJPIvUr1-I-2Vl4ooKtrCNOuBpVglxru1nSC7AdhlPy24bUjT2pJo8vzh3BNq7jwWb3ewyCwG962kE1-ovVOA8ZFvnsot86t8bnWdeWsHUKbcN7TisLpq_h0P8867AbY8tGetTVJrf3xp_KTDgaJi5YBedRl0BZPh6DgAwsUvdkaSe0wNfgf_C5luXa_Wh616D27EcGGoYqILCcUnwOK2ty9ojWL_mA4VjrQQ1FYAFUqYtniG4CsSltmCOKpUrvt6e-lK5D_YL9N5z1E70vEVfj4-sGO-uJ1xVBOKdrdp3YPlmgBvCvcnbLpeHN3ufDCALifhTxeXw1Sso6d-7AUKTMBRFgvxf1d6te1AhgNOFoOxn1nUlPdgZUFx-nTHvZWXMP-bDtACIMGkUr8cRZnFd5PSv5Vyfh_zKSD1tQGmXWINYm0yXv4KvJrydv1vis9np40FcDLzoEDZ3Yci2PHnhdBY=.eyJlbmRwb2ludF9zbHVnIjoib3BlbmFpL2dwdC01LjYtdGVycmEtMjAyNjA3MDl8b3BlbmFpIn0","format":"openai-responses-v1"},{"id":"msg_tmp_wbqysx2wd9g","type":"message","role":"assistant","status":"completed","content":[{"type":"output_text","text":"{\"verdict\":\"BLOCK\",\"findings\":[\"PinnedVersions derives `prop_name` directly from a JSON-pointer path segment and passes it to `remove_prop` without decoding JSON Pointer escapes. Keys containing `/` or `~` (notably scoped package names such as `@scope/pkg`, represented as `@scope~1pkg` in a pointer) will be removed using the escaped literal rather than the actual object key, so the pinned override remains.\"],\"evidence\":[\"The new code sets `prop_name = &path_to_prop[parent_path + 1..]`; no `~1`/`~0` decoding occurs before `package.remove_prop(parent_pointer, prop_name)`.\",\"The prior VersionsByName path passes `self.descriptor.name`, which is the logical dependency/property name rather than a pointer token.\"],\"checked\":[\"PinnedVersions removal path splitting and property-key handling\"],\"gaps\":[\"No test evidence is supplied for removal of pinned entries whose key is scoped or otherwise requires JSON Pointer escaping.\"]}","annotations":[],"logprobs":[]}]}],"error":null,"incomplete_details":null,"tools":[],"tool_choice":"auto","parallel_tool_calls":true,"max_output_tokens":null,"temperature":1,"top_p":1,"presence_penalty":0,"frequency_penalty":0,"top_logprobs":0,"max_tool_calls":null,"metadata":{},"background":false,"previous_response_id":null,"service_tier":"default","truncation":"disabled","store":false,"instructions":"You are the workspace.json advisory reviewer. Review only the supplied proposed diff. You are read-only and have no enforcement authority. Return a concise JSON object. PASS means no blocking issue was found in this scope, never a safety certification. Missing evidence is a gap, never approval.","text":{"format":{"type":"json_schema","name":"workspacejson_reviewer_verdict","strict":true,"schema":{"type":"object","additionalProperties":false,"required":["verdict","findings","evidence","checked","gaps"],"properties":{"verdict":{"type":"string","enum":["PASS","BLOCK"]},"findings":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"string"}},"checked":{"type":"array","items":{"type":"string"}},"gaps":{"type":"array","items":{"type":"string"}}}}}},"reasoning":{"effort":"high","context":"all_turns","mode":"standard","summary":null},"safety_identifier":null,"prompt_cache_key":null,"prompt_cache_options":null,"usage":{"input_tokens":422,"input_tokens_details":{"cached_tokens":0},"output_tokens":1116,"output_tokens_details":{"reasoning_tokens":896},"total_tokens":1538,"cost":0.014236,"is_byok":false,"cost_details":{"upstream_inference_cost":0.014236,"upstream_inference_input_cost":0.000844,"upstream_inference_output_cost":0.013392}}} \ No newline at end of file diff --git a/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/verdict.json b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/verdict.json new file mode 100644 index 0000000..3258cf7 --- /dev/null +++ b/docs/evidence/meta-362/scenario-c-syncpack/treatment/run-03/verdict.json @@ -0,0 +1,18 @@ +{ + "status": "COMPLETED", + "artifactDir": "", + "verdict": "BLOCK", + "findings": [ + "PinnedVersions derives `prop_name` directly from a JSON-pointer path segment and passes it to `remove_prop` without decoding JSON Pointer escapes. Keys containing `/` or `~` (notably scoped package names such as `@scope/pkg`, represented as `@scope~1pkg` in a pointer) will be removed using the escaped literal rather than the actual object key, so the pinned override remains." + ], + "evidence": [ + "The new code sets `prop_name = &path_to_prop[parent_path + 1..]`; no `~1`/`~0` decoding occurs before `package.remove_prop(parent_pointer, prop_name)`.", + "The prior VersionsByName path passes `self.descriptor.name`, which is the logical dependency/property name rather than a pointer token." + ], + "checked": [ + "PinnedVersions removal path splitting and property-key handling" + ], + "gaps": [ + "No test evidence is supplied for removal of pinned entries whose key is scoped or otherwise requires JSON Pointer escaping." + ] +} diff --git a/scripts/verify-published.mjs b/scripts/verify-published.mjs index 3a14578..f2a6387 100644 --- a/scripts/verify-published.mjs +++ b/scripts/verify-published.mjs @@ -62,9 +62,24 @@ const packages = [ // immediate post-publish check has no way to tell "not actually published" // apart from "not visible here yet" and fails the Release workflow either // way — training everyone to ignore red, which is worse than no gate at all. -const REGISTRY_PROPAGATION_RETRIES = 6; +// +// The budget is a DURATION, not an attempt count, because the attempt count is +// exactly what drifted away from the sentence above it. Six attempts with a +// linear five-second step is seventy-five seconds of waiting, which does not +// cover "low minutes" and did not cover the 0.5.0 release: both packages were +// published successfully at 00:05:31, the retries were exhausted at 00:06:48, +// and the same script passed against the same registry minutes later. The +// release was real; the receipt said otherwise. +// +// A count has to be mentally multiplied out before it can be compared to the +// claim. A duration cannot silently disagree with it. +const REGISTRY_PROPAGATION_BUDGET_MS = 10 * 60 * 1000; const REGISTRY_PROPAGATION_BASE_DELAY_MS = 5000; +// Capped so the tail of a long wait stays responsive rather than sleeping for +// minutes past the moment the package actually appears. +const REGISTRY_PROPAGATION_MAX_DELAY_MS = 30000; const isRegistryPropagationLag = (stderr) => /\bE(TARGET|404)\b|No matching version found/.test(stderr ?? ""); +const seconds = (ms) => `${Math.round(ms / 1000)}s`; for (const pkg of packages) { const directory = mkdtempSync(join(tmpdir(), "workspacejson-registry-")); @@ -80,7 +95,8 @@ for (const pkg of packages) { } async function installWithRetry(pkg, directory) { - for (let attempt = 1; attempt <= REGISTRY_PROPAGATION_RETRIES; attempt++) { + const startedAt = Date.now(); + for (let attempt = 1; ; attempt++) { const result = spawnSync("npm", ["install", "--ignore-scripts", "--no-package-lock", `${pkg.name}@${version}`], { cwd: directory, encoding: "utf8", @@ -88,16 +104,40 @@ async function installWithRetry(pkg, directory) { }); if (result.status === 0) { process.stdout.write(result.stdout); + if (attempt > 1) { + console.log(`${pkg.name}@${version} became visible after ${seconds(Date.now() - startedAt)} (attempt ${attempt}).`); + } return; } - const lastAttempt = attempt === REGISTRY_PROPAGATION_RETRIES; - if (!isRegistryPropagationLag(result.stderr) || lastAttempt) { + + const lag = isRegistryPropagationLag(result.stderr); + const elapsedMs = Date.now() - startedAt; + const exhausted = elapsedMs >= REGISTRY_PROPAGATION_BUDGET_MS; + + if (!lag || exhausted) { process.stdout.write(result.stdout); process.stderr.write(result.stderr); + if (lag) { + // Say which of the two things this is, rather than leaving a reader to + // infer a failed publish from a failed lookup. They are not the same + // event and they need different responses. + console.error( + `\n${pkg.name}@${version} was still not visible after ${seconds(elapsedMs)}, which is the whole ` + + `${seconds(REGISTRY_PROPAGATION_BUDGET_MS)} propagation budget.\n` + + `This is NOT proof that publication failed. Check the registry directly before treating it as one:\n` + + ` npm view ${pkg.name} versions\n` + + `If ${version} is present, the package shipped and only this receipt is missing — re-run this script.\n` + + `If it is absent, the publish did not land and the release needs to be re-cut.`, + ); + } process.exit(result.status ?? 1); } - const delayMs = REGISTRY_PROPAGATION_BASE_DELAY_MS * attempt; - console.log(`${pkg.name}@${version} not yet visible on the registry (attempt ${attempt}/${REGISTRY_PROPAGATION_RETRIES}) — retrying in ${delayMs}ms`); + + const delayMs = Math.min(REGISTRY_PROPAGATION_BASE_DELAY_MS * attempt, REGISTRY_PROPAGATION_MAX_DELAY_MS); + console.log( + `${pkg.name}@${version} not yet visible on the registry ` + + `(attempt ${attempt}, ${seconds(elapsedMs)} of ${seconds(REGISTRY_PROPAGATION_BUDGET_MS)} elapsed) — retrying in ${delayMs}ms`, + ); await new Promise((resolve) => setTimeout(resolve, delayMs)); } }