{"_id":"@cxi-lmai/ci-agent-platform","_rev":"14-c57ee1844572ec521e639afa6d715303","name":"@cxi-lmai/ci-agent-platform","dist-tags":{"latest":"3.2.3"},"versions":{"3.0.0":{"name":"@cxi-lmai/ci-agent-platform","version":"3.0.0","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.0.0","maintainers":[{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"b9fa09c18f03b729ef8d6cfc530a15a47dc17032","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.0.0.tgz","fileCount":45,"integrity":"sha512-BJaz1OMAj+lZaEN5tWUBzmaDzEuvkFLRg3EhwqshtE35yd53XGyAVXs6uNzntdmvdxsQ1LVLqik5XHxDyZzdRQ==","signatures":[{"sig":"MEYCIQCGwLFTnlOAHCkjy2bMJ9dsKhl9NLc+YHPEaENiwj2SjgIhAIlkMUDdiJ/T4twPvbDslfLiHbMakBlc/1mWLRl+eW54","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279313},"type":"module","engines":{"node":">=20"},"gitHead":"be2806d762bfd43ddd570b6f98f85389e1731031","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.0.0_1786102103996_0.8163785174756657","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@cxi-lmai/ci-agent-platform","version":"3.0.1","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.0.1","maintainers":[{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"c18be16486d5b4ede8a3505b0969ce0ef275bf17","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.0.1.tgz","fileCount":61,"integrity":"sha512-TGeCwn0KdUmYNtO688u3flz6L7xy4sF3jDGpYPUTbJZ3BIEcMmZ3Ch2K8JlEecesBxiltpkfkX6nimy7Xvoavw==","signatures":[{"sig":"MEUCIHQpA+WpMw33Ka/D5xSAt7ybNWU3MUx4JS3NxJC4inCyAiEA+OCxJCTtrKvY1+k49DyX9Zp8KYn0dRKu/+MJXavlo9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377540},"type":"module","engines":{"node":">=20"},"gitHead":"4136e26a49a4f1b905c8cfdc67edd8a0c7b89a0a","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.0.1_1787841940629_0.9340131562350948","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@cxi-lmai/ci-agent-platform","version":"3.1.0","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.1.0","maintainers":[{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"febbc95a07834d3c75ac47d8abc890d1bf3a041a","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.1.0.tgz","fileCount":75,"integrity":"sha512-qyesyqwUW/CIVfTSTotQaUocY6uZ7/seCZq6TlB6rF99Bau2f0oD2gwGOzFO0w9f1TTsjJiMCbH8rGSapUG7MQ==","signatures":[{"sig":"MEUCIA/Sz0lepBYuLhtwGvmhRepTPgBb7s0YwYjXxODROIcxAiEA7hpxl6AxEbZfMUcQgBnFBSRhy2fnOgP2wZ5kuomCky8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513738},"type":"module","engines":{"node":">=20"},"gitHead":"7e7829e1ef15bcd669a62951c4207ac86318f83c","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.1.0_1788598796131_0.537844833436633","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@cxi-lmai/ci-agent-platform","version":"3.1.1","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.1.1","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"7795f9a96f9d48ab93c0dc253bda6002e4eff4a9","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.1.1.tgz","fileCount":75,"integrity":"sha512-x3bykrTzV7A2l1cH2rDyWlLb/vgsJuw9j9ZhY+Zjf/LPyEieGwZ32zNa0a5SXvyijyX9TZbtgymSYJjCl6CInQ==","signatures":[{"sig":"MEQCIAKC8Dwf+ZHspUhAcfakpmYkBhAWBF5FPM5sOACY0/RIAiATJZlfRKbr64kkcQ/hLj5gmN9IznRD0Y87kkmzLogA3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513674},"type":"module","engines":{"node":">=20"},"gitHead":"3aab372b1acf478077e818c0458d158239c8a325","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.1.1_1788618663304_0.8402004307825128","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@cxi-lmai/ci-agent-platform","version":"3.1.2","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.1.2","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"4ac8245d1a75603f462526c0430ff73e24d6a1e8","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.1.2.tgz","fileCount":75,"integrity":"sha512-EJ59Ncvv219I/0CGknHM+MCGMllV9qjFxalWiiWiKlb55fmw6/32f6D3oG4niNt1ZoTy6xRFvaAs//tJgJLMkA==","signatures":[{"sig":"MEUCIGffdg4ed4CiE7Cnwb9WYOExajN7WGeCVC+zg4BgUus/AiEAwZKLOzhgUkwFGr4rArxYxQLFrfYXc4ZA9hpg5Eb2nlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":515984},"type":"module","engines":{"node":">=20"},"gitHead":"07c41236db3b926a442fbc4614b044c199d78007","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.1.2_1789030853224_0.20061106100438675","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"@cxi-lmai/ci-agent-platform","version":"3.1.3","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.1.3","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"03b930fdc653f332fd5584c78573ef73ca06fa32","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.1.3.tgz","fileCount":75,"integrity":"sha512-TognLXFQ7LxZCdoE6VhQbBTM7Br410uj/qDb+j3HK5WC33ikjzib0l+cExysjQ/VOohFN+jbKdy5J6xCADvFRg==","signatures":[{"sig":"MEUCIBvY1qFJJMxkK2WppSqduY4eWcQIbgNBPkP43ITGnbOTAiEAy7QBXIoYa6aGVkfMRhld5uVG0E0zOgfXtIa72Zc/cGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":522899},"type":"module","engines":{"node":">=20"},"gitHead":"3d3f5fdfded4df15cc73696dd887b4fade63bc75","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.1.3_1789041009965_0.048951825290492135","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"@cxi-lmai/ci-agent-platform","version":"3.1.4","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.1.4","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"79993b98db5ba4260741faaa7676edfb795e5b3f","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.1.4.tgz","fileCount":75,"integrity":"sha512-oyffEntvXotD8CDe2fl214g7bUmHY0DQdm3CLSdmJe6LzKpvPnma2neMOF7vmbbXYKmtN1iLSXfRiO5jjGZVGA==","signatures":[{"sig":"MEYCIQCieiRRV3fWn6VJUp4IlNbtgy9OuUw505bXFyP7Qb1uewIhAJKspaDP0KTVNFuj9hu83Sv4NlqB7udzrYmaE5P93S3P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":526973},"type":"module","engines":{"node":">=20"},"gitHead":"23ba3fd9c120e8d843d5b848bc80eb14586ddd78","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.1.4_1789049198555_0.8307956827839498","host":"s3://npm-registry-packages-npm-production"}},"3.1.5":{"name":"@cxi-lmai/ci-agent-platform","version":"3.1.5","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.1.5","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"f6cfaa0f3d9426b118bb56a9872e8d51862d8bce","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.1.5.tgz","fileCount":75,"integrity":"sha512-0Qjhh5JsLJ6PLwQm85dCzyBWFnZ5R0lJsi3ckqnuTeN6mOHbw6jbXZekQedjNLzYTwq8wKtxC1VC5aCBJ0vmew==","signatures":[{"sig":"MEUCIQD89/msQFfyfP6lWhPglq34dbuyUtc+TfZADNduD3U/MwIgCoMENTWEUnWsW2SrFafPMGhyhL4PzewR2aAWSvAquAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529481},"type":"module","engines":{"node":">=20"},"gitHead":"d640fdc26957517b8805743e328634b93c395a7b","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.1.5_1789051662240_0.47525554360673516","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@cxi-lmai/ci-agent-platform","version":"3.2.0","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.2.0","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"dd1a9d1994ea3674a50e281bef87083bf0393064","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.2.0.tgz","fileCount":75,"integrity":"sha512-H6cnjc6iNcrjgySjhtKsYBbl8UjvozVg66M+ISlCqEhyDDf0OxyHkcbddx5IrlPVxIUdtg6KhKZw2KJoycFLwA==","signatures":[{"sig":"MEYCIQDaMa6VJNphwx+hOFe5m4MFZpsLmcz8gBdkAln99qrC+gIhAJJIiW/S2X/VGQw/Dr1pspn/IYUSkH9Qlfp0XEVTOPkg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHc3eMOXUs880Kmz4fs+NRglNlV21nXMsVdIotH6UPLdAiAe1yI+3Ny3AiEbAZl2iCVNPMo6XL0TLI1tql7+1UtS9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538961},"type":"module","engines":{"node":">=20"},"gitHead":"26639716269b827914e31220a3b264b868bd2e1b","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.2.0_1789124710314_0.24967241204159296","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@cxi-lmai/ci-agent-platform","version":"3.2.1","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.2.1","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"f7bdd1bd5e5de5e21f639f21208d7e5c688b3619","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.2.1.tgz","fileCount":75,"integrity":"sha512-myJM7/zcuVFxQRxwPIl1ydW+lOrZMpNbUB0XHGIphFpltYFePq725n7ZaSqd12mzty70UcEsorstwUBCwafqIA==","signatures":[{"sig":"MEUCIHoRQhkuxIcxGt6YxDycMIr9gDdjxcK7609z/0seSSB5AiEAqhYCxKCkzRea66VWtGSY6bUER231OwGGxEu4nstqzFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBcOSHXYViMBbrVzq/ISLEmC47Rrm3hdG+KwgsaTkqvXAiEAuBKdlpx0eroB0KXtRsUgu3iuvPGKp5wXfeZIfCmFmmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538961},"type":"module","engines":{"node":">=20"},"gitHead":"6a61dc3b348855c42cfb6cf96087cccd5e5452d5","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.2.1_1789389983272_0.6706843601954748","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@cxi-lmai/ci-agent-platform","version":"3.2.2","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"author":{"name":"Technical University of Liberec"},"license":"MIT","_id":"@cxi-lmai/ci-agent-platform@3.2.2","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"bin":{"ci-agent-platform":"bin/init.mjs"},"dist":{"shasum":"b672cd22c25ddac5d825c586687d3e15abd6f1d2","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.2.2.tgz","fileCount":75,"integrity":"sha512-wxnaLS1NBqGDoAHDCyZJgZPfA0PnMx93+dIcVT4c8LDYF3b1lTeosd60UsXNnWVHxN2AXICgXVRQbfp2DGw1kg==","signatures":[{"sig":"MEQCIFkMKPyAsstS9hmddCp6AIF7/9SXazAbuLG4wRUbpngvAiA583qlwg/P2MJ8XGFX4EMdnQ8vvoMFP/hQ1JqvKo7ljQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHEIS/Y8opX33yUxRM6aXv0uWFzKcqCcNwlTN4rLNfp1AiEA5wYQ+ag6rVSstadfNurMuRCiMTNGUv4IKQExXUX/cpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":539936},"type":"module","engines":{"node":">=20"},"gitHead":"2cd49730fd4cb25795c5b6757058af1107c98b89","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ci-agent-platform_3.2.2_1789391736261_0.9609105057470158","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"_id":"@cxi-lmai/ci-agent-platform@3.2.3","bin":{"ci-agent-platform":"bin/init.mjs"},"bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"dist":{"shasum":"c4df6ba3930711eb1150637d9a8818aab8175012","tarball":"https://registry.npmjs.org/@cxi-lmai/ci-agent-platform/-/ci-agent-platform-3.2.3.tgz","fileCount":75,"integrity":"sha512-0N/J7/MF7H64TDvLR0BSONAsyv/5POE5qdu8rh2HCrgGOFaGaTYHzZWdfEeT41joEYrcxk7xTGfNXhitfMEmNA==","signatures":[{"sig":"MEYCIQDjpkEeoG7g9Rv2TBLY0Y8YG7dZvLEGzjNTh0V9BMxb/AIhAMPYiXCg/TLL+63ueMcYND6fwgsYelVI+pWxweeyI0Kq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDQAJfqI2e8xPHzNCxyXq0jUhuXYQyKAp7muRiMZ1k2zQIgUwY3Ke/ePXGnAhXfM9sHG9v6OMZb7Ok2ysPUb7kjXhQ="}],"unpackedSize":544660},"name":"@cxi-lmai/ci-agent-platform","type":"module","author":{"name":"Technical University of Liberec"},"engines":{"node":">=20"},"gitHead":"ef0ef46cd6e5dcdcec906913d25083249a3ca04d","license":"MIT","scripts":{"test":"npm run test:lint && npm run test:gates && npm run test:unit","test:lint":"shellcheck -S warning test/*.sh payload/ci-templates/scripts/*.sh payload/ci-templates/scripts/lib/*.sh","test:unit":"node --test \"test/*.test.mjs\"","test:gates":"bash test/coherence-gate.sh all && bash test/restructure-invariants.sh verify && bash test/harness-dispatch.sh all && bash test/failure-notice.sh && bash test/decompose-validation.sh && bash test/platform-helpers.sh && bash test/coverage-ratchet.sh && bash test/cve-fix.sh && bash test/e2e-test-gen.sh && bash test/agent-architect.sh"},"version":"3.2.3","_npmUser":{"name":"vengron","email":"venceslav.chumchal@tul.cz"},"homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"_npmVersion":"10.9.4","description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","directories":{},"maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ci-agent-platform_3.2.3_1789393760091_0.8255872937724289"}}},"time":{"created":"2026-08-07T11:28:23.828Z","modified":"2026-09-14T13:49:20.389Z","3.0.0":"2026-08-07T11:28:24.157Z","3.0.1":"2026-08-27T14:45:40.761Z","3.1.0":"2026-09-05T08:59:56.298Z","3.1.1":"2026-09-05T14:31:03.470Z","3.1.2":"2026-09-10T09:00:53.436Z","3.1.3":"2026-09-10T11:50:10.127Z","3.1.4":"2026-09-10T14:06:38.707Z","3.1.5":"2026-09-10T14:47:42.378Z","3.2.0":"2026-09-11T11:05:10.408Z","3.2.1":"2026-09-14T12:46:23.358Z","3.2.2":"2026-09-14T13:15:36.355Z","3.2.3":"2026-09-14T13:49:20.199Z"},"bugs":{"url":"https://gitlab.com/cxi-lmai/ci-agent-platform/-/issues"},"author":{"name":"Technical University of Liberec"},"license":"MIT","homepage":"https://gitlab.com/cxi-lmai/ci-agent-platform#readme","keywords":["claude","claude-code","ci","gitlab-ci","github-actions","agents","code-review","automation"],"repository":{"url":"git+https://gitlab.com/cxi-lmai/ci-agent-platform.git","type":"git"},"description":"Autonomous dev pipeline on plain GitLab CI or GitHub Actions, driven by Claude Code. A labeled issue goes in, an open merge request comes out.","maintainers":[{"name":"jiri.seps","email":"jiri.seps@tul.cz"},{"name":"tomja","email":"tomas.janovec@tul.cz"},{"name":"vengron","email":"venceslav.chumchal@tul.cz"},{"name":"marhonz","email":"martin.honzatko@tul.cz"}],"readme":"# ci-agent-platform\n\n> Autonomous dev pipeline on top of plain GitLab CI / GitHub Actions, driven by Claude Code.\n\nThe core is the **issue-to-code** loop: you file an issue and an open MR/PR comes\nout. The orchestrator triages it, the coder implements it, and the review loop\nchecks the result. The input is a spec, the output is code. Details in\n[docs/issue-to-code.md](https://gitlab.com/cxi-lmai/ci-agent-platform/-/blob/main/docs/issue-to-code.md).\n\n- **15 generic agents**: triage, coding, review, tests, docs, release.\n- **12 skills**, configured per project.\n- **13 top-level runner scripts** and **65 CI `PIPE_*` variables**.\n- **Project specifics live outside the agents**, in `.claude/pipeline-config.md` and `PIPE_*` variables.\n\n> [!NOTE]\n> The CI template wires two loops:\n> - the **review loop** (`review`, `review-fix`, `test-fix`, and the shared escalation `/postmortem-mr`),\n> - the **issue-to-code loop** (`orchestrate`, `code`, skills `triage-issue` and `implement-issue`).\n>\n> Seven opt-in jobs are wired by the GitLab CI template and are off by default:\n> `docs-sync`, `coverage-ratchet`, `cve-fix`, `e2e-test-gen`, `codebase-audit`,\n> `agent-architect`, and `metrics-snapshot`.\n> The other agents are installed too but have no CI job of their own. You invoke\n> them by hand from the command line.\n\n> [!CAUTION]\n> The coder runs with `--dangerously-skip-permissions` and treats issue content\n> as untrusted input, so it does not blindly implement anything from anyone. Run\n> the loop only on maintainer-approved issues from trusted people, and on an\n> isolated ephemeral runner.\n\n## Platform support\n\n| Platform | Status | Tested |\n| --- | --- | --- |\n| GitLab | supported | end to end on a pilot project |\n| GitHub | experimental | CI templates ship, the issue loop is unverified |\n\n## Contents\n\n- [Platform support](#platform-support)\n- [The full cycle](#the-full-cycle)\n- [Repository layout](#repository-layout)\n- [Install](#install)\n  - [Harness: Claude Code or omp + OpenRouter](#harness-claude-code-or-omp-openrouter)\n  - [What it costs](#what-it-costs)\n  - [Upgrading and removing](#upgrading-and-removing)\n- [The issue-to-code loop (details)](https://gitlab.com/cxi-lmai/ci-agent-platform/-/blob/main/docs/issue-to-code.md)\n- [How it fits together](#how-it-fits-together)\n- [Possible extensions: changing agents and skills](#possible-extensions-changing-agents-and-skills)\n- [Reference: secrets and variables](https://gitlab.com/cxi-lmai/ci-agent-platform/-/blob/main/docs/reference-variables.md)\n- [Reference: metrics and snapshots](https://gitlab.com/cxi-lmai/ci-agent-platform/-/blob/main/docs/metrics.md)\n\n## The full cycle\n\n<p align=\"center\">\n  <img src=\"https://gitlab.com/cxi-lmai/ci-agent-platform/-/raw/main/docs/diagrams/full-cycle.svg\" alt=\"The full cycle: from a labeled issue to a merge request ready to merge\" width=\"760\">\n</p>\n\n## Repository layout\n\nThe package has two strictly separated halves. `bin/` is executable and never\nreads or rewrites `payload/`; `payload/` is inert content that is copied and\nnever executed by Node. That separation is what lets an upgrade tell an\nuntouched file from one the project has edited.\n\n```\n.\n├── LICENSE                               # MIT\n├── README.md                             # this file, and the npm front page\n├── package.json                          # bin: ci-agent-platform\n├── bin/init.mjs                          # phase 0: deterministic, no model\n├── payload/                              # everything that ships into your repo\n│   ├── INSTALL.md                        #   instructions for Claude, copied to your root\n│   ├── agents/                           #   15 agent definitions (.md)\n│   ├── agents-omp/                       #   15 omp-native agent definitions (.md)\n│   ├── skills/                           #   12 skills (folder with a SKILL.md)\n│   ├── templates/                        #   3 templates: config, spec issue, suppressions\n│   └── ci-templates/                     #   CI jobs and runner scripts (wired by the wizard)\n│       ├── claude-pipeline.gitlab-ci.yml #     GitLab CI template\n│       ├── github/                       #     GitHub Actions workflows\n│       └── scripts/                      #     13 top-level runner scripts (both platforms)\n├── docs/                                 # supplementary documentation, not shipped\n│   ├── diagrams/\n│   ├── issue-to-code.md\n│   ├── metrics.md\n│   ├── reference-variables.md\n│   └── superpowers/                      #   this repository's own plans and specs\n├── examples/unitconv/                    # a filled-in example config, not shipped\n└── test/                                 # this repository's own tests, not shipped\n```\n\n## Install\n\nRequires Node 20 or newer, git, and Claude Code. Run both from the root of the\nrepository you want to onboard:\n\n```bash\nnpx @cxi-lmai/ci-agent-platform     # unpacks the platform\nclaude                              # then ask it to install the pipeline\n```\n\nTwo things are worth having before you start, though neither blocks the install.\nA `CLAUDE.md` at the repository root: most agents read it as the project's\nrulebook, and without one the reviewers work from `pipeline-config.md` alone. And\nCI credentials for whichever platform you use, which the wizard walks you\nthrough at the end. Any one of `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` or\n`CLAUDE_CODE_OAUTH_TOKEN` authenticates the agents, so a Claude subscription\nworks without buying API credit.\n\nThe first command is plain Node with no model in it. It refuses to run outside\na git repository, detects your platform from the git remote (without ever\nprinting the remote, which may embed a token), unpacks the payload into\n`.ci-agent-platform-src/`, adds that plus two working paths to `.gitignore`,\nwrites `INSTALL.md` and a manifest of everything it wrote, and stops. It\ncommits nothing, pushes nothing, and asks for no secret.\n\nThe second hands over to Claude Code, which reads `INSTALL.md` and does the\nrest:\n\n1. distributes the files into `.claude/` and `.claude-pipeline/`,\n2. scans the repository and generates `.claude/pipeline-config.md`,\n3. asks whether the issue-to-code loop should run manually or on a schedule,\n   and how often,\n4. wires your CI file (`.gitlab-ci.yml`, or a GitHub Actions workflow),\n5. walks you through the tokens one step at a time and verifies each one.\n\n> [!NOTE]\n> On a GitHub remote the bootstrapper stops and asks you to confirm that you\n> accept experimental support before it writes anything. Pass\n> `--experimental-github` to answer that in advance, or `--force` to proceed\n> past a prior install it cannot account for.\n\n### Harness: Claude Code or omp + OpenRouter\n\nThe pipeline runs on Claude Code by default (`PIPE_HARNESS=claude`, the\n`claude` CLI, authenticated with `ANTHROPIC_API_KEY`). Set\n`PIPE_HARNESS=omp` to run on [Oh My Pi](https://openrouter.ai/apps/oh-my-pi)\nthrough [OpenRouter](https://openrouter.ai) instead: one `OPENROUTER_API_KEY`\nauthenticates every job, and `PIPE_MODEL_TRIAGE`/`_CODE`/`_REVIEW` accept any\nOpenRouter model id, not just Anthropic's. The two are mutually exclusive per\nproject. Set the credential and the `PIPE_HARNESS` value for the harness you\npicked, not both. Claude-harness model usage is billed by Anthropic, while\nomp-harness model usage is billed by OpenRouter. GitLab only for now; GitHub\nActions omp support is not shipped yet.\n\n`omp` is a Bun program, so the GitLab template's `before_script` installs\n`bun` next to it (`npm install -g bun`) — the default `node:22-bookworm` image\nships no Bun runtime, and without it every agent call fails while the job\nstill reports success. A custom `PIPE_CI_IMAGE` needs nothing beyond node +\nnpm for that install to work. If the harness binary cannot execute, the job\nnow fails immediately instead of going green with no review.\n\n### What it costs\n\nEvery pipeline job spends paid model usage, so the defaults are deliberately\ntimid. The issue-to-code loop is **off** until you turn it on (`PIPE_ORCHESTRATE=1`\non a schedule or a manual run), and `PIPE_CODER_CAP` bounds how many issues one\norchestrate run hands to the coder, at 3. The review loop runs per merge\nrequest, and `PIPE_FIX_LOOP_CAP` stops it after 2 bot fix commits rather than\nletting it grind.\n\nTurn the schedule on only once both smoke tests pass, and start with a slow\ninterval. A frequent schedule against a backlog of ready issues is the one\nconfiguration that spends real money without anyone watching.\n\n### Upgrading and removing\n\nRe-run `npx @cxi-lmai/ci-agent-platform` to take a newer release. It records what\nit installed in `.claude/pipeline-install.json`, including a checksum per file,\nso it can tell a file you edited from one it wrote.\n\nA re-run reconciles those checksums against the new release and the copies in\nyour repository. A file you never touched is brought up to date in place, with\nno prompt. Everything else is left exactly as it is and written to\n`.claude/onboarding-state.md` as a decision list: files you edited that also\nchanged upstream, files new in this release, and files the release dropped.\nOpen Claude Code and ask it to finish the upgrade; it works through that list\none file at a time, showing a diff before it touches anything. A file you\nedited that this release does not change is never mentioned at all.\n\n`pipeline-config.md`, `CLAUDE.md`, `docs/` and `.claude/memory/` carry no\nchecksum. They are project-owned, and the installer never reclaims them.\n\nTo remove the pipeline: delete `.claude/agents/`, `.claude/skills/`,\n`.claude/templates/`, `.claude/pipeline-config.md`,\n`.claude/pipeline-install.json`, `.claude-pipeline/`, the spec issue template,\nand `.ci-agent-platform-src/`; then drop the `include:` and the `PIPE_*`\nvariables from your CI file, and the three `# ci-agent-platform` lines from\n`.gitignore`. Nothing else was touched.\n\n> [!IMPORTANT]\n> The installer **pushes only after you confirm** and **must not receive token\n> values in the chat**. It asks permission before every push. You enter secret\n> values yourself in the platform settings (CI/CD variables), so Claude never\n> sees them in the conversation.\n\n## How it fits together\n\nEach CI job runs `claude \"/<skill>\"`, and the work splits into two roles:\n\n1. **The skill** reads `$PIPE_CONFIG_PATH` and the context the runner prepared,\n   does the reasoning (build the diff, choose and run agents, verdict, classify),\n   and writes a marker file.\n2. **The runner** does only what needs a token or is mechanical: checkout,\n   prepare context from the API, compute the diff base, push commits, post\n   comments, set labels, emit metrics, gate.\n\nWhere to find what:\n\n- **Skills** (what each takes as input, what it returns, which keys it writes to\n  the marker file): `payload/skills/` here, `.claude/skills/` once installed.\n- **The CI jobs and runner scripts** behind them: `payload/ci-templates/` here,\n  `.claude-pipeline/` once installed.\n\n## Possible extensions: changing agents and skills\n\nThe platform is a kit. Adding a capability means adding one definition to your\nown repository. Custom definitions live alongside the installed ones in\n`.claude/`, and the installer never reclaims a file it did not write, so an\nupgrade leaves them alone.\n\n### Agent\n\nA single `.md` file in `.claude/agents/`. Its front matter\ncarries `name`, `description`, `tools`, and `model`, followed by the system\nprompt. Platform convention: the prompt's first step reads `pipeline-config.md`\n(path in `PIPE_CONFIG_PATH`) so the agent takes project specifics from there\nrather than from hardcoded text. Agents are mostly read-only subagents that\nskills call.\n\n### Skill\n\nA folder with a `SKILL.md` file in `.claude/skills/`. A CI job\nruns it as `claude \"/<skill-name>\"`. The skill holds the reasoning: it reads the\nconfig and the prepared context, picks and runs agents, writes the result, and\nemits a marker file for the runner.\n\n### How to add one\n\n1. Create the definition (`.claude/agents/<name>.md` or\n   `.claude/skills/<name>/SKILL.md`), using the installed ones as a template.\n2. Wire it in. A new agent is called by name from a skill (as a subagent), a new\n   skill needs a CI job that runs it (see `.claude-pipeline/`).\n3. Commit it. The CI runner does a clean checkout, so an uncommitted definition\n   does not exist as far as the pipeline is concerned.\n\n> [!NOTE]\n> One project's rules (conventions, domain checks) do not belong in custom\n> agents, but in `pipeline-config.md`, the Domain Checks section, where every\n> agent reads them. A custom agent is for a new capability, not for one\n> repository's specifics. The `agent-architect` agent can propose improvements to\n> the existing agents.\n","readmeFilename":"README.md"}