{"_id":"@teps/gauntlet","_rev":"41-e391b205d8fb3aae379f8c28b526f8d6","name":"@teps/gauntlet","dist-tags":{"latest":"0.28.0"},"versions":{"0.0.14":{"name":"@teps/gauntlet","version":"0.0.14","_id":"@teps/gauntlet@0.0.14","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"a0ab61984b9a6c9492bc1561bbd1fb35384c2304","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.0.14.tgz","fileCount":69,"integrity":"sha512-adIEEwE+zcdLzvF5biAEkkjL7o4QCxfjv71wHBSy1BmLMo9C7WVlwmRQQWzi9fCMCR2iwNvBFYEaobcX6SJL9Q==","signatures":[{"sig":"MEYCIQCBkliBE8O5EtJfoYTS8eeOW3A01BkGzzg756lV6IEepwIhAM9d4ef4fMnvvNG818g+kadMWKhXKZ+91RzOpGX/TRQ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193902},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"181ad806ea9bdb008724b89053d7d0a3ea4558a6","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.0.14_1786175902996_0.23987456037534072","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@teps/gauntlet","version":"0.9.0","_id":"@teps/gauntlet@0.9.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"a1c9398f80616e18e6c11b343fccce3130a99d92","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.9.0.tgz","fileCount":69,"integrity":"sha512-rHkG1zbssBZE7zaqZJ5mNIADkRPdahYvM4HOwC6pmwtK1gArt83JolLuO0urecYzQU4+3w+6sglZK+V3Hyjf7g==","signatures":[{"sig":"MEYCIQC9P2IDRet95lS4LUvCQO5cp7+qQ2vUlBUqYk4BD5/xQQIhALJJJC3UWhXouckhCWEBAA7s1dxvi2HolgoRT1USPd6M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193899},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"9f29fa264a7a37528f4fbec7f66b5dc64961f687","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.9.0_1786177498332_0.2543937616563494","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@teps/gauntlet","version":"0.10.0","_id":"@teps/gauntlet@0.10.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"90492e0c15f4a39996f1d5cf962a4b3b3c8a7b5c","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.10.0.tgz","fileCount":69,"integrity":"sha512-nh2OyfhDJkf/qJMLZQexA86Y2+j+n9sgZShOAvGszaahj/DjyJuyJDItj1a82TcUUsqrDmxRMuY9kMmjTL4+uw==","signatures":[{"sig":"MEUCIQC25Rx6/WykYmEMYkhD00vxhJKWEGB3Mj7hcS+HfnQApAIgbg2SCflAHzb5ykPOMXW1KOSDSDdRoZ1tN1iBO3OGu3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196547},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.10.0_1786183307468_0.13050047755285132","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@teps/gauntlet","version":"0.10.1","_id":"@teps/gauntlet@0.10.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"79be42e2608eb25ee51fcbf11aeb44734acade74","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.10.1.tgz","fileCount":69,"integrity":"sha512-zYYB66qqaGHR30PuIh1B8RbY/hodq25cvDaYOsCgwfVnhaXZXr9aM2NxfbPMpnx98Ij0vkAEQ9S+HWRvNef4Pg==","signatures":[{"sig":"MEQCIHKw/IabCRVdgJJssQ242bqAMjVh//6bTiYBBWmyLnvmAiB+QzEvFUEL9RsGc0cRtKCqWY5Z9q3wkhOYhcUGkFZepg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219704},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"7cc1ae2c44a3a01ec2f8827c2e559f7de95dcad7","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.10.1_1786185223374_0.04119063899146269","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@teps/gauntlet","version":"0.12.0","_id":"@teps/gauntlet@0.12.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"4da7e3203362aab5564ad33eec97e0c2b9ed98e4","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.12.0.tgz","fileCount":72,"integrity":"sha512-p3U6NCYfFn9KHthQguBCfkHl6LC9m4j/Pq0EJWng730tKHP7v+EQ4FKizPYttwifAWfBzZ04SGQ6bQNt5j/HlA==","signatures":[{"sig":"MEQCIF6hyGJW1LfXIXa/F0C3nQQHGKGVLAXW3VWWhsOs6LceAiAj3eQW+zwCrcAIxRLXnLywNZIBIzWr0ub0wvw8YrhXpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237363},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"41d1c283f5c5b3f5987d0f46cbd817307a423f41","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.12.0_1786196492588_0.9188891059877384","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@teps/gauntlet","version":"0.13.0","_id":"@teps/gauntlet@0.13.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"c2c475a30f101fa90ed69ee2061daa702840644b","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.13.0.tgz","fileCount":72,"integrity":"sha512-epOPr4eCGCX+Wkfihm2VKV/sVy7JaOUfft+Ouh2rA2ugrKoo+hinZ/9mAKRuQGG+F/xx0OmvpJTAt81TK4hhDQ==","signatures":[{"sig":"MEUCIBCgtmx/wPcP73crrnsVkgthJNPNwyD9CsiIjP+mf8iDAiEA0h3a0i9y7uKRmO13co7LaR/WOZNq0EOzMY02KTfH8Jw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241000},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"a7c78c2915eb6b0099d6d42bc7519fa5107c6d0e","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.13.0_1786254378352_0.9866150094566888","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@teps/gauntlet","version":"0.15.0","_id":"@teps/gauntlet@0.15.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"29d7b362ad56cdcae7523c17d965e340ac61a0b8","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.15.0.tgz","fileCount":78,"integrity":"sha512-insY9m1KpY0xVxXUimP6t12/6a+HGTdg3Q4IEdI5zx7h++jKhOi2G3RO7CcSxw6VnJzif5WOqy6do8hPS8QDkw==","signatures":[{"sig":"MEQCIE8rQrktSNpewRWXutojgPw2d3Ey1Z5D3zE7JROglJqeAiB6BYJlIlFH7fDJCDniEYTbtucunRe4PmeEC+XMuhDhsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255295},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"36c5f1bf9c8b9a876459b8e0527956125692ea43","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.15.0_1786331334729_0.7408905249481015","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@teps/gauntlet","version":"0.15.1","_id":"@teps/gauntlet@0.15.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"5035ab8eaf37a46f16b372587139015eff4c011d","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.15.1.tgz","fileCount":78,"integrity":"sha512-3LjOcGYAhxzLdDhjT0y9wQJo2w3bEFVboRmbTyRCf/AedB2uKYHEB8i/IqAHOfh5c/aIinDkcS6p39KCCpd5gg==","signatures":[{"sig":"MEQCIA9JugrIKNfa3VkOCKCVxdfsrr56IFNzAEkRw61gIonlAiANi2/Y/l22Ux1Fj5p+yGVzaNhHRJoeoIYZ+m/aWaJWbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260599},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"34f1aa6e609a39796976ae7ee484a9ea0e659bb1","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.15.1_1786332989015_0.2610557639724467","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@teps/gauntlet","version":"0.16.0","_id":"@teps/gauntlet@0.16.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"01d678b0beaba640d9d8f05892ec4ecdadc3a248","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.16.0.tgz","fileCount":78,"integrity":"sha512-B1hKHeNs+R7sR9ogPA4XUXrnsHjVy4v68CAqAjC5jRClZIhl4ayZnvK9oUeWJLVpuDc6TCzHyFU9qCoRVpuWkA==","signatures":[{"sig":"MEUCIQDhRI4QVFmH3IM4iQeD1odf3dY8/wPhc6Ssfyt+Mr61WwIgXZi0CcfDT+WVs1lnyP+XbQw1J48bAFStKmpiGx4U61I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262281},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"502de842da948ac71e730120b0f9b818e9adc656","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.16.0_1786336078076_0.8363381811468698","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@teps/gauntlet","version":"0.17.0","_id":"@teps/gauntlet@0.17.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"4e6df5773d03344810da4e07cdefa869ef73d243","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.17.0.tgz","fileCount":78,"integrity":"sha512-lo8NqARcLiG4zsI/abma0tvm86vmEzG/7USpytJYVb0OUkQTcVK+hnfIXHMQgjlPuH0pQFVerGyyzLTK18ED9A==","signatures":[{"sig":"MEYCIQDRQErWlYx+unve8nnmpuDru05HIs8Bg2Cxb7hG5dJpdwIhALb1r1b7/BfSMMHLvBQ3vqji2hUhDpohZbmW1UUU7dSy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251408},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"ae123c12972d90cff4119baebce41f796a89595c","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.17.0_1786359954674_0.5889803084399672","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@teps/gauntlet","version":"0.17.1","_id":"@teps/gauntlet@0.17.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"c9491510ff2df786e0a59fc367373835d211da68","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.17.1.tgz","fileCount":78,"integrity":"sha512-5qKBbAJvbo5HPeeyq23+XrVH/5SbBCiNZPx/Iyvg4Osg8NZ/StT6HYiF6IhTP5TmQcwzIb9vfd3wZwnUiwxDEA==","signatures":[{"sig":"MEUCIQCl0twcQs6EBvkifcV0KH5Fgdn5djzvJVrK7MExbT8R7gIgcmau8rHI2FWM4ORJzjfHZrAh+OLahUJa6KfPb882ilY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256069},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"4bd6ca83ddc856e4f5c9944988248da639fb84b1","scripts":{"test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.17.1_1786363254904_0.49948066098590704","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@teps/gauntlet","version":"0.18.0","_id":"@teps/gauntlet@0.18.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"b891ed74d0e813839f5eac3ac275fee788d28eb4","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.18.0.tgz","fileCount":78,"integrity":"sha512-cMV/XWdx6DHkLZkqqW3W4isH7nAvq1jtU/QOLIjp/JWw++MWePN13ukyAdJIVdzEeZZFPp7U2qznYyRbWNBMIw==","signatures":[{"sig":"MEYCIQC5bUYRrYzrXCCrKJAWH1VErdtj/UldH+IAhILOGcZuzwIhAKrurJ++UDhTF0fvd2KtfmZyY2Zix4gEHVeLx7bG8tHs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253859},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"04759ee175d7068efad79ce0011db26fab1217d8","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.18.0_1786366997961_0.8606090532209865","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"@teps/gauntlet","version":"0.18.1","_id":"@teps/gauntlet@0.18.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"9040f1f6d6f16a7628e3d244b6b1028716e0d331","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.18.1.tgz","fileCount":78,"integrity":"sha512-VnNy8kJ6XNJ/ImNdVYymmrw0AB7wo5r//0vhfGKqP/YsxD5CPbU8EYbX9TwXwAu5cuGnMmkzJCUtQBNTnlBGMA==","signatures":[{"sig":"MEQCIBFo3vMRHc/2WLmKz74HHRMf8OjMBYBmYWa+iQXVZzyJAiADIZpb9Tdq7UfbJPp5vP0OpGan2cd+XnX/veaIsnCN/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260260},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"24071c4690ba7e6f567b60fc13188cd8b6d331ff","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.18.1_1786373227675_0.40642595613903887","host":"s3://npm-registry-packages-npm-production"}},"0.18.2":{"name":"@teps/gauntlet","version":"0.18.2","_id":"@teps/gauntlet@0.18.2","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"fde1fd8752d69fd8cd9da090a83471aff18d52e3","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.18.2.tgz","fileCount":78,"integrity":"sha512-6IDAHAMB9xovcEJBZi2narIiPoqo07as7hOUE01/8amMU/BlHcVIO4ZJKz8mTxFggypWfenPJP5MZYM46X3uXA==","signatures":[{"sig":"MEYCIQCBmNEa5SX2jpt4HZe+bfFwYhgkuPNwtIhh4grWxHWk8AIhAK6HqTedwb4ZfqkE34+8C0YE8vNWwQ3hUn/szGshk02y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271901},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"e766ae714a0904ed7bc55ea5de4a02b1856e7622","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.18.2_1786415551121_0.8080408471647105","host":"s3://npm-registry-packages-npm-production"}},"0.18.4":{"name":"@teps/gauntlet","version":"0.18.4","_id":"@teps/gauntlet@0.18.4","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"b0df31a79999ebd32a330850f3ca44ba69764cd7","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.18.4.tgz","fileCount":78,"integrity":"sha512-vCur5FTEfjUiDCl8ZyluNl2JhdhSQlFBvcXJ2R5rsuJR2Kwwbt5WD5JxZbRuY5jycdAD5VfMLSFXHsLR+/98cQ==","signatures":[{"sig":"MEUCIQDZqDfG/pd1e3n9Sib6lDeAqxTzLwKkPWtGkSSpMyFWhQIgCkzLYxq+z8H/rvoNasAckoyi3OWDcyKAgDImFEenG5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277999},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"ed0356443118ba9340044f2ebba1df0d174c35cf","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.18.4_1786418281478_0.21783143272796224","host":"s3://npm-registry-packages-npm-production"}},"0.18.5":{"name":"@teps/gauntlet","version":"0.18.5","_id":"@teps/gauntlet@0.18.5","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"cc5d6220cb7c8aa10b2679dfe4610ebaf9a91530","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.18.5.tgz","fileCount":78,"integrity":"sha512-xOYhv3qjci0RMaiv4PNR2e/VV7WCleSeRPQ8GU7+Z+2t+cmUZU71Ky1GYL9Z+FMSL7yVnpGc4wfZW4H+JJd94w==","signatures":[{"sig":"MEYCIQC2VZSoMTvbA+yRoWcczM4GGZRNnpR8+8sR1pm6AhNGWQIhAO0qYb6pUEpNvsCSRr/yOMM1WHx3+ky4YHIXm2rhwujF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281662},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"530cee3b66801c59ad2be2d4fb3050c9489e14b1","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.18.5_1786423325401_0.42229755230025523","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@teps/gauntlet","version":"0.19.0","_id":"@teps/gauntlet@0.19.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"e383d9b188a3c73fb90a9087bfe0306e0362a2eb","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.19.0.tgz","fileCount":78,"integrity":"sha512-HN0rQczBeQf4V6OR7UXNM3lRpRF91aCQlxfJYwKwQ0Dsl2tD5GJrAOHvl5tEPrwKEXYfXjRpsc6kDZs2GRHXWA==","signatures":[{"sig":"MEYCIQDAMErnttMALGSfMJQ97Ak5NgEM/fERimX7vACzTgWMrgIhAKwPPzNAKLdzQwKpRSy+nNNoFXQx1rDjQzsRz1aOx2ya","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294752},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"a6908d5773ce86772e0cdd881823555cdc09585b","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.19.0_1786427631271_0.42628727826294455","host":"s3://npm-registry-packages-npm-production"}},"0.19.3":{"name":"@teps/gauntlet","version":"0.19.3","_id":"@teps/gauntlet@0.19.3","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"e545b25416ac42abc3ceb50190fe946d697d95bb","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.19.3.tgz","fileCount":78,"integrity":"sha512-1xUaCDY/8QnkR4vlTZG0SZLKsGwymLZqzZnGRSQSjCoTzzB8sk+EvEERSJhM1YIr2qiOoZf+ktsvdXqATPXXDw==","signatures":[{"sig":"MEQCIDSNVR6lkI5KGOA1u8ztEc+92Q0ALYeEx+E2KPLRasOXAiB4F1AbCMbKMYXx+tbWAEZf52uK5vFqZSPcKltJ2sDetQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311915},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"33ced726b946a04a2c74595513004625f216a53a","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.19.3_1786437826634_0.652469536579874","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@teps/gauntlet","version":"0.20.0","_id":"@teps/gauntlet@0.20.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"74ecd03e35a30bae98c442b330d0ce18d1643080","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.20.0.tgz","fileCount":78,"integrity":"sha512-Fr4Jj3mckv7qDtctTc+78kX/cT1NOUx1VTWmMOGgZlvFDmCLo1DrzbWk+xm7aKRkOS77HGb1W9MuD0VI7sthkA==","signatures":[{"sig":"MEQCIDEAiCv8+9hIrE0ZEznDRkxJ9P0aRmX7n4kQiBEgZCwaAiAgp6jt3pRX69aUX2+LwXobrJMj3tjIkqYB0cVfjo16Og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317307},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"736d3afe424ccb25aafdbe8fa0901a37fa853d54","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.20.0_1786440811554_0.07057813564167881","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@teps/gauntlet","version":"0.20.1","_id":"@teps/gauntlet@0.20.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"dd8a73682572bb1ed0b2036b80108ab2d44cdda7","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.20.1.tgz","fileCount":78,"integrity":"sha512-AUyOkCKIvRmJP3nkFH+c01eiSGH7esP+Cqe1aWjU6yhoVeBqB4STx22LqoDWTg7AclJockSMfVqgGTbjFFe5gQ==","signatures":[{"sig":"MEUCIEJYrknnWibtfq3JrNKqRRu3mKwAmtZU3HfrMBQXW7TpAiEA8q5+aZMkP6vyclxJqABqJbRW9XrkAn8IeHTksemqXKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317944},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"f11fa1b3d50bcd32ed6c8abec1e6bc5632b04ff1","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.20.1_1786440938566_0.19532516173539283","host":"s3://npm-registry-packages-npm-production"}},"0.20.2":{"name":"@teps/gauntlet","version":"0.20.2","_id":"@teps/gauntlet@0.20.2","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"abaed9e39eeb82b5bf52fd49867d07418ab719e2","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.20.2.tgz","fileCount":78,"integrity":"sha512-KSIdQL3JWHN6Ma9QBdV5opVtFX18zCdnhtgb/nPzhw2pv8SEU0I62R4mUOeWn2w69md4j0dulid4gseEgo9lsA==","signatures":[{"sig":"MEQCIEOgtu5LYm5Xm8X8bfeoR4caQ+Yt5IrPv/yxdnjItF+kAiAR/Yb+P5IlM8K5BhXQmc07GdnuCiJIWnj/3fP5BNDUYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321422},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"d6ff5c321a51fd27809790418e413810ca600f24","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.20.2_1786441463919_0.8369037076312853","host":"s3://npm-registry-packages-npm-production"}},"0.20.3":{"name":"@teps/gauntlet","version":"0.20.3","_id":"@teps/gauntlet@0.20.3","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"0d2ae86033b6beca0d3e5104e09a2bf505fbd1c8","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.20.3.tgz","fileCount":78,"integrity":"sha512-ni3pEYl0lPjKEMX6gV2rdQAVVGgDqNEXe4P20psw6drbSRwY9dMJEsaWZ4xeBlBANoX8rlBdB2EDlTCee4Zkzg==","signatures":[{"sig":"MEUCIQCrNphJKv8xxXc3BWkEflEHedfVDM3+7jYDlmGc0jR6SQIgRAw1I3LPhoNRQtkIhn1Ug1iOqnt14tpxozrKu21VDyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323135},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"4bb6464f1f6ce5e0592b2f0311a81cdcd786c108","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.20.3_1786443750754_0.7557996581628643","host":"s3://npm-registry-packages-npm-production"}},"0.20.4":{"name":"@teps/gauntlet","version":"0.20.4","_id":"@teps/gauntlet@0.20.4","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"f61c219f9015db39661c734ddf5bfc7dfcad7bcf","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.20.4.tgz","fileCount":78,"integrity":"sha512-zWBshLORsKlNX34tOL8UefQpKHBUWegMU4lkJcMShIkPKD6EUa4U3XuaQ0UqESNRSbL4hNlqhhtaR8IIesw3QQ==","signatures":[{"sig":"MEUCIE3ZY8IYRwaPNPTWyLvIpDCHCxH/pc8UWMfiAI0ERE0LAiEAiXU2UjtuFkCkwOoei9ZPJDpZfh1bFKc9ECd5iSLET38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325839},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"64a0f6fef4222e0f2adc94777c8f9d5ecd7577ea","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.20.4_1786449251560_0.9235781187408394","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@teps/gauntlet","version":"0.21.0","_id":"@teps/gauntlet@0.21.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"8be1a931f4f2bb3c0601c9ca05a407f518e5e21e","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.21.0.tgz","fileCount":78,"integrity":"sha512-mYSQTVpkELPzkOwgM6QrLRddYVMLxesSrh8+orLOsO2HfUVBld0OF7/10QkQVMEPfGJ0nK+tJkyOMRxY7I8feg==","signatures":[{"sig":"MEYCIQDP2d18u7Q235HvvGrKKwmvHN8lVw1/S64m31QsQUqlFAIhAIu+1kcCXctGiK71cx42+7sIZ5oJcik9i+4CWwt9vh++","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335078},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"67ca90fbc9634d0a2affbfc4d8abc7b6d8810b8d","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.21.0_1786453257529_0.061631602771351046","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@teps/gauntlet","version":"0.21.1","_id":"@teps/gauntlet@0.21.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"e1ee23ec81ae79edc3e291c313caa8277fbe199b","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.21.1.tgz","fileCount":78,"integrity":"sha512-DwFkcpPjLZndMKM4ebp+u65UvPNUi0W9wn8zHRT+khxrOCM/XXkxBCYqj79sAiJu6OH2ktGMTJEBhM01ghcv8Q==","signatures":[{"sig":"MEYCIQCu7HPsvBVJRNFaC41/L9vTeI54bUbJpf/BQejC1LB3TwIhAK1iscG4R7US2Vlzse6EhIcS3aDGiBJF6Tn5cSCYnNvF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336078},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"daac325b01dfd667202a2715291a1e26295be828","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.21.1_1786454105899_0.3607466863060296","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@teps/gauntlet","version":"0.22.0","_id":"@teps/gauntlet@0.22.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"192dfa55a0408ae1b1b2a4afe42b75cf986ea08c","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.22.0.tgz","fileCount":78,"integrity":"sha512-AsXJ8EA956QlVSAuTj9139WG5J+520ZCGoDf8T4nqFXf6QRHXIk7WdSkOVhRX21eXZkPhU9sgjqz6LmqbihsOQ==","signatures":[{"sig":"MEQCIGC85ps60jewkxF+A405fD5XPDafnuY9hA1ov5ILiuoxAiAIheaKERVoRG7wSFoW7CmhwmjAo1dpjeb/3KhI4PXNlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358455},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"1147fea3aaa40115b3a933542c6757cb1744118b","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.22.0_1786493668783_0.9042631852432981","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"@teps/gauntlet","version":"0.22.1","_id":"@teps/gauntlet@0.22.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"29761f0aa230e9fa6168c03232f146e3165218cc","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.22.1.tgz","fileCount":78,"integrity":"sha512-kbWMP5MED89ON2xtxiTZxPIRugjFarea4SYjJs/FsKhnrtzyGS63aAxEFnFrb0/Q15T57Jm3I2tLnP9Zit3LYA==","signatures":[{"sig":"MEUCIHAxk7qwvPp+6jyhVjRZKVNbQuXJn64w49B3llWI4IjyAiEA9ykHeUpCHiK0emLegyqYYbnwo5XWYt/bZbcjC9gibwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361137},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"61a7e3610370b4665f4564f4a9b818fe119431a3","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.22.1_1786494617817_0.5930654650453964","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@teps/gauntlet","version":"0.23.0","_id":"@teps/gauntlet@0.23.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"8ca208546a21499cbbb22714dd1b201b04ac94f0","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.23.0.tgz","fileCount":78,"integrity":"sha512-I3/65CuRUo8DieDVy5k7NrfFVFE1U5wqPa41CMcqxNInCzyx9yR/0PlWx2rRl3rYd2kO+fyTmt/alKveHTtnoA==","signatures":[{"sig":"MEUCIQCU4zwpWBangD5voIyQlPqR8/3LOV+8aEsVKakLK6FEDAIgE2cz9uzmc89lu3gXQ42A0V5X59WGWSGeyb0hOccvT/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371984},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"f3516961521be314b2df3bbc4e017d18c765bb31","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.23.0_1786498329497_0.37990796825671946","host":"s3://npm-registry-packages-npm-production"}},"0.23.1":{"name":"@teps/gauntlet","version":"0.23.1","_id":"@teps/gauntlet@0.23.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"2f48aa525a7c3fbc209c66d0a8e2d9899faf483a","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.23.1.tgz","fileCount":78,"integrity":"sha512-ZFHLb+9SvxorokSGJKPC4ejeBrgbm8E1hVoZb+X35Ay0v7L/5Ae6VegbU14AYFZZwISAiDvGIHy+Mo/TjhmMkw==","signatures":[{"sig":"MEYCIQDqu584De+HcyBDFl7Y8mx7D8qMvo+BI6lKRS+vVEvgawIhANht3ywuskLCV28nyTE/1CYRxtubLeiYQop3qiCt99bx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":373742},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"e29084b0258952655c85404e048b05e6acf89115","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.23.1_1786504368262_0.7791464185007873","host":"s3://npm-registry-packages-npm-production"}},"0.23.2":{"name":"@teps/gauntlet","version":"0.23.2","_id":"@teps/gauntlet@0.23.2","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"e4cd4ad928f39e064e97ee3298f4bec6f9599780","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.23.2.tgz","fileCount":78,"integrity":"sha512-wmAvckFrUce6BfopidbBG3NDId2/dKzBKfpe2BbeaCIk02P+mtosmefqNmoLCU7p/bJlGtgVzjUJu3raOC2nyA==","signatures":[{"sig":"MEYCIQCHTw7Lwmjk5llBtA2HUdCwRYUGA4grKQ/2j2Cjlr7ztwIhAJSPF9I5ACk1TShnatnwQNSjmJNGoPhkt0OCjILKW9Z7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374284},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"9f550bf751afc6711b12787fd612c0022cf8747d","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.23.2_1786507389389_0.25447203836432997","host":"s3://npm-registry-packages-npm-production"}},"0.23.3":{"name":"@teps/gauntlet","version":"0.23.3","_id":"@teps/gauntlet@0.23.3","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"dba9828e8f0aa3c851fc185d963b8a511f9dbc50","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.23.3.tgz","fileCount":78,"integrity":"sha512-ZpjNppDo4484qSPv6oJtfefbjxrRl/y2Gc+byCOZhMpczeP+zPDInyK/Cxwqz4AcMIMDefCFeA4/Uch7k+Jzmw==","signatures":[{"sig":"MEYCIQC65m0nRGp/+RuQZfkIAw+nj9g2GtHrrRMrxVWKYeGHXQIhAND/VlN57C5YO990xrP2pTRtuRdG0clZsjdf1evrDiUF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376649},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"cdfbf38a3b78124af682b2fecfe9e089000c7945","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.23.3_1786508479396_0.3800524119812947","host":"s3://npm-registry-packages-npm-production"}},"0.23.4":{"name":"@teps/gauntlet","version":"0.23.4","_id":"@teps/gauntlet@0.23.4","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"660e4551f32644254293bc63406950ec7857a159","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.23.4.tgz","fileCount":78,"integrity":"sha512-DGrbxMHRFVRjJYtcGrda4wmly7eG9KwKe5Uu9s3RnzyzMtSgtjk3aX6sZMpiBr3z5H3amtB8KJoNsIZogVkD2A==","signatures":[{"sig":"MEYCIQDPOD+olNRksKb/RSTHF7FmcriTk6pF/qyPR+BRvbSlrwIhAJEzTute86a7aibpSDLW6BsNfsezawyjYmYCqq88cgcy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377036},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"b319567d3c7383d439c8a35298dfd04240ac42f6","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.23.4_1786510084587_0.9697067210493722","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"@teps/gauntlet","version":"0.24.1","_id":"@teps/gauntlet@0.24.1","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"8196a0151e94483edde4d31c96cb4c396dd09100","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.24.1.tgz","fileCount":78,"integrity":"sha512-+OvmnY45yCLHrRMyxx03YLQTEBlgxE5hxMfxodOcDIfUvwElN4gjvXqPi5rNx801qAAj4vOSOp7zhjg+FXSX9Q==","signatures":[{"sig":"MEUCIQDt5n8d1vaNH1/3llgVHkS5c8v6b4CZlrRUIJIClqPZ1wIgXnh77cc+JoxXlRSg6skBkqylFPibAlY25t2l49J43zw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":401362},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"081b75b450f217755463f5ca326cfb9a1e436b5b","scripts":{"lint":"eslint","test":"vitest run","build":"tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.24.1_1786521644577_0.34010444670045437","host":"s3://npm-registry-packages-npm-production"}},"0.24.2":{"name":"@teps/gauntlet","version":"0.24.2","_id":"@teps/gauntlet@0.24.2","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"2b413c6e7c0299224daf37f7c5fc9aa5733dcd47","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.24.2.tgz","fileCount":72,"integrity":"sha512-HUGZRP18ryDmnnAZoJvSKOfbfi7mzGzLez0Rc4tqwaT2KQlXqSVW5V9GODaiYsAuMONKAW0R9z+PQhLBV/8GcQ==","signatures":[{"sig":"MEUCIQCU7Mh1Te/oAWwKrfGw4Qnbp1tJpJ4/i2VYvCXYBVP/0wIgU5uAA4dXdRh9F0O/mLwNdEGfDnfAGJalnzwMhkSbJYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389146},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"scripts":{"lint":"eslint","test":"vitest run","build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.24.2_1786526881985_0.986315892609624","host":"s3://npm-registry-packages-npm-production"}},"0.24.3":{"name":"@teps/gauntlet","version":"0.24.3","_id":"@teps/gauntlet@0.24.3","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"8bc3b6edb1983981155ea246ac606b6538a5c193","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.24.3.tgz","fileCount":72,"integrity":"sha512-MopO3IAS4+WxvMGqb3TELZBNsInFBbnNGZlOCRLETUjacld7JUlf1k4+DBxezKd/x0Y7z9Jmsg0GAgMd7WIkNA==","signatures":[{"sig":"MEUCIEOB4H4Y1sY4mxZCTYV0+x8ieLa6jhjyONbZ1fSqwEyYAiEA55Ci17zCi8VAgoOe/SfMH+t9J3iy1aHjG7QguP62weY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416791},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"958e12afca4c0f4936a4fb83ebe79cfbf5e45e0f","scripts":{"lint":"eslint","test":"vitest run","build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.24.3_1786530170724_0.923654478672491","host":"s3://npm-registry-packages-npm-production"}},"0.24.4":{"name":"@teps/gauntlet","version":"0.24.4","_id":"@teps/gauntlet@0.24.4","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"dff6587a0c3fd0273583966bc50f76073adc7ee1","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.24.4.tgz","fileCount":72,"integrity":"sha512-D9/tA9iZo3+IpCepiMrcrCKAKEGzaN1E/2Tt7CK662SJgdCsRblAvLwowtHDqCJ6/CJ9n4E769+q6PFnBHFTgg==","signatures":[{"sig":"MEYCIQCcksrdLkcaU5kY7wALTrer7rk25Nah6eMdGVXqUGoSrwIhAPiDIdrl+gNkiAU3pewtvyYsvVWarH+vr8nEQkl6tfnY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":429266},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"5b56bf76e416753edd2bf00683afd1e8f894339b","scripts":{"lint":"eslint","test":"vitest run","build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.24.4_1786534043847_0.17738076503449074","host":"s3://npm-registry-packages-npm-production"}},"0.24.5":{"name":"@teps/gauntlet","version":"0.24.5","_id":"@teps/gauntlet@0.24.5","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"3fcdfe7e7ae15376c2b70e6635fa6c5946cc3273","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.24.5.tgz","fileCount":75,"integrity":"sha512-ZrLvJQNN/abHXachtppnNODXvVSUcFVrgM7lZsgcwYX7VW1OxYlqNqOJphw9u9VyqoZsZMuy7jr/mbJbNafqMg==","signatures":[{"sig":"MEYCIQCxS9n/5x46hGr/gp242Y/jrwFv7G8iMuIWjsj1HsGBowIhALnKH3N348KIfYWzHrT04JMYCmOoTrKQrm2Rb9QkvNYl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449907},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"a7da5d5b0a32afd4f56dbd60881e95ae67e73da7","scripts":{"lint":"eslint","test":"vitest run","build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.24.5_1786536364492_0.8133086914866745","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@teps/gauntlet","version":"0.25.0","_id":"@teps/gauntlet@0.25.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"75c83c3369009b7bf21cacf1e8be58557fdf8bbd","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.25.0.tgz","fileCount":75,"integrity":"sha512-lW9GEjPDuCIvhUINTsirWPg0DYiZuJ/6/mmSPKDOHSNQ4o7u6ulpRZ1YqOY1AsVilwHHG30WCQzwPJvEZjAuxA==","signatures":[{"sig":"MEQCIBWOKF0DsVwi+jgDcF5aPsPOEzsa8rxHZBBLfoDP6d/bAiBGChwk3s4KwESKglOtr6Fegj7Lan5zCuLDzqTPzmDN+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462533},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"ac67e957de54274991b4cfa83484d68f782b4240","scripts":{"lint":"eslint","test":"vitest run","build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"overrides":{"qs":"^6.15.2"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.25.0_1786541760568_0.869662174677093","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@teps/gauntlet","version":"0.26.0","_id":"@teps/gauntlet@0.26.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"62561a18ec554431a027c7f64b08b2f7d10dbf42","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.26.0.tgz","fileCount":75,"integrity":"sha512-lggZ1TTFyC+uKmcDjlXIkttGoDyUfbFeBX1mJjUKM3IUzwJsouadXt70ip1G5myI/BcYVtO1RhJYeRMvvDWuqg==","signatures":[{"sig":"MEQCIEpVzcZXb0EjtPlXUIDPGlTR+QbY24z24tD/1qGih8AmAiBqnTBj3fLRvdqbgbgHcOKIj11p/FISjaPUKrYAsX01YQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":480282},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"4471d2c96c2019e2df488c70eb371d8552fd159d","scripts":{"lint":"eslint","test":"vitest run","build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"overrides":{"qs":"^6.15.2"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@stryker-mutator/core":"^9.6.1","@types/istanbul-lib-coverage":"^2.0.6","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.26.0_1786604038209_0.8226595080410861","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@teps/gauntlet","version":"0.27.0","_id":"@teps/gauntlet@0.27.0","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"homepage":"https://github.com/tepshq/gauntlet#readme","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"bin":{"gauntlet":"dist/cli.js"},"dist":{"shasum":"bf53f40aee02f755c72fb5299328f13f4f0ff164","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.27.0.tgz","fileCount":69,"integrity":"sha512-kNGGzfdCNTUNP785IOigkG13PO45aP5+OMhjunYL8BL35ezBtn26EjILUts/cj4lfm2+Ed6l4AUQL1wWUjbIxw==","signatures":[{"sig":"MEYCIQDZTqvwqkufhyVqpdA04Th0fnQOTrk3h/eWyHMLYHaqtgIhAPSw1p++mcvNqeq6qaGMYZnbv58HuKBhk35grgewxLk/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303567},"type":"module","engines":{"node":">=22"},"exports":{".":"./dist/index.js"},"gitHead":"c0c1b127f89127018a623098c01cc27457691b07","scripts":{"lint":"eslint","test":"vitest run","build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"overrides":{"qs":"^6.15.2"},"repository":{"url":"git+https://github.com/tepshq/gauntlet.git","type":"git"},"_npmVersion":"11.13.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ajv":"^8.17.1","jscpd":"5.0.14","oxc-parser":"^0.143.0","istanbul-lib-coverage":"^3.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^24.3.0","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.10","@types/istanbul-lib-coverage":"^2.0.6"},"_npmOperationalInternal":{"tmp":"tmp/gauntlet_0.27.0_1786962116533_0.42512509677136","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@teps/gauntlet","version":"0.28.0","description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","type":"module","engines":{"node":">=22"},"bin":{"gauntlet":"dist/cli.js"},"exports":{".":"./dist/index.js"},"scripts":{"build":"rm -rf dist && tsc && chmod +x dist/cli.js","typecheck":"tsc --noEmit","lint":"eslint","test":"vitest run","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"dependencies":{"ajv":"^8.17.1","istanbul-lib-coverage":"^3.2.2","jscpd":"5.0.14","oxc-parser":"^0.143.0"},"overrides":{"qs":"^6.15.2"},"devDependencies":{"@types/istanbul-lib-coverage":"^2.0.6","@types/node":"^24.3.0","@vitest/coverage-v8":"^4.1.10","eslint":"^10.8.0","typescript":"^6.0.3","typescript-eslint":"^8.66.0","vitest":"^4.1.10"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/tepshq/gauntlet.git"},"_id":"@teps/gauntlet@0.28.0","bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"homepage":"https://github.com/tepshq/gauntlet#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-R+oEmbUXRpgx5tQ5TG4ToBrBtNqowmY5ArAwXuSRRdo8dS1Z72LN+fyLB4LRVc4Y8ZIJfL5JMg/B0LDuR6fdNw==","shasum":"508d02191fdfdeab1b8f677df52afbec733473a5","tarball":"https://registry.npmjs.org/@teps/gauntlet/-/gauntlet-0.28.0.tgz","fileCount":69,"unpackedSize":304353,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHv0IQ5LL7DrAM2aEvDCv8JpAinPdU0qv9xd4NXsqdBuAiEAqlok3pZyWtfDs4PUvt93Sde2zU15MB298YWuyMg+xt0="}]},"_npmUser":{"name":"tanigami","email":"user@teps.io"},"directories":{},"maintainers":[{"name":"tanigami","email":"user@teps.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gauntlet_0.28.0_1787127168714_0.6158684066533766"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T07:58:22.780Z","modified":"2026-08-19T08:12:49.031Z","0.0.14":"2026-08-08T07:58:23.138Z","0.9.0":"2026-08-08T08:24:58.465Z","0.10.0":"2026-08-08T10:01:47.604Z","0.10.1":"2026-08-08T10:33:43.524Z","0.12.0":"2026-08-08T13:41:32.783Z","0.13.0":"2026-08-09T05:46:18.499Z","0.15.0":"2026-08-10T03:08:54.862Z","0.15.1":"2026-08-10T03:36:29.170Z","0.16.0":"2026-08-10T04:27:58.209Z","0.17.0":"2026-08-10T11:05:54.847Z","0.17.1":"2026-08-10T12:00:55.049Z","0.18.0":"2026-08-10T13:03:18.234Z","0.18.1":"2026-08-10T14:47:07.805Z","0.18.2":"2026-08-11T02:32:31.339Z","0.18.4":"2026-08-11T03:18:01.617Z","0.18.5":"2026-08-11T04:42:05.536Z","0.19.0":"2026-08-11T05:53:51.421Z","0.19.3":"2026-08-11T08:43:46.784Z","0.20.0":"2026-08-11T09:33:31.758Z","0.20.1":"2026-08-11T09:35:38.707Z","0.20.2":"2026-08-11T09:44:24.092Z","0.20.3":"2026-08-11T10:22:30.884Z","0.20.4":"2026-08-11T11:54:11.706Z","0.21.0":"2026-08-11T13:00:57.753Z","0.21.1":"2026-08-11T13:15:06.047Z","0.22.0":"2026-08-12T00:14:28.987Z","0.22.1":"2026-08-12T00:30:17.978Z","0.23.0":"2026-08-12T01:32:09.646Z","0.23.1":"2026-08-12T03:12:48.439Z","0.23.2":"2026-08-12T04:03:09.579Z","0.23.3":"2026-08-12T04:21:19.527Z","0.23.4":"2026-08-12T04:48:04.733Z","0.24.1":"2026-08-12T08:00:44.727Z","0.24.2":"2026-08-12T09:28:02.103Z","0.24.3":"2026-08-12T10:22:50.880Z","0.24.4":"2026-08-12T11:27:23.994Z","0.24.5":"2026-08-12T12:06:04.648Z","0.25.0":"2026-08-12T13:36:00.711Z","0.26.0":"2026-08-13T06:53:58.380Z","0.27.0":"2026-08-17T10:21:56.652Z","0.28.0":"2026-08-19T08:12:48.871Z"},"bugs":{"url":"https://github.com/tepshq/gauntlet/issues"},"homepage":"https://github.com/tepshq/gauntlet#readme","repository":{"type":"git","url":"git+https://github.com/tepshq/gauntlet.git"},"description":"エージェントが書いたコードを、人間がコードを読まずに機械的な制約で縛るチーム共用の品質ゲート","maintainers":[{"name":"tanigami","email":"user@teps.io"}],"readme":"# gauntlet\n\nエージェントが書いたコードを、**人間がコードを読まずに機械的な制約で縛る**ための品質ゲート。\n\nRobert C. Martin が 2026 年 7 月に「自分はもうエージェントのコードを読まない。代わりにテスト・\nカバレッジ・複雑度・mutation testing で囲む」と述べた方針を、社内の複数リポジトリに適用できる形に\nしたものです。\n\n人間がコードを読む速度がボトルネックになるなら、読まずに済ませる。ただし「読まない」を成立させる\nだけの機械的な保証を敷く、というのが考え方です。\n\n## 入れると何が変わるか\n\n**2 か所で止まるようになります。**\n\n| | いつ | 何が起きる |\n| --- | --- | --- |\n| `quick` | **エージェントが `git commit` する直前**（手動でも叩ける） | 赤なら**コミットできず**、理由がエージェントに届いてそのまま直しにいく |\n| `full` | CI | 赤なら**マージできない** |\n\n`quick` が効くのが一番の違いです。人間が「テスト通してね」と言わなくても、エージェントは\n緑になるまで終われません。数秒〜数十秒で終わるように作ってあります（下の実測表）。\n\n## 何を見るか\n\n### CRAP — 複雑さと網羅率をひとつの数にする\n\n`CRAP = 複雑度² × (1 − 網羅率)³ + 複雑度`。**閾値は 8。** 意味はこの表が分かりやすいです。\n\n| その関数の網羅率 | 許される複雑度 |\n| --- | --- |\n| 100% | 8 |\n| 80% | 7 |\n| 50% | 4 |\n| 0% | **2** |\n\n**テストすれば複雑さを許す**という自己調整が組み込まれています。単純な関数はテストが無くても通り、\n複雑な関数はテストが無いと通りません。ノブがひとつで済むので、全社で同じ数字を使えます。\n\n裏返すと、**閾値 8 は複雑度そのものの上限でもあります** — 網羅率 100% では `CRAP = 複雑度` に\nなるので、**複雑度 9 以上はどれだけテストを足しても通りません**（触った関数だけ。触らなければ\nbaseline が現状維持を許します）。そこで要るのはテストではなく関数を割ることなので、\ngauntlet は違反 1 件ごとにどちらなのかを言います:\n\n```\nCRAP 30.0 (> 8)  複雑度 5 / 網羅率 0%  src/a.ts:10 f  → 網羅率 51% で通ります\nCRAP 31.0 (> 8)  複雑度 31 / 網羅率 100%  src/proxy.ts:278 proxy  → 複雑度 9 以上はテストでは通りません。分岐を表に落とすか、まとまりごとに関数を割ってください\n```\n\n### mutation testing — 0.27.0 で外しました\n\nコードを 1 か所ずつ機械的に壊してテストが気づくかを見るゲートを 0.26 まで持っていましたが、\n実行時間が構造的に高く（変異数に比例。CI で数時間かかるリポジトリが実際に出た）、\n0.27.0 でスコープから外しました。**テストの弱さを直接測るゲートは当面ありません** —\nこの穴は承知の上で開けています。理由と、戻すなら何が変わるか（将来課題）は\n[DESIGN.md](DESIGN.md) にあります。\n\n### 重複 — コピペを見る唯一のゲート\n\nテストごと複製されたコードは CRAP を通ります。jscpd で重複トークン数を測り、\n**増やさないこと**だけを要求します（絶対閾値なし・`full` のみ・減れば自動で締まる）。\njscpd は gauntlet が同梱するので、対象リポジトリに入れるものはありません。\n\n落ちるときは、**いま重複している対をその場に並べます**。数だけ言われても場所に辿り着けず、\n`list` を走らせるかは本人の判断に掛かっているためです（多いときは 10 件で切って残りを件数で言います）。\n\n```\n✗ duplication (89ms)  重複 221 トークン / 対象 26 ファイル\n    重複が 0 → 221 トークンに増えました\n       124  src/analyze.ts ↔ src/measureTextCoverage.ts\n        97  src/crawl.ts ↔ src/download.ts\n```\n\n**網羅率の対象は gauntlet の宣言で決まります。** vitest の `coverage.include` は\ngauntlet が上書きします。ただし `coverage.exclude` は上書きできないので、そこで消された\nファイルが測る範囲に入っていると**テストを書いても網羅率が上がりません**。`full` はそれを\n検出して名指しで落とします（網羅率 0% と同じ顔で通すと、直せない赤を仕込むことになります）。\n\n### 型チェック\n\nリポジトリの `tsc --noEmit` を走らせ、診断が出たら落とします。gauntlet が見るのは\n「文句を言ったか」だけなので、2 パスや `vue-tsc` などコマンドが違っても\n`commands.typecheck` に書けば動きます。\n\n**テストファイルは測りません**（`*.test.ts` / `*.spec.ts`）。テストにテストは書けないので、\nテストの中の複雑な関数は網羅率 0% で必ず違反になります。重複も、`beforeEach` の並びや\nAAA の骨格が似るのは自然です。`exclude` に書く必要はありません。\n\n**lint は見ません。** どのルールを有効にするかはリポジトリが決めることで、gauntlet は\nそこに判断を持ちません — 何を守っているか言えないゲートは置かない、という判断です\n（0.18.0 で外しました。lint は各リポジトリの CI が回してください）。\n\n## 既存のリポジトリが赤で埋まらないか\n\n**埋まりません。** 導入時点の違反数を `gauntlet.baseline.json` に記録し、**それを増やさないこと\nだけ**を要求します。減れば自動で締まります。\n\n- **触った関数** — 絶対的に CRAP ≤ 8 を要求（これから書くコードには厳しい）\n- **触っていない箇所** — 現状維持でよい\n\n「初日から全部直せ」にはなりません。触ったところから良くなっていきます。\n\n`gauntlet.baseline.json` はエージェントが編集できないよう `PreToolUse` フックで守られます。\n赤を消す最短経路が「基準を緩める」になってしまうためです。人間は編集できます。\n\n複数のブランチ（worktree）が両方で記録を締めてマージ衝突になったときも、手で解決する\n必要はありません — `quick` か `full` を一度実行すると、gauntlet がフィールドごとに\n厳しい側を取って解決します（両側とも実測なので、値を選ばせない形が保てます）。\n\n記録されるのは**数**だけなので、「どの関数か・どこが重複しているか」は\n`list` で見ます（ゲートではないので通ります）。\n\n```bash\nnpx gauntlet list\n```\n\n出るのは **CRAP → 重複** の 2 つの節です。以下は別々のリポジトリからの抜粋で、\nまず h3 の CRAP:\n\n```\nCRAP 違反 35 件 / 測る対象 411 関数（50 ファイル）（gauntlet.baseline.json の許容 35）\n  CRAP 132.0 (> 8)  複雑度 11 / 網羅率 0%  src/utils/internal/path.ts:12 joinURL  → 複雑度 9 以上は…\n```\n\n悪い順に全部並ぶので、上から手を付けられます（h3 では未参照のまま残っていた関数が\n2 つと、網羅率 0 の公開 API が 1 つ、この一覧から見つかりました）。\n\n重複の節はファイルの対で出ます。総数だけだと「何トークンあるか」は分かっても「どこにあるか」に\n辿り着けず、実質だれも中身を見ません（別のパイロットでは 338 トークンが一度も動かないまま\n緑で、同じ並行処理ヘルパーが 4 ファイルに複製されていました。以下はそのときの実測です）:\n\n```\n重複 338 トークン（4 か所）/ 対象 26 ファイル（gauntlet.baseline.json の許容 338）:\n   124  src/analyze.ts ↔ src/measureTextCoverage.ts\n    97  src/crawl.ts ↔ src/download.ts\n    65  src/genPanel.ts ↔ src/genPhoto.ts\n    52  src/makeInterview.ts ↔ src/validateStyle.ts\n```\n\n**重複が 0 でも見出しだけは出ます** — 節ごと消えると「重複が無い」と「測っていない」の\n区別が付かないためです。\n\n## 導入\n\n**出発点は 1 コマンドです。** gauntlet のインストールも不要です:\n\n```bash\nnpx skills add tepshq/gauntlet -a claude-code\n```\n\n置かれるのは skill 1 枚（`.claude/skills/gauntlet-setup/`）と `skills-lock.json` だけ。\n**この時点では何も有効になりません** — ゲートも設定も、範囲が決まってから入ります。\n\nあとは **Claude Code で `/gauntlet-setup` を実行するだけ**です。skill がここから先の全部 —\n依存の投入（パッケージマネージャの検出込み）、測る範囲の決定、外部サービスを要するテストの\n分離、CI への 1 行、ラチェットの種置き、ゲートが実際に噛むことの確認 — をユーザーと対話\nしながら進めます。\n\n**起動できるのは人間だけです**（`disable-model-invocation`）。測る範囲を書き換えられる\n唯一の skill なので、エージェントが自分で起動できると、赤いときの最短経路が「範囲を狭める」\nになります。常駐する description の分の context も要りません。\n\n推測で範囲を入れると、狭いまま緑になり、それが一番気づけない失敗になります。\nエージェントがリポジトリを読み、理由つきで範囲を提案し、合意してから確定する流れに\nしてあるのはそのためです（`tsconfig.json` の `include` は当てになりません —\n生成物・設定ファイル・e2e が混ざります）。\n\n更新のやり方は[下の「更新」](#更新)にあります。\n\n<details>\n<summary>Claude Code を使わず手で入れる場合</summary>\n\n```bash\n# パッケージマネージャはリポジトリに合わせる（pnpm なら pnpm add -D）\n# 版は npm view で調べて明示する — pnpm は既定で公開から 24 時間経った版しか選ばないので、\n# latest を任せると古い版が黙って入ります（minimumReleaseAge。実測）。\nnpm i -D \"@teps/gauntlet@$(npm view @teps/gauntlet version)\"\nnpx gauntlet init --default-branch=main --include='src/**/*.ts'\nnpx gauntlet quick\n```\n\n**coverage provider は手で足さないでください。** `@vitest/coverage-v8` はリポジトリの\nvitest と**完全一致**する版でなければ install 自体が失敗します（`peer vitest@\"3.2.7\"` —\n範囲ではありません）。足りなければ `gauntlet quick` が**版を埋めた 1 行**を出すので、\nそれをそのまま打てば済みます。範囲の決め方・CI・種置きは\n[`skills/gauntlet-setup/SKILL.md`](skills/gauntlet-setup/SKILL.md) に全手順があります。\n\n> 0.0.13 以前を GitHub Packages から入れていたリポジトリは、`.npmrc` の\n> `@tepshq:registry=https://npm.pkg.github.com` の行と、workflow の\n> `registry-url` / `scope` / `NODE_AUTH_TOKEN`（gauntlet のためだけのもの）を消してください。\n> 残っていると新しいバージョンが見えません。\n\n</details>\n\nskill が範囲を決めたあと `gauntlet init --include=...` を叩き、**薄いファイル 3 枚**が\n置かれます。ロジックは全てパッケージ側にあるので、更新はパッケージの版を上げて\n`init` を叩き直すだけで済みます（フックの形が変わっても、あなたの設定はそのままに配線だけ\n入れ替わります）。\n\n| 置くもの | 内容 |\n| --- | --- |\n| `.claude/settings.json` | **フック 1 本**（下記の 2 つの検問）。既存の設定は壊しません |\n| `gauntlet.config.json` | このリポジトリの事実。閾値は入りません |\n| `.gitignore` | 足りない行だけ追記 |\n\n既にある `.claude/settings.json` や `.gitignore` は**置き換えません**（足りないものだけ\n追記）。**測る範囲を書き換えるのはフラグを渡したときだけ**なので、gauntlet を上げたあと\n`npx gauntlet init` を叩き直しても、決めた範囲も手書きの `commands` も消えません。\n\n**CI の workflow は置きません。** CI が要るもの（Node のバージョン、`postinstall` が\n要求する環境変数など）は gauntlet からは見えないので、\n**既に動いている job に 1 行足す**のが基本形です。\n\n```yaml\n      - run: npx gauntlet full\n```\n\nその job には `fetch-depth: 0`（差分の起点に全履歴が要る）と **Node 22 以上**が必要です。\n足せる job が無い場合の雛形は skill が持っています。\n\n### Claude Code の挙動が変わります\n\n`init` が `.claude/settings.json` に `PreToolUse` フック（`npx gauntlet hook`）を 1 本足します。\n検問は 2 つで、どちらに当たるかは gauntlet が自分で判定します。\n**配線の手作業はありません** — このファイルはコミットで伝播するので、clone した全員に効きます。\n\n**1. コミットの検問** — エージェントが `git commit` しようとすると `gauntlet quick` が走り、\n赤なら**コミットそのものが実行されません**。「履歴に入った状態はすべて検査済み」が\n不変条件になります。違反の内容はエージェントに直接届くので、そのまま直しにいきます:\n\n```\nPreToolUse:Bash hook error: [npx gauntlet hook]: gauntlet quick: fail\n  ✗ crap  CRAP 42.0 (> 8)  複雑度 6 / 網羅率 0%  src/probe.ts:1 tangled\n```\n\n**2. baseline の保護** — エージェントが `gauntlet.baseline.json` を編集しようとすると\n止めます。赤を消す最短経路が「基準を緩める」になってしまうためです。人間は普通に編集できます。\n\n> 人間がターミナルで直接打つコミットは検査されません（Claude Code のフックなので）。\n> gauntlet の前提は「コードを書くのはエージェント」です。\n\n既に `.claude/settings.json` がある場合、**既存のフックやプラグイン設定はそのまま残ります**\n（追記するだけで、同じものは二度足しません）。\n\nまた `.claude/skills/gauntlet-setup/` に skill が 1 枚入ります。測る範囲を決め直すときや\ngauntlet を上げるときに、**人間が** `/gauntlet-setup` を実行してください。\n\n## 更新\n\n**人が新しい版に気づいたときに実行します。** gauntlet は新しい版が出たことを自分からは\n知らせません — `quick` や `full` が npm を見に行く形は、ネットワークの有無でゲートの答えが\n変わるからです（[DESIGN.md](DESIGN.md) の「検討して外したもの」）。\n\n**対象リポジトリのルートで**、まず skill を入れ直します。\n\n```bash\nnpx skills add tepshq/gauntlet -a claude-code -s gauntlet-setup -y\n```\n\nそのあと **`/gauntlet-setup`**。これで版上げ・`init` の叩き直し・版ごとの後始末・確認まで\n通ります。\n\n**skill を先に入れ直すのは、新しい版が要求する後始末が新しい skill にしか書かれていない\nから**です。古い手順書のまま上げると、記録の形式が変わったことも配線が変わったことも\n知らないまま緑に見えます。\n\n`npx skills update` は使わないでください。実体を `.agents/skills/`（多数の agent が\n共有する置き場）へ移して `.claude/skills/` を symlink にするため、**コミット済みの\n`SKILL.md` が git から「削除」に見えます**。`update` のオプションは `-g` / `-p` / `-y` だけで、\n置き場所を指定する `-a` を受け付けません。\n\n### 途中で止まることがあります\n\nどれも設計どおりで、故障ではありません。\n\n| 止まる場所 | なぜ |\n| --- | --- |\n| **記録のリセット** | 古い版から上げると `gauntlet.baseline.json` の該当する欄（`crap`）を空にする必要があることがあります。これは **guard がエージェントの手を止める**ので、人間が編集します。基準を緩める経路を塞ぐ仕組みに、更新のための例外を開けないためです |\n| **pnpm の 24 時間ルール** | 公開直後の版を名指しすると pnpm が `pnpm-workspace.yaml` に除外行を書きます。版ピンとワイルドカードのどちらにするかを訊かれます |\n| **coverage provider の版ずれ** | vitest の版が動いていると `@vitest/coverage-v8` の完全一致が崩れます。**gauntlet が版を埋めた 1 行を出す**ので、それを打てば済みます |\n\n**測ったのはここまでです。** 0.21.1 → 0.23.4 を使い捨てリポジトリで通し、フラグ無しの `init` が\n範囲を保ったまま旧配線を `hook` 1 本に入れ替えること、旧形式の mutation 記録は自動では\n置き換わらないことを確認しました。0.23.4 → 0.25.0 も同じ形で通し、汚染された `crap` の欄は\n上げても救われないこと（消すのは 1 行でよいこと）と、`seed` が更新後もそのまま使えることを\n確認しました。0.25.0 → 0.26.0 も通し、**記録済みの重複トークン数が動かないこと**（204 →\n204。ゲートは緑のまま）と、範囲と配線が保たれること、記録の手当てが要らないことを確認して\nいます（[PLAN.md](PLAN.md)）。**実リポジトリ規模での更新はまだ測っていません。**\n\n## gauntlet が走らせるテストは宣言する\n\ngauntlet は `gauntlet.config.json` の `tests.projects` に**宣言された vitest project だけ**を\n走らせます（実行も coverage も。宣言が無ければ全部走ります）。\n\nDB・ネットワーク・実ファイルシステムに触れるテストは、専用の project に分けて**宣言から\n外して**ください。そういうテストを走らせる場所は各リポジトリの既存 CI です。project の\n名前も分け方も自由です — gauntlet に「integration テスト」という概念はありません。\n\n```ts\n// vitest.config.ts — 分け方の例\nprojects: [\n  { extends: true, test: { name: \"unit\", include: [\"**/*.test.ts\"],\n    exclude: [\"**/node_modules/**\", \"**/*.db.test.ts\"] } },\n  { extends: true, test: { name: \"db\", include: [\"**/*.db.test.ts\"] } },\n]\n```\n\n```json\n// gauntlet.config.json — この例なら unit だけを宣言する\n\"tests\": { \"projects\": [\"unit\"] }\n```\n\n宣言は `init` のフラグでも書けます: `npx gauntlet init ... --test-projects=unit`\n\n**手元に DB が無いだけで毎ターン赤になると、ゲートが環境によって答えを変えます。** それが数回\n起きると、緑の意味が信じられなくなって誰も見なくなります。\n\n`projects` を使っていないリポジトリでは何もしなくて構いません（宣言なし = 全部）。\n\n> glob でファイル名を除外する案は**動きません** — vitest の `--exclude` は `projects` に\n> 伝わらず、project を使うリポジトリで黙って無効になります。project が vitest の選択を\n> 正しく解釈する唯一の境界です。\n>\n> **宣言し忘れは黙って通りません。** 新しい project を作って宣言し忘れると、そのテストの\n> coverage が gauntlet に届かず、触った関数が CRAP で赤になります。そのとき宣言を直して\n> ください。\n\n## 使う\n\n```bash\nnpx gauntlet quick\nnpx gauntlet full\nnpx gauntlet list     # ゲートではない。許容している CRAP 違反と重複の在り処を全部並べる\n```\n\n通れば exit 0、違反または gauntlet 自身が走れなければ exit 2 です。**「走れなかった」を緑に\nしません** — 走らないゲートが緑に見えると、緑の意味が実行ごとに変わってしまうためです。\n\n## 要件\n\n- Node >= 22\n- vitest\n- 単一パッケージ（workspaces は未対応）\n- TypeScript のバージョンに下限はありません。gauntlet がパースできれば構いません\n\n## 実測\n\n| repo | テスト数 | `quick` | `full` |\n| --- | --- | --- | --- |\n| gauntlet 自身 | 698 | 3.0 秒 | 3.3 秒 |\n| hue | 412 | 5.5 秒 | 24 秒（CI） |\n| teps | 3822 | 10.4 秒 | 199 秒（CI） |\n| duct | 7358 | 64 秒 | 75 秒（手元） |\n\n`quick` は差分に関係するテストだけを走らせるので、変更したファイルによって前後します。\nhue / teps / duct の `full` は mutation を持っていた版で「変異対象 0」だった回の実測です —\n0.27.0 の `full` が回す中身（全テスト + coverage + CRAP + 重複 + 型チェック）とほぼ同じなので、\n目安になります。支配項は全テストの実行時間です。\n\n## 設計\n\n判断とその理由、**何を意図的に入れていないか**は [DESIGN.md](DESIGN.md)。\n実装の経緯と実測は [PLAN.md](PLAN.md)。\n","readmeFilename":"README.md"}