{"_id":"claude-dev-workflow","_rev":"39-c4d361008a27212a001b91fd9ec39e99","name":"claude-dev-workflow","dist-tags":{"latest":"1.22.0"},"versions":{"1.0.0":{"name":"claude-dev-workflow","version":"1.0.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.0.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"e314d3182c130e1efe99dbfd783f71186981919e","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.0.0.tgz","fileCount":37,"integrity":"sha512-kRE4v3ELaRDJNei60XSwzW5EiVVesmJdHjx2l0qFhhpQveeqHAzH/Lb9T8hOGse3Y2hKZx8Lf1lLOMAdh2Z5mA==","signatures":[{"sig":"MEUCIHIN7B6stQGI80s9Cx/BXglxQqVJx0bDNAUtGd9Ff1idAiEA4iL7n0x8dZ8lsjd9y/jjIoAmqxcswxzviXNj8wfE4wg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284743},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"5dbf272e92709e691afd393e2efea5cf1df941c4","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"ayhid","email":"ayoub.hidri@gmail.com"},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.0.0_1786880606788_0.12277780270347716","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"claude-dev-workflow","version":"1.0.1","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.0.1","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"fc97d26ce7f55da22df5a78cdfe0295245cb3190","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.0.1.tgz","fileCount":37,"integrity":"sha512-JNMM1CfoWgH4141G1GGH6YNrx61mcDqZj0ztGy1DWFPZmJG//TT9LRh/ibB9/h43RqqmHEzkkPTq4PY5sMdtQg==","signatures":[{"sig":"MEUCIFwOiPFvw1TCyCxkq37S2YPFEMjbRgHgrpV1XEcJxPVaAiEA2vjgEp0/pUF0Mo1l8gQKu33Lq30ZqihxZpEE50uqbcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285029},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"f4eb2672a269f0c12ecfb3be96f087977a8fc7a2","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.0.1_1786889488363_0.08813279467365631","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"claude-dev-workflow","version":"1.0.2","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.0.2","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"1d44f899e35c5223fce41d58af6aef742d55851f","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.0.2.tgz","fileCount":37,"integrity":"sha512-kyWe2vlbTUA+eCR1FDwXenR6YFQ8er6H8EX9BlkVRwQQOUw4Gu+9iKf731oMiAgqz9axNoDTBpIhP51FJ3UP6g==","signatures":[{"sig":"MEUCID6AepxUC1Y8y0HseG71NEj9Gg15ogfHFFvBMdOpBdRhAiEA6SHBqVtMMpvjKoKfyRWY0VgUUp+5maaDSmoYTFdyZzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":288530},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"8927239fcd07411f04e619003b0a55705c38c159","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.0.2_1786904537348_0.8527715980129951","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"claude-dev-workflow","version":"1.1.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.1.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"753d680e82f53db93dcd556df71f4e093c6b1368","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.1.0.tgz","fileCount":39,"integrity":"sha512-0wViYTAGrS8cojyZ8NMZ8jAgaLPdiPlmJzV3mp32sLgP+rJ+HOb39Ecq2bo4GzLQs7bDhKTjzq1V2V3QurMBgA==","signatures":[{"sig":"MEUCIHBzyG3HF0/Yk0gXBbz7TU0v5DTFT7cZDWl8nIorl6mvAiEA0pb90f/FKVNleoYUHOZKg0ymn9Gse+44Qmi9a+1SjFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":303363},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"3ed5930b46b49ddf63cae2c1addb335252717e79","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.1.0_1786951340849_0.4556551413838503","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"claude-dev-workflow","version":"1.2.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.2.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"200172c1b507f904b65c7e6a27341f7747fe1d23","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.2.0.tgz","fileCount":41,"integrity":"sha512-efEjB7PjLBxOsLu4Cy3chwt/0vBlOpbZbPclLOyooLS12wsXnBOqLEB9V4bpIa1zETKPlKTryUCZ8NcTWyxKHg==","signatures":[{"sig":"MEYCIQD2iArGQnOVbWDFVd8bmuF4DBEF6+wjIryLqyDmMfHcyQIhAOsFN3Gur9kHj1SpLngQuvRr5yP5HAo0KlFmLhPTHuoV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317614},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"7f621de9110aec3c59813d835da150765461da9d","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.2.0_1786951766958_0.35908943859338716","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"claude-dev-workflow","version":"1.3.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.3.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"91d68967f835ea9fc3f617a5cc63212173202559","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.3.0.tgz","fileCount":47,"integrity":"sha512-qLDBvZrg00090L2js7fuE/Ttu3oA7eKwJJhaRY38Pmxki1/7YL6ruvn23o+XlCj+4hHx1fFikwPbPC+nZ6lXYw==","signatures":[{"sig":"MEYCIQCWPN9bh5n5Hxj6zXQrwNvFaPcUapZ1uLTB6lapg6dTCgIhAJmq2Z1UQ6q0LmmMdw5vxejrcLmiqNAgcSZQb8yyiZSs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":389771},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"b31fa96b07d6b46bbd5453f921efd523439f4f5d","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.3.0_1787900942171_0.4541862531647751","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"claude-dev-workflow","version":"1.4.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.4.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"722146dfeb18e9701be60b7f21199df2c338949d","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.4.0.tgz","fileCount":49,"integrity":"sha512-B4sfT2cshnZoKyYG9l4ULtk6uzMVOJ3aeEuRcsJa1lq3U404ifxNESzCpW6OPNpjBdYu2e9fXZzOs6yrlpUDPQ==","signatures":[{"sig":"MEUCIAdYxtHnX2pi+gjahBsVS7XPhm1aRLsqGuaHorFO6vMmAiEA41IsPZhHPaZpiyBTSpJXxSzmbrii7r8ZlShOtm0Nu4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416793},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"b0f5120280af280a02f47c6531ce3a8c887bf0f3","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.4.0_1787911713538_0.9782596867667821","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"claude-dev-workflow","version":"1.5.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.5.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"03a8379de222517e994ba022b83ecf4fb2e0d7ce","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.5.0.tgz","fileCount":54,"integrity":"sha512-GbLrqQrJz/duKvXIdwlHWFfFu26pAlRImRadtWrIc+JRfbHFNaXrTadCEBHwKoLNt42Y5LmiLSMZyctikRZeFA==","signatures":[{"sig":"MEUCIQCr4v1XL1ktr8yHE1JvFOuzRDFREu+81LR7StfffQFjpgIgSej4Gt9c8lyjlp97aTKg87iKWyM1uBa+p1zen0NCZ8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":468250},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"1f77f5587d66667e2808caafbec19c49c91261d4","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.5.0_1787912272463_0.056234729308686005","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"claude-dev-workflow","version":"1.5.1","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.5.1","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"0909e533d4cf5970992556ebc45dfe27eaefe33a","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.5.1.tgz","fileCount":54,"integrity":"sha512-+nRF8W4aijRkvDSFiLHf+eYV+vdNuWLOns3L2tvZ41g5+JfnHtAAEboaij/p3d6bt3kekh2tkuYPGOAbbstKWQ==","signatures":[{"sig":"MEUCIH9qB/yejKKKIchlsL4O/k+GKZpa3JrPfqf5e1aGuvfnAiEA0txd5ITMd0qv2cJWr7HtmClDGoTHeoXL5A9GgdLm7LY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":473522},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"f598b011618d3b586702ea3007d87e3bc629215e","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.5.1_1787912858576_0.37639269186694735","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"claude-dev-workflow","version":"1.6.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.6.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"694bb6e3f13f9532e8cd16df2a6142b2d678263d","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.6.0.tgz","fileCount":54,"integrity":"sha512-e/syQfjMpY1F2EM1/2nQi95t4iUvga1Xsgun0aMgdsdnVVzCpN9LYa7T+dkXm1Ih6QwZ6XBKOR+LjZ+O6za8sQ==","signatures":[{"sig":"MEYCIQD06B6ZrmWzPaVa3EJ5X3HPI/SYeC32wJjuNlEM2ZJmIQIhANEb0iFlgW7Vvg+g9MuvkFvvvK6nxwzk7KpRUL1ZQ6j/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":473972},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"bbac3f99ab3169d5aae7d7fcb68facbcef8bacc6","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.6.0_1787915006940_0.7974062269635027","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"claude-dev-workflow","version":"1.6.1","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.6.1","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"1fdae85b03465247af364c90d3f3e1bb3d1cf42a","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.6.1.tgz","fileCount":54,"integrity":"sha512-m0qPYzBhvhR33RCbXiY7aZzYpLRZVc9IU6dc3+oLM03Dv7/2JkJkQJ7uI3G/3ddtb8w7LqNxL6jkHXlRwtTk9A==","signatures":[{"sig":"MEUCIQCJIWvUc+h4/lvBFDR1r8QOVliNY8DPVz0rEe4B7z7eCAIgbmGPGBDEocpqFKrHcmkWg7/s9ftuNhTTx8QOig7i11w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474309},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"63f46a78f33407fd6028e03dd59d5f47471164bb","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.6.1_1787917550615_0.3812035584753859","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"claude-dev-workflow","version":"1.6.2","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.6.2","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"0741bb46ba6737e47be2bae5a18d21eab7c66423","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.6.2.tgz","fileCount":54,"integrity":"sha512-umdkTXPpgEjrGreYe9b+SJwhn7dhAD0dfOJGACiEhvHCtyBABysJyu2knOu6ZlCjDMPj/6D1tXZ+2TiCrg+fhA==","signatures":[{"sig":"MEQCIDd6/hJnBrp08n3H9vi7KvRwA8/njw5yRAvA+MBW/z+FAiBwnOgddMPRE/0F+UFtQg43JF0dHp8M2P6lOTSKiS7S9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474661},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"030808ed6505b52e23993ebc5fff0d5fd9403ee0","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.6.2_1787917811687_0.4045453644039343","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"claude-dev-workflow","version":"1.6.3","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.6.3","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"5dd08c93a5068633e67936f19ab5eab2370328d4","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.6.3.tgz","fileCount":54,"integrity":"sha512-uyleFLhjBRHY63oARWa6R4+j1KfOMYoJJwt52q3ly97nCTbIWVgrIozhRRX6j9d/eMmjhkOcduudDhqN6Co4BQ==","signatures":[{"sig":"MEUCIQC4BGzpCJaruc1Ty7SnK+G9L/u3U6Fkvep+L86awm2NCwIgMETwRL9hdU4B/SX4AaMl4ODzt2SdE+uDRHr4palOsj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491059},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"0848f6bc4d98c769020d81930c83419047810e4a","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.6.3_1787931420462_0.9602580164465755","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"claude-dev-workflow","version":"1.7.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.7.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"073856c1a4095b14cec3cdab62c02be8df5a5eb0","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.7.0.tgz","fileCount":55,"integrity":"sha512-vQh1eOOO3PT/Ex5Pd3+REu36pQYrYkeq1BtYyBOBY4HUT5qL8TUCjsB7ki25IOiDxQJPttp1ImhGIledWzqoBw==","signatures":[{"sig":"MEUCIQCmrZhqQP3A505hW8FKsiYJF6TqXNeX1s40TzJW3mX6PgIgQNTA8INpfLVMrWoLe4bjTxwZucU1ynJZh8MdpwH8N2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505142},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"abe34acf6418969f87b954de3f35ec2c9aef5800","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.7.0_1787940885998_0.625992598528808","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"claude-dev-workflow","version":"1.8.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.8.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"cc14ddd84eb4fe3a4eb751dbe5c1ceacbf10f0b4","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.8.0.tgz","fileCount":62,"integrity":"sha512-GJhTtyxHx3bx3aC9kYV4ET+YubatkiEI1ogjw+KO7ywn5MoxNdB1ezmu4IJklDrqFdN2vKa2TbV2ZZQc9JUAoA==","signatures":[{"sig":"MEYCIQC7qoNV9GxszvizacAE5vOv8CpSvwOf1LMN/igaEBHwNAIhAM8Wcmv0+zLl6XmfzMzfwGi+TKoMglv08IUQCNjEo4Ck","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":548972},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"6ce422f5d648a1ddfc52a5493c90381e15ed2f56","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.8.0_1787944587186_0.8783098170457342","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"claude-dev-workflow","version":"1.9.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.9.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"808a4fc11470fa59c3fa91a2591c983ff50a6648","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.9.0.tgz","fileCount":62,"integrity":"sha512-YdqT1C1atioS86zGZKYdTlWIbsbmhJJ3T790N7ogeM435NzpdcUlyqrc+j8DxniLtlsATk1cT0C50C7sZpLcMg==","signatures":[{"sig":"MEYCIQCwFs7/+Y5Wb5PIYiYdGnDp0D/zTgA+gKhGkN2vzxubqQIhANuusXtYebab/206/fy4bU2Cc4r58GipqN+s9izbOBxr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":556157},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"1e4d94d8a89506fac4db29a7575ca71a0e661ca5","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.9.0_1787945550333_0.9269174844441774","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"claude-dev-workflow","version":"1.10.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.10.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"0ff585692cd0b3804de4d6634a0816af69a1202c","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.10.0.tgz","fileCount":66,"integrity":"sha512-bGR9K4RFWjMA3gJDCOogR9kPfI+OheOsUK+PnJ1/KATgZqCAVgmnPxjcFdN8Blp0HqkPvm1c4enixiApcPtlWQ==","signatures":[{"sig":"MEUCIQChUJcHOJ29BXDoujvxBk5UK3lvCOOKYsCepKqRLjdjgAIgSOjZPKQxBs2S1NkldL7fucyTRGcuupw2H1AczGey9I0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":607065},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"2fba01b89c8bc388a183bf24f10d1267e26d641b","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.10.0_1787948280123_0.8030932238850756","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"claude-dev-workflow","version":"1.10.1","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.10.1","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"1b3e466ae70d4a3bbe6d9f31699a687803fb5f64","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.10.1.tgz","fileCount":66,"integrity":"sha512-RaXpGo/Dvu089EnEgcP0zJyY7/biMkQzmW2Y8PEsYFDc8JcpD6MHSLlqaG5opviEVwafmiEpVGN+KeS5Z6qkyA==","signatures":[{"sig":"MEYCIQDxd9zuSyX+AWrRDklF2D8cC6vQ0zdhI/E26V0X8UbtSgIhAPKi3L4yAYW3q4A2GmclVjnq+6uuSaH7gxccA1Q1XPzA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":611661},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"2e801121a9f58971a84bf46e793fe4dd16a880ff","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.10.1_1787948658753_0.55192600562882","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"claude-dev-workflow","version":"1.10.2","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.10.2","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"dfbd8b827a952115cecc5e62e63c6f5869c756f5","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.10.2.tgz","fileCount":66,"integrity":"sha512-3JQ8cTbVCiICZP3dWLv+ZFvPGtE3h9pq/9cFQ9M4V98Zp67ekvTX25DYOuTieXQ/gm9XLuCyR/I1Iscw8HaOjw==","signatures":[{"sig":"MEUCIQCwjeZJCXMePyfvu+fNw2+qQeWa254LDVHn8R6krguRjwIgQ6zLCtM62vndGuHjSnXA1tPYiVFts5oQbEvYTH1urnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":612484},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"1b2ca67b187a733a15e4026c060577750de742dd","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.10.2_1787949399293_0.03684619583479054","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"claude-dev-workflow","version":"1.11.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.11.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"8712ab83035ae75a42423b948837e076dc6cc8e1","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.11.0.tgz","fileCount":67,"integrity":"sha512-DQ30m7XGH6CFVvmOvm7wM1TOYoUwWc0qzumcdCwYx98+KR03h9XNEoiUlY3w10I1j/TdQS6mf6tPIOPzqRomHA==","signatures":[{"sig":"MEQCIAFbm5qexlkeWjsLiWh8EJNlnxh1Ijn3vPL5mxOsx70JAiBIFst/OJeA9j1atUsr25oxXiTkxLNYn1HcQqxyuYeVeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":625087},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"8f1f21900fd7e29fe8d4beb1e106b73df854bcb0","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.11.0_1787954229675_0.5947833350132299","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"claude-dev-workflow","version":"1.12.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.12.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"fd5ee6e7ed58870612e451d85a99ef5649f79e76","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.12.0.tgz","fileCount":68,"integrity":"sha512-RGt+5d3BRS+0ng2xKnv5CKrXsTgF25Y7peDehhr0AwOdxpIeqv2+rpqmWdAONgwIiTXwqrrCpeiUt4L684gvOA==","signatures":[{"sig":"MEYCIQCtaH5+CYgEMa184OyvDrsSe1bfo6IDQ/0AGlbvVdvL+gIhAOvbwOfv3KTsX7uVCJ9x1HYCILZphD9TyI1HCQo4GJ1h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":642941},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"d091e1848e634e66b06dc7a7c53809822d69d7e5","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.12.0_1787956878050_0.06531803376579348","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"claude-dev-workflow","version":"1.13.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.13.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"cf1e84716fa72e6b3106346971c1fe504eb3ef7b","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.13.0.tgz","fileCount":68,"integrity":"sha512-tOeY7nGg1yBIFliRn0jjIgtRuFc8k2HHJN8GONXZBTsrzii5PGuxFtq0cU7y3asKiWeENbUBTbrMPdx7+mdVqg==","signatures":[{"sig":"MEQCIEg4sgd0D1R/dMtmw6KedZrkb5iAjPE+mmntSJRCW21JAiAE1TSG1AG2mcjLF6+JWBGc7G+HfUNcC2Mzx1rszDjcSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":654902},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"cc9bd5aab49f1a3cc3a60908db2af404d5926dc0","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.13.0_1788007214072_0.05208853134010338","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"claude-dev-workflow","version":"1.14.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.14.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"fd73187226e600d73091304d1dbf86f9c8a1cdea","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.14.0.tgz","fileCount":69,"integrity":"sha512-I1fbQgFHv9cdTASJCaFVGbjxBqdtddWASDf7HgRKiYTqhkSRr7qYjPdD6t3+mwm9Hircg21q21YKyIKVF+1PhA==","signatures":[{"sig":"MEYCIQDAw4bB7vedcX0haXnNH59GZhuYFNEoFZwi+aci+v/fNgIhAOoDymxxVEDPUsRUXZocFuNP0KV2SkcKfp0YB2Omyc8m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":665251},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"b3bfbc83aa7ebd6add015937a4f2d50b6e6d8f26","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.14.0_1788020121066_0.05400906759034796","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"claude-dev-workflow","version":"1.15.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.15.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"8e61f6d626545fc441dbb45870c605170cead7a2","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.15.0.tgz","fileCount":69,"integrity":"sha512-jfbgVozkhorTp5k2n0YxlkWGHriw5F06ZZb/ROzOqVWf0fRDg6mqclzrarB607LaNUKj6J7BNxfMQXa2sv+cfw==","signatures":[{"sig":"MEQCIFoxgb1IAUIcV+crJ7RSKEu8cVYcobS3ZVqgNcYbLsVTAiBpcjbhM37E1kzlDIOFiLU98YVATRTECRY6MugxUP/qHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":672768},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"41275d82242aa3cb46427de242d76bc213b349c6","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.15.0_1788060606961_0.48991896690652537","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"claude-dev-workflow","version":"1.15.1","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.15.1","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"f56a7b77f3b69a4fd89eae837e0136c0034de000","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.15.1.tgz","fileCount":69,"integrity":"sha512-icL+/sUGMO1DBcZD9P+c0Py6gff3gg+hwbxlqCxX2PzfOh+wceWy3fUpp6KVDMmS/2GyQvK3kb+Ybc4zWZdO0g==","signatures":[{"sig":"MEUCIQD52mL4P3D2kR+doRXQN3+L/hs4JsE8H8/KOByuXNmvQQIgCOsGwVDYep2njwjXy5DSHZswazD3fXNNTkO1Vxg2J6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":677599},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"a9e119e7bf65287ee4110b31a6ac6197f32c0f36","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.15.1_1788061046677_0.7512078148940893","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"claude-dev-workflow","version":"1.16.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.16.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"cc3a4e62d1ee57ebbc0cd3f0bb2adb41282995b4","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.16.0.tgz","fileCount":69,"integrity":"sha512-dffVFFEYObDo3NPu1M2RWYzZKlfa/TsSYtNE6cTR2eGWIBUectZDtCDsr6mmex0gUDaogHl4779jv9uno4AQkQ==","signatures":[{"sig":"MEUCIHsSab+ZNynsk3zNuFRoIl7/p9jYeLEj3Bqboj3B8+otAiEAsNOPKZ1WeNgSEkLAq0Ah2K6Ni5SzVzcIra3q3+YBqTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":683926},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"32039ccd6c52d388d48121e435577292e2fc7f5f","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.16.0_1788061398882_0.2941718179722441","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"claude-dev-workflow","version":"1.17.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.17.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"c4ea0f392857fd8a2b54341e02b61ddf445c5885","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.17.0.tgz","fileCount":74,"integrity":"sha512-LWE/2Gh87yzUItn6TV60DZPTWMbLfvF0fPFJALNmlJ4SMHnA7BtkIDURboSWcQmQ8BK1SoRC8mcVyooEwp17XA==","signatures":[{"sig":"MEQCIA0k/Rp83f0rS9pqAmxmmXVAPSCq9H/PwyeF4jdIG0XZAiBjyMvFlEENz79laOgrJtbhZPQkwKYSepi0rs1wy0+/2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706355},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"07dee18813a6c6c1533b38db6179e17408834d9e","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.17.0_1788086454235_0.6673920259298909","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"claude-dev-workflow","version":"1.18.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.18.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"b48b3f7376e50cd1b68e374be426f168f3d57b95","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.18.0.tgz","fileCount":75,"integrity":"sha512-XSyh2+X9tdwLfULcNmlX/kPv7U+RPJCJCTdpVsHtU7Sh3Gbokl1RRR8qNhmcLRfQcWKSAz4xgzA9kFjnucqNYg==","signatures":[{"sig":"MEQCIA1z/BUlMYVhia3PA8Gq+aEwiWJr+5aPmIGltPJY9mvAAiA7/4BIFpSGRsNVwHtPvZg1m3wHLZxDM/iN4haaSaPuiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":719731},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"e16813603c849f3939304901c624a916273694ea","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.18.0_1788127181274_0.8788571583324438","host":"s3://npm-registry-packages-npm-production"}},"1.18.1":{"name":"claude-dev-workflow","version":"1.18.1","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.18.1","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"a739fea32c88a501a14e109d7afc6e61252c0aab","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.18.1.tgz","fileCount":75,"integrity":"sha512-MKif6bFn4NBzJ15LI5HC78H/FmHmZNdhj3VQSy5uZNlJW4pLd8cJMhjnieOc76gI6fst7RVzDNW7/LzEo/V18A==","signatures":[{"sig":"MEUCIQDFBeSTM1CFj2NTYnI+BkMW9VmTg4+9cB4qOczVZFaVQwIgYu7FDa5BvKVroOQXoai1a6ir5Quq3OEaiJwTI/lUC0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":736500},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"f5d8c3772ce2e6e2c9bc90afcfe7e3447f4fbd0e","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.18.1_1788127706413_0.47137909737095707","host":"s3://npm-registry-packages-npm-production"}},"1.18.2":{"name":"claude-dev-workflow","version":"1.18.2","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.18.2","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"e28d822ccec8950c7c21d1256142b31eef1e6a68","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.18.2.tgz","fileCount":76,"integrity":"sha512-nVDkJTb1pSYztDYSUhcIVcJQXWLaSUqdcOAyoJ9gWtRCX9J1QYMFxbJEavuACdM6YVr+1aPoZ/DwP2Db5+iZYQ==","signatures":[{"sig":"MEUCIAQoG1E9nym/yKigdR+DA40RTIgiozAnfhnwH6dY5v9wAiEAogZH4wD/VcaUAY86MLYTFf33e5M9txEo/nC3XICYtbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.18.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":749695},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"15994eb2b28e179739ac48f8a0eb7fcd37db21ee","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.18.2_1788128158384_0.3564865526026548","host":"s3://npm-registry-packages-npm-production"}},"1.18.3":{"name":"claude-dev-workflow","version":"1.18.3","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.18.3","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"6843b9df4c0f4226c6071e294a1dde1a98b2edef","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.18.3.tgz","fileCount":90,"integrity":"sha512-mXE4E/8LsoSUrmoVjCxJ7EjFUv2gkKeQr1zhjQXhUzclXV6pU9xFopskqscFyTLYBfGlo12fv27vqTIQO2YuAg==","signatures":[{"sig":"MEUCIEJnez32dx9EqjIsBIU9tG5CXBfhWrd01Z/MEOvMn1V9AiEAxwFO9hoVQ7eWdXnjIoAlURQEJl4mxMkJJZmaKFYhDMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.18.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":914623},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"2985e9de729aad2d57b9beb160e109ef17edad66","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.18.3_1788458932541_0.10737587005097415","host":"s3://npm-registry-packages-npm-production"}},"1.18.4":{"name":"claude-dev-workflow","version":"1.18.4","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.18.4","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"6536fc06102a2448297e68bb1c7ac3057850c45e","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.18.4.tgz","fileCount":90,"integrity":"sha512-VPFcc3lHkveHzK53BO/057sYfi5+wnNJ32knbxfuma1m6KCMJa+nOVm9yvrF3qSvpAikbOG2K4azi/ZNcdAqgw==","signatures":[{"sig":"MEUCIDNgstg96akXPiGQuq37HMP4RPolrCbNeYGJWfAaQuVFAiEAhGAv4Nf9hrsbh/YS2aVqjrZhAkN8Fqx2ih1RGk7otQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.18.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":915749},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"54442a124586261231ca8adf90ad6277ed95aa42","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.18.4_1788506913794_0.3019325270233817","host":"s3://npm-registry-packages-npm-production"}},"1.18.5":{"name":"claude-dev-workflow","version":"1.18.5","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.18.5","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"8c8d3a3d42aee217e76c3ce66d400008a7b6961e","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.18.5.tgz","fileCount":90,"integrity":"sha512-QbwFrEukwXQj1hPuN0is+HppDWMQqUrRjBWHfw0vRzUmLqb358MgW5r2ame3T6PKI6o5DawhHEgjK3G26rn0TA==","signatures":[{"sig":"MEYCIQCOYRz0/COZ3G6dq0XqPbzTx69SW4a0018tvM6eJQ1rfAIhAIKLkh3T9F57Z1arjeIMmRfwIPRrQTcf5ipCfCR++2wh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.18.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":916109},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"6f8677dff5e63e6bedec121f505d253760a82b12","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.18.5_1788729230659_0.06680676396689367","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"claude-dev-workflow","version":"1.19.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.19.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"f8d7d8cde2388e641b12f7c8424e7cfcfa90e31c","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.19.0.tgz","fileCount":90,"integrity":"sha512-53iIFedyQQ6iHf1lzMHz/FVJvKikoFQu4ufJX9F651rCOpwIsulDs2khc+4s19VbXdEqzoOYuhpqeNU1kpJQ7g==","signatures":[{"sig":"MEYCIQC/PAoWZK1p8awiPShkb1Izog/QPhy6DNqoVHtQ4AtxmwIhAJHpWB8f2VETSY5SZZGeyb7EHtNCwx22IK226V8qR1KL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":917939},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"e240a4dfc468330fdd46fa90e198d38e8d449808","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.19.0_1788731436459_0.3840862312588784","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"claude-dev-workflow","version":"1.20.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.20.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"e17d672d9ff7d8dfdc4da78a7e6b66899c3e4773","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.20.0.tgz","fileCount":91,"integrity":"sha512-TPzgmNvjpQiTLDIYtnGxAWKfU/R+YgKgrPkyxdEP9+ba1IO8zUCU0/SpPlGDFRZT1cKnyZsriBvx69byVaIfOA==","signatures":[{"sig":"MEYCIQDJARQfIhzjTWjYvZV16D0BH34dKXeGZjWDXrcPaAqzoAIhAOvpUDehLUDywovBz/0aD9CznrG+LSdFD7hKSPdNLYrR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":931154},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"54d1ae191aa491bd8303ef6c23991101a97f30c7","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.20.0_1788768699530_0.2341853327745005","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"claude-dev-workflow","version":"1.20.1","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.20.1","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"26c05c3a044ca6e6449d267670f65e5496163ce7","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.20.1.tgz","fileCount":101,"integrity":"sha512-d4yt/JMeLnAyGacR7ayXdOSIKrTc7aLm7KM6ejVCPVeE8H6XeyUk3ForRkNsueyYt/85oJLaSDs+/PDlCPpqlg==","signatures":[{"sig":"MEUCIDXec0oxdq0PNeIlLrcMKgT4Z1voN66WmlQmV+AHiJ02AiEAi58ydEiKkfwE7IgWzzQdw41SdFnrKZOhhkIHiPN3wO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1031250},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"e419c23ec111f5699a3755ec04b1d5df46d4e5e8","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.20.1_1788861166791_0.001522294630690979","host":"s3://npm-registry-packages-npm-production"}},"1.20.2":{"name":"claude-dev-workflow","version":"1.20.2","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.20.2","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"f6dedd128474f8ef964fb13054a80bce13dca16e","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.20.2.tgz","fileCount":104,"integrity":"sha512-wZzHdwTVQkzGvhLNlyrOtc2uRlK4gMIRsBZvUuNSq9fYD3R2e0BS7si/2SyULq8Fzy7F7yF+ard+0AqdSiUvUg==","signatures":[{"sig":"MEUCIQCzqHbbrXTlI1Y09ksox/KkN4jbuR+vM8jQFfPN6hlDUgIgGwxFiiEG2BaCtzz7H9S+UjCiLpaxc3oAPaqyhzlshDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.20.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1132908},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"4da344589c1ad436368ada8a95bd6b3082686ef5","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2","@semantic-release/commit-analyzer":"^13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.20.2_1789035020293_0.6963894592329487","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"claude-dev-workflow","version":"1.21.0","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","_id":"claude-dev-workflow@1.21.0","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"bin":{"dw":"bin/install.mjs","claude-dev-workflow":"bin/install.mjs"},"dist":{"shasum":"72711ae59117bc4b34011be8c16012f38f443319","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.21.0.tgz","fileCount":105,"integrity":"sha512-qZoBdHuEpzeH4on/7MLLjpelUihtd8feBEve/sXUIP+ebv4abGE47IWAwXKLQA6+hZ/dzX5mbn3XaTRTIqIKoQ==","signatures":[{"sig":"MEUCICbiZYJspI1ZxP9dGYXU8jYD4E9lY3oVmOq1SzR380MkAiEAz+PPbma1XqsMIZmPw3ZUwMd9z/rFZeNAs7F5NHR1NQE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1145714},"type":"module","config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"engines":{"node":">=22"},"gitHead":"c4b2ec856e1bc673eb5276c3de37b3dbf3c43282","scripts":{"lint":"bash tests/lint.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","commit":"cz","prepare":"husky || true","profile":"node tools/profile.mjs","release":"semantic-release","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test:unit":"node --test tests/*.test.mjs","check:payload":"node tools/check-payload.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"repository":{"url":"git+https://github.com/ayhid/claude-dev-workflow.git","type":"git"},"_npmVersion":"11.19.1","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"picocolors":"^1.1.1","@clack/prompts":"^0.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","inquirer":"^9.3.8","commitizen":"^4.3.2","@commitlint/cli":"^21.2.2","semantic-release":"^25.0.9","@semantic-release/git":"^10.0.1","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.2","@semantic-release/commit-analyzer":"^13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-dev-workflow_1.21.0_1789045661537_0.07260983694765044","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"claude-dev-workflow","version":"1.22.0","description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","type":"module","bin":{"claude-dev-workflow":"bin/install.mjs","dw":"bin/install.mjs"},"scripts":{"lint":"bash tests/lint.sh","test:unit":"node --test tests/*.test.mjs","test:coverage":"node --test --experimental-test-coverage --test-coverage-exclude='tests/**' --test-coverage-exclude='commitlint.config.mjs' --test-reporter=lcov --test-reporter-destination=lcov.info --test-reporter=spec --test-reporter-destination=stdout tests/*.test.mjs","test:hook":"bash tests/hook.test.sh && bash tests/adr-hook.test.sh && bash tests/session-hook.test.sh && bash tests/update-hook.test.sh","test":"npm run lint && npm run check:payload && npm run test:unit && npm run test:hook","check:payload":"node tools/check-payload.mjs","profile":"node tools/profile.mjs","commit":"cz","release":"semantic-release","prepare":"husky || true"},"config":{"commitizen":{"path":"@commitlint/cz-commitlint"}},"publishConfig":{"access":"public","provenance":true},"engines":{"node":">=22"},"dependencies":{"@clack/prompts":"^0.11.0","picocolors":"^1.1.1"},"keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ayhid/claude-dev-workflow.git"},"homepage":"https://github.com/ayhid/claude-dev-workflow#readme","bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"devDependencies":{"@commitlint/cli":"^21.2.2","@commitlint/config-conventional":"^21.2.2","@commitlint/cz-commitlint":"^21.2.2","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/git":"^10.0.1","commitizen":"^4.3.2","husky":"^9.1.7","inquirer":"^9.3.8","semantic-release":"^25.0.9"},"gitHead":"66a71008e167245ff7bd30a638e1936a31ad3a8d","_id":"claude-dev-workflow@1.22.0","_nodeVersion":"24.20.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-zuwkI2shiU32KRx4bAnl9LCPH5VDbWIvcC+ry5ycPid08nKm7EN6zL7IuABm3rOAfaTEIyRoVjifOqWRg352iQ==","shasum":"102b3baa224d5f41dc8258d65b202706bb8b76c7","tarball":"https://registry.npmjs.org/claude-dev-workflow/-/claude-dev-workflow-1.22.0.tgz","fileCount":105,"unpackedSize":1153194,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-dev-workflow@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCOrX00LP2Ysn9nEE4Gmy5STWnQFWNs8jwrb3VU7KudoAIgbGTU7STRqv809CP6momMYOW3kwoea7FqQXQh+g+rkSU="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:94af0f6a-b599-4b90-aecb-ba8d8950501a"}},"directories":{},"maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-dev-workflow_1.22.0_1789046340937_0.700895497128597"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T11:43:26.518Z","modified":"2026-09-10T13:19:01.414Z","1.0.0":"2026-08-16T11:43:26.935Z","1.0.1":"2026-08-16T14:11:28.511Z","1.0.2":"2026-08-16T18:22:17.506Z","1.1.0":"2026-08-17T07:22:20.975Z","1.2.0":"2026-08-17T07:29:27.107Z","1.3.0":"2026-08-28T07:09:02.317Z","1.4.0":"2026-08-28T10:08:33.684Z","1.5.0":"2026-08-28T10:17:52.615Z","1.5.1":"2026-08-28T10:27:38.720Z","1.6.0":"2026-08-28T11:03:27.097Z","1.6.1":"2026-08-28T11:45:50.763Z","1.6.2":"2026-08-28T11:50:11.843Z","1.6.3":"2026-08-28T15:37:00.610Z","1.7.0":"2026-08-28T18:14:46.217Z","1.8.0":"2026-08-28T19:16:27.360Z","1.9.0":"2026-08-28T19:32:30.516Z","1.10.0":"2026-08-28T20:18:00.310Z","1.10.1":"2026-08-28T20:24:18.951Z","1.10.2":"2026-08-28T20:36:39.454Z","1.11.0":"2026-08-28T21:57:09.833Z","1.12.0":"2026-08-28T22:41:18.201Z","1.13.0":"2026-08-29T12:40:14.241Z","1.14.0":"2026-08-29T16:15:21.214Z","1.15.0":"2026-08-30T03:30:07.111Z","1.15.1":"2026-08-30T03:37:26.821Z","1.16.0":"2026-08-30T03:43:19.037Z","1.17.0":"2026-08-30T10:40:54.494Z","1.18.0":"2026-08-30T21:59:41.418Z","1.18.1":"2026-08-30T22:08:26.593Z","1.18.2":"2026-08-30T22:15:58.518Z","1.18.3":"2026-09-03T18:08:52.740Z","1.18.4":"2026-09-04T07:28:33.952Z","1.18.5":"2026-09-06T21:13:50.810Z","1.19.0":"2026-09-06T21:50:36.598Z","1.20.0":"2026-09-07T08:11:39.691Z","1.20.1":"2026-09-08T09:52:46.926Z","1.20.2":"2026-09-10T10:10:20.442Z","1.21.0":"2026-09-10T13:07:41.726Z","1.22.0":"2026-09-10T13:19:01.104Z"},"bugs":{"url":"https://github.com/ayhid/claude-dev-workflow/issues"},"author":{"name":"Ayoub Hidri","email":"ayoub@opkod.io"},"license":"MIT","homepage":"https://github.com/ayhid/claude-dev-workflow#readme","keywords":["claude-code","claude-code-skill","youtrack","github-issues","workflow","issue-tracker"],"repository":{"type":"git","url":"git+https://github.com/ayhid/claude-dev-workflow.git"},"description":"Per-project installer for the ticket-driven dev workflow — /dev-task, /dev-bug, /dev-done as Claude Code skills, against YouTrack or GitHub Issues.","maintainers":[{"name":"ayhid","email":"ayoub.hidri@gmail.com"}],"readme":"# dev-workflow\n\n> Ticket-driven development for Claude Code, for teams and solo developers who already run their\n> work through an issue tracker. Installed per project, tracker-agnostic (YouTrack or GitHub\n> Issues), with no global state.\n\n[![npm](https://img.shields.io/npm/v/claude-dev-workflow?style=flat-square)](https://www.npmjs.com/package/claude-dev-workflow)\n[![ci](https://img.shields.io/github/actions/workflow/status/ayhid/claude-dev-workflow/ci.yml?branch=main&style=flat-square&label=ci)](https://github.com/ayhid/claude-dev-workflow/actions/workflows/ci.yml)\n[![coverage](https://qlty.sh/gh/ayhid/projects/claude-dev-workflow/coverage.svg)](https://qlty.sh/gh/ayhid/projects/claude-dev-workflow)\n[![node](https://img.shields.io/node/v/claude-dev-workflow?style=flat-square)](https://nodejs.org)\n[![license](https://img.shields.io/npm/l/claude-dev-workflow?style=flat-square)](LICENSE)\n\n![The install wizard verifying a token, listing the projects it can see, reading that project's real State values, and writing .dev-workflow.json](https://raw.githubusercontent.com/ayhid/claude-dev-workflow/main/.github/assets/wizard.gif)\n\nTicket-driven development against your issue tracker, [YouTrack](https://www.jetbrains.com/youtrack/)\nor [GitHub Issues](docs/configuration.md#github-issues), as fifteen Claude Code skills. It installs **per\nproject**: no skill is registered globally, so they exist only in repos that use a tracker.\n\n| Skill         | What it does |\n| ------------- | ------------ |\n| `/dev-init`    | Probes the repo, asks what it cannot infer, verifies the credentials, writes `.dev-workflow.json`. |\n| `/dev-task` | The front door. Takes an issue ID **or a plain sentence** and routes to the step the work is at: `/dev-file` when there is no issue, `/dev-plan` when there is no plan, `/dev-split` when the plan has independent parts, `/dev-build` to build. |\n| `/dev-file` | Turns a sentence into a filed issue of any configured type: orients in the code, asks for what is missing in rounds you can stop after any of, checks for duplicates, drafts in the project's language with falsifiable acceptance criteria, files on approval. **Ends at the ID; starts nothing.** |\n| `/dev-plan` | Agrees what done means and how to get there: restates the criteria against a stated bar, picks the repo, proposes the approach with its independent parts named, and posts the plan **on the ticket**, where the next session reads it back. **Edits no file, creates no branch.** |\n| `/dev-split` | Turns a plan's independent parts into work units filed as **sub-issues** of the ticket, each with its own criteria and a `Depends on:` line, in the order they can be built. **Starts nothing.** |\n| `/dev-build` | Builds it: moves the ticket, checks it out in a worktree, and dispatches a builder subagent **in the background** to implement against the agreed criteria — the session orchestrates, verifies with evidence, and delivers the way the project delivers; it never builds. A split ticket has its ready units built **in parallel**, one builder per unit in its own worktree, landed a wave at a time; `auto` chains the waves under direct delivery on one approval. |\n| `/dev-tdd` | The red/green/refactor loop `/dev-build` hands off to at implementation: one agreed criterion at a time, a test confirmed to fail for the intended reason before any production code, then a refactor while green. On by default, `tdd.enabled: false` to switch it off. |\n| `/dev-bug`     | The front door for something broken: parses the symptom, investigates the likely code path to a suspected area, and hands it to `/dev-file` to file as the project's defect type. **Never fixes.** |\n| `/dev-done`    | Re-reads the ticket, verifies each criterion with evidence, runs the checks, then lands the work the way the project delivers: pull request, or straight onto the base branch. |\n| `/dev-review` | Three adversarial passes over the branch diff, each with a **different payload**: one blind pass that never sees the ticket, one hunting the input that breaks it, one auditing code against intent *and intent against itself*. Findings sorted into fix-the-code, fix-the-spec, out-of-scope. **Never edits, never lands.** [Findings contract →](docs/review.md) |\n| `/dev-lint-rules` | Turns the conventions a project only *states* — in `CLAUDE.md`, `CONTRIBUTING.md`, the docs ledger — into rules its own linter can decide, each presented with the count of existing violations it would flag. What no rule can decide it reports separately, as a hook, a claim, or noise. **Writes nothing without approval of the batch.** [Why not a document →](docs/documentation.md#why-there-is-no-conventionsmd) |\n| `/dev-standup` | Everything in flight across every configured repo: what merged — or, on a repo delivering without pull requests, what landed on the base branch — what is checked out, what has stopped moving, what is still open on the tracker, and the one thing waiting on you. Phrased per repo in the delivery mode it actually uses. **Never writes.** |\n| `/dev-ingest-docs` | Reads a brownfield project's existing documentation into a verified map: every claim anchored to the code that proves it, contradictions found, and the questions only a person can settle put to you. Runs in steps across sessions. **Never rewrites your docs.** |\n| `/dev-docs-init` | Gives a greenfield project the documents it does not have yet — context, architecture, domain, api, ux, operations, testing, security — filled a claim at a time, every line carrying the anchor or the attribution that would show it false. **Writes no prose of its own.** [Reference →](docs/documentation.md) |\n| `/dev-adr` | Records an architecture decision while the rejected alternatives are still known, then freezes it. An accepted record is superseded, never edited — a hook enforces it. [Reference →](docs/decisions.md) |\n\nNothing installed is project-specific: instance, project, ticket language, repo layout, state\nladder, branch naming, isolation mode and commit convention all come from one\n[`.dev-workflow.json`](docs/configuration.md) per project.\n\n**[Documentation site →](https://ayhid.github.io/dev-workflow-documentation/)** — a one-page quick\nstart, a use case per situation, recipes, and a reference with real output for every command.\n\n**Contents** &nbsp;\n[Quick start](#quick-start) &middot;\n[How a ticket flows](#how-a-ticket-flows) &middot;\n[What the skills refuse to do](#what-the-skills-refuse-to-do) &middot;\n[Install](#install) &middot;\n[Updating](#updating) &middot;\n[Configuration](#configuration) &middot;\n[Scripts](#scripts) &middot;\n[Keeping states honest](#keeping-states-honest) &middot;\n[Joining an existing codebase](#joining-a-codebase-that-already-exists) &middot;\n[Measuring what happened](#measuring-what-actually-happened)\n\n## Quick start\n\nNode ≥ 22, and the project you want to set up. `jq` is needed by the commit hook, and the\n[GitHub CLI](https://cli.github.com) by `dev.mjs sync` and by every GitHub Issues project. The\n1Password CLI (`op`) is optional.\n\nInstall the tool once, then initialise it in any project. One command for either tracker: the\nfirst question is which one you use, and that answer decides every question after it.\n\n```bash\nbrew tap ayhid/claude-dev-workflow https://github.com/ayhid/claude-dev-workflow\nbrew trust --formula ayhid/claude-dev-workflow/claude-dev-workflow   # Homebrew ≥ 6: trust this one formula\nbrew install claude-dev-workflow           # or: npm install -g claude-dev-workflow\n\ncd your-project\ndw init                                    # dw is claude-dev-workflow, for short\n```\n\nOr run it without installing anything: `npx claude-dev-workflow@latest`, in the project.\n\n**GitHub Issues** needs no token — `gh` carries the authentication. The wizard proposes the\nrepository from your `origin` remote, checks that `gh` can write to it, and maps each rung of your\nstate ladder onto a label the repository really has. It never creates a label: anything missing is\nprinted as the exact `gh label create` command to run.\n\n**YouTrack** needs an instance URL and a token: *Profile → Account Security → Authentication → New\ntoken*, `YouTrack` scope. Export it as `$YOUTRACK_TOKEN`, or give the wizard a 1Password reference.\nIt then reads the project's real state, type and priority values off the API rather than proposing\nnames your instance may not have.\n\n> [!TIP]\n> The wizard never needs a token pasted into a file: give it a 1Password reference such as\n> `op://Private/youtrack/credential` and it resolves through the `op` CLI at run time. It also\n> works offline. If the API is unreachable it says so and falls back to typed answers.\n\nTo amend an existing config later, or to talk it through rather than click, run `/dev-init` in\nClaude Code instead.\n\nEither way you now have the fifteen skills. Start work:\n\n```\n/dev-task ABC-42\n/dev-task the CSV export times out on big accounts     # no issue yet, it files one first\n```\n\n`/dev-task` agrees the acceptance criteria with you and waits for your approval on a plan before it\nedits anything.\n\n## How a ticket flows\n\n```mermaid\nflowchart TD\n    A[\"/dev-task ABC-42<br/>or a plain sentence\"] -. \"no issue yet\" .-> A1[\"/dev-file<br/>issue filed\"]\n    A1 --> B\n    A --> B[\"/dev-plan<br/>criteria agreed, plan<br/>posted on the ticket\"]\n    B -. \"independent parts\" .-> S[\"/dev-split<br/>units filed as sub-issues\"]\n    S --> S1[\"/dev-build<br/>one builder per ready unit,<br/>landed a wave at a time\"]\n    S1 --> E\n    B --> C[\"/dev-build → dev.mjs start<br/>worktree or branch<br/>ticket → In Progress\"]\n    C --> D[\"commits carrying<br/>the issue ID\"]\n    D --> E[\"/dev-done<br/>verify criteria, run checks\"]\n    E --> F{\"delivery.mode\"}\n    F -- \"pr\" --> G[\"pull request opened<br/>ticket → In Review\"]\n    G -- \"merged\" --> H[\"dev.mjs sync<br/>ticket → Done\"]\n    F -- \"direct\" --> I[\"rebase, fast-forward, push<br/>worktree removed<br/>ticket → Done\"]\n    C -. \"session ends\" .-> J[\"dev.mjs resume<br/>worktree back, ticket caught up\"]\n    J -.-> D\n    C -. \"giving up\" .-> K[\"dev.mjs abandon<br/>reason recorded<br/>ticket → states.abandon\"]\n```\n\nEach ticket is checked out in its own git worktree by default, so starting one never disturbs\nwhatever is already in the tree.\n\nNot every ticket finishes, and not every session does either. `dev.mjs resume` puts a missing\nworktree back and prints what the last session had actually left there — the uncommitted files by\nname and the commits already made — then catches a ticket up to the start rung if it is behind.\n`dev.mjs abandon` is the other way out: it records why on the ticket, moves it to `states.abandon`,\nand takes the worktree and branch down. It refuses while there is anything to lose, so the reason\nyou gave is never the last trace of work you meant to keep.\n\n> [!IMPORTANT]\n> Whether finished work goes through a pull request or lands straight on the target branch is\n> **configuration, not a decision the model makes**. A solo project sets `delivery.mode` to\n> `direct` once and is never asked again.\n\nWhere it lands is configuration too. `delivery.base` is the branch work is delivered **onto**, and\n`branch.base` the branch it is forked **from**; set the first only when they differ, and a project\ncan fork every ticket from `main` while merging into `develop` or a release branch.\n\n## What the skills refuse to do\n\nThese are deliberate, and worth preserving in any fork.\n\n| Guarantee | Enforced by |\n| --- | --- |\n| `/dev-file` and `/dev-bug` file and stop. They never start the work, edit a file or switch branch, because the session may be mid-task on something else. | The `/dev-file` skill contract; `/dev-bug` hands off to it |\n| `/dev-plan` and `/dev-split` end on the tracker — a plan comment, a set of sub-issues — and touch nothing on disk. Only `/dev-build` creates a branch, and it does not touch a file before the plan is agreed or close a ticket unasked. | The `/dev-plan`, `/dev-split` and `/dev-build` skill contracts |\n| A builder subagent works only in its own worktree: no push, no fetch, no stash, no rebase, no hook bypass, and no command that moves a ticket. The coordinator lands each wave and reconciles once. | `agents/dev-builder.md`; the commit hook refuses `--no-verify`; `dev.mjs build --land` is the one writer |\n| `/dev-done` refuses to close a ticket whose acceptance criteria are unmet or whose suite fails, and reports the gap instead. | The `/dev-done` skill contract |\n| The transition log never leaves your machine, and never fails a ticket transition. | `dev.mjs` appends one JSON line locally; a log it cannot write produces a line on stderr and the ticket still moves. |\n| `/dev-standup` reports and never writes — not even the `sync --apply` it suggests. A command run first thing in the morning must be safe to run without thinking. | `dev.mjs standup` has no write path at all; every fix it names is a command for you to approve. |\n| `/dev-lint-rules` never edits a linter config or a `CLAUDE.md` without approval of the whole batch, and never invents a linter: a project with no lint setup is told so and told what the standard tool for its language is. | The skill contract, and `dev.mjs rules` reports what is configured rather than proposing one — a rule that will never run is worse than an absent one, because it looks like coverage. |\n| `/dev-ingest-docs` never rewrites your documentation. It writes only under `_dev-workflow/artifacts/` — the survey, and the reorganised draft as a staged tree beside it; applying that draft to your docs is ordinary work you approve file by file. | Neither the survey nor `reorg rewrite` has a write path outside the payload root, the staged tree says it is generated, and a staged file edited by hand is refused rather than overwritten. |\n| `/dev-docs-init` writes no prose of its own, and never overwrites a document you already have. A generated document it cannot recognise as its own is left alone rather than re-rendered. | `renderDocument` takes claims and has no parameter a paragraph could be passed through; `docs render` compares the file against the hash it wrote. |\n| An `observable` claim with no evidence anchor is refused, not stored. An anchor naming a file that is not in the repo is refused too. | `lib/ingest.mjs` — an unanchored claim is a guess in the voice of a fact, and a map of those reads exactly like one that was checked. |\n| `dev.mjs abandon` refuses while the branch has uncommitted changes or commits the base has not seen, and names each one. `--force` is the only thing that discards them. | The check runs before the first write, so a refusal really does leave everything as it was found. |\n| Nothing bypasses git hooks. No `--no-verify`, no `HUSKY=0`. | `lib/vcs.mjs` refuses to build the argv, so it holds for code added later too. |\n| Nothing force-resolves a merge conflict. `-X theirs` and `checkout --theirs` discard one side silently. | A rebase conflict aborts, leaves the branch untouched, and says which commits clashed. |\n| The installer writes nothing outside `_dev-workflow/`, `.claude/skills/dev-*` and `.claude/agents/dev-*.md`, and merges rather than rewrites the one shared file, `.claude/settings.json`. That includes your `.gitignore`. | `isOwnedPath` in the installer; worktree mode prints the line to add rather than adding it. |\n\n## Install\n\nThree routes to the same installer. It lands the workflow **in the project** every time — the\nruntime under `_dev-workflow/`, the skills under `.claude/skills/dev-*`, the subagents under\n`.claude/agents/dev-*.md`, the hooks in `.claude/settings.json` — which is what the project\ncommits and what its hooks run from. A global binary only puts it there.\n\n| Route | Install once | Then, in each project |\n|---|---|---|\n| Homebrew | `brew tap ayhid/claude-dev-workflow https://github.com/ayhid/claude-dev-workflow`, `brew trust --formula ayhid/claude-dev-workflow/claude-dev-workflow`, `brew install claude-dev-workflow` | `dw init` |\n| npm | `npm install -g claude-dev-workflow` | `dw init` |\n| nothing | — | `npx claude-dev-workflow@latest` |\n\nThe formula lives in this repository, so `brew upgrade` follows every release; `brew trust` is\nHomebrew 6's one-time question for anything outside homebrew-core — scoped to this one formula, not the whole tap. Both installs put two names on\nPATH, `claude-dev-workflow` and `dw`, for one binary; `dw help` lists the subcommands: `init`,\n`update`, `update --reconfigure`, `version`.\n\n`claude-dev-workflow init` runs an interactive wizard\n([`@clack/prompts`](https://github.com/bombshell-dev/clack)) that:\n\n1. asks **which issue tracker the project uses**, first, because that answer decides every question\n   after it — proposing GitHub Issues when `origin` points at github.com;\n2. asks what that tracker needs and **verifies it before writing anything**: an instance URL and a\n   token (`$YOUTRACK_TOKEN` or a 1Password reference) for YouTrack, a repository `gh` can write to\n   for GitHub;\n3. fills the rest from the tracker itself rather than proposing names it may not have — YouTrack's\n   **real State / Type / Priority values** off the API, or the labels your GitHub repository really\n   carries, mapped onto the rungs of your state ladder;\n4. scans the working tree for repos, package managers, test and lint scripts, commitlint types\n   and scopes, runtime pins and git remotes, and shows them for confirmation;\n5. infers whether issue IDs go at the prefix or suffix of a commit subject from the last 50\n   commits, in whichever ID shape that tracker uses;\n6. writes `.dev-workflow.json` and installs the workflow into the project.\n\nIt never writes to your issue tracker. A GitHub ladder needs a label per rung, and any your\nrepository does not have yet are printed as the `gh label create` commands to run — adding a label\nis a visible, permanent change to a repository, and not the installer's to make.\n\n```bash\nclaude-dev-workflow init --dir ../other-project   # target somewhere else\nclaude-dev-workflow init --print                  # show the config, write nothing\nclaude-dev-workflow init --force                  # overwrite files you have edited\n```\n\nEvery line here also reads as `npx claude-dev-workflow@latest <the same flags>`: the subcommands\nand the flags are two spellings of one path, and neither is going away.\n\n`npx github:ayhid/claude-dev-workflow` installs from `main`, one release ahead of npm and slower,\nbecause npm builds the repo's dev toolchain first. Prefer the registry unless you want unreleased\nwork. Cloned locally, `node bin/install.mjs` is the same thing again. Released versions are listed\nunder [Releases](https://github.com/ayhid/claude-dev-workflow/releases).\n\n> [!WARNING]\n> **Always write `@latest`.** A bare `npx claude-dev-workflow` re-runs whatever version it first\n> cached, indefinitely, and the `github:` form reuses its cached clone forever.\n\n<details>\n<summary>Why the <code>@latest</code> tag is load-bearing, and how to bust a stuck npx cache</summary>\n\nnpx keys its cache on the literal spec string and, on a re-run, only checks whether the tree it\nalready cached satisfies the range it recorded (`2.0.0` satisfies the `^2.0.0` it wrote), so a bare\n`npx claude-dev-workflow` keeps re-running whatever version it saw first, indefinitely. `latest` is\na dist-tag, so it is re-resolved every time. The `github:` form is worse still: a git spec carries\nno version to compare, so the cached clone is reused forever. Bust it by changing the spec,\n`npx github:ayhid/claude-dev-workflow#v2.1.0` or a commit sha, rather than by clearing the cache.\n(`npx --ignore-existing` was removed in npm 7.)\n\n</details>\n\n### What lands in the project\n\n```\nyour-project/\n  .dev-workflow.json              # your config, edit this\n  _dev-workflow/                  # installer-managed runtime; commit it, do not edit\n    scripts/  lib/  hooks/\n    _config/manifest.json         # version + a sha256 per installed file\n  .claude/\n    skills/dev-task, dev-file, dev-plan, dev-split, dev-build, dev-tdd, dev-bug,\n           dev-done, dev-init, dev-standup, dev-ingest-docs, dev-docs-init,\n           dev-adr, dev-review, dev-lint-rules\n    agents/dev-reader.md          # the subagents the skills dispatch, one file each\n           dev-review-blind.md, dev-review-edge.md, dev-review-audit.md\n           dev-builder.md\n    settings.json                 # the four hooks, merged in alongside your own\n```\n\n> [!IMPORTANT]\n> **Commit `_dev-workflow/`, and never edit it.** Committing it is how your teammates get the same\n> workflow without installing anything. Editing it makes the manifest treat the file as yours, so\n> the next update silently skips it. **The installed runtime has no dependencies of its own**:\n> there is no `node_modules` under it, so it works in a Python, Rust or Go project just as well.\n\n## Updating\n\nUpdating has two modes. Both refresh the files; they differ in what happens to your config.\n\n```bash\ndw update                 # express: refresh the files, keep your config\ndw update --reconfigure   # change config: refresh, then the wizard\ndw update --print         # show what would change, write nothing\ndw update --force         # and overwrite files you have edited\n```\n\n`update` installs the version the binary carries and says so — `Project v1.18.2 → v1.19.0` — and\nit refuses to move a project *backwards* when the binary is older than the project's copy, naming\nthe upgrade command for the binary instead. `--force` downgrades anyway. It also asks the npm\nregistry whether the binary itself is current: a binary behind the latest release still installs,\nbut warns and names the newer version rather than reporting the project up to date.\n\nWith no global install, each is `npx claude-dev-workflow@latest --update …` — and that is also the\nspelling `dev.mjs version` prints, since it works on every machine. A global binary updates a\nproject to *its own* version, so keep it current (`brew upgrade claude-dev-workflow` or\n`npm update -g claude-dev-workflow`); `dev.mjs version --upgrade` only uses the global binary when\nit already reports the latest release, and falls back to `npx …@latest` otherwise.\n\n**Express** — `--update` — skips the wizard: it touches `_dev-workflow/`, `.claude/skills/dev-*`,\n`.claude/agents/dev-*.md` and the hook entries in `.claude/settings.json`, and leaves every value\nyou have answered exactly as it is. It asks one kind of question and no other: a **setting this version has that your config\ndoes not**. That one was never answered, so it is asked — labelled as new, on its own, with a\ndefault — and appended. Nothing already in `.dev-workflow.json` is rewritten, reordered or removed,\nso a config that has every setting comes out byte-identical.\n\nWhere there is no terminal to ask on — CI, a container, a pipe, `dev.mjs version --upgrade` — it\nasks nothing at all: each new setting gets its default and the run prints which keys it added and\nwith what value, so the choice is in the log rather than lost. Express never blocks on a prompt.\n\n**Change config** — `--update --reconfigure` — does the same refresh and then runs the whole\nwizard, with your current config as the initial answer to every question. It is the way to update\n*and* change a value in one go.\n\n**Re-running `init` on a configured project** does not start the wizard on its own. It looks at what\nis there and asks, with the recommendation first: **Express** when your config already has every\nsetting this version knows about; **Keep the config and add the new settings** when it predates\nsome, naming them; then **Change config** (the wizard, current values as defaults), **Replace the\nconfig** (the wizard from scratch — files you edited stay protected unless `--force`) and\n**Cancel**. With no terminal to ask on, the recommended path is what happens, so a bare `init`\nfrom a pipe updates the project rather than hanging. A config that is not a JSON object cannot be\nkept or diffed: the installer says so and the wizard starts from scratch. Two flags answer the\nquestion on the command line and skip it: `--force` runs the wizard with your current values as\ndefaults and overwrites files you edited, and `--print` prints the config the wizard would write.\n\nEvery run ends on one line saying what became of the files and of the config —\n`Files updated: 27 written. Config: retained.`, `Config: 2 settings added.`, `Config: replaced.`\n\nThe installer compares each file against the hash recorded at install time: untouched files are\nreplaced, files you have edited are reported and left alone, and files a newer version no longer\nships are removed. `--force` overrides that. Your `.claude/settings.json` is merged, never\noverwritten: hooks you added yourself survive, and the entry is not duplicated on a re-run.\n\nEvery write is atomic, and an install that fails partway — a permission error, a full disk — puts\nback every file it had written or removed before reporting the error, so the manifest it never\nreached is still true and the next run is an ordinary update rather than one stuck behind\n`--force`. There is no backup directory: `_dev-workflow/` is meant to be committed, and git is\nthe backup.\n\n### Checking a version from inside a project\n\n```bash\nnode _dev-workflow/scripts/dev.mjs version      # installed vs latest, plus files you have edited\nnode _dev-workflow/scripts/dev.mjs version --upgrade\n```\n\n`version` is read-only and exits 0 even with no network: it prints `unknown` rather than failing.\n`--upgrade` runs the `npx` line above for you, and refuses if `_dev-workflow/` or `.claude/skills/`\nhas uncommitted changes, because an update rewrites those files and you need the diff to be legible.\n\n## Configuration\n\nThe wizard writes `.dev-workflow.json` at the repo root; `/dev-init` writes the same file from\ninside a session.\n\n> [!IMPORTANT]\n> `.dev-workflow.json` holds no secret. `tokenOpRef` is a 1Password *reference*, not a credential,\n> so the file is meant to be committed.\n\n**YouTrack** needs `baseUrl` and `project`; everything else has a working default. On a\nlocalised instance, name the state and assignee fields — they are read by display name, and\n`État` is not `State`.\n\n```json\n{\n  \"provider\": \"youtrack\",\n  \"baseUrl\": \"https://acme.youtrack.cloud\",\n  \"project\": \"ABC\",\n  \"tokenOpRef\": \"op://Private/youtrack/credential\",\n  \"youtrack\": { \"stateField\": \"État\", \"assigneeField\": \"Responsable\" },\n  \"states\": { \"start\": \"In Progress\", \"review\": \"In Review\", \"done\": \"Done\" }\n}\n```\n\n**GitHub Issues** has no state field, so the ladder is modelled with labels, which means the label\nmapping and an explicit `states.ladder` are both required. Authentication is the GitHub CLI you\nalready have.\n\n```json\n{\n  \"provider\": \"github\",\n  \"github\": {\n    \"repo\": \"acme/api\",\n    \"labels\": {\n      \"In Progress\": \"status: in progress\",\n      \"In Review\": \"status: review\",\n      \"Done\": \"status: done\"\n    }\n  },\n  \"states\": {\n    \"ladder\": [\"Backlog\", \"In Progress\", \"In Review\", \"Done\"],\n    \"start\": \"In Progress\", \"review\": \"In Review\", \"done\": \"Done\"\n  }\n}\n```\n\n**[Full configuration reference →](docs/configuration.md)** covers every field, grouped by config\nblock: branch naming and worktrees, the commit convention the hook enforces, delivery modes,\nmulti-repo routing, credentials and environment overrides. Two worked examples live in\n[`examples/`](examples/).\n\n## Scripts\n\nThey are ordinary CLI tools; the skills just call them. The three you will reach for by hand:\n\n```bash\nnode _dev-workflow/scripts/dev.mjs standup                     # the whole board, in standup order\nnode _dev-workflow/scripts/dev.mjs start ABC-22                # branch or worktree, ticket to in progress\nnode _dev-workflow/scripts/dev.mjs sync                        # dry run: report state drift\n```\n\n> [!TIP]\n> Nothing writes until you ask it to. `land` and `sync` are dry runs unless given `--apply`,\n> `start --print` shows the branch name and path without creating anything, and the installer's\n> `--print` prints the config it would write instead of writing it.\n\n<details>\n<summary>Full command reference: every <code>dev.mjs</code> subcommand and what each one needs</summary>\n\nEach command below is prefixed with `node _dev-workflow/scripts/dev.mjs`.\n\n| Command | What it does | Needs |\n| --- | --- | --- |\n| `config [--json]` | prints the effective config | HTTP only |\n| `rules [--json]` | linters configured, languages nothing lints, conventions only written down | nothing |\n| `fetch ABC-22` | the issue as markdown, comments included | HTTP only |\n| `update ABC-22 state start` | moves it along the ladder | HTTP only |\n| `update ABC-22 state done @/tmp/c.md` | moves it, with a comment (literal or `@file`) | HTTP only |\n| `update ABC-22 comment \"note\"` | comment only | HTTP only |\n| `update ABC-22 raw \"Type Bug Priority Major\"` | a backend-native command, YouTrack only | HTTP only |\n| `create --dup-check \"slug 500 router\"` | open issues matching keywords; reports only, never files (exits 1 only when the search itself cannot run) | HTTP only |\n| `create \"Summary\" @/tmp/body.md Bug Major` | scans open issues for a duplicate first, then files the issue and prints the new ID on stdout | HTTP only |\n| `create \"Summary\" @/tmp/body.md --allow-duplicate` | files even though the scan matched, and says what it matched | HTTP only |\n| `create \"Summary\" @/tmp/body.md Bug --template bug_report.md` | names which of several repo templates the body must satisfy | HTTP only |\n| `create --templates` | the repository's issue templates, filename and name | HTTP only |\n| `create --template bug_report.md` \\| `--template Bug` | prints a repo template verbatim, or the shipped default for a configured issue type | HTTP only |\n| `start ABC-22 [--type T] [--mode worktree\\|branch] [--repo PATH]` | branch or worktree, ticket to in progress | HTTP + git |\n| `start ABC-22 --print` | just shows the name and path | git |\n| `resume [ABC-22]` | worktree back, uncommitted files and commits so far, ticket caught up | HTTP + git |\n| `resume ABC-22 --print` | the same report, repairing nothing | git |\n| `abandon ABC-22 \"why\"` | records the reason, walks the ticket back, removes the worktree and branch | HTTP + git |\n| `abandon ABC-22 \"why\" --force` | the same, discarding uncommitted changes and unmerged commits | HTTP + git |\n| `land` | dry run: how this work would reach the base branch | git + GitHub CLI |\n| `land --apply` | opens the PR, or rebase + fast-forward + push | git + GitHub CLI |\n| `land --apply --criteria first-pass` | the same, recording whether the criteria passed first time | git + GitHub CLI |\n| `assess` | greenfield or brownfield, decided by what code and docs exist | git |\n| `ingest scan` \\| `next` \\| `read` \\| `record` \\| `answer` \\| `emit` | absorb existing documentation, one step at a time | git |\n| `reorg triage` \\| `classify` \\| `shortlist` \\| `detect` \\| `resolve` \\| `map` \\| `rewrite` \\| `adrs` | which documents are records of a moment (by rule, before they are read), what each document still is, which two overlap, what only a person can settle, the reorganised draft as a staged tree, and the intent claims as proposed decision records | git |\n| `standup [--since 3d] [--stale 7d]` | what merged (or landed, on a `direct` repo), what is in flight, what is stale, what is next | HTTP + git + GitHub CLI |\n| `sync` | dry run: report state drift and stranded labels | git + GitHub CLI |\n| `sync --apply --since 14d` | applies it, over a 14-day window | HTTP + git + GitHub CLI |\n| `sync --deep` | also reads commit subjects | git + GitHub CLI |\n| `status` | this checkout: branch, ticket, state, PR, dirty files, next step | git + GitHub CLI |\n| `status --all` | every worktree and ticket in flight, across configured repos | git + GitHub CLI |\n| `note \"what you learned\"` | appends it to the project's notes file, tagged with the current ticket | nothing |\n| `note @/tmp/longer.md` | the same, from a file | nothing |\n| `note` | where notes live and how many there are | nothing |\n| `version` | installed vs latest, and files you have edited | HTTP only |\n| `version --upgrade` | brings the payload up to date | git |\n\n`create` runs the duplicate scan itself, on every file: when an open issue matches the summary's\nkeywords it prints the candidates, exits `2` and files nothing, and `--allow-duplicate` is the one\nflag that overrides it. A backend that cannot search, or a search that fails, warns and files — the\ncheck is never a new way for filing to fail.\n\n`create` also respects the repository's issue template, which piping a body into `gh issue create`\notherwise bypasses. It reads `.github/ISSUE_TEMPLATE/` from the checkout, falls back to the\ntracker's API when the checkout has none, and to a shipped default per issue type when the\nrepository has none — and says which on stderr every time. A body missing a repo template's\nsection is refused with the section named and nothing filed; there is no bypass flag, because a\ntemplate that does not fit is a template to fix. The shipped defaults require only\n`## Acceptance criteria`, non-empty, and warn about the rest. With several repo templates,\n`--template <name>` picks one — it is never inferred from the type. The template's `labels:` are\napplied on top of the type label and its `title:` prefixes the summary.\n\n`config`, `fetch`, `update` and `create` are plain HTTP. `start`, `resume`, `abandon`, `land`,\n`standup` and `sync` additionally drive `git`, and `land`, `standup` and `sync` the GitHub CLI —\n`standup` degrading to the git half rather than refusing when it is missing.\n\nNone of them depend on anything outside Node's standard library,\nwhich is what lets `_dev-workflow/` sit in a project of any language with nothing to install.\n\n</details>\n\n**`update` names the rung, not the state.** `state start`, `state review`, `state done`,\n`state abandon`: the same\nline works whether the backend moves a State field or swaps a label, so no session ever has to guess\na state name. An explicit ladder state is accepted too, and rejected before anything is sent if it\nis not on the ladder. `update` writes to the issue tracker; `version` reports on, and optionally\nupdates, the workflow's own files. They are named a word apart on purpose: `upgrade` would have sat\none letter from `update` in the same command table, and a mistyped verb that rewrites 25 files\ninstead of moving a ticket is not a mistake worth making possible.\n\n### `update … raw` (YouTrack only)\n\n`update ABC-22 raw \"Type Bug Priority Major\"` sends a backend-native command. It is gated on the\nprovider's capabilities, so a GitHub project gets a usable error rather than a mystery.\n\n> [!CAUTION]\n> Two behaviours worth knowing, both learned the hard way against the real API:\n>\n> - The commands API returns **200 for commands it did not apply**. `dev.mjs update` always reads\n>   the state back afterwards and prints what it actually found. Trust that line, not the exit code.\n> - Braces mark where a multi-word value **ends**, they are not general quoting, so only a\n>   multi-word value with another field/value pair after it takes them. Both directions bite:\n>   `Type {Bug} Priority {X}` parses as the single value `{Bug} Priority` and 400s, and\n>   `State {Staging}` is rejected outright with `expected: {Staging}`. Instances disagree about the\n>   last pair in a command — some apply `State In Review` and reject `State {In Review}`, some the\n>   reverse — so `dev.mjs update` tries both and keeps whichever actually moved the ticket. You do\n>   not need to know which kind yours is.\n\n## Keeping states honest\n\nTransitions rot. A PR merges on a Friday, nobody is in a session, and the ticket sits in review\nuntil someone notices. The usual fix is a webhook that fires on merge, but an event that fires\nwhile the runner is down is simply lost, and the ticket is wrong forever.\n\n`dev.mjs sync` reconciles instead of reacting. It asks *given what has been pushed right now, where\nshould each ticket be?* and advances whatever has fallen behind:\n\n| Evidence | Target |\n| --- | --- |\n| an open PR references the issue | `states.review` |\n| a merged PR references the issue | `states.done` |\n| a commit on the base branch references the issue | `states.done` |\n\nThat third row is what makes the reconciler work on a project that does not open pull requests at\nall. `delivery.mode: direct` is the recommended mode for a solo project, and PR evidence about one\ndoes not exist and never will — so before it existed, `sync` reported \"everything is in sync\" about\na board where nothing had moved since the day it was filed. A commit reachable from the base branch\nhas landed, which is the same fact a merged PR carries. On a `pr` project it covers everything that\nbypasses `land`: a hand-pushed fix, a hotfix, a rebase landing three commits at once, work done\noutside a session.\n\n```mermaid\nstateDiagram-v2\n    state \"In Progress\" as inprog\n    state \"In Review\" as inreview\n    state \"Done\" as finished\n    state \"Blocked / Won't Fix\" as offladder\n\n    [*] --> Backlog\n    Backlog --> inprog: /dev-task\n    inprog --> inreview: land --apply opens a PR\n    inreview --> finished: sync sees the PR merged\n    inprog --> finished: land --apply, delivery.mode direct\n    inprog --> finished: sync sees the commit on the base branch\n    inprog --> offladder: moved by hand\n    offladder --> inprog: moved by hand\n    inprog --> Backlog: dev.mjs abandon\n```\n\nThe reconciler is what makes that one-way. `abandon` is the only thing in the tool that walks a\nticket **back**, which is why the state it walks back to is required configuration\n(`states.abandon`) rather than a guess: nothing else will notice a wrong one. It does not touch\npull requests either — an open PR still referencing the ticket will pull it forward to the review\nrung on the next run, so close the PR too, or the walk-back does not stick.\n\nIt only ever moves **forward** along `states.ladder`, and never touches a state off the ladder: a\nticket parked in `Blocked` or `Won't Fix` was put there on purpose, and no reconciler should\nsecond-guess that. Running it twice is a no-op, so it is safe from a hook, a cron, or the top of\n`/dev-task`. Missing a week costs latency, nothing else.\n\nIt also repairs the case that *looks* like nothing. On GitHub the ladder is modelled with labels,\nso an issue has two copies of its state — and they come apart: a PR body saying `Closes #12` makes\nGitHub close the issue at merge, before anything relabels it, leaving `status: in review` on a\nticket that reads as done. Forward-only movement is the right answer about its state and the reason\nnothing was ever fixed. `sync` now reports that separately and puts the label right:\n\n```text\nISSUE        CURRENT          SHOULD BE        WHY\n#12          Done             relabel          labelled \"status: in review\", but the issue is Done\n```\n\nThe repair only ever rewrites labels — it never opens or closes an issue, so it cannot move a\nticket by accident. An issue closed as *not planned* is off the ladder and left alone, and one\ncarrying **no** ladder label is never backfilled: it never entered the ladder, and labelling it\nwould invent history it does not have. On a tracker that owns its own states there is only one copy\nand nothing to repair, so this costs a YouTrack project nothing.\n\nIt matches PRs to issues through the **branch name and PR title**, and landed work through the\n**commit subject**, which is where a `type(scope): description (ABC-1)` convention puts the ID. The\ncommits it reads are those on `delivery.base` (falling back to `branch.base`) — preferring the\n`upstream` then `origin` copy of that branch over the local one, because a local branch can be\nstale, or hold commits nobody has pushed, and neither of those has landed. Merge commits are\nskipped: GitHub titles its own `Merge pull request #38 from …`, and that number is a pull request's,\nnot an issue's. This scan is local, costs no API call, and is always on.\n\n`--deep` is the other half and reaches somewhere different: it reads the commit subjects of each PR\nwhose **branch and title** named nothing, which finds an unmerged PR on a freehand branch. That\ncosts one extra API call per PR. What it does not reach is a commit belonging to no PR — no amount\nof PR scanning can see one — which is what the base-branch scan is for.\n\nCoverage is bounded by the convention, not the tool: work that names no issue in a branch, a title\nor a commit subject is invisible to it. If a run reports far fewer issues than you expect, that is\nthe finding. The branch naming has drifted, and the commit hook is what pulls it back.\n\nRequires the [GitHub CLI](https://cli.github.com), authenticated. The repo is taken from\n`repos[].github` when set, otherwise from the `upstream` then `origin` remote. Set it explicitly\nwhen branches live on a fork but PRs are opened against the parent.\n\n## Joining a codebase that already exists\n\nMost projects are not greenfield. There are years of decisions in them, some written down, and some\nof those no longer true — and the expensive failure is a session confidently reimplementing\nsomething that is already there.\n\n```bash\nnode _dev-workflow/scripts/dev.mjs assess     # greenfield or brownfield, with every signal shown\n```\n\nWhat makes a project brownfield is that **there is already something here** — code, or\ndocumentation describing it. So the source files, their size and the documentation decide it, and\nthe history only corroborates. That order is the whole rule: `git init` on a codebase somebody has\nbuilt for years gives one commit, one author and an age of zero, and a verdict that counted those\nwould call four hundred source files greenfield. History is evidence of activity, never of code.\n\nIt proposes and never decides; you confirm, and the answer is recorded as `stage`.\n\nOn a brownfield project, `/dev-ingest-docs` then reads the existing documentation into something a\nlater session can trust. The unit is a **claim**, not a document, and every claim carries its\nevidence:\n\n- **`observable`** — checkable against the tree, and **required to carry an anchor** (`file:line`,\n  or the command that shows it). Two of these disagreeing is a contradiction you can locate.\n- **`intent`** — why something is the way it is. No amount of reading settles a disagreement between\n  two of these, so those are the questions that get put to you.\n\nThat split is what keeps arbitration small enough to survive: the tool asks about what evidence\ngenuinely cannot settle, and nothing else. It runs **in steps across sessions** — every claim,\nquestion and answer is persisted, so a survey can be picked up next week, and a colleague who pulls\ngets the decisions and not just the map.\n\nIt writes to `_dev-workflow/artifacts/documentation/` and nowhere else. Reorganising your own docs\nis a proposal it hands you, not an edit it makes.\n\nOn a **greenfield** project there is nothing to read, so `/dev-docs-init` points the same machinery\nthe other way: it scaffolds `architecture`, `domain`, `operations`, `testing` and `security`, and\nfills them from the same ledger, one claim at a time. Ingest turns documents into claims; this turns\nclaims into documents.\n\nThe renderer takes claims and nothing else — there is no parameter a paragraph could be passed\nthrough — so a sentence nobody can check is not discouraged, it is unrepresentable. On a two-week-old\nproject most of what you record will be `intent`, attributed to whoever said it, and that is the\ncorrect output: six months later a reader can tell which sentences were ever checkable and which\nwere one person's belief on a Tuesday. `dev.mjs docs check` is the CI gate once they are real.\n\n[Documentation set reference →](docs/documentation.md)\n\n## Measuring what actually happened\n\nNothing in a workflow like this remembers. A ticket takes three days or three weeks, gets restarted\ntwice, closes with its criteria met on the first pass or the fourth — and none of it survives the\nsession that did the work.\n\nSo every transition to **start**, **done** or **abandon** appends one JSON line to\n`.dev-workflow.metrics.jsonl`, beside your config:\n\n```json\n{\"at\":\"2026-08-29T16:20:11.412Z\",\"event\":\"done\",\"id\":\"#28\",\"state\":\"Done\",\"provider\":\"github\",\"elapsedMs\":198011412,\"starts\":2,\"criteria\":\"first-pass\"}\n```\n\nIt is **local**: no network, no telemetry, nothing sent anywhere, and it holds no secret.\n`\"metrics\": false` turns it off. Abandoned tickets are recorded like finished ones, because a log\nthat counts only successes answers a question nobody asked, and `starts` is named after what it can\nactually see — restarts, not test runs.\n\nTwo properties are deliberate. It hangs off **one wrapper** around `setState`, so every command that\nmoves a ticket is instrumented and none of them knows the log exists. And it can never fail a\ncommand: an unwritable or half-written log produces a line on stderr and the ticket still moves.\n\n[Format and fields](docs/configuration.md#metrics--the-transition-log) &middot;\n**Add it to your `.gitignore`** — every developer appends to it, so a shared copy conflicts on every\nmerge. The workflow says so the first time it writes the file rather than editing your `.gitignore`.\n\n---\n\nChanging this repo? See [CONTRIBUTING.md](CONTRIBUTING.md) for how to verify a write path, and\n`CLAUDE.md` for the architecture.\n","readmeFilename":"README.md"}