{"_id":"opencode-discipline","_rev":"28-a6d29c40321ff1183bfe300d3899737c","name":"opencode-discipline","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"opencode-discipline","version":"0.1.0","_id":"opencode-discipline@0.1.0","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"c664d9436a498c50237b4ed98ed00b9fd1c3ebf3","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.1.0.tgz","fileCount":14,"integrity":"sha512-156wsNUnXfavnuhR4yjMTdMgfYYB0NXhjisRFLsKU3qXUk5/W26lQjWg842JTgVULhi/9igAumu7K3Vtb+o0gA==","signatures":[{"sig":"MEUCIQDJkEnmw9QsJzKu4pdazGaNhFoxtgl/7jUGK7KF351WrAIgcBaawkL89yiU5OU071tR9Lnd9eSQd8MRQzvVDmyKBno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":490708},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.1.0_1773934922457_0.5484116219479576","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"opencode-discipline","version":"0.1.1","_id":"opencode-discipline@0.1.1","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"051d35d356c536f3cf059ef6a82695b36309edd2","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.1.1.tgz","fileCount":14,"integrity":"sha512-2QaZAWvIhkVRntm8Oj4ria2ckpEk7BxrWcwMI/Yw15fjSxaT1c9eaTwVtQj+3ZsRFSS9SvqGxJ2yf0ti8fD6Ag==","signatures":[{"sig":"MEQCIBaOhzG1Cvs3U+nNe5QZeQZrlZdOPcxvW3rO6PhhE7seAiA1impf8l/bo4IeFvbhyVwycJKHbUbBzm9VCCwOAVGbEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493604},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.1.1_1773936228992_0.0789401901867266","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"opencode-discipline","version":"0.1.2","_id":"opencode-discipline@0.1.2","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"ae9aa8ae15312c6f4a7d6e9a23b7ceef2af8f5cd","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.1.2.tgz","fileCount":14,"integrity":"sha512-Rmtne8hDFiA165EpxSYPzhV+RLn7Tzk63DEwrDqliSpkco+RrNz4bGePyl654uBTMLJx9VkPvGqzGgfAn59I3w==","signatures":[{"sig":"MEQCIFVgTWHkXbErZs4xoMRtirOiPcr782ar9NxjP273k3tAAiA6wHRqIJSTM7JRG+PKyVIeCALiqPboGmRXuYhC0jyxgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493517},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.1.2_1773937446969_0.39699300240377977","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"opencode-discipline","version":"0.1.3","_id":"opencode-discipline@0.1.3","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"af614b2f1bf0e0fcfbbecb0421458d4d78b988b4","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.1.3.tgz","fileCount":15,"integrity":"sha512-Cf5qVeN3w5dVIuU65cG5TgoBuLhmbHrFsWiScvV9WUODw4ccqWEAurB6P+K+jw/EGNLP/wAMA7p4kM8G0RQ+Ig==","signatures":[{"sig":"MEUCIE2Ih74dHEKX7HQMxKUYqkTeyszVvbAMPSRCjQhNM6hOAiEAzCd9YDK8lGNEzEZOdekNnOrGOWkkR/lZwhs2nDAhg1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495501},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.1.3_1773938044279_0.2826170253526008","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"opencode-discipline","version":"0.1.4","_id":"opencode-discipline@0.1.4","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"d6e84d64c42fc7ec19a5d073747a13b0e933114f","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.1.4.tgz","fileCount":15,"integrity":"sha512-wTBJwCEig+Llk3dTC5YWTp93QheYepKiP6xko7lD0wtwklQ3WgT0ht+V1CjN20yuBpkJnG6YaOQFg2FsEmXmoA==","signatures":[{"sig":"MEUCIQCQrczVWgWopVLmvGacajDvmGbZbrDUqdFzy+MeTDfihAIgU9//RjRQb+MjnvSfydvXjBwCRA0QqS/5i6z90xthnys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498468},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.1.4_1773981393382_0.8045451456631258","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"opencode-discipline","version":"0.1.5","_id":"opencode-discipline@0.1.5","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"ab99873956d4e75a2fd98db6d07ea1011cb29d31","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.1.5.tgz","fileCount":16,"integrity":"sha512-95HdlqsIswEBjvAsSLc3M5i1sc8pbhBeAUr7YsrwOtZemgWUdDT4aQ/q2c/301xnhREl/mqlx4erp8II5k1VRw==","signatures":[{"sig":"MEUCIH2eT5mXmLFE+raU74jZ2+c/MIjW1RnvLRfiWtED2VyTAiEAiTWvjlGXTtSGIoavYz8n763FP8FLT+dtbntLCggt+WY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":737154},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.1.5_1773993336441_0.6096929700684681","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"opencode-discipline","version":"0.1.6","_id":"opencode-discipline@0.1.6","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"faee744c13fea12f15876d1d637946166d2733b2","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.1.6.tgz","fileCount":16,"integrity":"sha512-5RJMj0wa30VLniwascTk2i0y6UoNgYtaIk9X0wX6owSS8pUf+RB0qX7kWVrt3CWd5qoZU1hK7p06midJAU2vtw==","signatures":[{"sig":"MEUCIETzuPvbCYimajRkXtyiEWdSxiHV8RsRYFYLR1KF4j/VAiEAokZEr8a1j2XnaAmx0tE3T4pI/AZeSoG7McBuOYMYW9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":737144},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.1.6_1773998677022_0.7751853406359652","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"opencode-discipline","version":"0.2.1","_id":"opencode-discipline@0.2.1","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"2fbdd2ea86c83ee8cce17f64ffd089c4af10081a","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.2.1.tgz","fileCount":18,"integrity":"sha512-ujsQrz85XZCitTRxbFNo+AKZBck8HTVX7p34aK7Yr5fffzxWwAHWmNu9xyN3DiHrmucxSy2iK9RvSTLmkJ736Q==","signatures":[{"sig":"MEYCIQDa4+/XfPGkt3pu33FHYMuhvwEN6bX5GHd366zS8wB9xQIhAO8H7QKwYjc9huAd/IBvao8cqrH+6iv59xnWQxAtroid","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":747148},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.2.1_1774000873931_0.8943731131143997","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"opencode-discipline","version":"0.2.2","_id":"opencode-discipline@0.2.2","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"fd2b25c8c440284ca8e449789a9f30058ef9cc69","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.2.2.tgz","fileCount":18,"integrity":"sha512-bb6KPr5mN68ZSiznVIJITy4jV9VlXEmnTvxQlm9BbnzZ2QfN8BBBaxf1YQ+PVx0//tTCmj1n/2Rb3eFlwv99og==","signatures":[{"sig":"MEYCIQDSmJiORS2VTV5T6Ao17RK4IxR/iKj12xtW1/or0QaV6AIhAKuosLVPofbeMrvY7PyrEe9R0U2zNBEJrFE6VzhcCXK6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":750768},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.2.2_1774002485126_0.7695280746612043","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"opencode-discipline","version":"0.3.0","_id":"opencode-discipline@0.3.0","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"66eeb9558f17e2e5a1cdb6a447d1b6505854620b","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.0.tgz","fileCount":18,"integrity":"sha512-AvdM9pr1WfgZG2G6ep/QqfJ8iVmcDS8HgK5lHpqESBQHGGRbn/kAwWuHsTUN6qbOdsl7xuPxdZFV0FbMauEU2w==","signatures":[{"sig":"MEUCIGOePsKqgH/4LGUbE5M7EP7DsbuAanWkt4PjBon1Bxy0AiEA/tu9IozdXeZ+XnPqgwMfBDOTTGHYZbbPMRcFiF8x9J4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":761487},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.0_1774068138436_0.20527628695105915","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"opencode-discipline","version":"0.3.1","_id":"opencode-discipline@0.3.1","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"30957b70886761e8630085146f6812be6057029a","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.1.tgz","fileCount":18,"integrity":"sha512-RrJjuLMI+jWP3qwcZIFuh+7yN3/q1SCozG1v8XE2pgVjNJBfCHO/07pF2Ko3NPZ5VB8NELw0okWGqlMqyt9T4w==","signatures":[{"sig":"MEUCIG9EdDMU5/AT4fvNj2NjtuUT8TqnwkDSXFCg23DvvwFiAiEArQMnx06vwL7CehC0kvVxtRqxMdQpcBJ4ucNSHnBDW+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":761487},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.1_1774068656989_0.9570841851753342","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"opencode-discipline","version":"0.3.3","_id":"opencode-discipline@0.3.3","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"e88fd31c560bf3196ca90aaa79b4c0a7d7d59fb7","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.3.tgz","fileCount":18,"integrity":"sha512-OIxdZED6qHfpaliKQhOqm9x04oB2J941DkwZX/XRzknk3uWXw9tUsozEcRkgLsc/fmuzxH2QqVPGDH3IBPd22A==","signatures":[{"sig":"MEYCIQDnJpMugVsBPTI9OcMK/684bNi/rPYePupHSlBdNA1bfwIhAOQaQ/TTwSPsr4FOhItPYdIorbP463bwjnB5rsRYxkaH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":762515},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.3_1774069389206_0.43000899602117015","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"opencode-discipline","version":"0.3.4","_id":"opencode-discipline@0.3.4","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"2943f65965d4c32173d7ba497c6d9367a87a38aa","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.4.tgz","fileCount":18,"integrity":"sha512-zikD/D8GmFnY1vKQ9RpNgJ+lt1k29eG94fGB8eJrKocgyACWKpnyowwHZFIlR+Nhzj19BsgtO+t7kBNIq+/WFw==","signatures":[{"sig":"MEUCIBu4ZkgOhDrQMC7uwqS5G2mY0Z675KLtYilCt0EU8nntAiEAxI6qlA0wgVcb38n4Wjv7rXD8AHzk6+pA6AhfTkduswQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":762984},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.4_1774069692825_0.48131686863533396","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"opencode-discipline","version":"0.3.5","_id":"opencode-discipline@0.3.5","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"3d7e319abd56b061324618def27ba32482003d06","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.5.tgz","fileCount":18,"integrity":"sha512-4U9/9klcWAl7WJK55MSK9Fksyv7s+VTX5SYwZkj9prFNRkASSgghApFGbVHTxMuHOfF87BQkUbRPdEV93P1VJA==","signatures":[{"sig":"MEUCIC3LcWq8Fjpix896jUlAp8MLirs48I9MxfWA9WOG4CZsAiEAm6XxhxEGthVouDIEVIm8+5ppztyk277NgHY2TolUQDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764340},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d3359a45469ad14b5744b483394882b138734991","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.5_1774070069292_0.6226307944490819","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"opencode-discipline","version":"0.3.6","_id":"opencode-discipline@0.3.6","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"21498f41a43cbac7bbd078f9fbc38ddf82590e5a","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.6.tgz","fileCount":22,"integrity":"sha512-d4m014o/xKZluPmxIqreGpEVXqdr3wB3CgN0b0Re/iKw51XbGGIWQoZkD3/uGsKqjoOwHdqnP/N4CXlgKrCI2g==","signatures":[{"sig":"MEYCIQCuCPBOfVzmxlSDHTatyRZZBAve1RCn4xFVg/4dOpZ10gIhAJtZWb9hD71oMvO52R4jYV2MC84kQo180Om1FahVem+m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":776452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e6f6f329b3100c82ce041be895031542bb0c555a","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.6_1774094318001_0.46879509041809664","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"opencode-discipline","version":"0.3.7","_id":"opencode-discipline@0.3.7","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"40d8866e79659ae453e578fcadc99906927d27b8","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.7.tgz","fileCount":22,"integrity":"sha512-jhg2gIX54rEQtDpDWPjvxid2vcVdHvnbcX3LQJbOJZX63AGjYvfF//4jRd1gdbw7SfGuvIRlWCtUsXUBT75WIA==","signatures":[{"sig":"MEQCICJGQWwfgKC2sCPNHQRc1ATcVxl0bGmPefzeU7ZXZDQtAiAqEH89hPS5yBNv+h+iMaGGAzqXwCulSXTk0Qt+S3LgQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778353},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f2421b563e53217078866093a5a9fb2e4d9fe934","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.7_1774094917568_0.36715760697214983","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"opencode-discipline","version":"0.3.8","_id":"opencode-discipline@0.3.8","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"1837dabfda815b1ced8cf70075e4b2d83eddf01f","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.8.tgz","fileCount":22,"integrity":"sha512-nFvYR/6wiL8KUXAK22HC/ro2kox5+t3r+NyaS73VUk0sx9YA1xWtz77DIy6NG3LN/p4CuBM8zsKnlzCcvRDSVw==","signatures":[{"sig":"MEQCIBU2gpb06Lwi+ea/8Fg8nwCsK7FAK4P6qSurOiTDm2caAiAXIbGrgDhHnUtE1Fo6Xq0UzDAdxG8qQPOhfuHwsotCSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778353},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f02eac755ca9970c7525fb66bb5253ec899b47e0","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.8_1774096066015_0.06632402936010795","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"opencode-discipline","version":"0.3.9","_id":"opencode-discipline@0.3.9","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"6024ef004519c5ec92dc92816a4ac3198ce8861f","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.9.tgz","fileCount":22,"integrity":"sha512-QgQDeMLuZX2sK8iRxfZukGEnrwrYZMDHeThJfNU5GlLdBQMxKAARMEO10hGZmM10h+QVSMI4xNqvZLGIX59OgA==","signatures":[{"sig":"MEUCIB+r7OHGSsuyQOQ+ooJ4B4GNcFNzmG/sLsVWlDvXkWhsAiEAvNnx9Ft5S5NbfawqRlMAxfZGfRkM+zbRtep0WCpLbQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778933},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f02eac755ca9970c7525fb66bb5253ec899b47e0","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.9_1774102054848_0.3008871389886738","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"opencode-discipline","version":"0.3.10","_id":"opencode-discipline@0.3.10","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"ef09f03f0846409541311c49ac9f1037cce856a9","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.10.tgz","fileCount":22,"integrity":"sha512-g2wErC6AYIkLvPKGu5gv5L5X5xjWWdsaxFFLfUwPWDRMh16iPqZiBBCV7ksriuprFTQxVIBeT8btSgRkx3N3tw==","signatures":[{"sig":"MEQCIDIOxrSbKH423/iADNHExsY5zg7Uqj+/pd1Xlp6RnAhxAiATe9nyiOxiAwGTGPrhsQN2MyxD8hc33RyrmjBSxJJcTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778879},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"dc0d82ecf57ab3c4863829b675041d612e6a6645","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","vitest":"^3.0","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.10_1774103247799_0.05575622123797719","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"opencode-discipline","version":"0.3.11","_id":"opencode-discipline@0.3.11","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"655dfa4d51d193c518c5efe39e5ee4a9d6bc6767","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.11.tgz","fileCount":23,"integrity":"sha512-P5CDNzCKl9uPmfbkHu5ehy05w/qI3ZkrYna4HAbbd0/66jra88nJtrL5xvkh/bak1RJ6DrFTrY648VHmVNQOVA==","signatures":[{"sig":"MEUCIQCUOSjF3VEwUHO/YxxJ+OI9xQQygbSidJQESGRk12BaGwIgQieBDfuT6LyC2BkgobImuYVzV/k+cVm0IdaBIcHwsZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":781079},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bf6a64dddfcf8396722b845b400a513266b622bd","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.11_1774242707330_0.9850166707018455","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"opencode-discipline","version":"0.3.12","_id":"opencode-discipline@0.3.12","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"afb68d2eda2426122c74b746ab5e0f1804ff1b1b","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.12.tgz","fileCount":23,"integrity":"sha512-3fuykV0rgZDtL+cyly12hhY9g5gNfe+5Ii84TegfLxzKGKC+iDDBYMGtSA/EBStJ0CTJRLfcCn/CBaTdBNM/Iw==","signatures":[{"sig":"MEYCIQC2fEdVkHC3wYoookDuJoE50N0mopHEcOhqsL8qRiyy0wIhAPq1Y8fefpOolMj6muvf6yknUAhcG0Q+Sfjj51lGmYoD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":781079},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bf6a64dddfcf8396722b845b400a513266b622bd","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.12_1774242959523_0.21176662973488747","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"opencode-discipline","version":"0.3.13","_id":"opencode-discipline@0.3.13","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"788a4e6c0643edfdf62cdf823c596ce8848bbcc7","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.13.tgz","fileCount":22,"integrity":"sha512-VMT9R/CrQxLBcYo5JfNmt+xA6L19ZeRuWFN/1GYpU4SVEElYo0esrFy1f60XrnoCvC5Lf7FDysBl6COPHGkLog==","signatures":[{"sig":"MEUCIGqClEpsKyMGSCyXlaEOeGuF5NAiirxg/dF7aAjDjB0HAiEAm6fof8wQ7btJTIfOyPrQwN5df6CVP7BIAB/Fx0oSEyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778567},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bf6a64dddfcf8396722b845b400a513266b622bd","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.13_1774258901403_0.1733344596589621","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"opencode-discipline","version":"0.3.14","_id":"opencode-discipline@0.3.14","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"c489fb30fb9d44908af0368f62db13362c1b1991","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.14.tgz","fileCount":22,"integrity":"sha512-GnXLNvnVNonLT7WZFTDJS9C4JXlC6ixAq1KeTlxKwAkw+ohfzJrsEyxhTPqHJISsikydCtqJvt2sKHbe5r6G6A==","signatures":[{"sig":"MEUCIQC90J/aaR4bVzliqVrv7wL6NcU+KBi84nUOgakpwpCnKwIgU8JRTl1jk8k2nwNMB/gLXwOw4oE5jDhkwyLXICELAC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778567},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bf6a64dddfcf8396722b845b400a513266b622bd","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.14_1774260822373_0.6996475957498132","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"opencode-discipline","version":"0.3.15","_id":"opencode-discipline@0.3.15","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"15741d4dcc54c333895eb6ed23b282eea04c1b48","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.15.tgz","fileCount":22,"integrity":"sha512-hdrgD0BF0WNGN61UjNr/cj0oilNyBitA2IYngxTyp7TKAgSfCbJp2Qdns+Wq2zBThJllhbeGQ5a52OKvBVos7w==","signatures":[{"sig":"MEYCIQCFXfnvhynqjmJ0TBoiQrvCJ3Qv4LK2072X05NNp92wJAIhAPs0pgf513U+QFTCES9FbBy1E8aQrRqA+jruD00eLxYF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779357},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"bf6a64dddfcf8396722b845b400a513266b622bd","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.15_1774265379478_0.19306150066474648","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"opencode-discipline","version":"0.3.16","_id":"opencode-discipline@0.3.16","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"2bd63de75c8545724e422f60c3db36e2e046588c","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.16.tgz","fileCount":22,"integrity":"sha512-o7YWNjv5OLgCclOJORHPQ9OID/t1CC8ai+fHLstEHOyvxJLfK+1WBGwO3fAyfheBK+jFIA4kvVoniYfDWcZGGg==","signatures":[{"sig":"MEUCIFC2VfiYHyEajnJSyJ0x7weO4ExkWsK98LSPU+VE17/kAiEA/+h/8GZMtjTwmeFrgilHPAY+Tpi/mMEhif9LzF5fyhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780562},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e5d6e6e09ee338dd5bd24aa4aac959bfbb03a319","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.16_1774363354236_0.5315013910128341","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"opencode-discipline","version":"0.3.17","_id":"opencode-discipline@0.3.17","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"2de5c91ed138f572aa7980eadf27dffa991a205f","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.17.tgz","fileCount":22,"integrity":"sha512-7XEf8H+z0oCLWLMroTg77mgQf37ro7kIxLPJwspBI7xTd6SLiBV0RpJ3W1fPuphYhSXU9Z945A1beNlDCObrUw==","signatures":[{"sig":"MEQCIEjDXbcYoawpgYLLZEXGExi4/zvgdwxMq0gZpr41Ds/8AiB27MekANyF66Ion7SqYSdZpEelzzs1/WmrqCjwdFE5pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":781334},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"96629e88eb92ddf8dccf9622d83a8c6b0642a1e5","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.17_1776239747664_0.5365960986095446","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"opencode-discipline","version":"0.3.18","_id":"opencode-discipline@0.3.18","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"dist":{"shasum":"754470fcb533d2a2b9ff7116a0468bb8cbcf92d4","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.3.18.tgz","fileCount":22,"integrity":"sha512-+eC9QwBAlgZrGMKB7XGfid0WweIlTcg5gm/BQ1mHHDHA2o5P1WmtN5Rn7BgJ5Z0b9osTsAQG8JCq8MVvvZIcNQ==","signatures":[{"sig":"MEQCIEyydeEnzWOfruHvkBi9fIqHxc7CSGHRyYYhhPRPlLQiAiBWtl2H18kXkqOR5FHyITuvtW3HuODChwaTJVwObemhAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":781336},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7d695be935ac2baf614fe91238281099e1ebfb87","scripts":{"test":"bun test","build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"_npmVersion":"11.8.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.23","@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.2","bun-types":"latest","@types/bun":"latest","typescript":"^5.7"},"_npmOperationalInternal":{"tmp":"tmp/opencode-discipline_0.3.18_1776240013086_0.3017063966070541","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"opencode-discipline","version":"0.4.0","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"bun build src/index.ts --outdir dist --target bun --format esm && tsc --emitDeclarationOnly","test":"bun test","type-check":"tsc --noEmit","prepublishOnly":"bun run build"},"dependencies":{"@opencode-ai/plugin":"latest","zod":"^3.23"},"devDependencies":{"@types/bun":"latest","bun-types":"latest","typescript":"^5.7","yaml":"^2.8.2"},"gitHead":"7c17a32a7e33b97d498f1143590e6ec84b1353d0","_id":"opencode-discipline@0.4.0","description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","_nodeVersion":"25.5.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-n5Zx+w/q5Au0RP0CLT1rolklGsx/vmthpYym21qk8efA/OrIuRNu22XrHO8ExRyt6GTUa91kfqghUFDPulsAIQ==","shasum":"7e9398ec712be6a9c5d462fa1c1321595d8d1d96","tarball":"https://registry.npmjs.org/opencode-discipline/-/opencode-discipline-0.4.0.tgz","fileCount":22,"unpackedSize":781317,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDi524K/ErxzzTjfWrr0QZk29yXn/+PgZMnRV+w2ezTzAiB0r3LWsN5er7PEEIwDVoC8ypi0DP2BEneFRYr/oJoR5g=="}]},"_npmUser":{"name":"halloweed","email":"halloweed@tutamail.com"},"directories":{},"maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opencode-discipline_0.4.0_1778478228377_0.5361902050113634"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T15:42:02.361Z","modified":"2026-05-11T05:43:48.640Z","0.1.0":"2026-03-19T15:42:02.640Z","0.1.1":"2026-03-19T16:03:49.149Z","0.1.2":"2026-03-19T16:24:07.145Z","0.1.3":"2026-03-19T16:34:04.435Z","0.1.4":"2026-03-20T04:36:33.549Z","0.1.5":"2026-03-20T07:55:36.633Z","0.1.6":"2026-03-20T09:24:37.201Z","0.2.1":"2026-03-20T10:01:14.099Z","0.2.2":"2026-03-20T10:28:05.271Z","0.3.0":"2026-03-21T04:42:18.584Z","0.3.1":"2026-03-21T04:50:57.139Z","0.3.3":"2026-03-21T05:03:09.365Z","0.3.4":"2026-03-21T05:08:13.030Z","0.3.5":"2026-03-21T05:14:29.482Z","0.3.6":"2026-03-21T11:58:38.201Z","0.3.7":"2026-03-21T12:08:37.731Z","0.3.8":"2026-03-21T12:27:46.188Z","0.3.9":"2026-03-21T14:07:35.012Z","0.3.10":"2026-03-21T14:27:27.970Z","0.3.11":"2026-03-23T05:11:47.472Z","0.3.12":"2026-03-23T05:15:59.707Z","0.3.13":"2026-03-23T09:41:41.587Z","0.3.14":"2026-03-23T10:13:42.786Z","0.3.15":"2026-03-23T11:29:39.751Z","0.3.16":"2026-03-24T14:42:34.464Z","0.3.17":"2026-04-15T07:55:47.839Z","0.3.18":"2026-04-15T08:00:13.266Z","0.4.0":"2026-05-11T05:43:48.544Z"},"description":"`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:","maintainers":[{"name":"halloweed","email":"halloweed@tutamail.com"}],"readme":"# opencode-discipline\n\n`opencode-discipline` is an OpenCode plugin that enforces a 4-wave planning flow before implementation:\n\n1. Interview\n2. Gap Analysis\n3. Plan Generation\n4. Review and Handoff\n\nIt provides:\n- `advance_wave` to progress planning waves\n- `accept_plan` to drive accept/revise handoff into Build\n- `/simplify [focus]` custom command (Claude-style simplify workflow)\n- `/batch <change>` custom command (Claude-style parallel batch workflow)\n- `/deep-review [focus|PR]` custom command (read-only 3-agent parallel code review)\n- write/read guards (plan file gating and `.env` read protection)\n- system and compaction context injection for continuity\n- bundled agent markdown files under `agents/`\n\n## Install\n\n```json\n{\n  \"plugin\": [\"opencode-discipline\"]\n}\n```\n\n## Build\n\n```bash\nbun run build\n```\n\n## Notifications (optional)\n\nOn startup, the plugin shows a small in-app toast: `opencode-discipline vX is running`.\n\nYou can enable milestone notifications for key planning events:\n\n- `Need your answers` (agent question prompts)\n- `Plan is ready` (Wave 4 handoff stage)\n- `OpenCode has finished` (Build agent completion)\n\nSet one environment variable before running OpenCode:\n\n```bash\nexport OPENCODE_DISCIPLINE_NOTIFY=metadata\n```\n\nSupported modes:\n\n- `off`\n- `metadata` (emit structured notification metadata)\n- `os` (default; desktop notification via `osascript`/`notify-send`/PowerShell)\n- `both` (metadata + OS)\n\nOptional custom command hook:\n\n```bash\nexport OPENCODE_DISCIPLINE_NOTIFY_COMMAND='terminal-notifier -title \"{title}\" -message \"{message}\"'\n```\n\nTemplate variables: `{event}`, `{title}`, `{message}`, `{sessionID}`.\n\nBuild completion notifications are emitted automatically when OpenCode reports the Build session as idle (`session.idle`).\n\n## Test\n\n```bash\nbun test\n```\n\n## Custom commands\n\nThis plugin injects three commands into OpenCode config:\n\n| Command | What it does |\n|---|---|\n| `/simplify [focus]` | 3-agent parallel review (reuse, quality, efficiency) → applies fixes → verifies |\n| `/batch <change>` | Plans a large parallelizable migration → approval gate → isolated workers → status report |\n| `/deep-review [focus\\|PR]` | 3-agent parallel review (correctness, security, tests/scope) → read-only report with verdict (runs under plan agent) |\n\nThe command prompts live in `commands/*.md`, so you can edit frontmatter/templates without changing TypeScript code. On plugin load they are synced to `~/.config/opencode/commands/` (global).\n","readmeFilename":"README.md"}