{"_id":"@delorenj/pjangler","_rev":"41-62fa63aa32b6ac18e2879f66670a5efc","name":"@delorenj/pjangler","dist-tags":{"latest":"1.5.11"},"versions":{"1.1.3":{"name":"@delorenj/pjangler","version":"1.1.3","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.1.3","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"07bb9783bb796ed2f49a0eafe18f76601ce79c87","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.1.3.tgz","fileCount":898,"integrity":"sha512-wwuMg+vnylqWJSRGyAHkSdgglZvEZiFwddNGXVDigVvRg4fnl6+36/p+NAX7A2KfZEk9yHr66JU/tRKUSYnVyQ==","signatures":[{"sig":"MEUCICvUgY7lJ6GpbUT1Z02rzQ8LL7S9K4e8yh+B9iNhmbDrAiEAui0nPpQAVafsqTNzBAcHsmaCRer/q+OGdNQEwwgFD0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4308250},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"83dcbae796c1997a517262d7f9dcac70d00d267b","scripts":{"mcp":"node dist/mcp-server.js","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.1.3_1780657700316_0.6990878543742594","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@delorenj/pjangler","version":"1.1.4","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.1.4","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"729d3c518d22b6970d13875e1e1e884b8dd924cf","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.1.4.tgz","fileCount":898,"integrity":"sha512-W5I+2CqoC3WehRN4cE3Fl/l/PPsIk/afpGF8vK8irZ3m6yH/Uh6L9mh5Opb2AIUjU53nZ4PJOJ+S7PhTuSYaqA==","signatures":[{"sig":"MEYCIQCRZajWriCVz9ISFN/bgLDsxSZrJqIgfmyfFR2biHZH8wIhAMi+4lammA1ogsbq7AB9hIPxQHFxt4NR7mzU6hfvmHOz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4309540},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"f4d9847efe8bf39392f5e90eef69f10d2f748274","scripts":{"mcp":"node dist/mcp-server.js","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.1.4_1780658264292_0.5471948250853769","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@delorenj/pjangler","version":"1.1.5","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.1.5","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"7b61c45a231452401814873cf79a41081071c099","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.1.5.tgz","fileCount":899,"integrity":"sha512-rBSz038fy8/d1f+i4O8yjW6nEM7q3y2BtncWi2SbMUSvg/HpT6nFIeq+OsV0wQKFElSejb0MKrh98L/bXTN+UQ==","signatures":[{"sig":"MEQCIB38r/pDWiNSuFWANoskKwiD5XeSAN478v2mqdphKwYoAiBsm5of4zpwTynS/QyHQKDFwZR7rVDCEBPw5JcxDg0Jvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4318482},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"5a35a9cd895bd214b1fa70e7b10757c4b1fcadfb","scripts":{"mcp":"node dist/mcp-server.js","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.1.5_1780660149461_0.06478198832712079","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@delorenj/pjangler","version":"1.2.1","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.1","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"d3878e2e2d11a1ab424b4432c1c1b3b327cd724f","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.1.tgz","fileCount":862,"integrity":"sha512-mfkeIQ+Wh9mO/S/Q88rBHJnxuhfDsmYS3QFTZe6YHtPOdfNF6Pbm0L4qtjYx2Fwruz2RPvkCHgeP2FEb1xtLCQ==","signatures":[{"sig":"MEUCIE1dx0ai2qGgsnJ9YDfFnkIRRhizL6LtC6rQIVkakiLpAiEAu44WY6WGYf57yfCINHMQ77LC0gACgNIG2akFq3a4Dvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4499007},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"53035866713632a4921d9fc9bc7e7e20f2963d8d","scripts":{"mcp":"node dist/mcp-server.js","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.1_1783417713864_0.11034004035357525","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@delorenj/pjangler","version":"1.2.2","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.2","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"279367be69d001c4e4a0ab334902e6e37407f62e","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.2.tgz","fileCount":862,"integrity":"sha512-w1WT+PdUFtS/lhhuGJanP+duYIbzRDKIhww/BQsVz2lT2Jt8jm0Q7sr+vy39Ttx+AgYOTt59TGQu0J9B5i/6FA==","signatures":[{"sig":"MEUCIQC4cH42DsMOwBrcwlYEJg3aspbZ2Vh75h+iJtGZoEUs4wIgU6VVyN0UiHyd0PZEgtiqXh2eEDNivM/ibYEabS6IQP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4565089},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"d02570b91930757c9889dc8d72b6726dd8188ec3","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.2_1783418049019_0.6175515274753196","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@delorenj/pjangler","version":"1.2.3","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.3","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"d1f6b98a441c5aa9b0abd41305954760e53316c1","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.3.tgz","fileCount":863,"integrity":"sha512-JIpE5cAqrP8J4DteEBLwpib/v/m9rgmcsj6AYCnTtfNrBntUUK7Z/hD+M1U5Wd8JsnU0DLiesm2F37FoP1F5kw==","signatures":[{"sig":"MEYCIQCsnczjCIe+2WNJpQafaa6soMeNNqUlE0n51NLFK1tR+AIhAOy0xu/XlSvHKJnh/3UZ8UwMGqiMjSpyu3AcCBvLMLpu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4583556},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"5b89193d54b3cc0caa4b7fea68836189432880f1","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.3_1783424500878_0.6127517639227698","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@delorenj/pjangler","version":"1.2.4","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.4","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"8a9ab5bbfa4041ff11718224143c3ddd022a487c","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.4.tgz","fileCount":863,"integrity":"sha512-2sM7dmhSXUBHBwMhXe12JJoN9zh04AKEpZbhTODKrBeVwGZuL5yH2joCraGXMw/uw2LbBKMl69rWraNjofixVg==","signatures":[{"sig":"MEQCICVCN+QshAswC7Xw2otT6vKfIx+MwwV8RcZCyWJjDCs2AiAxKufzZEbjsxJA3M69iFP0uz95OG/1mYykl8CcpcattA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4575864},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"3f7f6333cf7780c298e76ae7e8a12caa9a363d60","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.4_1783547783845_0.9080164528022818","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@delorenj/pjangler","version":"1.2.6","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.6","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"4c739d2f27a5770b788c65c4d05f5d600d5a2007","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.6.tgz","fileCount":863,"integrity":"sha512-AK+K+yT1Fxk0oDv2M19Ls2AwyMDQqDCiMOM9tTVHKE+B+UBMXvftGUSuhsHue9jLweq70KYCYsDApK9bRglQ7A==","signatures":[{"sig":"MEYCIQD79olaMfJ/uS2igp6K0269GOFxh/V3VlCJJoVBKPmNGQIhANVOtkSVMQfBiyDQ/Lr00uQdRph9wuM8IAu3G5ER/TGv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4583733},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"9965c571c5e511e3cb1b51204250245822c9ae95","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.6_1783558721231_0.8585934885494764","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@delorenj/pjangler","version":"1.2.8","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.8","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"0ce16f030dd598c97b9e5e25693a53966b1ceaad","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.8.tgz","fileCount":861,"integrity":"sha512-p92uEnSjo0+3sjUy7DS1IEyLzZunZxg3nf25x5YzMdBvGJ3u/KxtDY8Xds9X5+umI/VAV52JpXv9lxYVPIhRcw==","signatures":[{"sig":"MEUCIF7rqeeytIdGt/tyoNDYoozFs4NyToxGO2i9+uTYP2KkAiEAsJ5WvXo+o89Xmdw2VQR2FP9viN8HrOb4WNvbJ+xtG5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4576277},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"90478437de3cfb17dc079958497aedd37edbfbbd","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.8_1783627948989_0.4456441245978242","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@delorenj/pjangler","version":"1.2.9","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.9","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"0997b81cb4d06fdd2a0b8d12fa6818ca5aac3a30","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.9.tgz","fileCount":861,"integrity":"sha512-3v91zjEZmW0JV8g/t67ZlSTQzLgTeH1fVYiKBkjZx5A4IdAHKRuJaoCuIohyJ6Z5znJDJQKfWyEH9D2eNN2F9Q==","signatures":[{"sig":"MEQCIDefmvcy/5XA+YHod/oHZsbMjo9ZwBl78h3kruMffzieAiA2mdZiWPWlrNVBtkoZIOqPfypnwjxCVVPZ//7+FzHwkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4576277},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"a15500ad0d7936ff9422e114dead8cc852fa1d52","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"11.12.1","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.9_1783628350380_0.534175475989136","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@delorenj/pjangler","version":"1.2.12","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.12","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"e6145b0efd0df41e720b8dd5dac2ae6bd30eaf01","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.12.tgz","fileCount":864,"integrity":"sha512-rVqI7xy8aKwWN8JxKvuswke60Rtk0lcZ3FH/DcOWZlAqGMSG7VMfKV9fkWjrFAg3ByrqkH8mLPSjJQBBv7Si5g==","signatures":[{"sig":"MEUCIGmLiGmPxbTauIiQDXJcPahsDChKmSSFfx0MgLwMbvGgAiEAt4lDHINfwK1e1ZZZ/dK00bYp74wB+xKniU5dNlF3LYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4598877},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"cfdbd7a8c3e94e72d5bda8bfa88aa4bfd23c3409","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.12_1783759637050_0.036264442196424884","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"@delorenj/pjangler","version":"1.2.13","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.13","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"f07c1874a2350e0f5c7bf0a1b075329e0d544ce8","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.13.tgz","fileCount":864,"integrity":"sha512-rH3QkiyFNmDuJ031XMCk7uTwDROvbmQESoxa86GCx/8QpWFp5rS6/X3PvDyI/dbk/HOLwmMzyr0+Hb+FlC+o6g==","signatures":[{"sig":"MEUCIGlvoDvRGAqSXnh45GF9K18rRYxWD8+xZP4Ah9VFzGs0AiEA2xUM7ZKPJzNVuZKaz0ZYFa7DU8Gh7T/57n7EFGrjYk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4614545},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"5bb92146034324502f39b00d6257e571233f7695","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.13_1783766412130_0.093386874974136","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"@delorenj/pjangler","version":"1.2.14","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.14","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"f526fcb45468c1c60e980356419863e53a95d4bd","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.14.tgz","fileCount":864,"integrity":"sha512-RotziLBXq8QNrmSqr54YvAvy3SZi3khhh3JF+oEvpvJaycjCxg3tAp+gTxoxEpGevWTk4n6WWLhK6clTiv43gw==","signatures":[{"sig":"MEUCIQC/fp6GRgID3GPbAr5s4dWkK5LvIkaIGFLrouqZW55I5gIgTfX08qonI7bpA8BIwuvgvEVWgxLFrye7unoqrnIIRM0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4632591},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"a1f4fe1e53d010de4ff47e0b881b50b61d97489f","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.14_1783801399772_0.5479295500445194","host":"s3://npm-registry-packages-npm-production"}},"1.2.16":{"name":"@delorenj/pjangler","version":"1.2.16","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.16","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"f5d486b26374af35226dfa2cdf405218096b121b","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.16.tgz","fileCount":864,"integrity":"sha512-Xc5h9m/8rMUfzQhg+3RMReT6oZ5SRgcgdCecKdVEqdRVbqMr2lpJzFUQdoL/80WpW6toZvBuGH98Tz6JXuRoYQ==","signatures":[{"sig":"MEQCIHS2Xxc3niFl+yxbkpJ8rFfeZyC8rU0i6tkfDIzzpHUSAiAkVQO/ngROeMW4AnsZmwpsby+HnbP8Kaow7i8tBlqx8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4633053},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"b2e3565d363e80926f6029af4153dde0e33cf1f9","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.16_1783887160870_0.8130586700621132","host":"s3://npm-registry-packages-npm-production"}},"1.2.17":{"name":"@delorenj/pjangler","version":"1.2.17","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.17","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"c19c220230d65516073580fabac07495a42dd2a4","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.17.tgz","fileCount":864,"integrity":"sha512-6A7Re/47kSQPSNRYpwWciS7kW2faMfaDikignx4NXr70uEWQy6cdGHQi3FCYvaPs7pIMJ/YtRcDr3cMq4F1qnA==","signatures":[{"sig":"MEUCIQD6Be5JHXonKYz1mOxLdvHLU0guS23Uq0y5BbK7SrxgHwIgWJaMhRPTQxl1gOL11dGST+rFToTWbSCuDpbKYcr4Ujo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4635606},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"8fda33ba23fcafa50885e38ce9f5d6edaaa65a26","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.17_1783903968882_0.08445096514254513","host":"s3://npm-registry-packages-npm-production"}},"1.2.18":{"name":"@delorenj/pjangler","version":"1.2.18","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.18","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"c191eb1918a7431d4e5ee116fcd5394bc35596da","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.18.tgz","fileCount":864,"integrity":"sha512-Ub0iI3tQqPKLfdgZxxiE3nm1JkI2UGe95jdbbWy9Gmm24fuvz6sywdxCUk6RI/2XBR18lywePPzdOuEnUeGl3A==","signatures":[{"sig":"MEUCIQCD7W7CEAdwUHxMfmAmt+BIORlb2DD7eB6XMafMCV0odAIgc7zpMnQVsT9gHn+jP9EfWvhA7DKkjbvTjy6ymJGR3sg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4638759},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"921ee1480cfd87215bb91c3c62b2055ef36ea8d6","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","typescript":"^5","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.18_1783948699718_0.20907789754896067","host":"s3://npm-registry-packages-npm-production"}},"1.2.19":{"name":"@delorenj/pjangler","version":"1.2.19","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.19","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"5fcde11c53cbf770045a46fa434b90f8104c37e4","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.19.tgz","fileCount":865,"integrity":"sha512-Fs9EgTUQcZT4SFwCunSK7FIH4igpCw5Joaf18O58IZPhjKQ/LPGNHGbdWB8lPFpNnGXeL45HhLEJ/2FMudzxjw==","signatures":[{"sig":"MEQCIE4AO++XuleTK+Tj84qYZJ/TLjypiOFK26mN3LlzRR62AiBbG+6B3O15cG/pOh2j8y7SEkbP8tY2N6h5F8OmLuG+qg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4656828},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"51c61654965e2cd3628facc7de075fdb108ad1a8","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs && node tests/pg-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.19_1784216627267_0.16371400547626913","host":"s3://npm-registry-packages-npm-production"}},"1.2.21":{"name":"@delorenj/pjangler","version":"1.2.21","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.21","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"68f9121195e6dac1dd5adb6b5e528f763d14b4c9","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.21.tgz","fileCount":865,"integrity":"sha512-E+CEhWt27E1MnUS6bxs7XWBy+Po4s3WRvWlnYgCOG57z3eK3EtWwgEu/oRbPGKoJx5eL8YywMOAKH1GJQj8UbQ==","signatures":[{"sig":"MEQCIGJcJBlqaV9BlWpP39EAugJKzoTrIS/ayGBe58Wnv90fAiBnEA85ipih+YApQhcoLq5i3Q2SC+gnUZANukPsRrpzUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4686303},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"36ce6afb3d82913756720a99170f7d6d10c67b9b","scripts":{"mcp":"node dist/mcp-server.js","test":"node tests/parity-migrate-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs && node tests/pg-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run build"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.21_1785004426897_0.14909002850287156","host":"s3://npm-registry-packages-npm-production"}},"1.2.25":{"name":"@delorenj/pjangler","version":"1.2.25","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.25","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"0f81fd3031e32f98d9e7dcf6375b4eb1b8a8fbf3","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.25.tgz","fileCount":880,"integrity":"sha512-XR2IucMYHk4QyKuoCXj9s1yAIoJefT6MEGrDHnrzRl2Gy4ZXmIdp6PuAf38NpeiFsl6s8mzQjG+i4p4pegPphw==","signatures":[{"sig":"MEUCIDpcW4iD8EkYX0gYmHBPZYeZF1jw28y1IzCMDt1//obGAiEA/WzfIljpTHM0UW5wykNdhJxSi5Yiv0l+PqYSY4DZzxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4989743},"main":"dist/index.js","type":"module","_from":"file:/tmp/pjangler-public-npm-1.2.25.vTMerl/delorenj-pjangler-1.2.25.tgz","engines":{"node":">=20"},"scripts":{"mcp":"node dist/mcp-server.js","test":"npm run check:lock && npm run check:submodules && npm run check:tracked-secrets && node tests/release-regressions.mjs && node tests/submodule-contract-regressions.mjs && node tests/secret-publication-gate-regressions.mjs && node tests/bmad-version-surface-regressions.mjs && node tests/bmad-transaction-regressions.mjs && node tests/parity-migrate-regressions.mjs && node tests/pjan-43-regressions.mjs && node tests/skillex-init-regressions.mjs && node tests/fleet-shared-bloodbank-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs && node tests/pg-registry-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"_resolved":"/tmp/pjangler-public-npm-1.2.25.vTMerl/delorenj-pjangler-1.2.25.tgz","_integrity":"sha512-XR2IucMYHk4QyKuoCXj9s1yAIoJefT6MEGrDHnrzRl2Gy4ZXmIdp6PuAf38NpeiFsl6s8mzQjG+i4p4pegPphw==","repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.13.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.6.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://npm.pkg.github.com"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.25_1785628834751_0.31235609735110836","host":"s3://npm-registry-packages-npm-production"}},"1.2.33":{"name":"@delorenj/pjangler","version":"1.2.33","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.2.33","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"b5e876483cbe1d883f5e001ce6c54c7c2f32996c","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.2.33.tgz","fileCount":76,"integrity":"sha512-LXiEqib6qqwrEwzOn7Gk/gSaMfp3O9Ji9HqaV7HVcygFJzOAhoqL2Thr/obj9z+8DmjqaXuIsZmdhn9SzIFhFA==","signatures":[{"sig":"MEUCIQDo0wrZucN/h/Q9L4bTAh4TRAlM1feWlgxQ5O0znYE5SQIgXtUq1X7UC0Px9KIGQn2yb4x5jvq6OY3MUjHizpKTrw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.2.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1183146},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"016ac780965866a944ba9207511d506e781aef13","scripts":{"mcp":"node dist/mcp-server.js","test":"npm run check:lock && npm run check:submodules && npm run check:tracked-secrets && node tests/portable-test-paths-regressions.mjs && node tests/release-regressions.mjs && node tests/submodule-contract-regressions.mjs && node tests/secret-publication-gate-regressions.mjs && node tests/bmad-version-surface-regressions.mjs && node tests/bmad-transaction-regressions.mjs && node tests/parity-migrate-regressions.mjs && node tests/pjan-57-lifecycle-recipes-regressions.mjs && node tests/pjan-57-dogfood-regressions.mjs && node tests/generated-project-lifecycle-regressions.mjs && node tests/pack-flatten-regressions.mjs && node tests/pack-flatten-cross-engine-regressions.mjs && node tests/registry-cache-parity-regressions.mjs && node tests/registry-root-ladder-regressions.mjs && node tests/pjan-23-regressions.mjs && node tests/pjan-24-regressions.mjs && node tests/pjan-28-regressions.mjs && node tests/pjan-30-regressions.mjs && node tests/pjan-31a-regressions.mjs && node tests/pjan-36-regressions.mjs && node tests/pjan-43-regressions.mjs && node tests/pjan-48-regressions.mjs && node tests/pjan-49-regressions.mjs && node tests/pjan-50-regressions.mjs && node tests/skillex-init-regressions.mjs && node tests/fleet-shared-bloodbank-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs && node tests/pg-registry-regressions.mjs && node tests/momo-lifecycle-plane-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.2.33_1786471048014_0.5630581244024897","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@delorenj/pjangler","version":"1.3.0","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.3.0","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js"},"dist":{"shasum":"aaeea91ad37b6d2575ce9f61deb93770a2cb61cb","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.3.0.tgz","fileCount":77,"integrity":"sha512-W7uKHb953MO+KsRZcKMgF5oQJu2cnCsamdInnF1XtJCVqbtB28+nKKDjJnoqyNcPjXAUeYAsoLpmVAKoW+2OOA==","signatures":[{"sig":"MEUCIHEe0f77BC+KpP/JFD529Q3FHu40fSlonoxeA/IV0uAxAiEA+WNKp/pWjLR8BoDs7p4H/WZICWMgXYaZASbfqLd//eE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1216557},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"65e54c0fe594d57f949164527d57c5f48db06638","scripts":{"mcp":"node dist/mcp-server.js","test":"npm run check:lock && npm run check:submodules && npm run check:tracked-secrets && node tests/portable-test-paths-regressions.mjs && node tests/release-regressions.mjs && node tests/submodule-contract-regressions.mjs && node tests/secret-publication-gate-regressions.mjs && node tests/bmad-version-surface-regressions.mjs && node tests/bmad-transaction-regressions.mjs && node tests/parity-migrate-regressions.mjs && node tests/pjan-57-lifecycle-recipes-regressions.mjs && node tests/pjan-57-dogfood-regressions.mjs && node tests/generated-project-lifecycle-regressions.mjs && node tests/pack-flatten-regressions.mjs && node tests/pack-flatten-cross-engine-regressions.mjs && node tests/registry-cache-parity-regressions.mjs && node tests/registry-root-ladder-regressions.mjs && node tests/pjan-23-regressions.mjs && node tests/pjan-24-regressions.mjs && node tests/pjan-28-regressions.mjs && node tests/pjan-30-regressions.mjs && node tests/pjan-31a-regressions.mjs && node tests/pjan-36-regressions.mjs && node tests/pjan-43-regressions.mjs && node tests/pjan-48-regressions.mjs && node tests/pjan-49-regressions.mjs && node tests/pjan-50-regressions.mjs && node tests/skillex-init-regressions.mjs && node tests/fleet-shared-bloodbank-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs && node tests/pg-registry-regressions.mjs && node tests/momo-lifecycle-plane-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.3.0_1786814193629_0.5577160198560491","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"@delorenj/pjangler","version":"1.3.7","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.3.7","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"c4b7b3abf680d3ae3a47fe75acc445e6d2f8bf14","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.3.7.tgz","fileCount":83,"integrity":"sha512-LKf7TPkbN1MGkL9RpaDsS/XEF4aN5a7Rr/Qvu9p/LAPW94tuoq9M0VtekIVKQRQXmMu1/6/fc7IlcbAVeDN//w==","signatures":[{"sig":"MEQCIE1jwoXe0/jYuMzUj4CJixJ9ckw/2DyvzYw7ocBELk0GAiBEFC6lLuVNcSoLS+uv88UvD8eKPdsht/D/Xq3PVArW6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1485033},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"9e069c8b983b96763e7267c56841d9435c81c5e4","scripts":{"mcp":"node dist/mcp-server.js","test":"npm run check:lock && node tests/package-lock-parity-regressions.mjs && npm run check:submodules && npm run check:tracked-secrets && node tests/portable-test-paths-regressions.mjs && node tests/release-regressions.mjs && node tests/submodule-contract-regressions.mjs && node tests/secret-publication-gate-regressions.mjs && node tests/bmad-version-surface-regressions.mjs && node tests/bmad-transaction-regressions.mjs && node tests/parity-migrate-regressions.mjs && node tests/hermes-profile-inheritance-regressions.mjs && node tests/pjan-57-lifecycle-recipes-regressions.mjs && node tests/pjan-57-dogfood-regressions.mjs && node tests/generated-project-lifecycle-regressions.mjs && node tests/pack-flatten-regressions.mjs && node tests/pack-flatten-cross-engine-regressions.mjs && node tests/registry-cache-parity-regressions.mjs && node tests/registry-root-ladder-regressions.mjs && node tests/pjan-23-regressions.mjs && node tests/pjan-24-regressions.mjs && node tests/pjan-28-regressions.mjs && node tests/pjan-30-regressions.mjs && node tests/pjan-31a-regressions.mjs && node tests/pjan-36-regressions.mjs && node tests/pjan-43-regressions.mjs && node tests/pjan-48-regressions.mjs && node tests/pjan-49-regressions.mjs && node tests/pjan-50-regressions.mjs && node tests/pjan-65-regressions.mjs && node tests/pjan-67-lifecycle-preflight-regressions.mjs && node tests/pjan-67-regressions.mjs && node tests/pjan-67-trusted-lifecycle-regressions.mjs && node tests/pjan-71-regressions.mjs && node tests/pjan-72-regressions.mjs && node tests/pjan-75-regressions.mjs && node tests/pjan-76-regressions.mjs && node tests/skillex-init-regressions.mjs && node tests/fleet-shared-bloodbank-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs && node tests/pg-registry-regressions.mjs && node tests/momo-lifecycle-plane-regressions.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts --bundle --packages=external --platform=node --format=esm --outdir=dist","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs","test:hermes-profile-inheritance":"node tests/hermes-profile-inheritance-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.3.7_1787157545140_0.3323219088977556","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@delorenj/pjangler","version":"1.4.2","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.4.2","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"1f9f85dca119b96996191a234077add3781f6a7e","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.4.2.tgz","fileCount":95,"integrity":"sha512-rEjupOgEr525X/+VtZAlaN9md17kYU6GwEQAOsTqaY90DHSWZ5oeTp4sla0LQY8gPDKIqHmOXBo1IO1B5zlVkg==","signatures":[{"sig":"MEYCIQDGBfBi2M9LFtzURt1pkJmjQqztcZaOt8CAz1ExWJ93BQIhANaIBS1y497a1sDd9uLqArHgnU6Swt4kXOCxAt+pE+o0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2245553},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"dbafc00435bdc34f99936477742f1e42cad9e5d9","scripts":{"mcp":"node dist/mcp-server.js","test":"npm run check:lock && node tests/package-lock-parity-regressions.mjs && npm run check:submodules && npm run check:tracked-secrets && node tests/portable-test-paths-regressions.mjs && node tests/release-regressions.mjs && node tests/submodule-contract-regressions.mjs && node tests/secret-publication-gate-regressions.mjs && node tests/bmad-version-surface-regressions.mjs && node tests/bmad-transaction-regressions.mjs && node tests/parity-migrate-regressions.mjs && node tests/hermes-profile-inheritance-regressions.mjs && node tests/pjan-57-lifecycle-recipes-regressions.mjs && node tests/pjan-57-dogfood-regressions.mjs && node tests/generated-project-lifecycle-regressions.mjs && node tests/pack-flatten-regressions.mjs && node tests/pack-flatten-cross-engine-regressions.mjs && node tests/registry-cache-parity-regressions.mjs && node tests/registry-root-ladder-regressions.mjs && node tests/pjan-23-regressions.mjs && node tests/pjan-24-regressions.mjs && node tests/pjan-28-regressions.mjs && node tests/pjan-30-regressions.mjs && node tests/pjan-31a-regressions.mjs && node tests/pjan-36-regressions.mjs && node tests/pjan-43-regressions.mjs && node tests/pjan-48-regressions.mjs && node tests/pjan-49-regressions.mjs && node tests/pjan-50-regressions.mjs && node tests/pjan-65-regressions.mjs && node tests/pjan-67-lifecycle-preflight-regressions.mjs && node tests/pjan-67-regressions.mjs && node tests/pjan-67-trusted-lifecycle-regressions.mjs && node tests/pjan-71-regressions.mjs && node tests/pjan-72-regressions.mjs && node tests/pjan-75-regressions.mjs && node tests/pjan-76-regressions.mjs && node tests/skillex-init-regressions.mjs && node tests/pjan-84-global-scope-regressions.mjs && node tests/pjan-84-registry-flag-regressions.mjs && node tests/pjan-84-finding-scope-regressions.mjs && node tests/pjan-84-orphan-adoption-regressions.mjs && node tests/fleet-shared-bloodbank-regressions.mjs && node tests/mcp-catalog-regressions.mjs && node tests/mcp-server-regressions.mjs && node tests/project-registry-regressions.mjs && node tests/pg-registry-regressions.mjs && node tests/momo-lifecycle-plane-regressions.mjs && npm run test:pjan-77","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts --bundle --packages=external --platform=node --format=esm --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs","test:hermes-profile-inheritance":"node tests/hermes-profile-inheritance-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.4.2_1787767979940_0.9385138584236947","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@delorenj/pjangler","version":"1.4.3","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.4.3","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"1bcdb0e06a8156037a0e3d914e237a6094b65747","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.4.3.tgz","fileCount":103,"integrity":"sha512-M3UXD/yP43m6JWf4shlqWLfbn2yyFQg0x/MIXLZL6+RWBlnFQVzVJYwFd9SA7EK6ydXAR+/2UzYLNK7kJVuaAQ==","signatures":[{"sig":"MEUCIQD+ykDzYQ2CEBPRW/LrTe7AoSzCFTldJQA4OTZKc9pqgQIgep/lqCsw4RM0id7YYhFd40GBMvf1SkplnK/TS3FJUWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICDedyD4sgdEkB/uyxvghPNzmcUZakX659If4Ju7dirWAiAnA3PBKpyxz57e1GRnlsGmFlbRd8hh2J8Z8/T0Tp/ocw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6264607},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"fa15945f64f5489dffa053780cf600732ad18f54","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","test:coverage":"npm run build && c8 --reporter=json-summary --reporter=text-summary --src=src --report-dir=coverage node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs","test:hermes-profile-inheritance":"node tests/hermes-profile-inheritance-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.4.3_1788026215135_0.5372033757382482","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@delorenj/pjangler","version":"1.4.4","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.4.4","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"eed8472b735c1131220250dacb55dfaa3e540268","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.4.4.tgz","fileCount":101,"integrity":"sha512-tNw3jOOrxZGs+KTxJr8hroiNfS0enG8n3WeTMrBvxhUBSTCByoPu4DoMTBeqtG4HwJltirwig4BYOXKqkz7i2w==","signatures":[{"sig":"MEUCIAw/QwjTeM7vVpcKAbvDtPKzq/XDD5EjQNrS1Gc84qfwAiEAziRlBeXGIcU5F0Alxu98TaQnuwPFMOnhEXbFHDi0xs0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFeqnim80Kg2vSg7WGIL9VAHQnxENgdPWlZyBOozLckmAiEAlhrVFTWG8ingKisNpuJR2XqobDwbATmnI4Ak2Na4jRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3133392},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"0b2006f752ff7fc511fb3ca41e87f884da4c7ea4","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 --exclude='**/.pjan-*/**' --reporter=json-summary --reporter=text-summary --src=src --report-dir=coverage node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs","test:hermes-profile-inheritance":"node tests/hermes-profile-inheritance-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.4.4_1788333312490_0.6462694996310889","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"@delorenj/pjangler","version":"1.4.5","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.4.5","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"6f6f35444f8d83b7389cd35f7c352cb1271e1d21","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.4.5.tgz","fileCount":101,"integrity":"sha512-qDXTpfXQ2WD/ArmFNDYupDKZg1szZkcqF+objZQy0fW1Hzr2ZuomWE+RcAlC1l+h5/Svt41pPhRFoWbslXvkVw==","signatures":[{"sig":"MEYCIQDFOYOWALF7MuzZrM+A9EWTE4DQhccso/ngUNZDj9fk3QIhAP75sJIx4ehOpz1z3YRhzPg5eYjwq/GBoU9qVvgHHGNN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCXfekzT1dF8OkrzDCRKZ3q5To+QAzoAhj+gyX6qDpwiQIgBvPIr+529DKyRFJ9L1ELhSdOTlqah+FY7ibOOb2MOkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3133392},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"7023f664cd456da475b1e162e5419b0cd74a2601","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 --exclude='**/.pjan-*/**' --reporter=json-summary --reporter=text-summary --src=src --report-dir=coverage node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs","test:hermes-profile-inheritance":"node tests/hermes-profile-inheritance-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.4.5_1788333712218_0.827594507689341","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"@delorenj/pjangler","version":"1.4.6","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.4.6","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"e47c227e641393c38d88ed72506114465e97d448","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.4.6.tgz","fileCount":101,"integrity":"sha512-fT61aGmgV5v+UcON/eyDsLdufbYfMbzV5nt1nNMLZnhtPn1uZriXvdcfQTXm9O6kwOh8mQoMkaPqmfquNGJUvA==","signatures":[{"sig":"MEUCICQU+7cQ5CLYV8vAFCJBvDw+jRFuX8JKfcit+ti01IKPAiEA5MnySMFCItXQLfaD+Fc+qR45pRUechJ3V04ZMVDt76U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDmGj0GChOrfj536d7ZhC4hBt9NC641ah2jgNWjkWexlAiAlXjwGwpvTM6jitzutnvyn/FgEwYWs5MFIYLtf3DJbBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3257125},"main":"dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"0bf02d16000f175e9f5a3ce3114953bbb1a71518","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 --exclude='**/.pjan-*/**' --reporter=json-summary --reporter=text-summary --src=src --report-dir=coverage node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs","test:hermes-profile-inheritance":"node tests/hermes-profile-inheritance-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.17.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","@clack/prompts":"^1.4.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.4.6_1788340014485_0.775373343747614","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@delorenj/pjangler","version":"1.5.2","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.2","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"3526eee7a882eb024ba4c1bde2b6fbd375cd1237","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.2.tgz","fileCount":50,"integrity":"sha512-PnTZ9wdkgS+MMHDnGlqkcfu8xG14fXdtFnkKCRfwbwGfpCvSPm6AYYUjaxxDKYuDqTtK6hqYVXBlQOBt+vGnPQ==","signatures":[{"sig":"MEYCIQCOVMtghE+Nl1F9KI1skf37vaTqc7TZYRd8eIE4Ex9NWwIhANQq86FEpkDhWD63a3LwIw9i8Isfr0wqQ+88YcdoCmvT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICCVFn+YzdjX2h31B1GzU35GZ+/Pee89j+aUGn62zgYJAiAcm+0x/FagXKqD0VHvJU1xr3GsPp7kSYjwnClBJ2iXMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"260a65d34803765d1fd6ca73d4c55fb5b922020c","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.2_1790890968902_0.6240306979786192","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@delorenj/pjangler","version":"1.5.3","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.3","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"578236918bb12b354264c13557c4c73b94383298","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.3.tgz","fileCount":50,"integrity":"sha512-2KYH2t2LO7j6sxeixTRwkOJ40T7/r3wavr1W/EGGiRop26u1GemOSk9tHZmcy9kTZQy+tDuYNtdFFGsHtlQMRg==","signatures":[{"sig":"MEUCIC1oweD35ILrAcgFS11m7dTNWwakx/xSINj0MO+L2VVyAiEAhpg5YUhZTqXfwMLfK55gzgV8zJBdISsMFzLKST6xN2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDlV/yRmppoxiacfRJdDz0ggfv/VFEDWNonIWmRRYTmOQIhANvOeo6bLJZvOfO12irNV2YlW40d+Fu3tTuRRB30GD4h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"3f6badf8fe6f9fe70c0a0a222f9aae34ad1c77ea","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"lasertoast","email":"jaradd@gmail.com"},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"12.0.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.3_1790891904001_0.9832399250205504","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@delorenj/pjangler","version":"1.5.4","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.4","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"353ead2c2a42e3b9057ec48d88a80c148222b762","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.4.tgz","fileCount":50,"integrity":"sha512-FydEPfv3yr+ooq4yiui7MDO8D2O4D61k5s3aXJf6Z54/C0w80w9SnNHXj9+hmnTqeWbALbu78wZkmpK2XZsBCQ==","signatures":[{"sig":"MEQCIEeEy3yXzgpoa19Y86fizQPJlycc5f4Muc26dQ0FT5FQAiB4mSPSrHA3+5YNZ2WEU1aXfkCihCVlbJPQfuVCrG9kgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCOQaILw3stnJca5dHb2ITavW+PeQulM9El0jqwLcQekwIhAO5Jh5u17HnyfXAhQvIQmaq+plcGrhZorYNaBm7ncoCj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"2da6ecfaa5b9e9166f8390d5968fe9893349acbe","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.4_1790901342108_0.3706622969062483","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@delorenj/pjangler","version":"1.5.5","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.5","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"8f5892c5c2cf90036ca7b977572b84c01a0d1bd9","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.5.tgz","fileCount":50,"integrity":"sha512-tilymxoteFfXwPa/+CUEAnGYVkEklEtv0rvNkKREvbxYVMw85vJ77dfz1He5ToHBLvuAdb2PCUQU8VRu5aEpow==","signatures":[{"sig":"MEQCIFhKh9TKUBb6J3GDCQdanbXFkvGb5U4fwa8eSXdyePWcAiBNJxjjMi/b40CKpeK/EGAXBKny2y+y+P70xSRRwEcoSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGk0t03w9Gxxy9dogJt5VAPLYeuhx9U19SGZxrhP9BZaAiBiaC58L0aPRzOpdW0gG9KdPTqtEBFqLTEho7DdQSDSDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"d8ac9097177b208e109a159a55f9b61437690abd","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.5_1790902228811_0.7296744581541885","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@delorenj/pjangler","version":"1.5.6","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.6","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"3a0ffd431ce2a53e1770eafe8a5d537a1be97886","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.6.tgz","fileCount":50,"integrity":"sha512-jFUXKcHU6vVfCZGzvPPnJcy7QsaXdB3XDYANP6h+MSyDhQ+hoeUyWnYAzDTWwXd/WmcgPmgoI4+f80Sz2jSW7Q==","signatures":[{"sig":"MEUCIQDGKqCcjfvyLtY6WHeYJaotdII6OdSIMqvI3GVvGmMbTgIgMUJEyqI92QUBxO1YzreWd3RE1eTJt9qZvF0pJ9SFSq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFpGnaomsvrTSgOTs8w1hltgnNu/4MSJRCF4fKZwQ/+qAiBaGtoAUPc5WaDaip+chhvN3zxTdg0c9/niEsBgPMDIig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"062b10e0a785d688507c838b27f082bdc4bf1044","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.6_1790902621897_0.9195315370915629","host":"s3://npm-registry-packages-npm-production"}},"1.5.7":{"name":"@delorenj/pjangler","version":"1.5.7","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.7","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"2afe8ee31d54d781aa9c0db147508bc8d32b322a","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.7.tgz","fileCount":50,"integrity":"sha512-QaWkzjNqHhtay2VPxDm/reNDR6I9ptmmYewLwUNHx/bxIEKQi+AMP7I99zyTkxDqBvSeYDktOw5bNPNscf1A+w==","signatures":[{"sig":"MEQCIEN0bh/5z+LHtGK90Wbyu0Y6SFGFZoDMkxFR4w3y7hQAAiBPrXv74jZg/hYTCzsAlULOmBy1tMY32ePv8XNW0Uh3gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE7nUpQUOx1B1ddgotLGBuwcPZx9TutrbkIdygZAWi/PAiB7EUypS9rKflWdu/UDtPXDdInXl0l29T/NqL3xwJAsAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"0324875eaac36ad5becf9fc9d5cc7a9aab3a81b1","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.7_1790903849234_0.1277714598350952","host":"s3://npm-registry-packages-npm-production"}},"1.5.8":{"name":"@delorenj/pjangler","version":"1.5.8","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.8","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"b6c70ba4eb30ea2eadd9a3959ca9daea4f09a771","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.8.tgz","fileCount":50,"integrity":"sha512-65N0JMiqBHK1E8JEWR7Gh2KE67QWrvbISyfka9svYui6gevs21VNj/0FezR5qUPW34OftEAbFRDKNo7G9/zqLA==","signatures":[{"sig":"MEUCIQD+2DOJtr6AbdRqKtvs3lJri4TNcghkV+kDt0cF0T+oQAIgLKCJ0pxPEhY8UlOn3XXHofcOOHIa3UsmZDr4wnii89U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDpH9N3VQ52NGY7nootP4/EfDwNaWsDnIwm+r2XPb2q2wIgQebOOS8ptJei5IhiEq+/RLJjAWC37ceT8uJKLtGmAh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"8d5c62992c298a4059bb84417b127e6f1040a36a","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.8_1790906532725_0.7764920298378972","host":"s3://npm-registry-packages-npm-production"}},"1.5.9":{"name":"@delorenj/pjangler","version":"1.5.9","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.9","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"a14307b4254f74097d61109d9fd6562e2ad9dfff","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.9.tgz","fileCount":50,"integrity":"sha512-We7BYySIUkw0/MofrdPJ5tbuzNgkoik3cstVkwgsX5WDXVj4LtroKvDyRZSgtBt4j36O56AK53Mh3UTnoF4irQ==","signatures":[{"sig":"MEQCIEwzx5X+lkn0P+Nr2NVL+nDeaWft/oTBKusKfDEwpgHdAiAMkJwRc0sk/NqnbYNvInQvdjbjk6f5yzO+UVI5a5Zm2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCMrFKaYbTn2aVMzL7H//6MuVO8gYTE9Y8yWjDNZ8XAdgIgRP5Y2Ave/pkBpsCma/NCa6MFC3UcGUrt8JauS3DnAus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185254},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"eebe6f06fde04419e0427b172c8613ae14c965fd","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.9_1790907492739_0.08758640820003727","host":"s3://npm-registry-packages-npm-production"}},"1.5.10":{"name":"@delorenj/pjangler","version":"1.5.10","keywords":["cli","bootstrap","project-setup","mise","docker"],"author":{"name":"delorenj"},"license":"MIT","_id":"@delorenj/pjangler@1.5.10","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"homepage":"https://github.com/delorenj/pjangler#readme","bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"dist":{"shasum":"1eab02272931228599f00a65de09df9389b03dfa","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.10.tgz","fileCount":50,"integrity":"sha512-n17UR/Fo0st+y38topcMrAdpfQCogQ1xuAOerYLT66v/4dFONjUXUjWxXQKHI90/WiU5mxnH5m1K2kJoP+wNdg==","signatures":[{"sig":"MEUCIQDt46P+6dR346YX5TTojAPPfabkSU2UYktAtNjJkoQB/AIgODzOGylbOSNepH7lvOF5AcJzcUQ8dsivPP5zYWv9JSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDNJrWszsGowdBtMy6C9wqctQYenscatO08yJS88GHkswIhAMsmMXtcmRDN2iY7zsDSL3h3Q1sbqihXdEa++6OsVlm4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185255},"main":"dist/index.js","type":"module","engines":{"node":">=24"},"gitHead":"67c727c018fb20f4082b7ea320fde9663a71307c","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pjangler_1.5.10_1790908703036_0.05658448374602876","host":"s3://npm-registry-packages-npm-production"}},"1.5.11":{"_id":"@delorenj/pjangler@1.5.11","bin":{"pj":"dist/index.js","pjangler":"dist/index.js","pjangler-mcp":"dist/mcp-server.js","pjangler-prompt":"dist/prompt.js"},"bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"dist":{"shasum":"4f69fd1a54c75de364ff284631ed4e2b27f6a45e","tarball":"https://registry.npmjs.org/@delorenj/pjangler/-/pjangler-1.5.11.tgz","fileCount":50,"integrity":"sha512-XeXCW9GZwOTQPeCwtAOr9TE92w5LroewwIiL2JesXtr7UsND37myiihfIV7d9uOOz14msJMftl773axe0KzDPg==","signatures":[{"sig":"MEUCIHucHuvdRsXsHcf+Tx5KTZJFppZ6ZtEyIa1br0daIbWcAiEAgnXnOD9OCb/IguXhx8tlldJJ6wBAgum9fyVSjsFUeO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCEWGXjkz91I8c1HOvvxMJBai2a5et4DCJjFqdtBNJCVAIhAJzbuZNVLr96pLeD2D42gSal6TXO8umx8ZLcLOsLeP13"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@delorenj%2fpjangler@1.5.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2185255},"main":"dist/index.js","name":"@delorenj/pjangler","type":"module","author":{"name":"delorenj"},"engines":{"node":">=24"},"gitHead":"74200d94e4e4f9c9d6d8dddf1fac4a93d1aff0b8","license":"MIT","scripts":{"mcp":"node dist/mcp-server.js","test":"node scripts/run-tests.mjs","build":"esbuild src/index.ts src/mcp-server.ts src/prompt.ts src/project-registry-service.ts src/notebook/journal-service-main.ts --bundle --packages=external --platform=node --format=esm --sourcemap --outbase=src --outdir=dist && node scripts/export-project-notebook-skill.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit","check:lock":"node scripts/check-package-lock-parity.mjs","migrate:up":"node-pg-migrate --migrations-dir migrations up","migrate:down":"node-pg-migrate --migrations-dir migrations down","test:pjan-77":"node tests/pjan-77-notebook-domain-regressions.mjs && node tests/pjan-77-notebook-adapter-contract.mjs && node tests/pjan-77-notebook-lifecycle-regressions.mjs && node tests/pjan-77-notebook-cli-contract.mjs && node tests/pjan-77-notebook-hooks-capture.mjs && node tests/pjan-77-notebook-security-isolation.mjs && node tests/pjan-77-notebook-release-gates.mjs","journal:serve":"node dist/notebook/journal-service-main.js","test:coverage":"npm run build && NODE_OPTIONS=--max-old-space-size=12288 c8 node scripts/run-tests.mjs","coverage:apply":"node scripts/coverage-ratchet.mjs --apply","coverage:check":"node scripts/coverage-ratchet.mjs","migrate:create":"node-pg-migrate --migrations-dir migrations create","prepublishOnly":"npm run check:lock && npm run check:submodules -- --remote --recursive --archive --npm && npm run build && npm run check:tracked-secrets","registry:serve":"node dist/project-registry-service.js","check:audit:prod":"npm audit --omit=dev","check:submodules":"node scripts/check-submodule-contract.mjs","registry:install":"node scripts/install-project-registry.mjs","check:tracked-secrets":"node scripts/check-tracked-secrets.mjs","test:bmad-installer-contract":"node tests/bmad-installer-contract-regressions.mjs"},"version":"1.5.11","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e77e8d6a-cca6-4a8d-93aa-21a13d855d22"}},"homepage":"https://github.com/delorenj/pjangler#readme","keywords":["cli","bootstrap","project-setup","mise","docker"],"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"_npmVersion":"11.19.0","description":"Project subsystem bootstrapper CLI","directories":{},"maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"pg":"^8.16.0","zod":"^4.4.3","yaml":"^2.9.0","commander":"^14.0.2","smol-toml":"^1.8.0","@clack/prompts":"^1.4.0","@delorenj/skillex":"0.1.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","esbuild":"^0.25.0","@types/pg":"^8.15.0","typescript":"^5","@types/node":"^25.9.1","node-pg-migrate":"^8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pjangler_1.5.11_1790910094484_0.4226955067917695"}}},"time":{"created":"2026-06-01T19:15:31.159Z","modified":"2026-10-02T03:01:35.008Z","1.1.1":"2026-06-01T19:15:31.572Z","1.1.2":"2026-06-05T10:24:20.054Z","1.1.3":"2026-06-05T11:08:20.533Z","1.1.4":"2026-06-05T11:17:44.495Z","1.1.5":"2026-06-05T11:49:09.658Z","1.2.1":"2026-07-07T09:48:34.065Z","1.2.2":"2026-07-07T09:54:09.193Z","1.2.3":"2026-07-07T11:41:41.072Z","1.2.4":"2026-07-08T21:56:24.107Z","1.2.6":"2026-07-09T00:58:41.450Z","1.2.8":"2026-07-09T20:12:29.244Z","1.2.9":"2026-07-09T20:19:10.617Z","1.2.12":"2026-07-11T08:47:17.212Z","1.2.13":"2026-07-11T10:40:12.338Z","1.2.14":"2026-07-11T20:23:19.972Z","1.2.16":"2026-07-12T20:12:41.031Z","1.2.17":"2026-07-13T00:52:49.072Z","1.2.18":"2026-07-13T13:18:19.889Z","1.2.19":"2026-07-16T15:43:47.439Z","1.2.21":"2026-07-25T18:33:47.159Z","1.2.25":"2026-08-02T00:00:34.952Z","1.2.33":"2026-08-11T17:57:28.158Z","1.3.0":"2026-08-15T17:16:33.767Z","1.3.7":"2026-08-19T16:39:05.286Z","1.4.2":"2026-08-26T18:13:00.145Z","1.4.3":"2026-08-29T17:56:55.269Z","1.4.4":"2026-09-02T07:15:12.637Z","1.4.5":"2026-09-02T07:21:52.356Z","1.4.6":"2026-09-02T09:06:54.625Z","1.5.2":"2026-10-01T21:42:48.983Z","1.5.3":"2026-10-01T21:58:24.128Z","1.5.4":"2026-10-02T00:35:42.221Z","1.5.5":"2026-10-02T00:50:28.903Z","1.5.6":"2026-10-02T00:57:02.032Z","1.5.7":"2026-10-02T01:17:29.339Z","1.5.8":"2026-10-02T02:02:12.896Z","1.5.9":"2026-10-02T02:18:12.864Z","1.5.10":"2026-10-02T02:38:23.156Z","1.5.11":"2026-10-02T03:01:34.590Z"},"bugs":{"url":"https://github.com/delorenj/pjangler/issues"},"author":{"name":"delorenj"},"license":"MIT","homepage":"https://github.com/delorenj/pjangler#readme","keywords":["cli","bootstrap","project-setup","mise","docker"],"repository":{"url":"git+https://github.com/delorenj/pjangler.git","type":"git"},"description":"Project subsystem bootstrapper CLI","maintainers":[{"name":"lasertoast","email":"jaradd@gmail.com"}],"readme":"# pjangler\n\nProject definitions now live in repository `.project.json` files with one case-insensitive `project_id`. Use `pj info`, `pj list`, and `pj doctor`; the singleton PostgreSQL registry indexes those manifests. See [project registry](docs/project-registry.md) for installation, migration, and compatibility details.\n\nProject subsystem bootstrapper CLI + MCP server.\n\n## Install\n\nRequires Node 24 or newer. Project skills use `@delorenj/skillex` 0.1.2; see\n[the integration contract](docs/skillex-integration.md).\n\n```bash\nnpm install\nnpm run build\n```\n\n## CLI usage\n\n```bash\nnpm run build\nnode dist/index.js --help\n# or if installed globally\npjangler --help\n```\n\n## Repository ignore contract\n\nCommonProject preserves an existing `.gitignore` and adds only portable\nproject rules for secrets and local `.agents` projections. It never copies the\noperator's `core.excludesFile`. `.agents/` is the sole canonical agent-config\ntree; `.claude/`, `.codex/`, and the other supported client roots are generated\nlocal projections covered by machine-wide ignore policy. `bmad.cli-roots`\nremoves only exact obsolete lines previously generated by pjangler and never\nchanges Git's index. Use the `gitignore-maintenance` skill to audit effective\nrule provenance and reconcile already-tracked ignored paths.\n\n## Project notebook\n\n`pjangler notebook` manages one companion Open Notebook for a registered\nrepository. The binding and stable Overview note IDs live in `.project.json`\nand the project registry; endpoint, authentication mode, defaults, and finite\ncapture limits live in the registry's global `notebook` configuration.\n\n```bash\npjangler notebook status . --json\npjangler notebook create . --live --json\npjangler notebook list notes . --json\npjangler notebook search notes \"release evidence\" . --json\npjangler notebook audit . --json\npjangler notebook migrate . --live --apply --json\n```\n\nTrue `SessionStart` and `SessionEnd` hooks are projected separately from the\nproject-scoped hook masters. Their per-repository policy stays fail-open and\ndisabled until explicitly enabled in `.project.json`.\n\n## Parity audit\n\n`pjangler audit` runs the deterministic 33god parity rules against a repository\nand exits nonzero when any of them fails. `pjangler migrate` applies the\nidempotent fix the owning rule declares.\n\n```bash\npjangler audit                                          # every rule, human report\npjangler audit --json                                   # machine-parseable\npjangler audit --rules mise.config-root,sot.project-json\npjangler migrate sot.project-json --dry-run\npjangler migrate --all\n```\n\n`--rules` reports only the rules you name. An unknown id is an **error, never an\nempty pass** — a caller probing for one rule learns that the rule is gone\ninstead of reading a clean report over nothing.\n\n`pjangler audit --json` and the `pjangler_list_parity_rules` MCP tool report the\nlive catalog. The rules are owned by the recipes in `src/recipes/`, not by a\ncentral table, so that catalog is the only authority on which ones exist.\n\n## Agents\n\npjangler does not hire, provision, or inspect agents. That is Flume's surface —\n`flume hire`, `flume roster`, `flume record`, `flume review` — and the org chart\nis Flume's record.\n\n`pjangler describe` still reports a repository's employees, and `pjangler init`\ncarries existing `.project.json` `agents` entries forward. Neither writes a new\none: that block is a one-way projection of the org chart, not a place a project\ndeclares intent.\n\n## Orienting in a repo\n\n`describe` reads a repo and reports what it actually is — detected type,\ninstalled subsystems, config files present, and what to do next. It is the\nfirst call for an agent (or a human) landing somewhere unfamiliar, and it works\nin any repo, 33GOD or not.\n\n```bash\npjangler describe                # current directory\npjangler describe ../some-repo\npjangler describe --json         # machine-parseable, for agent context\npjangler describe --interactive  # tick off fixable findings, press A to apply\n```\n\nSubsystem presence and subsystem correctness are reported separately: presence\ncomes from marker files on disk, parity from the recipe's own audit rules. A\nsubsystem that was never installed reads `absent`, not `broken`.\n\n### Last activity, not lifecycle status\n\nProjects report **when work last happened**, not a lifecycle word. The old\n`status` field said `planned` for 22 of 27 registered projects — including ones\nwith commits the same day — so it never varied and never informed.\n\nActivity is computed from git at read time, so it cannot go stale and no cron\nhas to walk the registry. It spans more than the checked-out branch:\n\n| source | covers |\n| --- | --- |\n| refs | every local branch, remote-tracking branch, and tag |\n| worktrees | every linked worktree's HEAD, including detached ones whose commits are on no ref |\n| uncommitted | working-tree edits that are not committed yet |\n\nThe newest of those wins, and the winning source is always reported. Remote\nstate reflects your last fetch — nothing here touches the network.\n\n`pj list` orders by that signal, newest work first.\n\n## Shell prompt\n\n`pjangler-prompt` prints one compact line when the working directory is inside a\npjangler project, and nothing at all when it is not:\n\n```\npjangler (PJAN) · 3m\n```\n\nIt is a separate binary from the main CLI on purpose — the CLI loads the whole\nparity rule set and takes ~52ms to boot, while this runs in ~30ms, well inside\nstarship's 500ms budget.\n\nAdd it to `~/.config/starship.toml` as a second, project-scoped prompt line:\n\n```toml\nformat = \"…$all${custom.pjangler}$line_break$character\"\n\n[custom.pjangler]\ndescription = \"pjangler project context\"\nwhen = true\nshell = [\"sh\"]\nsymbol = \"◆\"\nstyle = \"bold purple\"\n# The newline lives INSIDE the conditional group, so nothing is emitted —\n# not even a blank line — outside a pjangler project.\nformat = \"(\\n[$symbol $output]($style))\"\ncommand = 'exec pjangler-prompt 2>/dev/null'\n```\n\n`$line_break` must be named explicitly: it is otherwise absorbed by `$all` and\nthe extra line lands in the wrong place.\n\n## MCP server usage\n\nRun over stdio:\n\n```bash\nnpm run mcp\n# or\npjangler-mcp\n```\n\nExposed tools:\n\n- `pjangler_list_capabilities`\n- `pjangler_list_parity_rules`\n- `pjangler_audit_project`\n- `pjangler_migrate_project`\n- `pjangler_bootstrap_33god_project`\n- `pjangler_project_init`\n- `pjangler_project_list`\n- `pjangler_project_show`\n- `pjangler_info`\n- `pjangler_describe_project`\n- `pjangler_describe_recipe`\n- `pjangler_run_recipe`\n","readmeFilename":"README.md"}