{"_id":"fully-completely","_rev":"55-bfaf71f8d444e67d73d10476601cbe7b","name":"fully-completely","dist-tags":{"latest":"0.2.26"},"versions":{"0.1.0":{"name":"fully-completely","version":"0.1.0","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.0","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"4d6f7fe006628ae3f7d4418f53188b3f5bb444d4","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.0.tgz","fileCount":47,"integrity":"sha512-4YXPG0p4277DpYlpjlP88sFgVq6ndeXEYElpAti813p3aI+uu7w6jxCGmKrQqPHIn6eesdfrYlGwdbfi7iqhKw==","signatures":[{"sig":"MEQCIFv2IIxe04jMvUZoutkwu/9Ksly2Jw8mafg2Y/zdclolAiAl2TjJcJ5436ouMYSMJvU/m+7R3563ermvPktZJviZEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237947},"engines":{"node":">=18"},"gitHead":"7e8c54c745415d27341b80e86e0b090af6539755","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.0_1786912406552_0.4389945857023154","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"fully-completely","version":"0.1.1","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.1","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"799c9c310c3f0600b1436f3822499d784b3d7f25","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.1.tgz","fileCount":49,"integrity":"sha512-9n4UbgZX5BlpU2van80VKzhHyC7JGOBemW8DwS5Pib6KXOlKv5Wr+lBEwQtscw1h+4QLKeo1t4MYLPOQED8z2A==","signatures":[{"sig":"MEYCIQCXDuCQNvPRTF0ydbfVVq1LbuMnrovm6tQfZ3+zrlJ0qAIhAMpWk5RhwlhAGOimV8K5Z5fMPl/dqSG49LpVY1+iN16a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292122},"engines":{"node":">=18"},"gitHead":"41f9b670c2453a4c1c9c1bacc55951a636aac222","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.1_1786996366666_0.09214032684780737","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"fully-completely","version":"0.1.2","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.2","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"7e288d6c59442c330ae16a69d91ab964213603b3","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.2.tgz","fileCount":49,"integrity":"sha512-6X16a4PN80xu1Dzxw1gnQZAW0D+0XEAvyeEP0dQhW0USbNgRC9pOO51XJuejkSZPMvNjtliqG8ib4liaSnJwxQ==","signatures":[{"sig":"MEYCIQCvKN4HHIKt63zlF3QNZofnyW2r6Wsxo4BL340D61j/XAIhANRPaiyjm0v//sXCpsnYwxxQwNhQ9zIE5krtk6cQ9X4K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295359},"engines":{"node":">=18"},"gitHead":"2238f44158b25b3b5e1e9908ec19b066f0e00d09","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.2_1786999279491_0.47996200524066257","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"fully-completely","version":"0.1.3","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.3","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"a28208f9f71af39775b8c8346566547016a780d4","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.3.tgz","fileCount":49,"integrity":"sha512-4oDNWZXvIvqeTSCxPkfFVOZXbGhN+oFVFKRQwgyW9hmWmpEP9X53aCpjFqXIYlSn/cjhgP6qn8FE6IQkfER4Ig==","signatures":[{"sig":"MEUCIFUjj8OruAlV/6VlxAskLsZ/Qu29ui4MhvyxOc/h4K/BAiEA9LGL/WjDWHSwXNUQpsONRpWZD/zeWb7MDtdJKKqJkXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEHh7Wm+Zu0qEkZRLg4G3yD21ySALAFkpPz4WNxh0Kl0AiEA1u8SPTAbKkH2t0G9Z1g0MZxxsGJSz6YT1fSoB5NirJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303752},"engines":{"node":">=18"},"gitHead":"89c8a74bff0ec64b529d45d5b1a49e23a9d730d0","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.3_1787970525220_0.6248889813142535","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"fully-completely","version":"0.1.4","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.4","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"d4c163cddedd86343a1bfc4da548d5628ccea07f","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.4.tgz","fileCount":49,"integrity":"sha512-CmIUZPvtYyewO00xXOXA2krLdRMj4gh5EX62EYYQO2XBl/mJbND2GtO3oSS+XAhxLjND77CFv/nptzam46t5Pw==","signatures":[{"sig":"MEQCICWYBTlZoi0GBOUcaJxrx3lGuMYvmHkTwSdfMrwhz7GwAiBnASpdoJRzjfXNhXc+1mDV1F6xpAXY1UyhP9p5/n9ewQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCG3zcI6E/xg+YLwcpXR2sdJR505bhfb9Ylw1MLBgXR4wIhAIcAMyeE7d3YVZtbABCegTwezcw3xWZN2gK40B3iFaxb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304933},"engines":{"node":">=18"},"gitHead":"976f3d2d594506e359eff0c34a592b9431d855b3","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.4_1788030438786_0.7720508412893108","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"fully-completely","version":"0.1.5","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.5","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"172cd369017c58cdc0a1174816c8083e686ebd35","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.5.tgz","fileCount":49,"integrity":"sha512-H4+mO8aHzdZ8oMAHj2P0dUyhIeRpZpOxaKvv7bAVIpECq4ag5ji2d/b68OqMjHzdKBz5LHpq1heb4+KpziNRRQ==","signatures":[{"sig":"MEQCIHKdCvGk7+29mpUjzYX5/UYaScqZ8i9oV6wvlPhXsz3SAiBl/lVCLLejGFxPzAt6AQkfX4tTFyiT2GpjNLxFJRy3dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDywsC4IaIuK545/LVYYZaSfJGor6roQIsdwYeDTtx8AgIhALnqL0JVyMz3fZqGveqp4/Zt5Se3vNPWPEhL1u1c5xvZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323231},"engines":{"node":">=18"},"gitHead":"ca7dc99c149185d1da9da7ee338d5652b183a7fc","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.5_1788213729913_0.8313353970974195","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"fully-completely","version":"0.1.6","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.6","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"ad8cf16695f9afc281a287f3433b90dfd55bac03","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.6.tgz","fileCount":52,"integrity":"sha512-jF2TaNoJCaHNOi8Wg7pRLcidkuEpATQ1W5xp4paxDc6VU8rqjJJLXihfbSFOfZAgS9KY+Y4shVaSyZnc0EwpoQ==","signatures":[{"sig":"MEQCIFV1xfROBwlt4D78LIVRfwGwK8WBEejRgE7rYuveYG9SAiBH25yen1aGAO71RNYak757pJrpsQusYQLXoI4nNyzaIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDcH2QEJpvP1uxvK72JML0mZEn0GBYYlPgXhBl+ctIo3AiEA4PVYMqEAbHufb8Ta6yabCtnXRrlhwIz62s8rQefzOf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352738},"engines":{"node":">=18"},"gitHead":"933af97699563e3a49f5e5737bc48ee47b6ba240","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.6_1788237804370_0.8010472504989354","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"fully-completely","version":"0.1.7","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.7","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"08345c0ae373b3ff2f047990ec8778aa9092f23b","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.7.tgz","fileCount":52,"integrity":"sha512-W5Eikc1mjXOdJ2c3MMowKkPm9qPPnaqf00pUKwzHKOI58JoqVsPuoILoYbmvT2BxEkYLmwNFvRBO2FKqu5HfiQ==","signatures":[{"sig":"MEUCIETiehPhrrKTSjQXVou7+JEOzisX5Vyms8KepMLR5Hh9AiEAlmxhbtN9Cc+RT+SJrLGh+KFr9hZSA7EwXXE1rZXa4as=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICe0ex3bfzfZtInLffSeIYytlb4TMacTAsagsxbTnleqAiEA20RrEba/CueMhTsz9mohGJ2V6cinkaZOk2SIg+4NbaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375686},"engines":{"node":">=18"},"gitHead":"e91dd2f98f31c173b5ba78ec10e7964a9863b246","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.7_1788240457360_0.3586321946356874","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"fully-completely","version":"0.1.8","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.8","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"5233fd3ff0ed9136c19eec57df04a5ff335a0d30","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.8.tgz","fileCount":52,"integrity":"sha512-3tl6LAYtKov97h3W/O2ozq24DpeQCGWEVRw5k/93olY3BTH5SfcRK1ojVIv0zGZZPu3bS91L+G4fGVPL/5AqiA==","signatures":[{"sig":"MEUCIQC/zZoBTezOqVf0MK7eMUrbJ4kN2Mb0YAFN/SEB1HbkggIgReBr/QZ/FYl0vdYsxtpUtxUT/i4VCZQ02+lYGfYCQ+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBaYRIZw2Pc5M29QDiEVPa8j3qX3m9pacJyl+9+YCySfAiEAyZGp1dDJcfGucb+qakPCvWSJtz/N55BYnsZ55SamRbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381063},"engines":{"node":">=18"},"gitHead":"f8d2c3dbe071cf51aa5673ec05c115a0a015a7ff","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.8_1788242703479_0.9170271277094115","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"fully-completely","version":"0.1.9","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.9","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"3046a3fc1db3df17feea22eb432480440f574cdb","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.9.tgz","fileCount":52,"integrity":"sha512-5WjawR6LCvYTBFpxtVO+JAjVvm5IUUwel83Kup9ed9A7kEVDXt96GX9adRt+c1PQF3kDk9D1Z4x2fHOme0yH7g==","signatures":[{"sig":"MEUCIHS2saEVfVupq8PJYvK5e+zXogJJNLxCz1F5JHZpTS0XAiEA2j6sfA32f9O2HXtqV5eYMMC+HkBrMWVOOn7bLUlQwSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFkazLaylG2dm/7zFT/PFx9/Cq1VbygQeadnC3N0j7vGAiARft98AdGPHdbI46WANuZPFWyLVQ15lh4LI+aIT9jsnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386955},"engines":{"node":">=18"},"gitHead":"87d9f55c28640161abc78a9ceb02171eacc43d3e","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.9_1788244498865_0.3420839944629308","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"fully-completely","version":"0.1.10","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.10","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"5d7286a82fd8e00a8a43856a9dda5b329f82513e","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.10.tgz","fileCount":55,"integrity":"sha512-s8UxYbMRXppd2KU5SG1vfh6QcQFifT9AcfaI/vxukxMDJjRXFCeIboxVP9qi+me1k8Qb1rnwW/g4RC8q3uyAmg==","signatures":[{"sig":"MEUCIQC+oIkVyvLB6NlitHpm/nlboJpivq635vQ9ITuYzg/mFQIgaaKF4VrzThZp6uJsiddaA+ljTbZuVzTQtfiOxZZomsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEcBMuciO9m0kkX5SRZ2CukOhYuV+9Qlupn+c6yUVywUAiAi2QKoMo4MnNsc0tPFCwzXLmh0JHsftQSeGYPoLZRv4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405116},"engines":{"node":">=18"},"gitHead":"6c1fc67acb47e813d7cc4623b2ce783279fc5f69","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.10_1788449178439_0.24393043065685083","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"fully-completely","version":"0.1.11","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.11","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"75e721fa9a55145f6d5847ff9a65bae8120ac5c0","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.11.tgz","fileCount":55,"integrity":"sha512-m1gwJz+JdljJ6dcLwVSKOD5wgY20tGJiJO/GqzQWFGmXEcywINVDgbZmoo/5KlarRlmQf4sfLdRI+PoEia/nEQ==","signatures":[{"sig":"MEYCIQCeOR5H+2HdfkCsprL81j1k437evxVV8wIlxrmPovH5GQIhAP/b4NuYvVCdxnSUkVhDBNWEBzd/EQSQIT0NXi4SLAR2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFI/BU9InnxWSfJUw/pAwXwHxBKOCyFYuVKTXZDdpgtNAiBSnbmRQJOhDaw4tm4zScSY2y8YlBn1RBXiLIeT9daDLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456750},"engines":{"node":">=18"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.11_1788456826764_0.332232869649167","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"fully-completely","version":"0.1.12","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.12","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"0caf28b9ec35b87cd0bca64784ede9ea86ac2001","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.12.tgz","fileCount":56,"integrity":"sha512-kl3eq3DU3zSSJ7mPz31Ry+gIb/ay7sbgkjuhkda0hiNFYtdQUYue4sDDEXFbS7ZEopOh8eZGkgVODdgK80jBYA==","signatures":[{"sig":"MEYCIQDK0VAQ6WAlFWYzr1IzrkzmiWuuyB6M78eJzA+O9Xa1zAIhAOL/l3m4+pjaWL7aEoOOhV/Ao4ke+kQP/MfnsKnkqYDc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC5hT1xxDt3WV02ps0kFjSHyCA/sdvWGTOs5oultIHqXwIhAM3o/dIULeexgZdNYJo/MfpauqPlZYPMb2s42UHNzrtb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483718},"engines":{"node":">=18"},"gitHead":"c50530cac0e74d720f71cdb494ae0feed1509a1e","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.12_1788473983766_0.4879592043896257","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"fully-completely","version":"0.1.13","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.13","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"6aaa08803ed893781ddb0b007ec6c05f313e1967","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.13.tgz","fileCount":56,"integrity":"sha512-IwHrVfCxg93ptzknnjIzDSGt1qcaZdgvBkrAZ18WIRRtYx4+JdB695ZM6j/e60wKF7cSirGiw07WYRSOnoj8GQ==","signatures":[{"sig":"MEUCIQC+pb2XW6TFpYv4c+hFtJ9RnhPMkDSnsoOGSyH6r+digQIgCHgbM4RHgnODlT5J6t8BysOMzxpdAylokmCdM3DUGTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEe8sQwXzPbarIUlqr/n6RZDrCvWKg6c5kg+n9W7V39CAiBlHyqKxsUtBMOBBfpDm0GMbYp9g+7d2id1S24pNc9ciA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":484884},"engines":{"node":">=18"},"gitHead":"aa5a281960bf36cd41a9988216c3214aacafa27a","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.13_1788475292382_0.12417522516288004","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"fully-completely","version":"0.1.14","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.14","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"61399c3ff263ed8fd2a0aa886ca484ab55e5a6c6","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.14.tgz","fileCount":56,"integrity":"sha512-oPBgOsPD7/SUTDmPgE+AyHPbKDxyNUpjX9AoYjvtLvf788uF5J/zzbCeL7eY7YVJcWr8V8o1qzxLin8mQg/IFg==","signatures":[{"sig":"MEYCIQCH9OiQkO1RlsGdTaBBwCjJ5n0shzIxwP+kiV7ZEo2/xAIhAK94Y3byYBeizahqUkcg2ijus8QYN/V7XJiWvirHpRef","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCoHrbkY8/gLOnTlzXNG28iayChautazzRTy1WC5CDGZwIgKKQSL/doOLPatr2rxWdXXCyl7kmmrYw71uhN+GaFNkg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514103},"engines":{"node":">=18"},"gitHead":"e575d2133251b558fe492ef5af86df7a64be23b8","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.14_1788479422068_0.929338970137658","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"fully-completely","version":"0.1.15","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.15","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"75905337273a20b0ab5c93b1d906e2b9a910bd49","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.15.tgz","fileCount":56,"integrity":"sha512-db7/iL63HoAhPMCSMIwfFVhl6icts49leboCNlD/3xPZbsgiBoH/zUbJHxv1Juetsm3jw/RHA1l+mRePN0pp/A==","signatures":[{"sig":"MEYCIQCVNZcyvJ6T0uig1OxmVy++CdWWIKCjQxHvAQLpedTo6wIhAObfWt8ndGv/HEEGetiFKPKrB53lk+V0rc+c5+fdoC93","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCm5jlM5H8ci54M1eJe9PE4t/342c6qWsicQLJez4BSKAIhAM2w6/bfVqeRnWTWiLLRFkHJyXNRNuE/ZqxA7r5FUwJF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530477},"engines":{"node":">=18"},"gitHead":"aef6db92ef201472e267ac557ee401bb2dc0a78b","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.15_1788532322666_0.10686979937573526","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"fully-completely","version":"0.1.16","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.16","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"3f637a32805845224457cef4baf05bbf3cc6a746","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.16.tgz","fileCount":56,"integrity":"sha512-xVIp68f2pdLDcjm7G1xkiR0HzZ7qU1b48d0PPQ5K2Jl8obfbFRfA4wzERUgVDB4ivK+umQhBz+nopt2wntXqyQ==","signatures":[{"sig":"MEYCIQCwBcwdI0w2sh5fEZF1FZ02nh89aTG07yj8YiJI+mXbxgIhAKlxExIZReovaVhb6KDbwl6auUmaUH0MPzRlKkElet5A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDuvEk0rG/iIKc3LxQuAy97BmR01pRyTVwpSAUi7rOKUgIgVztOWsLBnljPz46yfiw1xSUOImPVrQsIg6bjdTz/aIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551830},"engines":{"node":">=18"},"gitHead":"54f9cf3b26a6e3d3a41fe6221515709ff1cc2dd4","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.16_1788579603360_0.1394364163120696","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"fully-completely","version":"0.1.17","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.17","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"da7b42b8274497172ccb9239001fdaa143bdf2e2","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.17.tgz","fileCount":56,"integrity":"sha512-yaTfXU1HtCVsfdPk4rRTVBqrWe9ZBZEai0ouK8bedeT0J5JbqCCvzV8SBsKBXkLBUtwJdxFwWofw+GiJbg8LJQ==","signatures":[{"sig":"MEUCIQCl1rTJo3Wv3WMBsZJKKOaDIaNpzW9F8VeFXSbMBg8KfAIgeqPAMLFJ4UsutBlrNjHAtQVmvXEq/deJRLn+/JX0Fig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDkHs187FJapTRFiKD6Xn34NSTNBQkarnaHhLt8pujckQIgQgkhwjaF4Vmc+Dtzo42X8t40RJqRfgUigWGDzQ+8gFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572781},"engines":{"node":">=18"},"gitHead":"5175066d5174818fe0f4404bd87416c11d3ae3b3","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.17_1788585815634_0.33045927709196454","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"fully-completely","version":"0.1.18","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.18","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"4bcb5b74d4b5524ab6f72f443aef26f09bbcebec","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.18.tgz","fileCount":57,"integrity":"sha512-2I8gZkjrN352xQHhZd3pbCjDpHQ79PUyzriMIMdMFgBfuuhrPSS84ATvcIzkqe9xmcn7O5hIr8c7ry+1ewl9GQ==","signatures":[{"sig":"MEQCIDyxtPkK+AZ91OCWARJ4fZOdGj29bcNpcIDtXxU/hxvCAiBcNF5It3T+upGOCHR2T4t2RB8YzR7hqllysZ79LZe7OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE6TBD48rar34Z9dx19tCCxintb9Eac5AXHNi6x9O4P3AiBBHNjz7z4L6bw6ZQtgexihRUB2i7zxoLQ43U6bf0MGFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589220},"engines":{"node":">=18"},"gitHead":"6f08bad9b2918965e88947eefb71a1a7e3718754","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.18_1788618917933_0.7406902959723216","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"fully-completely","version":"0.1.19","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.19","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"895211c6b377fb09b611c6301afd434891eba639","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.19.tgz","fileCount":57,"integrity":"sha512-3CSgVUo9DLo8ThcYJi6vAHgwReuTh1WeZYIMFZ1wjRI5BhNFYH+UOgFEeFP2E5YVgyr3vwILkszwyFt6G4updw==","signatures":[{"sig":"MEYCIQDnvHv4PqoOyllPwNIsxWo7VxH/7r1QOP7l7w8/zXT8NgIhANn+dlJyK97D4QL//A1UhGo30tOmVnAacQecEIKEBF7U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCIgMkG3btAuvQnkENY0SVfY0DHd7qwxh4k4RN5L/HiiQIhAJTnyhpvqUTv7diJWopy/I4GyXUUkkNQObKB5WBn7Co2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":641691},"engines":{"node":">=18"},"gitHead":"57817469ff5392eb73d870d29bdb8001f8788530","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.19_1788638461847_0.6405388094115516","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"fully-completely","version":"0.1.20","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.20","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"7480352aac8c49e0f79e7e822b0614b0b089c161","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.20.tgz","fileCount":57,"integrity":"sha512-ew3giARkjIDWV7LLEbdavDROgYz8cx+7Htz5w1KeBuUQM9sUQyI5OtLrHWibCbRI6Q70gRlw7cq+I4Nh1ZVtVQ==","signatures":[{"sig":"MEUCIBcG1gHtdbKryRGlCzLYZMwyDGpmjZa48zcG69a+YDjTAiEAtFeWRHEngg5l91Ae67rfURV0SLE3q+nu6JaGbq/tT7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZ3Q/2uPpJdnnZT//d02IJvjGjP+Mg7p6FepRjkEGw7wIgazmo5PSvKnnrOSipcVCZnHTdZ6ANrb4tMse2u7KdR5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":648249},"engines":{"node":">=18"},"gitHead":"527760799bf160135393960a7017a644a77a660a","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.20_1788641891257_0.10475680674657162","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"fully-completely","version":"0.1.21","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.21","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"962d410e03590cd6880e9f1093331258644e8428","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.21.tgz","fileCount":57,"integrity":"sha512-oikDa+GZ9vKgeSJ8QkRaRl5Mbnt+CZgnMfnWxVS8Bi0OUa71E78xLQE6E/6o7X4TPxy+O4CcqiwINTFA3ilniw==","signatures":[{"sig":"MEUCIQDBaiUnrC7aTeXSPtLuDAPDUsF0apIGVdDcwa/EbpGIJwIgNoaQMBng6l20QRZ4EjZkeRUEvwDVAD1dq9DHjZZd4Q0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEZJeGqU93e28Sf9mAHys1uDE3QGWnoaTqhzLuysQc0qAiBX0vjIkKGcyU80tSvKc+4LdRXtS7j+64nS+SQRjoYjBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":653350},"engines":{"node":">=18"},"gitHead":"f534e493084e301db4e7a403a7887d736d015e28","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.21_1788660278577_0.529688953563517","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"fully-completely","version":"0.1.22","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.22","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"e9c52eaa73f6d0313445e0e358542870b4477ccb","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.22.tgz","fileCount":57,"integrity":"sha512-y/gsjuLENDm8FhpRmjbAAvnDc+UUMF/kuHS55DkzagESbRyKdYnuDR10cR94v6iNI1kNNq1fBZcqZBztNyMDHg==","signatures":[{"sig":"MEYCIQDbgCBMknew7zuR/Vz9h9x4GOjd1H5c0NPUbUfRBRb32gIhAN2WBYnrHCqYAtBus54Za8WeHQm3ckFLt427FNFt0d3D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCSznNQSFEqg8KgtBZXESMgq3iChSnIgkEPFm4jDrIZXwIgEz7WisfFXgPlmHj45CLomXSLrjr7rv2+3RaU067/Sxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":676256},"engines":{"node":">=18"},"gitHead":"1ca1e8f9210b9b4763d473df8675009e7cd2d145","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.22_1788705516496_0.9231052311163261","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"fully-completely","version":"0.1.23","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.23","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"a09ae4fd2c6d32e0d05c7435a862ef4ac57001a4","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.23.tgz","fileCount":57,"integrity":"sha512-YTUw3ZhCNk4RbnIvB9jXeR/dGEg6wPODoSTvqTZ+7mgOPVBcRWO03SN2kC4VVkFhC5bQ7pKPmqy7SfZJm8H7lQ==","signatures":[{"sig":"MEUCIQC51P4sC29lAPUBQb7R5sdIOte9I436yX2HNjBrC5njEAIgMGcbtZrYQkRJyqrnWNT17JVp8iTMO20v9F2SgmhgSWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA985Ts1E/ynSyuDSu+BRBKl4Cgfr78Gf6grhoIP0l1qAiAlA19wv3QMkq+DJl6VO/P6eEfsvortt3UWGLaDVJtuzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683353},"engines":{"node":">=18"},"gitHead":"efe4a38e757e50519e50b8683cab41849e9f5983","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.23_1788750072276_0.3364209277033998","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"fully-completely","version":"0.1.24","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.24","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"de17806d35ba7bfe3c62c317881af94500540716","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.24.tgz","fileCount":58,"integrity":"sha512-IGfZprB+3WeY2xTLOheN0dJNcaXw+gt2/x2EsbTjywJehZK1DJrUEkknMRvl/sYLyvCTBp2J4gF/6GKHX1AWEg==","signatures":[{"sig":"MEUCIQDxpcNwhnwij1s/g7h/4RBDzLdULjBeFGCkOlFdCkQ8JgIgG+Tr2NSG1o+r5vBLZas5OETmf/kndQ3YhVMVRTM3NkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBIWbRiMYkUetiVHpoZkfW24Utq+Q9mYFUOKcRPM55zBAiA9iiXY4/3LLny2nA09nN3lEC1q0LBzgrNjaI/2pxx/Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":719436},"engines":{"node":">=18"},"gitHead":"dbd7dc4c74c7fa410e4913e72a5ca4f08444613e","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.24_1788916404957_0.6894018622271787","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"fully-completely","version":"0.1.27","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.27","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"1034021d74c744b4e49c2d8466ce25388fb92da0","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.27.tgz","fileCount":58,"integrity":"sha512-0+UzKb0btq2nAWQmd80wtM8AWRQKVcO+RNaw3kdPYlGjyHYJMpTQkLqmlbJZZ8AaF7sq70JKzshbfM8oBqdhtg==","signatures":[{"sig":"MEUCIQCLEzEpW3G0Z9gsYVDcXtEe1USmXXB6FQJN4VOB17NpSQIgY2jORqUrmPa+lmkbzlYJsqRpowt1mGeFLxYk0orm4bw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCVrBHBhHc59ww6LUnx9ZnO8tDTvTdRZsIjFhcM87UWIAIhAOkGiZof+rqWTbIFLXDMuSlZ7eZQEdPOrtnQShZd850l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":742683},"engines":{"node":">=18"},"gitHead":"35ea1656262dd5a97d5647f28f265f050772cc67","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.27_1788919463612_0.7769129529312331","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"fully-completely","version":"0.1.28","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.28","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"79b005123892eec0f00fb88f66e2b9c6f5ef70b9","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.28.tgz","fileCount":58,"integrity":"sha512-YB2KBSiXpYI0oysJ+i2Z9lfzmkmfi9x8D2vUE1ftPkJP2vLs+VWBX72JcAsCBiWNFzEJG+DhFuKLM1t3Jdyp+w==","signatures":[{"sig":"MEUCIQDKQOKjknGr76S/68N3DAOBNHQ9mSuj9+D/wZtb5AJy4wIgHqz9YOcSGu319170ca2xWRKt72T485SVrfrg5kWfYXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDWMiASpVVEyZALQU6e47gr46Xf1tDJSO6ydMKTe7TwZgIhAL7pJnEokTjvs4zz7odl8isr4LOD5gBqBfUDXxzfWW6k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783007},"engines":{"node":">=18"},"gitHead":"6d5c2f81b301aef88a036308cf3e71842bcc4efa","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.28_1788926023427_0.6696502597822516","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"fully-completely","version":"0.1.29","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.1.29","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"1448c123deeabeea97c75ad7c3342a4a7d92be96","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.1.29.tgz","fileCount":60,"integrity":"sha512-o3mn0I2+XxcoqvqzO6lpxkUUU1bIoBiqurDY2lgf3FnaWCeJdKMMOUP2WjyWdtGL2SnOlqItPA9mROg7x56Rzw==","signatures":[{"sig":"MEQCICDXSofs0zaOnWR3a23rd8x8Q7Ze5LJHGm1WZN2yrPzVAiBzVatzY2gLmXfS5OHcu1wenWE7pzlJ7HVNYh8CG0QpJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHoGkPBOpOtNlkhKf14fzn2/cysEj6RAbgKuziW4YCHKAiAS9hNyg/Y+eplQT0vMYNeZOhRCt8RK1L9o12ineRnymQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":823214},"engines":{"node":">=18"},"gitHead":"1d7be4c380386c6e283a8309b2d509a527d84069","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.1.29_1788929524617_0.07262633037705468","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"fully-completely","version":"0.2.0","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.0","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"7ba44326b131b495d7bbd04a870b849d55a75afe","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.0.tgz","fileCount":61,"integrity":"sha512-kQ/DXCtyhWsGRkSsltS8egXOZAXo9y04hPo/ujxde4Wai/H9ZlzoEIG8MIyBUc1eNN9rhDu7ZimjuxFHovNCxg==","signatures":[{"sig":"MEUCIBayM75Kp1IKGhry6XmOXCE2g0O3df53yUDdA6FaMvZeAiEAnSZAe0EBq/qpUeqqvhTRmjaRhnOsvBHzF2VJeO9BmmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCqDmX3/aVqK9DNtvJjR0yVQeIM05MqNBRcOa0HzZus/QIgMpSuM9PtcBmplYgkSIEQXPukOKOrlVyj48UqqMmuu18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":860776},"engines":{"node":">=18"},"gitHead":"a684165802acd61509085a908dd48f1c2b53d7de","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.0_1788933253076_0.3137208822287565","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"fully-completely","version":"0.2.1","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.1","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"834d80a98e65c48bbf2e39f903f95c40dbb25f55","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.1.tgz","fileCount":62,"integrity":"sha512-fKR/DWRmHExPVwPhza30rVE54Icab7XEsGPe8+84HY98CHfWeUaiUcacmqRIimmzIenVcDV4vZRdLEkHXr7wHQ==","signatures":[{"sig":"MEYCIQCk4W+hTot/05TzED7F0sigypVRcLb0e53xX9IrjNv7nwIhAKnoaweufTdjGiMRnxpw82tfc4AkD+U4A+zs/ie3fNam","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCDK96U7jwHFw7/HkBx+BjqYvT3M0a73UNgBco2s60prQIhALMoEHf+z9zhr6I6pUf3zAf1Vbt773vAY9f3m3zMykLv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":892093},"engines":{"node":">=18"},"gitHead":"8fec6e603b0df753e3c308c6bd110114f7c3df06","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.1_1788985657730_0.22128302239232744","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"fully-completely","version":"0.2.2","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.2","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"a0ed5b014551cfaead86e13b04d6bd6c60788bcb","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.2.tgz","fileCount":62,"integrity":"sha512-5P3i5jLOav5jds6xDSEkET1Q+qwvLPrzvtkvmS9TJJL5UZYZBEnLGuYmBXstUBKTlYPg2f/ZaoVsxVVTF/ZkFQ==","signatures":[{"sig":"MEQCIHv4zt3xn/GLywVBEZGht60NTrJqcTaiYGZ+DQYZOuIEAiBnULBgOYJTC8uxpFJeXYTJiKS07SH/GMIVYLc592Y39w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC8PUyOysgYfIWdTrtqGMrhHebvRwB3wX2kUiEVCjugcgIgLgu0nugXyqrTkLejLhRwcJArBWS/LXmYA4moLErD/sY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":917972},"engines":{"node":">=18"},"gitHead":"fdb6f3b1afaf2c1749062810326030310898bf00","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.2_1788992126196_0.9489873880711863","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"fully-completely","version":"0.2.3","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.3","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"eb007ae3dff3b4513a9710c1871a0be6c95b903e","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.3.tgz","fileCount":62,"integrity":"sha512-0InVcs52qSHUNg6lW2RqzlWHG3tkENEDlW0wUCy9FPC0AT/XiwhP60/6CHjuKHtoux41EHMzIlkrtqAW8Z8Y1w==","signatures":[{"sig":"MEQCIC3vW3pcfWH1bsEvK3Krd5yZBJoggop/PJxJhpY+Y3iWAiAtJ28BxUTloQ0ajoJoIncp9D7ZqXQjrsjpQR3H/aGjig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDBc2SaVKR9tCQjKcRibgCkgjjWIjJvYEZ1+6oiWOYDMgIgPjFYiRgR4EFIp8XePtF6T2TDrrfzaUPE5FgIAdUwlpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":929594},"engines":{"node":">=18"},"gitHead":"23e814818c7403bf8989ddb8074690c6915d1ab4","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.3_1788995293839_0.45432814029874136","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"fully-completely","version":"0.2.4","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.4","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"bdf5be6b88426eaba7612c0cdea854ff67c668f6","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.4.tgz","fileCount":62,"integrity":"sha512-Hm3UoAVV8rP5Ym9LqpLXp1zk6a0IyxYHzQD3TSTeme1iAqEdCw49RIC8Ik9MTw8WcYzWHYtBr2o+KEcNDWiX8g==","signatures":[{"sig":"MEQCIDB5UYOCPrRtb+KTUWSFE4gC1xewojaiIPGkBxBYmToVAiA/w9W/68rKfHtFxLWDdefEfHS2q7ItR/TmC6/lYfmZ1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnoiRF0E77vGKk/w6rKUUKwzK71MxMMPjUhPCAbUlg1gIgEsGrVcsXDcxRwkw/gswq+DwvsYOdK48kEGWHsrCqYhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":944618},"engines":{"node":">=18"},"gitHead":"ee49cdf0afa76b7ef3acf0dbce3c1048cd2991d4","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.4_1789017268873_0.7668901614741077","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"fully-completely","version":"0.2.5","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.5","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"ede43a0ee708b98c4cfbc43a3cb4c334b9232beb","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.5.tgz","fileCount":62,"integrity":"sha512-EBQgzzXOc9YQqH6oWWeSx2/Xcirj1MS0uTx/gBvhm6Nzn1p9liTAy5srVyyUqHRNZ8000NLTNnzbHzYiiKGbEQ==","signatures":[{"sig":"MEUCIQD15ufWZ9wg2G5kaME602qwmULuuPcGYfEl2sv1JJfyRgIgTvYFpBYdtF+aCAtKTwQXSY+gHhinYLhrnWDpZH5dbtY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDOwPvqC7YDZ0y4J9X5yggYdjprCoiM6oEANzm7qzDi3QIhAJQXmcP+jr+o3pIHB9OTGt5iahgE27+mtkQqTYuch6uo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":951595},"engines":{"node":">=18"},"gitHead":"6d21af3fc5f9dfc16725c2d4ab119df4f5b57986","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.5_1789048973585_0.7455741135022524","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"fully-completely","version":"0.2.6","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.6","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"1217571a8b8e27eb24f669382a17192602744ba5","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.6.tgz","fileCount":63,"integrity":"sha512-Z9UYxcwekEosZNuT7lm4dypvJPZ9zJm9wykvwKWea9jRhqUUSEcBo+HQ7lRo3+zlP7fGKrgK2HP7DFXTzg0LPg==","signatures":[{"sig":"MEQCIF0VM6NjpFaxUI3udqHzDQ9RVDRbJEC3shoGIzSNSbM1AiByr1aL/fFQV1/WCLRfSti1JfelCw8SBw8RdLEKD9x9VQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJmol9zjcTywVDNapkZad8FK3jx/LJ5umWttDx672XSQIgJBCbueeOSxV6Tt/KcOcSUS8B3c916hv/wf821AogYIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":975692},"engines":{"node":">=18"},"gitHead":"283a9443e95dc338e0d1df36ecd4c6462d33ab02","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.6_1789053121840_0.9351569442132606","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"fully-completely","version":"0.2.7","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.7","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"fb5438f1608b2e1eab32643f70f87d27fc5a8a4e","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.7.tgz","fileCount":63,"integrity":"sha512-VfmKaurtXgndCGv9sza+LXTw86pvx7W8sND7ZO5jXTlfLwM42Yrf6oSf+UBpC5ZprZLBXDsxVuDwXtzi95BCag==","signatures":[{"sig":"MEQCIHqGhJVN4t9eOw+SFF+xEHIO1p6BjYHh+9V4+sR3SUBRAiAoXIahYb+ICdb22hugHxlB8cIt5ITYn+ytQG9rs9NmXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIELAW/P3EphBCdoE8+a99jznPP8rlWJ7Wr0Gy2KJSJdbAiBGp5SD+vmpu4/+LX0vPLSTq+WbQ1sbCT6Q5huNqINUVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988045},"engines":{"node":">=18"},"gitHead":"f91a3e8e3af678e443075f1dda083031285e0707","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.7_1789057176646_0.736958400513603","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"fully-completely","version":"0.2.8","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.8","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"37d40bcd8d6b98380d1789382fbc1f11bfeddca3","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.8.tgz","fileCount":56,"integrity":"sha512-rNA+xdTtzm1xseJeiB4xgyMXXVhA+EagnzjCUaIdDgRkwgmIG+FfYR2kK3ew5JFpaD7L71Sq9hUI+66gLUuiiQ==","signatures":[{"sig":"MEUCIQC2AMdgOAGk/T/tQqbkPrhXoB4sH0CKv/seGaLUMhHFagIgFhmzk7CNY2IE4Lh0vuNLa9rnTS12yj2sa4arTDlv6XY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB3Z/zRmVOzYeuVvb1iGEXPv3EUkX9QV8lVJmIDUhB9GAiEA6qYxLxV+4UV1BvaUOcRoYw/NVarWxcza8X+EEP+x0+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":730397},"engines":{"node":">=18"},"gitHead":"7d98cc9bef72d9ed19e0e7d929cc3cf213898519","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.8_1789061586828_0.5541678993281614","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"fully-completely","version":"0.2.9","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.9","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"0ca858d71d3099b2b95ad496156efbd469aada87","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.9.tgz","fileCount":56,"integrity":"sha512-OPz6tqOx8xO8FpN3B5OyOWtEwCmsX6mr9wlXoqeKw1/LijoK0xsMv3DoyqVFYRg/4qIzzPP+X9zjKwyYpt1FYQ==","signatures":[{"sig":"MEYCIQCLVpmwrL+lsE7VWO6XY2wAyMHQfrHhpjuvtlOK0cf5OAIhANM3Z2d89WnR7q80+9dubFtUahUxGO9BKr+zOZ83QEGP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCT2fY+MbCmVz5CqEO52rEginPoyT9PUyHlqt9c5hFrvQIgfDIDhbPfgzh1joGQqBULWVV7zAyDdQa3QXuGFePRw4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":738935},"engines":{"node":">=18"},"gitHead":"b2fb87191503b973f007494168aff3d48d5b6d98","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.6.2","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.9_1789089140577_0.7299427646744716","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"fully-completely","version":"0.2.10","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.10","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"2671534aa3086a0e8a6a6073434c0a188803439c","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.10.tgz","fileCount":57,"integrity":"sha512-zpuP5F+spaNkdcY5ozduejXHAg7D2yeociOK0J6ONF9/lUd3aA67bGbUWAdFvEHOF1y/lI7kXG3V6/ZX7pmQWA==","signatures":[{"sig":"MEQCIBg72AY7u+eBFmObmBeR9QZX/GSRf+eBH/SOjYVWcxavAiA+UUMKaZ9ef4uvoqIz7aJoFdVHhPglkx0e0quXkwbVYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAW5mlTYMBCiefmPRWMRKVD860PyIjVNIAtxd2+9xwZIAiBMZ6rkfpp5O1JJOH3Uwl6VgJ2APnuW/61nL8W0ePeDwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":806281},"engines":{"node":">=18"},"gitHead":"6283d8b9817d447e61790e14f63230fa00a29106","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.10_1789441772743_0.21984208141472994","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"fully-completely","version":"0.2.11","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.11","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"e7a4bca58d964022fe0e88833e70887e9f74dbf1","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.11.tgz","fileCount":57,"integrity":"sha512-l6bCfxkSUWvElIuanUoZNXeC/o7mPcKVjNi4uO2CmSbatDOB7vopC3Elg1X6dTDjki5O8OtON90KHXebL6c5KQ==","signatures":[{"sig":"MEYCIQD+wfQF8EaigMhSyf3V979SoRVxe4QLk8UT5dNGCECPMQIhAKfifBl/4n94Zfis0uL4X0oJKDoooZptYNwnX+P+mKbb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBjKVZ3FVC5JS5/p1cA+Wu0o++rN0DB48u1NsTaDvCKFAiApNitp3eVF5QRWYvKRbZlcEEGMGRhVr7z4B95VUhl1rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":816195},"engines":{"node":">=18"},"gitHead":"c79f476e1cdda7f1106bd3f6938392e6d953b1c1","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.11_1789484350245_0.29272693644154946","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"fully-completely","version":"0.2.12","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.12","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"3bc2498855f24d50865e17a4423661b2660be1f0","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.12.tgz","fileCount":57,"integrity":"sha512-RlPSIeJemCOG4/rgTpBpWbZedJqxjhzuZErZn89foLA3vDWhNEE0rof2XNhx9lpCat8chqzPF3w2ntJfoHrGOg==","signatures":[{"sig":"MEYCIQDwhyCu0DkQHlqBv1fPqhj/j49xu7jsyM6sfUFnHnaREwIhAM6C4eoWRp8ONynrmkgwwq1GFomyr6s1ZlqYJImgMYn5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC4/A9KwjLcc4Zp3hTT2MoW+L3NzFLAwFYD9kdcp1ihtwIgDrlfsy0AQ3IZ5GJFD5VG3hOQfmq6dkhRy85jOZ+ZNtU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":836390},"engines":{"node":">=18"},"gitHead":"a21fcbd1627ac7c7429e54ae629f4f976da781b3","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.12_1789497762318_0.9912722733238142","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"fully-completely","version":"0.2.13","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.13","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"b3aa6ac4520a8a640c8ecd789cf63019a7b08a7d","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.13.tgz","fileCount":57,"integrity":"sha512-4VdXJMmlzR9vIh6fAmjir2DFu8ep0TfvjC1DbpY/aqLqoSbWoaveHy1H7HAJsMxnNq8Xb8fQrURmDrmR6A/o5g==","signatures":[{"sig":"MEQCIAMoshiTxvik02KP4zR9uH4DwK0KZ6SA8Wh4DDMUEN6pAiANcqLfS+2HT0A81FlXqcaDtADmma3Rg+IwAuVGQwJtOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA9F6VbQK8HRLszV0pKOom8VV/KOp33f7/Wr3rs/JXjhAiBOhl8f9dKgP4QWIyclIHXSYEXyYhai1FPX6JuYIPGLVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":855751},"engines":{"node":">=18"},"gitHead":"30507ce2e30db5e0e951fb78f64093e02a91d5ad","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.13_1789581301834_0.5711424072600888","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"fully-completely","version":"0.2.14","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.14","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"0a2a943394d6d83c68a68d949a81fcef6f19f5ef","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.14.tgz","fileCount":57,"integrity":"sha512-11IuuzZF4+CPX/7qgCaNkGh7a1q/0MGVgIBeIOU8slic3KitBnRmrkNb+Vr9EWBXh49Qi3UYPhyiZahkVc+bNA==","signatures":[{"sig":"MEYCIQCWdVTK/YtRkLYkyGzicfjgbItH2ftOuuRbEzSL5azuagIhAK8iZKERxouOfZSh6GzdQgSiIWRqntA+8HJ52QQ+qjVZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDAAJ4iyzIQu/cBX2wNkml/DnYzyLUj0WaE43IEMyuoOAIgJnjBpbUvtQ8vuTS9EThsGGnx5dC23Jcy8bF60Hmlyho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901492},"engines":{"node":">=18"},"gitHead":"c49185b8d55cd7e8ea3879c73c490ef6f1881816","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.14_1790013287892_0.9973707194310948","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"fully-completely","version":"0.2.15","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.15","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"9481c56d69e10de33bc0c4e771923cdb318a4e15","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.15.tgz","fileCount":58,"integrity":"sha512-RV1spvRllIoI2TMcrsqeFzI2gg+IaC6TU3sd05SBcVRn1kpNB7byHD2igvBlQtX8lgRRcGMjIWGpfHyUAaOmAw==","signatures":[{"sig":"MEQCIFhc5TVu/pV9ISQ154FHLwmtq9wxs2aNrLRnXl3ixsdRAiAZrSgTLxeHUBwfsFUU+PgLeGlKoY3zvSgil+h8nAxB3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEGEz9KyE9QC8QnVu57HjmlRWsUP7Tn5AjUbLVm1Sdf0AiEAwJjZwAJjEoLH5poXq1GWwV+zrqYSsN9a5NdFCqYrAmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":942014},"engines":{"node":">=18"},"gitHead":"05739f838ae26e76d5eb184873dd204491143216","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.15_1790018022316_0.5902813669157194","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"fully-completely","version":"0.2.16","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.16","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"541dc29ee9c70baee31dcbc7a6741688a69f45f3","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.16.tgz","fileCount":58,"integrity":"sha512-PTkexdr9Q+AZ7qJpIIah48fjzO5xpugm73f+brtyP0lAGIZGM4ZtCW1gU49DK43KHrJebI83TI4qsgelGwSp9g==","signatures":[{"sig":"MEYCIQCZVLEx38eMtkkCAJwOe0ea0MYKntdhMuU0nU5KQSXHegIhAOTJMiq1/zKAX0b7jcZCSCF7GvJVjmGrPgrG2j187fIK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDAwpWa1pGkFrzSFh9CSCYawHs2je2A4Ul8oz33kP60XgIhAJqbHWaww/EyIRXc7t6+pTsCeHBNxPCdUUT0IRz3AhPK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":962932},"engines":{"node":">=18"},"gitHead":"d72255a48a282090259bc740c3883ac248ff96eb","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.16_1790022388588_0.8400176388570129","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"fully-completely","version":"0.2.17","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.17","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"67a8328d11f8514eba3fb4d299e945819f788050","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.17.tgz","fileCount":59,"integrity":"sha512-RaDpSGHpejPtFoX64Vg/Y9rWsEmlbdUMW5xDWz/e+/MBUbEG4Q27bZOwwPq4B+uYUrfuW9j7E2cgY8En6j/UKw==","signatures":[{"sig":"MEUCIG+/PyZ5ncknDto+Wpd83hpB0XpL8sEVcspFuD3oOc3IAiEA8mBBConZhh20aqtqs5U/f7p5fm5v4MUPRK33JSQb3bw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCXUgWI29J48U6QSl0M8FgywraXkegwy9HMDtzkK58oyAIgQ0oUY4XrIxwn/Rvs5R4g1z6T6eyW5X+1OdF4FEBNLIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":985317},"engines":{"node":">=18"},"gitHead":"d522c43e2a17278d08f1a4507cbdb12abbea37c9","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.17_1790038825021_0.5153067238055946","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"fully-completely","version":"0.2.18","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.18","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"5609ee6ea54726cff00d8793278916e9e96d1cdf","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.18.tgz","fileCount":59,"integrity":"sha512-nbQNkk+uJmrBQPV/8syuQ36lxk4earrrTUdYuVXvKFRSTlDWzFYijR/NrgDJlIfrDLnSlggZSgHimm1cG0P4jg==","signatures":[{"sig":"MEUCIERXjNVKA+7lOIr1w9khlCzF3GFaEnKicsNQvbGxJHwaAiEAwg/eBDD3EOreX8ODN08og4Kk/CRpYCOENFFs2LaU8TM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHIHGHa/BO15f3DcKcBqrsD5ITTGwRjEsjw6CfVN3HVqAiEAkOTEi4b0x+22NXa8EIeou9Ap1qSZ1ZF65K7iYuyGvS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":995154},"engines":{"node":">=18"},"gitHead":"3b3ffd7e6f899c482f45aa9655a36d8717df7274","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.18_1790049215875_0.7473927923852519","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"fully-completely","version":"0.2.19","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.19","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"27fb2e92d8db86a713d580e57b5316941fc7843f","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.19.tgz","fileCount":59,"integrity":"sha512-LoS+KF0I/rmTrQgWOL5HC7T/2RR/2w2sqSU5qUPjRGLDLsLsMdCk9WCd3FNtAegjIRcSuI/ddwo+FncpJZwjmg==","signatures":[{"sig":"MEUCIEaWbVl3Yr+EImTfQHgGTwNpL/FXBRWkcuXlDMSOHV9VAiEA9dWGIr4SKpQQtfdEEuWYMUSE9IjjVB435DGeJd5rfVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLQMpQfQ5HJa9ReoJt04ylX/i5Bb7EZIBDo7D3/1gtUwIgQ+gGERoVAIU/vdhZTEhAhIbvTnDSD2Pr4+Qa57F6c1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":999018},"engines":{"node":">=18"},"gitHead":"3cc6b909b4e932226abe93202ba34aecc18719d6","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.19_1790139448049_0.43885870690343376","host":"s3://npm-registry-packages-npm-production"}},"0.2.20":{"name":"fully-completely","version":"0.2.20","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.20","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"b34ec2e14793040bea03eccd9e9e1fd66272d37e","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.20.tgz","fileCount":59,"integrity":"sha512-7WOZiHHlTiujNMbeSkwnuE92AAD6Ivkjfeh5dWXJeke3o/r50/2IJ2Ii89SVdsVhUYEJwFdTCfrCkV3GqxrzZA==","signatures":[{"sig":"MEUCIGrAQkhsEXHQ64zjoq1AFpA0KG6uK98VMx6H6hryrueZAiEA54pXEmWRSP+K325LLoN2XlMs67SvbPAzWfzspSvWLLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHAGgCV02elZPr0/8MEsSus775anXxNcdjuU79bWWtBkAiB3JPg935cf36o3UscjI9es2dGQ5cj64CfgOH9ZJkpDCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004714},"engines":{"node":">=18"},"gitHead":"0426b018ee192cde6da79d818fe77dade876f998","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.20_1790178175433_0.4413281381493064","host":"s3://npm-registry-packages-npm-production"}},"0.2.21":{"name":"fully-completely","version":"0.2.21","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.21","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"9c21f4bdfae338f7636620e2d90a5fc5ff90161c","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.21.tgz","fileCount":59,"integrity":"sha512-R4EKMv52botLxpUsP901E3lcoIetlLDACOfgS7j188MpgxonuRT9gNZnzhLPnztTGeRW5Iiu72XGU1k72sBQLg==","signatures":[{"sig":"MEYCIQCG6laxWG3m57P/MrCGg6wweYDehuZDdjfhdHRj9haIrgIhAPj7E7T2mZRCrM4lWNGBY9KbypRCTLyUb4oawLCTxHkJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCz1mQWHW0U808tAckFqq4qGY5ELu6I4PGJ8xO27U+4RwIhAKfpF0X6xKKhirlcbOs+2843U7y3ppcb/ndt36LIHta3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1010688},"engines":{"node":">=18"},"gitHead":"71ac0165b21df520eb0043a2a16c9220a5d8ab05","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.21_1790197619082_0.3658377893818441","host":"s3://npm-registry-packages-npm-production"}},"0.2.22":{"name":"fully-completely","version":"0.2.22","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.22","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"01848fe82e368267be0070d257df0f12487ab5e4","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.22.tgz","fileCount":59,"integrity":"sha512-oI3jirxN6DEC8baFfa/eMuCDRPCtlmr+uLikv/Wkz6+2ZtTjsj6b+spNAoFi4pZ8HT9ZLu2lAJK4NoUB5QAvXA==","signatures":[{"sig":"MEQCIBoDh1PMIQyBFbY57P/JnhPl9LfP7Nyr7K+BVxONgTx4AiBr05A0lewIAZq9neoYqyr7UuYOdLjvb9o/66Viw18SFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGYCaQwo9DlX0HlBcImVi1uUH4olCMGtsILq6wCdvvLbAiEA+V3/j2hXn1L08qoqsy2xo3oF7UrpjKgPoK9yIqfrBDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1027530},"engines":{"node":">=18"},"scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.22_1790206147994_0.19203274925040614","host":"s3://npm-registry-packages-npm-production"}},"0.2.23":{"name":"fully-completely","version":"0.2.23","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.23","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"73eb59415c2179ab689671612cad84d19b740d3a","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.23.tgz","fileCount":59,"integrity":"sha512-Jd6IReMF1wtYAGro8aUZZa5CP3c0G4wuCNl/Y+cAoiIXNbr0Os9KIpcvxQTQQQL8tIL7BF1dMF1YBjy/uZ5TYA==","signatures":[{"sig":"MEUCIFJx0karrG/hUhxQR7sDOHwjEyH8IkfO9uWJi3w+R5CMAiEAuSNh0o4VUTtKmcF6RGKFdh121lu2UYJpGD1B9088baY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDwhmRJ28lsKBKwkwyzvdNkfXiwhpSfOgzq6k0Hx3LtdQIhAJnpo2Q302pd3wEY+R2yhpoOI/QTtEjkPKuDFsOKxToL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1032124},"engines":{"node":">=18"},"gitHead":"460210822833398515b9b5d5f25d0351323eeac0","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.23_1790216522342_0.03850551160355553","host":"s3://npm-registry-packages-npm-production"}},"0.2.24":{"name":"fully-completely","version":"0.2.24","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.24","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"ba12b6ba29460ee3a32b42e3a22f6c7c855e4334","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.24.tgz","fileCount":59,"integrity":"sha512-ngM1yAPEdSQnnl1/49mOmuzrTa+cpICSWgXvm5U+bbfYyAiabZ3De820dzsR+AWjSQqb6Vgp46cp6EkU9rVBbg==","signatures":[{"sig":"MEYCIQDlbkx9XjDe4ukV9GGu9YoBREMZ9U+F35Vig3j7BOmGaQIhAK7RAv29lnf4MMNJ0hn7dABG1PhgiIWeHIULocB0K2F4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG2yTEfznFqaQqJEbm6t631vCJHE6HeLDL6T7P6JcIy6AiEAlF4EAr0uxQIPnvVT7Y8axnuWqDjd9TBhFfQiAa0G9G4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1049371},"engines":{"node":">=18"},"gitHead":"8ff398875c981e7cef7af15bc04cbcca96c41935","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.0","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.24_1790221940917_0.17333963289500653","host":"s3://npm-registry-packages-npm-production"}},"0.2.25":{"name":"fully-completely","version":"0.2.25","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"author":{"name":"Chris Hobbs"},"license":"MIT","_id":"fully-completely@0.2.25","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"bin":{"fully-completely":"scripts/install.js"},"dist":{"shasum":"6ce996b24248bc2f9ad4a17bf5b4f97660309072","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.25.tgz","fileCount":62,"integrity":"sha512-BuYMEszkeLFfsnbEwm0gXKG6I+k6Q1qnKU4GU6PZxn7iTki9Q6EZ7dIwQLee/VU9jhndQvggC2JYJw7mcFMiJg==","signatures":[{"sig":"MEYCIQDn9rNrBv+XBHDR5YP1sW5y98og6TKzm8uGEUZni5WmxQIhAMlaQHUSDfc+B+xOCZvqmeh7pBNffunyRvaayN1gV5P8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCy6icpCARBWmO9su3jjy3uD3kAknuPwceDfmZdawfrWQIhAJRLX3FDoTvZTQMqJS1O4bCaRnOCNtcNE34MgRcDCBzm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1074235},"engines":{"node":">=18"},"gitHead":"03b3ab8fb8771f84df68d9628c72a50681d7db76","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.1","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"_nodeVersion":"26.10.0","dependencies":{"fully-completely":"^0.2.24"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fully-completely_0.2.25_1790709897602_0.5012996458218746","host":"s3://npm-registry-packages-npm-production"}},"0.2.26":{"_id":"fully-completely@0.2.26","bin":{"fully-completely":"scripts/install.js"},"bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"dist":{"shasum":"7fe983c492d519a743f5d661168123abdef2746f","tarball":"https://registry.npmjs.org/fully-completely/-/fully-completely-0.2.26.tgz","fileCount":62,"integrity":"sha512-iQN0wWnuJEwLFnlSujX0BmW1YXr7Z4Z1fQ2m+BgFhUG2rzasF5+JjEV4qrCG37Vv4BIq+Glw8uEN39KyI72wIg==","signatures":[{"sig":"MEQCIFrnegaKfmelqVgDk8iw/L8kguJGg1EYUVHyG1nPnbuTAiBdfbFbX4qpE2QWy81Tm/LmuKXrb+BTfg5KxuhEI/423A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+4ApZ+jrHqXquFsliPDddLTXz4G7ebKbjrHdYBqMkcQIgLflhvaMjgYBYA6nRtOH7Io4xOjdFC7u81yUqKVwCKug="}],"unpackedSize":1075622},"name":"fully-completely","author":{"name":"Chris Hobbs"},"engines":{"node":">=18"},"gitHead":"76fd27a6d17f4604303ec62e3e21176f93d35a51","license":"MIT","scripts":{"baselines:check":"node scripts/baselines/check-staleness.js","baselines:generate":"node scripts/baselines/generate.js"},"version":"0.2.26","_npmUser":{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"},"homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"_npmVersion":"11.19.1","description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","directories":{},"maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"_nodeVersion":"26.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fully-completely_0.2.26_1790711619640_0.8743240427105221"}}},"time":{"created":"2026-08-16T20:33:26.473Z","modified":"2026-09-29T19:53:39.939Z","0.1.0":"2026-08-16T20:33:26.686Z","0.1.1":"2026-08-17T19:52:46.835Z","0.1.2":"2026-08-17T20:41:19.634Z","0.1.3":"2026-08-29T02:28:45.297Z","0.1.4":"2026-08-29T19:07:18.887Z","0.1.5":"2026-08-31T22:02:09.996Z","0.1.6":"2026-09-01T04:43:24.485Z","0.1.7":"2026-09-01T05:27:37.487Z","0.1.8":"2026-09-01T06:05:03.582Z","0.1.9":"2026-09-01T06:34:58.993Z","0.1.10":"2026-09-03T15:26:18.547Z","0.1.11":"2026-09-03T17:33:46.871Z","0.1.12":"2026-09-03T22:19:43.908Z","0.1.13":"2026-09-03T22:41:32.567Z","0.1.14":"2026-09-03T23:50:22.185Z","0.1.15":"2026-09-04T14:32:02.756Z","0.1.16":"2026-09-05T03:40:03.453Z","0.1.17":"2026-09-05T05:23:35.728Z","0.1.18":"2026-09-05T14:35:18.043Z","0.1.19":"2026-09-05T20:01:01.945Z","0.1.20":"2026-09-05T20:58:11.341Z","0.1.21":"2026-09-06T02:04:38.692Z","0.1.22":"2026-09-06T14:38:36.590Z","0.1.23":"2026-09-07T03:01:12.392Z","0.1.24":"2026-09-09T01:13:25.064Z","0.1.27":"2026-09-09T02:04:23.704Z","0.1.28":"2026-09-09T03:53:43.520Z","0.1.29":"2026-09-09T04:52:04.724Z","0.2.0":"2026-09-09T05:54:13.194Z","0.2.1":"2026-09-09T20:27:37.843Z","0.2.2":"2026-09-09T22:15:26.324Z","0.2.3":"2026-09-09T23:08:13.952Z","0.2.4":"2026-09-10T05:14:28.983Z","0.2.5":"2026-09-10T14:02:53.684Z","0.2.6":"2026-09-10T15:12:01.934Z","0.2.7":"2026-09-10T16:19:36.746Z","0.2.8":"2026-09-10T17:33:06.952Z","0.2.9":"2026-09-11T01:12:20.664Z","0.2.10":"2026-09-15T03:09:32.879Z","0.2.11":"2026-09-15T14:59:10.339Z","0.2.12":"2026-09-15T18:42:42.417Z","0.2.13":"2026-09-16T17:55:01.951Z","0.2.14":"2026-09-21T17:54:47.988Z","0.2.15":"2026-09-21T19:13:42.456Z","0.2.16":"2026-09-21T20:26:28.785Z","0.2.17":"2026-09-22T01:00:25.109Z","0.2.18":"2026-09-22T03:53:35.962Z","0.2.19":"2026-09-23T04:57:28.134Z","0.2.20":"2026-09-23T15:42:55.522Z","0.2.21":"2026-09-23T21:06:59.181Z","0.2.22":"2026-09-23T23:29:08.125Z","0.2.23":"2026-09-24T02:22:02.459Z","0.2.24":"2026-09-24T03:52:21.006Z","0.2.25":"2026-09-29T19:24:57.721Z","0.2.26":"2026-09-29T19:53:39.746Z"},"bugs":{"url":"https://github.com/chrishobbsrocks/fully-completely/issues"},"author":{"name":"Chris Hobbs"},"license":"MIT","homepage":"https://github.com/chrishobbsrocks/fully-completely#readme","keywords":["claude-code","sprint-workflow","ai-agents","multi-agent"],"repository":{"url":"git+https://github.com/chrishobbsrocks/fully-completely.git","type":"git"},"description":"Six-role Claude Code sprint workflow, with enforcement mechanics that actually block a sprint from closing until both QA gates pass.","maintainers":[{"name":"chrishobbs","email":"chris@aheadbyacentury.ventures"}],"readme":"# Fully Completely\n\n[![Scan and smoke test](https://github.com/chrishobbsrocks/fully-completely/actions/workflows/scan.yml/badge.svg)](https://github.com/chrishobbsrocks/fully-completely/actions/workflows/scan.yml)\n\nYour six-role sprint workflow (Master Controller, Dev Team 1, Dev Team 2,\nQA1, Pipeman, LiveQA), with enforcement mechanics built to make it\nstick: a state file per sprint, slash commands as the only way to move\nthings forward, and a script that refuses to skip steps.\n\nThe key difference from a simple \"ask the agent nicely\" workflow: closing\na sprint is not optional-honesty, `/sprint-complete` will not run unless\nQA1's audit and LiveQA's live test have both actually been recorded\nas PASS, **and** the user has explicitly authorized closing it right now\n(`--user-said \"...\"`, required, non-empty — both gates passing tells you\nthe code is ready, not that the user has decided to close it). Try to\nclose early, or without that authorization, and it tells you exactly\nwhat's missing.\n\n## What 0.2.0 means\n\n**0.2.0 is a milestone release, not a breaking one.** Nothing about how\nyou install, run, or configure this framework changes. Every change\nsince 0.1.6 has been additive or corrective, and this release is no\ndifferent — if you pin this package and re-verify your contract against\nevery published version, there is nothing here that requires that work.\n\nThe version number marks that the framework's own debts to itself are\npaid: [0.1.23](CHANGELOG.md) read what the package discloses about the\npeople who build it and scrubbed what it found, [0.1.27](CHANGELOG.md)\nre-graded its own permission findings honestly rather than leaving\nfourteen of them cited as settled on evidence that didn't establish\nthat, and this release makes the sprint record durable at the moments\npeople actually rely on it — committed when a gate depends on it, and\nrecorded rather than silently dropped when it changes underneath a gate\nmid-flight. See [CHANGELOG.md](CHANGELOG.md) for what every published\nversion actually changed.\n\n## What's here\n\n```\nCLAUDE.md                     Root instructions (read this first)\n.claude/agents/                Six agent personas (Master Controller, Dev\n                                Team 1/2, QA1, Pipeman, LiveQA)\n.claude/commands/               Slash commands, thin wrappers around the\n                                script below\nscripts/sprint_lifecycle.py    The actual enforcement logic\nscripts/run-lifecycle.js       What .claude/commands/ actually run — finds\n                                a real Python 3 (python3/python/py) and\n                                hands off to sprint_lifecycle.py above\nscripts/dev2_worktree.sh       Creates Dev Team 2's isolated git worktree\nscripts/smoke_test.sh          Full lifecycle test, runs in a sandbox\nscripts/worktree_test.sh       Tests dev2_worktree.sh, also sandboxed\nscripts/launcher_test.js       Tests the launcher's JSONC parser, task\n                                generation, and install.js's taxonomy +\n                                merge logic\nscripts/launcher/               VS Code launcher: run-role.js, generate-tasks.js\nscripts/install.js             Installs/upgrades this framework into\n                                another project — see \"Install\" below\nscripts/verify-tarball.sh      Installs from a real `npm pack` tarball\n                                into a throwaway project before a release\n                                ships\n.vscode/tasks.json             Generated — one task per role, plus Shell\n                                (don't hand-edit)\n.vscode/settings.json          fullyCompletely.autoLaunch toggle (off by default)\ntemplates/sprint-template.md   Template used by /sprint-new\ndocs/sprints/                  Where sprint files and state live\n  0-backlog/  1-todo/  2-in-progress/  3-done/  4-blocked/  5-abandoned/\n  state/                       One JSON file per sprint tracking phase +\n                                gate results (don't edit by hand)\n  registry.json                Index of every sprint (created on first\n                                /sprint-new, don't edit by hand)\n```\n\n## Install\n\n1. Copy this whole folder into your project, or run\n   `node /path/to/fully-completely/scripts/install.js` from inside your\n   project (see [`scripts/install.js`](#launching-the-agents) below) —\n   re-running it later cleanly upgrades the framework files it owns\n   (backing up what was there first) while never touching files you're\n   meant to customise, reporting anything it skipped either way.\n2. Requires Python 3 and Node.js, no packages to install for either.\n   Runs on macOS, Linux, and Windows. `install.js` checks for a usable\n   Python 3 interpreter (`python3`, then `python`, then `py`) and warns\n   plainly if none is found — it doesn't block the rest of the install,\n   but no `/sprint-*` command will run without one. Verify yours with\n   whichever of those three prints a `Python 3.x.y` line. A python.org\n   install on Windows registers `python`/`py`, never `python3` — every\n   `/sprint-*` command already accounts for that by running\n   `scripts/run-lifecycle.js` instead of hardcoding an interpreter name.\n   The shell scripts (`smoke_test.sh`, `worktree_test.sh`,\n   `dev2_worktree.sh`) need a POSIX-style shell, which Windows users\n   typically already have via Git Bash or WSL; they aren't required to\n   use `sprint_lifecycle.py` itself.\n3. **Log in to Claude once before first running the launcher.** Open a\n   normal terminal, run `claude`, complete login, then exit. The launcher's\n   preflight check blocks with a clear message when Claude reports no\n   usable credentials — a genuine logout or a broken config directory both\n   land here, since either way no role could authenticate — instead of\n   leaving terminals stuck at a login prompt. It otherwise proceeds (a\n   probe it can't get a confident answer from at all, e.g. an older CLI,\n   is never treated as \"no usable credentials\").\n4. See \"Launching the agents\" below for both the VS Code launcher and the\n   fully manual fallback (open a terminal tab per role yourself).\n\n## Launching the agents\n\nEach role runs as its own genuinely separate Claude Code session — never\none session sub-agenting another, that's forbidden absolutely (see\n`CLAUDE.md`). The six sessions are `claude --agent <id>`, where `<id>` is\nthe agent's filename in `.claude/agents/` (`master-controller`,\n`dev-team-1`, `dev-team-2`, `qa1`, `pipeman`, `liveqa`). `--agent` alone is\nenough: with no `--model` flag, the CLI itself reads that agent file's own\n`model:` frontmatter directly, and this launcher never passes `--model` on\nthis path — frontmatter stays the single place a model is set.\n\n**Never add `--model` yourself: it now WINS over the frontmatter, not the\nother way around — measured, `claude 2.1.280`** (a real regression from\nthis project's own sprint 12 measurement at an earlier CLI version, so\ntreat this precedence as a property to re-verify at the current CLI\nversion, not a settled fact — see `CLAUDE.md`'s own team-table section for\nthe full measurement). Naming a value there silently overrides that\nrole's intended model instead of having no effect.\n\n**By hand:** open a terminal tab per role, `cd` into the project root, run\n`claude --agent <id>`, and you're running that role.\n\n**VS Code launcher:** `.vscode/tasks.json` (generated, see below) gives\neach role a task named exactly after it — `Master Controller`, `Dev Team\n1`, `Dev Team 2`, `QA1`, `Pipeman`, `LiveQA` — since a task's label is also\nits terminal's tab name. Every one of those is \"smart\": it resumes a prior\nsession automatically if one exists for that role in this repo, or\nlaunches fresh with a short first message confirming the role and telling\nit to check `docs/sprints/registry.json` and wait for instructions. There's\nno local record file involved — each role's session ID is a UUID derived\ndeterministically from (role, repo path, generation), a generation being a\nzero-based counter that only advances on `--restart` (see below), so it\ncan always be recomputed rather than remembered. \"Does a prior session\nexist\" is answered by checking, for each generation in turn, whether\n`~/.claude/projects/<encoded repo path>/<uuid>.jsonl` exists on disk — the\nhighest generation found is the one resumed — not by trusting anything the\nlauncher wrote down earlier. There's also **Shell**, a plain login shell\nwith no `claude` in it at all (your own\n`$SHELL` on macOS/Linux, PowerShell on Windows) — for\n`docs/HUMAN_OVERRIDE.md`'s override command (which must never be run from\ninside an agent session, see that file) and any raw git you want to do\noutside of Pipeman's session.\n\n**FC: Start All** — Command Palette → \"Tasks: Run Task\" → `FC: Start All`\n(or `Cmd/Ctrl+Shift+B` if it's your default build task) opens all seven\nterminals in the project root using the smart per-role behavior above.\nObserved as safe to run again later in the same window (VS Code left each\nrole's still-running dedicated terminal alone rather than restarting or\nduplicating it, so re-running this just filled in whichever of the seven\nweren't already open) — from one real test, not something that's been\nexercised across VS Code versions or checked any other way.\n\nThere's deliberately no separate \"restart\" task: VS Code ties a dedicated\nterminal's identity to the task's label, so a second task for the same\nrole opens a second terminal alongside the first instead of replacing it\n(this actually happened — six roles briefly had two terminals apiece\nbefore this got caught). If you want to abandon a role's session and\nstart clean rather than continue it, run this by hand instead, e.g. from\n**Shell**:\n\n```bash\nnode scripts/launcher/run-role.js qa1 --restart\n```\n\nThat starts a brand-new named session for that role right there in\nwhatever terminal you ran it from (previous history isn't deleted, just\nnot reconnected to). It becomes the current session for that role purely\nbecause it's now the newest one on disk — the next time you run that\nrole's own task, the resume check finds it as the latest and reconnects to\nit. Close the role's stale existing terminal tab yourself once you're done\nwith it.\n\nDev Team 2 is the one role whose working directory can legitimately move\nmid-sprint (into a separate git worktree, see \"Customizing\" below) — the\nlauncher itself never scans for or manages that worktree, it always\nreopens Dev Team 2 in the project root and adds one extra line to its\nresume message telling it to check the sprint registry and `cd` back into\nan active worktree itself if one exists.\n\nEach task's terminal gets the color from that agent's `color:` frontmatter\n(VS Code only supports the ANSI terminal palette for this, so Dev Team 2's\norange and LiveQA's purple are the closest available shades, not exact).\nColors and the auto-launch setting below are baked into `tasks.json` at\ngeneration time, not read live — after changing an agent's `color:` or\n`.vscode/settings.json`'s `fullyCompletely.autoLaunch`, regenerate it:\n\n```bash\nnode scripts/launcher/generate-tasks.js\n```\n\n**Auto-launch:** `.vscode/settings.json` → `\"fullyCompletely.autoLaunch\"`,\n`false` by default. Set it to `true` and regenerate `tasks.json` to have\n`FC: Start All` run automatically whenever this folder opens in VS Code\n(VS Code will still ask you to trust automatic tasks the first time, that\nprompt is native and this doesn't try to bypass it).\n\n**Errors:** if `claude` isn't on PATH, or an agent's `.claude/agents/*.md`\nfile is missing, the corresponding terminal prints one line explaining\nwhich and exits, rather than silently doing nothing.\n\n**`scripts/install.js`** copies `.claude/`, `scripts/` (including the\nlauncher), `templates/`, `docs/sprints/`, `docs/HUMAN_OVERRIDE.md`, and\n`CLAUDE.md` into an existing project, run from inside it — and, from\nsprint 2 on, upgrades cleanly on every later re-run instead of just\nflagging drift:\n\n```bash\nnode /path/to/fully-completely/scripts/install.js\n```\n\nEvery path it touches falls into exactly one of three categories:\n\n- **Framework-owned** (`.claude/commands/`, every `scripts/` file\n  including `scripts/launcher/**` and `install.js` itself, `templates/`,\n  `docs/HUMAN_OVERRIDE.md`) — files this project ships and maintains, that\n  you're never expected to hand-edit. On an upgrade these are **overwritten\n  when they've changed**, with the previous version backed up first\n  (`<name>.bak-<version you had installed>`), and any file that's no\n  longer part of the framework at all (`state.js`, deleted in sprint 1, is\n  the file that motivated this) is backed up and removed the same way.\n- **User-owned** (`.claude/agents/`, `CLAUDE.md`, `docs/sprints/` — this\n  project's own sprint data once installed) — designed to be customised,\n  or simply not this tool's to touch. These are **never** overwritten; a\n  file that differs from upstream is reported as a conflict for you to\n  reconcile by hand, same as before.\n- **Merged** — `.vscode/tasks.json`, `.vscode/settings.json`, and\n  `.gitignore` get a real merge (your own unrelated tasks/settings/ignore\n  rules are left alone; only this framework's own entries are added, and a\n  couple of specific dead `.gitignore` lines from old releases are removed\n  if present in exactly that form).\n\nA small marker at `.claude/fully-completely-version` (not sprint state,\nnever under `docs/sprints/`) records which release is installed, so a\nre-run can tell a first install from an upgrade, name backups after the\nversion being replaced, and report `Installed X (first install)` /\n`Upgraded X -> Y` / `Already at X`. This is also the shape\n`npx fully-completely` runs — before any release ships, `npm pack` is\nverified for real via `scripts/verify-tarball.sh`, which installs from the\nactual packed tarball into a throwaway project and confirms the result\nmatches source. `scripts/launcher_test.js` covers the taxonomy (overwrite\n+ backup, removal, user-owned protection, a missing version marker\ndegrading to upgrade rather than crashing) alongside the merge logic\n(comments present, colliding task labels, CRLF vs LF), the JSONC parser,\nand generated task shapes, and runs in CI alongside `smoke_test.sh` and\n`worktree_test.sh`.\n\n## Using it\n\n```bash\n# Master Controller kicks off a sprint\nnode scripts/run-lifecycle.js new \"User auth with OAuth\" --epic \"Accounts\"\n# → fill in Requirements / Acceptance Criteria / Out of Scope in the\n#   generated file, then:\nnode scripts/run-lifecycle.js start 1\n\n# Dev Team builds, then hands off\nnode scripts/run-lifecycle.js qa1 1 --verdict PASS --notes \"clean\"\nnode scripts/run-lifecycle.js dev-done 1\n\n# Pipeman ships\nnode scripts/run-lifecycle.js ship 1 --commit abc123\n\n# LiveQA tests the live deploy — --deployed-commit must match what was\n# actually shipped, an exact SHA check, not free text\nnode scripts/run-lifecycle.js liveqa 1 --deployed-commit abc123 --verdict PASS --notes \"3/3 clean runs\"\n\n# Dev Team closes it out (same session that ran `start`, not Master Controller),\n# only once the user has actually said to close it, not just because both gates are green\nnode scripts/run-lifecycle.js complete 1 --user-said \"close it\"\n```\n\nIf you're running inside Claude Code, use the slash-command form instead\nof calling the script directly, e.g. `/sprint-qa1 1 --verdict PASS --notes\n\"clean\"`, the commands in `.claude/commands/` run the same\n`sprint_lifecycle.py`, through `scripts/run-lifecycle.js` (see above).\n\nCheck where anything stands at any point:\n\n```bash\nnode scripts/run-lifecycle.js status 1 --verbose   # one sprint, full history\nnode scripts/run-lifecycle.js list                 # every sprint\n```\n\n## The two gates a sprint has to clear\n\nA sprint only closes once two independent claims have both been verified:\nQA1's static audit (does the diff actually match the requirements) and\nLiveQA's live test (does the deployed product actually work). A clean\ndiff and a working live product are different claims, `/sprint-complete`\nwon't let either one stand in for the other, and refuses to close a sprint\nmissing either. If LiveQA's live test fails, the fix loop is Dev Team\nfixes → QA1 audits the fix (`/sprint-qa1 <N> --verdict ... --commit\n<hash>`, required before the next step, no override) → Pipeman\n`/sprint-reship` → LiveQA retests, without needing to redo the whole\nsprint. `/sprint-reship` used to ship a fix with no audit at all, by\ndesign; two independent downstream incidents of unaudited content going\nlive changed that.\n\nPassing both gates is still not enough on its own: `/sprint-complete` also\nrequires `--user-said \"...\"`, quoting what the user actually said, in that\nsession, authorizing the close right now. Gate status answers \"is the code\nready,\" not \"did the user decide to ship it,\" and the two aren't allowed to\nget conflated — Dev Team tells the user a sprint is ready and waits for\nthem to actually say so, rather than closing automatically the moment both\ngates go green.\n\nEarlier versions of this template ran QA1 twice, a static audit before\nshipping and a second \"final check\" after LiveQA passed. Across ~13\nreal sprints that second check never once caught anything the first audit\nand the live test hadn't already caught, so it was cut, LiveQA's PASS\nnow sends the sprint straight to complete-ready. The one thing the second\ncheck occasionally caught, a sprint file amended mid-build after QA1's\nfirst read, is now covered two ways: QA1 re-reads the sprint file fresh\nbefore recording its (single) verdict rather than relying on whatever it\nread earlier in a long session (see `.claude/agents/qa1.md`), and\n`/sprint-dev-done` mechanically enforces the same thing, a QA1 PASS\nrecords a hash of the sprint file, and dev-done refuses, no override, if\nthe file changed after that audit. Deliberately no escape hatch: an\noverride just relocates the judgment call from \"did I re-read\" to \"was\nthis change worth re-checking,\" which is exactly as skippable under\ndeadline pressure as the thing it replaced. If a re-audit of a trivial\none-line change feels too slow to be worth doing, that's a signal to make\nre-audits faster, not to add a bypass.\n\nThe same PASS also records the audited commit's tree hash, the content\nof its files, not its SHA. `/sprint-ship` refuses, no override, if the\ncommit Pipeman is pushing doesn't match it. Tree hash rather than commit\nSHA is deliberate: Pipeman's own process legitimately squashes or\nrebases before pushing, which changes the SHA without changing any file,\nand that has to keep working, only a real, unaudited content change\nshould block a ship.\n\n`/sprint-ship` (and `/sprint-reship`) also record the resolved full SHA\nof what actually got pushed. `/sprint-liveqa` requires\n`--deployed-commit`, the SHA LiveQA actually tested, and refuses if\nit doesn't match — an exact identity check this time, not a content\ncheck, since there's no legitimate rebase step between shipping and\ntesting live the way there is between auditing and shipping. Nothing\nhere has an override: a mismatch always means the live test ran against\nsomething other than what was actually deployed, closing the gap where a\nverdict could otherwise get recorded against any deployment, correct or\nnot. `/sprint-status` also flags a sprint whose most recent ship or\nreship landed after its last recorded LiveQA verdict, so a\nnot-yet-re-tested sprint doesn't require reconstructing that from raw\ntimestamps by hand.\n\n## Security notes\n\nThis was scanned with bandit and pyflakes (both clean) before being made\npublic, plus a manual check for the failure mode that actually matters\nfor a tool built around slash commands: a slash command works by having\nClaude substitute free text into a bash command string and run it. If\nthat free text (a sprint title, QA notes, an abort reason) contains a\n`\"` or `;` or a backtick, it can break out of the intended argument and\nrun something else entirely, this was verified, not theoretical.\n\nAll of this now runs automatically on every push and pull request via\n`.github/workflows/scan.yml`: bandit, pyflakes, and\n`scripts/smoke_test.sh`, a full lifecycle run including both fail-loops,\nthe close refusal (both gates, and the user-authorization requirement),\nand a regression check that the exact injection payload above stays\ninert. It runs on Python 3.9 and 3.12\nboth, so a future change that reintroduces a 3.10-only type hint gets\ncaught too.\n\nThe fix: every command that takes free text supports a `--*-file`\nvariant (`--title-file`, `--epic-file`, `--notes-file`,\n`--reason-file`, `--user-said-file`). The corresponding\n`.claude/commands/*.md` files instruct Claude to write the free text to\na temp file with the Write tool first, then reference that file in the\ncommand, so untrusted text never gets interpolated into a shell string.\n`sprint-start`, `sprint-status`, `sprint-dev-done`, `sprint-ship`,\n`sprint-reship`, and `sprint-list` only take a sprint ID, verdict\nkeyword, or commit hash, low-entropy values you'd type yourself, so\nthey were left as direct arguments. `sprint-complete` looks similar at\na glance but isn't: `--user-said` is free text (it quotes what the user\nactually said), so it gets the same `--user-said-file` treatment as\n`--reason` and `--notes`, not the low-entropy treatment.\n\nAlso fixed:\n- Sprint state and registry files are now written atomically (temp\n  file + rename), so an interrupted write can't corrupt them.\n- A stray `Path | None` type hint (Python 3.10+ only syntax) was\n  replaced with `Optional[Path]`, the script now runs on Python 3.8+.\n- Titles and epic names are escaped before being written into a\n  sprint file's YAML frontmatter, a stray `\"` in a title no longer\n  breaks the file.\n- Every read-modify-write span (a sprint's state, the registry's\n  `next_id` counter) now holds an OS file lock for its duration, so two\n  invocations racing against the same sprint can't interleave and\n  silently lose one side's update, exercised by a smoke test that runs\n  two `qa1` verdicts concurrently and asserts both landed. This uses\n  `fcntl` on macOS/Linux and falls back to `msvcrt` on Windows (stdlib\n  both ways, no new dependency), a first version imported `fcntl`\n  unconditionally, which would have broken every command on Windows,\n  not just locking.\n- `/sprint-new`'s template substitution no longer uses `str.format()`,\n  which would raise on a custom template containing literal `{ }` (a\n  JSON or CSS example block); it now does targeted `{id}`/`{epic}`\n  replacement instead, leaving any other braces alone.\n- `smoke_test.sh` itself used to `rm -rf` `docs/sprints/` directly\n  against whatever repo it was invoked from, both on start and via a\n  `trap ... EXIT`. It has actually destroyed a real downstream\n  project's sprint history twice. It now copies the script into a\n  throwaway `mktemp -d` sandbox and runs that copy, verified by\n  planting a canary sprint in this repo and hash-diffing it before and\n  after a full test run.\n\nIf you extend this with new commands that take free text, follow the\nsame `--*-file` pattern rather than embedding raw arguments in a bash\nstring.\n\n## Troubleshooting\n\n**\"The output looks plausible but the numbers/state are wrong.\"** Every\n`sprint_lifecycle.py` invocation prints `[sprint_lifecycle] repo=...\nscript=...` to stderr. Confirm `script=` points at *this* repo's\n`scripts/sprint_lifecycle.py` before trusting anything it printed. This\nhas actually happened twice on a downstream project: once by shelling out\nto a different, same-named script, and once because a slash command\nresolved to a stale global command definition instead of this repo's\n`.claude/commands/`. Both times the output looked plausible enough to\nalmost act on.\n\n**\"QA1 / LiveQA wrote a full verdict report but the state file is\nstill empty.\"** Writing the report is not the same as recording it, the\nverdict only exists once `/sprint-qa1` or `/sprint-liveqa` actually\nruns. Both agents' instructions end with an explicit step to re-run\n`/sprint-status` and confirm the verdict shows up before considering the\nwork done, if you're seeing this, that step got skipped.\n\n## Customizing\n\n- Add your own coding standards, git strategy, and tech stack notes to\n  the bottom of `CLAUDE.md`, every agent should read it before starting.\n- Dev Team 2 runs a second, independent sprint at the same time as Dev\n  Team 1, not half of the same sprint, and always in its own git worktree\n  (`/sprint-worktree <N>`, see `CLAUDE.md`), not the same checkout Dev Team\n  1 is using. \"Independent\" sprints on a small app still routinely touch\n  the same shared files (routing, layout, config) even when their features\n  don't overlap, checking the Dependencies section alone isn't enough.\n- `/sprint-start` and `/sprint-complete` are run directly by whichever Dev\n  Team owns the sprint. Master Controller plans and reads status, it\n  doesn't issue lifecycle commands once a sprint is handed off.\n- The phase names and transitions live entirely in\n  `scripts/sprint_lifecycle.py`, if your real process ever changes, that's\n  the one file to edit.\n","readmeFilename":"README.md"}