{"_id":"claude-code-lint","_rev":"23-22481e7d423deb1c5168a97405f0f8af","name":"claude-code-lint","dist-tags":{"beta":"0.2.0-beta.3","latest":"0.9.0"},"versions":{"0.2.0-beta.0":{"name":"claude-code-lint","version":"0.2.0-beta.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.0-beta.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://github.com/pdugan20/claudelint#readme","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claude-code-lint":"bin/claudelint"},"dist":{"shasum":"801d890bd35557ec36a913039e9159790e8b9978","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.0-beta.0.tgz","fileCount":769,"integrity":"sha512-dvf17yf7+c+d5atJRD2yJwM7HK+SCkAZzqZfxUnzM50krMv3/XHeWmYxkt1k18moKWhTC5vweGAWtb27gLR22Q==","signatures":[{"sig":"MEUCIG7wmk7GvwOEvg9WRfVhmUuyq/EKLbpyIGxHWmDPlLbUAiEAs4iiPYW6obY87d6RGEIO7XXqhzbAdr2l+ZjS06NtUrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1342650},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"aba902626add2cbe38dd24a4b20e17af0262d1f4","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules","prepare":"husky install || true","release":"release-it","lint:fix":"eslint src --ext .ts --fix","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"node bin/claudelint check-all","check:all":"ts-node scripts/check/all.ts","release:rc":"release-it --preRelease=rc","test:watch":"jest --watch","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --fix","postinstall":"bash scripts/util/setup-hooks.sh || true","release:dry":"release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","format:check":"prettier --check \"src/**/*.ts\"","migrate:name":"ts-node scripts/migrate-package-name.ts","release:beta":"release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm run lint && npm run format:check && npm run lint:md && npm run check:emojis && npm run build && npm test","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"release-it --preRelease=alpha","release:major":"release-it major","release:minor":"release-it minor","release:patch":"release-it patch","sync:versions":"ts-node scripts/sync-versions.ts","check:deadcode":"knip","check:rule-ids":"ts-node scripts/check/rule-ids.ts","generate:types":"ts-node scripts/generate/rule-types.ts","prepublishOnly":"npm run build","audit:rule-docs":"ts-node scripts/audit/rule-docs.ts","check:rule-docs":"ts-node scripts/check/rule-docs.ts","test:validators":"jest tests/validators --coverage","check:duplicates":"ts-node scripts/check/duplicate-logic.ts","migrate:name:dry":"ts-node scripts/migrate-package-name.ts --dry-run","check:consistency":"ts-node scripts/check/consistency.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:logger-spacing":"bash scripts/check/logger-spacing.sh","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","verify:rule-structure":"ts-node scripts/verify/rule-structure.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","generate:rule-registry":"ts-node scripts/generate/rule-registry.ts","audit:rule-docs:content":"ts-node scripts/audit/rule-docs-content.ts","check:duplicate-fixtures":"ts-node scripts/check/duplicate-fixtures.ts","check:deadcode:production":"knip --production","verify:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"patdugan","email":"dugan.pat@gmail.com"},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.3.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix"],"src/**/*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"23.7.0","dependencies":{"ora":"^6.3.1","zod":"^3.22.4","diff":"^5.2.2","glob":"^10.3.10","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","prettier":"^3.1.1","commander":"^12.0.0","minimatch":"^9.0.5","markdownlint":"^0.35.0","@types/inquirer":"^9.0.7","zod-validation-error":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","knip":"^5.82.1","husky":"^9.1.7","eslint":"^8.56.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","release-it":"^19.2.4","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/jest":"^29.5.11","@types/node":"^20.10.6","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.3.1","markdownlint-cli":"^0.47.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.17.0","@commitlint/config-conventional":"^20.3.1","@typescript-eslint/eslint-plugin":"^6.17.0","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.0-beta.0_1769846426073_0.740718575965704","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.1":{"name":"claude-code-lint","version":"0.2.0-beta.1","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.0-beta.1","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://github.com/pdugan20/claude-code-lint#readme","bugs":{"url":"https://github.com/pdugan20/claude-code-lint/issues"},"bin":{"claude-code-lint":"bin/claude-code-lint"},"dist":{"shasum":"552832dbe6ac3d987652ba9019300a8c69ea1344","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.0-beta.1.tgz","fileCount":853,"integrity":"sha512-iq6JM6g4HHYMLXrzrLiwMhICli8SjVCzERgABVPt6ORSce1kCr8mLkk8KCBDuit/WuJm0dhmIu6wEpciV1HWYg==","signatures":[{"sig":"MEUCIQDYlXTxLp4Gw+FKsHg9w1nbHAqcm9OCXdQ2+b2ZlBctnwIgAv2JsGFxj0dafkWX2h8m1rgo05QTNlh6HiJzg81I7Cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1592644},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bb42155a1d113b676fa7f6d71e89baefaf6fff7a","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules","prepare":"husky install || true","release":"release-it","lint:fix":"eslint src --ext .ts --fix","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"node bin/claude-code-lint check-all","check:all":"ts-node scripts/check/all.ts","release:rc":"release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check-links.js","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --fix","postinstall":"bash scripts/util/setup-hooks.sh || true","release:dry":"release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","format:check":"prettier --check \"src/**/*.ts\"","migrate:name":"ts-node scripts/migrate-package-name.ts","release:beta":"release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm run lint && npm run format:check && npm run lint:md && npm run check:emojis && npm run build && npm test","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"release-it --preRelease=alpha","release:major":"release-it major","release:minor":"release-it minor","release:patch":"release-it patch","sync:versions":"ts-node scripts/sync-versions.ts","check:deadcode":"knip","check:rule-ids":"ts-node scripts/check/rule-ids.ts","generate:types":"ts-node scripts/generate/rule-types.ts","prepublishOnly":"npm run build","audit:rule-docs":"ts-node scripts/audit/rule-docs.ts","check:links:all":"remark --use remark-validate-links --frail docs/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","test:validators":"jest tests/validators --coverage","check:duplicates":"ts-node scripts/check/duplicate-logic.ts","migrate:name:dry":"ts-node scripts/migrate-package-name.ts --dry-run","check:consistency":"ts-node scripts/check/consistency.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:logger-spacing":"bash scripts/check/logger-spacing.sh","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","verify:rule-structure":"ts-node scripts/verify/rule-structure.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","generate:rule-registry":"ts-node scripts/generate/rule-registry.ts","audit:rule-docs:content":"ts-node scripts/audit/rule-docs-content.ts","check:duplicate-fixtures":"ts-node scripts/check/duplicate-fixtures.ts","check:deadcode:production":"knip --production","verify:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"patdugan","email":"dugan.pat@gmail.com"},"repository":{"url":"git+https://github.com/pdugan20/claude-code-lint.git","type":"git"},"_npmVersion":"11.3.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix"],"src/**/*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"23.7.0","dependencies":{"ora":"^6.3.1","zod":"^3.22.4","diff":"^5.2.2","glob":"^10.3.10","chalk":"^5.3.0","js-yaml":"^4.1.0","inquirer":"^9.2.12","prettier":"^3.1.1","commander":"^12.0.0","minimatch":"^9.0.5","markdownlint":"^0.35.0","@types/inquirer":"^9.0.7","zod-validation-error":"^5.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","knip":"^5.82.1","husky":"^9.1.7","eslint":"^8.56.0","ts-jest":"^29.1.1","ts-node":"^10.9.2","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/diff":"^7.0.2","@types/jest":"^29.5.11","@types/node":"^20.10.6","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.3.1","markdownlint-cli":"^0.47.0","remark-validate-links":"^13.1.0","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^6.17.0","@commitlint/config-conventional":"^20.3.1","@typescript-eslint/eslint-plugin":"^6.17.0","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.0-beta.1_1769852669316_0.9864982985367727","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.2":{"name":"claude-code-lint","version":"0.2.0-beta.2","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.0-beta.2","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"fea8392d6ae147e0edaf0c5eefda7e12f2233c8b","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.0-beta.2.tgz","fileCount":911,"integrity":"sha512-2s/8092BUATcD4RBtfQwbUrtpGarp2RlSEOMlZ2HCigqN3ClBwADjdX+qUE3uBF6onnpAFm9Sb/X6hJInnjNbQ==","signatures":[{"sig":"MEUCIQCNsGAGEjq65gYQInQvZbpBziyPz4qg1OvSYEun4Mb/ggIgcKbMs4xgFyInstBCpYsgjXg9bqaR0p/cwY27o5dayQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2217123},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"9ee4fbb1228b3a32fbcd86b567c1848f4224a8c9","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"release-it --preRelease=alpha","release:major":"release-it major","release:minor":"release-it minor","release:patch":"release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"patdugan","email":"dugan.pat@gmail.com"},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.3.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"23.7.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^13.2.2","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.19.2","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.47.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.0-beta.2_1771444694099_0.04478293858401239","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.3":{"name":"claude-code-lint","version":"0.2.0-beta.3","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.0-beta.3","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"91ebb7086c58abaec12306c5957364158afe29c6","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.0-beta.3.tgz","fileCount":916,"integrity":"sha512-y6YhdggMDCR0LOJI5qND9YHfd/MXQc+6TmNRYhYLN+8boXDW/2lOLRPEqV4/9PTAUTgLYfSvX2436LYKB7sdxw==","signatures":[{"sig":"MEQCIAbq7AxcI8+ek/RQzUOsYLxmagnCDCwnMUDAD8ehNCDiAiAkWVElPeqXbqHogpK920EaIc3gIMpsNi9RmDZl9Vc0QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2252533},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"7269b41a65f7f2b2f54fac049a80cf26bc94c495","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"patdugan","email":"dugan.pat@gmail.com"},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.3.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"23.7.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^13.2.2","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.19.2","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.47.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.0-beta.3_1771485280561_0.22203880671742082","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"claude-code-lint","version":"0.2.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"aa2979291308ac4786beb75512f1a4ec37441791","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.0.tgz","fileCount":928,"integrity":"sha512-0oH0CtRs70BH5Lc+ValMAh0BVhUcSgzTm2/ZTzuxAtM+4sa9ghS4JqV76loEQN8imYFbFpX7rk1LUbLVLkIYrg==","signatures":[{"sig":"MEQCIFw1vi5PpQHhPl+fndU+8Jg0G22D/+nhRYfhpdpCBR1yAiAz5QQv+2Uv8TOyyp+gznJDIzMg2hwLdG2kKmMWs2y6Wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2277198},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"a3ff2fca04ddfacca358b231bcf04e8da86c4743","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"patdugan","email":"dugan.pat@gmail.com"},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.3.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"23.7.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^13.2.2","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.19.2","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.47.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.0_1771741447208_0.5190995843458004","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"claude-code-lint","version":"0.2.1","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.1","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"bd92d349c1c2df04f9fe8215602f6133e199d8f6","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.1.tgz","fileCount":916,"integrity":"sha512-4XF28OoKoOCAWU/eZNmllhEkXq2JLRUjxso2ICMsGeL1L080T+NbZDRBUXdzhowxWtfItOmgnVuBqruy1gG34A==","signatures":[{"sig":"MEQCIBOOxfeHuGJqXXNbPAAZvBdCf6eEmhNi6MnkxlzcNoQrAiBjWtxzv5pJzbQP+di1WF0UkoPjqGQsKxT2Jkct+SV3DQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2256421},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"33b9ffd2c54c250363a4c8801c6ec493b4840103","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c017c48-ae8b-4a2e-b304-6e2cfc233987"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.10.1","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"22.22.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^13.2.2","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.19.2","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.47.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.1_1771907922493_0.05890250737068281","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"claude-code-lint","version":"0.2.2","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.2","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"814c95acad150b8335a3740b055e3fcb3f23d93c","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.2.tgz","fileCount":908,"integrity":"sha512-Mg+ar8OotByCNtjC4cPu3yRr92AQ4FDv7+BAQqG0FCDTUjjd6GTfloDmXt1HLO+d9XAjDS+YV3nKBmYWBGFELw==","signatures":[{"sig":"MEUCICklbsLS2tE5BuydgLgXYuzf+b9Js/6NQvMOE89UvhadAiEAjNhzXACU5dv2N09yaGnLG0SpB9qG1N+Jt9nbf0MdTzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2257416},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"c1b9858e0b0dd2fe7eab8ef00c8c961caed558a9","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c017c48-ae8b-4a2e-b304-6e2cfc233987"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.10.1","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"22.22.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^13.2.2","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.19.2","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.47.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.2_1771991923058_0.6668018611872812","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"claude-code-lint","version":"0.2.3","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.3","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"20a30851b12158f5362fc2df8b95cd0df3af1166","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.3.tgz","fileCount":908,"integrity":"sha512-lkhBOEWkNMxSWPTGSwrmEQnbndGu3aAqsRw7p+ZeheJHsrbmYgGkEmbZpL/Yf8sGzG95tTYNyYEjxaN9+DCBRw==","signatures":[{"sig":"MEYCIQCrSfNC5eiQRRJwTlrmWCHUjU1WXDyGpVOgjop0v9B0fQIhALxIK9GEVseCUEPjhgqI1wGsJP8kTk8ZcHxfYIGP41cf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2262161},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"616b9ff3800fd120e27cdbd5309712bf40e50480","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c017c48-ae8b-4a2e-b304-6e2cfc233987"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.10.1","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"22.22.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^13.2.2","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.19.2","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.47.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.3_1772057136320_0.22410607904058932","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"claude-code-lint","version":"0.2.4","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.2.4","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"1b3938a1e136616f6fbe98a51562835a7ca70f5a","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.2.4.tgz","fileCount":908,"integrity":"sha512-Pmn9gLHui4SnyX3yjWRHnMlWPEiRe5DGcjoXXRQj0yncnBNV9YDoiOxNNFfP9fsoG4xjpd529FTUG4BoT0aSTw==","signatures":[{"sig":"MEUCIQCWT889AXsWUF/Bnk37kYYd1GIDYzjohEjTvwctkq4EQgIgKVofFoIG75SfG8+9PYoV4tKeps39kuAOWH2n+2xP9NE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2262318},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"d137baef504a0b123ebf61ddbee128eb3379d49e","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c017c48-ae8b-4a2e-b304-6e2cfc233987"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.11.1","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.25.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.48.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.2.4_1773606930321_0.025692314424073492","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"claude-code-lint","version":"0.3.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.3.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"96fa7b6ac20dc2dbdb9452f9eff136d186a911c2","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.3.0.tgz","fileCount":908,"integrity":"sha512-GhTJREWH1ZUUAg+m3cRg2eqJzRvEtoh8HKNrGvSerjSHUcEhAYF+iPgxOst2ZbiqO2COp4TZO+z4LH/WZ9pqyQ==","signatures":[{"sig":"MEUCIQDfz99vXPj0L13yqvJHc9B/2ZNWqs6WGf4ODXRtuOAffgIgAUb+NV37noCYmi6WLSmDQzhzKskKx2SsowmL8EfrHew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2334125},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"7cb15b1341bc998181098a99ee74e659672c064e","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c017c48-ae8b-4a2e-b304-6e2cfc233987"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.12.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.25.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.48.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.3.0_1774297251634_0.7681415832401501","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"claude-code-lint","version":"0.4.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.4.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"db7adafcce4a2a008bcc9386302ef35686213f7e","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.4.0.tgz","fileCount":908,"integrity":"sha512-pe6+4uZGkmbDt4dPvu8+VHtYV+6T4JEMWIz81Sv5LsgAtZfsDOuZ9C50psUKlTzAuEvovPvtJXBJL8uewpGc1A==","signatures":[{"sig":"MEQCIAYJdDiWkRPiNCQgfThkXhX3Ydr1ZJzOYySZ5tH/gEbdAiARRCuRe8nA4uDS0T4ZkqJWtLC67G/7x7yL+ft+CzPHig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2334125},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"6d03b10bb7f3b1415f8a7d20213e4e3a784bad64","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c017c48-ae8b-4a2e-b304-6e2cfc233987"}},"deprecated":"Accidental publish. Use 0.3.0 instead.","repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.12.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"]},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.25.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.48.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.4.0_1774297449533_0.7821865019331382","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"claude-code-lint","version":"0.5.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.5.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"56398bfc36f385ff5b3be60ad9cf022098c2d6d1","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.5.0.tgz","fileCount":908,"integrity":"sha512-VvvP0SAs2Qgo59AuDiNA8/+2X/sawLLpKTjFSmpgPojbsg8rMrKSG+Fx3UPpgYwppL8sl36yVIBtFRrIpIPk+A==","signatures":[{"sig":"MEUCICDiG3lbqZwd2qTYHqeqNU3i8PHo6k2UBZ/ilzffKjyqAiEAzwND+H7hRzeIy1HZzHvhqxQ6P+d6NTcc9fULwMj2wgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2501256},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"15625e8cbd07ab731ce25b27e3c388e08c8b82ca","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.11.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"_nodeVersion":"24.14.1","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.40.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.34.5","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.26.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.48.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.5.0_1777865629517_0.1501423454631976","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"claude-code-lint","version":"0.6.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.6.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"105fa40dd3e1987d7b275994734e0ddc1791a414","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.6.0.tgz","fileCount":924,"integrity":"sha512-YxfT5/bhice/WM48bGaCFK5whExFXqirFLsBgcyZottsIs9uraZEKXBTAvSk8obwzNpUDiwiuOSH0VvQYH+Pbw==","signatures":[{"sig":"MEUCIQCXNT3MM55rV93Or04fr+hlSzqmSOy4TRZTqq+YZ8x/8wIgNJAMJXAhkgCX+Qn7oP8D9wUMjmpAbf2ewVgjLLN0ebg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2611089},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"2a4653d77233a548d195aa2e29990879a5da2423","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint check:publish-workflow check:upstream-workflow check:schema-docs-coverage","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","check:upstream":"ts-node scripts/check/upstream.ts","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","package:plugin":"bash scripts/util/package-plugin.sh","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","upstream:refresh":"ts-node scripts/upstream/refresh.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:publish-workflow":"bash scripts/check/publish-workflow.sh","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:upstream-workflow":"bash scripts/check/upstream-workflow.sh","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:schema-docs-coverage":"ts-node scripts/check/schema-docs-coverage.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.16.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc --ignore docs-baseline"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.41.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.35.1","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.26.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.49.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.6.0_1783970421501_0.11433935321143363","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"claude-code-lint","version":"0.7.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.7.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"8534f4d6764f8561fa9010751902e7bc57f578bb","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.7.0.tgz","fileCount":924,"integrity":"sha512-NF9bQqbi4oRyV+72/ImVD8w6IlSZdm3GSfXsKd/Qqu2ZlvvIs3/Jc+QCNMwcYDj6WzRVectcukbYvThSymFIkA==","signatures":[{"sig":"MEQCIB/hQfXvD0vDSlA5lf+QAUprkP51UIdpLTuJHsVAiAjiAiB2SOe8URJdy0JQUP1zKNNgUI9STQfj9WVUjQWIRIqq0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2628160},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"857ae1eab5086971c436fd123edf6a9e2ce78874","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:logger-spacing check:logger-usage check:milestone-refs check:publint check:publish-workflow check:upstream-workflow check:schema-docs-coverage","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","check:upstream":"ts-node scripts/check/upstream.ts","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","package:plugin":"bash scripts/util/package-plugin.sh","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","upstream:refresh":"ts-node scripts/upstream/refresh.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:publish-workflow":"bash scripts/check/publish-workflow.sh","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:upstream-workflow":"bash scripts/check/upstream-workflow.sh","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:schema-docs-coverage":"ts-node scripts/check/schema-docs-coverage.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.16.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc --ignore docs-baseline"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.41.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.35.1","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.26.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^19.2.4","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.49.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^10.0.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.7.0_1784005061994_0.0004959916917421925","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"claude-code-lint","version":"0.7.1","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.7.1","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"4f6a3d2078f5d0f74d7216f8965a37ac8ffab4d6","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.7.1.tgz","fileCount":924,"integrity":"sha512-0g2VpqBfhMZn1zOyj0Sg/mixNrmtZz9gz44pqGXF1DZJhX0Jla0lDmo0lUB3n2usdwMt7RraHWftIXPp+d0ebw==","signatures":[{"sig":"MEQCICQE/4AMzgEj88ayd66Gks6qtDLCEJrrPXxiBdGIifZhAiAVdOJ2Q+HpBSY8XrOSlG2r9cqExossry0upYxeVVbiFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2628262},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"f095a92ddf7bcadea57e2259f404330007574e2c","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:github-actions-security check:logger-spacing check:logger-usage check:milestone-refs check:publint check:publish-workflow check:upstream-workflow check:schema-docs-coverage","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","check:upstream":"ts-node scripts/check/upstream.ts","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","package:plugin":"bash scripts/util/package-plugin.sh","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","upstream:refresh":"ts-node scripts/upstream/refresh.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:publish-workflow":"bash scripts/check/publish-workflow.sh","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:upstream-workflow":"bash scripts/check/upstream-workflow.sh","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:schema-docs-coverage":"ts-node scripts/check/schema-docs-coverage.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts","check:github-actions-security":"ts-node scripts/check/github-actions-security.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.16.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc --ignore docs-baseline"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.41.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.35.1","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.28.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^20.2.1","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.49.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.7.1_1785450110267_0.49511920277446464","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"claude-code-lint","version":"0.8.0","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.8.0","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"2b6881ced7ce89f28828fdee4d28e86a3e7bfe73","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.8.0.tgz","fileCount":924,"integrity":"sha512-JNyRqcmzAtNqqTkjUdlsTo7vyWOMDSWpyUn7JOSiuAL+d9aghOT1TjWV3TX9zM7vJLde48nPlzYdeRAAuktlgQ==","signatures":[{"sig":"MEQCIG/VpeDR2PtPvcxOEoUk6M8+SsW3LQVMt6fb8q7tz2tYAiAuCfwXoyl4p5ISfsu+QwlGlow4eAiz1/wgeU2jiAj0WA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2627408},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"68218b88fa7e123eb1d2163e585a605cf7538066","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:github-actions-security check:logger-spacing check:logger-usage check:milestone-refs check:publint check:publish-workflow check:upstream-workflow check:schema-docs-coverage","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","check:upstream":"ts-node scripts/check/upstream.ts","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","package:plugin":"bash scripts/util/package-plugin.sh","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","upstream:refresh":"ts-node scripts/upstream/refresh.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:publish-workflow":"bash scripts/check/publish-workflow.sh","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:upstream-workflow":"bash scripts/check/upstream-workflow.sh","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:schema-docs-coverage":"ts-node scripts/check/schema-docs-coverage.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts","check:github-actions-security":"ts-node scripts/check/github-actions-security.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.16.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc --ignore docs-baseline"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"_nodeVersion":"24.18.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.1.0","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.41.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.35.1","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.28.0","publint":"^0.3.17","ts-jest":"^29.1.1","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^20.2.1","remark-cli":"^12.0.1","typescript":"^5.3.3","@types/jest":"^30.0.0","@types/node":"^25.2.2","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.49.0","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.8.0_1786296341001_0.3173115840426055","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"claude-code-lint","version":"0.8.1","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.8.1","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"cb9a380256b268c9b0f1976fb97973369021ebc5","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.8.1.tgz","fileCount":928,"integrity":"sha512-RoVHiGMGJAO92i6v3nC2cg+JHGw9RuG1DCsxeD0pckWyuE8yMA6jTgt1gnVDoUaxYG4QL9IJP4tWdqoT4soXKA==","signatures":[{"sig":"MEUCIHbMVhwUeOfeIeI0Sl6G42l5E1NG73WeNwgyKrCLseXbAiEA3bwpXNa3P0D4pys1xk7w825JaQGwDBFDNTYSXIPL1vw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDQ7e1ICztKvR2K8OFKmEhtSLXow4qSl7VVsOFNqt9aNQIhAPYxrQDMo7v6nIPQpcfWpd73I8zCDHicWhSAq+YoxU2Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2636657},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"bc3e3bcc7380608f28970c3fcd516f68a7a958fe","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:github-actions-security check:logger-spacing check:logger-usage check:milestone-refs check:publint check:publish-workflow check:upstream-workflow check:schema-docs-coverage","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","check:upstream":"ts-node scripts/check/upstream.ts","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","package:plugin":"bash scripts/util/package-plugin.sh","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","upstream:refresh":"ts-node scripts/upstream/refresh.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:publish-workflow":"bash scripts/check/publish-workflow.sh","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:upstream-workflow":"bash scripts/check/upstream-workflow.sh","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:schema-docs-coverage":"ts-node scripts/check/schema-docs-coverage.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts","check:github-actions-security":"ts-node scripts/check/github-actions-security.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"overrides":{"vitepress":{"vite":"6.4.3"},"release-it":{"undici":"7.29.0"},"markdownlint-cli":{"run-con":"1.3.2"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.19.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc --ignore docs-baseline"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"_nodeVersion":"24.20.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.3.1","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.41.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.35.1","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.28.0","publint":"^0.3.17","ts-jest":"^29.4.12","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^20.2.1","remark-cli":"^12.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^22.20.1","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.49.1","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.8.1_1789315357433_0.6424289257338134","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"claude-code-lint","version":"0.8.2","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"author":{"name":"Pat Dugan"},"license":"MIT","_id":"claude-code-lint@0.8.2","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"homepage":"https://claudelint.com","bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"bin":{"claudelint":"bin/claudelint"},"dist":{"shasum":"94e0acc2e26326d366abf53b7142662b8bfd4e56","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.8.2.tgz","fileCount":928,"integrity":"sha512-tmGqyjzJIk27TpHFrNzwCiJVt+81d1LGi+/XTLNuaMvk75asDV1DGS0w6aHcaTBLNPns4lZmw5kuJo2lGCBusQ==","signatures":[{"sig":"MEYCIQDqIiF1yrrkPKlXBN5R+xgkzu6y2TF1hJFWUgymKwnr2QIhAKbC2bi/pg/A7s9aLb5BvonSY9nFIz4aUHQaRbc1uuZm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEoJCmoKAqi5fWc7zsncSy8wplepHF/lSF8oG5SqvdQoAiBVZrCzr0sDs5vrZZ9xzUraBYKo10YInz3xE9YOqDfTrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2727709},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"b0b471889c6077386135b135d6ff66f820200436","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:github-actions-security check:logger-spacing check:logger-usage check:milestone-refs check:publint check:publish-workflow check:upstream-workflow check:schema-docs-coverage","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","check:upstream":"ts-node scripts/check/upstream.ts","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","package:plugin":"bash scripts/util/package-plugin.sh","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","upstream:refresh":"ts-node scripts/upstream/refresh.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:publish-workflow":"bash scripts/check/publish-workflow.sh","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:upstream-workflow":"bash scripts/check/upstream-workflow.sh","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:schema-docs-coverage":"ts-node scripts/check/schema-docs-coverage.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts","check:github-actions-security":"ts-node scripts/check/github-actions-security.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"overrides":{"vitepress":{"vite":"6.4.3"},"release-it":{"undici":"7.29.1"},"markdownlint-cli":{"run-con":"1.3.2"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.19.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc --ignore docs-baseline"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"_nodeVersion":"24.20.0","dependencies":{"ora":"^9.3.0","zod":"^4.3.6","diff":"^8.0.3","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^5.3.0","ignore":"^7.0.5","js-yaml":"^4.3.1","inquirer":"^9.0.0","prettier":"^3.1.1","commander":"^14.0.3","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.41.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^5.82.1","husky":"^9.1.7","sharp":"^0.35.1","cspell":"^9.6.4","eslint":"^9.39.2","satori":"^0.28.0","publint":"^0.3.17","ts-jest":"^29.4.12","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^9.39.2","png-to-ico":"^3.0.1","release-it":"^20.2.1","remark-cli":"^12.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^22.20.1","emoji-regex":"^10.6.0","lint-staged":"^16.2.7","satori-html":"^0.3.2","npm-run-all2":"^8.0.4","postcss-html":"^1.8.1","@types/js-yaml":"^4.0.9","@commitlint/cli":"^20.4.0","@resvg/resvg-js":"^2.6.2","@types/inquirer":"^9.0.9","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.49.1","@types/text-table":"^0.2.5","@vercel/analytics":"^1.6.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^9.1.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.11.0","@vercel/speed-insights":"^1.3.1","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.56.3","@typescript-eslint/parser":"^8.54.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^20.4.0","@typescript-eslint/eslint-plugin":"^8.54.0","stylelint-config-recommended-vue":"^1.6.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-lint_0.8.2_1789320046938_0.8380706687044699","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"claude-code-lint@0.9.0","bin":{"claudelint":"bin/claudelint"},"bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"dist":{"shasum":"2bac24cccdc61072157ebf7f847ca8f360e473dc","tarball":"https://registry.npmjs.org/claude-code-lint/-/claude-code-lint-0.9.0.tgz","fileCount":932,"integrity":"sha512-AsYvsSOyTbmi3NrFCiPDh76bLPOjzB5f/g+Bi98bJrC/lMppyTq4CrsUUlrZe7JPdQLsLD0YCNR0cMA1FjEz4g==","signatures":[{"sig":"MEUCIQCEVTFAfyYOHo4KW1Z5LhsZrIRbBLB2tw+IKUUUibnrawIgKrK4Rh5i7/CZHC+HbrIocMANkej69wfU5HJjL9Fu9pk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDrNDMkoqiRR/acYwZcC1fcQT4iEeg4rRqpetvswSUSQIgHEGE+E3alLzJRU8n4v4SgoEmhbA0YOzUml74/IWNzdg="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-code-lint@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2726754},"main":"dist/index.js","name":"claude-code-lint","type":"commonjs","types":"dist/index.d.ts","author":{"name":"Pat Dugan"},"engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","default":"./dist/utils/index.js"},"./package.json":"./package.json"},"gitHead":"7a60daa330bfd07288219077a80172e67092a52a","license":"MIT","scripts":{"dev":"tsc --watch","lint":"npm-run-all --parallel lint:ts lint:vue lint:css lint:md lint:pkg:quiet","test":"jest","build":"tsc","check":"npm-run-all --parallel check:emojis check:github-actions-security check:logger-spacing check:logger-usage check:milestone-refs check:publint check:publish-workflow check:upstream-workflow check:schema-docs-coverage","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:md":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline","lint:ts":"eslint src --ext .ts","prepare":"bash scripts/util/setup-hooks.sh || true","pretest":"npm run check:types:tests","release":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it","docs:dev":"npm run docs:generate && vitepress dev website","lint:css":"stylelint 'website/.vitepress/theme/**/*.{css,vue}'","lint:fix":"npm-run-all --parallel lint:ts:fix lint:vue:fix lint:css:fix lint:md:fix","lint:pkg":"npmPkgJsonLint .","lint:vue":"eslint 'website/.vitepress/**/*.vue' --max-warnings 0","prebuild":"ts-node scripts/generate/rule-types.ts","validate":"npm-run-all lint format:check build test check:publint","check:all":"ts-node scripts/check/all.ts","postbuild":"ts-node scripts/generate/presets.ts","check:self":"npm run build && node bin/claudelint check-all","docs:build":"npm run docs:generate && npm run generate:og && vitepress build website","release:rc":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=rc","test:watch":"jest --watch","check:links":"node scripts/check/links.js","generate:og":"ts-node scripts/generate/og-images.ts","lint:md:fix":"markdownlint --config .markdownlint.json '**/*.md' --ignore node_modules --ignore etc --ignore temp --ignore docs-baseline --fix","lint:ts:fix":"eslint src --ext .ts --fix","release:dry":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --dry-run","setup:hooks":"bash scripts/util/setup-hooks.sh","check:emojis":"node scripts/check/emoji.js","docs:preview":"vitepress preview website","format:check":"prettier --check \"src/**/*.ts\" \"**/*.json\" \"website/.vitepress/**/*.vue\"","lint:css:fix":"stylelint 'website/.vitepress/theme/**/*.{css,vue}' --fix","lint:vue:fix":"eslint 'website/.vitepress/**/*.vue' --fix","release:beta":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=beta","test:schemas":"jest tests/schemas --coverage","validate:all":"npm-run-all lint format:check build test check:all","check:publint":"publint","check:schemas":"ts-node scripts/verify/compare-schemas.ts","docs:generate":"ts-node scripts/generate/rule-docs.ts","release:alpha":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it --preRelease=alpha","release:major":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it major","release:minor":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it minor","release:patch":"GITHUB_TOKEN=${GITHUB_TOKEN:-$(gh auth token)} release-it patch","sync:versions":"ts-node scripts/util/sync-versions.ts","check:deadcode":"knip","check:fixtures":"node bin/claudelint check-all --no-cache","check:rule-ids":"ts-node scripts/check/rule-ids.ts","check:spelling":"cspell 'website/**/*.md' --no-progress","check:upstream":"ts-node scripts/check/upstream.ts","generate:types":"ts-node scripts/generate/rule-types.ts","lint:pkg:quiet":"npmPkgJsonLint . --quiet","package:plugin":"bash scripts/util/package-plugin.sh","prepublishOnly":"npm run build","check:constants":"npm-run-all check:tool-names check:model-names","check:links:all":"remark --use remark-validate-links --frail website/ README.md CONTRIBUTING.md","check:rule-docs":"ts-node scripts/check/rule-docs.ts","check:types:api":"tsd --typings dist/index.d.ts --files 'src/index.test-d.ts'","test:skills:cli":"bash scripts/test/skills/test-cli-commands.sh","test:validators":"jest tests/validators --coverage","check:api-report":"api-extractor run","check:rule-since":"ts-node scripts/check/rule-since.ts","check:tool-names":"ts-node scripts/verify/tool-names.ts","generate:presets":"ts-node scripts/generate/presets.ts","upstream:refresh":"ts-node scripts/upstream/refresh.ts","check:consistency":"ts-node scripts/check/consistency.ts","check:export-sync":"ts-node scripts/check/export-sync.ts","check:file-naming":"ts-node scripts/check/file-naming.ts","check:model-names":"ts-node scripts/verify/model-names.ts","check:schema-docs":"ts-node scripts/check/schema-docs.ts","check:schema-sync":"ts-node scripts/check/schema-sync.ts","check:types:tests":"tsc --noEmit -p tsconfig.tests.json","check:api-examples":"tsc --noEmit -p tsconfig.api-examples.json","check:code-samples":"ts-node scripts/check/code-samples.ts","check:logger-usage":"bash scripts/check/logger-usage.sh","check:source-paths":"ts-node scripts/check/source-paths.ts","test:skills:manual":"echo 'See scripts/test/manual/manual-testing-runbook.md for manual test protocol.'","check:rule-coverage":"ts-node scripts/check/rule-coverage.ts","check:rule-patterns":"ts-node scripts/check/rule-patterns.ts","sync:versions:check":"ts-node scripts/check/version-sync.ts","check:fixtures:valid":"cd tests/fixtures/projects/valid-complete && node ../../../../bin/claudelint check-all --no-cache","check:logger-spacing":"bash scripts/check/logger-spacing.sh","check:message-length":"ts-node scripts/check/message-length.ts","check:milestone-refs":"bash scripts/check/milestone-refs.sh","check:rule-structure":"ts-node scripts/verify/rule-structure.ts","test:skills:metadata":"jest tests/skills/metadata.test.ts","check:message-content":"ts-node scripts/check/message-content.ts","check:rule-docs-audit":"ts-node scripts/audit/rule-docs.ts","check:rule-references":"ts-node scripts/check/rule-references.ts","generate:json-schemas":"ts-node scripts/generate/json-schemas.ts","generate:schema-rules":"ts-node scripts/generate/schema-rules.ts","test:skills:automated":"npm-run-all test:skills:structure test:skills:cli","test:skills:structure":"bash scripts/test/skills/validate-self.sh","check:fixtures:invalid":"cd tests/fixtures/projects/invalid-all-categories && node ../../../../bin/claudelint check-all --no-cache","check:hardcoded-counts":"ts-node scripts/check/hardcoded-counts.ts","check:publish-workflow":"bash scripts/check/publish-workflow.sh","check:rule-option-docs":"ts-node scripts/check/rule-option-docs.ts","check:api-report:update":"api-extractor run --local --verbose","check:upstream-workflow":"bash scripts/check/upstream-workflow.sh","check:orphaned-rule-docs":"ts-node scripts/check/orphaned-rule-docs.ts","check:rule-docs-sections":"ts-node scripts/check/rule-docs-sections.ts","check:deadcode:production":"knip --production","check:rule-implementations":"ts-node scripts/verify/rule-implementations.ts","check:schema-docs-coverage":"ts-node scripts/check/schema-docs-coverage.ts","check:rule-option-interfaces":"ts-node scripts/check/rule-option-interfaces.ts","check:github-actions-security":"ts-node scripts/check/github-actions-security.ts"},"version":"0.9.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:22e266c5-cfed-4c98-8a82-a3024e4caf38"}},"homepage":"https://claudelint.com","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"overrides":{"satori":{"fflate":"0.7.5"},"vitepress":{"vite":"6.4.3"},"release-it":{"undici":"7.29.1"},"markdownlint-cli":{"run-con":"1.3.3"}},"devEngines":{"runtime":{"name":"node","onFail":"error","version":"^22.22.2 || ^24.15.0 || >=26.0.0"}},"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"_npmVersion":"11.19.0","description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","directories":{},"lint-staged":{"*.md":["markdownlint --fix --ignore etc --ignore docs-baseline"],"src/**/*.ts":["eslint --fix","prettier --write"],"package.json":["prettier --write","npmPkgJsonLint ."],"schemas/**/*.json":["prettier --write"],"src/rules/**/*.ts":["ts-node scripts/check/rule-patterns.ts"],"website/.vitepress/**/*.css":["stylelint --fix","prettier --write"],"website/.vitepress/**/*.vue":["eslint --fix","stylelint --fix","prettier --write"],".github/workflows/*.{yml,yaml}":["prettier --write"]},"maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"ora":"^9.3.0","zod":"^4.6.4","diff":"^9.0.0","glob":"^13.0.0","jiti":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.9","js-yaml":"^5.4.2","inquirer":"^14.2.2","prettier":"^3.1.1","commander":"^15.0.0","minimatch":"^10.1.1","text-table":"^0.2.0","markdownlint":"^0.41.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.33.0","vue":"^3.5.28","jest":"^30.2.0","knip":"^6.35.1","husky":"^9.1.7","sharp":"^0.35.1","cspell":"^10.3.1","eslint":"^10.10.0","satori":"^0.33.4","publint":"^0.3.17","ts-jest":"^29.4.12","ts-node":"^10.9.2","stylelint":"^17.2.0","vitepress":"^1.6.4","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","release-it":"^21.0.2","remark-cli":"^12.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^22.20.2","emoji-regex":"^10.6.0","lint-staged":"^17.5.1","satori-html":"^0.3.2","npm-run-all2":"^9.0.3","postcss-html":"^2.0.0","@commitlint/cli":"^21.2.2","@resvg/resvg-js":"^2.6.2","@eslint/eslintrc":"^3.3.3","markdownlint-cli":"^0.49.1","@types/text-table":"^0.2.5","@vercel/analytics":"^2.0.1","eslint-plugin-vue":"^10.7.0","vue-eslint-parser":"^10.2.0","@types/json-schema":"^7.0.15","eslint-plugin-jsdoc":"^64.3.10","eslint-plugin-tsdoc":"^0.5.0","npm-package-json-lint":"^11.0.0","remark-validate-links":"^13.1.0","vitepress-plugin-llms":"^1.14.0","@vercel/speed-insights":"^2.0.0","eslint-config-prettier":"^10.1.8","@microsoft/api-extractor":"^7.59.1","@typescript-eslint/parser":"^8.70.0","prettier-plugin-packagejson":"^3.0.0","@commitlint/config-conventional":"^21.2.2","@typescript-eslint/eslint-plugin":"^8.70.0","stylelint-config-recommended-vue":"^2.0.0","@release-it/conventional-changelog":"^12.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-code-lint_0.9.0_1789325932306_0.7122131142036501"}}},"time":{"created":"2026-01-31T08:00:26.005Z","modified":"2026-09-13T18:58:52.717Z","0.2.0-beta.0":"2026-01-31T08:00:26.264Z","0.2.0-beta.1":"2026-01-31T09:44:29.482Z","0.2.0-beta.2":"2026-02-18T19:58:14.325Z","0.2.0-beta.3":"2026-02-19T07:14:40.773Z","0.2.0":"2026-02-22T06:24:07.430Z","0.2.1":"2026-02-24T04:38:42.728Z","0.2.2":"2026-02-25T03:58:43.290Z","0.2.3":"2026-02-25T22:05:36.536Z","0.2.4":"2026-03-15T20:35:30.556Z","0.3.0":"2026-03-23T20:20:51.798Z","0.4.0":"2026-03-23T20:24:09.781Z","0.5.0":"2026-05-04T03:33:49.688Z","0.6.0":"2026-07-13T19:20:21.676Z","0.7.0":"2026-07-14T04:57:42.174Z","0.7.1":"2026-07-30T22:21:50.540Z","0.8.0":"2026-08-09T17:25:41.172Z","0.8.1":"2026-09-13T16:02:37.601Z","0.8.2":"2026-09-13T17:20:47.028Z","0.9.0":"2026-09-13T18:58:52.422Z"},"bugs":{"url":"https://github.com/pdugan20/claudelint/issues"},"author":{"name":"Pat Dugan"},"license":"MIT","homepage":"https://claudelint.com","keywords":["claude","claude-code","validation","linter","cli","developer-tools","programmatic","api","nodejs","typescript"],"repository":{"url":"git+https://github.com/pdugan20/claudelint.git","type":"git"},"description":"Comprehensive linter and programmatic API for Claude Code projects - validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more","maintainers":[{"name":"patdugan","email":"dugan.pat@gmail.com"}],"readme":"# claudelint\n\n[![CI](https://github.com/pdugan20/claudelint/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/pdugan20/claudelint/actions/workflows/ci.yml)\n[![Coverage](https://codecov.io/gh/pdugan20/claudelint/graph/badge.svg?token=DNB36W9D5A)](https://codecov.io/gh/pdugan20/claudelint)\n[![npm](https://img.shields.io/npm/v/claude-code-lint)](https://www.npmjs.com/package/claude-code-lint)\n[![Node.js](https://img.shields.io/node/v/claude-code-lint.svg)](https://www.npmjs.com/package/claude-code-lint)\n[![Docs](https://img.shields.io/badge/docs-claudelint.com-blue)](https://claudelint.com)\n[![License](https://img.shields.io/github/license/pdugan20/claudelint)](LICENSE)\n\nA linter for Claude Code projects. Validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more.\n\n## Quick Start\n\n### Install\n\n```bash\nnpm install -g claude-code-lint\nclaudelint init       # Creates .claudelintrc.json and .claudelintignore\nclaudelint check-all  # Validate your project\n```\n\nOr install as a project dependency:\n\n```bash\nnpm install --save-dev claude-code-lint\nnpx claudelint init\nnpx claudelint check-all\n```\n\n### Claude Code Plugin\n\nUse claudelint as a Claude Code plugin for interactive validation via slash commands.\n\nInside Claude Code, add the marketplace and install the plugin:\n\n```text\n/plugin marketplace add pdugan20/plugins\n/plugin install claudelint@patrick-plugins\n```\n\nOr run `claudelint install-plugin` for guided setup.\n\nTo trial the plugin for a single session without registering the marketplace:\n\n```bash\nclaude --plugin-url https://github.com/pdugan20/claudelint/releases/latest/download/claudelint-plugin.zip\n```\n\nThe plugin's skills run the `claudelint` CLI, so install the npm package first either way.\n\nSee the [Plugin Guide](https://claudelint.com/integrations/claude-code-plugin) for team setup, plugin scopes, and troubleshooting.\n\n## What It Checks\n\n- **CLAUDE.md** -- Size limits, import syntax, circular references, frontmatter\n- **Skills** -- Frontmatter schema, structure, referenced files, security\n- **Settings** -- JSON schema, permissions, tool names, hook configuration\n- **Hooks** -- Event names, script existence, type validation\n- **MCP Servers** -- Transport types, URLs, environment variables\n- **Plugins** -- Manifest schema, directory structure, cross-references\n\n## CLI\n\n```bash\nclaudelint check-all                    # Validate everything\nclaudelint check-all --fix              # Auto-fix issues\nclaudelint check-all --strict           # Zero-tolerance mode\nclaudelint validate-skills --path .     # Validate specific component\nclaudelint list-rules                   # Browse all rules\nclaudelint format --check               # Check formatting\n```\n\n## Plugin Skills\n\nAfter installing as a plugin, use skills via `/skill-name` or natural language:\n\n| Skill | Description |\n|-------|-------------|\n| `validate-all` | Validate all project files |\n| `validate-cc-md` | Validate CLAUDE.md files |\n| `validate-skills` | Validate skill structure and content |\n| `validate-settings` | Validate settings.json |\n| `validate-hooks` | Validate hooks.json |\n| `validate-mcp` | Validate MCP server configuration |\n| `validate-plugin` | Validate plugin.json manifest |\n| `format-cc` | Format Claude Code files |\n| `optimize-cc-md` | Interactively optimize CLAUDE.md |\n\n## Documentation\n\nFull documentation is available at **[claudelint.com](https://claudelint.com)**.\n\nRule documentation is auto-generated from inline metadata in each rule's source code. Run `npm run docs:generate` to regenerate pages after modifying rules.\n\n### Quick Links\n\n- [Getting Started](https://claudelint.com/guide/getting-started)\n- [Configuration](https://claudelint.com/guide/configuration)\n- [Rules Overview](https://claudelint.com/guide/rules-overview)\n- [Plugin Usage](https://claudelint.com/integrations/claude-code-plugin)\n- [Programmatic API](https://claudelint.com/api/overview)\n- [Custom Rules](https://claudelint.com/development/custom-rules)\n- [Contributing](CONTRIBUTING.md)\n- [Changelog](CHANGELOG.md)\n","readmeFilename":"README.md"}