{"_id":"spovishun-skills","_rev":"40-b62b737cd5b610023b5d30de89e59054","name":"spovishun-skills","dist-tags":{"latest":"1.31.0"},"versions":{"1.0.0":{"name":"spovishun-skills","version":"1.0.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.0.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"e746a7a072f5d700622d2e15cd6bda8863483d0a","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.0.0.tgz","fileCount":146,"integrity":"sha512-e3zIykempDMIEFrVcuA/n1W88F2TaefbWRKTMkdJklwStIe4w00CMquPMHyA+WbUBk+jkDXFfAYKHo3niEyTwA==","signatures":[{"sig":"MEUCIQCSSaPoLmruCzVDD3QcOYSaec3zz9gIYTNs7K24hN8FAAIgFDC6aptHvTKdqxR1EHMIFoYgQKQiloVQAlaju8KjYP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":346873},"type":"module","engines":{"node":">=18"},"gitHead":"e40800a618f8b4565da4a9101e46c6f3671ff7a5","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.0.0_1779734278641_0.24386858344785","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"spovishun-skills","version":"1.1.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.1.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"401f11eda615cfde73440cb7d10442aed2fa5024","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.1.0.tgz","fileCount":146,"integrity":"sha512-b8osgalowzRcBduh0yAt1FjSpXcmZ4wo8RPGq9Fn7noShpT5wM9YDgMpIrhkA6DF4snMg20KhQ90zUNOd4mIjw==","signatures":[{"sig":"MEYCIQCNDggWDZmfJjsz/pwBTPBF2/9b44I9vICpq37FQiq2iQIhAKcPF4SHmbtXQ20CZa7tRG2YGIFWoIuN2r/s8pjpe4S9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352640},"type":"module","engines":{"node":">=18"},"gitHead":"27fd28cee25fe92ea0ce358d06afd6f727429138","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.1.0_1779818636442_0.9184742543156508","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"spovishun-skills","version":"1.2.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.2.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"39d59d737636a5e378346fad19947147ead5c4fd","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.2.0.tgz","fileCount":166,"integrity":"sha512-WqvE7nkj49YXOTWxQKK8+H4ZNJQzehkdNW3TxUMigbNwl8dd4wkkfLeINQHVIBCf2NMiRZhATx6ft8GJW8tluw==","signatures":[{"sig":"MEUCIDWuZr+ACcm45JeeioozppssgDH3Mggti/U5dKzScUAGAiEAsWEpq8coAtQxFzPhusrqWRHD8hUXJQnz4BDzUHzm0I8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":406142},"type":"module","engines":{"node":">=18"},"gitHead":"71f4f511665e6b5d0482085d458b0b52630d4033","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.2.0_1780426027624_0.5145883583294273","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"spovishun-skills","version":"1.2.1","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.2.1","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"8df062af7514b074be8d9a7c31303d5962583c68","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.2.1.tgz","fileCount":167,"integrity":"sha512-mODwmxLwuetym0M0kV2bHh7j56tn1GL0iEsS3yrhRviImRXC1X4BsZa1MLvLaVNS9yeVA5tBSbVko6Qr6iKEiw==","signatures":[{"sig":"MEUCICZIQjImkIjW+y5HFKJsbZM2jeE+lbuX6dv7x5FAQ6guAiEAj/Wju+eR42/yJrD9IdYr+Cw14ge960Z7zIT+qK1HNOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":412932},"type":"module","engines":{"node":">=18"},"gitHead":"feaba1186331ee856ca8befafdf69400c8db2d8d","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.2.1_1780509549039_0.35175770591005007","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"spovishun-skills","version":"1.2.2","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.2.2","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"3ed99695789f1522c7c5a01c2bee6b7010c360f0","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.2.2.tgz","fileCount":187,"integrity":"sha512-5EJr2cYxd7JaMPD3mZdW5LOCInVzicX9JY0jFpfxivkPSJOamg9283cHitGFHtGAMsJ+UJAo8B+qb9E0u1jrpA==","signatures":[{"sig":"MEQCIDLAQFWF9UTdKoqtoZJoVrg3FsBG3C9vKOY9XJuMT0TwAiAI10vcTHqExstdF1re2Vn9xFGAYg0xnrS/pw/fMWtqXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":464120},"type":"module","engines":{"node":">=18"},"gitHead":"f4cfea64a39ac65571195c83a4ed1adbb5f60891","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.2.2_1780595360977_0.15167565179727194","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"spovishun-skills","version":"1.2.3","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.2.3","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"e37c0a6b9ace9de2a643199f0e63538320f491c3","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.2.3.tgz","fileCount":187,"integrity":"sha512-VWPMgjswRHJEH/POCYCYbkUTJdnU6RnoHwpisrcCC3GZhCFCgKOYAlkOYPYAXWou0AoeIDxPBFA5Pj6/huMqNg==","signatures":[{"sig":"MEUCIQDcfdWP3QdLo1n93O1x8SRX9rjW8qW2DP1O5tQHma89ngIgBBli/dG6rRvcMe6R2Jz1RFLFj4hRUdPzpQ972QsC/4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":467468},"type":"module","engines":{"node":">=18"},"gitHead":"4a2723a8c9ae22e4d650fa6721f8fe72e0693537","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.2.3_1780683956871_0.7671707913374155","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"spovishun-skills","version":"1.3.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.3.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"eb60935d82afab66b4e71a8a5306818e518cac64","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.3.0.tgz","fileCount":188,"integrity":"sha512-bAxn4rX6b/xRJb5y4+ajDq0gF+VTWcAs37b6lPng/XbWI3b8BZPkZD1zy0dsvPUUPFi8AKtWUz3NgcpC4bfbkA==","signatures":[{"sig":"MEYCIQC0Hj3xT6kP2Y7ZqVhf3+5/dcEoNFb1ISUnEFNTU5a+ZAIhAO1RUZCPYMYLUEhZGvRcfYpqkxkBh49wGe3CGE37xd/j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":470656},"type":"module","engines":{"node":">=18"},"gitHead":"253836789cacd5c88866c06d21da17d76bfe329d","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.3.0_1780727777807_0.5685914581367333","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"spovishun-skills","version":"1.4.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.4.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"2a86a356f7c5014be3c1281f71b317ea1394f403","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.4.0.tgz","fileCount":192,"integrity":"sha512-4ZNO62jqCdGbGkbGTOX4YuWgf+US0FvZyVMog0GG9H8uHob7g4NCwrzLiuOijE3CuxG7yjc/drBEDMvvqn/Q1Q==","signatures":[{"sig":"MEQCID46YdIs3UZDNJ17DDE3KCTZ7432EmiV0EfxsgQzifLRAiASHMzqUXMz7gbzm9lE7JWdW5a9O8aKhwUQR7eTY4Ma/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":570463},"type":"module","engines":{"node":">=18"},"gitHead":"5e7f0bc8ed4d7ffd9b28dc94bfc1d22185de251a","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.4.0_1780738645830_0.3630492105536667","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"spovishun-skills","version":"1.5.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.5.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"effad0517f226d64d58daa3309f60f0ec224ef94","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.5.0.tgz","fileCount":193,"integrity":"sha512-X73tm9qr4+JJx2+7IkMHlLHy1o3CynJQj0iiPpGNo4i480NgqAKbd2QdOgYEA5GjdYk7TYez3vzaxO4dDFRYbQ==","signatures":[{"sig":"MEYCIQCVyuObNWK4m/DyAEuh60CD+ve61vyTGIIG+ZHkVPyQaAIhAIkcLvft387qToSNeXEP15GhVUhwuTYkIWhtjYw3I+nW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":584304},"type":"module","engines":{"node":">=18"},"gitHead":"d707a3b7c4c90a25ed403c80dbdcb7e61fde286d","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.5.0_1780827632498_0.21613809560846775","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"spovishun-skills","version":"1.6.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.6.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"eed5e9e5f7a805b97abe93bd5c7cf4952f093309","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.6.0.tgz","fileCount":203,"integrity":"sha512-hohCmY9KOSdvx2aqNVWuPlcTYXB2LPirCH56Jy+XOZQeqURjnJopuH6H2oIJ5lbLkzdYtCtXeLcdxHCmi44WGg==","signatures":[{"sig":"MEYCIQC4eCBHXld8owB+QpZCbst3egjHfy+bBG33rkSOTRIzGgIhANOFE6Rd1NeSqijjTvrgr+gRL6I1NwVaww8PqpNm00x7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":586948},"type":"module","engines":{"node":">=18"},"gitHead":"f0755c79f1515b92d8a1c5695e24b21a6812474d","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.6.0_1781029572681_0.8694495942808853","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"spovishun-skills","version":"1.7.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.7.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"3b014ba505674cd0d481963205a0d6f9e4d30b78","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.7.0.tgz","fileCount":203,"integrity":"sha512-JrxSnxSvv0/D0avtquXdkB3udVR5a3Vyn45LKDEacvhnZI3R1nCoLR97uls1dIgB9HJC9raMFo4m7M0jWgoUVw==","signatures":[{"sig":"MEUCIHsnP7DqLNXDHtrDnXBmRIp3yk+bBzugzwQbFMFv+1T8AiEArBz0LwCBH4JdC3q/vkctQu0+KEwtzUihALuc5sVWzJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":589406},"type":"module","engines":{"node":">=18"},"gitHead":"b0767422464190a7af5b3f26ac0ddb29b8c96d9d","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.7.0_1781114868850_0.2596522324157451","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"spovishun-skills","version":"1.8.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.8.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"dabb79b47cd3842beb4c66385c2f270360f7bcf7","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.8.0.tgz","fileCount":205,"integrity":"sha512-Ozgf2dtgVo1BvoPormhVBe3S0tSXNZE7shtAunEHiisbPLu2zpR4wWy7QJWEkW4OHnA2CyE8EH4fStpOeaCBqg==","signatures":[{"sig":"MEUCIQCtInHxbrgOYES1dCgRNNgHnr+E54EkgM/kWqtRg//BVAIgBkfCK5xEkttfUMJl2rSsLWZfo9ACJX8aXcuiNWEUOIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":611235},"type":"module","engines":{"node":">=18"},"gitHead":"e0d4da50a59b2c831316165a3a54ccd954777600","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.8.0_1781199400540_0.41967398794560573","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"spovishun-skills","version":"1.8.1","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.8.1","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"69f6a9e3a6508e2479a66b898b34b5942d562579","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.8.1.tgz","fileCount":205,"integrity":"sha512-Z3ckqK/heLxSjVrL7ylCvGq4oASr631EgQccrN1q+UeC4d6mFIP+H9D+7H/06EXSFpimivL6uOdmhAnkVo0yDA==","signatures":[{"sig":"MEUCIQDTBHif4L77xQzlaFRv0ZzL0fNgGPuq5VsB9l8VWljZkgIgHhmBRsKTkPmnV3CPp4XygsuUciLRhtF4lhqRNsXSGXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":613030},"type":"module","engines":{"node":">=18"},"gitHead":"760e59f1b6589fc3eca9b071601c754af42cf3ff","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.8.1_1781332227087_0.6283989473735128","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"spovishun-skills","version":"1.9.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.9.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"5f30511b667e09f2ee6bb864d0c9a8c079ea7a7a","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.9.0.tgz","fileCount":206,"integrity":"sha512-bzTen5lfw3PMpyDyuKW3P5kJLl+dqc2W4o6ApazMsvXvvIjoyHEKo5HZ21LnyQ2mVTmnO8oa8rvvljw1yL8Q6Q==","signatures":[{"sig":"MEQCIBlla/tInXf4rztKrzK8nE7GbAT+FhS5SXIIHsiEIzjBAiBaB92jnARyy/EXCYfWjegUWsCa2tHtDYe/pZ+M0zB7QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":629504},"type":"module","engines":{"node":">=18"},"gitHead":"67e2f5ab93ba6f3030c2b9263a3952035e79c1b1","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.9.0_1781715980504_0.061633099406499525","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"spovishun-skills","version":"1.9.1","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.9.1","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"b3f2963c45c467baad023595fae0502f00c06c86","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.9.1.tgz","fileCount":206,"integrity":"sha512-4P4uzmXMGctdMwYDF+2AlZ6lIeA7FmOaaAcKuaoZs2esaMYkT1WqWln+LKAo1OdlgX6WLhhVOcG+tZbsnOeLdQ==","signatures":[{"sig":"MEUCIQD1DoMw8bnJZiKok7LQoXGH0jUyHPam5D641+lFOjN92gIgbMRiKMwfMHV/xXJBurXLJHMsM3+LTA/Sv5Q6fsEEkB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":630551},"type":"module","engines":{"node":">=18"},"gitHead":"2c3c03eaa9396783f0e28c89b0a8d334fb7f25e1","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.9.1_1781798570049_0.7564187811736507","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"spovishun-skills","version":"1.10.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.10.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"395a55ee0d574697f0140cd8dbc4754ac0da5e52","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.10.0.tgz","fileCount":206,"integrity":"sha512-TNwtp7s7R2pcMvh9QycRh5mXO16Q7u0bRT5AIr8BENg3+SwfzWHuzBlqZ2viewYGD0cWWX6TdEmQK4ZA+4shVQ==","signatures":[{"sig":"MEUCIQCPspgEMsLvzhxLxQgLTNyjQSiCT4iPspQaTe9dra/DOwIgPq0cNVO8t2luuYuK8voRpyJ4mhcAcGlaDBTNzfLALHU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":635511},"type":"module","engines":{"node":">=18"},"gitHead":"a9fe9f14ca1465536f197e46b8e3dfe499568458","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.10.0_1781800179980_0.15679066105319128","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"spovishun-skills","version":"1.11.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.11.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"9578c4ae329c527e651ad8b3c9a76aa5987e1fd1","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.11.0.tgz","fileCount":208,"integrity":"sha512-U22kmdYiN71w5vwjKCBwjhXETPQ2hdcZaU3jWoq2TLiaAP8GUuhEaZgrIB93NaQAm7HCyfaQgqLcOtzwYfkz1Q==","signatures":[{"sig":"MEYCIQDhTSPqfWUi+8DG2KFO1/t0WlWx9j4BMdDzLZ8fEj7+cgIhAJnl/oEcysqUsOyulwzxPgAuV8bSIB6/Qu44/ZH2cadI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":645809},"type":"module","engines":{"node":">=18"},"gitHead":"c5518b8b92ec4ba838ae935c861990178e1ba9d8","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.11.0_1781887191617_0.17602674060035528","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"spovishun-skills","version":"1.11.1","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.11.1","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"e24b0964387d15f7616f07fa3c5e919bf1502c39","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.11.1.tgz","fileCount":208,"integrity":"sha512-9h91bJ+SAXXAZxOKHgfSlFY12HGPzIIFuSMSvdsEuGfbNCuLS9t1J9CJ+md+jvTSXkwg0PzA4uJhvODqkETOKQ==","signatures":[{"sig":"MEUCIQCu7vDx04yWUmMrT/VHf63EvnB2BRSgBviLAv2onYLtqgIgRgLon1v7zuBpotoiwNVP81AniK2OfD1RVx353D73w50=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":647395},"type":"module","engines":{"node":">=18"},"gitHead":"7c04e3ee3195afb0fd91b0d9e855478ecf47b824","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.11.1_1781935728887_0.6525444407508338","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"spovishun-skills","version":"1.12.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.12.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"bdab02bf0aa653e5ce0af262705d65a16eb9522e","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.12.0.tgz","fileCount":208,"integrity":"sha512-4AW75I+iNpk5FnnnGViLkhVA4MB9uUUKR9jfeo9br6OnNitTndMsXmihTBFboUjc1qcjxZ5hfZtWUDkUTvQOmw==","signatures":[{"sig":"MEQCIGbkh3gA3nRBAbZBohMN5sFCiQ2wzax5XqVdTbppq//1AiAITGV2N3sQD6IRDz23UERHNlXpC7Afn/xxYBRAc/Da9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":649912},"type":"module","engines":{"node":">=18"},"gitHead":"b264ecb05139d148c8c020c2dc1e683e6dfbb9e5","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.12.0_1782024549062_0.06618711927442278","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"spovishun-skills","version":"1.12.1","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.12.1","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"2122ff5b2c59a75aa9f02b1f7d90c289f1d8a5e2","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.12.1.tgz","fileCount":208,"integrity":"sha512-YDfJ/tIEZIoyZ99pWHLXILSrrXGLdPNMz9Qig7DCQEFNwzHy0f1q2gbzErR3PsBqxfKxzQQqEWGHbTUCKr2cPg==","signatures":[{"sig":"MEUCIAOuSMYWp1nkWmy2QgDcZ8hhHfzYNnhoGtSH/fqmhg1HAiEAykApul9DJzeTeuyBKu82cZ6CwHbymyWxigUxkY8Sa2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":655572},"type":"module","engines":{"node":">=18"},"gitHead":"9ff571c2d90c83d3a01b4cd710529558d0f8e309","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.12.1_1784652741411_0.04484723924605638","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"spovishun-skills","version":"1.13.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.13.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"97fcba4dc4cc7f8f63ea444d598c503e0dc30fc3","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.13.0.tgz","fileCount":210,"integrity":"sha512-y8PsZuymu99gD30G15/mPWsxbJOgKSXMFJW5mPhjzIr30S9EYoM/bMyATChAHFZ9KiKq5xKmCxVVON/8PAhq0w==","signatures":[{"sig":"MEUCIQDmrGthebZOseP6ilinJlJZVsQjKgEEramBEBD4crRcUAIgVP6+aGoUHtV+NXIkMbxrFsVuRGGlYJtCsAn8m38XzQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":665758},"type":"module","engines":{"node":">=18"},"gitHead":"643517a07c608af94e5e25729db4e8fd4725b114","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.13.0_1784825923632_0.9361025871751858","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"spovishun-skills","version":"1.14.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.14.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"6fa62a5f375d9c4330c6e33ff7a61154bb8df8d3","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.14.0.tgz","fileCount":220,"integrity":"sha512-x3tWVS1b7xmDZwCpSiq8WAIcM8MzhsApQTyUSpV9uBJew+f5X/zeg3BwBcxmf2QsU4eIYWYQzLYQlvPIsL3Bug==","signatures":[{"sig":"MEUCIDtUdht6OQZwSCZZ9SCXnZIPzfd7SDG6kkyrC6LOQ/utAiEA4RWp3FxrgSrCmbkwKOYNu87Rh8dFhqMs5242jwZi00I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":720444},"type":"module","engines":{"node":">=18"},"gitHead":"26e6a9edcde99a408eff0420d02872a70c896068","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.14.0_1785006267845_0.8846620954001099","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"spovishun-skills","version":"1.15.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.15.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"3919ce2055d18e423a307b3a9d2929f4babf91cb","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.15.0.tgz","fileCount":224,"integrity":"sha512-GSADlkNVuddZwnvJGjhbpb4jFxiocofMVcLPmNKOMhat9OqE5rzORQyCt9vQuXubVzrZFqIgjYHVJTF+Jhy0Ug==","signatures":[{"sig":"MEUCIBrc/KqQS/VPF/b5ABIDtXQpMndIjE2aHiCqTJr2UMtbAiEAhLaqXtoaAh5gFK7vfiwO7lOiMubAhUtCeZE8JwcDKd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":749176},"type":"module","engines":{"node":">=18"},"gitHead":"7cb6e9e0f0d13cc53cad2938e59666422e038608","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.15.0_1785049758424_0.36077926945774275","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"spovishun-skills","version":"1.16.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.16.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"a1a677fa88514fbafb7703870b143615201619f0","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.16.0.tgz","fileCount":225,"integrity":"sha512-JST+TNf9cpqawatIAXEsDUEGV/tukOjohpLZjrq2ydpA37x720ouiaua2hxUmRUPCyH4Po1+Jm/QfUlHi7U40Q==","signatures":[{"sig":"MEQCIEftXdGmrnubM0hLLUk68ijZDmouTHi7CjluTNEh6vB9AiAsGzFvR82ct9jmRknJXfwmIjnquFDtHCuf9GarcrnlHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":753799},"type":"module","engines":{"node":">=18"},"gitHead":"8e7becf0edb98e8afeeefab74459f461c93ec3ae","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.16.0_1785172036186_0.24813940587861927","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"spovishun-skills","version":"1.17.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.17.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"6616f96eb0046fcd5283347d59ac8c5cbebf470d","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.17.0.tgz","fileCount":225,"integrity":"sha512-TRw935/a2s9XsuKAuAVt1JLsTq9BMBcnI7YlxoVXBQLZzSW5v7WuHVHbk6YzOdOpVGuGSBVQhIx6z78JQ7/zTQ==","signatures":[{"sig":"MEUCIQCl2qRIOl9GEXMsIZW/Je37EjDbFyPUvpvl9qHFNZBwCQIgCJcvb9Ui4bVBgLBbuk7WxoNrFBbm1TwC8ZIFei7dcYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":765780},"type":"module","engines":{"node":">=18"},"gitHead":"dc20ce32ead2883e49226947a33cffb7f31dd3e4","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.17.0_1785255429772_0.4659011445250114","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"spovishun-skills","version":"1.18.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.18.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"60ffbc738dfa198025b50fe4e3b7ab6c50bde6ff","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.18.0.tgz","fileCount":248,"integrity":"sha512-GMUueiMUNep6+hVsXXXLJhpHZ5uZry2mWDMxAMicdSwY2XVX1VCtYyyhOAEAcm1Fpe8vMqhR2Fp08Zyf91DeGQ==","signatures":[{"sig":"MEYCIQCj8V9j6I4Io/K76KZR4M7RYKqcJ2D+4swUtBzrVeEVzwIhAPQSPrGPRT3wapyxVEts92PngT3fRf+B+u3reBNzRrMB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":912637},"type":"module","engines":{"node":">=18"},"gitHead":"350b225b3726f29df5519d7855a81cc0b3d0c5cb","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","mustache":"^4.2.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.18.0_1785346433022_0.2580564848095903","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"spovishun-skills","version":"1.19.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.19.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"85cca8a0fbfb0d123a4906e3f9144b1e7614630b","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.19.0.tgz","fileCount":251,"integrity":"sha512-JFUlXZ67NN1W5ml+z1CzB5zkqeVfTw1zwY3Ju+OfBEYdjq+cz++vqAdxx2UcAed04vCc7C+Ump044LGjCtw6Uw==","signatures":[{"sig":"MEUCID4iHfoWk0XCv8EYTPDMwrjNiSIAgJfyEvCB3Ulr9iBvAiEAjAzyYjbnXZennhrH/zWBWr4hS7BoLGNAxNalI40W5Uo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":941923},"type":"module","engines":{"node":">=18"},"gitHead":"f6e7316548e077fdf73cef0f6e427467e5286541","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.19.0_1785605455510_0.13245320982701791","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"spovishun-skills","version":"1.20.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.20.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"c7d5bafba2ff2244260ba9da9b8207be9681bd35","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.20.0.tgz","fileCount":263,"integrity":"sha512-LMbSDyqHcsWHzkO0ULi3ElF6/ezTgotOMoOAnfTQz75UokKrg0tfcV5GkeyFgJOz3NH+ltfPkx/uUjNUKj4w4A==","signatures":[{"sig":"MEYCIQDGFPvsjzJLVByuhB6FB5fb2cAiBwmQihPu5voe8fmOuwIhAKwC+tthD+V1idTjsGfaGxRHucTecK/5BpSN4U0L7+rN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":961351},"type":"module","engines":{"node":">=18"},"gitHead":"9988e7dce78e2d33f40c8a489395b4bc705fc7a0","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.20.0_1785653099454_0.6874119542451804","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"spovishun-skills","version":"1.21.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.21.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"f7a6bff4e318bedf4da2ff8039fd187e96930b10","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.21.0.tgz","fileCount":265,"integrity":"sha512-sEvY9KbEcKYgcO4fVEmvWEdxFhRYynKgLlUj02hjq2BTwK+uupJKooiwA4qHKxcYTD1MFYfEPqcupPkfy7c2/Q==","signatures":[{"sig":"MEUCIQCbPbcNpZzs7WFeMROkiQ3lSX2dpo72uLA3gmlEz0P+iAIgVpFQ3kRgRB5YAV+zTbVxcQARmT9P+hTFH2iGbE/FydQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":984185},"type":"module","engines":{"node":">=18"},"gitHead":"cc472f15c9efd624974557c4930748c2d3a38c25","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.21.0_1785697929213_0.48986502578392654","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"spovishun-skills","version":"1.22.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.22.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"75dc49cb50e9c2580aef702ad68baff364ca4c87","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.22.0.tgz","fileCount":266,"integrity":"sha512-umVXv+nuRT2CqjAkOkO4NGg8GPvkETaeQ+KmvA2gqymML4alN5lEyVhyMaagNEUL8a50VeU9NsPxBu4Wb/6Udw==","signatures":[{"sig":"MEQCIDswv9/2HUzIM6jxxjvfqWdpoqn4GybpU65oiHWc0AgnAiBDcDH5gYomaw27i+qi9FRFPhZSGb2Q7zPfB6opzKQXzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1000297},"type":"module","engines":{"node":">=18"},"gitHead":"c1035b8f581409e8c5c8bafb3d3ba0069533090e","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.22.0_1786172474338_0.822161470806626","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"spovishun-skills","version":"1.23.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.23.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"f6054e4dcdf5a999998cc8ab20a103df41d515b8","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.23.0.tgz","fileCount":268,"integrity":"sha512-UWKvun7ekqnYrEiXVrmCrQS0wI55VBixYGlWAAewsm3x7F62mqyhPYFX3JiubaAotUONHkFSBZ074+aLk+0EyQ==","signatures":[{"sig":"MEUCIQDTmfThrNS7NzM4YR0to39aOGtDLPyz+z5NBVDSzwzXOgIgCk2IK0TrTWCNJ9NqQrX5UFTuiqMhssqRuU7juH/Hq7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1027052},"type":"module","engines":{"node":">=18"},"gitHead":"607bac9908bb348e427819e54413b3be910d018e","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.23.0_1786202578341_0.11837762834437826","host":"s3://npm-registry-packages-npm-production"}},"1.23.1":{"name":"spovishun-skills","version":"1.23.1","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.23.1","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"5f0cc0129ea4a0b48a1e8841e463aeaf912404f7","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.23.1.tgz","fileCount":268,"integrity":"sha512-iyA689VsF8QOvbnSpX1MOCTtKAAOBz7T+FfLFlgN3uUw6tsM/dzJtFHMnFnJjRPbBcEK5ZZP6e0Hq5Vqf84XZQ==","signatures":[{"sig":"MEYCIQC4RR5lLNLvPcMBba8YPEUXQWfdC7egolqwXQoyHFuFFgIhAPXOzL698WxoP6ghNBA3jtSq5GofZlPgpkNv4LTVdQyj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.23.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1031379},"type":"module","engines":{"node":">=18"},"gitHead":"825360c1407b4995a6d389e4098b83e47cb4437c","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.23.1_1786203989706_0.7268581435985011","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"spovishun-skills","version":"1.24.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.24.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"270a403220efffda26ee888a5c405b5a4c5faa51","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.24.0.tgz","fileCount":270,"integrity":"sha512-Ww3o2bRmfqpd1lIE0j+CMIl4FCITqq+nEWs0+gfvmz7Q631yMKPrMsfa3/lI2Z3ox+jYhrP7N/z1C2QsPHfaWg==","signatures":[{"sig":"MEUCIAJcngLz3hnwl9whIZx5WAaFUrZsQVhuHTh/k75YGM3pAiEAgwepDKJpNo5LzAz2f/nPbhkB8r8K0XYBb1EaHuYqAzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1053144},"type":"module","engines":{"node":">=18"},"gitHead":"6903a2fb0b8835b3495c468b078563f229f9e7a7","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.24.0_1787328859064_0.5616848555253444","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"spovishun-skills","version":"1.25.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.25.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"cb5e6ea488311d8d0b6ecf797d4dc5e3ce1cfc05","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.25.0.tgz","fileCount":271,"integrity":"sha512-mr4m0Hx0MANfQMj34GhUIB8RnpnIukFJiwpsKqIiMeaTJOKS9LSR8g056ccVPvz8MapO1mvWpuBnHjLI3kt1ig==","signatures":[{"sig":"MEQCID0Rtsm3sqQxK7PqfL02OTNv7kL0DvbIOUYV/ZiomqT3AiAYC3tVVhPmyBDPt6VwAxhUMEDnh1ycYOVteZCyUeaisQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1068934},"type":"module","engines":{"node":">=18"},"gitHead":"eeca1e5f7dae30422911cb68929d36c842b623ca","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.25.0_1787379163610_0.5772286101493842","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"name":"spovishun-skills","version":"1.26.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.26.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"67435ddc1199d8e851c941e2cc7a86a3de54bdd5","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.26.0.tgz","fileCount":271,"integrity":"sha512-++8XTgfsWmheyLNxqFl05lSL2K+INBjtUgfjaGevOUBltXa5BHAUoeRqusojULDnheZ9wT/z0VFlVlOv1NZ/Ug==","signatures":[{"sig":"MEQCIGAdtQNaAqda8D3i5rMVjexKiho0/3PdJHqa/AtRNtzcAiBLXWl/JngKPOb2HBM7ZAXHp5LBaID2akxVLYop62aS7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1084656},"type":"module","engines":{"node":">=18"},"gitHead":"e9a749aea41a79c888048116faf5e3ce44913c5d","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.26.0_1787380661081_0.0827552585918847","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"spovishun-skills","version":"1.27.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.27.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"493ab4de1d4b404027aee9a87debc1939e9fc81f","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.27.0.tgz","fileCount":272,"integrity":"sha512-lngs8lyPa10o4gzJvfaa2lvKAXwMVAxIyyS1ffe057J6E3RIh8d6KJm6rgs+NoKBJC5K8E9LT5rYLD6f5h5xZA==","signatures":[{"sig":"MEQCIBVvRax9Rn52xKPWxUIalwLjJG8qYehha5JPT8NvU2s/AiATliESgBEYLDYTNWN2ncorUS64eUCtrPWyihX38Pu3QA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1090051},"type":"module","engines":{"node":">=18"},"gitHead":"90a18f0482921f60566351013da60e34d1619a64","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.27.0_1787385843784_0.9590717337989714","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"spovishun-skills","version":"1.28.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.28.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"7ef67dce5579ac2da854b669840eb83a15c88218","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.28.0.tgz","fileCount":272,"integrity":"sha512-edpSWFPzjS80T8M8lRMo7EfiNznAGi3ml9rAu7T76ME0eKnQwBUki/fq1XA/j6JuDqjGjeC8btgCDKQE00Zm/g==","signatures":[{"sig":"MEQCIFOkcqvMhJXpS9Oq66zvCSI84nFET5bVIuYQX4vInjfFAiBuRlVlqxezoObQZade3Ws+NJcz5kWiIZCFhXoG1BQAyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1094661},"type":"module","engines":{"node":">=18"},"gitHead":"ddaa2f82d9a051a6255a57764105995620974737","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.28.0_1787397990316_0.8845796158372599","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"spovishun-skills","version":"1.29.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.29.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"77cbe8d6daf72fbc203ed4b6af385a3bb080903b","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.29.0.tgz","fileCount":272,"integrity":"sha512-fmaUn600BlYvG6B6VAJvqtST2e0UNwgVAWxSVzNV0+q3JcyXngtqTGW+03bcuc06/tqk/EXAVBdDrg/TXC6Gcw==","signatures":[{"sig":"MEQCID8Co3g8k2cB/K9SGjHuayJjzWTYAdI59QpiQvqHtFhPAiAh1RxRUmpOJKgmVI1oTxVtCgix3LRckneTJhF87Y16Kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1100325},"type":"module","engines":{"node":">=18"},"gitHead":"e4024c9969c91b06bb4e553578ef8795f9727fc3","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.29.0_1787422232640_0.6856430832675298","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"spovishun-skills","version":"1.30.0","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"author":{"name":"Danylo Bidnyk"},"license":"MIT","_id":"spovishun-skills@1.30.0","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"homepage":"https://github.com/Astrumon/spovishun-skills#readme","bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"bin":{"spovishun-skills":"bin/spovishun-skills.js"},"dist":{"shasum":"331f0a6cdff1ef6d3be83c1f1dd9e7d5ae249b76","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.30.0.tgz","fileCount":273,"integrity":"sha512-oMhnjWpog+ca/+RGptmne1EiT/jzqIqwSpd5HNvaCaHH5C1d3ZYJNpBNJhouqgRwX2BCsLODgdmJAhmscmTl4g==","signatures":[{"sig":"MEUCIQC9WfmR7Rb655Nmn/eyEwS55huSpbR/DXNbpWrz5oDXcAIgGNB9/8gr7smzPZHiipSEzyJ5hgkdGG+zUZEl2R5NN5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1121047},"type":"module","engines":{"node":">=18"},"gitHead":"40b4e24524aa2779c18c0c42ef57b638da166014","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spovishun-skills_1.30.0_1787846807989_0.19485113538132914","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"_id":"spovishun-skills@1.31.0","bin":{"spovishun-skills":"bin/spovishun-skills.js"},"bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"dist":{"shasum":"04576f1d2db391359fbb7f755715bd0b95d70301","tarball":"https://registry.npmjs.org/spovishun-skills/-/spovishun-skills-1.31.0.tgz","fileCount":275,"integrity":"sha512-DPvGrFOvSj1m0lzcdew1oN79y21843sC0e0eptK6b10O69o16KmDONhoBy4IET3dlW1PNtfnPuVa21Mt5Yr32w==","signatures":[{"sig":"MEMCIFIa9Qx2ri9Wesunt1KMjP3vKm/t0/IspEVbGXMTVhHKAh87Y1oww1AVP676TIq6KmiOzdYbHje26eu2D+zj7x1L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDBnj1p/qRtT3ip62+ec2M+FMLl7IBl86rK94EZJ3y1/AiEAnjfbGEJqu1it/iJXlUevGfus+RIIA7yhoko129P9aXU="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/spovishun-skills@1.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1139882},"name":"spovishun-skills","type":"module","author":{"name":"Danylo Bidnyk"},"engines":{"node":">=18"},"gitHead":"c904ef8980b58067f675c6ff5a873314e41ca00d","license":"MIT","scripts":{"lint":"node --check bin/spovishun-skills.js && node scripts/validate-all-manifests.js && node scripts/check-vendored-marked.js","test":"node --test --test-reporter=spec","check:drift":"node scripts/check-upstream-drift.js"},"version":"1.31.0","_npmUser":{"name":"astrumon","email":"dnlbdnk@gmail.com"},"homepage":"https://github.com/Astrumon/spovishun-skills#readme","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","directories":{},"maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.20.0","marked":"^15.0.12","js-yaml":"^4.1.1","inquirer":"^9.3.8","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spovishun-skills_1.31.0_1789805706971_0.7839315173204724"}}},"time":{"created":"2026-05-25T18:37:58.464Z","modified":"2026-09-19T08:15:07.413Z","1.0.0":"2026-05-25T18:37:58.797Z","1.1.0":"2026-05-26T18:03:56.700Z","1.2.0":"2026-06-02T18:47:07.784Z","1.2.1":"2026-06-03T17:59:09.207Z","1.2.2":"2026-06-04T17:49:21.204Z","1.2.3":"2026-06-05T18:25:57.064Z","1.3.0":"2026-06-06T06:36:17.990Z","1.4.0":"2026-06-06T09:37:26.008Z","1.5.0":"2026-06-07T10:20:32.668Z","1.6.0":"2026-06-09T18:26:12.844Z","1.7.0":"2026-06-10T18:07:49.053Z","1.8.0":"2026-06-11T17:36:40.912Z","1.8.1":"2026-06-13T06:30:27.245Z","1.9.0":"2026-06-17T17:06:20.691Z","1.9.1":"2026-06-18T16:02:50.485Z","1.10.0":"2026-06-18T16:29:40.124Z","1.11.0":"2026-06-19T16:39:51.826Z","1.11.1":"2026-06-20T06:08:49.046Z","1.12.0":"2026-06-21T06:49:09.220Z","1.12.1":"2026-07-21T16:52:21.587Z","1.13.0":"2026-07-23T16:58:43.766Z","1.14.0":"2026-07-25T19:04:28.003Z","1.15.0":"2026-07-26T07:09:18.585Z","1.16.0":"2026-07-27T17:07:16.354Z","1.17.0":"2026-07-28T16:17:09.967Z","1.18.0":"2026-07-29T17:33:53.212Z","1.19.0":"2026-08-01T17:30:55.705Z","1.20.0":"2026-08-02T06:44:59.617Z","1.21.0":"2026-08-02T19:12:09.401Z","1.22.0":"2026-08-08T07:01:14.573Z","1.23.0":"2026-08-08T15:22:58.583Z","1.23.1":"2026-08-08T15:46:29.858Z","1.24.0":"2026-08-21T16:14:19.228Z","1.25.0":"2026-08-22T06:12:43.747Z","1.26.0":"2026-08-22T06:37:41.237Z","1.27.0":"2026-08-22T08:04:03.984Z","1.28.0":"2026-08-22T11:26:30.461Z","1.29.0":"2026-08-22T18:10:32.881Z","1.30.0":"2026-08-27T16:06:48.115Z","1.31.0":"2026-09-19T08:15:07.086Z"},"bugs":{"url":"https://github.com/Astrumon/spovishun-skills/issues"},"author":{"name":"Danylo Bidnyk"},"license":"MIT","homepage":"https://github.com/Astrumon/spovishun-skills#readme","keywords":["claude-code","claude-plugin","skills","agents","hooks","ai-assistant","codex","windsurf","cursor"],"repository":{"url":"git+https://github.com/Astrumon/spovishun-skills.git","type":"git"},"description":"Portable Claude Code skills, agents, hooks and rules — bootstrapped from the Spovishun project. Installs into Claude Code, Codex, Windsurf and Cursor via per-assistant adapters.","maintainers":[{"name":"astrumon","email":"dnlbdnk@gmail.com"}],"readme":"# spovishun-skills\n\n[![npm version](https://img.shields.io/npm/v/spovishun-skills.svg)](https://www.npmjs.com/package/spovishun-skills)\n[![license](https://img.shields.io/npm/l/spovishun-skills.svg)](./LICENSE)\n[![node](https://img.shields.io/node/v/spovishun-skills.svg)](https://nodejs.org)\n\nPortable [Claude Code](https://claude.com/claude-code) skills, agents, hooks and rules — extracted from the [Spovishun](https://github.com/Astrumon/SpovishunTelegramBotV2) project, packaged for reuse in any project.\n\nOne canonical source. Multiple AI assistants. Configurable per project.\n\n## What you get\n\nA single `npx` command installs a curated set of:\n\n- **41 skills** — task decomposition, code review, Notion workflows, Kotlin/Postgres helpers, KMP feature scaffolding, Gradle build audits, etc.\n- **9 agents** — specialized reviewers (architecture, refactor, docs, …)\n- **6 hooks** *(Claude only)* — session start/end, learning capture, Notion task injection\n- **13 rules** — design principles, git workflow, security, testing, Kotlin style, Gradle build practices, plus a Kotlin/Compose Multiplatform set (architecture + MVI, feature structure, navigation, design system, localization, testing)\n\nArtifacts are filtered by your stack flags (kotlin / postgres / telegram / notion / docker / kmp) — you get only what's relevant to your project.\n\n## Supported targets\n\n| Target       | Status | Notes                                                              |\n|--------------|--------|--------------------------------------------------------------------|\n| Claude Code  | ✅     | Native plugin via `.claude-plugin/` + `.claude/`                   |\n| Codex        | ✅     | Single `AGENTS.md` at project root (≤ 32 KiB)                      |\n| Windsurf     | ✅     | One file per skill/rule under `.windsurf/rules/` (≤ 6 000 chars)   |\n| Cursor       | 🚧     | Planned for 1.1                                                    |\n\n## Quickstart\n\n```bash\n# 1. Generate your project config (interactive wizard)\nnpx spovishun-skills@latest init\n\n# 2. Install artifacts for your target AI assistant\nnpx spovishun-skills@latest install --target=claude\n\n# 3. Verify installation integrity\nnpx spovishun-skills@latest doctor\n```\n\nAfter `install`, commit the generated `spovishun-skills.lock.yaml` to lock versions. Re-run `sync` on any machine to reproduce the exact same install.\n\n## Configuration\n\n`init` creates `spovishun-skills.config.yaml` in your project root:\n\n```yaml\nproject:\n  name: \"MyProject\"\n  language: \"uk\"           # uk | en\n\nstack:\n  kotlin: true\n  postgres: false\n  telegram: true\n  notion: true\n  docker: false\n  kmp: false               # Kotlin/Compose Multiplatform; requires kotlin: true\n\ngit:\n  branch_prefix: \"feature/myproject\"\n  main_branch: \"main\"\n  dev_branch: \"develop\"\n\n# Required only if stack.notion: true\nnotion:\n  token_env: \"NOTION_TOKEN\"      # env var name, NOT the token value\n  database_id: \"<32-hex-chars>\"\n  epics_database_id: \"<32-hex-chars>\"\n  # Optional — Notion documentation category page IDs (notion-navigator, doc-updater).\n  # Each id also derives a zone URL https://www.notion.so/<id>.\n  categories:\n    architecture: \"<32-hex-chars>\"\n    database: \"<32-hex-chars>\"\n    testing: \"<32-hex-chars>\"\n    cicd: \"<32-hex-chars>\"\n    features: \"<32-hex-chars>\"\n    aitools: \"<32-hex-chars>\"\n    epics: \"<32-hex-chars>\"\n```\n\nSchema is validated against [`schema/config.schema.json`](./schema/config.schema.json). Edit by hand or re-run `init` to overwrite.\n\n**Gitignore `spovishun-skills.config.yaml`** — it holds your Notion IDs, so it should not be committed (`doctor` checks this). Commit a sanitized `spovishun-skills.config.example.yaml` instead, plus the generated `spovishun-skills.lock.yaml`.\n\n## Bootstrapping a new project's Notion docs\n\nFilling the `notion:` block by hand means copying ~13 page/database IDs out of Notion — tedious and error-prone. Instead, duplicate the **Notion project template** and let `bootstrap-config.js` harvest the IDs for you.\n\nThe template is a single Notion page tree (a row in your Projects DB) holding the full doc skeleton: a `CLAUDE.md` page, a Board (Tasks DB with Status/Stage/Priority, an Epic relation and a Blocked-by self-relation), an Epics DB, and the 7 documentation category DBs — with per-stage board views and placeholder records.\n\n1. **Duplicate** the template page in Notion. Notion remaps every relation and view onto the copy.\n2. **Before renaming anything**, run from your new project's repo root:\n   ```bash\n   node .claude/scripts/notion/bootstrap-config.js <new-page-url> --write\n   ```\n   It walks the copy by its fixed English anchor titles and writes `database_id`, `epics_database_id`, `epics_group_page_id`, `claude_md_page_id`, `root_page_id`, `docs_root_id` and every `categories.*` into `spovishun-skills.config.yaml` (existing comments preserved). Omit `--write` to print the resolved `notion:` block instead (`--format json` for JSON).\n3. Rename the page, fill the placeholders, and delete the `🔧 PLACEHOLDER` seed records.\n4. If a CLI script later returns **404**, share the new project's pages with your Notion integration (duplicates normally inherit access from the Projects DB).\n\n> Run the extractor **before** renaming — it identifies anchors by their English titles, which only survive duplication intact until you edit them.\n\n## Commands\n\n| Command | Purpose |\n|---|---|\n| `init` | Interactive wizard → `spovishun-skills.config.yaml` |\n| `install --target=<t>` | Generate target-specific files + write lockfile |\n| `sync` | Re-apply install from existing config + lockfile (no wizard, no merge) |\n| `update --upstream=<dir>` | Three-way merge against a fresh upstream copy of `spovishun-skills` |\n| `doctor` | Validate installation integrity (config, lockfile, Notion ids, `.gitignore`, `settings.json`) |\n| `validate <skill-dir>` | Validate a single skill's `manifest.yaml` against the JSON schema |\n\nRun `npx spovishun-skills --help` for full options.\n\n### `update` flags\n\n```bash\nnpx spovishun-skills update --upstream=./node_modules/spovishun-skills\n# [--skill <id>]   limit to one artifact\n# [--dry-run]      print planned actions, write nothing\n```\n\n> **Codex limitation:** `update --target=codex` is a no-op (the monolithic `AGENTS.md` doesn't support per-artifact merge). Regenerate with `install --target=codex` instead.\n\n## How stack filtering works\n\nEach artifact's `manifest.yaml` declares which stack flags it needs:\n\n```yaml\nid: postgresql-exposed-orm\ncategory: stack-specific\nrequires:\n  - kotlin\n  - postgres\n```\n\nAn artifact installs **iff all `requires:` flags are `true`** in your `spovishun-skills.config.yaml`. Universal artifacts (no `requires:`) install for everyone.\n\nRules carry no manifest, so their directory name is the gate: `rules/<group>/` installs only when `<group>` is an active stack flag (`kotlin/`, `kmp/`). `rules/common/` always installs. Turning a flag off removes the rules of that group on the next `install` / `sync` — except any you edited yourself, which are left in place with a warning.\n\n## Reproducible installs (lockfile)\n\nAfter `install`, `spovishun-skills.lock.yaml` is written to your project root. It pins exact versions + checksums of every installed artifact — skills, agents, templates and rules. **Commit this file** — `sync`, `update` and `doctor` all rely on it.\n\n```yaml\ngeneratedAt: \"2026-05-25T17:00:00Z\"\npluginVersion: 1.16.0\ntarget: claude\nartifacts:\n  - kind: skill\n    id: code-reviewer\n    version: 1.2.0\n    checksum: \"sha256:…\"\n  - kind: rule\n    id: common/git-workflow\n    version: 0.0.0        # rules are unversioned data — the checksum is the identity\n    checksum: \"sha256:…\"\n```\n\n`doctor` fails if a locked file is missing from disk and annotates any that drifted from its checksum — local edits are a supported workflow, not an error.\n\n## Placeholders\n\nCanonical artifact bodies use Mustache-style `{{KEY}}` placeholders for project-specific values (project name, language, Notion DB ids, etc.). Keys must be `UPPER_SNAKE_CASE`. Resolved at install time from your config.\n\nTokens that don't match the pattern (e.g. GitHub Actions `${{ runner.os }}`) are preserved verbatim.\n\n## Requirements\n\n- Node.js ≥ 18\n- For Notion-tagged artifacts: a `NOTION_TOKEN` env var (or whatever name you set in `notion.token_env`)\n\n## Project structure (after install into a Claude project)\n\n```\nyour-project/\n├── .claude-plugin/                  ← native plugin entry\n├── .claude/\n│   ├── skills/\n│   ├── agents/\n│   ├── hooks/\n│   ├── rules/\n│   └── settings.json\n├── spovishun-skills.config.yaml     ← editable; gitignore it (holds Notion IDs)\n└── spovishun-skills.lock.yaml       ← generated, commit it\n```\n\nFor Codex: a single `AGENTS.md` at project root. For Windsurf: `.windsurf/rules/*.md`.\n\n## Contributing\n\nPRs welcome. See [`CLAUDE.md`](./CLAUDE.md) for architecture, layer rules, manifest schema, and commit convention.\n\nBranch: `feature/<short-slug>` · Commits: Conventional Commits (`feat:`, `fix:`, `refactor:`, …).\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md).\n\n## License\n\n[MIT](./LICENSE) © Danylo Bidnyk\n\nSome skills are adapted from other MIT-licensed projects. [NOTICE.md](./NOTICE.md) records what was\nderived from where, pinned to the exact upstream revision; `npm run check:drift` reports whether any\nof those upstream files have moved since.\n","readmeFilename":"README.md"}