{"_id":"impeccable","_rev":"13-36fe61634d429562e478de1427cf2cff","name":"impeccable","dist-tags":{"latest":"2.1.7"},"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","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":">=18"},"type":"module","bin":{"impeccable":"bin/cli.js"},"main":"./src/detect-antipatterns.mjs","exports":{".":"./src/detect-antipatterns.mjs","./browser":"./src/detect-antipatterns-browser.js"},"scripts":{"build":"bun run scripts/build.js","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","dev":"bun run server/index.js","preview":"bun run build && wrangler pages dev","deploy":"bun run build && wrangler pages deploy build/","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","prepack":"cp README.md README.repo.md && cp README.npm.md README.md","postpack":"cp README.repo.md README.md && rm README.repo.md","screenshot":"bun run scripts/screenshot-antipatterns.js","og-image":"bun run scripts/generate-og-image.js"},"dependencies":{"jsdom":"^29.0.0","marked":"^16.1.0"},"optionalDependencies":{"puppeteer":"^24.39.1"},"devDependencies":{"archiver":"^7.0.1","motion":"^12.38.0","playwright":"^1.58.2","wrangler":"^4.75.0"},"gitHead":"7d29aaca1b7b48422c6d11edd68bf7195714be20","_id":"impeccable@2.1.7","bugs":{"url":"https://github.com/pbakaus/impeccable/issues"},"_nodeVersion":"24.11.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-u+XZO6CpV7ci1lUYH07V2dbT61QfOcEogIWwl1zCMGOelf1XK4kMPhxs6lKKWUtuVag1L74y9kCIR0nDN3fyEw==","shasum":"ff663e7b85cfad9d5ec8dab5e691e6ecf55ca3cc","tarball":"https://registry.npmjs.org/impeccable/-/impeccable-2.1.7.tgz","fileCount":9,"unpackedSize":294571,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAuY0M+Xm5oztjXiJXl6XcxmL0ZZSNNFgOi1CD4502p2AiAXRaBf3l48X9SZV11Yfr/bf8Bcy4o1s1EPspQWP2dC8Q=="}]},"_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_2.1.7_1775849779717_0.5826340512439372"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-30T19:09:32.163Z","modified":"2026-04-10T19:36:19.981Z","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"},"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 25 specific patterns 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# Update skills to the latest version\nnpx impeccable skills update\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# Regex-only mode (faster, no jsdom)\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\n25 detections in total. See the full list at [impeccable.style](https://impeccable.style).\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 18+\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 22 steering commands for Claude, Cursor, 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"}