{"_id":"empirical-sdd","_rev":"39-3fdd5cb2a32833cef67b0e3249909680","name":"empirical-sdd","dist-tags":{"latest":"0.42.0"},"versions":{"0.20.0":{"name":"empirical-sdd","version":"0.20.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.20.0","maintainers":[{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"}],"homepage":"https://github.com/MateoCerquetella/empirical-sdd#readme","bugs":{"url":"https://github.com/MateoCerquetella/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"789565d9d0bd8891dd1057608fc2e1935571fb7d","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.20.0.tgz","fileCount":17,"integrity":"sha512-imXSHCucA+A8bHBGABeLVk3H5weXkTaRP+RuSr2o9HBxVAKLsnPO5d9FKqHbZxf6wJXAJ66RK6wQ65wryabxZQ==","signatures":[{"sig":"MEUCIFuDaTqfnco6MX/bY4lcpop9vZgclW1oHo7oH2vTahxBAiEAtVo0cRCuxIiusKa/twsiIOBE3esOU7z3xdMMnHzo5qo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1364674},"type":"module","_from":"file:/private/tmp/empirical-020-final-pack.WwPu58/empirical-sdd-0.20.0.tgz","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"ci":"bun run check && bun test && bun run test:dist && bun run test:package","test":"bun test","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts"},"_npmUser":{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"},"_resolved":"/private/tmp/empirical-020-final-pack.WwPu58/empirical-sdd-0.20.0.tgz","_integrity":"sha512-imXSHCucA+A8bHBGABeLVk3H5weXkTaRP+RuSr2o9HBxVAKLsnPO5d9FKqHbZxf6wJXAJ66RK6wQ65wryabxZQ==","repository":{"url":"git+https://github.com/MateoCerquetella/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.4","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","typescript":"^7.0.2","@types/node":"^26.1.2","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.20.0_1785350404212_0.8583402114423475","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"empirical-sdd","version":"0.20.1","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.20.1","maintainers":[{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"}],"homepage":"https://github.com/MateoCerquetella/empirical-sdd#readme","bugs":{"url":"https://github.com/MateoCerquetella/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"e6ced32b3810b7350f0e39890d3fa5bf81d9ae86","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.20.1.tgz","fileCount":22,"integrity":"sha512-D53QMwulxJ0tQSg5AeKzeHf3c10BtsYZ2DYWvwr4Q29FJhvRK09ZNh0y60yFt4RmpyyM18Bj4tLO0MTDEPeT9Q==","signatures":[{"sig":"MEUCIQD1F8ZNfuq5JFvbBFEPkYT4lYU2EIZVowiMj6TcDebkmQIgKrCyEWmOBQ6Ms0dlqPhjoNwJSSfswgRc/8LN5jZf+Zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1413634},"type":"module","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"42245b20f8c96133c8f2968491475fc04b270023","scripts":{"ci":"bun run check && bun run test && bun run test:dist && bun run test:package","test":"bun test --timeout 30000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts"},"_npmUser":{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"},"repository":{"url":"git+https://github.com/MateoCerquetella/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.4","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","typescript":"^7.0.2","@types/node":"^26.1.2","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.20.1_1785360614609_0.3627952865162811","host":"s3://npm-registry-packages-npm-production"}},"0.20.2":{"name":"empirical-sdd","version":"0.20.2","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.20.2","maintainers":[{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"}],"homepage":"https://github.com/MateoCerquetella/empirical-sdd#readme","bugs":{"url":"https://github.com/MateoCerquetella/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"8f128e94e755c1a50412e29d0645e80193ab17f0","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.20.2.tgz","fileCount":22,"integrity":"sha512-iMd2SErAJJPhlw48Z3bfd+WOPouVNfY1MG3yOokvhNFva3qFMBhy0Y+0k1YVAOyQgsw53/YTY3fs1LYWClFzYA==","signatures":[{"sig":"MEYCIQCwpwICdT0jBG6xSvG1qxm4EyqqkvuPOc0lDYxYKA7jzQIhAKwXCI923FPcFVgZ83MBN+NhLmkb7GD7TeELW0g8r2Wg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1468079},"type":"module","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"aacf5447a382482a8232dca7fe555d68ce4611f1","scripts":{"ci":"bun run check && bun run test && bun run test:dist && bun run test:package","test":"bun test --timeout 30000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts"},"_npmUser":{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"},"repository":{"url":"git+https://github.com/MateoCerquetella/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.4","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","typescript":"^7.0.2","@types/node":"^26.1.2","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.20.2_1785431665878_0.7235215845159864","host":"s3://npm-registry-packages-npm-production"}},"0.20.3":{"name":"empirical-sdd","version":"0.20.3","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.20.3","maintainers":[{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"}],"homepage":"https://github.com/MateoCerquetella/empirical-sdd#readme","bugs":{"url":"https://github.com/MateoCerquetella/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"b5f50f9619ceac5e2c7868d5f870f2da599f2d37","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.20.3.tgz","fileCount":24,"integrity":"sha512-PS2lx9SGxT1V7T6OO/MAgaeqM3wkmS3I5o00bzVa/GlxKBo8/83k4gF+2ouugGX+vsY38hWnlM8CPhdYG8Vabw==","signatures":[{"sig":"MEQCIGKjjcU8sTDukzmxVUD5J0zSJYts5dyQ58ta81vN0LvxAiALRvUcE8a6BoHelP6dSvej3apx9Ux3SUJQg5lcrrWjBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1540163},"type":"module","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"eff18f71c51672a954d5171126e1c128bceb4f44","scripts":{"ci":"bun run check && bun run test && bun run test:dist && bun run test:package","test":"bun test --timeout 30000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts"},"_npmUser":{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"},"repository":{"url":"git+https://github.com/MateoCerquetella/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.4","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","typescript":"^7.0.2","@types/node":"^26.1.2","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.20.3_1785506115063_0.4040413499714799","host":"s3://npm-registry-packages-npm-production"}},"0.20.4":{"name":"empirical-sdd","version":"0.20.4","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.20.4","maintainers":[{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"}],"homepage":"https://github.com/MateoCerquetella/empirical-sdd#readme","bugs":{"url":"https://github.com/MateoCerquetella/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"c54cf994b7ba7b96fbe2ceb9e68e0ec35e5969f4","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.20.4.tgz","fileCount":25,"integrity":"sha512-vMno4UkyrL0wCU0BzYw3jJE1lzpR2wjE2yXduThJE9ZgoBc8V7yDC7Z6j0DTB1nD95gdzLgvxtY5iO/MpvplTQ==","signatures":[{"sig":"MEUCIQDWo48SYVhrJKqSCmc3d0WYcit/rUFkhvnWYQnaOnReLwIgZTS2pxUeEWsHy56HKlXUg3sekWxvZwJ9V16bmvOxbn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1543002},"type":"module","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d43b666088d022c56b3aec08befaa0428410fd44","scripts":{"ci":"bun run check && bun run test && bun run test:dist && bun run test:package","test":"bun test --timeout 30000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts"},"_npmUser":{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"},"repository":{"url":"git+https://github.com/MateoCerquetella/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.4","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","typescript":"^7.0.2","@types/node":"^26.1.2","@modelcontextprotocol/sdk":"^1.30.0"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.20.4_1785513924614_0.15881080639557377","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"empirical-sdd","version":"0.22.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.22.0","maintainers":[{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"}],"homepage":"https://github.com/MateoCerquetella/empirical-sdd#readme","bugs":{"url":"https://github.com/MateoCerquetella/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"6ab3ef88d7559d441285bb7f8e8d1a156f986293","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.22.0.tgz","fileCount":40,"integrity":"sha512-tHZ0asR/1HKPAbQe1iqMcUT8wHnYageqXPd6xWJ734l+aDcm7mQy+bvl0O9d0QEpP+enX2FLIgCtAxnxyRnwqg==","signatures":[{"sig":"MEQCICLNH3lLl8Y0JWIPyWB4e6xrhOYmx51AwlDUm+GeyIUEAiAnxBe2uIx3QNXSuAlHGrAu1yVDDkKsdUMR1Hm/ahWUeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5166284},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency","test":"bun test --timeout 60000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 60000 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts"},"_npmUser":{"name":"mateocerquetella","email":"mateocerquetella@hotmail.com"},"repository":{"url":"git+https://github.com/MateoCerquetella/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.4","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.22.0_1785815801892_0.5146143144045843","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"empirical-sdd","version":"0.23.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.23.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"d3be87aed8cc481476f4b8678d5bf2922e42369c","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.23.0.tgz","fileCount":44,"integrity":"sha512-7e2kOvXfHgfjfy8Dr0IVSV1M07iJMiJ1kKX3YRfYdSIPxXGwG09/sYq55uyNBC+c7uk4KaIagKDUSSMFy8PQNw==","signatures":[{"sig":"MEUCIQDkwmsL9vHVac0fzKCYdDxK+nTKTZ1iD9pHVEbb19+AEAIgKkQgMm0JKkI9lrrZ8vLBObmrnFtqHbNDt/2E506Ckvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5465890},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"91c5a7cda44ef2067b8f466e43a5b9b2205cdb5c","scripts":{"ci":"bun run check && bun run test && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 60000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 60000 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.23.0_1786488549561_0.938519883440345","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"empirical-sdd","version":"0.24.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.24.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"4967764d8b70608c455e4dafc07a5c23aa2aae7f","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.24.0.tgz","fileCount":46,"integrity":"sha512-UPhSXx3h/ejwIoDJ9s+Y12tmAu4URE9TcywOXFqZc16DKG6KLvoVrwucZ6uArYSi6S7gvYqocALzgFLLtaPX1Q==","signatures":[{"sig":"MEUCIEeDP7+a+DAjsljVJ0/gUvCsdt/+sQUYmxdxYpHR5fmCAiEA5qQj6Woai+mU9iwKp+yEx5eP8+Xl7n+Avsno/KnwU/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6881490},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"b2193dff0f51f98419464eeda510acccffb2aaa6","scripts":{"ci":"bun run check && bun run test && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 60000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 60000 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.24.0_1787149706368_0.9617298089734845","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"empirical-sdd","version":"0.24.1","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.24.1","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"98da7470f57232b267f5e74df93a381e3634512e","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.24.1.tgz","fileCount":46,"integrity":"sha512-MHkWmblTWw9QDQh9MoC6AKvQMpfCOkX45H5Sg4QNyeK/nZcv2IxC06xFH7mSfnRqJEaErLMd0HhAGonlshkOVw==","signatures":[{"sig":"MEUCIQD6bnUEeasqTEYta0X8v1OKgOvMW+jFo8BAXys0Gs1R3QIgUpkGMk65iMfSEztlbZGs3yeUV3nNB6L0jfnLerBJyaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6891141},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"3ae6f58196c86f53c529d403e5945ddf7204ebed","scripts":{"ci":"bun run check && bun run test && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000 --parallel=4","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 120000 --parallel=1 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.24.1_1787171016135_0.9914484065725","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"empirical-sdd","version":"0.25.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.25.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"711910ffb0e393fa5dbfb4b0e344c5c59bbdb3dd","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.25.0.tgz","fileCount":50,"integrity":"sha512-OahZ3fl5eZaCrwUrQUzdtACUYXEGVGo65mi7m84IsbMb7MCXGLzxfeAiqPQ51ngl3XrBVj2X7CW/F1gNp178mw==","signatures":[{"sig":"MEYCIQCLGDBl7jCQcPS5rav2t8QK1s3J57NdGxnQ7+2yhe6KWQIhALq2Y3OfnGl0umzbRjhkbQdUe8l4Drx6mPEO5Ee5hHvS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7018278},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"2049e6cb1aa1b23597c8eb7c1f0e476ffa2e998c","scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000 --parallel=1","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 120000 --parallel=1 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.25.0_1787185363059_0.7393210527519223","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"empirical-sdd","version":"0.26.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.26.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"0e10bbcbe46623fe74a21af0cce7d7086ee85ac5","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.26.0.tgz","fileCount":53,"integrity":"sha512-EdKIaTZJHgOMapWnyJnytGqCzyS+3o4S5nDpsyN2oktw1iB2APjS0IvkcGBJFwZHTJtyrStXc8I8GdOpZQPS4w==","signatures":[{"sig":"MEQCIEgOhRFubXY+TbEHmkIbcClbSl1J5G/ACQRo96NTy74hAiAZr0fxro0I2hlt0N297XrdtU67m2EH1sV5DvLpm+5qkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8194720},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"603cd386a3e08ef12ed1e5fbc8057afc2b56e2a8","scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000 --parallel=1","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 120000 --parallel=1 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.26.0_1787233388858_0.7072435382349966","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"name":"empirical-sdd","version":"0.26.1","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.26.1","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"3aa94ea909054878012cb42c0aa7635825724974","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.26.1.tgz","fileCount":53,"integrity":"sha512-lomisK53G5XmEG2I0pvTDCk5wyD68/B7Xs9gS68fw4+fPkLgRuTSQhe0aHo5vQ6EO6UFrd5X2qyqcINT+xGSUg==","signatures":[{"sig":"MEUCIQDIV3TkHbdp3uGnUhJGjXXSJVStkYkT5bvvKMHY3gj+nQIgK4vFXAt/Oe/FMjegdUpsw/jNI6U9FlJPRgoEJKaAYZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8199970},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"dc0df320f194102131b48d7882737ec5c300f6fa","scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000 --parallel=1","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 120000 --parallel=1 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.26.1_1787338355398_0.14611866456727984","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"empirical-sdd","version":"0.27.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.27.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"b35ba12222070d5b75234c037839027e6cba308f","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.27.0.tgz","fileCount":54,"integrity":"sha512-oVaSMurX2XMb8evkSPVAh9yelWlmEHCYtrGcKz+fMnDz1+ne4ra9Jr4Rd6W8jH76cdayBW4lpmzNmvmJY0ZUbg==","signatures":[{"sig":"MEUCIHbDtrUndRthdQt+LuZndX31QQxmr541o1xQ8ZA7R22yAiEA+7j0aFbGHqoc/Ky8xf+/yFodDOpzV2OZB/jHL9awT6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8263674},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"e48764ffd24ebdb8cc9e95b3c89f42641d2014f8","scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000 --parallel=1","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 120000 --parallel=1 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.27.0_1787426898810_0.9273137270148106","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"empirical-sdd","version":"0.28.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.28.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"ec2cf84c516d94e7bb8f7fb2beec51a7bfaf00af","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.28.0.tgz","fileCount":55,"integrity":"sha512-w36wxyw7p8aAK4SAcHdEhK10w3Newh19ddsAzKF3jsn75xl7l/z2CHymQPg1kRLqKTQCoJqdJGapBpO86ftCQA==","signatures":[{"sig":"MEQCIEHAmdh064Avf947CQmS1M38AZoNE3IhFOfvBcQYoOyyAiAMUJPB41Qq39w5U0+3KXPbcoMZPnnJV/WVtrcM7ecvsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8469314},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"gitHead":"b4b499589f338d0aaf824fe1ee94e849b09bb74c","scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000 --parallel=1","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:coverage":"bun test --timeout 120000 --parallel=1 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.28.0_1787591839797_0.9480053680393115","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"empirical-sdd","version":"0.29.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.29.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"e048787ca682b89083afb98c6a93f40ca00166b8","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.29.0.tgz","fileCount":60,"integrity":"sha512-KYb4y1lz+ZFHKhSnG5oeqJ1GQphZsOJ1vBLPpCS4T276s/tsq9jPO725s9MpyRlvIf8vug6f8I/Mf1LjgFccqg==","signatures":[{"sig":"MEQCICKzScyHSUHJcznRWc8L4PdLZyW4uoQmeKMj2hbbqkhtAiAHt9pjF2jFkv/xVnAHVTxC80LtDt+0zds3WawhDjRbUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9180087},"type":"module","_from":"file:/home/runner/work/_temp/empirical-package/empirical-sdd-0.29.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"_resolved":"/home/runner/work/_temp/empirical-package/empirical-sdd-0.29.0.tgz","_integrity":"sha512-KYb4y1lz+ZFHKhSnG5oeqJ1GQphZsOJ1vBLPpCS4T276s/tsq9jPO725s9MpyRlvIf8vug6f8I/Mf1LjgFccqg==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.29.0_1787936525764_0.41866833175814633","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"empirical-sdd","version":"0.30.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.30.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"10cf94ff4c602d8983435f6a74d4e8699e8c99ed","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.30.0.tgz","fileCount":61,"integrity":"sha512-3IG1GHDjLmqAPmqdoc6OKYd2hAvM4gEBHyJWvVt5LAGJZRvADLCmVibJRLjiBa86MsJ2i7X26gwRHzi7iTKmOQ==","signatures":[{"sig":"MEUCIQCKomftnaJEwopcyg83+I6ANGTtY1nEdyofu2SWESHIFwIgD57bnkrJZ0aB+jlwRDc+NGGvUyiiKKMjYFAl0N3SOWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/empirical-sdd@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9948824},"type":"module","_from":"file:/home/runner/work/_temp/empirical-package/empirical-sdd-0.30.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5b0a48ea-ea74-4d29-9c78-08727ae78de7"}},"_resolved":"/home/runner/work/_temp/empirical-package/empirical-sdd-0.30.0.tgz","_integrity":"sha512-3IG1GHDjLmqAPmqdoc6OKYd2hAvM4gEBHyJWvVt5LAGJZRvADLCmVibJRLjiBa86MsJ2i7X26gwRHzi7iTKmOQ==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.30.0_1788296577269_0.39369130264775776","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"empirical-sdd","version":"0.31.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.31.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"dd5376747a0c5902ec4066b3859efe565facf71e","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.31.0.tgz","fileCount":62,"integrity":"sha512-L41rG8cIxyZCKyWJd2klNEjt9evS4/MgKankS1WL5Uu3gEyL0IrlQtIxQ5ztaeMvBievFKxbJ37+HtvMEOeASw==","signatures":[{"sig":"MEQCIELvAWqyvanTnwsJkq6f/CjPDY5zID2/M6aJqi+gLJwiAiBb76vlrd5UF/vdC+lyQwr8UlxOyj3wMFC48yP6Ye3YQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10142146},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.31.0_1788546677059_0.7609206688231951","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"empirical-sdd","version":"0.32.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.32.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"bde89a475837bd63603b29ebe10e2696d6b744a5","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.32.0.tgz","fileCount":66,"integrity":"sha512-QSqXq4PFcWVXneP8AJGavM1KbxJTlN3NZsF5M/FEOI/v9O88ldBel9OkzvoMfnCuDgttQ36YtZXFY09SD9D3pg==","signatures":[{"sig":"MEUCIQDaMgsq6aMmyUv2Xmb/F+pbciAA/Gfw9oy10bfGs0NKMgIgUc4xySJs7byX0SB7uQsT1TxAmQgUN60tNyJO4ozClGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10492592},"type":"module","_from":"file:/home/dyaus/.cache/empirical-release-032/manual-package/empirical-sdd-0.32.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"_resolved":"/home/dyaus/.cache/empirical-release-032/manual-package/empirical-sdd-0.32.0.tgz","_integrity":"sha512-QSqXq4PFcWVXneP8AJGavM1KbxJTlN3NZsF5M/FEOI/v9O88ldBel9OkzvoMfnCuDgttQ36YtZXFY09SD9D3pg==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.32.0_1788892861090_0.5237823026572097","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"empirical-sdd","version":"0.33.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.33.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"7c5ed7c44ec47436fdb9f034b05c4411ae2ba3f3","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.33.0.tgz","fileCount":66,"integrity":"sha512-fYII/nQEjgDcI7dp4yp0AI2GVayNTvq6fxwBQ4BQHHzpKtixwhUgtOCWQ2ev4TXMqdJHM3Nkeu9cBWBvKjAagQ==","signatures":[{"sig":"MEUCIE5nDjhh/MKO/JMc7FLJ7FRmGDLR+ePG+xeL5I2tOIJUAiEA5G/cbWV6GMFL8gdYagQRCqYM+k8LOsXZ+0nLLLiMwKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10543109},"type":"module","_from":"file:/home/dyaus/.cache/release-033-artifacts/empirical-sdd-0.33.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"_resolved":"/home/dyaus/.cache/release-033-artifacts/empirical-sdd-0.33.0.tgz","_integrity":"sha512-fYII/nQEjgDcI7dp4yp0AI2GVayNTvq6fxwBQ4BQHHzpKtixwhUgtOCWQ2ev4TXMqdJHM3Nkeu9cBWBvKjAagQ==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.33.0_1788971068340_0.6257239226635098","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"empirical-sdd","version":"0.34.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.34.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"b806f70b368de85e1f1549bc8254aec6b36924f0","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.34.0.tgz","fileCount":72,"integrity":"sha512-LLefna/8VRjn3uq4Vw0yv8E0SLa4+blKHOR2l9ReRA664vgiP3X3gPQWjjeaU/ezPQtnZYuB5pUnKe7SMnwkbg==","signatures":[{"sig":"MEYCIQCRiBovPSzGbkNCkh5S7x6kbhhfHFqq5ZZUG6X24CoSRAIhAIM/e060vMFf2sE3bcFpZ1WH+3wTAa3eM0V2jGTF7+XO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11659523},"type":"module","_from":"file:/home/dyaus/.bb/thread-storage/thr_ba6ics9dki/release-v0.34.0/empirical-sdd-0.34.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"_resolved":"/home/dyaus/.bb/thread-storage/thr_ba6ics9dki/release-v0.34.0/empirical-sdd-0.34.0.tgz","_integrity":"sha512-LLefna/8VRjn3uq4Vw0yv8E0SLa4+blKHOR2l9ReRA664vgiP3X3gPQWjjeaU/ezPQtnZYuB5pUnKe7SMnwkbg==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.34.0_1789405411942_0.16233081709605357","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"empirical-sdd","version":"0.35.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.35.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"5fe3313163a4dab697f68492a8557f128001bb64","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.35.0.tgz","fileCount":77,"integrity":"sha512-f4w6r4wS7kLQofaBB64bJKm3BJWPogbqMj7/b2hOoDYF/Upj10XWZtCacLmrylvHfhJ+F+184LuVF+AjSIFN/Q==","signatures":[{"sig":"MEYCIQDwk3Xi/FxA3VQs1MRCOmSwZGXJTu2cYdjK7PcEwsfaHwIhAPLVG69dKke8SwImuUZBX6QzV53KLprA9anT7OHsduoa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12552811},"type":"module","_from":"file:/home/dyaus/.bb/thread-storage/thr_suine62gwr/release-validation/manual-035-artifacts/empirical-sdd-0.35.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"_resolved":"/home/dyaus/.bb/thread-storage/thr_suine62gwr/release-validation/manual-035-artifacts/empirical-sdd-0.35.0.tgz","_integrity":"sha512-f4w6r4wS7kLQofaBB64bJKm3BJWPogbqMj7/b2hOoDYF/Upj10XWZtCacLmrylvHfhJ+F+184LuVF+AjSIFN/Q==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.35.0_1789482296634_0.6001870078082248","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"empirical-sdd","version":"0.36.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.36.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"32d2a5bc92c31e9b19402698f06d74e0c060db60","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.36.0.tgz","fileCount":84,"integrity":"sha512-ZN9f4WnEY6kzYLAUMoCEIIVeupRALD6UWa6R8LLTpdrsfgnDS0NFKigWDwV8UR8CF+zRbMkLONZwBrPzOE0++g==","signatures":[{"sig":"MEUCIGQHqhCDXYFCRtf1oYGVqx4MRP0vi0aC0vM1nsO1Zk2OAiEAi8v+YF4aJHQSBx/kh5EMLUI8kB6aSnkVaF2gyn4Bc88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13352124},"type":"module","_from":"file:empirical-sdd-0.36.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"_resolved":"/tmp/empirical-merge-open-prs/empirical-sdd-0.36.0.tgz","_integrity":"sha512-ZN9f4WnEY6kzYLAUMoCEIIVeupRALD6UWa6R8LLTpdrsfgnDS0NFKigWDwV8UR8CF+zRbMkLONZwBrPzOE0++g==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.36.0_1789578771798_0.25386099575855026","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"empirical-sdd","version":"0.37.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.37.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"ae1c0efd1821344158fc30333d93258e69cc43ac","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.37.0.tgz","fileCount":91,"integrity":"sha512-Bd76spUAl2o2FXDjBrPfDPMnOEaImjeh8FIIk7cUd8OExMTFQC516zo1Vjg8NQ465O/izekZ7Uia0/Kft8AIGg==","signatures":[{"sig":"MEQCIDUvM/N4MHX5gLVRjn0+Xpd8BZk7CwFjdLohk6yWNZbLAiAiBm7I4syk4z7/slYW0EhPLq05cUL+rB61rtmKjL2aEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14530591},"type":"module","_from":"file:/home/dyaus/.bb/thread-storage/thr_nzm5zmkpp6/manual-release-037/empirical-sdd-0.37.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com","approver":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}},"_resolved":"/home/dyaus/.bb/thread-storage/thr_nzm5zmkpp6/manual-release-037/empirical-sdd-0.37.0.tgz","_integrity":"sha512-Bd76spUAl2o2FXDjBrPfDPMnOEaImjeh8FIIk7cUd8OExMTFQC516zo1Vjg8NQ465O/izekZ7Uia0/Kft8AIGg==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.1","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.37.0_1789752903316_0.30367581916826114","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"empirical-sdd","version":"0.38.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.38.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"3a067489a745074170fde94c70f188696911408d","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.38.0.tgz","fileCount":103,"integrity":"sha512-+WxXliECi9v0C9EsVk8CJ8ZGk2+XG/7xO0PDjgZlQjo07QOinYWNrrsSRLyG+txHpaF3VI2Be9WB3rUddnqLKg==","signatures":[{"sig":"MEQCIDYQ+1kAMV38c3KgkGCb39KC3bIZM4jjtlP1k7VLe2dLAiBXi+xXLxi5m5OYqKDm2pWsJ8bi/PEqaMcY8DLjtTHi6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCO0vjOLHoTrZvSQ75kQzeXhhzqkwu7c5urPcBVxh6V/AIhAMzL1qYjxigddapvD3GyFvCUPTgMNEgNF4FjmEIfuXlQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15328990},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","benchmark:flow":"bun run scripts/benchmark-flow.ts","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.38.0_1790124412549_0.4342517054680497","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"empirical-sdd","version":"0.39.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.39.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"50189034bed9cc0fba2ffcd5e821c9bcfa8251bc","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.39.0.tgz","fileCount":105,"integrity":"sha512-GhAC+QgOZ84AE9vDbJIRBOlrO4zRdem1shJAn3Gb0B3VybPzrTlB9TjNPIX4yMBRpSPb4A11+tzCuL73rQ8A6g==","signatures":[{"sig":"MEYCIQC9jH3WFnY3OW8p1uCh42IHlvKNBxUddQhqk4i9Zg+ANwIhAPuyJUl1ukdaABc77C/uB5G9KLTgS38zswbvDwDX6gK9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCJLdNsxQDoZWz6eX0qvIZyRzoR6EQG8pSIDOzDn7UwhgIgJ9+AkdRxmWKcNz0VaJT2JATtsPRBBGezBqeOb8o5azY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15681420},"type":"module","_from":"file:/tmp/empirical-sdd-0.39.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","benchmark:flow":"bun run scripts/benchmark-flow.ts","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"_resolved":"/tmp/empirical-sdd-0.39.0.tgz","_integrity":"sha512-GhAC+QgOZ84AE9vDbJIRBOlrO4zRdem1shJAn3Gb0B3VybPzrTlB9TjNPIX4yMBRpSPb4A11+tzCuL73rQ8A6g==","repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.39.0_1790270839143_0.048060196945614475","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"empirical-sdd","version":"0.40.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.40.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"d559de7b2831f4817dcecf75fad3cb2247453122","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.40.0.tgz","fileCount":105,"integrity":"sha512-ny/hYojnuTiMP2+8x0NnAWBVcBCMaYTIR9IE0HpH7Y/z3dbUwR1S2tJVkFQ0eL5uNoZx789EPvxfkrq/uVGu+A==","signatures":[{"sig":"MEYCIQDIM8HLwrx64j127X1JYx8ckInLb/u2NbG8FjGW3GKlpwIhAPRcKLXCvNzvk/XXRmCqN2KF5z6M402HlwJ/vH9avKue","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC37cnkwjT8LVDvvKMrT1RU1qQhLiv1Ps6up4mohsZPowIgbOpX2Q3v0kFPZ7XKm2tkMxMcKxOwYdmOedvr3p/tbvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15883752},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","benchmark:flow":"bun run scripts/benchmark-flow.ts","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.40.0_1790366727733_0.137784204736904","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"empirical-sdd","version":"0.41.0","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"license":"MIT","_id":"empirical-sdd@0.41.0","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"homepage":"https://github.com/goempirical/empirical-sdd#readme","bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"bin":{"empirical":"dist/cli.js"},"dist":{"shasum":"55b9496d02fdc43cba34439c29e89c6115389ad3","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.41.0.tgz","fileCount":106,"integrity":"sha512-7FdYDnMEo3DBKeuDhGNpBOTGdP1A4h0wRJer60AC3md+3GVGBR+P7/cCIJFyvBUSR28oUJufDeT4BCN1IpY0pQ==","signatures":[{"sig":"MEQCIHHf+k6Msz8b9gF1iLRvFKjYmNlaB+vDWtp2Hm8grQJMAiALIVD77N0vIxN3mwRXCFKiqgcu7xLkN/8BgNM2pkSA+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBJWEuRw4pKv6e+dWlmPDDgNpVQ3V09OU+RaAMRFU7UbAiEA6RL4VNgibM38g4JIdcSoVDg8NfljCDp92f91UiwqGLE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16198755},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","benchmark:flow":"bun run scripts/benchmark-flow.ts","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.4.3","smol-toml":"1.9.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/empirical-sdd_0.41.0_1790633597067_0.05396319852757392","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"_id":"empirical-sdd@0.42.0","bin":{"empirical":"dist/cli.js"},"bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"dist":{"shasum":"0bc8ce8bdbade4dbbb5f6c8970657f25c4bd84ff","tarball":"https://registry.npmjs.org/empirical-sdd/-/empirical-sdd-0.42.0.tgz","fileCount":106,"integrity":"sha512-O5fLJp8BVqf33HOdCdmFcTb/8SW1VX7m5EVNoua+v/Tn9cuNbcgYni2Q4DLXm5iws9A3zW4g8vQ5LAgW/LWPBQ==","signatures":[{"sig":"MEYCIQDpuVGhDBJLjm0gql7OVKNHUfnB1y1XwBhhEdIBHwtBlgIhAMTqX64te1Gd+MGdyiz8USIN5AocAoQjAqvBHIfU59RW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGihfQJR4u2jkCej9E4zdOUKbyOi6RARsHjGFJJmjHe2AiAwmEV44zaYjrlNFtMMxoJxq+4ibOeAumJ/C2rNq/5l9w=="}],"unpackedSize":16239313},"name":"empirical-sdd","type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp.d.ts","import":"./dist/mcp.js"},"./protocol":{"types":"./dist/protocol.d.ts","import":"./dist/protocol.js"},"./integrations":{"types":"./dist/integrations.d.ts","import":"./dist/integrations.js"}},"license":"MIT","scripts":{"ci":"bun run check && bun run test:coverage && bun run test:dist && bun run test:package && bun run test:consistency && git diff --check","test":"bun test tests --timeout 120000","build":"bun run scripts/build.ts","check":"tsc -p tsconfig.json --noEmit","prepack":"bun run build","test:dist":"bun run build && bun run scripts/smoke-mcp.ts","test:package":"bun run scripts/test-package.ts","test:release":"bun test tests/release.test.ts --timeout 120000","test:coverage":"bun test tests --timeout 120000 --coverage --coverage-reporter=lcov --coverage-reporter=text --path-ignore-patterns=tests/linear-mcp-oauth.test.ts && bun test tests/linear-mcp-oauth.test.ts --timeout 120000 && bun run scripts/check-coverage.ts coverage/lcov.info","benchmark:flow":"bun run scripts/benchmark-flow.ts","release:dry-run":"bun run scripts/release.ts dry-run --fixture tests/fixtures/releases/dry-run.json","test:consistency":"bun run scripts/check-consistency.ts","demo:ticket-policy":"node dist/demo-ticket-policy.js","demo:integration-repair":"node dist/demo-integration-repair.js"},"version":"0.42.0","_npmUser":{"name":"mcerquetella","email":"mcerquetella@goempirical.com"},"homepage":"https://github.com/goempirical/empirical-sdd#readme","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"_npmVersion":"10.9.8","description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","directories":{},"maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","smol-toml":"1.9.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/empirical-sdd_0.42.0_1790880051636_0.5784945876702356"}}},"time":{"created":"2026-07-28T21:56:31.957Z","modified":"2026-10-01T18:40:52.030Z","2.0.0":"2026-07-28T21:56:32.348Z","2.2.0":"2026-07-29T14:49:29.249Z","2.3.0":"2026-07-29T15:45:35.509Z","2.3.1":"2026-07-29T16:21:43.164Z","0.20.0":"2026-07-29T18:40:04.459Z","0.20.1":"2026-07-29T21:30:14.821Z","0.20.2":"2026-07-30T17:14:26.164Z","0.20.3":"2026-07-31T13:55:15.209Z","0.20.4":"2026-07-31T16:05:24.817Z","0.22.0":"2026-08-04T03:56:42.046Z","0.23.0":"2026-08-11T22:49:09.756Z","0.24.0":"2026-08-19T14:28:26.556Z","0.24.1":"2026-08-19T20:23:36.296Z","0.25.0":"2026-08-20T00:22:43.385Z","0.26.0":"2026-08-20T13:43:09.119Z","0.26.1":"2026-08-21T18:52:35.650Z","0.27.0":"2026-08-22T19:28:19.018Z","0.28.0":"2026-08-24T17:17:20.017Z","0.29.0":"2026-08-28T17:02:06.000Z","0.30.0":"2026-09-01T21:02:57.487Z","0.31.0":"2026-09-04T18:31:17.378Z","0.32.0":"2026-09-08T18:41:01.246Z","0.33.0":"2026-09-09T16:24:28.580Z","0.34.0":"2026-09-14T17:03:32.170Z","0.35.0":"2026-09-15T14:24:56.951Z","0.36.0":"2026-09-16T17:12:52.151Z","0.37.0":"2026-09-18T17:35:03.480Z","0.38.0":"2026-09-23T00:46:52.707Z","0.39.0":"2026-09-24T17:27:19.576Z","0.40.0":"2026-09-25T20:05:27.981Z","0.41.0":"2026-09-28T22:13:17.278Z","0.42.0":"2026-10-01T18:40:51.845Z"},"bugs":{"url":"https://github.com/goempirical/empirical-sdd/issues"},"license":"MIT","homepage":"https://github.com/goempirical/empirical-sdd#readme","keywords":["agents","mcp","sdd","spec-driven-development","codex","claude"],"repository":{"url":"git+https://github.com/goempirical/empirical-sdd.git","type":"git"},"description":"Agent-neutral, resumable spec-driven development for every terminal-capable coding agent","maintainers":[{"name":"sebapereyro","email":"seba@goempirical.com"},{"name":"mcerquetella","email":"mcerquetella@goempirical.com"}],"readme":"# Empirical SDD\n\n**Agent work that survives the chat.**\n\nEmpirical is a repository-native harness for coding agents. The model writes;\nEmpirical keeps the contract, progress, proof, and exact next action in Git so\nwork can resume across sessions, agents, and machines.\n\n> Empirical is alpha software and requires Node.js 22 or newer.\n\n**[Open the practical harness guide](https://goempirical.github.io/empirical-sdd/)**\nfor the visual walkthrough, diagrams, generated-file explorer, and complete\nworkflow. Its zero-build source is [docs/index.html](docs/index.html).\n\nFor a short explanation of receipts, review, checkpoints and cross-machine work,\nread [Working with Empirical](docs/harness-guide.md). See the\n[configuration reference](docs/configuration.md) for options and fixed rules.\nRun `empirical doctor` for the complete plain-English project health check,\nincluding what is working, what needs attention, and what you can change. The\nolder `--options` spelling remains available as an alias. Use `--json` only\nwhen an agent, CI job, or advanced diagnostic needs technical details.\n\n## Start in three steps\n\n1. Install the package and the agent integrations you use.\n\n   ```sh\n   npm install -g empirical-sdd\n   empirical install\n   ```\n\n2. Initialize each repository once from your coding agent.\n\n   - Codex: `$empirical-init`\n   - Claude Code: `/empirical-init`\n\n   Init guides you through six steps in your agent chat: **Setup → Preferences →\n   Review bot → Tracking → Confirm → Apply**. It shows your current step and asks\n   one question at a time. Use **Back** or **Edit** to revisit a section while\n   keeping your other answers. Nothing is applied until you confirm **Save**.\n\n   Bot review is optional. Init offers it once; say “no,” “skip,” or “ignore”\n   to save fresh-context review without a bot token. Future init runs preserve\n   that choice. To enable it later, tell your agent “enable bot review.”\n   Fresh-context review still uses an isolated reviewer, but does not count as\n   an independent GitHub approval.\n\n3. Choose when to use Empirical.\n\n   Init recommends **Only when explicitly requested**. Use the local skill for\n   work you want to run through Empirical: `$empirical` in Codex or `/empirical`\n   in Claude Code. Ordinary coding requests stay outside the workflow.\n\n   Choose **Automatically for this team** only when the team agrees to shared\n   routing instructions. You can then ask for a change normally:\n\n   ```text\n   Add rate limiting to the public API and prove the failure path.\n   ```\n\nEmpirical is optional. You can ask to work without it in either mode. Read-only\nquestions remain read-only. If Empirical work stops, invoke it again in the same\ncheckout to resume from the committed journal.\n\nTo change the choice later, ask your agent to configure Empirical activation.\nSwitching to explicit removes only Empirical's shared routing blocks and keeps\nworkflow history. Repair preserves saved choices. Older repositories without a\nrecorded choice become explicit on repair; start a fresh agent session afterward.\nSee [optional adoption](docs/optional-adoption.md) for mixed teams and migration.\n\n## Why use it?\n\n| Without a harness | With Empirical |\n| --- | --- |\n| Lost chat | **Continuity** — resume from repository state. |\n| Ambiguous request | **Shared contract** — agree on observable outcomes first. |\n| Confidence without proof | **Honest evidence** — bind claims to exact source, commands, attempts, and results. |\n| Scope drift | **Reviewable scope** — keep decisions, diffs, failures, and gaps visible. |\n| Unsafe convergence | **Safer integration** — isolate parallel work and validate against an independent target. |\n| Accidental publication | **Bounded authority** — keep implementation, delivery, and publication separate. |\n\n## How it works\n\nEmpirical Flow selects the lightest route that preserves the requested process\nand safety floor:\n\n- **Flow Direct** handles understood, tightly scoped work in the current agent\n  without creating workflow artifacts.\n- **Flow Delegated** assigns bounded independent work through the host's native\n  delegation and creates at most one concise Flow Record when recovery value\n  justifies it.\n- **Formal SDD** is selected only when the user explicitly requests it. It\n  preserves proposal, specification, technical design, task breakdown,\n  implementation, verification, and any later requested endpoint.\n\nThe existing Fast and Complex state machines remain compatibility engines for\ndurable Empirical features:\n\n- **Fast** handles explicitly requested small, scoped, reversible features and\n  fixes, including ordinary behavior and UI changes. It requires no tests,\n  formal review, or Context phase and finishes **implemented; verification\n  skipped**. Its spec and journal remain available.\n- **Complex** carries work through a durable contract, decisions, verification,\n  exact-diff review, and independent integration. Explicit Complex is honored;\n  sensitive and higher-risk work always requires it.\n\nFast:\n\n```text\nImplement → Done (implemented; verification skipped)\n```\n\nComplex:\n\n```text\nSpecify → Design → Plan → Implement → Context? → Review → Verify → Integrate\n```\n\nExisting features retain their saved Verify-before-Review order. New Complex\nfeatures and promoted Fast features review first; changing reviewed code requires\nanother review before Verify can finish.\n\nA Complex feature that shows an interface gets its mockup at Specify when the\nsaved mockup preference is enabled. The contract is still open: seeing a screen\nreveals states and flows that prose misses and those belong in the criteria.\n`empirical mockups` serves the\ndirections on a local address so a person can click through and choose one;\nVerify then checks what was built against what was approved.\n\nComplex runs Context when repository knowledge needs refinement. Failed\nverification or requested review changes return to implementation. Evidence, review, and\nintegration are different claims, and Empirical reports only the highest level\nactually proven: `implemented`, `verified`, `integrated`, `delivered`, or\n`published`.\n\nChoose Fast for small, self-contained changes. Work that builds on an existing\nfoundation and will be integrated belongs in Complex iterative\n(`empirical_complex` with `iterative: true`): adjust with `empirical_iterate`\nwithout test runs, then say \"ready to close\" to run final verification once.\nEach Complex implementation packet carries a bounded contract summary instead of\nthe full documents, and the newest adjustment wins: a behavior change at the same\nrisk floor amends the criteria and decisions in place, with the approved contract\nsnapshotted for review. Raising the risk floor or changing the declared capability\nscope still requires an explicit contract revision through Specify/Design/Plan.\n\nFast trades verification confidence for less waiting and process. A follow-up\nadjustment to the same Fast feature uses `empirical_iterate`, from Implement or\nafter Done: no promotion, no test run, and the journal keeps every adjustment.\nA failed Fast completion blocks in place for `retry` or explicit promotion.\nPromotion is always explicit: Fast consolidate, Integrate and Deliver require\n`empirical_promote`, which continues the same spec through Complex Specify and\npreserves its history and identity. Historical completed Fast records retain the\nevidence and completion level they originally earned.\n\nDelivery is never implied. Empirical does not infer permission to merge a pull\nrequest, bypass protection, create a release, or publish a package.\n\nEvery read returns one deterministic roadmap, and every stop shows the same\nstatus card built from it, so you always see where the work is and what it\nneeds from you:\n\n```text\nEmpirical · add-team-invitations · Complex · verify (5/7) · rev 5\nDone:           specify, design, plan, implement\nNot done:       verify: qa-unit unrun, qa-browser missing-environment\nNext:           Run qa-unit at revision 5 (~2m 10s) when you request tests\nWaiting on you: [test-request] Ask to run 1 check (~2m 10s), or keep iterating\n                [environment] qa-browser needs isolated-consumer\nVerification:   2 of 4 checks left (~2m 10s known; 1 unknown)\nTime:           1h 12m of 2h budget\n```\n\nWork does not run silently for hours. Elapsed time comes from the feature's\njournal and is measured against a per-lane budget (defaults: Fast 30, Quick 60,\nComplex 120 minutes; override with `\"budget\": { \"fast\": 45 }` in\n`.empirical/config.json`). Past the budget, or when Review sends work back to\nImplement, the card stops at a checkpoint and offers explicit exits: ship as\nis with a draft PR, split, defer non-blocking findings, continue with a new\nbudget (`empirical_checkpoint`), or stop.\n\n`empirical status`, `explain`, `next` and `loop` print it, `--json` carries the\nsame `roadmap`, and the agent skill shows it at every start, phase change and\nstop, and before a long run it estimates and offers to defer. The card reports\nfacts; it authorizes nothing.\n## Work directly when you want to\n\nSay \"direct\", \"without Empirical\" or \"quick change\" and the agent just edits:\nno specification, state, phase, receipt, gate, tracker update or worktree\nproposal, and no reading of specs, decisions or context pages. Nothing runs\nunless you ask for it, and the turn ends with one line such as\n`Changed the button label in 1 files · not tested (not requested) · say \"track this\" to formalize`.\n\nInside a repository or feature that uses Empirical, \"go direct\" pauses the\nselected feature, \"back to Empirical\" folds the direct diff back in as one\niteration, and \"track this\" rebuilds recent direct commits and uncommitted files\nfrom Git into a Fast (or Complex) feature. Push, merge, pull request, tag,\npublish, credential use and destructive Git still need an explicit request.\n\nA team can set `defaultMode` to `direct` in `.empirical/config.json`, and each\ndeveloper can override it for their own checkout; explicit Fast, Complex or\n\"use Empirical\" requests always start those lanes.\n\n## Keep features small\n\nWhen a Complex feature grows past 6 acceptance criteria or 2 capabilities, the\nstatus card asks whether to split it into independently shippable slices, each\nwith its own draft PR, or keep it as one with a recorded reason. The question\nnever blocks a gate; tune or disable it with `sizeGuardrail` in\n`.empirical/config.json`.\n\n## Close out work that is stuck\n\nSometimes a feature cannot satisfy its next gate: the PR was merged by hand, the\nwork was abandoned, or the proof the gate wants is never coming. Ask to close it\nout and Empirical records why rather than pretending:\n\n- “Close this feature out, it was merged manually in PR #123” reads the pull\n  request, requires it to be genuinely merged into the target branch, and\n  records those facts. It does **not** mark the feature delivered — that still\n  means a verified delivery receipt — so the status card stays honest.\n- “Give up on this feature, the approach did not work” ends it as abandoned at\n  whatever it had actually reached.\n- “Skip this stage” advances exactly one stage past a gate. It will not step\n  into Integrate, Deliver or Publish, which have their own approvals.\n\nEvery close needs a reason in plain words, shows you the exact effect first, and\nlands in the feature's journal. It never writes a receipt or raises a completion\nlevel, so nothing a forced close touches can later be mistaken for proof.\n\nWhen features show as **merged, not closed** — their PRs merged on GitHub but\nthe session that merged them never recorded it — ask to reconcile. Empirical\nfinds the merged PR for each unfinished feature on its own, shows you the list,\nand closes the ones you approve as merged externally. Features that never got\nto Implement, have no provable merge, or belong to another checkout are listed\nwith what to do instead; nothing is deleted.\n\n`empirical doctor` stays read-only. When it reports leftovers — expired locks,\nstale claims, prunable worktree registrations — ask to clean them up and it\nremoves only what the report already named, and only the classes you name.\n\n## Run tests when you need them\n\nFast and Complex iteration do not automatically run tests after edits. Ask for a\nrun when ready:\n\n- “Run the changed tests” or “run the affected tests” runs the `iterate`\n  verification profile once: only commands configured with `testFiles: \"changed\"`.\n- “Now run it”, “run everything” or “ready to close” uses the `final` profile,\n  which runs only the Verify selection: one cheapest configured command per\n  Verify check, never full CI.\n- “Keep iterating; skip tests for now” leaves verification pending.\n\nOne test request does not enable automatic reruns after subsequent changes, and\nno phase, iteration or consolidation runs tests by itself. The full suite runs\nonce, at the very end. By default (`promotion.fullCi` omitted, which means\n`auto`) it runs as pull-request CI when the repository's GitHub delivery pins\nrequired checks and no SDD-67 local-forcing reason applies; Deliver merges\nnothing until those checks pass on the exact head. Otherwise it runs locally,\nonly after you approve that exact run (command, revision and estimate), and one\nexact full-CI receipt recorded at Integrate also serves Deliver when nothing\nchanged. Agents never approve on your behalf; Publish's explicit publication\nauthorization is the approval for its own full-CI run. An explicit\n`promotion.fullCi: \"local\"` always runs locally, and `\"remote-checks\"` keeps\nremote proof without a local fallback.\nA focused command can declare a `scope` of paths so an edit elsewhere does not\ninvalidate its Verify receipt; global configuration (policy, manifests,\nlockfiles, workflows, argv-named files) always invalidates it, and full CI and\npromotion proof are never scoped. See [docs/mcp.md](docs/mcp.md).\nIf no focused command is configured, the agent reports the gap instead of\nsilently running the entire suite. Complex still requires real evidence before\nclaiming verified completion; Fast can finish implemented and unverified.\nExplicit final verification or promotion requests include their required checks,\nand CI/release gates remain enforced. An explicit no-tests request takes\nprecedence over execution and leaves any conflicting gate pending.\n\nLong local runs can go to the background: `empirical_qa_start` runs the command\nin a snapshot worktree of the committed `HEAD` and returns a job id immediately,\n`empirical_qa_status` reports progress and the receipt, and `empirical_qa_cancel`\nstops it. See [MCP usage](docs/mcp.md#background-verification-jobs).\nWhen CI is not available, agents ask before a full regression at the end, run\nit in the background with your approval, keep working, and rerun only the\nfailing test files if it fails.\n\n### Ship early\n\nAgents open a draft pull request at the first coherent commit of feature work\nand push every commit. Commits and pushes never wait on tests: the change's\ntests run in the background while work continues, and heavy or full-suite runs\nbelong to pull-request CI unless you approve a local run. This authority covers\nonly the agent's own feature branch and draft pull requests; agents never merge,\nnever push to protected or target branches, and never force push. Without a\nremote or `gh`, the agent says so and continues locally.\n\nExisting repositories need their managed skills refreshed with `empirical-init`\nand a restarted agent session after upgrading to receive this guidance.\n\n## What it creates\n\nInit installs the harness; selected work fills in the record:\n\n```text\nrepository/\n├── AGENTS.md / CLAUDE.md / GEMINI.md    bounded activation markers\n├── agent skill + MCP entries            selected integrations\n└── .empirical/\n    ├── config.json                      project setup\n    ├── policy.json                      verification and delivery policy\n    ├── tracker.json                     secret-free tracker choice\n    ├── context/                         repository knowledge\n    ├── mockups/decision.md              app mockups adopted or declined\n    ├── specs/<feature>/\n    │   ├── spec.md + decisions.md       contract and decisions\n    │   ├── mockups/                     approved directions and fidelity\n    │   ├── design.md + plan.md          Complex approach and plan\n    │   ├── impact.json                  affected behavior and surfaces\n    │   ├── state.json + events/         phase and resumable journal\n    │   ├── evidence/receipts/           immutable attempts and artifacts\n    │   ├── reviews/                     exact-diff review, when reached\n    │   └── integration-receipt.json     convergence proof, when reached\n    └── capabilities/<capability>/       living behavior after integration\n```\n\nExact host files depend on the integrations selected during install. Init\ncreates durable setup and empty work containers; a real mutation creates a\nfeature record, and conditional artifacts appear only when their phases run.\n\nOptional tracking mirrors approved milestones to Linear, GitHub, Jira, or Plane; the\nrepository remains authoritative. Policy supports\n`enforcement: \"best-effort\" | \"strict\"`; strict recovery retries the exact\nfeature. Credentials never belong in chat, prompts, repository files, tool\narguments, or evidence.\n\nWhen GitHub Copilot is selected, installation also reconciles the exact\nEmpirical stdio bridge in `~/.copilot/mcp-config.json`; start a new session after\ninstall or update. Linear setup then uses an in-memory OAuth client for Linear's\nofficial remote MCP endpoint, with browser authorization through negotiated URL\nelicitation. Empirical never reads Copilot's token store or persists the OAuth\ntoken. The guarded `LINEAR_SECRET_KEY` host file remains a fallback, not the\ndefault requirement for an OAuth-capable session. On Codex, Policy v2 can use\n`connection: \"linear-mcp\"`: Empirical emits durable secret-free intents, Codex\nexecutes them through the authenticated Linear MCP tools, and validated results\nconverge the same binding, milestone, and strict-gate records without sharing\nthe OAuth token.\n\n### Automatic lifecycle tracking\n\nPolicy v2 workflow actions now synchronize automatically. Linear MCP hosts\nreceive a prepared tracker intent, and trusted host dispatchers can execute it\nautomatically. Init confirms every discovered mapping and whether Done means\nlocal completion, a confirmed release, or production deployment. See\n[Lifecycle tracking](docs/tracking.md) for setup, recovery, and the observation hook.\n\n## Documentation\n\n- [Practical guide](https://goempirical.github.io/empirical-sdd/) — visual onboarding and diagrams\n- [Demo](docs/demo.md) — installation and representative scenarios\n- [Protocol](docs/protocol.md) — state machine, artifacts, and completion rules\n- [Architecture](docs/architecture.md) — persistence and trust boundaries\n- [MCP and tracking](docs/mcp.md) — agent operations and tracker configuration\n- [Security](docs/security.md) — credentials, execution, review, and authority\n- [Releasing](docs/releasing.md) — guarded maintainer playbook\n\n## Development\n\n```sh\nbun install --frozen-lockfile\nbun run ci\n```\n\nCI covers Node.js 22, 24, and 26. Ordinary changes target `develop`; `main` is\nreserved for validated release pull requests.\n\n## License\n\n[MIT](LICENSE)\n\n### Shared specs across worktrees\n\nSpecs and capability contracts are repository artifacts. Each Git worktree\nselects and claims its own active feature in local Git metadata; different\nworktrees can execute different features concurrently. Unclaimed or temporarily\ninactive specs stay in `.empirical/specs/`. They are not abandoned work.\n\nUse the agent's `empirical_select` operation to resume an existing unclaimed\nfeature. Explicit new feature starts and repository setup/context repair are not\nblocked by unrelated unclaimed specs. If a feature-required operation needs a\nchoice, it lists candidates rather than choosing or moving a spec. An approved\nworktree handoff can be retried with its original input after interruption.\nCreating it from an approved committed base leaves uncommitted source edits in\ntheir original checkout. Transferring an unfinished spec to another worktree\nrequires its exact source revision and matching destination history; it keeps\nthe original capability bases and receipts.\n\nIgnored local environment files such as `apps/api/.env` or `apps/web/.env.local`\nare discovered by default, listed by path in each worktree proposal, and copied\ninto the new worktree when you approve it. Copies are independent, never\noverwrite existing files and never enter Git. Set `isolation.localFiles.discover`\nto `false` to opt out, or adjust its `include` and `exclude` patterns. For a\nworktree created by another tool or `git worktree add`, your agent previews and\napplies Empirical prepare to fill in the missing files.\nSee [local environment files](docs/protocol.md#local-environment-files-in-worktrees).\n\nLong-lived branches drift. The status card flags a branch that is behind its\ntarget with predicted conflicts or by more than 10 commits, and your agent syncs\nat each checkpoint: Empirical merges the target only when it is clean and\nconflict-free, never rebases or force-pushes, and names conflicting files right\naway. See [staying current](docs/mcp.md#stay-current-with-the-target-branch).\n\nAsk your agent for the read-only overview to see specs, owners, branches,\nprofiles, progress and verification status together. Unrelated malformed records\nappear as local diagnostics without selecting or deleting any spec. Independent\nwork uses separate locks; overlapping feature writers and integration targets\nstill serialize safely. Multiple worktrees cost disk space and setup, and\nchanges to shared capabilities can still conflict when they integrate.\nSee [selection and recovery semantics](docs/protocol.md#shared-specs-and-checkout-selection).\n\n### Sub-agents for specs and implementation\n\nAsk your agent to delegate bounded specification or implementation work. Empirical\ndiscovers the host's actual native agent capabilities, reserves each assignment\nbefore spawning, and tracks its identity through interruption or cancellation.\nWritable children use separate registered worktrees and selected specs. Read-only\nconsults require a host that enforces read-only access.\n\nDelegation can progress independent specs concurrently, at the cost of additional\nagent usage, worktrees and integration work. Host support varies: installation\nalone does not prove that spawning, lookup, observation and cancellation are\navailable. Worker completion never substitutes for workflow evidence. Fast workers\nremain unverified; Complex workers still pass the full applicable gates.\nSee the [native delegation bridge](docs/mcp.md#native-sub-agent-delegation).\n","readmeFilename":"README.md"}