{"_id":"@adlc/review-calibration","_rev":"17-2b2e23cd27b71309bee23474a8f299b6","name":"@adlc/review-calibration","dist-tags":{"latest":"1.11.1"},"versions":{"1.0.0":{"name":"@adlc/review-calibration","version":"1.0.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.0.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"05969b76f20977ede50b6d7dfffd11184e8cdf9b","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.0.0.tgz","fileCount":12,"integrity":"sha512-u6UN1qoZC0hkLu5L4hBUg5DrQQ0Osr2t3dEoG4TNHwZSXKbRtDSXV9/ezSdV4/5eBvZV7gd4t2it//tDUoIdGg==","signatures":[{"sig":"MEUCIQCfxtgSA21Nc/ug0UYdfOD5HZf9zuW1Uv6cfkFf2AbYLwIgbzYD+NdqZeGMbi16qWsfu70m5+4VUMNhWg3S5Z4aLFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59731},"type":"module","engines":{"node":">=18"},"gitHead":"18f4c2890048cd9d5913b6b3aeeff6c37ae372b9","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"voodootikigod","email":"voodootikigod@gmail.com"},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"10.8.2","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.0.0_1781385173266_0.6639541798666757","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adlc/review-calibration","version":"1.0.2","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.0.2","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"359d4fd424fa7b155cc49b8bfe959c075f59d9e0","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.0.2.tgz","fileCount":12,"integrity":"sha512-dT0txNukU8fNXIG4zPmkAw8PtOxLWPY+2IFT0Va8y+IWtknrDDPKVuAvlpNUwB+umeZJTF62JTlTV7LJGgbyEA==","signatures":[{"sig":"MEQCIDNTDOOjUQ1agGkGg6KNQ8kLqLvsIKNJutFAkFlt6DunAiBUjwavw/0fPLN3+2LcwiJ5H8MrsDtQBahEGsYdAZFwdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59731},"type":"module","engines":{"node":">=18"},"gitHead":"9412678eb342b02cd86c1279d908f1fd56ca7bc4","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.17.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.0.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.0.2_1781461055307_0.9393457916116319","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@adlc/review-calibration","version":"1.1.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.1.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"b9510775daddaa884c9b2400c69047108f90bde0","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.1.0.tgz","fileCount":12,"integrity":"sha512-186CdkHYYqWRajYf/cC+ne01U+nmbNzkqBF2gKVR/K6qoOh+TqgbVUbczJ+Zkdlo8WHq4RM9sBwquSq+iVRVSw==","signatures":[{"sig":"MEUCIBmFYUlkxrIVlj4+s3Wzi9i5UvxncFNuQDa+mFru3yGSAiEAoAPcvtPbhgophkHPz5npTGJMDgLACpZgOsUeCyllTjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59731},"type":"module","engines":{"node":">=18"},"gitHead":"30e96544356c997ca986a1f9d5f4422724ad94a5","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.17.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.1.0_1782216910013_0.7022721103381038","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@adlc/review-calibration","version":"1.2.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.2.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"0966e5a00db146e7497017dc04afec87dc9cb13d","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.2.0.tgz","fileCount":12,"integrity":"sha512-+f2vAnba5mQrQhVIhLtTMTho/BRUg9h5kKTLkR8ubze7+TezkIpbCdNd13xU2UDYuhQeuR4ed2sZsP1PhYSONg==","signatures":[{"sig":"MEQCIBhUGg48r8J4VZru1aWYXZPk9HB1tl6X+biiWSYiPRdiAiByLOeiSPoBUE/YdQ7hhYDL9n3BAQVdbMxjFmA/y91Zgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"e1a9315750d794959884e3ed0b1cc29398d25f0e","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.2.0_1783726127732_0.7219665097613663","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@adlc/review-calibration","version":"1.2.1","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.2.1","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"0878a990bf60b8eb2054e1410d92f1e6f108994b","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.2.1.tgz","fileCount":12,"integrity":"sha512-w+EEehNSD/HbywW/G+mlnnnw6rBEj9VGhJe5Z/D/nOH/E64ELshduvmDp12BfBs5ha/2nO0xUXEKeyJTB2rn5g==","signatures":[{"sig":"MEUCIB/zQ/vdWXAB43HO8yZ1m61JcTdIg9JxFChqtjwof+K5AiEAkNYuAebphyWD13ugDW1QnUgz2nDyFLkRjDuCW9V0cDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"7ce933041948a1f8076966b4c05ebcb3f08d9781","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.2.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.2.1_1783727170153_0.661593452033177","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@adlc/review-calibration","version":"1.3.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.3.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"db7370b02edb94ac33b1b352e6e3d874a104dd6a","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.3.0.tgz","fileCount":12,"integrity":"sha512-RehDyG5dsPV6OM/OS+zCvOwqlIa/jTYNjWKymmx0pEX9usRZ2bxTPovtDG2AoeRmWMEX2NeK+J72rLgdtbgKJw==","signatures":[{"sig":"MEUCIQCahAkfUmXpmUyrAjjv9uF54fKFhjOLDdaoc8nCdezk7QIgYrWdIXCnQdBy5/i7ubGQRf6alTOzb8tHxuyH9hFH3WM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"de4b878aa375bcce92f1828afafd87ee6872d2b4","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.3.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.3.0_1783780385898_0.8641206321475312","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@adlc/review-calibration","version":"1.4.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.4.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"49cece29d75b9183e822b7da76787c7f992b377a","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.4.0.tgz","fileCount":12,"integrity":"sha512-MsNUrEg4Qi53LjfubgEbSEdXeY1PSX7zU1MTPYQ0vq4UbRIdJApn4HHxbRwNxIvzJ0ULhpRYnzjhhl2N+Xx0fg==","signatures":[{"sig":"MEUCIQCHw6BEGliVICCUV9PN0cJLg7x7S1iF0q/5gWC9ylNWMgIgChreR7WCul46TX83gwRJJa7VfeOCiUZJC0KkzCTppPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"2be4ff6ef2397811d288ae1de14c21e5b901e76d","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.4.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.4.0_1784074880336_0.2918476489269426","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@adlc/review-calibration","version":"1.4.1","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.4.1","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"772d8e37014fe58c6f64b35d1c32d09ca9673ce0","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.4.1.tgz","fileCount":12,"integrity":"sha512-iHJkrwmEu13tItCarPa61vxGtEoaoMi/4tpjicWBjGeNbEdpTFMZvHYkBlUiQMF0oCtDX+cT+tT0ynMnmRlgEA==","signatures":[{"sig":"MEUCIHJ6Y+86vmh9B0dSoERRsxZiNyJm7LFgpMCus0dCzJWDAiEAts0qv00Totl3WPzBfa8gAopFS/gt6HRl0NKdLeQh63Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"d1765e679c224131056836f13f5a9c296b5316f8","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.4.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.4.1_1784076713783_0.36493566930966925","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@adlc/review-calibration","version":"1.5.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.5.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"d613d367b622a597ff5b4f36107a7eb0a67825d7","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.5.0.tgz","fileCount":12,"integrity":"sha512-EKzrapF4dMkMLsES2ejzfWYtPgiMcvcrmlZxW9UI8XC24hD5lO33lPpBg0dThcZJXnHY5Dt/xTlTvBGDmhvjew==","signatures":[{"sig":"MEUCIQDXyuIkjXUlW8GEDT5B62WGEhnN+XPpu98aP96WtH045QIgTq/UueXSM0lYQEg7zU9y0eyPHs1MvlTT3hVnXZ7aCeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"c2763540068dd7deb26b089209de3bd03e2437c5","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.5.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.5.0_1784556988852_0.844709720450532","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@adlc/review-calibration","version":"1.5.1","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.5.1","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"b07ced1f4f8d1fdf953dcd6830ef639d41ea0520","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.5.1.tgz","fileCount":12,"integrity":"sha512-5t1OU/SRXxYYpfiUrA/UjK22td1rjS0k+07um4Rh9hTXcsVw7sRAjOmCb1i7zXFsM3kvwXnfCZFj5+1ia4dnRg==","signatures":[{"sig":"MEUCIFnaDxQrJUDHQPwshQ4bKlRZH2stSLBZQoHuNFAVv+ZrAiEAvx4TPqZhmrhCCRNj/RdeZNto6AKkfbp9i4VI0KDm8kY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"ba648f21aeafb9a253a243c0e268044da3513217","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.5.1_1784631874963_0.5284299072332828","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@adlc/review-calibration","version":"1.6.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.6.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"4aa1877a982adcb8c2ba1fa1677517b07b7159df","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.6.0.tgz","fileCount":12,"integrity":"sha512-KC/Jz8pHQjLpiVTzSTrlnQyviMkk5wl2BNTCu1gqrQszGPBCXPkOu6pY9SCW7yRagBhUDQ0lacCiUpQ6/JrrEg==","signatures":[{"sig":"MEUCIAwO5OA/ctoyouMqyOvIyLVe3o5L1/Fmu/briKTEooKCAiEA28X8HOJcmUw/OKvXQD1OmLaEbD4i52zsJgvihhtJ3yA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"390a608f51165db92da1ccf68a965770db0b0376","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.6.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.6.0_1784720639601_0.5135804398932371","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@adlc/review-calibration","version":"1.7.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.7.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"b5def4109eb4b06e2b4e8eed680786a4dde78a04","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.7.0.tgz","fileCount":12,"integrity":"sha512-6ipOZyIy42gCUENPexGOINKpfkOezyc/N4r1KOC6QVdK0wCfGfta6hYXhEA7B8qpbrbJDFAteytrPdi3mnC5Sg==","signatures":[{"sig":"MEYCIQCJsWrf8381Kym7PJfJyEyISkuud4fUQvNTs0jQhdHs3wIhANi6S/fFmPf2ZueUR/gFgRdcPekdb4dF6XkOKFYFmQeM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"d7eca2696e43aa6caf3de655840fae14aa0efd57","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.18.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.7.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.7.0_1785329294354_0.5071524837155124","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@adlc/review-calibration","version":"1.8.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.8.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"05f29e684d8dd243bfd7d02a39b10845ea04c544","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.8.0.tgz","fileCount":12,"integrity":"sha512-uYDBsIg2J3eO72Vsmy3MyJQH7eQtCtErR1NZv1mT/W2fV688qxtLXpy5Q7voLsBJiJFDw5+vbcYB9SAZKm875g==","signatures":[{"sig":"MEQCIEeBDE1/ytfRO/MHgz4MJ5u+czpiWo270LE8PYdsDfS5AiADx+s449PiEvuOxbWmDqUPxgQOP8g2D1JhQSKKOtTflA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"e6b6525502d3deb214f58cffeb6c9db4b9787e39","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.19.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.8.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.8.0_1786195831695_0.10158088200565496","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@adlc/review-calibration","version":"1.9.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.9.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"761fea4934055beca11d294ed360027a20f2b4b3","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.9.0.tgz","fileCount":12,"integrity":"sha512-c5hfKtUUUSuaBepRwKHLz1TvUp0VVYAXMUHLChEntfeAhrUNDCjzVBrHj5eRTdAzlPaF3x8vYLjGYWdp0m1afw==","signatures":[{"sig":"MEUCIQC6iPDm7WSiNgkQ4WMnjYInfxn72+O+ZBPH2esC23aYLwIgedacylunJM470sfo9rjLW/N7+2PqpOSjIOPvSv1SGgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68393},"type":"module","engines":{"node":">=18"},"gitHead":"a928a7eeb3c2c5078b44c181702c3220ba1a7a5b","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.19.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.9.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.9.0_1786221137124_0.11281942502958309","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@adlc/review-calibration","version":"1.10.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.10.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"e7664206210271f77928a2d882a3f0465fdcae61","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.10.0.tgz","fileCount":12,"integrity":"sha512-PAJxU1TgFutsaWSz8FN4F4ng/7i71Mw5yKyOfGCRB8oB92NLE9peCwgi7QgDoLgss9MKjdLfwdWP2m29IZ3acA==","signatures":[{"sig":"MEUCICAxOYOiECUS+ufYIsVna5xVcEPa+Y1DE4Pc/4tWdPVtAiEAwOljweRrjiblEYB4XNh4SaNKPNTt5+FyPvLKrqhSza0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68395},"type":"module","engines":{"node":">=18"},"gitHead":"905d493f596a62b4bc3236f97281a43982c1e300","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.19.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.10.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.10.0_1786385941397_0.5326363813614139","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@adlc/review-calibration","version":"1.11.0","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/review-calibration@1.11.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"review-calibration":"bin/review-calibration.mjs"},"dist":{"shasum":"6f012c9db217f99c367812c0069c97231184346f","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.11.0.tgz","fileCount":12,"integrity":"sha512-bAfsEaGks72hUc95jFbhKTlPv8iLXjODN5yUCTbRIpqRakfbGKxZtWSRnrZ2or7FZGB+LH6rcbVK3pmjCx0TIQ==","signatures":[{"sig":"MEUCIQCuz5fm+HQciUqLNLxmCQkd70JogT1CpFmvkJ26lpLiQAIga/8nxhjH38bg8ldFtTggmG4G73gSOa2+bPZjpDH0jOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68395},"type":"module","engines":{"node":">=18"},"gitHead":"1e4e6f704912c912d9b3c87f57e077a48ca78c5d","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/review-calibration"},"_npmVersion":"11.19.0","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/review-calibration_1.11.0_1787594189606_0.19407331588930443","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@adlc/review-calibration","version":"1.11.1","description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","type":"module","license":"MIT","author":{"name":"Chris Williams","url":"@voodootikigod"},"repository":{"type":"git","url":"git+https://github.com/voodootikigod/adlc.git","directory":"packages/review-calibration"},"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"bin":{"review-calibration":"bin/review-calibration.mjs"},"dependencies":{"@adlc/core":"1.11.1"},"scripts":{"test":"node --test test/*.test.mjs"},"engines":{"node":">=18"},"publishConfig":{"access":"public","provenance":true},"gitHead":"c5772b4ff942bec77a34454c4fc888ae4e4b2c14","_id":"@adlc/review-calibration@1.11.1","_nodeVersion":"20.20.2","_npmVersion":"11.19.1","dist":{"integrity":"sha512-F3mYZ6IWjZUPzcT7I39KQq9edp9wccy2yZwLBphMnvNQDDYtD2bpjHUVbGReXV7bFfQZsIyRpZE83KzwrZ7+4w==","shasum":"b2e1df3b0644a47f9352c0520e6899aeb50909db","tarball":"https://registry.npmjs.org/@adlc/review-calibration/-/review-calibration-1.11.1.tgz","fileCount":12,"unpackedSize":69277,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2freview-calibration@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDAxyRxk+B26m6tdwOf1BJzi1bVszPXvalVCa4POCv/cAiBTMM8FtTXgE0m2aO/GvpfRZkFJ4R4KOY2w7GN8ZhKGMw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48839e0e-a3f7-44d6-b2e0-0e7dd9972675"}},"directories":{},"maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/review-calibration_1.11.1_1788949697901_0.4162427516827403"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-13T21:12:53.116Z","modified":"2026-09-09T10:28:18.374Z","1.0.0":"2026-06-13T21:12:53.412Z","1.0.2":"2026-06-14T18:17:35.445Z","1.1.0":"2026-06-23T12:15:10.256Z","1.2.0":"2026-07-10T23:28:47.855Z","1.2.1":"2026-07-10T23:46:10.305Z","1.3.0":"2026-07-11T14:33:06.030Z","1.4.0":"2026-07-15T00:21:20.486Z","1.4.1":"2026-07-15T00:51:53.965Z","1.5.0":"2026-07-20T14:16:28.994Z","1.5.1":"2026-07-21T11:04:35.111Z","1.6.0":"2026-07-22T11:43:59.755Z","1.7.0":"2026-07-29T12:48:14.502Z","1.8.0":"2026-08-08T13:30:31.844Z","1.9.0":"2026-08-08T20:32:17.251Z","1.10.0":"2026-08-10T18:19:01.558Z","1.11.0":"2026-08-24T17:56:29.759Z","1.11.1":"2026-09-09T10:28:18.026Z"},"bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"author":{"name":"Chris Williams","url":"@voodootikigod"},"license":"MIT","homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/review-calibration#readme","keywords":["adlc","agentic","ai","llm","cli","review-calibration","gate"],"repository":{"type":"git","url":"git+https://github.com/voodootikigod/adlc.git","directory":"packages/review-calibration"},"description":"Measures reviewer recall via planted bugs — who reviews the reviewer (P5 meta-gate).","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"readme":"# @adlc/review-calibration\n\n**ADLC phase: P5 meta-gate — \"who reviews the reviewer\"**\n\nMeasures reviewer recall via planted bugs. Turns \"we do adversarial review\"\nfrom a vibe into a number, exposes category-level blind spots, and re-runs on\nevery model change — catching the silent regressions everyone currently absorbs\nunknowingly.\n\nThis is mutation testing aimed at the *reviewer* instead of the code (ADLC C8).\n\n## How it works\n\n1. **Target files**: Files changed in `--commit` (`git diff-tree`) filtered to\n   non-test, non-config source code. Falls back to `--files` if the commit\n   touches no eligible files.\n2. **Plant selection**: `mutate.generateMutants` runs over each target file's\n   full content. Up to `--plants` mutants are selected by round-robining across\n   operators for coverage. Each plant carries a real bug **category** (off-by-one,\n   logic-inversion, null-handling, …) and a **defect** description. `--plants-file`\n   plants may also carry a **witness**.\n3. **Equivalent-mutant filter**: a plant with a witness must DISCRIMINATE\n   (pass on the original, fail on the mutant). Plants whose witness does not\n   discriminate are equivalent mutants — there is no bug to find, so they are\n   excluded from the denominator rather than scored as missed.\n4. **Control self-test**: before scoring, two reference reviewers run — an\n   *echoer* (must score ~0) and an *oracle* (must score 1.0). If either is wrong\n   the scorer itself is broken and the tool exits 1. This bound is what makes the\n   recall number trustworthy.\n5. **Apply all plants**, **run `--review-cmd`** (`{base}` → commit ref), **restore**\n   (always, via `finally` + SIGINT handler).\n6. **Parse findings**: the reviewer's output is parsed as structured findings\n   (adversarial-review `--json` shape, or a weak prose fallback).\n7. **Score**: a plant is CAUGHT only when a finding LOCATES it (file + line ±3)\n   **AND** identifies the defect — verified behaviorally (a reviewer-supplied\n   `repro` that discriminates) or judged semantically by a cheap model. There is\n   **no string-match shortcut**: a reviewer that echoes changed lines scores ~0.\n   Recall = caught / valid plants. Precision = true / (true + spurious findings).\n8. **Gate**: Exit 2 if recall < `--min-recall` (or precision < `--min-precision`\n   when set); exit 0 otherwise. Exit 1 on operational error or a failed control.\n\n### Scorer modes (`--scorer`)\n\n- **`judge`** (default) — cheap-model semantic match. Requires an LLM provider\n  (`ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `GEMINI_API_KEY`). With no provider\n  the tool **fails closed** (exit 1) rather than emit an untrustworthy number.\n  A reviewer-supplied `repro` is verified behaviorally and bypasses the judge.\n- **`string`** — LEGACY location-only matching. Gameable by a reviewer that\n  echoes changed lines; prints a warning and is not a trustworthy recall number.\n  Provided only as an offline escape hatch.\n\nSee `REDESIGN.md` for the full design and the rationale for each decision.\n\n## Safety\n\n- **Refuses to run on a dirty working tree** (opError, exit 1). Commit or stash first.\n- Files are **always restored** — `finally` block in the runner + SIGINT handler\n  in the CLI.\n- Exit codes from the review command: 0 and 2 are valid (pass / gate-fail).\n  Any other exit code is treated as a crash (opError, exit 1).\n\n## Usage\n\n```\nreview-calibration --review-cmd \"cmd with {base} placeholder\" [options]\n```\n\n### Options\n\n| Flag | Default | Description |\n|---|---|---|\n| `--review-cmd <cmd>` | (required) | Shell command to run the reviewer. `{base}` is substituted with the commit ref. |\n| `--commit <ref>` | `HEAD` | Commit whose changed files are used as plant targets. |\n| `--plants <n>` | `8` | Number of bugs to plant. |\n| `--min-recall <f>` | `0.5` | Minimum recall fraction required to pass (0–1). |\n| `--files <list>` | — | Comma-separated fallback file list when commit has no eligible code files. |\n| `--json` | false | Machine-readable JSON output. |\n| `--help` | — | Show help. |\n\n### Exit codes\n\n| Code | Meaning |\n|---|---|\n| `0` | Gate passes — recall ≥ `--min-recall` |\n| `1` | Operational error — dirty tree, no plants generatable, review command crashed (exit ∉ {0,2}), or bad arguments |\n| `2` | Gate fails — recall < `--min-recall` |\n\n## Examples\n\n**Basic calibration with adversarial-review:**\n```bash\nreview-calibration \\\n  --review-cmd \"adversarial-review --base {base} --json\" \\\n  --commit HEAD \\\n  --plants 8 \\\n  --min-recall 0.6\n```\n\n**JSON output for orchestrators:**\n```bash\nreview-calibration \\\n  --review-cmd \"my-reviewer {base}\" \\\n  --json\n```\n\n**Custom file fallback (when commit has no eligible source files):**\n```bash\nreview-calibration \\\n  --review-cmd \"my-reviewer {base}\" \\\n  --commit HEAD \\\n  --files \"src/auth.mjs,src/api.mjs\"\n```\n\n**Testing with a trivial fake reviewer (CI smoke test):**\n```bash\nreview-calibration \\\n  --review-cmd 'node -e \"process.stdout.write(\\\"LGTM\\\\n\\\")\"' \\\n  --min-recall 0 \\\n  --json\n```\n\n## JSON output shape\n\n```json\n{\n  \"recall\": 0.625,\n  \"caught\": 5,\n  \"total\": 8,\n  \"precision\": 0.83,\n  \"truePositives\": 5,\n  \"falsePositives\": 1,\n  \"minRecall\": 0.5,\n  \"minPrecision\": null,\n  \"gatePass\": true,\n  \"scorer\": \"judge\",\n  \"judgeAgreement\": null,\n  \"equivalentExcluded\": 0,\n  \"commit\": \"HEAD\",\n  \"reviewExitCode\": 0,\n  \"perCategory\": {\n    \"off-by-one\":      { \"caught\": 2, \"total\": 2, \"recall\": 1.0 },\n    \"logic-inversion\": { \"caught\": 2, \"total\": 4, \"recall\": 0.5 },\n    \"null-handling\":   { \"caught\": 1, \"total\": 2, \"recall\": 0.5 }\n  },\n  \"plants\": [\n    {\n      \"file\": \"src/auth.mjs\",\n      \"line\": 42,\n      \"category\": \"logic-inversion\",\n      \"operator\": \"invert-comparison\",\n      \"status\": \"caught\",\n      \"original\": \"  if (user.role === 'admin') {\",\n      \"mutated\":  \"  if (user.role !== 'admin') {\"\n    }\n  ]\n}\n```\n\n`precision` is real: `truePositives / (truePositives + falsePositives)`, where a\nfalse positive is a finding that locates no plant (in a clean base + only-our-plants\ntree, nothing else is broken).\n\n## Scoring logic\n\n**Caught** — a plant is caught only when a finding does BOTH:\n1. **Locates** it — mentions the file's basename and a line within ±3.\n2. **Identifies** it — a reviewer-supplied `repro` discriminates the mutant from\n   the original (model-free), or a cheap-model judge confirms the finding\n   describes *this* defect.\n\nThere is no \"output contains a substring of the changed line\" rule: that is\nexactly what let a line-echoing reviewer score 1.0. Echoing locates but does not\nidentify, so it scores ~0 — enforced by the built-in echo control on every run.\n\n**Per-category recall** — the catch rate broken down by real bug category\n(off-by-one, logic-inversion, null-handling, …), so low recall on a category\npoints at a specific reviewer blind spot.\n\n## Relationship to sibling tools\n\n| Tool | Role |\n|---|---|\n| `hollow-test` (C4) | Mutation testing aimed at tests — kills mutants via the test suite |\n| `review-calibration` (C8) | Mutation testing aimed at the reviewer — measures reviewer recall |\n| `adversarial-review` | The reviewer under test; wire its output to `--review-cmd` |\n| `gate-manifest` (C11) | Records the calibration score alongside each review verdict |\n\n## Core gaps\n\nNone — all required functionality (`mutate.generateMutants`, `mutate.applyMutant`,\n`isDirty`, `isGitRepo`, `git`, `parseArgs`, `pass`, `gateFail`, `opError`,\n`printJson`) is available in `@adlc/core`.\n","readmeFilename":"README.md"}