{"_id":"the-frame-ai","_rev":"50-00c7bd6c46a4077cf3300208770d40ad","name":"the-frame-ai","dist-tags":{"latest":"0.26.0"},"versions":{"0.1.0":{"name":"the-frame-ai","version":"0.1.0","keywords":["claude","ai","development","framework","solo","tdd"],"license":"MIT","_id":"the-frame-ai@0.1.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"aef076ee314ef54354992e0afd35e11e31b1bdca","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.1.0.tgz","fileCount":77,"integrity":"sha512-Lp05yWXFbvoCfkHzndTKGfSmrGY5GQqXCAoiclyY9aj6cM5Ivxc6ee4TCDkyIYgVeQetipIxI5PxeO5i1pb9dg==","signatures":[{"sig":"MEYCIQDVTmn6znZe2dAntoyKglGsNF0oIsKYhtFbBbsIolp0BQIhAJkt7rCBSQtl+OqY/lzhRdFcDrpRyvacSiRaEtLzHKU1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232247},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"55d068ea1c74c28d4f8a48c672c650b9701de5c7","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.1.0_1779390087642_0.7883563128797297","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"the-frame-ai","version":"0.1.1","keywords":["claude","ai","development","framework","solo","tdd"],"license":"MIT","_id":"the-frame-ai@0.1.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"0b3d7fc813532459e4e1596df49ec936077f4194","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.1.1.tgz","fileCount":77,"integrity":"sha512-wDMCRC/QwlJUXmCmN/suOcRQ0gzpHQDcqTV5oyvPUq9G7ho8dOBfhuqoZWBIMgQ8Vpo/dUcIP2ZKET+9sA3ADg==","signatures":[{"sig":"MEUCIQDFIT+OmzY8d9Rac/PPZyAcQSQ4S5E/gLtSw5mYe5UXcQIgC2Es4q3Z/A/tCQHgVVLIuCAZx85tWg/XmdgiFaYMKnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232424},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"55d068ea1c74c28d4f8a48c672c650b9701de5c7","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.1.1_1779390289241_0.9900031281848611","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"the-frame-ai","version":"0.2.0","keywords":["claude","ai","development","framework","solo","tdd"],"license":"MIT","_id":"the-frame-ai@0.2.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"f4942cc6cb10750a1068c72cf34080d0f98853ac","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.2.0.tgz","fileCount":77,"integrity":"sha512-A6Vuo2yhA6FoHEFX3sdmmn8jyJzVmb/XYaOb6uL+b2KFwuFGg2CN5tHeMddFtdMy3Kukbeau/3jk3C7KeHjkqg==","signatures":[{"sig":"MEUCIGcRlWbk3Uahq1bH99N/XXs6fS1oJzH7m2tdNsi9Yf67AiEA2gT8miybfCUvZr6NUapPtcleN0qPg7L2Un53oUm56zI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232424},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"55d068ea1c74c28d4f8a48c672c650b9701de5c7","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.2.0_1779390359989_0.021689505829810996","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"the-frame-ai","version":"0.2.1","keywords":["claude","ai","development","framework","solo","tdd"],"license":"MIT","_id":"the-frame-ai@0.2.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"2c018bbc85ac8e581ff3b1605dd61d7d9a56ba0e","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.2.1.tgz","fileCount":77,"integrity":"sha512-cSJUIZD6XfO2jKSxZW0Y8wuiNGqVgckAEXQa6Sai0TeCEZWSVPcf4tyhZcCFv/AfTMo3ysqMzrjaf7k1XfNLlA==","signatures":[{"sig":"MEUCIQCGB1zSVEAK4ILPh23W7hkaLhl4CItUD+yl7R9GNZQ8nwIgc+x/T/zj1ZguXTqWGSbErHhtarPWkBqgWYOAjDHao10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232573},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f472fcedad389bc9bbf073a0d7f34cda293074bf","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.2.1_1779391060119_0.4603801320061083","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"the-frame-ai","version":"0.3.0","keywords":["claude","ai","development","framework","solo","tdd"],"license":"MIT","_id":"the-frame-ai@0.3.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"9ae71d46e568213faf7f225acafd1e4b45e66223","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.3.0.tgz","fileCount":82,"integrity":"sha512-AUWZq1dxZvp8foM26RA1WLmi2z7sOHnsdB17cERRMXylAreitPbMLwtKjdJFmALEfM8bjVetJKCQ2FgxtOup0A==","signatures":[{"sig":"MEUCIDkhCRG3gdqq5CiptTwbZaQ50SnnUkOmHQvNu04EHd1OAiEA1Kn+ItWI8C+vp1M8EO9BzWkiuHY7IMIJVM8lyRYrF2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305830},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"cbc731bb504b57aa2cde323f47e9f7c0373e8324","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.3.0_1779393944306_0.9134351088629111","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"the-frame-ai","version":"0.3.1","keywords":["claude","ai","development","framework","solo","tdd"],"license":"MIT","_id":"the-frame-ai@0.3.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"1c8d43dd637e0949f0c939bfebb83186fe6f0c60","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.3.1.tgz","fileCount":82,"integrity":"sha512-pU63jvwOYVcqe3hk7rR1Ec5ziTr9d32YdTe0XOPL1G0gqq6scKim9BGNEne9c933hqbP67nDEhwxU9ZQE/CoqA==","signatures":[{"sig":"MEQCIBfIj/wDdwyKnG5I0ozZClGFaevpOZtuOTJ4gqzWsSMRAiAyXlp7fwU2yMnawTN5vlyU0Ji+pvOyQT3Zk+4sus2R5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306024},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"23d9633f9c452a702fbe411f7382bd77d59a45f6","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.3.1_1779395424738_0.5007173630152728","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"the-frame-ai","version":"0.4.0","keywords":["claude","ai","development","framework","solo","tdd"],"license":"MIT","_id":"the-frame-ai@0.4.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"4e0daac2703b9c49b3cc75f58722ec031839baf5","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.4.0.tgz","fileCount":84,"integrity":"sha512-h97sNWbe35W7vNrp8viguv0uyVX/bwMKHA3hdbav1F0cA6AZPDAYGij1QQt4VUN8g+NXBgQmsC2dVv8JUNWPlQ==","signatures":[{"sig":"MEUCIQCOu3sutb2CNUyfbPbMdqEngvcMhw3dJHnrCFP69azSCAIgJ8x2+jl48fz9py8zWV5JgzQm6uKE8zlaU8E26HYIjSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356862},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"652b9afab7db9f9133d1f2d9df0fac17445db717","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.4.0_1779445802877_0.5068202821186343","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"the-frame-ai","version":"0.7.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.7.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"e10a6e957e79521fc5d8998d3b2a65f579f5773d","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.7.0.tgz","fileCount":84,"integrity":"sha512-OxRCIoG8lGUEaaHC7B8THRKFSmpO1MPgxQrilvBEE44dl6ECtnlyozIw4Gvy2xODjXWK4AJqsxL8TY7KX85ZhQ==","signatures":[{"sig":"MEYCIQCj5cnFUnNSMVcO1nSZlfawT3lHDjzQtKky1QkMpH1ZzAIhAKNtrlBf6BeN1eVpuyvTHG7iD3UJZusmBBk9EepSpMT1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357433},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"cee4f1ab26c01caa62e5f9c496252118c720f453","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"11.6.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.7.0_1779458015783_0.14235602099441014","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"the-frame-ai","version":"0.7.2","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.7.2","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"f009cc43fa6a898f6e396c538419374aa69b42dc","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.7.2.tgz","fileCount":83,"integrity":"sha512-69ya53wzPsgzHjcILHUAuMR1Kxhdl3Q5t95I0ejGJ45tLZCEUq7DF4Lzcf7//EiZ7+QsuzoWLpbodzkxemPRHw==","signatures":[{"sig":"MEUCIQD+rGpClCkT3JHXzkWrzEFYR2Cqv/4g+yo0n0jva+Bv9wIgVchq/DejY9N8rAtmgIvge9qb/kOu1KORyztTI8G3s4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355538},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"82a7796ef01ceb7951f82d9ccf00d3bd2fa2769c","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.7.2_1779458362801_0.550983620844554","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"the-frame-ai","version":"0.8.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.8.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"35a8d879dd8ad49284d971797de4eb057e874eab","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.8.0.tgz","fileCount":84,"integrity":"sha512-vONzERQWVIWJljUvaWgf6K2fS/n+YJKN1BopGW/VdKZk1ddJD0/WBwggYDkaLZDLxgpztXpQap+XVezx8xvWMA==","signatures":[{"sig":"MEQCIF446kXPxk5/1KFW+2t5VTg5yKCQZmzwx+9G76h1UcDaAiBXMHpxobU+stQ9g/6bCGMzC7ARTVNRk1PL0u8uNsvedw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358291},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"bc2f4ee1d645141faa6d4e5149c84c4ff5fa68d9","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.8.0_1779470108210_0.6429829764022081","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"the-frame-ai","version":"0.9.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.9.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"969f94eeeffc59feb051fe1c4be8ec6f481329ca","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.9.0.tgz","fileCount":84,"integrity":"sha512-fAHR++MjL7oADgTxIHMoyPNBglHJFxwI9v7S+My0li0Cfr/4dbCNWNcw9SuO4ggJXDwg34A0wLxZzF0PfgmwJQ==","signatures":[{"sig":"MEUCICDzH6mUs8URZ7u4ZEKMUfEOz8QMCI6Z9rMeZo2N6RwZAiEA1S/TAR1NfnfX7SDTctU47xisv/6nnfLx24gkWr10wIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359102},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"db5ecd8ace7f85093a81841e919f8839ab6f6c3d","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.9.0_1779470466590_0.22007669922614337","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"the-frame-ai","version":"0.9.1","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.9.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"f95e720e39ca1708179f9c8f995d2ea50003c3d6","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.9.1.tgz","fileCount":84,"integrity":"sha512-Flr5JsUDnBGVh4ZfBR/aTBwVpHCUOlMQdWYHEHvwjW9Guy+iuPll7lp9Ps7fk1JA/SOX9tRjkraOr3nmSKOSSQ==","signatures":[{"sig":"MEYCIQCYaLYcg7cP9wmaFUVBqbWtx2r9Mqf01KclKypojJzFfAIhAIQ8fwEyAuj8nVoKvCfetZlKkpWCLTbu4vJ4vw7AEjDr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359153},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"93decd13a4d54056fd6c5fc3e7fbf5203d3eafef","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.9.1_1779483319232_0.01766382811386058","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"the-frame-ai","version":"0.9.2","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.9.2","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"8af767def7364a79ebb433e384bd8d1cd44ce9c7","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.9.2.tgz","fileCount":84,"integrity":"sha512-xu0H99XnW6dXiszVl72jSBr9DNu4YHnqEKsAEWlCTFVd9waCQ+pBwQtOGcCsu61c3zdq15mIEs8OlB7y1m2ENQ==","signatures":[{"sig":"MEUCICjvfSZrWI0vfxk9suNTy3PH1hD3hZj4BRcE6w/0jTB3AiEAwKQTHVdm8MxCOrDjGq+JWp3LZVwlCgnbRdGy+gTjENY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359008},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"4de890453d4bc8dd695c7e514d943dc0d62277f3","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.9.2_1779483671163_0.77723733303214","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"the-frame-ai","version":"0.9.3","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.9.3","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"bb33c2bc318dc22941b05a63fab6748f0db25ce3","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.9.3.tgz","fileCount":84,"integrity":"sha512-Dy6XvXvgOXCPeWu924PAyN+7aCXnx02fX7A1a0BU+QhwzRJTuQJy7P4qJ2OHEThN31ugYf5imtQxJsL47BfSAw==","signatures":[{"sig":"MEQCIG9hjgA2dKHLygRiNpF8axBV67Yu/gab7aUbcg5f+KUvAiBsd2YoNC2xa4bMHBCPvIBbkaptEksRqH1koKJKBJWKxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359008},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"9bd385175ef521b70f11a46d27466a79790921b6","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.9.3_1779484793390_0.5323619280810021","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"the-frame-ai","version":"0.9.4","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.9.4","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"9a64a7808bfa33adf0dc25b3d6fc87426e6e1fcd","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.9.4.tgz","fileCount":84,"integrity":"sha512-0laCWNwSuNYX4bHcvy4/A0f2VOMrZZmPgeAo8IjHYigk4scG3slgNquEfW0FcUth06ZKf8z/VTnaJTZ3nSa8WQ==","signatures":[{"sig":"MEUCIQD/KtRS43GTuzWcMh5xGEBR7G3ut9zaqnrrIQkTTHoIbwIgWtb0c7OHv3a0ZukiME1l22MH25a6x+ig35RZcB+cwF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359015},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"2a6aba1d4860406a8ef24f66861c7075d4c6e872","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.9.4_1779485082195_0.08114544877572438","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"the-frame-ai","version":"0.9.5","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.9.5","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"2c73da04df3fac7e543cfd548886a01ec760a801","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.9.5.tgz","fileCount":85,"integrity":"sha512-rKPkAJoRzeZ+SBl6em3x6xoclABuTmc70CieylbPuIQz0Cm9USnhZbebk/BIW4XbV40mVtgzl8OLilkmHufW8g==","signatures":[{"sig":"MEUCIQDVcfGNH8whw9gZlHAaArRNWUtA3OcKLtRn0Dff6D7wFAIgVEEtxPLrZmL/gWo4kwaP2wMoDl2wAN/M+tKfIOd/AV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360910},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"487d297639f7fbc2a1a14c7b10fc1d7081c69338","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.9.5_1779485491665_0.3295926273541252","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"the-frame-ai","version":"0.9.6","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.9.6","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"fbe05f2975ae503e304b464c22496fee920ab64c","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.9.6.tgz","fileCount":86,"integrity":"sha512-+ktJdVgT+OegobegNEUzEgB0OzP83tA01WGMO+Fvq9DGaEaxIVMrNmdsKkRY0znvq6TUyfDCGoERvo53/IuPMw==","signatures":[{"sig":"MEYCIQCFHxzcogiJr0T1D57sJfRnrST6jk2GLLZM29VUsbBVvAIhAOCsYbbooyUpOqnbUgYZS9AGyzjuL1PxR5uzDowOSEK5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376157},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"77e1a9ba70795d99b02d8ff606e1efad5ee30525","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.9.6_1779490353104_0.8912741085827671","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"the-frame-ai","version":"0.10.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"81f9efe66ee2dc0791da0f41aaad6cc4ea08f196","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.0.tgz","fileCount":87,"integrity":"sha512-mBBXr0vr3ICyAkkc68wPQ+Ikh9SWchl0xxenJaRn3V8OmV/9Q2ZBlxj0fCjEsFsBH0wb3L+nfwJIv4mlrjYhIw==","signatures":[{"sig":"MEUCIBZOHNvGAcSq/EjP4jloLxZZ7LYBN11qYntANJ5yw+CyAiEAjMdNI5GQWzGIzDGzB8AEoram0dfoKIzEVN+fvI4RCZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":382992},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"6e8a10d6d0fbdf5d9752c103c2de30fc64802dab","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.0_1779565636820_0.7781354650885481","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"the-frame-ai","version":"0.10.1","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"df11aec935955ef8f726afb143e1084f438bd769","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.1.tgz","fileCount":87,"integrity":"sha512-Yxqew0BcLCZElM90GJ5SAauwSDLNKWVfJXhOBSYhvioyMowzXZMz/3hPhQG/oUaq0VyuykHJgnOAMQe6tc6Dig==","signatures":[{"sig":"MEUCIByukSuey9iBNYC6fJWD20TQ223fqEEotnSzj7vxOb+AAiEA1xNQm3PkQp7tnlDbLhj+Odf6/G/kp2db9DF679pJfrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383074},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b8573b94f39cea78d2b968c156ad5f05a53fce36","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.1_1779565954062_0.9415386844119049","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"the-frame-ai","version":"0.10.2","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.2","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"65ef194807741df20ec79bdcc6b6b730f774b564","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.2.tgz","fileCount":87,"integrity":"sha512-/n5dGI3KYZRAMEDQTfkLKlct7/KGTs9MVCzofcfZ/89Qv/8IaG17zL8GKWT7uE19INjPR0OlZ5PBL3fs4m4Lag==","signatures":[{"sig":"MEUCIQC1qYQZZIiMctd4da/icqmvIoY8szDdvW1VMrtq4ly8IQIgHCwc+Hv67c5KVy0TjvO8ibVcryb7X49o1U/pm8CsQoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383196},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"beb2281aad7593b186054cef0d972bfe9a829ad3","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.2_1779566172517_0.1390628156648095","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"the-frame-ai","version":"0.10.3","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.3","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"f626fe1749452039891892a7dda2d586228682c2","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.3.tgz","fileCount":87,"integrity":"sha512-WCBzObsK0AwtUAuSSVw8oP2GZmumL/jd8RlccWOKqyk7M0Pfe3z9+C4j6pz8OIr5/88t3XjzcUSMdCIuR4Pzpw==","signatures":[{"sig":"MEUCIBEnitUL3qwU5y+yEndZI9yv/5l+VTXFqI8YLI4oZ9h7AiEApuVU+A4pbnRcRjYpy4Gg2rkcStFW8eFbt5fsQLIdqJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383167},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"9a9b848fcdcc5435af15d34235fd51c71285b60f","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.3_1779567589921_0.8301285823058702","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"the-frame-ai","version":"0.10.4","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.4","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"cb73447ccf609958c68e2c522430f39839e1aa11","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.4.tgz","fileCount":87,"integrity":"sha512-0JpamCMpFdet3H81Yt+jpcAJzJt/duMSoJ/tvA3NpyjfhmKh55aR7rtYQQYcWi+iNelrZnucYLsWFdsUp4jhGQ==","signatures":[{"sig":"MEQCIHlhyFgDRdtGMO7q/wKDCcBaMI18HSM/vdqihwbru0mbAiAzhFC7GZYe99Ni6WrUHHnibfOychH8qN8gGD+hPKqBZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383274},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"41b66702eb020eea50655ed0bb17b2d338cd125c","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.4_1779568097892_0.3350373112934244","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"the-frame-ai","version":"0.10.5","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.5","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"205ce4d81a0b04035ea2b8f0279630c05193bc96","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.5.tgz","fileCount":87,"integrity":"sha512-6j+6HrUuDlh1wgeUDpMs0+z/MTV1DZALb776e14oxGxsysR9Fca7uIv053A9i1QCZqtgMfgiIYfHcaYSJM4l7w==","signatures":[{"sig":"MEUCIGzuikraZiEkujILCZqJSXRIC/+CDAX6ZkNykeXXyKNYAiEAhtZiuqSeny12JGNqnJTF7LFI5r9bNco+or+HtC6aXvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383448},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"49b682c503538bb0383321e8c4791c3f3f621fa8","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.5_1779568900657_0.38675508028519334","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"the-frame-ai","version":"0.10.6","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.6","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"2655e52ce3e4365f3c377a5296f4621be25387d7","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.6.tgz","fileCount":87,"integrity":"sha512-7uQYUWJqiH+YJHbD4IjGfrpcLL6Q+1XWxQgjxP2evmRuSWTeUfjrt7/ddRkvYvur1G6gBXNzuPK6hZJxlHRbsg==","signatures":[{"sig":"MEQCICvoFw6yzILxH52a5WHq28BBwaGp64bkxzKfNq+3qX4wAiAYinhLOdwJhRXvhrt8sUnBtGXB8iF8R9XSKpEVoC5Itg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383308},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"8b1d23c1c22fe62e193da95bf4dd31eccd7b7eea","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.6_1779571078585_0.18419358062299596","host":"s3://npm-registry-packages-npm-production"}},"0.10.7":{"name":"the-frame-ai","version":"0.10.7","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.7","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"1d714ae4985fe9b9eafea83afe86fa8957ff4695","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.7.tgz","fileCount":87,"integrity":"sha512-7qVw1vRVWCFNI8u76gJMw5dITTcKRbdoNXJBM9xpMkWIE8TVnqtkEI2PBtP9YrYQmmQ5zM7P/vbznu+5xv/9Pw==","signatures":[{"sig":"MEUCIENo4mqDxH5sbiyVQ2PGVcFteLB4WlnQXMg9neOJutAYAiEA3mY80YoJLkgld+GvDnuSkmN8+urAbu5xBsw9EquwABc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383276},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f91f25f6c74b853d38f71e4788d4ecd6474fbab7","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.7_1779571802781_0.5531050110169462","host":"s3://npm-registry-packages-npm-production"}},"0.10.8":{"name":"the-frame-ai","version":"0.10.8","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.8","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"0b4fa866e126aa92b5764da178e3f26a36894da9","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.8.tgz","fileCount":87,"integrity":"sha512-iMm+K2wrtSxVBy5RY7Zg9rymTBmE59ajBj0C1NGUEr4x9s+1O23eRW15T43u3k7Ad39vrCjodHJXVqdxlbf9zQ==","signatures":[{"sig":"MEUCIQDgQPG8VAwvYraQHTcnPK5IzCzUUX2eeaWRtbWA57P+/wIgdEcin7KCzMFG6PCfbdOwtORZUXM1rihu5PYfwZd1F4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383162},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"70d280e5adfa92b54f27c7a0c1667c383b1831b4","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.8_1779572862761_0.5823171759956722","host":"s3://npm-registry-packages-npm-production"}},"0.10.9":{"name":"the-frame-ai","version":"0.10.9","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.10.9","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"f398d6a313f6df02213c97fec055b80ddbd1a857","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.10.9.tgz","fileCount":87,"integrity":"sha512-xoKj/PfJuPL/+vpE7JHkLIpDynkaq5nuky+RuZNC5SNR2Jg7ooWRG6dQuDDQZM3O43dJrvKUhsAmyoq9aS7UiA==","signatures":[{"sig":"MEQCIE8o0JIu4r9kE/manW3c46DfKLf2TdPQnQAYvC9zXK3KAiBiME+Ulw/afFziZjHInoACly06HjStHMssVQSGElENTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":392331},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f7bab780bf4b6383c66121a8b89dc9f01c4738b7","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.10.9_1779618401688_0.4822655790985355","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"the-frame-ai","version":"0.11.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.11.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"4af5bab360deb52e46fb15763d89b44e61ca20f6","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.11.0.tgz","fileCount":90,"integrity":"sha512-NRy+FC1Yen56DPS8CyE9W50cK1qu4VGV2dGWGCKP0DrqisonTcojoEqeadDPwT0Eh2h4AMStL4U3eN2lYY4bbA==","signatures":[{"sig":"MEUCIQDbR4JawVvNPRjzEnFHuWU+SQPN6oZXDupANPyVtjyuNAIgKBXlFD0r9Xa1hZiS2+QvBikFmmUmse+S6nfKD2MEXgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422300},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f7ee456e7cb3db6350e00d43eaa98ef61ed21e3d","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.11.0_1779622396474_0.04049093206637111","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"the-frame-ai","version":"0.11.1","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.11.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"ad284688c7b8c0718c1bde2c30e3b4ff22c244dd","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.11.1.tgz","fileCount":90,"integrity":"sha512-v+sBp1mS2aWxSr4KispW6tKCeUZQ4OpUn1ZXaq1o1BvmE1HqIxN9iVTxbIrxW3H3RAP6i7eh2VolShRUKz//IA==","signatures":[{"sig":"MEUCIDbM8FRjiAPckXdxQVjx5TOqxGyDwgs6PcMKOUTFo5lYAiEA5EHocTS2DAaKxdPaE3hWPXP2s/Khtp27DwljndBj/L4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422681},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"949e951ac24ddbe4d7743d99cb9d169807d80871","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.11.1_1779623270671_0.9068225550713538","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"the-frame-ai","version":"0.11.2","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.11.2","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"0941133f5168c148a3bcea56c2d81114dbd597fa","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.11.2.tgz","fileCount":90,"integrity":"sha512-mzYOLL6AAE/p1n+twQ2oNuaDgC5ea0ysPUiSJ2Xt/ozgcegB67KggOJp6GLWu2XRAdHi9fSxE50VDTzYvdO/dg==","signatures":[{"sig":"MEUCIEh7Ozv50DGaKY8iQ2pZxSPAX3zCK6fiB+y5uh1dKOd7AiEAuVqVp2sj00qg1DL5DNEBycQT/z/u0Wot6Ecnp4itbcA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422362},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"6d3f14a709d0fa133c582c0beef36553d33659d4","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.11.2_1779624196310_0.7174264931583219","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"the-frame-ai","version":"0.11.3","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.11.3","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"60e4757db6fab0295065642f57cf15c708a923ec","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.11.3.tgz","fileCount":90,"integrity":"sha512-NuGsdCCM4nixlOJ+ADg0PJmAijZKh8NZ85Q5ujmro98pM2Q+G65QMwf/exW1VqMoSI3V0Qq2baZ/mA+ptYdQdA==","signatures":[{"sig":"MEQCIBPJ0Zxttrlb2kp1bV2TASJ8kb1ltnzKqXhdP2qJPkCOAiBXWO1SN5mjZUrrxRaMJsx9/wbMskY1Sk0f0Cu41hZWxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422564},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7d77154081af8ae0ec8a490943ffc6c4ae86be7b","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.11.3_1779624907145_0.5344576303177788","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"the-frame-ai","version":"0.11.4","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.11.4","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"4ef8fa0cdae401351f7d8d6ba2655550f99dcd07","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.11.4.tgz","fileCount":93,"integrity":"sha512-JfMHyCNfljhyq76CjroOd9qc6aJJWhD7kLZgkAzVFNO5/dbwbqDE5OhM4MWJuKwZ2RMut/XBhXiO/cBowuy5ZA==","signatures":[{"sig":"MEYCIQCInvx8zlfqtZ6XVBfEHyT7m3T9+MtcLY7mYH1X7ZyGXgIhALmoE5eFonEQwvBwaHJM/MM0lFptmMWgh90xZoUju7y9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434011},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"dbc824f4f7c497ce4361e60c171dabbc9d43e1dd","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.11.4_1779725926845_0.46460625160674085","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"the-frame-ai","version":"0.12.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.12.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"d6d16d741361a407f35e303295080e89c72514d5","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.12.0.tgz","fileCount":94,"integrity":"sha512-y3+WuhTYqphU24gGSNSt50OKfmQIMpgDEEIdtX2cWPlY2A2Qvta0edMp1XI/susegGD6T7ocCEoRHEr2uduubw==","signatures":[{"sig":"MEUCIQDnPG1Ox+spzS73gUeqnxoW67f+VAU5ppT5uRDMSdXCFAIgXbbIzuPpTQ/ZV7aZnaAj4942oGxpWPjnRkNYFMnQvno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439613},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7f769e95aee8e7a2389ceb54eb55cf04d92ed5a3","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.12.0_1781027419801_0.5975700635779464","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"the-frame-ai","version":"0.13.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.13.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"d79a7eed3706f414de969cefdedc0b456ac548b3","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.13.0.tgz","fileCount":94,"integrity":"sha512-VnVDalNFf1JZIj5gG6BB8U35BpGu+f6OAt03JPGVIlm6wqYJSsxkiCHUkpaSmfv7UEwAetV9U/XnnlyKuLd+fQ==","signatures":[{"sig":"MEQCIAV+ZA+XIBwsYlA24+KKkYDpAK5An+OGmehxh3Ph+ZFpAiB38IgnWIzkdFgfn4ftppeT7Ue4t4IY3ZFJXYPrSt+uCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":444049},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"572b2062070a45fbe0d590e0fc5fc960194eca63","scripts":{"test":"node --test test/*.test.js"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.13.0_1781208666088_0.9836376989332856","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"the-frame-ai","version":"0.14.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.14.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"efa19fe2ff464f1170370b4bf786509619ebcb64","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.14.0.tgz","fileCount":70,"integrity":"sha512-t95XmO6N2UFrrpzXNtZMjluOllf6U3eqTwmrUwOMU7d9+6mhBTmoOzvZj7KaZOGuFi+SD6CIR9wZEQF3QytotA==","signatures":[{"sig":"MEUCIA0Yd1SSPMwh7X/MwZc2itxxDyKqOe0e7ai7ev16U2r3AiEA5L904jA6eZAOE070uwwAGmkhCECcPvRa++1Z2rsZ950=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":316903},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"98cac2c717522bc8f226eaadbfe514b14d93300f","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.14.0_1781269843194_0.8949337956972439","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"the-frame-ai","version":"0.15.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.15.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"92f0f50f750544ab06bdf335608cc22872865979","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.15.0.tgz","fileCount":70,"integrity":"sha512-AhZ36gPgLLPXsGzMB70YY9UAGxfEjzK+QtoW0HITLVrjvO2/f3sHlVQXAlbz84Wf16rpN4Svd+PAPK9YTZ1JKQ==","signatures":[{"sig":"MEYCIQDrhDTOg92GfCN0eD2Td2SK0plkajbfO5FBgGmQ/rUFcAIhAN6pg7ER9XEwmC2H/eR9Wqie/Z7ObRWcS8vzJJDDOkW+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":316946},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"5d62b5f83f561226852c3f073bdf27ab7b968ac1","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.15.0_1781271473923_0.6326632167179334","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"the-frame-ai","version":"0.16.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.16.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"7c38a15d97527556e1f850bdf9ba555dcd6eaa74","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.16.0.tgz","fileCount":71,"integrity":"sha512-7BLtYkTnI74gCcKZePp/xWbS/pW69VIgo01LfBF3cssoreFr9h7D8EmmTYb+Cy/mAkZz04ksy/YM+yp79UqoWQ==","signatures":[{"sig":"MEYCIQCuPWe/scjAYy4JDtWacZycdyLbvRO2YYjMU3CoIDgjmQIhAIQ2AGEB42QMPltDcE3Qc1Fu38PUhORG7DIZvVjQCNST","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":333743},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"4271eac5e12d8c264376baec0299220465f8e606","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.16.0_1783004166876_0.6815591101412288","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"the-frame-ai","version":"0.17.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.17.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"7f5b602e454e8aad08062d5c808704311138d5a2","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.17.0.tgz","fileCount":71,"integrity":"sha512-PWgwDl1qyiZg0A2jgRU1zbrxMhz86vzhi/O+ZNQy1XZV57Vkg4VILsvjsbjkkWV1GZkTtBSU1G+SluMeoPve4w==","signatures":[{"sig":"MEUCIGpxXFy/jddYYNkOHXuXjLSlQBwUxVSUs+9GNBZXiFLgAiEA1JBVe12XPYMyAAMOCn7oavLRrLtNHpc5SoGB+quVuNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":336118},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7376aefe029fdce0a5ff7d2d80ad5185bdb72075","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.17.0_1783005819487_0.8987407391835625","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"the-frame-ai","version":"0.18.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.18.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"5c596e45b7a00aedd98df9ebdb50c85f41f801a8","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.18.0.tgz","fileCount":73,"integrity":"sha512-6ELVYGn/bHjpbEBIU9opwaAqcRlnfm7Fh3uxVJNTyLg1x+Ye1WrZaQowILAgxOhe5NeQLERsX5dloG+wwxHHgw==","signatures":[{"sig":"MEUCIQCVS+jp169d5etxmVO2u3WCmaOYLm1Lmgvs4Rdye4HHHwIgBvIFiXei7ACEA4edYwolaK5N8S3hAm+AQgmQoglXoD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380164},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f8f742dbdd23d0283cb1a5f94255773a5efdd0f5","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.18.0_1783170710601_0.8086013035448474","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"the-frame-ai","version":"0.19.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.19.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"5ec23d797d808c42e76d79f784038396ef3ae738","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.19.0.tgz","fileCount":73,"integrity":"sha512-QENqdyv3GJstFDQdzDRE3wBASYVwk88urAQ4Z6NzcUaNkjMQ3wKCYFfA3bJ+R6BE4M/27bco51zDpAL9k0KlGQ==","signatures":[{"sig":"MEUCIAjw8vCKLI5qE5ORSrPhS78J4BZzpbGUlL3ep6/K4b3qAiEAg+a59WXE67u14PbrASo9Wa9Eva3iOEFynMCVjVI9SlA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382264},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ff35ea5575583132323f43515a25a57851f3d0b9","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.19.0_1783251049746_0.12078992891046147","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"the-frame-ai","version":"0.20.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.20.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"4d99f808bc23fdfec4f2fac63058a9bbaad8641d","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.20.0.tgz","fileCount":76,"integrity":"sha512-H1VuGOQmULpm/LjH0fBu7DXwuoiKHYq/0fEco1oAS2JWrQkxYSpJUXF5YmuoqihFXSZQsQtTZnByhSDI0tf6Kg==","signatures":[{"sig":"MEUCIEKvrRmCFpe9foG0tS6L/jYjBpjsllN6k3Stt2kxKHB+AiEA8KHi7RD7qG0P0VOawrQftkE0RYS1TkHHs8Kanm5eURM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":421100},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"1ffac1d8278d74f04d9df31a7d05c2ceb6fc471e","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.20.0_1783268365769_0.5371827320091085","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"the-frame-ai","version":"0.21.1","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.21.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"2384a97e50ad8dbecc924adf5103dff5f7eedfaa","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.21.1.tgz","fileCount":77,"integrity":"sha512-rTg96aaNIUGb4dr604zTuc2mfqLs6rsrC26aLtAgpMmjAKBDgdyR2/kNgbN0zN1v5b0UzD8WBGmBsssqPuC3/Q==","signatures":[{"sig":"MEQCIBw+PShQfCRt20uf+zoJ9swVDh/zQu1rPyeG04CML6RaAiB6O9YNGabigXmCPc1A/QGJ+JHr6ZwOCuUJWlub2zg/Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489878},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f51a79584a4f6d07c92454a834bdfb05454f4dce","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.21.1_1783692083481_0.21839767848917857","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"the-frame-ai","version":"0.22.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.22.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"622af6ac62446fff816c7772d1993643a56e1a45","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.22.0.tgz","fileCount":77,"integrity":"sha512-1p23UgEwYTnDVQW1KnkNkDfJRM4XdWrNpjblwfQ1VdzClGK/5RwAixGwQtoxkKsvEErKvd3z/1j/yBSAEQrGAA==","signatures":[{"sig":"MEQCIFIikhbK0uX7KxBbRaNOjBE6X0ZvxPrLmuKm0IANqHTTAiAsAlg9xRKX0xqIfK0rRkJuv8z8FWB6pWlQzxRWdESvww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":493761},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"df6cb0ad62572e0d957f040be815ee8f489ec072","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.22.0_1783701393466_0.4885028438228125","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"the-frame-ai","version":"0.22.1","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.22.1","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"7021fd92809e27a9425e34b52e2afe1646186e96","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.22.1.tgz","fileCount":77,"integrity":"sha512-GuvWYsiPD7uzqy07TvUz3JV7XCBHc4TO72/aLvRvpQFwVm/tfK/KLswiT+1ruJje171OkQ38xJqZ5kDICaYnbQ==","signatures":[{"sig":"MEUCIQDGCQS7vWbtalilMa6JZlV/fVuOcRGw6mvIPi2cMqnnEQIgOY7A4aVzfcke4EXKflJeuMaX7q7WhQvEpchGSAXQ3K4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.22.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":502121},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7492ff36db7ab7ea670db524f446aa94b904138c","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.22.1_1783770782317_0.3532317361943862","host":"s3://npm-registry-packages-npm-production"}},"0.22.2":{"name":"the-frame-ai","version":"0.22.2","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.22.2","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"c936c98e9aeb956f0067ebb14700204bab0810b2","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.22.2.tgz","fileCount":77,"integrity":"sha512-wwhwCFEx2fYcb1zz0Yqor22xi3Y+9KkiDkqLbzAFaRRI8Hb2lL6ahKtZkxDSSdmL1WtTzpj3bOHEPhzH3cTL6A==","signatures":[{"sig":"MEUCIFygCuQ8HwANVd8hsHmHDmwgi59fikqhbhYCuFPb7b1QAiEAtEWmxWGcUr6q3Litc3xIR6y2t9JgeKZA8qjrG6pGV2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.22.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":504027},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b20b181c5a4242e16b08a2c197ea3b1d2d753edc","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.22.2_1783961067884_0.0874714796593501","host":"s3://npm-registry-packages-npm-production"}},"0.22.4":{"name":"the-frame-ai","version":"0.22.4","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.22.4","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"7d640943c05e410b4842e6ba3e7d72dc28d1971d","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.22.4.tgz","fileCount":77,"integrity":"sha512-lwlHDfxyBfaB+rlY12ozHpb0gfILd+rTXKQ3yn9hM43rvmC675eThwiA2au1OA+PgxiGSMxMPLku3x+UKH2sWg==","signatures":[{"sig":"MEUCIEsGH/pCvkFhupy7Ta8xvNnBwIRbn5N5QgJ8INh72JpAAiEAtnOSReXSPa9I8qiId0H2MYjA+05r0sSnRTKBhwGf1yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.22.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":508356},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"e63a88a4de94161dd28dd3e452e53c94bed76044","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.22.4_1785160241030_0.29618909616581934","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"the-frame-ai","version":"0.23.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.23.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"4b694fd6c692957372bee8129be70d99a7d30102","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.23.0.tgz","fileCount":77,"integrity":"sha512-x1MUwNtS1COBBdwVErNlUceAFWLlmj3Pkl2iLvzumvqxzxQkEouzzaikzQEsLnBogTx2rs1ogncm60amkZHpZw==","signatures":[{"sig":"MEYCIQDqyWQRGz4bmbIDI3XWTQK1oIeLrOD3Hlb6VLJv2hXJ4gIhANw26XI5+/bfC+Qh92hcwgT6Uh1whWWeNJZ5IpO3P5oq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":515359},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"2fdb0df4efd18c8ea064e8f1fcf064218609c06a","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.23.0_1786908149192_0.7219112695782908","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"the-frame-ai","version":"0.24.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.24.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"494e1d351ceaff7e3f5fbd38aa5d492c9827981c","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.24.0.tgz","fileCount":77,"integrity":"sha512-op/6Z8lZuUTEC9KtDt/3kkJLcF/wh0YdK6lUNrzhs9kguEc28O+LwpQ1JX84G5kOqLlg09MtmX+jSBtmM6VLXg==","signatures":[{"sig":"MEUCIDYZvsPNxnT8uWhy64G+9sGyG3BRSYQzbdc+1bX6YyVYAiEA4FCnWGpuxFFr6j2N9vhQv/CrQc+ZJhBC9KqJSu62DGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":517893},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"4163add2a221b5edf252490874668f5cf6e29b42","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.24.0_1786909160204_0.15447978179071176","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"the-frame-ai","version":"0.25.0","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"license":"MIT","_id":"the-frame-ai@0.25.0","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"bin":{"the-frame-ai":"bin/the-frame-ai"},"dist":{"shasum":"18f08a93205075edfd1f2e176eecb920a5af97d4","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.25.0.tgz","fileCount":77,"integrity":"sha512-0gJslYlAmXXWkqLgpQ5e3U2a1ahMpQuTYul5kH7kredIzKge9s813Y3MDpD4fpEccEvklRrdjdY00cba9jADuQ==","signatures":[{"sig":"MEQCIBxmWsru7MgNHFio3XtsGciKtT91NIJYeCvYYgSewXq3AiAPSICLMOzRS33VL42S9xbvKVtAbXjKS58P8YVZevIudg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540035},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b300dfaf49ba131bbfc40264da08452f136642fb","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/the-frame-ai_0.25.0_1787436033291_0.700648375225972","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"_id":"the-frame-ai@0.26.0","bin":{"the-frame-ai":"bin/the-frame-ai"},"bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"dist":{"shasum":"bd86578d57f723c60c963098f2aaf063d2c0e49e","tarball":"https://registry.npmjs.org/the-frame-ai/-/the-frame-ai-0.26.0.tgz","fileCount":77,"integrity":"sha512-HU16t/HKXoh/k9If2jXfO9wWjcHLjH36Rdpo8KuG8pS/808g8Ph3Nhv8gncdFO/LDTWIyYPnUdaenw1P0InOWQ==","signatures":[{"sig":"MEYCIQDTTHwRDB0c2iHXo/3fY+D6WJRKcLXmFnK//VDwDJwH/AIhAIeHonFyzor83qh6D1MLHeAJrwGQFHz/1hS3v+cgDFVw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDjsHHoX3EACdwxQOn/C8rMfoFKjtjOf++dhcN6d9pjxQIgfb8K8tt7h5gBMDLC6wq8d6/PrUG1uz4tEXVIFxwL5ss="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/the-frame-ai@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":564830},"name":"the-frame-ai","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e1c2d8b05466446c40b34f2f3b860570c2d8fa5b","license":"MIT","scripts":{"test":"node --test test/*.test.js","gen-readme":"node scripts/gen-readme-tables.js","check-readme":"node scripts/gen-readme-tables.js --check"},"version":"0.26.0","_npmUser":{"name":"andrey_chmerev","email":"andrey@chmerev.com"},"homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"_npmVersion":"10.8.2","description":"FRAME — Framework for AI-Assisted Solo Development","directories":{},"maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/the-frame-ai_0.26.0_1789935786811_0.06995249379136936"}}},"time":{"created":"2026-05-21T19:01:27.598Z","modified":"2026-09-20T20:23:07.210Z","0.1.0":"2026-05-21T19:01:27.851Z","0.1.1":"2026-05-21T19:04:49.443Z","0.2.0":"2026-05-21T19:06:00.351Z","0.2.1":"2026-05-21T19:17:40.308Z","0.3.0":"2026-05-21T20:05:44.723Z","0.3.1":"2026-05-21T20:30:24.884Z","0.4.0":"2026-05-22T10:30:03.169Z","0.7.0":"2026-05-22T13:53:35.930Z","0.7.2":"2026-05-22T13:59:22.970Z","0.8.0":"2026-05-22T17:15:08.380Z","0.9.0":"2026-05-22T17:21:06.763Z","0.9.1":"2026-05-22T20:55:19.393Z","0.9.2":"2026-05-22T21:01:11.287Z","0.9.3":"2026-05-22T21:19:53.595Z","0.9.4":"2026-05-22T21:24:42.334Z","0.9.5":"2026-05-22T21:31:31.814Z","0.9.6":"2026-05-22T22:52:33.259Z","0.10.0":"2026-05-23T19:47:16.974Z","0.10.1":"2026-05-23T19:52:34.204Z","0.10.2":"2026-05-23T19:56:12.778Z","0.10.3":"2026-05-23T20:19:50.081Z","0.10.4":"2026-05-23T20:28:18.047Z","0.10.5":"2026-05-23T20:41:40.854Z","0.10.6":"2026-05-23T21:17:58.811Z","0.10.7":"2026-05-23T21:30:02.930Z","0.10.8":"2026-05-23T21:47:42.905Z","0.10.9":"2026-05-24T10:26:41.861Z","0.11.0":"2026-05-24T11:33:16.658Z","0.11.1":"2026-05-24T11:47:50.804Z","0.11.2":"2026-05-24T12:03:16.466Z","0.11.3":"2026-05-24T12:15:07.323Z","0.11.4":"2026-05-25T16:18:46.997Z","0.12.0":"2026-06-09T17:50:19.987Z","0.13.0":"2026-06-11T20:11:06.282Z","0.14.0":"2026-06-12T13:10:43.376Z","0.15.0":"2026-06-12T13:37:54.088Z","0.16.0":"2026-07-02T14:56:07.044Z","0.17.0":"2026-07-02T15:23:39.634Z","0.18.0":"2026-07-04T13:11:50.771Z","0.19.0":"2026-07-05T11:30:49.872Z","0.20.0":"2026-07-05T16:19:25.941Z","0.21.1":"2026-07-10T14:01:23.678Z","0.22.0":"2026-07-10T16:36:33.632Z","0.22.1":"2026-07-11T11:53:02.471Z","0.22.2":"2026-07-13T16:44:28.035Z","0.22.4":"2026-07-27T13:50:41.214Z","0.23.0":"2026-08-16T19:22:29.343Z","0.24.0":"2026-08-16T19:39:20.333Z","0.25.0":"2026-08-22T22:00:33.426Z","0.26.0":"2026-09-20T20:23:06.900Z"},"bugs":{"url":"https://github.com/andrey-chmerev/the-frame-ai/issues"},"license":"MIT","homepage":"https://github.com/andrey-chmerev/the-frame-ai#readme","keywords":["claude-code","claude","ai-coding","vibe-coding","solo-developer","ai-assisted-development","developer-workflow","framework","slash-commands","ai-agents","tdd","productivity","indie-hacker","solopreneur","llm-workflow"],"repository":{"url":"git+https://github.com/andrey-chmerev/the-frame-ai.git","type":"git"},"description":"FRAME — Framework for AI-Assisted Solo Development","maintainers":[{"name":"andrey_chmerev","email":"andrey@chmerev.com"}],"readme":"# THE Frame\n\nFRAME — Framework for AI-Assisted Solo Development\n\n## What is FRAME?\n\n**FRAME (Framework for AI-Assisted Solo Development)** is a framework for solo developers building products with Claude Code. It turns chaotic AI-assisted development into a predictable process — from idea to deploy — with memory, structure, and protection against mistakes.\n\nIf you're building a product alone with Claude Code and want to work like a team — FRAME is for you.\n\n## What problems does FRAME solve?\n\n| Problem | What FRAME provides |\n|---------|-------------------|\n| Losing context between sessions | Project memory and automatic state dump on session start |\n| Chaos in tasks and priorities | 6-phase workflow: Research → Plan → Build → Review → Ship → Reflect |\n| Fear of breaking something important | Safety hooks block destructive commands before they run |\n| Repetitive routine tasks | 33 ready-made commands for the full development cycle |\n| Babysitting every phase by hand | `/frame:auto` — plan → build → review → fix → ship unattended, zero questions after research |\n| Waiting for one feature to finish before starting the next | `/frame:parallel` — each feature in its own worktree, `/frame:integrate` merges them back with quality gates |\n| Slow, one-by-one fixes after review | `/frame:fix` — closes review findings in parallel, one fixer per file |\n| Complex features with dependencies | Parallel subagents for independent tasks (wave-based planning) |\n| No structure for solo work | Roadmap, STATE.md, MAP.md — always know where you are and what's next |\n| Shipping code with security holes | `/frame:audit` — unified security, performance, and dependency audit before deploy |\n\n## How to work with FRAME\n\n```\nResearch → Plan → Build → Review → Ship → Reflect\n```\n\nEach session is one cycle. Start with `/frame:daily`, end with `/frame:ship`.\n\n**Research** — understand before you build\nRun `/frame:research <topic>` — Claude explores the codebase and external sources, asks clarifying questions, builds context, and stays available for a chat-driven decision log.\n\n**Plan** — break it into tasks\n`/frame:plan <feature>` turns research into a concrete task list with wave grouping and `Parallel: yes/no` labels.\n`/frame:plan audit` creates a fix plan from the latest audit report.\n\n**Build** — implement\n`/frame:build` handles two kinds of parallelism automatically, no flags. **Between features**: if another feature is already being built, build offers to set it up in its own git worktree — you never call `/frame:parallel` by hand. **Within a feature**: it reads the `Parallel:` labels from plan.md and runs independent wave tasks concurrently. Stuck — `/frame:unstuck`. Found a bug — `/frame:debug`.\n\n**Review** — check before deploying\n`/frame:review` answers two questions, not one. *Is the code correct?* — automated gates and a 6-panel review (spec compliance, security, performance, business logic, tests, conventions) on the diff, with FAIL findings verified adversarially in parallel. *Did it produce the result the spec describes?* — the **artifact check**: every spec carries a mandatory `## Evidence` list (E1, E2, …: \"screenshot of screen X with data Y shows …\", \"output of command Z on input W contains …\", \"file `out/…` contains …\"), and before the panel runs, review actually obtains each artifact — starts the app, takes the screenshot, runs the command, opens the generated file — saves it under `docs/specs/{feature}/evidence/` and compares it with the spec **by content**, not by size, duration or exit code. The table lands in `evidence.md`; any mismatch is `REVIEW_FAILED (evidence)` with one finding per failed item, and the panel does not run — the same rule as red gates. Items no tool can check (video, audio, hardware) are marked `manual:`, go onto the `/frame:test-plan` checklist and block `/frame:ship` until you tick them.\nIf review requests changes, `/frame:fix` closes the findings in parallel — one fixer subagent per file, light findings skip the TDD ceremony, one quality-gate run at the end. Evidence findings are re-collected as artifacts, and once they match, the review re-runs so the panel still sees the code.\n\n**Ship** — deploy and record\n`/frame:ship` commits, optional push/PR, and updates project memory.\n\n**Reflect** — learn and improve\n`/frame:retrospective` after deploy updates metrics and captures patterns for future sessions. It also asks whether a bug reached the user while `evidence.md` was green — if so, the weak evidence item and its stronger wording go into memory, so the next spec asks for better proof.\n\n**Autopilot** — everything after research, unattended\n`/frame:auto <feature>` chains plan → build → review → fix → ship in one run and **asks nothing**. Research is where you decided what to build; from there the pipeline prints a briefing (tasks, waves, high-risk list) and flies until it lands a local commit. Review findings do not bounce back to you for a manual `/frame:fix` — a technical finding is fixed in-flight, to the right architectural solution rather than a workaround, whatever its severity and whichever file it sits in. It halts only on a **product decision** (a business rule, a policy, scope — something the repo cannot answer), a wave failure, an architectural deviation from the plan, a review round that closes nothing, or 5 rounds without approve. It never pushes and never opens a PR. Add `strict` for the adversarial two-verdict review each round.\nAutopilot composes with parallel work: run `/frame:auto` in each feature's worktree — those flights land at review approve (integrate-ready) instead of shipping; when the batch is done, one `/frame:integrate` from main merges them all, then a single `/frame:ship`.\nSide quests stay safe too: `/frame:fast` and `/frame:debug` detect a live flight and isolate themselves into a `hotfix/{slug}` worktree — zero interference with the running build, and integrate merges the hotfix first.\n\n## Examples\n\n### New feature: add Google authentication\n\n```\n/frame:daily\n# → see current project status and what's planned\n\n/frame:research \"Google OAuth\"\n# → Claude asks 2-3 clarifying questions, then studies the codebase:\n#   how current auth works, what patterns are already used, what needs to be added\n#   → research.md with Requirements (R1, R2...) and Acceptance Criteria (AC1, AC2...)\n\n/frame:plan \"Google OAuth\"\n# → get a concrete task list with wave grouping:\n#   Wave 1 (Parallel: yes): configure credentials, add callback route\n#   Wave 2 (Parallel: no): connect to sessions (depends on Wave 1)\n#   Wave 3 (Parallel: yes): add UI button, write integration tests\n\n/frame:checkpoint\n# → save a restore point — if something goes wrong, use /frame:checkpoint rollback\n\n/frame:build\n# → reads Parallel: labels from plan.md\n#   Wave 1: runs its tasks concurrently (file-disjoint, shared tree)\n#   Wave 2: runs sequentially (depends on Wave 1 output)\n\n/frame:review\n# → automated checks + 6-panel review on the diff (spec compliance, security, performance, tests, conventions, business logic)\n# → every requirement and AC traced to implementation\n\n/frame:ship\n# → commit, optional push/PR, project memory updated\n```\n\n### Two features in parallel: auth and billing\n\n```\n# Terminal 1 (main) — first feature builds right here, no ceremony:\n/frame:research auth\n/frame:plan auth\n/frame:build auth         # main is your main line — builds here\n\n# Terminal 1 — start a SECOND feature while auth is still cooking:\n/frame:research billing\n/frame:plan billing\n/frame:build billing\n# → build sees auth is in flight and offers:\n#   \"⚠️ auth is already being built. Set up an isolated worktree for billing? [Y/n]\"\n# → Y: creates worktree ../project-billing + branch, checks file overlaps, registers on the board\n#   \"Build it there: cd ../project-billing && claude → /frame:build billing\"\n# You never type /frame:parallel — build routes it for you.\n\n# Terminal 2:\ncd ../project-billing && claude\n/frame:build billing      # builds in isolation\n/frame:review\n\n/frame:parallel status    # from main — see the board anytime\n# → BOARD: billing BUILD 4/7 tasks  (auth lives in main, the base)\n\n# When both features pass review (auth in main, billing in its worktree):\n/frame:integrate\n# → main is the base (carries auth); merges billing's branch into integrate/{date}\n# → full quality gates after EVERY merge\n# → cross-feature review of the combined diff (module interactions, config conflicts)\n# → per-feature learnings merged into shared memory\n# → report + \"ready to ship\"\n\n/frame:ship                      # from the integration branch\n/frame:parallel stop auth        # cleanup worktrees\n/frame:parallel stop billing\n```\n\n### Bug: users can't log in after password reset\n\n```\n/frame:daily\n# → restore context, see the bug is already in the plan or add it\n\n/frame:debug \"login after reset\"\n# → git archaeology first (git log -15 -- relevant files)\n# → max 3 ranked hypotheses, checks cheapest first\n# → you get a confirmed root cause with specific location in code\n\n# If the cause is found immediately:\n/frame:checkpoint                        # restore point before the fix\n/frame:fast \"fix: invalidate old session after password reset\"\n# → Claude makes a targeted fix, writes a regression test, prints one-line summary\n\n# If the cause is unclear — go deeper:\n/frame:debug --deep\n# → 3 parallel investigators: git-history, code, config\n#   analyzes git history, finds the commit that broke the behavior (5-why analysis)\n\n/frame:checkpoint\n/frame:fast \"fix: ...\"                   # fix the found cause\n\n/frame:review\n# → confirm the fix didn't break other login scenarios\n\n/frame:ship\n```\n\n### Audit: find issues before launch\n\n```\n/frame:daily\n# → briefing shows: \"Audit: ⚠️ never run\" — time to fix that\n\n/frame:audit\n# → detects project size (S/M/L), launches category agents in parallel:\n#   SEC: OWASP Top 10, secrets, auth, CORS\n#   PERF: N+1 queries, memory leaks, cache, bundle\n#   DEPS: vulnerabilities, outdated packages\n#   LOGIC, DATA, OBS, TEST, INFRA, MAINT, A11Y, PRIV\n# → verification pass: devils-advocate tries to REFUTE CRITICAL/HIGH findings\n# → AUDIT.md saved to .planning/reports/audit/{date}/AUDIT.md\n\n# Targeted scans:\n/frame:audit security           # security only\n/frame:audit performance        # performance only\n/frame:audit deps               # dependencies only\n/frame:audit quick              # top 4 categories (SEC, PERF, DEPS, LOGIC)\n\n# After audit, create a fix plan:\n/frame:plan audit\n# → reads AUDIT.md, groups findings into tasks by file/module\n# → Wave 1: CRITICAL findings, Wave 2: HIGH findings\n\n/frame:build\n# → implements fix tasks\n\n/frame:ship\n# → security check passes, commit and push\n```\n\n### UI verification: confirm the interface works\n\n```\n/frame:build\n# → Claude implements the task, says \"done\"\n\n/frame:verify-ui\n# → opens browser via Playwright MCP, takes a screenshot\n# → compares with the task description\n# → PASS: interface matches expectations\n# → FAIL: describes exactly what's wrong and where to look\n\n# If something is wrong:\n/frame:fast \"fix: button not showing on mobile\"\n/frame:verify-ui\n# → re-check after the fix\n```\n\nThe command only **verifies** — it doesn't auto-fix. If it finds a problem, it describes it precisely: which element, what behavior, what was expected.\n\n**Automatic check**: in `/frame:build`, `/frame:fast`, and `/frame:debug` — if the task touches UI files (`.tsx`, `.vue`, `.css`, `component`, `page`) — browser check runs automatically after quality gates.\n\n**Requires Playwright MCP** — added automatically on `npx the-frame-ai init` or `npx the-frame-ai update` if you answer \"y\" to the frontend project question.\n\n### CI / Autonomous mode\n\nFRAME doesn't have a dedicated headless command. For CI or non-interactive runs, invoke commands directly via `claude -p`:\n\n```bash\n# Run full cycle autonomously\nclaude -p \"/frame:build\" --allowedTools \"Bash,Read,Write,Edit\"\n\n# Audit in CI\nclaude -p \"/frame:audit quick\" --allowedTools \"Bash,Read,Write,Grep\"\n```\n\n## What's inside\n\nFRAME provides:\n\n- **6-phase workflow**: Research → Plan → Build → Review → Ship → Reflect\n- **33 commands**: from quick tasks to full feature development cycle\n- **Pipeline autopilot**: `/frame:auto` drives plan → build → review → fix → ship unattended, with a Stop hook that keeps the flight moving; it halts only for a product decision, never for a technical one\n- **Parallel feature work**: `/frame:parallel` runs each feature in its own git worktree with a task board; `/frame:integrate` merges them back with per-merge quality gates and cross-feature review\n- **Parallel review fixes**: `/frame:fix` closes findings file-by-file in one pass — no worktrees, no per-fix ceremony\n- **Evidence, not just green checks**: every spec lists user-visible proofs (`## Evidence`); `/frame:review` collects them as real artifacts (screenshots, output, files) into `docs/specs/{feature}/evidence/` and fails the review when the content does not match the spec\n- **10 AI agents**: Researcher, Planner, Builder, Reviewer, Auditor, Devil's Advocate, Security, Performance Auditor, Tests Reviewer, Conventions Reviewer\n- **Safety Hooks**: block destructive operations, enforce quality gates\n- **Git Safety**: checkpoints, rollback, worktrees, pause/resume\n- **Unified Audit**: 12 categories (SEC, PERF, LOGIC, API, DATA, OBS, DEPS, TEST, INFRA, MAINT, A11Y, PRIV) with adversarial verification\n\n## Prerequisites\n\n- Node.js >= 18\n- Git (project must be a git repository)\n\n## Quick Start\n\n```bash\n# Initialize git repo if needed\ngit init && git commit --allow-empty -m \"init\"\n\n# Install FRAME\nnpx the-frame-ai init\n\n# Open Claude Code in this project and run:\n/frame:init    # scans codebase, fills MAP.md\n/frame:daily   # your entry point every day\n```\n\n## Commands\n\n### Core — start here\n\nThese commands cover 90% of solo dev work:\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:daily` | **Start here** after any break — what was done, what's next |\n| `/frame:research <topic>` | Before planning a new feature |\n| `/frame:plan <feature>` | Turn research into an actionable task list with waves |\n| `/frame:plan audit` | Create fix tasks from the latest audit report |\n| `/frame:build` | Implement tasks — reads Parallel: labels, runs sequentially or in parallel automatically |\n| `/frame:review` | Before deploying — gates + artifact check against the spec's Evidence + 6-panel review |\n| `/frame:ship` | Commit, optional push/PR, update memory |\n\n### All Commands by Phase\n\n<details>\n<summary>Research</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:research <topic>` | Before planning a new feature |\n| `/frame:why <topic or path>` | Search decision history or explain why code looks the way it does |\n| `/frame:arch <module>` | Document a module's architecture to `docs/arch/{module}.md` |\n</details>\n\n<details>\n<summary>Plan</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:plan <feature>` | Turn research into an actionable task list with wave grouping |\n| `/frame:plan audit [all]` | Turn audit findings into a fix plan (Critical+High, or all) |\n| `/frame:add-task` | Add a task to the plan without interrupting work |\n</details>\n\n<details>\n<summary>Build</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:build` | Implement plan with TDD — auto-detects sequential vs parallel from plan |\n| `/frame:fix [REV-N ...]` | Close review findings in parallel — one fixer per file, single gates run |\n| `/frame:fast <task>` | Quick task under 30 minutes |\n| `/frame:debug <issue>` | Systematic bug investigation with git archaeology |\n| `/frame:debug --deep` | Deep forensic investigation (parallel investigators, 5-why, timeline) |\n| `/frame:debug <SEC-N>` | Debug a specific finding from the last audit/review by ID |\n| `/frame:refactor` | Refactor with TDD safety net |\n| `/frame:migrate` | DB/API/deps migration with rollback plan |\n</details>\n\n<details>\n<summary>Review & Audit</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:review` | Before deploying — automated checks + artifact check (spec `## Evidence` → `evidence.md`) + 6-panel review |\n| `/frame:audit` | Full project audit: 12 categories, adversarial verification |\n| `/frame:audit security` | Security-only audit: secrets, OWASP, auth, CORS |\n| `/frame:audit performance` | Performance-only audit: N+1, cache, memory leaks, bundle |\n| `/frame:audit deps` | Dependency audit: vulnerabilities, outdated packages |\n| `/frame:audit quick` | Top 4 categories (SEC, PERF, DEPS, LOGIC) — fast overview |\n| `/frame:health` | Full project health check |\n| `/frame:health sprint` | Weekly progress vs roadmap |\n</details>\n\n<details>\n<summary>Ship</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:test-plan` | After review, before ship — generates a manual \"go check this as a user\" checklist, including the spec's `manual:` evidence items |\n| `/frame:ship` | Commit, optional push/PR, update memory — readiness passport includes the Evidence row |\n| `/frame:checkpoint` | Save/list/rollback git checkpoints |\n</details>\n\n<details>\n<summary>Reflect</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:retrospective` | After deploy — update memory and record learnings |\n| `/frame:cleanup-memory` | Trim and archive stale memory |\n</details>\n\n<details>\n<summary>Daily & Utilities</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:daily` | Start of day — what was done, what's next |\n| `/frame:daily full` | Full technical context dump (STATE.md + memory + git diff) |\n| `/frame:note` | Capture a pattern, decision, or anti-pattern |\n| `/frame:unstuck` | Stuck? Get 3 concrete options to unblock |\n| `/frame:init` | First run — scan codebase, fill MAP.md |\n| `/frame:doctor` | Verify FRAME installation |\n| `/frame:pause` / `/frame:resume` | Save and restore mid-task state |\n</details>\n\n<details>\n<summary>Advanced</summary>\n\n| Command | When to use |\n|---------|-------------|\n| `/frame:parallel start <feature>` | Launch a planned feature in its own worktree, track it on the board |\n| `/frame:parallel status` | See all parallel tasks: phase, progress, readiness |\n| `/frame:integrate` | Merge finished parallel features with gates + cross-feature review |\n| `/frame:worktree` | Isolated git worktree for parallel experiments (low-level) |\n</details>\n\n## Full Command Reference\n\n<!-- COMMANDS:START -->\n| Command | Description | Arguments |\n|---------|-------------|-----------|\n| `/frame:add-task` | Add a task to the current plan.md without interrupting work | `<task description>` |\n| `/frame:arch` | Document module architecture and design decisions for a file or module | `<file or module path>` |\n| `/frame:audit` | Comprehensive project audit across 12 categories — security, performance, business logic, API, data, observability, deps, tests, infra, maintainability, a11y, privacy | `[category | quick] [scope-path] [--priv]` |\n| `/frame:auto` | Autopilot: run plan → build → review → fix → ship unattended after research — zero questions; halts only on a product decision or a hard failure | `<feature> [strict]` |\n| `/frame:build` | Implement planned tasks using TDD — auto-routes to a worktree when another feature is already in flight, and auto-detects parallel waves from plan.md | `[feature]` |\n| `/frame:checkpoint` | Manage git checkpoints: list, create, rollback, or clean up frame/checkpoint/* tags | `[list | create | cleanup | rollback [<tag> | --soft]]` |\n| `/frame:cleanup-memory` | Trim and archive memory files, removing stale and low-confidence entries | — |\n| `/frame:daily` | Morning briefing — project status, today's priorities, and blockers | `[full]` |\n| `/frame:debug` | Systematically debug an issue — or run deep forensic investigation with 5-why analysis | `[--deep] <SEC-N|issue description>` |\n| `/frame:doctor` | Check FRAME installation health — verify paths, config, and hook registration | — |\n| `/frame:evolve` | Promote high-confidence learnings into permanent project rules (CLAUDE.md) and retire duplicates | — |\n| `/frame:fast` | Execute a quick task end-to-end without full research/plan cycle | `<task description>` |\n| `/frame:fix` | Close review findings in parallel — groups findings by file, spawns one fixer per non-conflicting group, single gates run at the end | `[feature] [REV-N ...]` |\n| `/frame:health` | Daily health check: tests, lint, types, security scan freshness — or sprint velocity check | `[sprint]` |\n| `/frame:init` | Initialize project: scan codebase, fill MAP.md, STATE.md, and memory files | — |\n| `/frame:integrate` | Merge all finished parallel features into one integration branch with quality gates and cross-feature review | `[feature ...]` |\n| `/frame:migrate` | Plan and execute a database or schema migration with rollback safety | `<migration description>` |\n| `/frame:note` | Save a quick memory note (pattern, decision, or anti-pattern) to memory files | `<note text>` |\n| `/frame:parallel` | Orchestrate parallel feature work across git worktrees — start tasks, view the board, stop tasks | `start <feature> | status | stop <feature>` |\n| `/frame:pause` | Save session state to pause-state.json and create a checkpoint | — |\n| `/frame:plan` | Decompose a feature into atomic, code-grounded tasks with embedded bodies (Action/Done/Context), wave grouping, traceability, Parallel labels, and a mandatory Evidence list in spec.md; or create a plan from audit findings | `<feature description> | audit [all]` |\n| `/frame:refactor` | Refactor code with test coverage verification and checkpoint safety | `<refactor scope>` |\n| `/frame:research` | Domain research: clarification gate, size scaling, parallel codebase + web scouting with source-quality protocol, dependency passports, devil's-advocate stress-test, new research.md with Decision Log cycle | `<topic or question>` |\n| `/frame:resume` | Resume work from pause-state.json — restore context and continue | — |\n| `/frame:retrospective` | Write retrospective, update memory files with learnings and patterns | — |\n| `/frame:review` | Code review: completion check, automated gates, artifact check against the spec's Evidence list, parallel reviewer panel with verification pass | `[audit | strict]` |\n| `/frame:ship` | Prepare and create a git commit and pull request after review passes | — |\n| `/frame:test-plan` | Generate a manual user acceptance checklist for the current feature | `<feature or scope>` |\n| `/frame:unstuck` | Get unblocked: diagnose blockers, suggest next actions, reset mental model | — |\n| `/frame:upgrade` | Upgrade FRAME framework files to the latest version with diff preview and changelog | — |\n| `/frame:verify-ui` | Browser UI verification using Playwright MCP: screenshot and assert UI state | `[<url or component>]` |\n| `/frame:why` | Explain why code looks the way it does — or search decision history by keyword | `<keyword | file path | function name>` |\n| `/frame:worktree` | Manage git worktrees for parallel task execution without context switching | `[create | list | cleanup | <task-name>]` |\n<!-- COMMANDS:END -->\n\n## Agents\n\n<!-- AGENTS:START -->\n| Agent | Description |\n|-------|-------------|\n| `auditor` | Universal category auditor. Receives a category brief from the orchestrating command, audits the codebase for that category, writes findings to its category file. Use when: /frame:audit spawns category-specific subagents. |\n| `builder` | Implementation agent. Writes code using TDD, runs quality gates, creates git commits. Use when: implementing a planned task from plan.md. |\n| `conventions-reviewer` | Conventions/style reviewer for the /frame:review panel (and build waves). Checks code conventions and style in a git diff. Returns PASS/WARN/FAIL verdict. |\n| `devils-advocate` | Find problems in code — code review, plan critique, or finding verification. Never writes application code. Use when: reviewing implementation, challenging a plan, or verifying audit/review findings. |\n| `performance-auditor` | Performance auditor agent. Detects stack, researches current perf issues, runs deep audit, writes PERF_REPORT.md. Never edits application code. Use when: auditing perf before ship or on demand. |\n| `researcher` | Research agent. Analyzes codebase or web for alternatives and context before planning. In /frame:research acts as codebase-scout or web-scout subagent. Use when: exploring options or gathering context. |\n| `reviewer` | Review agent. Checks code against spec, runs quality gates, security analysis. In /frame:review panel acts as the Spec Compliance reviewer. Use when: implementation is complete and needs review before ship. |\n| `security` | Security auditor agent. Scans code for vulnerabilities, secrets, OWASP violations. When used in /frame:audit produces security-category report; when used in /frame:review panel produces diff-scoped findings. Never edits application code. |\n| `tests-reviewer` | Test-quality reviewer for the /frame:review panel (and build waves). Checks test coverage and quality of a git diff. Returns PASS/WARN/FAIL verdict. |\n<!-- AGENTS:END -->\n\n## Hooks\n\nFRAME installs 5 hooks into `.claude/hooks/`. They run automatically.\n\n| Hook | Trigger | What it does | To disable |\n|------|---------|--------------|------------|\n| `safety-net.sh` | Before Bash | Blocks `rm -rf` and `DROP TABLE/DATABASE` | Remove from `.claude/settings.json` |\n| `git-safety.sh` | Before Bash | Blocks force push, `reset --hard`, commits while the quality gate is red; warns on `git add -A` and refspec pushes into main | Remove from `.claude/settings.json` |\n| `quality-gate.sh` | After file write | Runs typecheck + lint on changed file; records pass/fail so git-safety can block commits on red | Remove from `.claude/settings.json` |\n| `session-init.sh` | Session start | Shows current phase/task; full context dump if away > 24h | Remove from `.claude/settings.json` |\n| `pre-compact.sh` | Before context compaction | Saves timestamp to STATE.md before context is compressed | Remove from `.claude/settings.json` |\n\n## Configuration\n\nFRAME is configured via `.frame/config.json`. Key settings:\n\n```json\n{\n  \"quality\": {\n    \"commands\": {\n      \"typecheck\": \"npx tsc --noEmit\",\n      \"test\": \"npx vitest run\",\n      \"lint\": \"npx eslint .\",\n      \"build\": \"npm run build\"\n    }\n  }\n}\n```\n\n## CLI\n\n```bash\nnpx the-frame-ai init [target-dir]     # Install FRAME\nnpx the-frame-ai update [target-dir]   # Update commands, agents, hooks\nnpx the-frame-ai doctor [target-dir]   # Check installation health\nnpx the-frame-ai version               # Show CLI version\n```\n\n`update` only updates commands, agents, and hooks. Project files (STATE.md, MAP.md, memory/, etc.) are never overwritten.\n\n`init` detects the stack from its manifest file — `go.mod`, `Cargo.toml`, `Package.swift`, `*.xcodeproj`, `pyproject.toml`, `package.json` — and fills `quality.commands` in `.frame/config.json` accordingly (typecheck, test, lint, build, audit, outdated). The detected stack is preselected in the interactive prompt and applied as-is under `--yes`. Supported presets: typescript, javascript, python, go, rust, swift (SwiftPM), swift-xcode (any Xcode app — the target platform comes from `SDKROOT`, so a macOS app gets `-destination 'platform=macOS'` and an iOS app gets the simulator); pick `custom` to type your own commands.\n\n## Project Structure (after installation)\n\n```\n.claude/\n  commands/          # 31 FRAME commands\n  agents/            # 10 AI agents\n  hooks/             # 5 safety hooks\n.frame/\n  config.json        # FRAME configuration\n.planning/\n  STATE.md           # Current position\n  BOARD.md           # Parallel task board (created by /frame:parallel)\n  MAP.md             # Project map\n  ROADMAP.md         # Roadmap\n  memory/            # Project memory (context, conventions, dependencies, learnings)\n  specs/             # Feature specs\n  reports/\n    audit/           # Audit reports (security, performance, deps, etc.)\n    integration/     # Integration reports from /frame:integrate\n```\n\n## Breaking Changes in v0.14.0\n\n- **`/frame:security`** removed → use `/frame:audit security` or `/frame:audit`\n- **`/frame:performance`** removed → use `/frame:audit performance` or `/frame:audit`\n- **`/frame:check-deps`** removed → use `/frame:audit deps`\n- **`/frame:estimate`** removed → estimates are now per-task fields in plan.md\n- **`/frame:headless`** removed → use `claude -p \"/frame:build {feature}\"` directly\n- **`/frame:build --parallel`** removed → build reads `Parallel:` labels from plan.md automatically\n- **`/frame:build --review-team`** removed → inline review team replaced by `/frame:review` panel\n- Reports moved: `.planning/reports/security/` and `.planning/reports/performance/` → `.planning/reports/audit/`\n\n## License\n\nMIT\n","readmeFilename":"README.md"}