{"_id":"impeccable","_rev":"24-44702f42fd46221f3a7c7b6932e0f1b4","name":"impeccable","dist-tags":{"latest":"3.1.0"},"versions":{"2.0.0":{"name":"impeccable","version":"2.0.0","keywords":["design","frontend","ux","anti-patterns","lint","accessibility","css","html","cli"],"author":{"name":"Paul Bakaus"},"license":"SEE LICENSE FILE","_id":"impeccable@2.0.0","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://github.com/pbakaus/impeccable#readme","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/impeccable"},"dist":{"shasum":"8aa8aea533cd720fe96bdd3f4e8a4745744ccaa5","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.0.0.tgz","fileCount":5,"integrity":"sha512-6l0SVWjja3POoQP8RU2RjrKrQgw984MYf7GuqC7jAvTKHJu764UpsANRMZlGqMawfKTMUvrwokbHviF+ideP0g==","signatures":[{"sig":"MEUCIEEawKArWdYy6Rf5v8C26kGjmv8FNr1BKnPFxpOQCToiAiEA3JyCkOZhJSu+bA4zphSnfc8/bgz2A3jx+FihweGoycs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105567},"type":"module","engines":{"node":">=18"},"gitHead":"ce98272ea6aef61c29efbad884f6c1c8d1e4eb1d","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","screenshot":"bun run scripts/screenshot-antipatterns.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.6.1","description":"Detect UI anti-patterns and design quality issues from the command line","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.0.0_1774897772164_0.48181599128199215","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"impeccable","version":"2.0.1","keywords":["design","frontend","ux","anti-patterns","lint","accessibility","css","html","cli"],"author":{"name":"Paul Bakaus"},"license":"SEE LICENSE FILE","_id":"impeccable@2.0.1","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://github.com/pbakaus/impeccable#readme","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/impeccable"},"dist":{"shasum":"fc2c1afa9c7934a20e1e7e2626d2ba889150c55c","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.0.1.tgz","fileCount":8,"integrity":"sha512-wtXzI8q2hbFlqHlyoXOxbt+zWpqgToA0cFHPkUMhNkZA2dEoE9b6/3ilbeIcaX2da4as/ivZEfVvyGOjcb4hnA==","signatures":[{"sig":"MEYCIQDMZd5MjMJ2d6NOkb/QtFxKlAE3EVZ9PcMz0IopYoUtYwIhAMMk+Fl59X1AeR7hFTsSCVBF7hGeloK+1+5SKqgmSX5D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169981},"type":"module","engines":{"node":">=18"},"gitHead":"8d0e9de26dd46e546fe55c25394014d297f1bddc","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","screenshot":"bun run scripts/screenshot-antipatterns.js","postpublish":"mv README.bak.md README.md","prepublishOnly":"cp README.md README.bak.md && cp README.npm.md README.md"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.6.1","description":"Detect UI anti-patterns and design quality issues from the command line","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.0.1_1774898368926_0.24202091197799502","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"impeccable","version":"2.0.4","keywords":["design","frontend","ux","anti-patterns","lint","accessibility","css","html","cli"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.0.4","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/impeccable"},"dist":{"shasum":"479a097ea2683cc9dfa8dbd2b42d8137e0ff30c2","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.0.4.tgz","fileCount":8,"integrity":"sha512-v7Bs3fIgpJRrbDWn63CzrTqbODX8UTFoWx7OYnggRLpMYNFEDtJPbH7Ge78s80roJ2pEXQLojLBCvgaymm1WLA==","signatures":[{"sig":"MEQCIGEGemWJLK7rxQdsmm+YIacD3geVXfTu9kvmFJkv8BmNAiBd9aRkoPurXGDWeRmS1iDA+l216lxZOtngPbovycp4cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46313},"type":"module","engines":{"node":">=18"},"gitHead":"12aae1f42a6cc43c732b4c21e45144120820e454","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","screenshot":"bun run scripts/screenshot-antipatterns.js","postpublish":"mv README.bak.md README.md","prepublishOnly":"cp README.md README.bak.md && cp README.npm.md README.md"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Detect UI anti-patterns and design quality issues from the command line","directories":{},"_nodeVersion":"24.11.0","dependencies":{"@impeccable/detect":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.0.4_1775260124489_0.7695831835400861","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"impeccable","version":"2.0.6","keywords":["design","frontend","ux","anti-patterns","lint","accessibility","css","html","detection","ci-cd","skills"],"author":{"name":"Paul Bakaus"},"license":"BSL-1.1","_id":"impeccable@2.0.6","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://github.com/pbakaus/impeccable-detect#readme","bugs":{"url":"https://github.com/pbakaus/impeccable-detect/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"ed97ecf96e70bbd6932252e6fdb9776f6673ecb3","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.0.6.tgz","fileCount":7,"integrity":"sha512-V39U0KegotawEqV5sDLJFArPBo1G1pjbbcQRTFg/0avjro/YK2tDGz2SDbgHpRfwaUwC3M4661sw/UcdZBXeXA==","signatures":[{"sig":"MEQCIEDV1Cse6gqq/Jy+ECfuUE7B2+qJrUxnTX+V+K+lFWeAAiBQlmPlTT6GFxfY51Z2yT18UjaqswFgXEWNMi1YYYvXdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190310},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"b6ef8eda9df168d8782d79b71d220c4ddad0b1b5","scripts":{"test":"bun test tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs","build:browser":"node scripts/build-browser-detector.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable-detect.git","type":"git"},"_npmVersion":"11.12.1","description":"Detect UI anti-patterns and design quality issues from the command line","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0"},"_hasShrinkwrap":false,"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.0.6_1775268054129_0.34327832891612964","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"impeccable","version":"2.0.7","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.0.7","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"9a5ccc203367ead52463d839d5b632e9d0349418","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.0.7.tgz","fileCount":9,"integrity":"sha512-WEUjq22wFD6DTaTuDaA9lY6KhYjgkICnWx51/60+tC+xZRdbKnGHsQxd4JKrSnsKzGf+9aMg2HayXSAlUHhBHg==","signatures":[{"sig":"MEYCIQCsrOxUuq9z9L8JGKTo6nOdRRrecT2crRX3e4+2RIJlrgIhAMiCSjlerhbBvXvIgTPw6divAect4nTR7JHrFEtSkKOZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288678},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"b30b1ab1a37a39a8e4de1777ddc8bbca98e76a35","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.0.7_1775683421668_0.656324425262691","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"impeccable","version":"2.1.0","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.0","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"1bedcad1e169bc73d53dcc24ad9eeee564aeded1","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.0.tgz","fileCount":9,"integrity":"sha512-Rk7nRLSRkUEj//qdYQctxq9O5t487ybEzPKMnl+gCiurLO2fZpOdEug3xh6xEE2fOHaU2zpquLlCjF6lzrmzwg==","signatures":[{"sig":"MEUCICVIRLvO/sIyfFqE6df8/3Li6jD2YLAiVo9SLh98Q8c9AiEA/nAggb7IDLrHLUSbTGZ3l3eJa9atb7+8ZVqQDD9rV7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289858},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"45b92bf9fed4c23577c83cfbd840953c235dfb8a","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.0_1775840020690_0.32570790317281273","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"impeccable","version":"2.1.1","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.1","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"be3dc2a4cc79d17fe3ae3e1986e1021f2b033825","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.1.tgz","fileCount":9,"integrity":"sha512-CyJ6DW5FiZWefFeZHjhMtZu9zvEspByAKeU5DstKxNXFv60g87YTDf1NKATuK0zKQa/7EKdSDTS1tMO/Y/QG6w==","signatures":[{"sig":"MEYCIQC2mal6V7HS7vfXwhcHaPDL2y8MMDhL67yz2s+YQ9L5WQIhAI8wOOnKL4a5BiA1Xweghtfx38y7uqRrLqYtJdqQDqQU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289264},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"0d37f31ef3d98dc5248d1dcf6d6912de2ad78f20","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.1_1775841891326_0.8515448656932907","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"impeccable","version":"2.1.2","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.2","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"c1625db9293cd64af46106037cf74b34697faf54","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.2.tgz","fileCount":9,"integrity":"sha512-UCzN0bwstURS4RO/mDxftnlWDRzmVSZwgTI9shGKbDDDqZ7o0DVP8OiszB1wE+xlefENYBme4NRgM9jn8GHOgA==","signatures":[{"sig":"MEUCIQD4htnBQBXxnLKHdr/gYLmZUCoSMptq8rhLaY7SIJzx9gIgRwNyJhv4sDBmZec2z9npL1IO+R5l4FlACgzazFPz64o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292209},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"239d69d0d8843dd1b7d726e17b6a59a955701223","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.2_1775842881163_0.01762594057588318","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"impeccable","version":"2.1.3","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.3","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"890353dbdb08c77e37538176c6289f5337fcf713","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.3.tgz","fileCount":9,"integrity":"sha512-1uF6OiQcqnPxua3nkF2fLJfde+US5W9ZXfXXmqWljNcZJMno7853pMtc15lyqxywEWZNAYAc13wwku0dMJenag==","signatures":[{"sig":"MEYCIQCPaxF5LoNtVz+dOuhQkGjjlq0/+0j1vriItHFcf3UPgQIhAIamROlgz7PrKYwwu555d2L/ISJ24yz7AGAH0EBLT9Mc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292853},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"5071d85a4b6f1e7e470fc4573f4d02015cb818d3","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.3_1775843925882_0.8164860949116151","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"impeccable","version":"2.1.4","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.4","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"1734f232e427cc9d8479650ef4186a3f25cd8835","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.4.tgz","fileCount":9,"integrity":"sha512-OqKUcKY9UkeaKkuMsMhFuxCSQCAN0snTooQm9bFBhTnOih1t4u7Gxy1XZOTgNwh8tldiJhJ/1575s9xu2aSUTQ==","signatures":[{"sig":"MEYCIQDnCsIk7h2lTwwLo8yZ7qxhRx6qm1R0rDRZ76U83QI/mAIhAJc0AffX77r+LHNzLvZnO7Gz4zbAOhqVJbl1WXAK+kHd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293472},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"bd775e414ef07933dd1aee158232560d63592de5","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.4_1775844301499_0.7442700242994518","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"impeccable","version":"2.1.5","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.5","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"b5dc805bdc4ba9fe06bc0d32ac6a4571d5a5d00b","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.5.tgz","fileCount":9,"integrity":"sha512-y3qMz3d67W/QUpWx+NwzCFyuLstaITP3k1kiuOFJ+dqRaR4Z+TnEoLR2VLwBTV71jZ8e02FzOis4SvY0qTM7wg==","signatures":[{"sig":"MEUCIQDB9ljD6kjMK75tBSPMngtTBZepzOBRBc/DT5U1Llas2QIgPcbD41G3Yz6/zjhhKfqNzXY6sR7pfST2HpOKqf5jadc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293257},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"7670d1325ac731d6aa0190b003c1b8482dd0f619","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.5_1775845118712_0.69070991308238","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"impeccable","version":"2.1.6","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.6","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"b77754f886faafc9a34f6406642ecccb04b96d82","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.6.tgz","fileCount":9,"integrity":"sha512-S5CqIMaHpErI2/Z3V8H95ULKNTQgr9L7reyyRrzobpTAO1o8GxPzmD5STyaPwqBnjvk2kEF80cJom0AbS0cJDg==","signatures":[{"sig":"MEUCIFv9DuKyw8YLLlVFX3geCchnMkvDNScoVjhlHq9uMMeFAiEA0mURQvF/xCfq0JODIsLLMlzJdE9SnggeApYhe/9xru8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294187},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"a530f08df62caeed53e637b282c50fca37ee23a4","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.6_1775846646314_0.03197850039009298","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"impeccable","version":"2.1.7","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.7","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"ff663e7b85cfad9d5ec8dab5e691e6ecf55ca3cc","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.7.tgz","fileCount":9,"integrity":"sha512-u+XZO6CpV7ci1lUYH07V2dbT61QfOcEogIWwl1zCMGOelf1XK4kMPhxs6lKKWUtuVag1L74y9kCIR0nDN3fyEw==","signatures":[{"sig":"MEQCIAuY0M+Xm5oztjXiJXl6XcxmL0ZZSNNFgOi1CD4502p2AiAXRaBf3l48X9SZV11Yfr/bf8Bcy4o1s1EPspQWP2dC8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294571},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"7d29aaca1b7b48422c6d11edd68bf7195714be20","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"_hasShrinkwrap":false,"devDependencies":{"motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.75.0","playwright":"^1.58.2"},"optionalDependencies":{"puppeteer":"^24.39.1"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.7_1775849779717_0.5826340512439372","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"impeccable","version":"2.1.8","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.8","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"bin/cli.js"},"dist":{"shasum":"aede59e0770ef78a5d7ecb99bff4fb3fb6e0f06f","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.8.tgz","fileCount":9,"integrity":"sha512-jxJGEk/tN8X1yHrMviwacrmAPjq2+6zfurOIpLVshOVTUCDXlpMhGKg+ETNHNeVA9dbxrNadLR0Drrhou6GEqg==","signatures":[{"sig":"MEYCIQC+aKxRAxj3PcwyNnjlOC6v9np2IcBE9QjYsZxe5FPKkwIhAOZhGusUysn/yJ9IM+CV0WhRgZrVD5m5jePSmrWYTBQz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299955},"main":"./src/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"gitHead":"5881a0843b6f68f8186a8dc2051cec1ed0d32d2e","scripts":{"dev":"bun run server/index.js","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js tests/windows-path-fix.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs && node --test tests/live-wrap.test.mjs && node --test tests/live-accept.test.mjs && node --test tests/live-inject.test.mjs && node --test tests/live-server.test.mjs && node --test tests/framework-fixtures.test.mjs","build":"bun run scripts/build.js","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && wrangler pages dev","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","build:browser":"node scripts/build-browser-detector.js","release:skill":"node scripts/release.mjs skill","test:live-e2e":"node --test --test-timeout=600000 tests/live-e2e.test.mjs","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsdom":"29.0.0","marked":"^16.4.2"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.85.0","playwright":"^1.59.1","@google/genai":"^1.50.1","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.91.1","modern-screenshot":"^4.7.0","@anthropic-ai/claude-agent-sdk":"^0.2.119"},"optionalDependencies":{"puppeteer":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.8_1777398781957_0.39209146182974863","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"name":"impeccable","version":"2.1.9","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.1.9","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"8271cca6fef94858b8e317fcebb5fb9fdadbd755","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.9.tgz","fileCount":10,"integrity":"sha512-OrrTiPcWuvIuEDwpiQWprcyOVwTofZpMQOx5aznm5MVfiW3rLHEK9zCppwE6QL2apj53N0mVcojFGzjNoqG3cQ==","signatures":[{"sig":"MEUCIQCweAYMjQVlhuKe2siHHnLR+JLo6LXDiqyj9qFdXwXlXAIgJJEiKwZo02NpdwaivoOK5j3y+NtZeY5tX5t9Ukbu8Mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368666},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"dc715c7359cc44f7d20c638deaec2f17e6b2f4b3","scripts":{"dev":"npx astro dev","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js tests/windows-path-fix.test.js && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs && node --test tests/impeccable-paths.test.mjs && node --test tests/live-wrap.test.mjs && node --test tests/live-reference.test.mjs && node --test tests/live-accept.test.mjs && node --test tests/live-inject.test.mjs && node --test tests/live-poll.test.mjs && node --test tests/live-server.test.mjs && node --test tests/live-browser-regression.test.mjs && node --test tests/live-session-store.test.mjs && node --test tests/live-browser-session.test.mjs && node --test tests/live-browser-source.test.mjs && node --test tests/live-completion.test.mjs && node --test tests/live-recovery-commands.test.mjs && node --test tests/framework-fixtures.test.mjs","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","build:skills":"bun run scripts/build.js","build:browser":"node scripts/build-browser-detector.js","release:skill":"node scripts/release.mjs skill","test:live-e2e":"node --test --test-timeout=600000 tests/live-e2e.test.mjs","build:extension":"node scripts/build-extension.js"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.15.0","dependencies":{"jsdom":"29.0.0","marked":"^16.4.2"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","archiver":"^7.0.1","wrangler":"^4.85.0","playwright":"^1.59.1","@google/genai":"^1.50.1","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.91.1","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.2.119"},"optionalDependencies":{"puppeteer":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.1.9_1778658472015_0.4361030371645005","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"impeccable","version":"2.2.0","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.2.0","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"ae1b1c11823406ecc8afa4ee0b2352f9691272ff","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.2.0.tgz","fileCount":25,"integrity":"sha512-opF9lnpCgQkYxVDAxlCpAUt/J1xIeGrW6lz+VQIoZ81V2uFrOg6VcLntkPxZkremL0lE/r+Ou8kOilbFjRGXlw==","signatures":[{"sig":"MEQCIH/fV35ijElTPB0ieC0N55FxV8euDxqImokaZ8PVm0c3AiBtHtclPLn/qlq2gnEVP6uefoh2T6rUwoRxH2YV+5K8hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":553551},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"9ffd3211d554783a010273fe0a34239f5df51fcb","scripts":{"dev":"npx astro dev","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js tests/windows-path-fix.test.js tests/lib/detector-bundle.test.js tests/lib/provider-blocks.test.js tests/lib/transformers/provider-blocks.test.js tests/lib/utils.test.js tests/lib/transformers/factory.test.js tests/lib/transformers/providers.test.js tests/skills-cli.test.js && node --test tests/critique-storage.test.mjs && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs && node --test tests/impeccable-paths.test.mjs && node --test tests/live-wrap.test.mjs && node --test tests/live-insert.test.mjs && node --test tests/live-insert-ui.test.mjs && node --test tests/live-event-validation.test.mjs && node --test tests/live-reference.test.mjs && node --test tests/live-e2e-agent-output.test.mjs && node --test tests/live-e2e-llm-agent.test.mjs && node --test tests/live-e2e-cli-options.test.mjs && node --test tests/live-accept.test.mjs && node --test tests/live-inject.test.mjs && node --test tests/live-poll.test.mjs && node --test tests/live-poll-stream.test.mjs && node --test tests/live-server.test.mjs && node --test tests/live-browser-regression.test.mjs && node --test tests/live-session-store.test.mjs && node --test tests/live-browser-session.test.mjs && node --test tests/live-browser-source.test.mjs && node --test tests/live-completion.test.mjs && node --test tests/live-recovery-commands.test.mjs && node --test tests/framework-fixtures.test.mjs","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","build:skills":"bun run scripts/build.js","test:cli-e2e":"IMPECCABLE_CLI_E2E=1 bun test tests/skills-cli.test.js","build:browser":"node scripts/build-browser-detector.js","release:skill":"node scripts/release.mjs skill","test:live-e2e":"node --test --test-timeout=600000 tests/live-e2e.test.mjs","bench:detector":"node scripts/benchmark-detector.mjs","build:extension":"node scripts/build-extension.js","test:live-e2e-agent":"node --test tests/live-e2e/agent-insert.test.mjs","test:skill-behavior":"node --test --test-timeout=300000 tests/skill-behavior/scenarios.test.mjs","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^16.4.2","css-tree":"^3.2.1","domutils":"^3.2.2","css-select":"^5.2.2","htmlparser2":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^7.0.1","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^1.50.1","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.91.1","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.2.119"},"optionalDependencies":{"puppeteer":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.2.0_1780003704612_0.1529309355178532","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"impeccable","version":"2.3.0","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.3.0","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"57cb2404ef00ee46798106213b4caa10f9847581","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.3.0.tgz","fileCount":25,"integrity":"sha512-48KSGOH6f5w1M7iJOTX+YiE9qHoDlc0j4Tx1CtGqM0SpSkyNJedTIi4K2ACgvd1SJv5sjrUqCmNtZ9WzpEnSCQ==","signatures":[{"sig":"MEQCIEhsV2ddROXVvlL9G7+tFxoSMLzAqPA3d/vL+vcDClCqAiBAoSRWRD1p4ncDgGHpebcm4v6PEtWZOBIY4DHoN95ZZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555912},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"7253b3870a50fe4d404914ef4bc4836661132c18","scripts":{"dev":"npx astro dev","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js tests/windows-path-fix.test.js tests/lib/detector-bundle.test.js tests/lib/provider-blocks.test.js tests/lib/transformers/provider-blocks.test.js tests/lib/utils.test.js tests/lib/transformers/factory.test.js tests/lib/transformers/providers.test.js tests/skills-cli.test.js && node --test tests/critique-storage.test.mjs && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs && node --test tests/impeccable-paths.test.mjs && node --test tests/live-wrap.test.mjs && node --test tests/live-insert.test.mjs && node --test tests/live-insert-ui.test.mjs && node --test tests/live-event-validation.test.mjs && node --test tests/live-reference.test.mjs && node --test tests/live-e2e-agent-output.test.mjs && node --test tests/live-e2e-llm-agent.test.mjs && node --test tests/live-e2e-cli-options.test.mjs && node --test tests/live-accept.test.mjs && node --test tests/live-inject.test.mjs && node --test tests/live-poll.test.mjs && node --test tests/live-poll-stream.test.mjs && node --test tests/live-server.test.mjs && node --test tests/live-browser-regression.test.mjs && node --test tests/live-session-store.test.mjs && node --test tests/live-browser-session.test.mjs && node --test tests/live-browser-source.test.mjs && node --test tests/live-completion.test.mjs && node --test tests/live-recovery-commands.test.mjs && node --test tests/framework-fixtures.test.mjs","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","build:skills":"bun run scripts/build.js","test:cli-e2e":"IMPECCABLE_CLI_E2E=1 bun test tests/skills-cli.test.js","build:browser":"node scripts/build-browser-detector.js","release:skill":"node scripts/release.mjs skill","test:live-e2e":"node --test --test-timeout=600000 tests/live-e2e.test.mjs","bench:detector":"node scripts/benchmark-detector.mjs","build:extension":"node scripts/build-extension.js","test:live-e2e-agent":"node --test tests/live-e2e/agent-insert.test.mjs","test:skill-behavior":"node --test --test-timeout=300000 tests/skill-behavior/scenarios.test.mjs","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^16.4.2","css-tree":"^3.2.1","domutils":"^3.2.2","css-select":"^5.2.2","htmlparser2":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^7.0.1","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^1.50.1","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.91.1","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.2.119"},"optionalDependencies":{"puppeteer":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.3.0_1780006272796_0.6832951781333463","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"impeccable","version":"2.3.1","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.3.1","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"0e26fdf137d4a65b3f6dec97078ba28430388841","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.3.1.tgz","fileCount":25,"integrity":"sha512-FMX7WHTXImjWqj8q0MhN4aR+6QU6CxZZJw+gyVGi0l3yW6kW4LadydICuuViqmvzjB6rwgzKNwp6g3stJbSOpg==","signatures":[{"sig":"MEUCIA+O9ZBcXYT6mN8lkH2QaWNEd2ZqEOC6+kkNHAgJG4BSAiEA8i9kJCKc6at+0Pn0YFOoWr598YU+WPfqkUGSV+6Yczw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":554079},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"99fbe4bb10a1453c82027a477503ce240d9b0b47","scripts":{"dev":"npx astro dev","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js tests/windows-path-fix.test.js tests/lib/detector-bundle.test.js tests/lib/provider-blocks.test.js tests/lib/transformers/provider-blocks.test.js tests/lib/utils.test.js tests/lib/transformers/factory.test.js tests/lib/transformers/providers.test.js tests/skills-cli.test.js && node --test tests/critique-storage.test.mjs && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs && node --test tests/impeccable-paths.test.mjs && node --test tests/live-wrap.test.mjs && node --test tests/live-wrap-buffer-aware.test.mjs && node --test tests/live-insert.test.mjs && node --test tests/live-insert-ui.test.mjs && node --test tests/live-event-validation.test.mjs && node --test tests/live-reference.test.mjs && node --test tests/live-e2e-agent-output.test.mjs && node --test tests/live-e2e-llm-agent.test.mjs && node --test tests/live-e2e-cli-options.test.mjs && node --test tests/live-accept.test.mjs && node --test tests/live-accept-scrub.test.mjs && node --test tests/live-commit-manual-edits.test.mjs && node --test tests/live-discard-manual-edits.test.mjs && node --test tests/live-manual-edits-buffer.test.mjs && node --test tests/live-inject.test.mjs && node --test tests/live-poll.test.mjs && node --test tests/live-poll-stream.test.mjs && node --test tests/live-server.test.mjs && node --test tests/live-copy-edit-agent.test.mjs && node --test tests/live-browser-regression.test.mjs && node --test tests/live-session-store.test.mjs && node --test tests/live-browser-session.test.mjs && node --test tests/live-browser-source.test.mjs && node --test tests/live-completion.test.mjs && node --test tests/live-recovery-commands.test.mjs && node --test tests/framework-fixtures.test.mjs","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","build:skills":"bun run scripts/build.js","test:cli-e2e":"IMPECCABLE_CLI_E2E=1 bun test tests/skills-cli.test.js","build:browser":"node scripts/build-browser-detector.js","release:skill":"node scripts/release.mjs skill","test:live-e2e":"node --test --test-timeout=600000 tests/live-e2e.test.mjs","bench:detector":"node scripts/benchmark-detector.mjs","build:extension":"node scripts/build-extension.js","test:live-e2e-agent":"node --test tests/live-e2e/agent-insert.test.mjs","test:skill-behavior":"node --test --test-timeout=300000 tests/skill-behavior/scenarios.test.mjs","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^16.4.2","css-tree":"^3.2.1","domutils":"^3.2.2","css-select":"^5.2.2","htmlparser2":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^7.0.1","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^1.50.1","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.91.1","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.2.119"},"optionalDependencies":{"puppeteer":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.3.1_1780028643764_0.9531165021261279","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"impeccable","version":"2.3.2","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@2.3.2","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"1eab3bea4d68232bc069821130c0cd27f9776954","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.3.2.tgz","fileCount":25,"integrity":"sha512-tfZzf1dzCT9HWSaNvw1TckZNhilnQYgB+J7Vqf6dsiWApXGDYWje3yI0IknuY0Pp8QJHxNkowQ9zCS5jg9O93g==","signatures":[{"sig":"MEYCIQDE5S0zddpTZPF2HGpmxc/vA39ptiGruk9i8qahN4GZ9AIhALMrbVbCedRHcBVKEOlgNmhqm915VHYNCdZHTQaTgsUl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":549856},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=18"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"b913668ba4d25b95c4a62278d3637837e9d2c6d9","scripts":{"dev":"npx astro dev","test":"bun test tests/build.test.js tests/detect-antipatterns.test.js tests/windows-path-fix.test.js tests/lib/detector-bundle.test.js tests/lib/provider-blocks.test.js tests/lib/transformers/provider-blocks.test.js tests/lib/utils.test.js tests/lib/transformers/factory.test.js tests/lib/transformers/providers.test.js tests/skills-cli.test.js && node --test tests/critique-storage.test.mjs && node --test tests/detect-antipatterns-fixtures.test.mjs && node --test tests/detect-antipatterns-browser.test.mjs && node --test tests/cleanup-deprecated.test.mjs && node --test tests/impeccable-paths.test.mjs && node --test tests/live-wrap.test.mjs && node --test tests/live-wrap-buffer-aware.test.mjs && node --test tests/live-insert.test.mjs && node --test tests/live-insert-ui.test.mjs && node --test tests/live-event-validation.test.mjs && node --test tests/live-reference.test.mjs && node --test tests/live-e2e-agent-output.test.mjs && node --test tests/live-e2e-llm-agent.test.mjs && node --test tests/live-e2e-cli-options.test.mjs && node --test tests/live-accept.test.mjs && node --test tests/live-accept-scrub.test.mjs && node --test tests/live-commit-manual-edits.test.mjs && node --test tests/live-discard-manual-edits.test.mjs && node --test tests/live-manual-edits-buffer.test.mjs && node --test tests/live-inject.test.mjs && node --test tests/live-poll.test.mjs && node --test tests/live-poll-stream.test.mjs && node --test tests/live-server.test.mjs && node --test tests/live-copy-edit-agent.test.mjs && node --test tests/live-browser-regression.test.mjs && node --test tests/live-session-store.test.mjs && node --test tests/live-browser-session.test.mjs && node --test tests/live-browser-source.test.mjs && node --test tests/live-completion.test.mjs && node --test tests/live-recovery-commands.test.mjs && node --test tests/framework-fixtures.test.mjs","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","build:skills":"bun run scripts/build.js","test:cli-e2e":"IMPECCABLE_CLI_E2E=1 bun test tests/skills-cli.test.js","build:browser":"node scripts/build-browser-detector.js","release:skill":"node scripts/release.mjs skill","test:live-e2e":"node --test --test-timeout=600000 tests/live-e2e.test.mjs","bench:detector":"node scripts/benchmark-detector.mjs","build:extension":"node scripts/build-extension.js","test:live-e2e-agent":"node --test tests/live-e2e/agent-insert.test.mjs","test:skill-behavior":"node --test --test-timeout=300000 tests/skill-behavior/scenarios.test.mjs","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.15.0","dependencies":{"marked":"^16.4.2","css-tree":"^3.2.1","domutils":"^3.2.2","css-select":"^5.2.2","htmlparser2":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^7.0.1","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^1.50.1","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.91.1","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.2.119"},"optionalDependencies":{"puppeteer":"^24.42.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_2.3.2_1780104885124_0.2355105102576185","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"impeccable","version":"3.0.0","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@3.0.0","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"e8dc6c138d52e4e0f1efb4749f0f5b51e6300cc4","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-3.0.0.tgz","fileCount":26,"integrity":"sha512-zgeIItFpOxN4+m9CgVxiw0PL87xnt5F3CsGpGJK47gDtgY/V3Wqo8wE6OiscMBhDnD7bpeSnmpGseEi5D75ApA==","signatures":[{"sig":"MEYCIQDzpS9dpztEBfGrX9SWrV/pZ8OFQoITR6n9L46ZN2OlYgIhAKu68aB7u5OmmQFCAxjAJ2F2J4gdvt51LQoUCvHY0l46","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":628698},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=24"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"644398011738ebe842b72103ba0575bf92c4476d","scripts":{"dev":"bun run scripts/gen-dev-api.mjs && npx astro dev","test":"node scripts/run-tests.mjs default","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","test:core":"node scripts/run-tests.mjs core","test:live":"node scripts/run-tests.mjs live","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","smoke:hooks":"node scripts/smoke-provider-hooks.mjs","build:skills":"bun run scripts/build.js --skip-root-sync","test:cli-e2e":"node scripts/run-tests.mjs cli-e2e","build:browser":"node scripts/build-browser-detector.js","build:release":"bun run build:skills:release && bun run build:site && cp -R dist build/_data/dist","release:skill":"node scripts/release.mjs skill","test:detector":"node scripts/run-tests.mjs detector","test:live-e2e":"node scripts/run-tests.mjs live-e2e","bench:detector":"node scripts/benchmark-detector.mjs","test:framework":"node scripts/run-tests.mjs framework","build:extension":"node scripts/build-extension.js","rebuild:release":"bun run clean && bun run build:release","test:cli-remote-e2e":"node scripts/run-tests.mjs cli-remote-e2e","test:live-e2e-agent":"node scripts/run-tests.mjs live-e2e-agent","test:skill-behavior":"node scripts/run-tests.mjs skill-behavior","build:skills:release":"bun run scripts/build.js","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser","test:live-e2e-accept-cleanup":"node scripts/run-tests.mjs live-e2e-accept-cleanup","test:live-svelte-adapter-deepseek":"node scripts/run-tests.mjs live-svelte-adapter-deepseek"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"marked":"^18.0.5","css-tree":"^3.2.1","domutils":"^4.0.2","css-select":"^7.0.0","extract-zip":"^2.0.1","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^8.0.0","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^2.8.0","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.102.0","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.3.165"},"optionalDependencies":{"puppeteer":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_3.0.0_1781496481658_0.5986876841884847","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"impeccable","version":"3.0.1","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@3.0.1","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"0c235dba13461d36d85faecb3691ed7e84c4f490","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-3.0.1.tgz","fileCount":26,"integrity":"sha512-klPQIRNqE6Xuz8Ihvu/2YoC8sZ5KvidHU8kg6R1iE2lzXCLYGjf/xJwIBrrg+yJkKeW+hSCPGMzgk6V0h2PUNg==","signatures":[{"sig":"MEYCIQCbAVWqIHf7kX7oqkj1CDO8yGBh4yWE5MuGyhq1TMjFTgIhANrXgMUz9vYOc/V9A7psDWoZlbqHd2BKEn7Tk5eumfza","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":629297},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=24"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"858b9bbea637c1b3beaf89b2ff7a8c22163ee7ef","scripts":{"dev":"bun run scripts/gen-dev-api.mjs && npx astro dev","test":"node scripts/run-tests.mjs default","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","test:core":"node scripts/run-tests.mjs core","test:live":"node scripts/run-tests.mjs live","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","smoke:hooks":"node scripts/smoke-provider-hooks.mjs","build:skills":"bun run scripts/build.js --skip-root-sync","test:cli-e2e":"node scripts/run-tests.mjs cli-e2e","build:browser":"node scripts/build-browser-detector.js","build:release":"bun run build:skills:release && bun run build:site && cp -R dist build/_data/dist","release:skill":"node scripts/release.mjs skill","test:detector":"node scripts/run-tests.mjs detector","test:live-e2e":"node scripts/run-tests.mjs live-e2e","bench:detector":"node scripts/benchmark-detector.mjs","test:framework":"node scripts/run-tests.mjs framework","build:extension":"node scripts/build-extension.js","rebuild:release":"bun run clean && bun run build:release","test:cli-remote-e2e":"node scripts/run-tests.mjs cli-remote-e2e","test:live-e2e-agent":"node scripts/run-tests.mjs live-e2e-agent","test:skill-behavior":"node scripts/run-tests.mjs skill-behavior","build:skills:release":"bun run scripts/build.js","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser","test:live-e2e-accept-cleanup":"node scripts/run-tests.mjs live-e2e-accept-cleanup","test:live-svelte-adapter-deepseek":"node scripts/run-tests.mjs live-svelte-adapter-deepseek"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"marked":"^18.0.5","css-tree":"^3.2.1","domutils":"^4.0.2","css-select":"^7.0.0","extract-zip":"^2.0.1","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^8.0.0","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^2.8.0","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.102.0","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.3.165"},"optionalDependencies":{"puppeteer":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_3.0.1_1781498081086_0.32155601191251293","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"impeccable","version":"3.0.2","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@3.0.2","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"bea9e8e6d510742517f2cc5b66bd6a9751c074ef","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-3.0.2.tgz","fileCount":28,"integrity":"sha512-+TohbqA6bQsib7kW0sKBYy6av+AZRmcfLr02WWO+efMf8pADJa9GWVpczw04MtskzTP57F0qsIx2dMbkeMDLuw==","signatures":[{"sig":"MEQCIBQpJX3MEEJdAwDXfsKBD1Z6xmJBvYhthERg6xL/TWzKAiBsJ3kXjdF3TXSD6R8BQDsh5nwz04u1lF7A12GMLs8lVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708519},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=24"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"b928fe35fb8128e494906921e7e65b24d0db5317","scripts":{"dev":"bun run scripts/gen-dev-api.mjs && npx astro dev","test":"node scripts/run-tests.mjs default","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","test:core":"node scripts/run-tests.mjs core","test:live":"node scripts/run-tests.mjs live","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","smoke:hooks":"node scripts/smoke-provider-hooks.mjs","build:skills":"bun run scripts/build.js --skip-root-sync","test:cli-e2e":"node scripts/run-tests.mjs cli-e2e","build:browser":"node scripts/build-browser-detector.js","build:release":"bun run build:skills:release && bun run build:site && cp -R dist build/_data/dist","release:skill":"node scripts/release.mjs skill","test:detector":"node scripts/run-tests.mjs detector","test:live-e2e":"node scripts/run-tests.mjs live-e2e","bench:detector":"node scripts/benchmark-detector.mjs","test:framework":"node scripts/run-tests.mjs framework","build:extension":"node scripts/build-extension.js","rebuild:release":"bun run clean && bun run build:release","test:cli-remote-e2e":"node scripts/run-tests.mjs cli-remote-e2e","test:live-e2e-agent":"node scripts/run-tests.mjs live-e2e-agent","test:skill-behavior":"node scripts/run-tests.mjs skill-behavior","build:skills:release":"bun run scripts/build.js","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser","test:live-e2e-accept-cleanup":"node scripts/run-tests.mjs live-e2e-accept-cleanup","test:live-svelte-adapter-deepseek":"node scripts/run-tests.mjs live-svelte-adapter-deepseek"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.12.1","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.11.0","dependencies":{"fflate":"^0.8.3","marked":"^18.0.5","css-tree":"^3.2.1","domutils":"^4.0.2","css-select":"^7.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^8.0.0","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^2.8.0","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.102.0","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.3.165"},"optionalDependencies":{"puppeteer":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_3.0.2_1781583242294_0.9707320451272792","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"impeccable","version":"3.0.3","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","_id":"impeccable@3.0.3","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"homepage":"https://impeccable.style","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"bin":{"impeccable":"cli/bin/cli.js"},"dist":{"shasum":"04d61fb4a630b9b50dcb900f185082da1c76d496","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-3.0.3.tgz","fileCount":28,"integrity":"sha512-U69p+Ixp5i+rmgGyOBpmnTOAWHtDiGtgXDrFOEo/h8ksNfII/PS924/17f+wkET7x+IxzT0sWPuSEz/REhfarg==","signatures":[{"sig":"MEUCIFXxhbe5vPZuO+aEC+H++TeruoQa5GLpElSDhDfRoEOaAiEAmHqPK1C+UVoRKYZYrQMbCj8HnxOf7J9VR/NPPf4Ngfc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":710731},"main":"./cli/engine/detect-antipatterns.mjs","type":"module","engines":{"node":">=24"},"exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"gitHead":"b86f2cc353fe9752b2f81131218cad20718de25d","scripts":{"dev":"bun run scripts/gen-dev-api.mjs && npx astro dev","test":"node scripts/run-tests.mjs default","audit":"bun audit --audit-level=moderate","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","clean":"rm -rf dist build","deploy":"bun run build && wrangler pages deploy build/","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","preview":"bun run build && npx astro preview","rebuild":"bun run clean && bun run build","og-image":"bun run scripts/generate-og-image.js","postpack":"cp README.repo.md README.md && rm README.repo.md","test:core":"node scripts/run-tests.mjs core","test:live":"node scripts/run-tests.mjs live","build:site":"npx astro build","screenshot":"bun run scripts/screenshot-antipatterns.js","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","smoke:hooks":"node scripts/smoke-provider-hooks.mjs","build:skills":"bun run scripts/build.js --skip-root-sync","test:cli-e2e":"node scripts/run-tests.mjs cli-e2e","build:browser":"node scripts/build-browser-detector.js","build:release":"bun run build:skills:release && bun run build:site && cp -R dist build/_data/dist","release:skill":"node scripts/release.mjs skill","test:detector":"node scripts/run-tests.mjs detector","test:live-e2e":"node scripts/run-tests.mjs live-e2e","bench:detector":"node scripts/benchmark-detector.mjs","test:framework":"node scripts/run-tests.mjs framework","build:extension":"node scripts/build-extension.js","rebuild:release":"bun run clean && bun run build:release","test:cli-remote-e2e":"node scripts/run-tests.mjs cli-remote-e2e","test:live-e2e-agent":"node scripts/run-tests.mjs live-e2e-agent","test:skill-behavior":"node scripts/run-tests.mjs skill-behavior","build:skills:release":"bun run scripts/build.js","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser","test:live-e2e-accept-cleanup":"node scripts/run-tests.mjs live-e2e-accept-cleanup","test:live-svelte-adapter-deepseek":"node scripts/run-tests.mjs live-svelte-adapter-deepseek"},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"repository":{"url":"git+https://github.com/pbakaus/impeccable.git","type":"git"},"_npmVersion":"11.13.0","description":"Design skills, commands, and anti-pattern detection for AI coding agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"fflate":"^0.8.3","marked":"^18.0.5","css-tree":"^3.2.1","domutils":"^4.0.2","css-select":"^7.0.0","htmlparser2":"^12.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ai":"^6.0.168","zod":"^4.3.6","astro":"^6.2.1","motion":"^12.38.0","fontkit":"^2.0.4","archiver":"^8.0.0","wrangler":"^4.85.0","playwright":"^1.59.1","opentype.js":"^2.0.0","@google/genai":"^2.8.0","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@ai-sdk/anthropic":"^3.0.71","@anthropic-ai/sdk":"^0.102.0","modern-screenshot":"^4.7.0","@paper-design/shaders":"^0.0.76","@anthropic-ai/claude-agent-sdk":"^0.3.165"},"optionalDependencies":{"puppeteer":"^25.1.0"},"_npmOperationalInternal":{"tmp":"tmp/impeccable_3.0.3_1781665016362_0.9945998631167503","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"impeccable","version":"3.1.0","author":{"name":"Paul Bakaus"},"description":"Design skills, commands, and anti-pattern detection for AI coding agents","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"license":"Apache-2.0","homepage":"https://impeccable.style","repository":{"type":"git","url":"git+https://github.com/pbakaus/impeccable.git"},"engines":{"node":">=24"},"type":"module","bin":{"impeccable":"cli/bin/cli.js"},"main":"./cli/engine/detect-antipatterns.mjs","exports":{".":"./cli/engine/detect-antipatterns.mjs","./browser":"./cli/engine/detect-antipatterns-browser.js"},"scripts":{"build:skills":"bun run scripts/build.js --skip-root-sync","build:skills:release":"bun run scripts/build.js","build:site":"npx astro build","build":"bun run build:skills && bun run build:site && cp -R dist build/_data/dist","build:release":"bun run build:skills:release && bun run build:site && cp -R dist build/_data/dist","build:browser":"node scripts/build-browser-detector.js","build:extension":"node scripts/build-extension.js","clean":"rm -rf dist build","rebuild":"bun run clean && bun run build","rebuild:release":"bun run clean && bun run build:release","dev":"bun run scripts/gen-dev-api.mjs && npx astro dev","preview":"bun run build && npx astro preview","deploy":"bun run build && wrangler pages deploy build/","test":"node scripts/run-tests.mjs default","test:core":"node scripts/run-tests.mjs core","test:detector":"node scripts/run-tests.mjs detector","test:framework":"node scripts/run-tests.mjs framework","test:live":"node scripts/run-tests.mjs live","test:cli-e2e":"node scripts/run-tests.mjs cli-e2e","test:cli-remote-e2e":"node scripts/run-tests.mjs cli-remote-e2e","test:live-e2e":"node scripts/run-tests.mjs live-e2e","test:live-e2e-accept-cleanup":"node scripts/run-tests.mjs live-e2e-accept-cleanup","test:live-e2e-agent":"node scripts/run-tests.mjs live-e2e-agent","test:skill-behavior":"node scripts/run-tests.mjs skill-behavior","test:live-svelte-adapter-deepseek":"node scripts/run-tests.mjs live-svelte-adapter-deepseek","smoke:hooks":"node scripts/smoke-provider-hooks.mjs","bench:detector":"node scripts/benchmark-detector.mjs","bench:detector:browser":"node scripts/benchmark-detector.mjs --browser","audit":"bun audit --audit-level=moderate","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","postpack":"cp README.repo.md README.md && rm README.repo.md","release:skill":"node scripts/release.mjs skill","release:cli":"node scripts/release.mjs cli","release:ext":"node scripts/release.mjs extension","screenshot":"bun run scripts/screenshot-antipatterns.js","og-image":"bun run scripts/generate-og-image.js"},"dependencies":{"css-select":"^7.0.0","css-tree":"^3.2.1","domutils":"^4.0.2","fflate":"^0.8.3","htmlparser2":"^12.0.0","marked":"^18.0.5"},"optionalDependencies":{"puppeteer":"^25.1.0"},"devDependencies":{"@ai-sdk/anthropic":"^3.0.71","@ai-sdk/google":"^3.0.75","@ai-sdk/openai":"^3.0.53","@anthropic-ai/claude-agent-sdk":"^0.3.165","@anthropic-ai/sdk":"^0.104.2","@google/genai":"^2.8.0","@paper-design/shaders":"^0.0.76","ai":"^6.0.168","archiver":"^8.0.0","astro":"^6.2.1","fontkit":"^2.0.4","modern-screenshot":"^4.7.0","motion":"^12.38.0","opentype.js":"^2.0.0","playwright":"^1.59.1","wrangler":"^4.85.0","zod":"^4.3.6"},"gitHead":"609bbfbd5b8d4ac629267c13f06489eca8689cca","_id":"impeccable@3.1.0","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-BAWsjooJO/uM4ocyB0fnO2ZfbrDWO3rEe+j8SAvyzLuqKHb5somQmI1G9uvRZXJ+peFcG2RiYyE5Ad83PyCa/A==","shasum":"198e7d3b7f3d6381a59542ecbf458c4983c70e83","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-3.1.0.tgz","fileCount":29,"unpackedSize":721774,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE19VbG1evXYyjbw+SXxiXgfx3yoxaQtWT2sLPXHaGL4AiAG5DWDRiwMbJbq4j3GMj1VjyCr2Y5xEjKl4tbOYuThfw=="}]},"_npmUser":{"name":"paulbakaus","email":"paul.bakaus@gmail.com"},"directories":{},"maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/impeccable_3.1.0_1782074627102_0.7599157767814597"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-30T19:09:32.163Z","modified":"2026-06-21T20:43:47.385Z","2.0.0":"2026-03-30T19:09:32.333Z","2.0.1":"2026-03-30T19:19:29.132Z","2.0.4":"2026-04-03T23:48:44.667Z","2.0.6":"2026-04-04T02:00:54.272Z","2.0.7":"2026-04-08T21:23:41.848Z","2.1.0":"2026-04-10T16:53:40.896Z","2.1.1":"2026-04-10T17:24:51.569Z","2.1.2":"2026-04-10T17:41:21.319Z","2.1.3":"2026-04-10T17:58:46.004Z","2.1.4":"2026-04-10T18:05:01.728Z","2.1.5":"2026-04-10T18:18:38.858Z","2.1.6":"2026-04-10T18:44:06.462Z","2.1.7":"2026-04-10T19:36:19.874Z","2.1.8":"2026-04-28T17:53:02.112Z","2.1.9":"2026-05-13T07:47:52.155Z","2.2.0":"2026-05-28T21:28:24.765Z","2.3.0":"2026-05-28T22:11:12.943Z","2.3.1":"2026-05-29T04:24:04.020Z","2.3.2":"2026-05-30T01:34:45.321Z","3.0.0":"2026-06-15T04:08:01.848Z","3.0.1":"2026-06-15T04:34:41.248Z","3.0.2":"2026-06-16T04:14:02.486Z","3.0.3":"2026-06-17T02:56:56.563Z","3.1.0":"2026-06-21T20:43:47.265Z"},"bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"author":{"name":"Paul Bakaus"},"license":"Apache-2.0","homepage":"https://impeccable.style","keywords":["design","frontend","ux","skills","ai","anti-patterns","lint","accessibility","css","html","detection","ci-cd"],"repository":{"type":"git","url":"git+https://github.com/pbakaus/impeccable.git"},"description":"Design skills, commands, and anti-pattern detection for AI coding agents","maintainers":[{"name":"paulbakaus","email":"paul.bakaus@gmail.com"}],"readme":"# Impeccable CLI\n\nDetect UI anti-patterns and design quality issues from the command line. Scans HTML, CSS, JSX, TSX, Vue, and Svelte files for 44 deterministic rules, including AI-generated UI tells, accessibility violations, and general design quality problems.\n\n## Quick Start\n\n```bash\n# Install skills into your AI harness (Claude, Cursor, Gemini, etc.)\nnpx impeccable skills install\n\n# Non-interactive install for a specific scope\nnpx impeccable skills install -y --providers=claude,codex --scope=project\n\n# First command to run inside your AI harness\n/impeccable init\n\n# Update skills to the latest version\nnpx impeccable skills update\n\n# Install or update skills without hook manifests\nnpx impeccable skills install --no-hooks\n\n# Link skills from a Git submodule checkout\nnpx impeccable skills link --source=.impeccable --providers=claude,cursor\n\n# List all available commands\nnpx impeccable skills help\n\n# Scan files or directories for anti-patterns\nnpx impeccable detect src/\n\n# Scan a live URL (requires Puppeteer)\nnpx impeccable detect https://example.com\n\n# JSON output for CI/tooling\nnpx impeccable detect --json src/\n\n# Deprecated compatibility flag; full scan still runs\nnpx impeccable detect --fast src/\n```\n\n## What It Detects\n\n**AI Slop Tells**: patterns that scream \"AI generated this\":\n- Side-tab accent borders, gradient text on headings\n- Purple/violet gradients and cyan-on-dark palettes\n- Dark mode with glowing accents, border + border-radius clashes\n\n**Typography Issues**: overused fonts (Inter, Roboto), flat type hierarchy, single font families\n\n**Color & Contrast**: WCAG AA violations, gray text on colored backgrounds, pure black/white\n\n**Layout & Composition**: nested cards, monotonous spacing, everything-centered layouts\n\n**Motion**: bounce/elastic easing, layout property transitions\n\n**Quality**: tiny body text, cramped padding, long line lengths, small touch targets\n\n44 deterministic detector rules in total. See the full catalog at [impeccable.style/slop](https://impeccable.style/slop).\n\n## Exit Codes\n\n- `0`: no issues found\n- `2`: anti-patterns detected\n\n## Options\n\n```\nimpeccable detect [options] [file-or-dir-or-url...]\n\n  --fast    Regex-only mode (skip jsdom, faster but less accurate)\n  --json    Output findings as JSON\n  --help    Show help\n```\n\n## Requirements\n\n- Node.js 24+\n- `jsdom` (included as dependency, used for HTML scanning)\n- `puppeteer` (optional, only needed for URL scanning)\n\n## Part of Impeccable\n\nThis CLI is part of [Impeccable](https://impeccable.style), a cross-provider design skill pack for AI-powered development tools. The full suite includes 23 commands for Claude, Cursor, GitHub Copilot, Gemini, Codex, and more.\n\n## License\n\n[Apache 2.0](https://github.com/pbakaus/impeccable/blob/main/LICENSE)\n","readmeFilename":"README.npm.md"}