{"_id":"@bradtaylorsf/alpha-loop","_rev":"51-38ed5508ee5f773ad215bba7188d4bd5","name":"@bradtaylorsf/alpha-loop","dist-tags":{"latest":"2.4.0"},"versions":{"1.0.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.0.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.0.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"3a8aeccb5472458fc393241c2df971b1f57204f8","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.0.0.tgz","fileCount":95,"integrity":"sha512-UIRcjR9dlK2/T60SQnwopGWErOqKZ+1MqArevbEu4bfpnpmOZzT/iVVyqVyBM1Nw9AAExh3UwCugQlgHOTlt5w==","signatures":[{"sig":"MEQCIDetGcVG4IigvtSVDCORxSlVmoRoNlJLgoQUWE+QuONaAiAStKSDGPV99414X0KvqJGQuAzgR04p8UipRH8kvTfreA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":370922},"type":"module","engines":{"node":">=20"},"gitHead":"93c539b8e4f8143fd36b330161a7ed3b38dae0ff","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.0.0_1775023477134_0.10877024412607628","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.0.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.0.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"2abf8196494129f96d452172d585bc22d39882d6","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.0.1.tgz","fileCount":101,"integrity":"sha512-9qnENoltr95v9W9p2qkhuX5AApF/qlYGM2W5GvFpS0AfdApfwaKNh1/7q1+M4P34vtBn5xs18Tl3gqFgVBzegA==","signatures":[{"sig":"MEUCIEuXXzV1zSNPjJwZ+0tKOz1+yD2cZqJ2UTwC3vOF+0qgAiEApPpgFvAwNoLR+EERghNLYpJzQDe5AD4yeY7dWks9xEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":469495},"type":"module","engines":{"node":">=20"},"gitHead":"f8d252d7c4b915af18a78d3f86c3608b96880c48","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.0.1_1775094911269_0.6583673104621512","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.1.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.1.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"479080097b23eacbfa39f2268af547105056545e","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.1.0.tgz","fileCount":104,"integrity":"sha512-6BwSBK8GyS7p+FN09+M6XoqN2klbnqy7+LxtxUwdtiAFL+U4WK1wgmbipnUrxds+J0VaT2PqE/NT3LBi3LTirA==","signatures":[{"sig":"MEUCIQCduE4qdJ0YszyVu0Ngo9CiqV1xtXdMAm3tIJDP6SFKdAIgNeCkYIRnTA8z6UTuPv5RjYVbgj7Y3I23QJkZsX4pxRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":490029},"type":"module","engines":{"node":">=20"},"gitHead":"e5b5625a8f0a092c9b3850f09d1b92e2f0db17f1","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.1.0_1775100415904_0.049378898818446926","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.1.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.1.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"d16ebc7977d44eba27f8994e8a63e91979e0a9dc","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.1.1.tgz","fileCount":105,"integrity":"sha512-C5DZEDohIeZ88d2wgoAUu1vJzihpz1OEpC1Ntf4+ZjZY9APC2uArScuHOPZ/CsoUSOJVCh76XOtvXOnJQj8Slg==","signatures":[{"sig":"MEQCIFXJli/ty8WtdU+6ANcAVjtNAilqgLqzz0qcKej/vOmQAiBFyWkz9ou4Gk/GlVj5wX4Lzvf4IcYXSwRCAqnLhiWjpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491594},"type":"module","engines":{"node":">=20"},"gitHead":"a418381e7b380cb6a4ffae272a67b3c9492b528c","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.1.1_1775100870749_0.3381491485338348","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@bradtaylorsf/alpha-loop","version":"1.1.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.1.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"cf992a968b1948f35407370a151a54e894956740","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.1.2.tgz","fileCount":113,"integrity":"sha512-qLlD7Y4n2nx59XOAO21xaCDvgOAsnqjzXPQbqMRDNyE+Tci/OnqftEb32lHTkmpV8G/PmGOkMWzNQje27uHVZA==","signatures":[{"sig":"MEYCIQCSX2CRIlj2dtjw/Uny7wPyMsxq7Rd+oJTbtmMjdT2g7AIhAKiF1mhYTjSluW1+0VRxg6tqO9BIQJepMG1J3etVO0af","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":551893},"type":"module","engines":{"node":">=20"},"gitHead":"213c684e88dcf2b509a3662ec5b31cdd209d5d15","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.1.2_1775101373270_0.13779908025436294","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@bradtaylorsf/alpha-loop","version":"1.1.3","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.1.3","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"2352c02e80c1c90111e052a9dec06f0c0b0dd8ff","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.1.3.tgz","fileCount":105,"integrity":"sha512-Ymw+yC/9iqoOqVp3REjKFHoWiYU4yhlnpKLH0SlL/bE/VA8PFFhXX3j/ONVxLcCLKNCwHHUgFfo3isd75nvhEQ==","signatures":[{"sig":"MEYCIQD83uqVimCGyaYiZomJftW92DMfasc7eNJ3ArgvzU2NZwIhAMKrIVvkz6XEuyYaORFneiFR1a796C5Gyqoz6fw8oNty","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492026},"type":"module","engines":{"node":">=20"},"gitHead":"48eb3deae0182ae386649b79b90738cf825724c4","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.1.3_1775101449604_0.21899305149139092","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.2.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.2.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"649f06040481a919c5cbbe121726b911b8c09dbe","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.2.0.tgz","fileCount":106,"integrity":"sha512-oxTtH8xh28WEKnl48JQs8vCy+K7GQ6ZbXjaCH4zxSRGrPFfH88f5+Q+vGcoq105PZHq1Xw73A7sh8LK2DwTR5g==","signatures":[{"sig":"MEQCIB49+YAc1gUVYbVMPFRwLOUZwQC4i1OVcLKyLfsdbKrNAiA1k8e+xY82jtnM3sEm5b0/olYGlzCVcaNWNtxQjnKWng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":525193},"type":"module","engines":{"node":">=20"},"gitHead":"9d7f0f5dc607a714422416b06d6986aa0aa7c76f","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.2.0_1775101833952_0.8847637611705668","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.3.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.3.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"290ac9d3aa05778a95f12402a541074703dbaddc","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.3.0.tgz","fileCount":103,"integrity":"sha512-1ErYl8AHi++dUQALB6sHpjPzJuuheCxHlW63rrmCTZ5qFtlpbV/GdzXjQmzARKgPGVz1F9eIn0cTpQPhWFGBZw==","signatures":[{"sig":"MEQCIBXhXVOj6jupzyhAV59+VEZR9DX+swN1Kv4teYjwV4s0AiABLT7oCHggSodzjwPuOXvcyYynrYCDtNAJK686R49Svw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":576744},"type":"module","engines":{"node":">=20"},"gitHead":"d1d38ff0877bb137b7beeaefb9afdb07cb1b4a2d","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.3.0_1775173795065_0.8533786187498953","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.4.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.4.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"f9984c70e16862258e8c65305f9f748fbd658822","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.4.0.tgz","fileCount":124,"integrity":"sha512-B8PeKCyoxQRwA2zAkPOp4NG11MVFXC7a29Vjd9IYtrPwYvOj8dPraIW2XeN4UlahntKI9zmfO8dn8eJ017eUNw==","signatures":[{"sig":"MEQCICJuS/3K9EQn5cFXcDGtQKKHvkFVKniYJMO73kz4M1nfAiBqtZBpLkJra3k5/9gigtvzIF6xZzGqWCF/FlwnInO4Hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":831301},"type":"module","engines":{"node":">=20"},"gitHead":"29325e0aa4b04cfde68f6252f50b8c4ae0e6d6d6","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.4.0_1775192580125_0.8720510860166948","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.4.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.4.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"939a958d02ee32cca8c11c2ad0936ee6142d7f2e","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.4.1.tgz","fileCount":124,"integrity":"sha512-oraUHRaqNJ4UThNe7qc8sr0m3oHLjtUNruHKWrkG4lcUt3CzopME8UW2oNIc1OQaivT/1TyxaNWRivsSICRnEQ==","signatures":[{"sig":"MEUCIAiJ62MWHy2Axhmh5559cU3/6+GfFPhXWgi10BpQ3nALAiEAue+Q/Kmn2ADk/bpt3hG7++aqkXwDFClzhXJ7otHqARU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":831301},"type":"module","engines":{"node":">=20"},"gitHead":"7e1a748b46ab27f8677b4be3478f96f52eb45004","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.4.1_1775194619270_0.25955664001490963","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@bradtaylorsf/alpha-loop","version":"1.4.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.4.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"55cbcca9372cb034b8234254459664c0805aa1f6","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.4.2.tgz","fileCount":124,"integrity":"sha512-OAjKdRUeQyFgeKDHg9NZlwCiaJWwpytVRmwmvN/ANamDaHCNXY3vrguLmGhJU+FBSs1xcV4WfBNHI+lPvQiuug==","signatures":[{"sig":"MEUCIAXkLkzj1gcZKkfR9645EaBjMMaSjEOcgWks+CADEf3fAiEA4Y0qXwWDrIW/CWYgpjUBAs/Mqx/abpho65vE9PsoCtU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":831900},"type":"module","engines":{"node":">=20"},"gitHead":"0a8f1f3155c402f7d49d2b48648c3e8c53c22ea7","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.4.2_1775196048435_0.07934264459327833","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@bradtaylorsf/alpha-loop","version":"1.4.3","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.4.3","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"6f996de4bd64a079a7b82fddc802d856b547abf8","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.4.3.tgz","fileCount":133,"integrity":"sha512-jSM76cgIw4iBsQ2C7k3C2M6hRLG6aQGb8iz4p324QkGB2rfEkU8l1a5Yo1BN4fEt5frnWyWvdGOLofTQdFML4A==","signatures":[{"sig":"MEUCIDtSfmeGwnI1TfSwZvCGhQbdAN3SeogXYCMzJpR3Q2+lAiEAqaHF+A0/CyTz67X42ycQWZolJrLsNmPee4VLAFp3JRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":986648},"type":"module","engines":{"node":">=20"},"gitHead":"313325d55cbc3f074da83b679d61fe9452593e8b","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.4.3_1775231800377_0.9815494430051641","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.5.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.5.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"93f4f0cf3b677e17c42308acbe4e9abc83bfe89e","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.5.0.tgz","fileCount":145,"integrity":"sha512-DbtzodGdd3MILcAL0lF+dXRJ7c0T+K9RG3J7IdkHBnPiHTWlZnmsHnruiIfpBaYY8USdbuDMiZOfF6yQg77coQ==","signatures":[{"sig":"MEYCIQCiCwzxqf3KMV1wiEiLIwwHmkMW2vkBYIQdKTfTWEfBNQIhAJxusz4ZmiZRwaUTa/kzS6JuWvKQm1e31zcMsQNXS+QZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1118687},"type":"module","engines":{"node":">=20"},"gitHead":"22f3cef0f034ad8b0ae929386633f881b2fddd48","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.5.0_1775276214036_0.21463491342334184","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.6.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.6.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"40615cd8c5f13a329e2f4b882af2a7b98ecf221e","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.6.0.tgz","fileCount":145,"integrity":"sha512-h3O6LYK8HhbVF7eHeFrdz21C26uLXYume/34mvz/dR5OkpTDgbKi3nLZl0TXmE6IEjXdCwF4+bkIM0h8MSX3fA==","signatures":[{"sig":"MEYCIQCwXZzhqxy67GIqe/MjxEA4P5Sxa4JB01TKVAaBB/YWbgIhAOc8gphwFtxF4rqR0MCYpwaBtHS8TQtISEDP/3UNp8PK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1184842},"type":"module","engines":{"node":">=20"},"gitHead":"35fd497d592f20ee11099bcbb98dd4c9a59e3211","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.6.0_1775286037326_0.09101467639610594","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.6.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.6.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"a1428ec125ba0e7c35f6882374e218aa233459f4","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.6.1.tgz","fileCount":145,"integrity":"sha512-ZyFzK1+i3EAlx/XjrArhOYpeUSofimVAohM2hWf5PxZz6GxUZL+dqFTJJrPH/b1soqdYAr4L0BBpEO4G3N5J3g==","signatures":[{"sig":"MEUCIAhcKweEohpsWWXto1ZZULOTZSaHgAairT4lMNTIdKiUAiEA5ktoUwsHOPVgxqiUeilekFALwug1y8IO2L/Hh6TZ3vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1190051},"type":"module","engines":{"node":">=20"},"gitHead":"4786cc4badd08fc2c4f03db815a5fe0f24a74364","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.6.1_1775325670494_0.44029160109351495","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.7.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.7.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"a111975159091e792e3b132bf94e8586210686d7","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.7.0.tgz","fileCount":145,"integrity":"sha512-Y1xLPUwOtfkIcwcpY6ZUztKwhUzi1bcsJbUkLt66E4s89Jk7WrgThblgPNqs6/Pgo0oI8CQxhm+GbXW+IhX52w==","signatures":[{"sig":"MEQCIAyFiiHCgilp5TX8UX1ONz53KVLtfacZDcprqkyR7qTcAiA03XqMVmHM0hXZQRTJf/N1+I2ZjksUVTo5zZ/zQJB7iA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1192434},"type":"module","engines":{"node":">=20"},"gitHead":"1e69281b69f1b19f165f1e66a563e46579176e2e","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.7.0_1775336074163_0.23599924742258827","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.7.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.7.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"9fd34053565078cf3b1bf3cee810addb1911f805","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.7.1.tgz","fileCount":145,"integrity":"sha512-wWQiF/TS3cFDbCQIiPMSPsgqy4rvTxlqsWSSHAYXV9fNAjKUsLElOPWyhGkRa5Y4KM0CZH2WRvwBi4jSbil22A==","signatures":[{"sig":"MEYCIQCXKnxgbcp8C2tmhkR2fFPge1ROQ4lmtW1HiMJM7w6TeQIhAP8SXYE0XqbQXw07xuVqqLwNYrGNsc5zTNn14l9tEoXM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1194367},"type":"module","engines":{"node":">=20"},"gitHead":"503f1ac13897b956e84bf2b903723629b2442a72","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.7.1_1775336403584_0.9107632026471086","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@bradtaylorsf/alpha-loop","version":"1.7.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.7.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"8b5c39848b7afae2d131259845f5c6ab145bc0ea","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.7.2.tgz","fileCount":145,"integrity":"sha512-zBN79gpPfcbPe+32ifTLMiXdYU/l2pkm8+46eng1o0gsUdBXMH0/7I0m32sp4MFxozpFM1JfvzAB8jWplGz8zQ==","signatures":[{"sig":"MEYCIQCjL52uKvFR8I1JyC3salyK1CirLnLozR3O30Vupt4gWAIhAN15Zj7tpusiuXX+37A4i+26vHQ09r+V8HqiIDO41QSM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1194612},"type":"module","engines":{"node":">=20"},"gitHead":"58ffffa555d821eab837e9fca277eb6cac31edf9","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.7.2_1775337187779_0.4609975641614834","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.8.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.8.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"5585fc1ac85c5dac794549b6b271f42ff0024523","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.8.0.tgz","fileCount":145,"integrity":"sha512-yAku7e0aGHsl+9UQd0zuHyRWa0srNf7UUjIzuBCEUFVbFpSlpuJ0WOcBU1J6ZN+L9QLqeGDIlmzpyKxJpRxtvg==","signatures":[{"sig":"MEUCIAQl2311xAmtFURXX3aOBPvOhJJMDZq2yZKzvvYshrFNAiEAr8Stcy38IipPOwNZtZ/KolJnxzPBVATBPnUD2maMFUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1194612},"type":"module","engines":{"node":">=20"},"gitHead":"969db1a57742f8133a4d2b09300ca376915c1172","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.8.0_1775352938630_0.8789264223069504","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.9.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.9.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"c249e517153981f008024881fe60a9f3760daea3","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.9.0.tgz","fileCount":151,"integrity":"sha512-cIBU5OXJybpE4NKP2dGkoPehQckVeJ3FUH4MtnKBH+5+IoIi+XgcRgREYkLkgLfWO01KYzp/x2Y9/ZPRaIwZXw==","signatures":[{"sig":"MEYCIQDTUiZq9cEsexxwQ+ZPGA3U6RlCWwYu6pjGeN2BDLgpYwIhAPP+TMU9k1EeyzCuXgqEt8/kkVyrN/TibVBnIppWb5BV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1275323},"type":"module","engines":{"node":">=20"},"gitHead":"d30cb067ff8d9d9a3157aad299be60054de6678c","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.9.0_1775780898836_0.4792241887808766","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.9.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.9.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"1ce40a2030b622d4f5b30373d89f28699b3dc72d","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.9.1.tgz","fileCount":151,"integrity":"sha512-e4o9VNrt+Kuu3ag78UNufOBXfsCnYa/cI8EgHBD79PuG+xf/jVX0qP8WuBbmllzEbRH2uRvIVPni9y8nfhoAaA==","signatures":[{"sig":"MEQCIF2uGeMHoHzUy8LYNPD//A5zujrt944RrHICAg12qDFgAiBbBRt9h322+TkmvKvBjpGeo7Ssj7n4lS/M4hdGiNFBvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1275323},"type":"module","engines":{"node":">=20"},"gitHead":"f45dca9856d9f1d7ea4dbc464c118b862314e084","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.9.1_1775781309130_0.6042333378794127","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"@bradtaylorsf/alpha-loop","version":"1.9.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.9.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"19a8746c628b7455483b0aab3b4643dfbc9ac70e","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.9.2.tgz","fileCount":169,"integrity":"sha512-w0cSqa5mVYuqFN1V3THH1x4p7qoQjay/UJGg/CUo/leSsPm++E3xNj0C55tHEjI6A8NSgLhFWYfJNz0FVHlU9w==","signatures":[{"sig":"MEQCIGs5AEP/xkD4kgsID9i9daJsDrCYYQ3VliQEwRi/z0sYAiB+k4nzHgUB6d8bc2z6LsDphcLjNZzgSR/NB4XdsrSGNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1353208},"type":"module","engines":{"node":">=20"},"gitHead":"5f247dae71570382c85f9cbd403a09df57b8fef4","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.9.2_1775786503554_0.7303995730936257","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.10.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.10.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"46c25c6499f576e341d7b44baa4698af73843fcb","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.10.0.tgz","fileCount":169,"integrity":"sha512-dkwwGcAu7TbxpIU/ht74V2UUoCKzvlnxroVytY0cncSeea5SvdkSINNKGqDfhV0jcgwEfKfhUT/ngSLlfLzugw==","signatures":[{"sig":"MEUCICjkHAAztQYy8ec/iO461D6P2LF2OXt6Vq3E77MwekthAiEA1lHwGuDllKxQEZ6hWDhC9XKlV2Ar2HYgOcpRFqlYasA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1357542},"type":"module","engines":{"node":">=20"},"gitHead":"4cf92ff78bea42c7d35ad53a5e4578a44694e132","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.10.0_1776194180942_0.09680879434332645","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.11.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.11.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"196f8a1a610cfcc2531e47e705a6bf3e31337b70","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.11.0.tgz","fileCount":172,"integrity":"sha512-0xNITkUeStInSeYNUNq3HpOKs19dGrMevKds+Maj/P6d2GmUHlJuViVYYa5Q4Yr4cbs0n2TbdpeQC/vaeXV79w==","signatures":[{"sig":"MEUCICr8rhG/N886KRMneQQyv62mZgAEZAJarCqy6OJEvYQEAiEA7nfo+PW9+upUjAF/LSEAW0MSd+xTCsmgET3YopLPY/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1370109},"type":"module","engines":{"node":">=20"},"gitHead":"186dff8d048f33441e07e867c2b1a4a9d13ae291","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.11.0_1776209007011_0.06391764897273577","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.12.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.12.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"1c5fcf34b1965399864923eddb320d22d4c39496","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.12.0.tgz","fileCount":175,"integrity":"sha512-PmfALDeDRNhKH6RC/6B46V6I+Ryqm9h1x1ogb3l3oloqScR7MvqJxk/4JsTM7CS4o7OYvw+iavTYpa3vcDhgOw==","signatures":[{"sig":"MEUCIQDXXDhhlYDNyzEU/SIQ+Gtdefagt8hu/muQyRJk+lDcpgIgdJEglYzMmLKJVRmWL+xH6mfo9cz4TKRKwI8JZ8GJ/e8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1391015},"type":"module","engines":{"node":">=20"},"gitHead":"328451e97bb257ff720f0d1f6e0ba8d112575991","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.12.0_1776699348663_0.5940518031115747","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.12.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.12.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"bc5b42e8614b03d6f74c487cf6e35547207fd86b","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.12.1.tgz","fileCount":175,"integrity":"sha512-0fCVQ7ZUT/N+UPykpPVJ8+t/iFhFVHtubKljkbdWqTpL2pnrJ4i9KAVaQCs8lPgaxsbHg/vaZnnNLM8Jgjhdig==","signatures":[{"sig":"MEQCIDxNWE6HMex11i60B5lbUsy7ywG4ea3coUjxfjZ9Z83hAiBqZ/x171stvnupnkmLNzItcCNZ1YBBC88YeSKsR+p90w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1391638},"type":"module","engines":{"node":">=20"},"gitHead":"d15d1aabf78ab8a31faaefc2355e9dc0e725fa15","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.12.1_1776699371726_0.9546831522033672","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.13.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.13.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"a189e807880239424e0a64784fbd5e023f40d95f","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.13.0.tgz","fileCount":175,"integrity":"sha512-ogqZrh7qVBtyeBFvAA6Lfx/LeLkTFv9TDE8Y+avMSaPgKBxTjsJHCPmki3aIkwgGqQcL4f/MC4OsZD0enNli7Q==","signatures":[{"sig":"MEUCIQCIqtJnclc6AO0K5Und1yYxx/WERVmMt4Il60XSzAPUGgIgG9QSpODM5YAtBODadJM/3hopLOZoTDoR9MMNPS9IJnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1397914},"type":"module","engines":{"node":">=20"},"gitHead":"e92f8793551c73a5dc249f03b3dee947ca2424ca","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.13.0_1776699393527_0.05803148741431463","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.13.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.13.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"79004c335a02de87eb043aa96369a1d73d5399b0","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.13.1.tgz","fileCount":175,"integrity":"sha512-vtExJNjo/JNfxBYOwcSFiDflOc/dkFCpMmr2QowFCOnsepU4Xlh5YlkMiY+3CJLkci4b/D3RcEC1qcI8cDtDNg==","signatures":[{"sig":"MEQCIFq+U1AbsyfnUbZPKeC4Ee6XtWXk8oImxvDG5g0a/Wm9AiBEcE8KGppBk8FbMikTDtMb6eq76l7CJn6SluEZNdeEUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1397987},"type":"module","engines":{"node":">=20"},"gitHead":"d5938a193d75011960e376ca1cfd9643b6ce8a8a","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.13.1_1776700127406_0.41191429058290363","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.14.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.14.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"09617caa62356f7095fe76ffa1fad967d989a66e","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.14.0.tgz","fileCount":181,"integrity":"sha512-aVicOjbbl3gkrwhaosE7VADknjaVq7cqKevqBApX8PY+lpyAxpcjlJEhxHIP41Rkd8OntPq3Pa0+9kJWH1ya+Q==","signatures":[{"sig":"MEUCIDJmSXtlsw5IY5KF8Ng30H8D11mMVu2Eiskd4SJa1mItAiEArUpMPvZbxbrqUZEJ4rtt233RU6xg5DSCxIGPIJ9X9OQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1454163},"type":"module","engines":{"node":">=20"},"gitHead":"209ad0081113cd1b295cae1369766afef941cefa","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.14.0_1776927541045_0.7121195781403913","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.14.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.14.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"1e4d4a7f8c1a79b294818e1dee4e777552caafd0","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.14.1.tgz","fileCount":211,"integrity":"sha512-S5tXQ8qKjGQG/0B18eCPoIo+IBUeHDvDMVdilvERTfAt55dO53SrrYiWHOHUOIz/TN35bwLcStNgcTsGaQQR1A==","signatures":[{"sig":"MEUCIEo8lchPEhdACYbwDbc5TbYpzWY355TQ6S44lHqRivbAAiEA63AI2Snm7sNOXUUqulNir5PEedMXfWsU67XGk7KfGr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1716211},"type":"module","engines":{"node":">=20"},"gitHead":"743b8a8f6d2c16f0881b62f4291efc5e82dd4101","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.14.1_1777703598883_0.9339209331407157","host":"s3://npm-registry-packages-npm-production"}},"1.14.2":{"name":"@bradtaylorsf/alpha-loop","version":"1.14.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.14.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"aa3f456db15cd52673c147922651d6fcbf665cf3","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.14.2.tgz","fileCount":211,"integrity":"sha512-3JkTA4bsH5jasHf6jM+zNAsidP9TNk37r1E3PIJxRO9wrSvHWUb0SqlT7XDI6EuY8+skNvS++5FoGHj7trgw4Q==","signatures":[{"sig":"MEUCIDpj3YdYIF5nh/9iIXadEzO70cteaXRqD8lhfXQLFJ1vAiEAzVQYDTAssyvIrQi6beK9muF05XxGSpLePXn3BQiz3i8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1716211},"type":"module","engines":{"node":">=20"},"gitHead":"7671d7aeaad85eb9c235455aaece971c2050b4f6","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.14.2_1778030931110_0.8960382927185828","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"b9d3a7220ead756b1bd721c45f78ec60a01a2650","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.0.tgz","fileCount":214,"integrity":"sha512-gl1PCVwYf9XzcE+8OXSq+xPlmNeC76yO1BRHoLTj6dhLVz9KNHGVmTpm4KaUln4ODvi+tWxxDjp6EPuPJoEDWw==","signatures":[{"sig":"MEUCIBlhuPjs1T+uA3ne67wa/e3vYLC32UMd8bHedrM7EGSKAiEArsRaDhHySB92+Q8dzgwKZUXInCQR+9FmUjYzAlwHD2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1747981},"type":"module","engines":{"node":">=20"},"gitHead":"c2fff6a1b444503f9bc7819d27c10d29998433ef","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.0_1778133650134_0.88593126275396","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"3978cb59293290c7adbb622d0b392feeb17e7fb2","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.1.tgz","fileCount":217,"integrity":"sha512-34rDy93d5n7AJX78tSv+35082MMCjKKtleDj1VkSAOmWz4vq4OD14i/kQtXctmL0qWh7JdGe7cXmMmGgf7cGag==","signatures":[{"sig":"MEUCID5YShJwpLIEzrZ3w9p/gA6GgvCtunBhZtp71sFroaYLAiEAzX8+rnWu4IihubyPiZ3vwUp0roMyWAATBwtDMKxTfAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1834324},"type":"module","engines":{"node":">=20"},"gitHead":"da1586f684f71e231012bba5f13348975b03f772","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.1_1778368732318_0.5510058302276988","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"e6c876e0ba93e87abf097d7b23072e6842eb9c26","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.2.tgz","fileCount":217,"integrity":"sha512-pQcyzkHzPGAhhOTr9+5eQwkJWrUMms9uyNKed8wr3ZMl81nVUsuJXfNXmaudHyDR8v4uLBeJ1Ywc2AN0pSqKRA==","signatures":[{"sig":"MEUCIQDFZeSnxvuj0Gv4iQSvlWgosqG+FUJx8u1w0KJsRmH4DgIgboIkvjrh5QBgM63yRswtC2cT1LTGr+sLRYkTVmkQh3I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1835091},"type":"module","engines":{"node":">=20"},"gitHead":"02c27fef84b0d885545bfb64a96103d69151ca51","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.2_1778729460629_0.17693943844292304","host":"s3://npm-registry-packages-npm-production"}},"1.15.3":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.3","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.3","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"77dc129f64e7e174691af3ce68293e5fbce5ed86","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.3.tgz","fileCount":217,"integrity":"sha512-IVfKjUXCFvfMMhaHy4kofFLjQGO6xn/kueqqcrlv2OEM+1nUYHwJ0eF1IJ/wBy7i5SA4ZkHEFs1PQfdgkINB2Q==","signatures":[{"sig":"MEUCIDDwsvUf6zq21TeiCiPFl97hTMHFQ7CLla8+bXPwTNvMAiEAmedzN1KtNfBdLI1CYwiWoAFwcnR/8oz6BkafRQ3zf24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1873542},"type":"module","engines":{"node":">=20"},"gitHead":"b40fb189a055a416b12b311ca575e5a66246842a","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.3_1778818206616_0.6766058666249863","host":"s3://npm-registry-packages-npm-production"}},"1.15.4":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.4","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.4","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"7aafb47bb1fd29126e34e8ebac21b4869ebcea58","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.4.tgz","fileCount":220,"integrity":"sha512-9P6QppMTPp3ZsycNWja5AnS9EhV2R+5A2gHl4EZsLC08iDjned5JESMBZdN0MA+w7fJcHQNtvIV7tiPMk6IjRw==","signatures":[{"sig":"MEYCIQClo8MOzEi8bCgJOfS65N/Dj3A74oh+J0/OV/oh7OkHjgIhALrc3TkTznl1bmr8cVKDMnYEUy+TIRSm53HsQphVoqpw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1992420},"type":"module","engines":{"node":">=20"},"gitHead":"d66e3fb6b7e367b4d53918f9be740252c413a804","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.4_1779515197880_0.3651620379476075","host":"s3://npm-registry-packages-npm-production"}},"1.15.5":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.5","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.5","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"ab81eb9cf3d3f299207fd1a235dcc666134fb464","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.5.tgz","fileCount":220,"integrity":"sha512-nrT8evL4ZrYjn3XkkzZJ5vZhiq58Ou6JwfInUTsTGc3VxBzNTytXRfpiqha0lQJ7vOv4ZCIPkKK+dnu7Pf6/Ew==","signatures":[{"sig":"MEUCIEp0cdT4m8jeGxKO4doqdVBk6+uR+q3gOeW3UfDs41c7AiEA3U+4PCAMJ+BH9uHQFCOJDEH62rzTrLFwaVrpcZ9nll4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1992420},"type":"module","engines":{"node":">=20"},"gitHead":"0dce68abb3443e6987577fd74562253e3be3a61d","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.5_1779760351806_0.7396112449304533","host":"s3://npm-registry-packages-npm-production"}},"1.15.6":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.6","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.6","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"83eee9328d695c7edf5af422791c0cf29a412387","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.6.tgz","fileCount":224,"integrity":"sha512-Wt4obcJFfnYzegshPkwzv8591XBjlYMG+njfD/8Yznh9CudG5RLDpO8UeQAcrLWxWtZ7BDx8arj0tdUwUexIeA==","signatures":[{"sig":"MEUCIBboSqItUH6qcX83mu38TytnLrVvMdbBIyuI2QFU5a+6AiEArHK/qfCW0FQ6aI1LxIy4OWuqf/sZ1/FNG0ZPXc6BnVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2036417},"type":"module","engines":{"node":">=20"},"gitHead":"3b2dd7a7d35f596b4c6a73a84ef052c414c69f10","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.6_1779777436387_0.746037472413337","host":"s3://npm-registry-packages-npm-production"}},"1.15.7":{"name":"@bradtaylorsf/alpha-loop","version":"1.15.7","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@1.15.7","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"5eeeea4e986f96b80c00bb39200b3688bfef6e87","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-1.15.7.tgz","fileCount":231,"integrity":"sha512-nFdWkOvC6VWUSCF0CfRDOa5TvWR1yGhIqGjGWIgEfYPk+uAepy2PmLtijl7j25H0tJTl7qYcR2nNjoi6MEphIA==","signatures":[{"sig":"MEUCIBd4xQkdMwSakipCvdk3BrzhaNyAsXuh9eGoV72fy1BdAiEAt94p2F+twrV3elY3o/eki8EVQPkbtVz6ExmLQLbsnxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@1.15.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2121430},"type":"module","engines":{"node":">=20"},"gitHead":"076c822d698f075cbdf2a7af1e62492952383391","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_1.15.7_1779815923877_0.37165669150313385","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@bradtaylorsf/alpha-loop","version":"2.0.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.0.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"827dd0f80a734d2a957b31909c54552c7140fa58","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.0.0.tgz","fileCount":231,"integrity":"sha512-dEcIEkWECrlVSjwvoWsQ1ATDwme+yPjzzpO0686NEHF0JGSR7Dxrq6Npo/7FUvtdtZH/H5DHCzd30VR3ty56Yg==","signatures":[{"sig":"MEYCIQCqKpDgYECtUbWawiaaCTlzA9sc3bTB/i2RIabzev1lYQIhAP1y3JNEkbFDZwCMkVKPra3HqXl6+Ej93iiWGvkMGZNa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2124848},"type":"module","engines":{"node":">=20"},"gitHead":"aee6f1aa67ff721c3c934f820f776ae0b50ad885","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.0.0_1779831611945_0.44669667568734805","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@bradtaylorsf/alpha-loop","version":"2.0.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.0.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"368f4803cbd7394afecf4199e3c2734485787631","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.0.1.tgz","fileCount":231,"integrity":"sha512-ms2nzIvVEsw3wpXKw043l+a/z5TmA7v1SHa6GVZKhxVlDe/sEqcpqhy6oEInMLMJb3mhX8DHVwTFQqwr1/1BAQ==","signatures":[{"sig":"MEUCICbBHzr+qhVxx3eIbKvqrnuT1KpTGINrQKhL0sn4yQ1hAiEA94tOcCGcclyYQxwngthNytJhn2zUGOMxNeY4nFyscAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2124848},"type":"module","engines":{"node":">=20"},"gitHead":"cfdb1680bb874d8967e306d347fbc9b19f1b0e45","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.0.1_1779832948986_0.6041460964933358","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@bradtaylorsf/alpha-loop","version":"2.0.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.0.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"decbd30d046adabe0fe730190367651772c56dd8","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.0.2.tgz","fileCount":231,"integrity":"sha512-CxbM7Kl1Z3m0XJ9ElB8UpqrN63jiQfrbhbgClIYbMe3kjb1HVE+NnyZZzDbjsGLNQ/3+BOL5v16ulrTFaFuKbw==","signatures":[{"sig":"MEQCICALzLulHGX8/HZ9w1jhSVeZwDc7yIuMYYW6XiF6RdjDAiBr8PCa7Eagrb0NaC+L4CnC5hmjeMF7/l3/rXzbkGrjrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2124848},"type":"module","engines":{"node":">=20"},"gitHead":"4f8b23dbb1bf40a0e6820e3f74555c22dbe1a9f2","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.0.2_1779833493553_0.17078397204719598","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@bradtaylorsf/alpha-loop","version":"2.0.3","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.0.3","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"6239b4fc98d931ffff635f5e981d82d0d3527992","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.0.3.tgz","fileCount":231,"integrity":"sha512-Vtxl30l87zXkUKwdEJWpYbky+xktg1tA/iPs1W7UrpQW2V8+Eng34SZQo6iiHvzvz16VWE4JXUIUsfdci8iG5Q==","signatures":[{"sig":"MEYCIQDkLuEnWS18H2opO20r+PDzAsCTkD2TGgr1XtUxyBZ13AIhAM4jDwfebDMAF2+JQqUiCo2MbquI/XfNKXAP87kQ3T7k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2124848},"type":"module","engines":{"node":">=20"},"gitHead":"fc5e93eac2e6c5b42579fd53220f8dd43bd0a870","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.0.3_1779833951132_0.7789986930084396","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@bradtaylorsf/alpha-loop","version":"2.0.4","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.0.4","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"e2886ebd1bcf8513a9126b5b1e365c90b1a68b53","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.0.4.tgz","fileCount":231,"integrity":"sha512-18Bdfh6T/InvJe4ZJP6Rt0KdHtVnnJHNhoTs3OS5WKgHuZxp/eVWYclE7Ea/C0pWenpmCHDtWtr99d6hxOQbDA==","signatures":[{"sig":"MEUCIQCSHSn4ZpGk9pgBVKl+ymBQiqheZBVjAkaXY7UCr/gzSQIgJGIwmy1Mh8nuoYjZySB+Xck5LH8sCwZ6ngJqPp00G54=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2124848},"type":"module","engines":{"node":">=20"},"gitHead":"ddb9de02553985e8761df2310a25af2880bd5110","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.0.4_1779834067715_0.40440022942944087","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@bradtaylorsf/alpha-loop","version":"2.0.5","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.0.5","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"cd1a0cef04102145f5f5963433f61c13f07fbdfe","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.0.5.tgz","fileCount":231,"integrity":"sha512-3808KMmp6QumIEETKfGJFsIpS6AdG5/+cCgtxidLz8K1nJQFfuk9DEZoJmu4Nf8WqQ7omrxtP1tdRGnIrYxX1A==","signatures":[{"sig":"MEQCIG+UJRduiPpjRpFHfsv4nOEPEV/FsHuyhTpax2meEqb8AiAwVvKqxW2FYZR82nKfCoBrVCQD1A2WRtSit4lWHmI/DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2124945},"type":"module","engines":{"node":">=20"},"gitHead":"a78efef391d2de99e54219f7bc585487b97a1d3a","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","release":"node scripts/deploy.mjs","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","release:watch":"node scripts/release-watch.mjs","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.0.5_1779850615972_0.8961260854799964","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@bradtaylorsf/alpha-loop","version":"2.1.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.1.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"dd62b1aac8e6503e9e0283c230ca64b097486a0f","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.1.0.tgz","fileCount":238,"integrity":"sha512-UCGAM9sbBHQNvcP2wdRa82pzIYSs2BtmHUUDO/6d/MGFrcwwcdQWtGTXmTvfer43A4tNaen+yW+RUe2UjrsIvg==","signatures":[{"sig":"MEUCIDkil67kbhb+4l17oesTYCMb2EmKF6S18QKY/0kMwnypAiEA5Cw6fL4QE40BqYcN/FnY++slYjYGHKFceZrgzVZcam8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2169535},"type":"module","engines":{"node":">=20"},"gitHead":"b65011a73a745ac5ac373415a1a310de87ac41b6","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","release":"node scripts/deploy.mjs","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","release:watch":"node scripts/release-watch.mjs","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.1.0_1779938939665_0.6883155382042978","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@bradtaylorsf/alpha-loop","version":"2.2.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.2.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"5d9bf707102176948e45c09cae84ea1ea08dea32","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.2.0.tgz","fileCount":238,"integrity":"sha512-vbtyfF53R/YETgKsMU+uamxEoC7eGhBjuV7jbgWoGGbOvtOZb7Ywcgx75yQbx9NmS5xLPFL3l2QKlpXdlEWLuQ==","signatures":[{"sig":"MEUCIAFQlrYw643W0Q2MZxhX7eLNj7nQaxHi/r5BaYXOAl+gAiEAq2fdbZWK7lpf4ZVFk0qfavfz3D0296roMoK+xcw2Xic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185521},"type":"module","engines":{"node":">=20"},"gitHead":"6246d5d0c52d8e022a9f5bcf1da553939ac183ab","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","release":"node scripts/deploy.mjs","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","release:watch":"node scripts/release-watch.mjs","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.2.0_1780195710894_0.7772069109820234","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@bradtaylorsf/alpha-loop","version":"2.3.0","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.3.0","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"7a779eb5a97a70ca33a4cd475c548a8239d67c49","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.3.0.tgz","fileCount":262,"integrity":"sha512-OBQJlVJqLbJxtVI092c1/HygX1ieZfWKopUG7v3BBDVmSXPG5DPOGerGkP8BoRLYLQX4DoWlAgbgu6fH4rGocw==","signatures":[{"sig":"MEUCIQCjtcXTLk5rdfshy8kqYwqlxE55Hq4AWVnXVofiZ/DZXAIgBsOwYu8jVRptPTg4AtE7Kzx0Nm2BorkulwHMQqOWMcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2778922},"type":"module","engines":{"node":">=20"},"gitHead":"ad393b4ed6aa4443130ebcf5511f2f5059cf6a30","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","release":"node scripts/deploy.mjs","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","release:watch":"node scripts/release-watch.mjs","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.3.0_1781228161264_0.4965702377576793","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@bradtaylorsf/alpha-loop","version":"2.3.1","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.3.1","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"65e54d35bf9a763f24d42ef7583acf74806c5df2","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.3.1.tgz","fileCount":262,"integrity":"sha512-9GILfANXUKpd39X+fas0lp3vHGpyH7yZZxeiiL1RfNZ6Ev3HEHtF5u5URDMBeDE3v7/BFl+kb32TOA/Q3Vxu2g==","signatures":[{"sig":"MEUCIGvvsArZ3jeRJx4FH8T+Q2DzZjRPHgZxycTqJMXUeGjaAiEA7PBzIPpjwVgBmblM9vHkPFvM89beXzCMnUbyORe6iHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2778922},"type":"module","engines":{"node":">=20"},"gitHead":"f10ca808e4dced1d7b48bac7ee54a899861fc067","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","release":"node scripts/deploy.mjs","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","release:watch":"node scripts/release-watch.mjs","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.3.1_1781231159205_0.30477036927074974","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@bradtaylorsf/alpha-loop","version":"2.3.2","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"author":{"name":"Bradley Taylor"},"license":"MIT","_id":"@bradtaylorsf/alpha-loop@2.3.2","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"bin":{"alpha-loop":"dist/cli.js"},"dist":{"shasum":"a711d121b668c90e6f577eabd3abdc87da0985ea","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.3.2.tgz","fileCount":262,"integrity":"sha512-Cczh6/pWRwGr1HEOcmq3NRqLIinCNx+JyKP6TaMAhO5lhaP97CjFMBZQLM8WZW/rgeNsuaoFjU0VClF1QVM1Zw==","signatures":[{"sig":"MEUCIQCqV356nAIciXF8PVRK/P2KtzMZO4/xjw0M2Q97X61IoAIgHcWZ5gTZJl4Div1i0eBQIvOaEmT4Q3S2ujBG/hXCM40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2782586},"type":"module","engines":{"node":">=20"},"gitHead":"014b3d658a7a1eeadde8b45758cd7d3afb981a76","scripts":{"dev":"tsx src/cli.ts","test":"jest --runInBand","build":"tsc","release":"node scripts/deploy.mjs","postbuild":"chmod +x dist/cli.js","test:unit":"jest --runInBand","test:watch":"jest --watch","release:watch":"node scripts/release-watch.mjs","prepublishOnly":"pnpm build"},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"repository":{"url":"git+https://github.com/bradtaylorsf/alpha-loop.git","type":"git"},"_npmVersion":"10.8.2","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","yaml":"^2.8.3","commander":"^14.0.3","@inquirer/prompts":"^8.3.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.0","devDependencies":{"tsx":"^4.6.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","typescript":"^5.2.2","@types/jest":"^29.5.11","@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/alpha-loop_2.3.2_1785038167782_0.06658779678909532","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@bradtaylorsf/alpha-loop","version":"2.4.0","description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","type":"module","packageManager":"pnpm@9.0.0","bin":{"alpha-loop":"dist/cli.js"},"scripts":{"build":"tsc","postbuild":"chmod +x dist/cli.js","dev":"tsx src/cli.ts","test":"jest --runInBand","test:unit":"jest --runInBand","test:watch":"jest --watch","prepublishOnly":"pnpm build","release":"node scripts/deploy.mjs","release:watch":"node scripts/release-watch.mjs"},"keywords":["ai","agent","automation","development","loop","claude","codex","github"],"engines":{"node":">=20"},"author":{"name":"Bradley Taylor"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bradtaylorsf/alpha-loop.git"},"homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"dependencies":{"@inquirer/prompts":"^8.3.2","commander":"^14.0.3","yaml":"^2.8.3","zod":"^4.3.6"},"devDependencies":{"@types/jest":"^29.5.11","@types/node":"^20.9.0","jest":"^29.7.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","tsx":"^4.6.0","typescript":"^5.2.2"},"_id":"@bradtaylorsf/alpha-loop@2.4.0","gitHead":"be649607d70bd120a461f473a56eb2771bf9b1a9","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-OusXxLkpPM5pjFFbS0pJ/FTO3+QWMgM4+8mPdA4BijBdauYmHNFwIx+YUF761JIT2uXdR5/gOrVKvlnnlTSHtA==","shasum":"f8b996729ab127e7dd121c80e3100e972b3d3ac6","tarball":"https://registry.npmjs.org/@bradtaylorsf/alpha-loop/-/alpha-loop-2.4.0.tgz","fileCount":265,"unpackedSize":2842902,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtaylorsf%2falpha-loop@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDVr9EEIHEBRA0Gif60g4CsvwqFodE0od57fcUSpxUzOAiEAxUNwLg8PbGrrqme8t7XQGZTBtd+irDs/ATlr/fYkpKA="}]},"_npmUser":{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"},"directories":{},"maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/alpha-loop_2.4.0_1786417344782_0.43267954835325617"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-01T06:04:37.024Z","modified":"2026-08-11T03:02:25.373Z","1.0.0":"2026-04-01T06:04:37.299Z","1.0.1":"2026-04-02T01:55:11.439Z","1.1.0":"2026-04-02T03:26:56.058Z","1.1.1":"2026-04-02T03:34:30.905Z","1.1.2":"2026-04-02T03:42:53.414Z","1.1.3":"2026-04-02T03:44:09.754Z","1.2.0":"2026-04-02T03:50:34.109Z","1.3.0":"2026-04-02T23:49:55.240Z","1.4.0":"2026-04-03T05:03:00.354Z","1.4.1":"2026-04-03T05:36:59.501Z","1.4.2":"2026-04-03T06:00:48.621Z","1.4.3":"2026-04-03T15:56:40.556Z","1.5.0":"2026-04-04T04:16:54.218Z","1.6.0":"2026-04-04T07:00:37.523Z","1.6.1":"2026-04-04T18:01:10.691Z","1.7.0":"2026-04-04T20:54:34.317Z","1.7.1":"2026-04-04T21:00:03.776Z","1.7.2":"2026-04-04T21:13:07.963Z","1.8.0":"2026-04-05T01:35:38.824Z","1.9.0":"2026-04-10T00:28:19.091Z","1.9.1":"2026-04-10T00:35:09.301Z","1.9.2":"2026-04-10T02:01:43.745Z","1.10.0":"2026-04-14T19:16:21.134Z","1.11.0":"2026-04-14T23:23:27.174Z","1.12.0":"2026-04-20T15:35:48.889Z","1.12.1":"2026-04-20T15:36:11.941Z","1.13.0":"2026-04-20T15:36:33.714Z","1.13.1":"2026-04-20T15:48:47.660Z","1.14.0":"2026-04-23T06:59:01.202Z","1.14.1":"2026-05-02T06:33:19.085Z","1.14.2":"2026-05-06T01:28:51.358Z","1.15.0":"2026-05-07T06:00:50.316Z","1.15.1":"2026-05-09T23:18:52.503Z","1.15.2":"2026-05-14T03:31:00.827Z","1.15.3":"2026-05-15T04:10:06.851Z","1.15.4":"2026-05-23T05:46:38.085Z","1.15.5":"2026-05-26T01:52:32.049Z","1.15.6":"2026-05-26T06:37:16.602Z","1.15.7":"2026-05-26T17:18:44.101Z","2.0.0":"2026-05-26T21:40:12.178Z","2.0.1":"2026-05-26T22:02:29.234Z","2.0.2":"2026-05-26T22:11:33.730Z","2.0.3":"2026-05-26T22:19:11.298Z","2.0.4":"2026-05-26T22:21:07.957Z","2.0.5":"2026-05-27T02:56:56.146Z","2.1.0":"2026-05-28T03:28:59.975Z","2.2.0":"2026-05-31T02:48:31.089Z","2.3.0":"2026-06-12T01:36:01.436Z","2.3.1":"2026-06-12T02:25:59.437Z","2.3.2":"2026-07-26T03:56:07.994Z","2.4.0":"2026-08-11T03:02:25.014Z"},"bugs":{"url":"https://github.com/bradtaylorsf/alpha-loop/issues"},"author":{"name":"Bradley Taylor"},"license":"MIT","homepage":"https://github.com/bradtaylorsf/alpha-loop#readme","keywords":["ai","agent","automation","development","loop","claude","codex","github"],"repository":{"type":"git","url":"git+https://github.com/bradtaylorsf/alpha-loop.git"},"description":"Agent-agnostic automated development loop: Plan → Build → Test → Review → Ship","maintainers":[{"name":"bradtaylorsf","email":"bradtaylorsf@gmail.com"}],"readme":"# Alpha Loop\n\nAgent-agnostic automated development loop. Fetches issues from your GitHub project board (optionally filtered by milestone), implements them with an AI coding agent, runs tests, reviews the code, and creates PRs — then moves to the next issue until all matching issues are done.\n\n**The Loop:** Plan -> Build -> Test -> Review -> Verify -> Ship -> Learn -> Improve\n\n## Installation\n\n```bash\n# Install globally\nnpm install -g @bradtaylorsf/alpha-loop\n\n# Or run directly\nnpx @bradtaylorsf/alpha-loop\n```\n\n### Prerequisites\n\n- **Node.js 20+**\n- **git** — for worktree isolation\n- **[GitHub CLI](https://cli.github.com/)** (`gh`) — authenticated with `gh auth login`\n- **AI agent CLI** — set `agent` in your config to one of:\n  - [Claude Code](https://claude.ai/code) (`claude`) — default\n  - [Codex](https://developers.openai.com/codex/cli/reference) (`codex`)\n  - [OpenCode](https://github.com/sst/opencode) (`opencode`)\n- **[Playwright CLI](https://www.npmjs.com/package/@playwright/cli)** (optional) — for live verification with screenshots\n\n## Quick Start\n\n### Start With One Prompt\n\nIf you already use a coding harness such as Claude Code, Codex, or OpenCode, the fastest path is to ask it to bootstrap Alpha Loop for the current repo:\n\n```text\nInstall @bradtaylorsf/alpha-loop globally, inspect this repository, and set it up for Alpha Loop.\n\nPlease:\n1. Confirm Node.js, git, GitHub CLI auth, and my coding-agent CLI are available.\n2. Run alpha-loop init from the repo root so it creates or refreshes .alpha-loop.yaml, issue templates, labels, skills/templates, .alpha-loop/vision.md, and .alpha-loop/context.md.\n3. Analyze the codebase and update the generated settings so test_command, build/dev commands, base branch, agent, model/routing, and web_app verification fit this project.\n4. Check whether this GitHub repo has open issues.\n5. If issues exist, run alpha-loop triage and alpha-loop roadmap --queue, then recommend the first safe loop command to run.\n6. If no useful issues exist, propose a small starter epic group with clear acceptance criteria, or recommend one starter issue that Alpha Loop can implement safely.\n7. Do not run alpha-loop run until I approve the first loop target.\n```\n\nThat prompt lets the harness do the setup work while keeping the first autonomous run as an explicit human decision.\n\n```bash\n# 1. Initialize — runs full onboarding (config, vision, scan, sync)\ncd your-project\nalpha-loop init\n\n# 2. Edit .alpha-loop.yaml if needed (agent, model, test_command, etc.)\n\n# 3. Run the loop — you'll be prompted to pick an epic or milestone\nalpha-loop run\n\n# Or target a specific milestone directly\nalpha-loop run --milestone \"v1.0\"\n\n# Or process one ready issue directly\nalpha-loop run --issue 42\n```\n\n### Recommended Epic-First Flow\n\nFor planned feature work, use epics as the unit you schedule and ship:\n\n1. `alpha-loop triage` reviews open issues, proposes cleanup, and groups related ready issues into parent epics with ordered child checklists.\n2. `alpha-loop roadmap` schedules parent epic issues into milestones, while still scheduling standalone issues that are not part of an epic.\n3. `alpha-loop run --epic <N>` ships the epic's child issues in checklist order. Agents working on each child issue receive the parent epic goal, acceptance criteria, and sibling checklist as context.\n4. `alpha-loop roadmap --queue` recommends the next ordered epic queue, explains blockers and risks, and prints the exact `alpha-loop run --epics ...` command.\n5. `alpha-loop run --epics <A,B,C>` runs several parent epics back-to-back in that exact order, with a separate session branch and PR for each epic.\n6. `alpha-loop run --verify-only <N>` re-runs the epic verification pass when you need to re-check shipped child issues against the parent acceptance criteria.\n\nUse `alpha-loop run --issue <N>` when you need to restart or process exactly one ready issue. If that issue appears in exactly one open parent epic checklist, the agent receives that parent epic context and the resulting PR still includes `Part of #<epic>`; if multiple open epics reference it, Alpha Loop exits instead of guessing.\n\nMilestones answer \"when should this epic ship?\" The epic checklist answers \"what child issues ship, and in what order?\"\n\n## How It Works\n\nAlpha Loop implements a 12-step pipeline for each issue:\n\n1. **Status Update** — Labels issue `in-progress`, assigns to you, updates project board\n2. **Worktree** — Creates an isolated git worktree so work doesn't conflict with other issues\n3. **Plan** — Agent analyzes the issue and enriches it with implementation details\n3b. **Fetch Comments** — Loads issue comments so the agent has the full conversation context\n4. **Implement** — Agent writes the code, guided by project vision, context, comments, and learnings from previous issues\n5. **Test + Retry** — Runs your test command; if tests fail, agent fixes and retries (up to `max_test_retries`)\n6. **Verify + Retry** — Starts your dev server, uses playwright-cli to test the feature like a real user, takes screenshots\n7. **Review** — A review agent reads the diff, checks for gaps, security issues, and missing wiring — fixes what it can\n8. **Learn** — Extracts learnings (patterns, anti-patterns, what worked/failed) and commits them in the issue worktree\n9. **Create PR** — Opens a PR with the implementation, learning artifact, test results, review summary, and verification status\n9b. **Assumptions** — Agent summarizes assumptions and decisions made, posts as a comment on the issue for user validation\n10. **Update Issue** — Posts results as a comment, updates labels\n11. **Auto-Merge** — Merges the PR to the session branch (if enabled)\n12. **Cleanup** — Removes the worktree\n\nAfter all issues are processed, Alpha Loop:\n1. **Auto-captures failures** as eval cases for regression testing\n2. Generates a **session summary** aggregating learnings across issues when a session branch is being finalized\n3. Runs a **post-session code review** on the full session diff to catch cross-issue integration problems\n4. Creates the **session PR** with all findings included\n\n### Milestone-Based Workflow\n\nWhen you start the loop interactively, Alpha Loop shows open epics above milestones and lets you pick which target to work on:\n\n```\n  Open Epics\n\n  1  Multi-tenant support #165 (0/7 done · milestone v1.0)\n\n  Open Milestones\n\n  2  v1.0 — MVP (5 open, 3/8 done · due 2026-04-15 · 1 scheduled epic)\n  3  v1.1 — Polish (10 open, 0/10 done)\n\n  0  All ready issues (no filter)\n\n  Select [0-3]: 1\n```\n\nThis lets you plan work in GitHub milestones and control exactly how much the loop processes per session. You can also pass `--milestone \"v1.0\"` to skip the prompt, or set `milestone: v1.0` in your config file. If that milestone has exactly one open parent issue labeled `epic`, Alpha Loop processes that epic's checklist; if it has multiple scheduled epics, it exits with their numbers and asks you to choose with `--epic <N>`. Use `--skip-epic --milestone \"v1.0\"` to force the flat milestone issue flow.\n\n### Session Branches\n\nWhen `auto_merge` is enabled (default), Alpha Loop creates a session branch (e.g., `session/20260331-002240`) and merges each issue's PR into it. This keeps your main branch clean until you're ready to merge the whole session.\n\n### Learnings\n\nEach completed issue produces a learning file in `.alpha-loop/learnings/` that is committed with that issue's implementation PR. It includes:\n- What worked and what failed\n- Reusable patterns discovered\n- Anti-patterns to avoid\n- Suggested skill/prompt updates\n\nThese learnings are automatically fed into future implementation prompts, so the agent gets smarter over time.\n\n### Self-Improvement (`alpha-loop review`)\n\nRun `alpha-loop review` to trigger the self-improvement loop. It reads all accumulated learnings, computes metrics (success rate, avg retries, common failures), gathers current agent/skill definitions, and asks the configured agent to propose targeted improvements:\n\n- **Agent prompts** — bake in recurring patterns, eliminate anti-patterns\n- **Skill definitions** — add/update skills based on what consistently works or fails\n- **Testing environment** — fix Playwright config, port conflicts, auth state, data seeding issues\n- **Harness configuration** — tune timeouts, retries, and defaults\n\nWithout `--apply`, proposals are saved to `learnings/proposed-updates/` for review. With `--apply`, changes are written and a draft PR is created.\n\n### Eval System (`alpha-loop eval`)\n\nAlpha Loop includes a self-improving eval system inspired by [Meta-Harness](https://arxiv.org/abs/2603.28052) (Lee et al., 2026). It captures real failures as eval cases and tracks composite scores over time to measure whether prompt/skill changes actually help. See the [Comprehensive Eval Guide](.alpha-loop/evals/GUIDE.md) for tutorials, use cases, and how-tos.\n\n```bash\n# Capture failures from recent sessions as eval cases\nalpha-loop eval capture\n\n# Capture quality failures from successful sessions (false positives)\nalpha-loop eval capture --quality\nalpha-loop eval capture --quality 190 --session my-session\n\n# Run the eval suite and compute composite score\nalpha-loop eval run\n\n# View score history, Pareto frontier, or compare runs\nalpha-loop eval scores\nalpha-loop eval pareto\nalpha-loop eval compare 1 2\n\n# Greedy search over model configurations per pipeline step\nalpha-loop eval search --models \"haiku,sonnet,opus\"\n\n# Estimate cost before running\nalpha-loop eval estimate\n\n# Compare two config files side-by-side\nalpha-loop eval compare-configs config-a.yaml config-b.yaml\n\n# Apply a single routing profile before running\nalpha-loop eval run --profile hybrid-v1\n\n# Matrix run: replay the routing-regression set under every profile and emit a side-by-side report\n# Defaults to a dry-run (validates profiles and case structure). Pass --execute to run pipelines for real.\nalpha-loop eval run --matrix --tags routing-regression\nalpha-loop eval run --matrix --profiles \"all-frontier,hybrid-v1\" --out eval/reports\nalpha-loop eval run --matrix --tags routing-regression --execute  # real runs (see CASE_FORMAT.md)\n```\n\nEval cases live in `.alpha-loop/evals/` and scores are appended to `scores.jsonl` (Git-friendly, append-only). The composite score formula is pass-rate primary with lightweight penalties for retries and duration. Recovered session results are flagged and excluded from aggregate scoring. Real API costs (tokens, USD) are tracked per case from agent output and used for the Pareto frontier.\n\nStep-level evals test individual pipeline stages (plan, implement, test, test-fix, review, learn, skill) and run in seconds using LLM-judge and keyword checks:\n\n```bash\n# Run only step-level evals (fast, cheap)\nalpha-loop eval --suite step\n\n# Run evals for a specific step\nalpha-loop eval --suite step --step review\n\n# Convert between AlphaLoop and skill-creator eval formats\nalpha-loop eval convert --direction to-skill\nalpha-loop eval convert --direction from-skill --input path/to/evals.json\n\n# Import SWE-bench cases from HuggingFace (requires Python + datasets)\nalpha-loop eval import-swebench --count 10 --repo \"django/django\"\n```\n\n### Evolve (`alpha-loop evolve`)\n\nThe evolve command runs a Meta-Harness-style optimization loop: a proposer agent reads full execution traces, scores, and source code, then proposes targeted changes to prompts, skills, or config. Changes are evaluated against the eval suite — improvements are kept, regressions are reverted (autoresearch keep/discard pattern).\n\n```bash\nalpha-loop evolve                         # Run up to 5 iterations\nalpha-loop evolve --max-iterations 10     # Run 10 iterations\nalpha-loop evolve --continuous            # Run until manually stopped (Ctrl-C)\nalpha-loop evolve --surface prompts       # Only modify agent prompts (safest)\nalpha-loop evolve --surface all           # Modify prompts + pipeline code (riskier)\nalpha-loop evolve --resume                # Resume from a previous evolve session\nalpha-loop evolve --dry-run               # Preview without changes\n```\n\n#### Routing promotion/demotion (`alpha-loop evolve routing`)\n\nPropose per-stage routing changes (frontier → local, or revert to fallback) as draft PRs, based on the metrics aggregated by `alpha-loop report routing` plus the matrix eval.\n\nA stage is promoted to its local candidate when (over ≥30 runs): cost-per-issue savings ≥ 40%, pipeline success delta ≥ −3%, and tool-error rate < 2%. Promotions require a matrix eval run within the last 7 days (`alpha-loop eval --matrix --execute`).\n\n```bash\nalpha-loop evolve routing                   # Propose promotions as a draft PR\nalpha-loop evolve routing --dry-run         # Preview without writing config\nalpha-loop evolve routing --demote build    # Manually revert a stage to fallback\n```\n\nEvery promotion/demotion is appended to `.alpha-loop/learnings/routing-history.md`. PR bodies include a `git revert` rollback snippet plus the previous YAML fragment.\n\n### Batch Mode\n\nBy default, Alpha Loop processes issues one at a time — each issue gets its own plan, implement, test, and review agent calls. Batch mode combines multiple issues into single agent calls, dramatically reducing overhead:\n\n```bash\n# Process issues in batches of 5 (default)\nalpha-loop run --batch\n\n# Custom batch size\nalpha-loop run --batch --batch-size 3\n```\n\n**How it works:** If a milestone has 13 issues, batch mode processes them in 3 rounds:\n\n| Batch | Issues | Agent Calls |\n|-------|--------|-------------|\n| Batch 1 | #1-#5 | 1 plan + 1 implement + 1 review |\n| Batch 2 | #6-#10 | 1 plan + 1 implement + 1 review |\n| Batch 3 | #11-#13 | 1 plan + 1 implement + 1 review |\n\nEach batch goes through the full pipeline:\n1. **Batch plan** — One agent call plans all issues, writing per-issue plan JSONs\n2. **Batch implement** — One agent call implements all issues, committing per-issue\n3. **Test** — Runs the test suite once (with retry loop if needed)\n4. **Batch review** — One agent call reviews the entire diff for all issues\n5. **PR** — Creates one PR that closes all issues in the batch\n6. **Per-issue updates** — Each issue gets individually updated with labels, comments, and PR link\n\nThis reduces agent calls from ~3-4 per issue to ~3 per batch. For 5 issues, that's 3 agent calls instead of 15-20.\n\nOr set it permanently in `.alpha-loop.yaml`:\n\n```yaml\nbatch: true\nbatch_size: 5\n```\n\n### Quick Mode\n\nQuick mode is the middle ground between sequential and batch mode — built for epics where you want speed without losing per-issue context isolation:\n\n```bash\n# Run an epic in quick mode\nalpha-loop run --epic 42 --quick\n```\n\n**How it works:** One shared worktree is created for the whole run (one branch, one dependency install). Then each issue gets its own fresh agent sessions for plan + implement + commit — so the loop runs *plan, build, plan, build, plan, build* — and everything else is deferred to a single finalize pass at the end:\n\n1. **Per issue** — Plan agent, implement agent, commit (fresh agent context per issue, no context bleed between issues)\n2. **Finalize: test** — Runs the test suite once with the usual agent fix loop\n3. **Finalize: PR** — Creates one PR for all issues and auto-merges it into the session branch\n4. **Epic verification** — The epic verification pass runs as usual when the checklist completes\n5. **Post-session review** — The existing holistic session review (with fix loop) covers the whole diff\n6. **Epic-level learnings** — One learning artifact is extracted for the whole run (fed by the review findings and verification outcome) and committed into the session PR\n\nCompared to sequential mode, this drops per-issue tests, review, verify, learnings, PR, and merge round-trips. Compared to batch mode, each issue still gets a dedicated agent session, so quality holds up on larger epics. If the deferred test pass fails after the fix attempts, the PR is left open and unmerged, the shared worktree is preserved for recovery, and epic verification is skipped.\n\nOr set it permanently in `.alpha-loop.yaml`:\n\n```yaml\nquick: true\n```\n\n### Crash Recovery (`alpha-loop resume`)\n\nIf the loop hangs or crashes mid-session, work can be stranded on local branches with no PR. Run `alpha-loop resume` to recover:\n\n1. Reads durable `.alpha-loop/sessions/<session>/session.json` manifests and crash markers first, then falls back to scanning local `agent/issue-*` branches with commits but no open PR\n2. Pushes each branch to origin\n3. Runs code review\n4. Creates WIP PRs, marks issues `In Review`, and updates the session PR with a verification caveat\n5. Regenerates missing learning artifacts and the aggregate session summary from recovered session results\n\nRecovered PRs are written with `recoveryMode: \"resume\"` and are not marked complete. `resume` does not rerun the project test suite or final smoke tests, so verify recovered work before merging.\n\nUse `--issue <N>` to resume a specific issue.\n\n`alpha-loop history <session>` shows both unrecovered `crash-<N>.json` markers and recovered result files separately from normal successes and failures.\nDurable session manifests also show active, paused, waiting-for-feedback, QA-requested, resumed, completed, failed, and cleaned-up states, including the saved branch needed to recreate a missing worktree.\n\n### Feedback Ingestion (`alpha-loop feedback ingest`)\n\nAdapters for Slack, Teams, Discord, website forms, or custom services can send human feedback back into Alpha Loop without hard-coding those tools into the core loop. Ingestion writes a canonical GitHub comment with a hidden machine-readable marker, records an idempotency file under `.alpha-loop/feedback/ingested-events/`, classifies the feedback, and updates any matching session manifest.\n\n```bash\n# Structured JSON from stdin\ncat feedback.json | alpha-loop feedback ingest --json\n\n# JSON payload or plain body text from a file\nalpha-loop feedback ingest --body-file feedback.json\n\n# Record a resume request without running resume immediately\nalpha-loop feedback ingest --body-file feedback.json --request-resume\n```\n\nPayload fields include `repo`, `issueNumber`, `prNumber`, `sessionId`, `source`, `externalEventId`, `externalThreadId`, `externalMessageId`, `author`, `body`, `attachments`, `eventTimestamp`, `classification`, and `resumeRequested`. Duplicate external event ids are reported as already processed instead of creating another GitHub comment.\n\n### Screenshots\n\nDuring live verification, the agent takes screenshots at key states and saves them to `.alpha-loop/sessions/<name>/screenshots/issue-<N>/`. These are kept locally (not committed to git) for debugging.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `alpha-loop init` | Full onboarding: config, templates, vision, scan, sync, commit |\n| `alpha-loop run` | Fetch matching issues, process them all, then exit |\n| `alpha-loop run --dry-run` | Preview without making changes |\n| `alpha-loop run --issue <N>` | Process exactly one open ready issue; child issues inherit one unambiguous parent epic context |\n| `alpha-loop run --epic <N>` | Process an epic — its sub-issues in checklist order, auto-verify on completion (see [docs/epics.md](docs/epics.md)) |\n| `alpha-loop run --epics <ids>` | Process an ordered comma-separated queue of epics, one session branch and PR per epic |\n| `alpha-loop run --epics <ids> --queue-branch-mode independent` | Run queued epics without stacking later session branches on earlier ones |\n| `alpha-loop run --verify-only <N>` | Run just the epic verification pass — evaluates merged PRs against acceptance criteria |\n| `alpha-loop daemon` | Run hosted daemon mode continuously for repo stewardship |\n| `alpha-loop daemon --mode feedback-only` | Poll feedback and resume eligible sessions without triage or new work selection |\n| `alpha-loop scan` | Generate/refresh project context and instructions file |\n| `alpha-loop vision` | **(deprecated)** Use `alpha-loop plan` instead |\n| `alpha-loop auth` | Save authenticated browser state for verification |\n| `alpha-loop history` | View session and queue history |\n| `alpha-loop history <name>` | View a specific session |\n| `alpha-loop history queue-<timestamp>` | Inspect a multi-epic queue manifest, including stopped/pending epics |\n| `alpha-loop history <name> --qa` | Show QA checklist for session |\n| `alpha-loop history <name> --telemetry` | Show per-stage telemetry table (see [docs/telemetry.md](docs/telemetry.md)) |\n| `alpha-loop history --clean` | Remove old session data |\n| `alpha-loop report routing` | Aggregate per-stage telemetry + cost-per-issue across sessions |\n| `alpha-loop sync` | Add/update templated assets in configured harnesses without deleting harness-only files |\n| `alpha-loop sync --check` | Check for drift, including target-only harness files, without writing changes |\n| `alpha-loop sync --prune` | Sync templates and remove target-only harness files after logging each pruned path |\n| `alpha-loop resume` | Resume stranded work — push branches, review, open WIP PRs |\n| `alpha-loop resume --issue <N>` | Resume a specific issue |\n| `alpha-loop feedback ingest` | Ingest external human feedback from stdin or `--body-file` |\n| `alpha-loop feedback ingest --request-resume` | Mark the matching session resume-requested without running resume |\n| `alpha-loop review` | Analyze learnings and propose self-improvements |\n| `alpha-loop review --apply` | Apply proposed improvements and create a draft PR |\n| `alpha-loop eval` | Run the eval suite and compute composite score |\n| `alpha-loop eval capture` | Capture failures as eval cases (interactive) |\n| `alpha-loop eval capture --quality` | Capture quality failures from successful sessions (false positives) |\n| `alpha-loop eval list` | Show eval cases and recent scores |\n| `alpha-loop eval scores` | Show score history over time |\n| `alpha-loop eval pareto` | Show score/cost Pareto frontier |\n| `alpha-loop eval compare <r1> <r2>` | Compare two eval runs |\n| `alpha-loop eval search` | Greedy search over model configurations per pipeline step |\n| `alpha-loop eval estimate` | Estimate cost of running the eval suite |\n| `alpha-loop eval compare-configs <a> <b>` | Compare two YAML config files side-by-side |\n| `alpha-loop eval convert` | Convert between AlphaLoop and skill-creator eval formats |\n| `alpha-loop eval import-swebench` | Import eval cases from SWE-bench dataset |\n| `alpha-loop eval export <case>` | Export an eval case for contributing back (anonymized by default) |\n| `alpha-loop evolve` | Meta-Harness-style automated optimization loop |\n| `alpha-loop evolve routing` | Propose routing promotions/demotions as draft PRs based on eval metrics |\n| `alpha-loop evolve routing --demote <stage>` | Manually demote a stage to routing.fallback.escalate_to |\n| `alpha-loop plan` | Generate a full project scope (milestones + issues) from seed inputs using AI. Issues are sliced vertically and carry `## Touches` file-scope and `Depends on #N` dependency metadata so the runner can order (and eventually parallelize) work |\n| `alpha-loop plan --seed <file>` | Read seed description from a file instead of prompting |\n| `alpha-loop plan --dry-run` | Display the plan and save `.alpha-loop/plan.json` without creating GitHub resources |\n| `alpha-loop plan --resume` | Create GitHub resources from the saved `.alpha-loop/plan.json` draft |\n| `alpha-loop plan --yes --seed <file>` | Non-interactive mode: accept all AI recommendations |\n| `alpha-loop triage` | Analyze open issues, clean up backlog noise, and propose/apply epic groups |\n| `alpha-loop triage --dry-run` | Display cleanup findings and epic proposals without making changes |\n| `alpha-loop triage --yes` | Non-interactive mode: apply AI-selected cleanup actions and epic proposals |\n| `alpha-loop roadmap` | Schedule parent epics and standalone issues into milestones using AI analysis |\n| `alpha-loop roadmap --queue` | Recommend the next ordered epic run queue without making changes |\n| `alpha-loop roadmap --queue --milestone <name>` | Recommend an epic run queue within a release or sprint milestone |\n| `alpha-loop roadmap --dry-run` | Display proposed epic/standalone milestone assignments without making changes |\n| `alpha-loop roadmap --yes` | Non-interactive mode: apply all AI-recommended epic and standalone assignments |\n\n### Run Options\n\n```bash\nalpha-loop run [options]\n\nOptions:\n  --once              Process one issue and exit\n  --dry-run           Preview without making changes\n  --model <model>     AI model override (e.g., opus, sonnet, gpt-5.4, gpt-5.3-codex)\n  --milestone <name>  Process this milestone's scheduled epic, or flat issues if none\n  --skip-tests        Skip test execution\n  --skip-review       Skip code review step\n  --skip-learn        Skip learning extraction\n  --auto-merge        Auto-merge PRs to session branch\n  --merge-to <branch> Use an existing branch instead of creating a new session branch\n  --batch             Batch mode: process multiple issues per agent call (faster, fewer tokens)\n  --batch-size <n>    Issues per batch (default: 5)\n  --quick             Quick mode: plan+build+commit per issue in a fresh agent session, one test/review/PR pass at the end\n  --issue <n>         Process exactly one issue by issue number (skips the picker)\n  --epic <n>          Process a specific epic by issue number (skips the picker)\n  --epics <ids>       Process multiple epics in order (comma-separated)\n  --queue-branch-mode <mode>  Branch mode for --epics: stacked or independent\n  --skip-epic         Skip epic discovery, use flat/milestone flow\n  --verify-only <n>   Run only the verification pass on an existing epic\n```\n\n### Daemon Options\n\n```bash\nalpha-loop daemon [options]\n\nOptions:\n  --mode <mode>                 full, triage-only, feedback-only, or run-only\n  --triage-interval <seconds>   Seconds between intake triage ticks\n  --feedback-interval <seconds> Seconds between feedback poll/resume ticks\n  --run-interval <seconds>      Seconds between ready-work selection ticks\n  --health-interval <seconds>   Seconds between daemon health events\n  --idle-sleep <seconds>        Seconds to sleep when no tick is due\n  --feedback-command <command>  Adapter command returning feedback JSON/NDJSON\n  --no-lock                     Disable the repo-level daemon lock\n  --once-tick                   Run one due daemon tick and exit\n  --max-ticks <n>               Stop after this many daemon ticks\n```\n\nFor hosted website and web app operation, start with the [Hosted Alpha Loop Setup Guide](docs/hosted-alpha-loop.md). It covers server setup, GitHub labels and templates, safe starter config, lifecycle events, feedback ingestion, resume, QA handoff, health checks, cleanup, and troubleshooting. For the broader documentation map, see the [docs index](docs/README.md).\n\n## Configuration\n\nRunning `alpha-loop init` creates a `.alpha-loop.yaml` file:\n\n```yaml\n# Alpha Loop configuration\nrepo: owner/repo-name\nproject: 0  # GitHub Project number (find it in your project URL)\nagent: claude  # AI agent CLI: claude, codex, opencode, lmstudio, ollama\n# model:       # omit to use agent's default (e.g., opus, gpt-5.4)\nlabel: ready\nbase_branch: main\ntest_command: pnpm test\ndev_command: pnpm dev\nauto_merge: true\n\n# Optional browser QA profile for websites and web apps\nweb_app:\n  build_command: pnpm build\n  test_command: pnpm test\n  dev_command: pnpm dev\n  dev_url: http://localhost:4321\n  smoke_test: pnpm build\n  screenshots:\n    - { name: home-desktop, url: /, viewport: desktop }\n    - { name: home-mobile, url: /, viewport: mobile }\n  preview:\n    command: ./scripts/get-preview-url.sh\n    required: false\n\n# Coding harnesses to sync skills/agents to (auto-derived from agent if empty)\nharnesses:\n  - claude\n\n# Safety limits (0 = unlimited)\nmax_issues: 20\nmax_session_duration: 7200  # 2 hours in seconds\n\n# Hosted automation guardrails\nautomation_policy:\n  block_labels: [do-not-automate, needs-human-input]\n  # See docs/hosted-policy.md for full marketing-site and web-app profiles.\n\n# Hosted daemon mode\ndaemon:\n  mode: full\n  triage_interval: 900\n  feedback_interval: 60\n  run_interval: 120\n  health_interval: 300\n  idle_sleep: 30\n  feedback_poll_command: \"\"  # optional adapter command returning JSON/NDJSON\n  lock:\n    enabled: true\n    stale_after: 86400\n    path: \"\"                 # defaults to .alpha-loop/daemon.lock\n\n# Worktree retention for durable session manifests\nsession_retention:\n  paused_worktree_days: 0       # keep paused/waiting/QA worktrees until explicit cleanup\n  completed_worktree_days: 30   # clean completed/failed worktrees after 30 days\n\n# Post-session review (runs after all issues, reviews full session diff)\npost_session:\n  review: true\n  security_scan: true\n\n# Lifecycle events for hosted runs and automations\nevents:\n  include_prompt_text: false\n  redact:\n    - OPENAI_API_KEY\n    - ANTHROPIC_API_KEY\n  destinations:\n    audit_log:\n      type: log\n      events: ['*']\n    slack_qa:\n      type: webhook\n      events: [qa.requested, human_input.requested, session.failed]\n      url_env: SLACK_WEBHOOK_URL\n      format: slack\n      required: false\n\n# Eval system\nauto_capture: true  # capture failures as eval cases\neval_dir: .alpha-loop/evals\n```\n\n### Configuration Reference\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `repo` | (auto-detected) | GitHub repo in `owner/name` format |\n| `project` | `0` | GitHub Project number (from URL: `users/<owner>/projects/<N>`) |\n| `agent` | `claude` | AI agent CLI to use: `claude`, `codex`, or `opencode` |\n| `model` | (agent default) | AI model (passed via `--model` flag; omit to use agent's default) |\n| `review_model` | (agent default) | AI model for code review and learning extraction |\n| `label` | `ready` | GitHub label that marks issues as ready for the loop |\n| `base_branch` | `master` | Branch to create PRs against |\n| `test_command` | `pnpm test` | Command to run tests |\n| `dev_command` | `pnpm dev` | Command to start the dev server for verification |\n| `max_turns` | (none) | Max conversation turns for the agent |\n| `poll_interval` | `60` | Seconds between issue polling |\n| `max_test_retries` | `3` | Times to retry failing tests/verification |\n| `milestone` | (none) | Only process issues in this milestone |\n| `max_issues` | `0` | Max issues to process per session (0 = unlimited) |\n| `max_session_duration` | `0` | Max session duration in seconds (0 = unlimited) |\n| `auto_merge` | `true` | Auto-merge issue PRs into the session branch |\n| `merge_to` | (none) | Use an existing branch instead of creating a session branch |\n| `skip_tests` | `false` | Skip test execution |\n| `skip_review` | `false` | Skip code review |\n| `skip_verify` | `false` | Skip live verification |\n| `skip_learn` | `false` | Skip learning extraction |\n| `skip_e2e` | `false` | Skip E2E tests |\n| `skip_install` | `false` | Skip `pnpm install` in worktrees |\n| `skip_preflight` | `false` | Skip pre-flight test validation |\n| `auto_cleanup` | `true` | Auto-remove worktrees after processing |\n| `session_retention.paused_worktree_days` | `0` | Days before `history --clean` removes paused/waiting/QA worktrees (`0` = never) |\n| `session_retention.completed_worktree_days` | `30` | Days before `history --clean` removes completed/failed worktrees (`0` = never) |\n| `run_full` | `false` | Run full pipeline without skipping any steps |\n| `verbose` | `false` | Enable verbose agent output |\n| `harnesses` | (auto from agent) | Coding harnesses to sync skills/agents to (e.g., `claude`, `codex`) |\n| `eval_dir` | `.alpha-loop/evals` | Directory for eval cases and scores |\n| `eval_model` | (agent default) | AI model for eval judging |\n| `eval_timeout` | `300` | Timeout in seconds for eval case execution |\n| `auto_capture` | `true` | Auto-capture failures as eval cases at end of session |\n| `batch` | `false` | Enable batch mode — process multiple issues per agent call |\n| `batch_size` | `5` | Number of issues per batch when batch mode is enabled |\n| `quick` | `false` | Quick mode — plan+build+commit per issue on one shared worktree, single test/review/PR pass at the end |\n| `smoke_test` | (none) | Shell command to run as a final smoke test after session review |\n| `web_app.setup_command` | top-level `setup_command` | Optional setup command for website/app repos |\n| `web_app.build_command` | package `build` script | Build command captured as part of web/app verification |\n| `web_app.test_command` | top-level `test_command` | Test command for the web/app profile |\n| `web_app.dev_command` | top-level `dev_command` or package script | Dev server command used by browser verification |\n| `web_app.dev_url` | framework default | Local dev URL; Astro defaults to `http://localhost:4321`, Vite to `5173`, Next/generic to `3000` |\n| `web_app.smoke_test` | top-level `smoke_test` | Optional final smoke command for web/app handoff |\n| `web_app.screenshots` | home desktop/mobile for known web frameworks | Screenshot plan entries with `name`, `url`, and `viewport` (`desktop`, `tablet`, `mobile`) |\n| `web_app.preview.url` | (none) | Static preview URL, if a hosting service exposes one directly |\n| `web_app.preview.command` | (none) | Provider-agnostic command that prints an `http(s)` preview URL |\n| `web_app.preview.required` | `false` | Mark preview URL discovery as required for verification |\n| `pipeline` | `{}` | Per-step agent/model overrides (see below) |\n| `pricing` | (built-in) | Custom token pricing per model for cost tracking |\n| `eval_include_agent_prompts` | `true` | Include repo-specific agent prompts during eval runs |\n| `eval_include_skills` | `true` | Include repo-specific skills during eval runs |\n| `post_session.review` | `true` | Run holistic code review on full session diff |\n| `post_session.security_scan` | `true` | Include security scanning in post-session review |\n| `events.include_prompt_text` | `false` | Include redacted prompt text in lifecycle events; prompt paths and hashes are always retained when available |\n| `events.redact` | `[]` | Env var names or literal values to redact from lifecycle event payloads |\n| `events.destinations` | `{}` | Lifecycle event destinations (`log`, `webhook`, `command`) with per-destination event filters |\n| `automation_policy.require_labels` | `[]` | Labels required before hosted automation may start an issue |\n| `automation_policy.block_labels` | `do-not-automate`, `needs-human-input` | Labels that pause automation and request human input |\n| `automation_policy.allowed_paths` | `[]` | Optional glob allowlist for changed files; empty means all paths are allowed unless protected |\n| `automation_policy.protected_paths` | `[]` | Glob list of paths that require human input when changed |\n| `automation_policy.allowed_commands` | `[]` | Optional allowlist for configured shell commands; entries match exact commands or subcommands |\n| `automation_policy.require_human_for` | `[]` | High-risk categories that require human input (`auth`, `billing`, `production-deploy`, `dependency-upgrade`, `sanity-schema`, `secrets`, `migrations`, `destructive-content`, `ambiguous`) |\n| `automation_policy.max_active_sessions` | `0` | Maximum active durable sessions (`0` = unlimited) |\n| `automation_policy.max_paused_sessions` | `0` | Maximum paused/waiting sessions (`0` = unlimited) |\n| `automation_policy.max_issues_per_session` | `0` | Maximum issues hosted automation may process in one session (`0` = unlimited) |\n| `automation_policy.max_session_minutes` | `0` | Runtime limit for hosted automation sessions (`0` = unlimited) |\n| `automation_policy.max_session_cost_usd` | `0` | Estimated session budget limit (`0` = unlimited) |\n| `automation_policy.max_issue_cost_usd` | `0` | Estimated per-issue budget limit (`0` = unlimited) |\n| `daemon.mode` | `full` | Hosted daemon mode: `full`, `triage-only`, `feedback-only`, or `run-only` |\n| `daemon.triage_interval` | `900` | Seconds between intake triage ticks |\n| `daemon.feedback_interval` | `60` | Seconds between feedback poll and resume ticks |\n| `daemon.run_interval` | `120` | Seconds between ready-work selection ticks |\n| `daemon.health_interval` | `300` | Seconds between daemon health lifecycle events |\n| `daemon.idle_sleep` | `30` | Seconds to sleep when no daemon tick is due |\n| `daemon.feedback_poll_command` | (none) | Optional adapter command that returns one feedback JSON object, an array, or NDJSON |\n| `daemon.lock.enabled` | `true` | Use `.alpha-loop/daemon.lock` to prevent concurrent daemon mutation in one repo |\n| `daemon.lock.stale_after` | `86400` | Seconds before a still-live lock can be treated as stale (`0` = PID-only stale checks) |\n| `daemon.lock.path` | (none) | Optional custom lock path; empty uses `.alpha-loop/daemon.lock` |\n\n### Lifecycle Events\n\nAlpha Loop emits typed lifecycle events for hosted sessions and daemons: `session.started`, `session.paused`, `human_input.requested`, `qa.requested`, `feedback.received`, `feedback.classified`, `session.resume_requested`, `session.resumed`, `session.completed`, `session.failed`, `daemon.started`, `daemon.idle`, `daemon.health`, `daemon.work.selected`, `daemon.work.skipped`, `daemon.resume.requested`, `daemon.shutdown`, and `daemon.failed`.\n\n### Web/App QA Profile\n\n`web_app` adds browser-oriented verification for Astro, React/Vite, Next, and similar repos. It records screenshot paths, browser console errors, failed network requests, preview URLs, and a human QA checklist in session history, PR bodies, and `qa.requested` events. Preview discovery is provider-agnostic: set `preview.url` or provide a command that prints the URL. See [docs/web-app-profile.md](docs/web-app-profile.md).\n\nDestinations can write to the session history log, POST to webhooks, or run a local command with canonical JSON on stdin. Webhooks can use `format: json`, `slack`, `teams`, or `discord`; command destinations always receive canonical JSON. `--dry-run` prints matching destinations instead of sending.\n\nSee [docs/hosted-events.md](docs/hosted-events.md) for Slack, Teams, Discord, email-via-script, and custom service examples.\n\n### Hosted Automation Policy\n\n`automation_policy` constrains unattended hosted runs before issue work starts, before configured commands run, and before PR creation when diffs touch protected paths. Blocked work receives `needs-human-input`, a GitHub comment explaining the decision, and policy metadata in the session manifest and lifecycle event payloads.\n\nSee [docs/hosted-policy.md](docs/hosted-policy.md) for ready-to-paste marketing-site and web-app policies.\n\n### Environment Variables\n\nAll config options can be set via environment variables (uppercase, same names):\n\n| Variable | Config Key |\n|----------|------------|\n| `REPO` | `repo` |\n| `PROJECT` | `project` |\n| `AGENT` | `agent` |\n| `MODEL` | `model` |\n| `REVIEW_MODEL` | `review_model` |\n| `POLL_INTERVAL` | `poll_interval` |\n| `MAX_TEST_RETRIES` | `max_test_retries` |\n| `MILESTONE` | `milestone` |\n| `MAX_ISSUES` | `max_issues` |\n| `MAX_SESSION_DURATION` | `max_session_duration` |\n| `BASE_BRANCH` | `base_branch` |\n| `TEST_COMMAND` | `test_command` |\n| `DEV_COMMAND` | `dev_command` |\n| `DRY_RUN` | `dry_run` |\n| `SKIP_TESTS` | `skip_tests` |\n| `SKIP_REVIEW` | `skip_review` |\n| `SKIP_VERIFY` | `skip_verify` |\n| `SKIP_LEARN` | `skip_learn` |\n| `SKIP_E2E` | `skip_e2e` |\n| `SKIP_INSTALL` | `skip_install` |\n| `SKIP_PREFLIGHT` | `skip_preflight` |\n| `AUTO_MERGE` | `auto_merge` |\n| `AUTO_CLEANUP` | `auto_cleanup` |\n| `SESSION_RETENTION_PAUSED_WORKTREE_DAYS` | `session_retention.paused_worktree_days` |\n| `SESSION_RETENTION_COMPLETED_WORKTREE_DAYS` | `session_retention.completed_worktree_days` |\n| `MERGE_TO` | `merge_to` |\n| `RUN_FULL` | `run_full` |\n| `VERBOSE` | `verbose` |\n| `EVAL_DIR` | `eval_dir` |\n| `EVAL_MODEL` | `eval_model` |\n| `EVAL_TIMEOUT` | `eval_timeout` |\n| `AUTO_CAPTURE` | `auto_capture` |\n| `BATCH` | `batch` |\n| `BATCH_SIZE` | `batch_size` |\n| `QUICK` | `quick` |\n| `SKIP_POST_SESSION_REVIEW` | `post_session.review` (inverted) |\n| `SKIP_POST_SESSION_SECURITY` | `post_session.security_scan` (inverted) |\n\n**Precedence:** CLI flags > environment variables > `.alpha-loop.yaml` > auto-detection > defaults\n\n### Switching Agents\n\nAlpha Loop is agent-agnostic. Set the `agent` field in `.alpha-loop.yaml` to switch which CLI runs the pipeline:\n\n```yaml\n# Use Codex instead of Claude\nagent: codex\n```\n\n```yaml\n# Use Codex with a specific model\nagent: codex\nmodel: gpt-5.3-codex\n```\n\nIf you omit `model`, the agent CLI uses its own default (e.g., Claude uses its configured model, Codex uses `gpt-5.4`). Set `model` only when you want to override.\n\n| Agent | Example models | CLI flags used |\n|-------|---------------|----------------|\n| `claude` | `opus`, `sonnet`, `haiku` | `-p --model MODEL --dangerously-skip-permissions` |\n| `codex` | `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex` | `exec --model MODEL --full-auto` |\n| `opencode` | `deepseek`, `gpt-4` | `run --model MODEL` |\n\nWhen you change `agent`, the harness sync automatically targets the correct directories (e.g., `.claude/` for Claude, `.codex/` for Codex). You can also explicitly list harnesses if you use multiple tools:\n\n```yaml\nagent: codex\nharnesses:\n  - codex\n  - claude  # also sync to Claude for teammates using it\n```\n\nSync is additive by default: `alpha-loop sync` copies new or changed files from `.alpha-loop/templates/` into each harness path, but it leaves harness-only skills and support files in place. Use `alpha-loop sync --check` to detect strict drift, including target-only files, and `alpha-loop sync --prune` only when you explicitly want to remove files from harness paths that are not present in templates.\n\n### Per-Step Pipeline Config\n\nUse `pipeline` to assign different models to different pipeline stages. This lets you use cheaper models for simple steps and reserve expensive models for implementation:\n\n```yaml\nagent: claude\nmodel: claude-sonnet-4-6  # default for all steps\n\npipeline:\n  plan:\n    model: claude-haiku-4-5       # cheap model for planning\n  implement:\n    model: claude-sonnet-4-6      # main model for coding\n  review:\n    model: claude-opus-4-6        # best model for review\n  learn:\n    model: claude-haiku-4-5       # cheap model for learning\n```\n\nUse `alpha-loop eval search` to automatically find the best model assignment per step via greedy coordinate descent over your eval suite.\n\n### Per-Stage Routing\n\nFor hybrid cloud/local setups, use `routing:` to target different models and endpoints for each Loop stage. This is how you offload token-heavy middle stages (Build, Test) to local open-weight models while keeping frontier models for Plan and Review:\n\n```yaml\nrouting:\n  profile: hybrid-v1   # all-frontier | hybrid-v1 | all-local | <custom-name>\n  stages:\n    plan:       { model: claude-opus-4-7,      endpoint: anthropic }\n    build:      { model: qwen3-coder-30b-a3b,  endpoint: lmstudio_local }\n    test_write: { model: qwen3-coder-30b-a3b,  endpoint: lmstudio_local }\n    test_exec:  { model: qwen3-coder-30b-a3b,  endpoint: lmstudio_local }\n    review:     { model: claude-sonnet-4-6,    endpoint: anthropic }\n    summary:    { model: gemma-4-31b,          endpoint: lmstudio_local }\n  endpoints:\n    anthropic:      { type: anthropic,        base_url: \"https://api.anthropic.com\" }\n    lmstudio_local: { type: anthropic_compat, base_url: \"http://localhost:1234\" }\n    ollama_local:   { type: openai_compat,    base_url: \"http://localhost:11434/v1\" }\n  fallback:\n    on_tool_error: escalate          # escalate | retry | fail\n    escalate_to: { model: claude-sonnet-4-6, endpoint: anthropic }\n```\n\n**Stages:** `plan`, `build`, `test_write`, `test_exec`, `review`, `summary` — each takes `{ model, endpoint }` where `endpoint` references a name defined in `routing.endpoints`.\n\n**Endpoint types:** `anthropic` (native Anthropic API), `anthropic_compat` (Anthropic-compatible — e.g. LM Studio), or `openai_compat` (OpenAI-compatible — e.g. Ollama, vLLM). See [docs/local-models.md](docs/local-models.md) for LM Studio and Ollama setup, including the `agent: lmstudio` / `agent: ollama` short form for single-agent local mode.\n\n**Fallback modes:**\n- `escalate` — when a routed stage errors on a tool call, retry on `escalate_to` (typically a frontier model)\n- `retry` — retry on the same model/endpoint\n- `fail` — surface the error without retry\n\n**Profile as a list (A/B):** `profile` may also be an array of names (e.g. `[hybrid-v1, all-local]`). Alpha Loop picks one deterministically per-issue so reruns of the same issue select the same profile — this makes profile comparisons reproducible.\n\n**Backwards compatibility:** If you don't set `routing`, alpha-loop uses the top-level `agent:` / `model:` / `pipeline:` exactly as before — no behavior change.\n\n### Local Model Support\n\nAlpha Loop can run the token-heavy middle of the Loop (Build, Test) against an open-weight coding model on your own machine — typically a 30B-class model in LM Studio or Ollama — while keeping frontier models for Plan and Review. On a 64GB+ Apple Silicon Mac this typically cuts cost-per-issue by 60–80% without sacrificing Plan/Review quality.\n\n- [docs/local-models.md](docs/local-models.md) — hardware prerequisites, install steps for LM Studio 0.4.1+ / Ollama, recommended models (Qwen3-Coder-Next 30B-A3B, Gemma 4 31B, GLM-4.6), Apple Silicon tuning, and troubleshooting.\n- [docs/routing-profiles.md](docs/routing-profiles.md) — copy-pasteable profiles: `all-frontier` (baseline), `hybrid-v1` (recommended default), `all-local` (offline / zero-cost), `budget-hawk` (Haiku cloud + local coder).\n\nQuickest path: install LM Studio 0.4.1+, load `qwen3-coder-30b-a3b`, then drop the `hybrid-v1` block from [docs/routing-profiles.md](docs/routing-profiles.md) into your `.alpha-loop.yaml`. `alpha-loop init` detects Apple Silicon + 64GB+ RAM and points you at these docs automatically.\n\n## GitHub Setup\n\n### Labels\n\nThe loop uses these labels. Run `alpha-loop init` to create any that are missing:\n\n| Label | Purpose |\n|-------|---------|\n| `ready` | Issue is ready for the loop to pick up |\n| `in-progress` | Loop is actively working on it |\n| `in-review` | PR created, awaiting review |\n| `failed` | Loop failed after retries |\n| `epic` | Parent issue with an ordered sub-issue checklist |\n\n### Milestones\n\nUse GitHub milestones to group issues into planned releases or sprints. When you start the loop, you'll be prompted to pick an epic or milestone; milestone rows show scheduled epic counts when parent epics are assigned to them.\n\nCreate milestones at `github.com/<owner>/<repo>/milestones/new`. Set due dates to keep yourself on track.\n\n### Epics\n\nAn epic is a GitHub issue with the `epic` label and a task-list body that references sub-issues by number:\n\n```markdown\n## Sub-issues\n- [ ] #158 Add tenant column to users table\n- [ ] #159 Add tenant middleware\n- [ ] #160 Scope queries by tenant\n```\n\nRun `alpha-loop init` to install the epic issue template at `.github/ISSUE_TEMPLATE/epic.yml`. It applies the `epic` label and prompts for the goal, ordered sub-issues, acceptance criteria, dependencies, sequencing notes, and verification expectations.\n\nWhen you start the loop, open epics appear above milestones in the picker and show milestone membership when present. You can also target one directly:\n\n```bash\nalpha-loop run --epic 165\n```\n\n`alpha-loop run --milestone \"v1.0\"` checks for open epics assigned to that milestone before fetching flat issues. One scheduled epic is processed automatically, multiple scheduled epics require `--epic <N>`, and no scheduled epics falls back to ready non-epic issues in that milestone. `--epic` always wins over `--milestone`; `--skip-epic` disables epic discovery and preserves the flat milestone flow.\n\nFor feedback-driven or hosted workflows that need one precise unit of work, use:\n\n```bash\nalpha-loop run --issue 158\n```\n\n`--issue` fetches only that issue, requires it to be open, labeled with the configured ready label, and not labeled `blocked`, and refuses parent epics with guidance to use `--epic`. When the issue is referenced by exactly one open parent epic, Alpha Loop includes that parent context in the run and updates only that checklist item on success. If multiple open parent epics reference the issue, the command exits before creating a session or mutating GitHub/git state. `--dry-run --issue <N>` prints the resolved target and eligibility decision.\n\nTo ask Alpha Loop what to run next, use queue planning:\n\n```bash\nalpha-loop roadmap --queue\nalpha-loop roadmap --queue --milestone \"v1.0\"\n```\n\nQueue planning is read-only. It inspects open `epic` issues, milestone assignments, checklist progress, child readiness labels, dependency phrases such as `depends on #N`, and likely file overlap. When a runnable queue exists, it prints an executable command like `alpha-loop run --epics 205,166,214`; blocked epics stay out of the command and are listed with their blockers.\n\nTo run several epics unattended while keeping review scope separate, pass an explicit queue:\n\n```bash\nalpha-loop run --epics 205,166,214\n```\n\nThe queue is validated before any work starts. Each listed issue must exist, be labeled `epic`, not be duplicated, and be open unless it is already closed as completed. Alpha Loop processes the epics in the given order, creates/finalizes one session branch and PR per epic, and stops on the first epic failure, verification gap, checklist consistency error, or transient agent/rate-limit stop. By default, queue sessions use `stacked` ancestry: later epic session branches start from the previous successful session branch while their PRs still target the configured base branch. Use `--queue-branch-mode independent` for unrelated epics that should all branch from the base branch. Non-dry-run queue attempts write `.alpha-loop/sessions/queue-<timestamp>/queue.json`; `alpha-loop history` lists those manifests and `alpha-loop history queue-<timestamp>` prints stopped/pending epics, session PRs, and rebase notes. `--dry-run` prints the validated queue without mutating GitHub or git state.\n\nSub-issues are processed in checklist order (not issue-number order). Each sub-issue PR gets `Part of #165` appended, and the epic body's checkboxes auto-flip from `- [ ]` to `- [x]` as PRs merge. When every sub-issue has shipped, the loop runs a verification pass against each sub-issue's acceptance criteria — on `pass` the epic is auto-closed, on `partial` or `fail` it stays open with a `needs-human-input` label and a structured comment explaining the gaps.\n\nSee [docs/epics.md](docs/epics.md) for the full feature reference, including `--verify-only`, the `prefer_epics` config option, skip rules, and safety rails.\n\n## Documentation\n\nThe [docs index](docs/README.md) groups the long-form guides by workflow:\n\n- Planning and execution: epics, queues, and issue flow.\n- Hosted operation: daemon setup, policy, lifecycle events, and browser verification.\n- Models and routing: local model setup, routing profiles, and telemetry.\n- Evaluation and benchmarking: eval concepts, benchmark design, and methodology notes.\n\n### GitHub Project Board\n\nAlpha Loop reads issues from a GitHub Project board (v2). Issues are processed in board order, so you control priority by reordering. When combined with milestones, only \"Todo\" items in the selected milestone are processed.\n\nSet the `project` number in your config (find it in your project URL: `github.com/users/<owner>/projects/<number>`).\n\n### Issue Format\n\nIssues work best with structured acceptance criteria. Run `alpha-loop init` to install two GitHub issue templates:\n\n- `Agent-Ready Task` (`.github/ISSUE_TEMPLATE/agent-ready.yml`) for standalone or sub-issues the loop can implement.\n- `Epic` (`.github/ISSUE_TEMPLATE/epic.yml`) for parent issues that group ordered sub-issues and drive final verification.\n\n```markdown\n## Description\nWhat needs to be done.\n\n## Acceptance Criteria\n- [ ] Specific, testable criterion\n- [ ] Another criterion\n\n## Test Requirements\n- Unit test for X\n- E2E test for Y\n\n## Affected Files/Areas\n- src/...\n- tests/...\n```\n\n## Project Artifacts\n\n| Directory | Git-tracked? | Purpose |\n|-----------|-------------|---------|\n| `.alpha-loop/vision.md` | Yes | Project vision document |\n| `.alpha-loop/context.md` | Yes | Auto-generated project context |\n| `.alpha-loop/learnings/` | Yes | Learning files, session manifests, and session summaries (shared with team) |\n| `.alpha-loop/evals/` | Yes | Eval cases (YAML) and score history (`scores.jsonl`) |\n| `.alpha-loop/traces/` | No (gitignored) | Meta-Harness style execution traces per session |\n| `.alpha-loop/sessions/` | No (gitignored) | Local session logs, results JSON, screenshots |\n| `.alpha-loop/sessions/<session>/session.json` | No (gitignored) | Durable resumable session state with issue, branch, worktree, PR, stage, status, prompts, transcripts, and logs |\n| `.alpha-loop/sessions/<session>/session.lock` | No (gitignored) | Held by the live run or resume that owns the session; a second run of the same epic/milestone fails fast, and locks from dead processes are reclaimed automatically |\n| `.alpha-loop/sessions/queue-<timestamp>/queue.json` | No (gitignored) | Multi-epic queue manifest with status, session PRs, merge order, and stop reason |\n| `.alpha-loop/feedback/` | No (gitignored) | Local idempotency records for external feedback adapter events |\n| `.alpha-loop/auth/` | No (gitignored) | Saved browser auth state for verification |\n| `.worktrees/` | No (gitignored) | Temporary git worktrees during processing |\n\n## Development\n\n```bash\ngit clone https://github.com/bradtaylorsf/alpha-loop.git\ncd alpha-loop\npnpm install\npnpm build\npnpm test\n\n# Run in development mode\npnpm dev -- run --dry-run\n```\n\n### Tech Stack\n\n| Layer | Technology |\n|-------|------------|\n| Runtime | Node.js, TypeScript, ESM |\n| CLI Framework | Commander.js |\n| AI Agents | Any CLI agent (Claude, Codex, OpenCode) |\n| Source of Truth | GitHub (Issues = kanban, PRs = reviews) |\n| Package Manager | pnpm |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}