{"_id":"@bacnh85/pi-ux","_rev":"15-24585f83f255c56b628af2b32a5988b4","name":"@bacnh85/pi-ux","dist-tags":{"latest":"0.6.6"},"versions":{"0.3.0":{"name":"@bacnh85/pi-ux","version":"0.3.0","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.3.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"3916cd6e4e455f645106461bee5892409e0c92a9","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.3.0.tgz","fileCount":12,"integrity":"sha512-nXh/sRhpSO4XoUcYhnIrHhrvCDUnQzgHSEQ7AKIm8+5X0n7ZRMN1ylmO/AsQ+QQ9XDA8s0wzmbomE5SmnW/lRA==","signatures":[{"sig":"MEUCIQDB9RRSFTZe3L5OU09okjk7yMtbOSH6KweL6xitKL2+uwIgSnc5YRVaBnrqdWzs2i+Tm0DLRNuCLGOZXDQWWt/cYwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40525},"gitHead":"6812600885f2cc645a21938c8ce8ab2253fc58f7","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — enforces industrial-design principles, runs deterministic slop-audit gates, and ships reference design-system presets.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.3.0_1785469326718_0.24679871074243565","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@bacnh85/pi-ux","version":"0.4.2","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.4.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"2883d613955926f497dca7559e4bb75e6352dd84","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.4.2.tgz","fileCount":12,"integrity":"sha512-eVR/aWcE+pTeKUhPZXZRAPN7n45tlA7/wk3GLJisHpXOT7OFMYizry7XxUDjCYFOLrdn/zz/5cJ7GaNQl8amBA==","signatures":[{"sig":"MEQCIGts3R358j1xae9nYoCEDwOaLtLywrScXglh/pxetO46AiAeIKY9oFZo4e37K/nROUjYas+TpIo5knyfFzKbyELueg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67943},"gitHead":"62351f7eadf920b28788e744e208f087b0b56d93","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-only models, ships reference design-system presets.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.4.2_1785567413705_0.9440494873485299","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@bacnh85/pi-ux","version":"0.4.3","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.4.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions#readme","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"2d3cf2f77111b01fd95203615ce2ad9554cacb11","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.4.3.tgz","fileCount":12,"integrity":"sha512-ItYpuikDAaDWAO1ZMb/VOQ1/JDqeIHYP31n2xZQyfSyG/S8kRWiUQQy7V6TkG4dFI0+cIi1a76kR/OtU0orHBQ==","signatures":[{"sig":"MEUCIFKIEh8EVR01AstnV7a9u6p46eV1VSTYwHiy1UdA77lOAiEAgBXQrtS/1WPnQjSAZZ6tJoM1/An8dK1xjrgrSYHLZIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70003},"gitHead":"8d33234feaf546aac07e07cfeabb489ab1b86e41","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-only models, ships reference design-system presets.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.4.3_1785662824420_0.6946575357690912","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@bacnh85/pi-ux","version":"0.4.4","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.4.4","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"de88d1e0f724c2840b4ca358c3926efe9526d988","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.4.4.tgz","fileCount":12,"integrity":"sha512-ernmsFq+BdSK4u5lX8nX/oW5hBrjSAfIhJwAE+ZUcztnbK/mzSTwrMBgug2s9oBuU+5loCD06ttRkiDWmqFdag==","signatures":[{"sig":"MEYCIQCWVwBRLc/v/yMbbBBr4G7lRyHLLqXorlAw3lIi/lK2GQIhANzlV6aTLX9juH0El8ydaPrMxKAedTBoBGKP9VIhTNDw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70163},"gitHead":"b6dc2aa08224976862793b502d6ec946c2b9b2d4","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-only models, ships reference design-system presets.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.4.4_1785926408695_0.45375033562583256","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@bacnh85/pi-ux","version":"0.4.5","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.4.5","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"2ff0f40928f5edab9f8927925f6f78510cf2a0fd","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.4.5.tgz","fileCount":12,"integrity":"sha512-/tnIYQ0lZBrNVagGYh871ydIztcJTIfJWe4gMbcnH8AMN9FHke2gNL2Nom4hFDKzVMKmQqcxeXgQU2B/hrmQrQ==","signatures":[{"sig":"MEYCIQCC/4M4Yrv+qp3SGJNO6pzkJ+thQ+a3EvA53yuq1yOplgIhAOrnzF4ZHC0gzoqA3rjNT9a8O0HV2C4FhZA59ylWdKWm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70580},"gitHead":"fb130ee80571d4a6ec161fe7d7736085f32eff74","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-only models, ships reference design-system presets.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.4.5_1788013467174_0.4605400327402054","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@bacnh85/pi-ux","version":"0.4.6","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.4.6","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"601ae20fde7f44de73a585d628d805a9a4a2ee01","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.4.6.tgz","fileCount":13,"integrity":"sha512-jiqxGpb3rohnFxpFmf7lA1sO72G9Ga/5F92xMqR9GzNKqtakYr1cwQkhrdDU/4l1dv/nhnn8/i/skDUAvHfXPQ==","signatures":[{"sig":"MEUCIGqVAvWMrQu/dRkE2YANLXgdK2T88saizpiBYfNJSzJRAiEA+pjJQv30aKnKO4WJ8rLpz/hLzQbbOQdMzVDktgj5d8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89908},"gitHead":"8f9350757e92bf33cbb0af1d36360fc4731b25db","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-only models, ships reference design-system presets.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.4.6_1788757091468_0.24882043288954536","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@bacnh85/pi-ux","version":"0.4.7","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.4.7","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"bfc91cba6100c8afb6f616d26960c3d8c9572eab","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.4.7.tgz","fileCount":13,"integrity":"sha512-7msmJJFhdcCTW3pJqwE7rwNtU4z7U4yyI3N3WhE2Somum4Eml4j1py8JG03nY2+hNLUUan7u+ZRp6rOg2r3yWA==","signatures":[{"sig":"MEUCIQDBIH38eqNHmlXEKTN+i1uiDkX539G0hJx0nQD2l1DYPQIgRmMB/+bw+VEejACRyNY9ZbiVE+EHIxviHSTh0fO0bXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92209},"gitHead":"fc25702c6bed994da1dd5071c5ec8071bfd28393","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-only models, ships reference design-system presets.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.4.7_1789204261247_0.42624816551706246","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bacnh85/pi-ux","version":"0.5.0","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.5.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"273e0745578208f1c07682ac39ad663b1a4dbf05","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.5.0.tgz","fileCount":14,"integrity":"sha512-XnyXeoBHY8SPCwBJ142vzAhxLLJD+ygste6bfCv+z4lrjrY/v8plrbDAvBpIXxeIgaphb8HiJ3zr2EfuBo0wKw==","signatures":[{"sig":"MEUCIQCHt++qQGHT7FkzCrsw6SspMuYSzWH/tpBlLVdu07zW4AIgee56uC1IeAPHwuRJ4vS7FNS5n9eXPZ4FYgoIG0BAV5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120708},"gitHead":"80fe03ccd266a052b71e493cb71f8cb69aaaae86","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.5.0_1789602430943_0.3294521685853804","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bacnh85/pi-ux","version":"0.6.0","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.6.0","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"9c96ea3d3f68183a83c56d93742cbfbe439bf8de","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.6.0.tgz","fileCount":14,"integrity":"sha512-/p9bn1/facEM0Y4YGlEG6Nl/PK0sCmgow8YwO4AR9Cukl35Y+OAWXQR1yD9X8uk/cEQRZsR18W4BUHpEd2JZdQ==","signatures":[{"sig":"MEUCIQDR0GgOBetc/LKJpnmXQCXPcHZrdv5vBNmFUX9+SJMwfgIgVMnIs4tq21TTMBjmGHe/ank3hNPaM4hGOsNouWB00Vk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126582},"gitHead":"588651c7c7b6974e2b1c7a32d75a7d96cb920638","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.6.0_1789624813619_0.8819388893153488","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@bacnh85/pi-ux","version":"0.6.1","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.6.1","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"e6b786c2645fe3b761af1e90a92b4963befbae61","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.6.1.tgz","fileCount":14,"integrity":"sha512-V+JQOrGjY2FQjcWnYpRR6vdoCHin1T3Gfzs/HYtWRHPuzAdYhJJbrR8sYYM2ItEJt8JP72otLAi+beVpe8pd3g==","signatures":[{"sig":"MEQCIBNsVu5v96Qq+/sdBZzxIXJ/FfevKduwmNASlKWtu7FgAiA2jr0WU2HKFE2iVgBke0VBZcGdMo3kj30ZCfL4tIWBpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFUGC6dpDAvqMvZshEcLeCnWJyzRrYthGLrvSBfFXcAqAiAitfhO36f8EWvgg5bcEkiBkFNIHfHLm2pfZs1bxucPgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126566},"gitHead":"d00c3deaa5f3423b44adc2e160397b2feaf8465f","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.6.1_1789881027567_0.7660690669399026","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@bacnh85/pi-ux","version":"0.6.2","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.6.2","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"1047277c36900253c77a0bdbbf2f97390a599105","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.6.2.tgz","fileCount":14,"integrity":"sha512-htFOq1U3d/EICfkqnfUz9NDljshlgObASdVhA3lpBCLUqsWkB5nNPMUvku9+G7hqUUAx/+QLQB1KXtmnORupfA==","signatures":[{"sig":"MEUCIDZeXMVqHTcPNo7AH7MaLjhE8fh+glgP/KtlQcrEnrHHAiEA3CicZhiELoyTPreRkPuABUr/JEw0YW9x56cLt72ZitI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC+rR+mLzuehBWlZFqIih/UnlPqnQoZP92ms5ayy1LFrQIhAKe5vw3vGrT2R7atX5+45ox68aMykh7jpgRG/WIRrt2j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126953},"gitHead":"b5330ac3d014f92dff97a2b90cd9ebdbf0de22fd","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.6.2_1789962629058_0.8664863315961318","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@bacnh85/pi-ux","version":"0.6.3","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.6.3","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"3f648c029af30348326dbe6947f4494acea854aa","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.6.3.tgz","fileCount":14,"integrity":"sha512-t6geydELCxvZ6nx98x4W8FL3SeLG5nieNA7CnuZDIVRTgfvbgVqEytWxFura8AvqqLN9o3XWmwLDqZdzfbTQ+Q==","signatures":[{"sig":"MEYCIQCbSey/K0gEcqveSsYnErs7z38kmUqanivfWhs/kT7MTQIhAOdIoQM91mTOYcm5uEhAY41n6azaAejtgvj5/3Xb1zNQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCqUMZaDJjqbyf0NJQVnDB0RZ2QesYuMoLBgjVe7J00XAIgJHAZ/ogToEzyv19eO+Utmo7bMKG/BzQt3RuIoDFz9WE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130594},"gitHead":"47ee5073837a97916572d769f13d86f55d54ef00","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.6.3_1790209432531_0.33928784571342785","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@bacnh85/pi-ux","version":"0.6.4","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.6.4","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"09f817897f7bf2592059107c59ed52276b0577f4","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.6.4.tgz","fileCount":14,"integrity":"sha512-nwc2n0qU4m5PL8L3QgYVgomhdsgbSUDN8r5nazkLtffp80PyN+vbVBWcym73inQwRghmyqKYaout6y8q6ow+GQ==","signatures":[{"sig":"MEQCIEQrFNxoDN5sISNEz4PoPgqXh4fgLcuVuKXPOujz0J8/AiA/PPLVs1VwgtkyB5tfS+XzwEHdMcjlYtpV6inDkmYT1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDnLYe5NRadSTWbAjnVeF1FNkiVak1zHD0dFs0k6JTuTwIhAIkLUhBqZmpr6LGbKHFlVrgSGkPJtS9WPy1G+yW1jS0r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133731},"gitHead":"96408d174879a677b06eed011e02b3b0ddaafa03","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.6.4_1790479492749_0.1838465089486525","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@bacnh85/pi-ux","version":"0.6.5","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"license":"MIT","_id":"@bacnh85/pi-ux@0.6.5","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"dist":{"shasum":"3e765ff19d4a7766ebc4df847a9a5da54530a41f","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.6.5.tgz","fileCount":14,"integrity":"sha512-zI/qjcn15Cylfol1w3pV8AlQyX/ZEv2yVTQKwLxEjImOSELgrsvFC7e9uX7yGybilPSfU/vK+CwjZEmFrT91iw==","signatures":[{"sig":"MEQCIGtUpI655F+mqLKlb2e9rIKGKwQDM0M4Qr8SkPjUeXzoAiBti5zXrKNjh95ajhFYLFa28EZUbxGS9++aFTe9QJvCSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBxr3D6E6baWIvR4k5bAfXWYxMSI1+SQAPEx3XaBFS9fAiEA+002MzAlJX6I7q2mLj50qJ//sheXBEVf/htkDbvn3CY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134424},"gitHead":"dd605252c0a63db08576cf833eee1eb7e3e9661d","scripts":{"test":"node --test extensions/test/*.test.js"},"_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pi-ux_0.6.5_1790526186344_0.5357896413755832","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"pi":{"skills":["./skills"],"extensions":["./extensions/index.js"]},"_id":"@bacnh85/pi-ux@0.6.6","bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"dist":{"shasum":"2e7c13eb8a5286a4a3113585910fc3195d351037","tarball":"https://registry.npmjs.org/@bacnh85/pi-ux/-/pi-ux-0.6.6.tgz","fileCount":14,"integrity":"sha512-04SO8d7bOP0M4vseOQ7DfJZgoalfq9Lc1Rn+6SiTkV3nNL/JKphOZ0HLOc7xGXN5uNZtxfdkS0ALyhBhhgH2Ng==","signatures":[{"sig":"MEQCIEre0J75L3RtRjTYiYEINqSpJ3iyTUXdJTxjPYxmVgi/AiAVt0cQ+T0xr2B4TeisjLyhezJZHdBRe1EPQAXyaX/Yxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCIlLjtP6JQUuaAwF8amilMrIcQmY6LBSGZDn6NA7SuMgIgQlYFCmCIKTYsJDWBeMCM2ATG6ts0+svm4S3vM04/A/M="}],"unpackedSize":135393},"name":"@bacnh85/pi-ux","gitHead":"90930b50f5fc0a4491a748ee1692db40f7ec358a","license":"MIT","scripts":{"test":"node --test extensions/test/*.test.js"},"version":"0.6.6","_npmUser":{"name":"bacnh85","email":"mail@bacnh.com"},"homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"_npmVersion":"10.9.8","description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","directories":{},"maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-ux_0.6.6_1790555344140_0.38281931143369663"}}},"time":{"created":"2026-07-31T03:42:06.468Z","modified":"2026-09-28T00:29:04.397Z","0.3.0":"2026-07-31T03:42:06.868Z","0.4.2":"2026-08-01T06:56:53.859Z","0.4.3":"2026-08-02T09:27:04.548Z","0.4.4":"2026-08-05T10:40:08.835Z","0.4.5":"2026-08-29T14:24:27.308Z","0.4.6":"2026-09-07T04:58:11.592Z","0.4.7":"2026-09-12T09:11:01.367Z","0.5.0":"2026-09-16T23:47:11.090Z","0.6.0":"2026-09-17T06:00:13.769Z","0.6.1":"2026-09-20T05:10:27.645Z","0.6.2":"2026-09-21T03:50:29.159Z","0.6.3":"2026-09-24T00:23:52.634Z","0.6.4":"2026-09-27T03:24:52.839Z","0.6.5":"2026-09-27T16:23:06.443Z","0.6.6":"2026-09-28T00:29:04.237Z"},"bugs":{"url":"https://github.com/bacnh85/pi-extensions/issues"},"license":"MIT","homepage":"https://github.com/bacnh85/pi-extensions/tree/main/pi-ux","keywords":["pi-package","pi","ux","ui","design","anti-slop","skills"],"repository":{"url":"git+https://github.com/bacnh85/pi-extensions.git","type":"git"},"description":"Anti-slop UI/UX design discipline for your Pi agent — anchors a lintable DESIGN.md, derives a design direction (mood, type voice, color mood, signature), runs deterministic slop-audit gates (APCA contrast + tokens + states + slop tells), works with text-o","maintainers":[{"name":"bacnh85","email":"mail@bacnh.com"}],"readme":"# pi-ux\n\nAnti-slop UI/UX design discipline for the [Pi coding agent](https://pi.dev). Anchors a lintable **DESIGN.md**, **derives a design direction** (mood, type voice, color mood, signature element) from the subject, runs **deterministic** slop-audit gates (APCA contrast + tokens + states + slop tells), and works **with text-only models** (DeepSeek-v4, GLM-5.2, Kimi K3) — `agy`/Gemini/Claude is optional polish, never the review gate.\n\n## Why\n\nAI-generated UI fails in two directions. Without discipline it converges on slop — purple/indigo glow, shadow-heavy cards, missing focus/disabled/error states. Without direction it converges on the *correct but forgettable* default — Inter, a blue accent, white cards, timid sizes — which passes every lint and still has no feel, because under vague direction models reach for high-frequency statistical patterns either way. The fix is both halves: **own the system** in a DESIGN.md, **derive a direction** from the subject, then gate deterministically.\n\n**Text-only models now lead frontend** (Kimi K3, an open MIT model, is #1 on the Arena.ai Frontend Code Arena, ahead of Claude Fable 5). Inside a fully-specified system they produce non-slop UI — which means the review gate can be mechanical, not a vision-LLM call.\n\n## Install\n\n```bash\npi install npm:@bacnh85/pi-ux\n```\n\nPi auto-discovers the extension and skill.\n\n## Usage\n\n```\n/ux              # reset to configured default mode\n/ux strict       # guardrail + enforce ux_audit gate before handoff (default)\n/ux lite         # guardrail only (ideation, exploration)\n/ux off          # disable\n/ux status       # current + default mode\n/ux default lite # persist default mode\n```\n\nThe guardrail is injected into the system prompt on every agent start while active. Turn off with `/ux off` or the phrases \"stop ux\" / \"normal mode\".\n\n## Modes\n\n| Mode | Behavior |\n|------|----------|\n| `off` | No guardrail |\n| `lite` | Anti-slop guardrail enforced; audit gate recommended but not blocking |\n| `strict` (default) | Guardrail + enforce `ux_audit` gate before declaring a screen done |\n\n## The method\n\nThe injected skill enforces **Constraint-First Design Generation**:\n\n0. **Own the system via DESIGN.md** — a repo-root `DESIGN.md` (Google Labs open standard: YAML token frontmatter + rationale) is the single source of truth. Lint it before generating:\n   ```bash\n   npx @google/design.md lint DESIGN.md\n   ```\n   If absent, reuse a preset or style-direction starter (`ux-presets` skill: shadcn/Material/Radix; S1 Editorial print / S2 Ledger / S3 Warm consumer) or scaffold one once. Presets are floors, not identities. pi-ux orchestrates `@google/design.md` via shell-out — **not** a runtime dependency.\n1. **5-field brief per screen** — user job, inventory, token constraints, required states, one reference.\n1.5. **Derive a direction** — from the subject's material, commit to mood adjectives, a one-line visual concept, a type voice (pairing table), a color mood (hex), and one signature element — before any markup. The test: two different designers following the direction must produce visibly different pages.\n2. **Generate fast, converge early** — text-only models inside the locked system; 2-loop convergence trigger.\n3. **Normalise** the draft back into tokens/elevation/spacing.\n4. **Render & Inspect** (multimodal models; required in strict mode) — reference-first capture, then screenshot your own build and LOOK against a concrete checklist (squint test, dead zones, monotony, timidity, type, mood). Default: local headless-Chrome capture read back inline (offline, no daemon); alternative: `web_screenshot` (pi-web 0.6.2+, PNG returned inline) at a daemon-reachable address. Judge at viewer resolution (1×–3×); never chase sub-visible precision. Skip when text-only — the deterministic gates are the whole loop.\n5. **Slop-audit gate** — run `ux_audit` (measurable): APCA contrast, token coverage, state coverage, slop tells, tracked-eyebrow/near-black taste tells, reduced-motion coverage.\n\nThe **Direction playbook** ships in the skill as the positive layer: a typography-voice pairing table (editorial → Newsreader + Source Sans 3, ledger → Spline Sans pair, …), color-mood construction (temperature, tinted neutrals, committed accent posture, band rhythm), composition anatomy (hero formula, rows-over-card-grids, shaped whitespace), the signature element, and default-vs-directed contrast snippets. Taste rules add the named cliché clusters (the cream/terracotta \"Claude look\", acid-on-black, broadsheet kit, SaaS-card kit, template chrome), typography-as-personality, one-orchestrated-motion, and design-writing rules.\n\n## The `ux_audit` tool\n\nDeterministic slop-audit — no model needed, all gates are computable:\n\n```\nux_audit path=\"web/src/app.css\" pairs=[{fg:\"#111\",bg:\"#fff\",label:\"body\",weight:400,size:16,min:4.5}]\nux_audit css=\"...\" pairs=[...]\n```\n\nPass `path` to a stylesheet file — it is audited **verbatim**. Never retype or condense CSS into the `css` string when the file is on disk: retyped copies drift (inlined tokens, mislabeled pairs) and cause false gate failures or false confidence. Exactly one of `path`/`css`.\n\n| Gate | What it checks |\n|------|----------------|\n| **Contrast (APCA)** | Perceptual APCA Lc per fg/bg pair (Lc ≥75 body, ≥60 regular ≥18px / bold body, ≥45 large-bold [≥24px regular / ≥18px bold], ≥30 non-text). hex or `oklch()`. Optional `weight`/`size` set the threshold. WCAG 2.x ratio shown as a compliance sidecar. |\n| **Tokens** | Hardcoded hex outside `:root` token defs; `box-shadow` not built from `var(--…)` tokens |\n| **States** | Interactive selectors (`button`/`a`/`input`/…/`[role=button]`) missing `:focus-visible` or `:disabled`; any transition/animation missing a `prefers-reduced-motion` fallback |\n| **Slop tells** | Named AI signatures: glassmorphism (`backdrop-filter`), gradient orbs, neon glow, the shadcn default-card reflex (`rounded-2xl`+`shadow-lg`+`p-6`), 1px gray card borders, tracked-out eyebrows, tinted near-black backgrounds |\n\nReturns pass/fail per gate + a formatted report. In `strict` mode this is the gate that blocks handoff.\n\n**Why APCA over WCAG 2.x:** APCA is perceptual and accounts for font weight/size; it catches dark-theme + thin-type slop that the legacy WCAG ratio misses. Example: `#aaa` on `#1e1e1e` scores APCA Lc -54.4 (fails ≥75) but WCAG 7.18:1 (passes ≥4.5) — APCA catches what WCAG can't.\n\n## Model routing (deterministic-first)\n\nThe full who-does-what table lives in the **`ux-routing`** skill (not injected — consulted when delegating). The gate is mechanical, not a vision-LLM call. **The inversion rule:** the cheaper/weaker the model, the MORE you must externalise constraints. **The deterministic-first principle:** don't spend vision-model quota on what `ux_audit` computes for free.\n\n## Skills\n\n- **`ux-design`** — the Constraint-First method + Direction playbook (auto-injected by the hook when active).\n- **`ux-presets`** — reference presets for Step 0: neutral Web/Mobile DESIGN.md starters, three style-direction starters (S1 Editorial print, S2 Ledger, S3 Warm consumer — APCA-verified pairs), the shadcn/Material/Radix reuse table, and a CSS-only `:root` fallback. Reference only — no bundled CSS.\n- **`ux-capture`** — the Step 4 render-and-inspect capture playbook: local headless-Chrome capture read inline vs daemon-rendered `web_screenshot`, LAN IP/host.docker.internal addressing, SSRF-blocked daemons, cloudflared tunnel as last resort.\n- **`ux-routing`** — the model-routing table for delegating design steps (Define/Generate/Inspect/Audit) across agy/Gemini, Claude, DeepSeek, GLM, Kimi. Not injected.\n\n## Benchmark\n\n`bench/` holds a design-quality harness: six fixed briefs (landing, dashboard, mobile, portfolio, pricing, settings), `run.sh` (headless `pi` run with the same model + screenshot capture), and a fixed scoring rubric. Used to measure output quality across pi-ux versions; results are gitignored.\n\n## Configuration\n\nEnvironment variables (override config file):\n\n| Variable | Default | Effect |\n|----------|---------|--------|\n| `PI_UX_DEFAULT_MODE` | `strict` | Default mode on startup |\n| `PI_UX_QUIET_STARTUP` | unset | Suppress the startup toast |\n| `PI_UX_HIDE_STATUS` | unset | Hide the status-bar indicator |\n\nConfig file: `%APPDATA%\\pi-ux\\config.json` (Windows) or `~/.config/pi-ux/config.json` (or `$XDG_CONFIG_HOME/pi-ux/`):\n\n```json\n{ \"defaultMode\": \"strict\", \"quietStartup\": false, \"hideStatus\": false }\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}