{"_id":"analyzthis_design","_rev":"30-7462b27d2ead57ffb3069e796985cc34","name":"analyzthis_design","dist-tags":{"latest":"2.5.2"},"versions":{"1.1.0":{"name":"analyzthis_design","version":"1.1.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.1.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"bin/cli.js"},"dist":{"shasum":"0bb3def442bab3b832f5fc0d999202a3f68bad57","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.1.0.tgz","fileCount":43,"integrity":"sha512-hE3ven5VPm6StPiQ5F6IayBn8seuUe8Z8Q50KAbVjaBAgK2QVBDa5+qyAOoPpVjaftXvcWOuE5uXKjZpoDUn9Q==","signatures":[{"sig":"MEYCIQD2dzTsYmtR1Cs6fJThEo3ybtmhpIBlNwkZmPWLSqhXNAIhAPOLFHVFs+1kEZBbcY0jrurnab9gkt5RKsbgpUUqRnuj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1471607},"engines":{"node":">=16"},"gitHead":"7a0609787630a742f0ade1dd5cd6164f6c9b3771","scripts":{"postinstall":"node lib/install.js --silent"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.1.0_1782451739561_0.0957846334976622","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"analyzthis_design","version":"1.2.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.2.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"bin/cli.js"},"dist":{"shasum":"e8a489466f6926ca9347a64a7911c9b007186e2c","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.2.0.tgz","fileCount":45,"integrity":"sha512-DxgDD/nq6yo4x7reMzug8cnOdQ02QDPHV8HQKm8cc447cwUXjhMfopyTdxOZzC/SOzOQvuJHYpC8eOvhrBrxdg==","signatures":[{"sig":"MEYCIQCAp/o6yljrpWLJwiLfU5f1ulg7an8qQ6tpNtwDDMVn+QIhAOod0PPzibA/HE7MB3VESjM1mvW9hcCzdac9sb/weMmC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1488330},"engines":{"node":">=16"},"gitHead":"7a0609787630a742f0ade1dd5cd6164f6c9b3771","scripts":{"postinstall":"node lib/install.js --silent"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.2.0_1782452533502_0.5918274390651967","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"analyzthis_design","version":"1.3.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.3.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"0f6482b345854b9c31b8c04307d4bf40f71794e5","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.3.0.tgz","fileCount":45,"integrity":"sha512-tr11hZTO81/SSo1nbDqGbiCBbPEN85XLoXLKkWFRle50B6xw857qYKZV3KtEk0+QfwWpCTGLQnJ6xI0Nh426Ew==","signatures":[{"sig":"MEUCIDXp9icBi9X3wK5o2bbXbEBn5Ris0eZt6ASAkis/WJK2AiEAqSpBvEBGAHGmXwyQTefLU7aYqa9RNUV9Ct+NGjFowUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1577363},"engines":{"node":">=16"},"gitHead":"7a0609787630a742f0ade1dd5cd6164f6c9b3771","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.3"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.3.0_1782453030751_0.04735356398054513","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"analyzthis_design","version":"1.3.1","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.3.1","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"95718e4da062aab9338ec10bbea3de1dfb8d5609","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.3.1.tgz","fileCount":45,"integrity":"sha512-pzgmDVOjFiJVtH33Uj4unXtXi2zQtX0/r075jp6MZZTG1ESZA3Br75gtTtT/aaU/wCgy60oGGTlDDdaa8EalEQ==","signatures":[{"sig":"MEUCIC7igSQFbmoUrvKWiT9PeGHf3BG3Kn7zJCBbe+iDvay2AiEAvEv0TE4v3oBO+ZH2xhvoiWB1C19btIl3if39bMJt95M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1578669},"engines":{"node":">=16"},"gitHead":"7a0609787630a742f0ade1dd5cd6164f6c9b3771","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.3"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.3.1_1782453265232_0.3216145764114846","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"analyzthis_design","version":"1.4.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.4.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"e2be96a1abe4a97637733e969c46b8b9463f9fa0","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.4.0.tgz","fileCount":46,"integrity":"sha512-jn9hAduuJJomN0gF18CVrxRHElbaL6R/4A2YtOlAdulImHJ51JjsnXPhxw4QUlFezim7vTK67w5HtxpV0CQyjA==","signatures":[{"sig":"MEYCIQCLTlny1bodaeefA2xrC82o+UZe11QYPh9tfnYwywo/WwIhAK3UfVhpInK4kOOApxN7Ubv2GGw9TeJD5BjDE1mFvv25","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1589381},"engines":{"node":">=16"},"gitHead":"7a0609787630a742f0ade1dd5cd6164f6c9b3771","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.3"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.4.0_1782730850821_0.29949384661470435","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"analyzthis_design","version":"1.5.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.5.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"a240966f306462db451601ba18747c1b88f1f4a9","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.5.0.tgz","fileCount":46,"integrity":"sha512-9eK/6b/oxvuomvpS3s4JBgIUFcsS8u2rK8r0PKfBd8s7wSYj/1gOY+hg4QM/hTZ6BcsS+jHPcsJjGAiTJMzAAQ==","signatures":[{"sig":"MEQCIBpYbFM1HL+6IWbfhWihYlueuC7MdLApbsQra/CloHDsAiAm4I/S+1yWM/mvD5v67DUNf6aPzuEXNIIZhZEFjS10RQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1599330},"engines":{"node":">=16"},"gitHead":"210e964365d26e8d5f88c262bea215616c24f37b","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.5.0_1784350319862_0.5809348439585522","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"analyzthis_design","version":"1.6.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.6.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"0d6e1e98a26330b219409612d540871ace7a4555","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.6.0.tgz","fileCount":46,"integrity":"sha512-PjnlZCGU61DL4C2eLHLtUtIeqAJ1qUvPYaZEXbk8GRy62Zo18HaPbFle4uQfkfxt46TZWnx1TSQm2/OtycNppg==","signatures":[{"sig":"MEUCIAhr5HDBflK/ZEGYHAODBpuh5JoYrFdPMotZbqzEjHRPAiEApdyfRrWjhgXfpzSbkzwelge7PmZ6NWmdeOT8PLGGi0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1617397},"engines":{"node":">=16"},"gitHead":"e4b2d6aed2328b0d8fe6587442347d2f63fbabc5","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.6.0_1784623333022_0.04733105687765082","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"analyzthis_design","version":"1.7.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.7.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"522694dce0259401aa2ee4c466718861f4db1c78","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.7.0.tgz","fileCount":46,"integrity":"sha512-zqyAfRvGAhMle/atbKnL0ygGF6HfiAn3J4UCRLCdXlq21e/8xEC0fMOY7vg7pw+9XMWHLIR9ZWefShl+sQxcGQ==","signatures":[{"sig":"MEYCIQCJ7UBxkBFbnotlLwnK7Dq9Jx1PJnc4zf0vfFdfAzaSAAIhAImmrkY/nDqSsnMRg4AM/G93a8fpkD4nP78pfDTan/zX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1617709},"engines":{"node":">=16"},"gitHead":"93697b312b85d0f2394fbb9d68324aee508db936","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas for Cursor — run structured UX critiques and ideation sessions with Arjun (UX), Meera (Business), Priya (Feasibility), Zara (Delight), Noor (IA), Anuj (Power-User), and Raj (Arbitrator).","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.7.0_1784625989726_0.36039515889632745","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"analyzthis_design","version":"1.8.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","moe"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.8.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"600fae2d0f1a395d39d8245eb50dbfa2204af6d2","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.8.0.tgz","fileCount":63,"integrity":"sha512-rtvXTo/QEzxZkn2T3tUOD/7pS9kKIp2EdvcmDJx2g57JxbS9KXYMy0X/yW2UADIHtcplJ20iSz5jpfqFWGsUXg==","signatures":[{"sig":"MEUCIQDaHEyoT9FZarpm65ozFIIVJIusVQKweuv9o80jp8L8cwIgQK+WA0XXl8FXzjlGNCsH7LRl5OqVS+hywo8p9dWhd0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1775646},"engines":{"node":">=16"},"gitHead":"9b8cd117c49f13d032d240cf1fe5dae4de88721f","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas with an agentic MoE orchestrator — UX critique, ideation, session state, and cross-platform skills for Cursor, Claude, and Codex.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.8.0_1785307953830_0.9459484732372114","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"analyzthis_design","version":"1.10.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.10.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"2a07e7a8b874140eb2c64d440259a87975e2e45a","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.10.0.tgz","fileCount":74,"integrity":"sha512-WRWRskGTt+Pn8DILKQi/6GEdBnrTOaSO//DtPqV7ELi/uPJMAsbWTEuung2yODgEBoee7KPxRb5/fHwcQTZF6g==","signatures":[{"sig":"MEUCIFQXjo0g2GJt6M5l1jotgA9E4qd9YZx/saBUwHGCLCwdAiEAuGBzQkc1ZafbCr6MT1EQgaQRqbPIkKE0fd8htzzRVyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1946118},"engines":{"node":">=16"},"gitHead":"6e4032bb7358712f0bb38451c49b09329287e764","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"7 AI design personas with an agentic MoE orchestrator — UX critique, ideation, session state, effort-graded model selection, $-cost reporting, and cross-platform skills for Cursor, Claude, and Codex.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.10.0_1785395792316_0.8717006935679044","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"analyzthis_design","version":"1.11.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.11.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"fcbaa769645764dc74925a18f6485e985e82ea8c","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.11.0.tgz","fileCount":79,"integrity":"sha512-NwxJZ1RbS02AsvORAHjf4YpgFtIaCBw3wwPF0EVqqYxyggrAHAwTgTLg7USAzhgS0AwAUfeDbQK3S3F4IiWlqQ==","signatures":[{"sig":"MEQCIB+fc3TB60ZrqTlzbybpuRyg9sV1Xs+8qlvhS0WqpgYkAiBj+fxYKm+qAk4Od9CceAOv4eP9DB0uJ6ChpE9I5Yb8sA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2109317},"engines":{"node":">=16"},"gitHead":"6e4032bb7358712f0bb38451c49b09329287e764","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas with an agentic MoE orchestrator — knowledge collection (Kavi), UX critique, ideation, and Agent Skills for Cursor, Claude Code, Codex, Grok Build, and Windsurf.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.11.0_1785440690178_0.9035269435937008","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"analyzthis_design","version":"1.12.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.12.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"b35798e26d76867a240b3e1fccacb50da84de53f","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.12.0.tgz","fileCount":80,"integrity":"sha512-boanMRAs29zL/rUKap110SFDF6+TQ031LK57nl3x21/UIFVN50H3udvdI/ot7R1oV88obazppCQzSVNNvUkUBw==","signatures":[{"sig":"MEYCIQCLwk6CHt44/V//ItNjXpJBy0IMwclmuS7Pyxwg4/I7PwIhAKdDCtmn6yASfXDpmGZIeGpJwb6RTUQejC1L0048mkuB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2116706},"engines":{"node":">=16"},"gitHead":"6e4032bb7358712f0bb38451c49b09329287e764","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas with an agentic MoE orchestrator — getting-started onboarding, wireframe skills (Noor/Anuj), knowledge collection (Kavi), UX critique, and Agent Skills for Cursor, Claude Code, Codex, Grok Build, and Windsurf.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.12.0_1785441288758_0.5932295749099095","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"analyzthis_design","version":"1.15.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.15.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"60e661b40aa110f7029313836d121d27646282ec","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.15.0.tgz","fileCount":87,"integrity":"sha512-5bPFaNTBKCKnxM0OGhUnZwrJ2kDg658TmnXryQh3ZS25BHcKtyIAnaqp2BTURpa3ZezOpYZE8n+UhLKjZlcpUw==","signatures":[{"sig":"MEUCIQCSJZS7gCX2atZ6yeP9DUVX4AbYI7m4HBQgHg7FlrNyhQIgQTeDIM/2d5rYIhigyfZermqnJYPLGNq7q8yrGY+6+9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2320163},"engines":{"node":">=16"},"gitHead":"6e4032bb7358712f0bb38451c49b09329287e764","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — DesignSpec producer path (design-director), Kavi knowledge collection, wireframe skills, UX critique, Agent Skills for Cursor, Claude, Codex, Grok, Windsurf.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.15.0_1785858840560_0.35721993222258885","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"analyzthis_design","version":"1.18.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.18.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"184a639bc77343e11dde4ad780d82b5a727673dc","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.18.0.tgz","fileCount":93,"integrity":"sha512-zmociv1HFEZUeswDcIJYxnzx1zyzNPfvoFgt1vQdmMg4F1r0d7OIrlXukqKjIWT68EoAh8PFylALeOL+HUB4qw==","signatures":[{"sig":"MEUCIHUxzyBQMwziV5IeoXG3dNRstZe69QUJ8xtic/dspvQeAiEAzoktdw9q5vXBZmCRRBnc/xEOTpUj2NCZysCO0S0pJ34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2446812},"engines":{"node":">=16"},"gitHead":"6e4032bb7358712f0bb38451c49b09329287e764","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — opt-in community feedback submit, persona correction logging, DesignSpec producer path, Kavi knowledge collection, wireframe skills, UX critique, Agent Skills for Cursor, Claude, Codex, Grok, Windsurf.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.18.0_1785864677662_0.8957296900995302","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"analyzthis_design","version":"1.19.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.19.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"1fded3063f2d97a68f1922f25c10024772890945","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.19.0.tgz","fileCount":97,"integrity":"sha512-Gc0zVPAIxV05E64TeDPXXUmVBsrTeXizbSUsyf3Rd17aGD4oXuEi57bel+W8T/pYAKQs37DmXFQXOwtSqSRs2w==","signatures":[{"sig":"MEUCIQDre/N2MxH+attioy04Hj1T5w0bYRAF9S75T8pob8HvYgIgJf/rEywmiYkl5I5/VTG6gHC1ug1Bzdp3+UmRc/gC1zY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2576642},"engines":{"node":">=16"},"gitHead":"6e4032bb7358712f0bb38451c49b09329287e764","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for Cursor, Claude, Codex, Grok, Windsurf.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.19.0_1785917998545_0.048068121627260485","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"analyzthis_design","version":"1.20.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.20.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"2ecde85dabdd7abc2fba7b2f0b9ec59cb81171f8","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.20.0.tgz","fileCount":104,"integrity":"sha512-j0XtvQksxhDXe1SQUEiMMFzu20Z2GbiZPJq42YRgrM8EVhhcCwYdiR+sGe/IFwARWFjoZ+QGMpH279VtvuUhhA==","signatures":[{"sig":"MEUCIQDrLwANHQdZ4t5A1uNmjYphRfIGSHSzsot8YHD69SK5WgIgVIKzEeKP/+MhD2vwOtsOw+Fqb2TYT3/ROzAx1sIg9N4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2755493},"engines":{"node":">=16"},"gitHead":"f007b516dd57a8ea435ee15c21fdc407795a44e4","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for Cursor, Claude, Codex, Grok, Windsurf.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.20.0_1785921413754_0.36045968418254537","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"analyzthis_design","version":"1.20.1","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@1.20.1","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"c6be9345c042fb315238de3be6ed92a29fa6343f","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-1.20.1.tgz","fileCount":104,"integrity":"sha512-Bag4JipQypvIHLq7DZsbSEK7XLgFxzXVBo5uHxv5a4ke3Pjt356Fj7V/ALHyZzjLR/HQjNgitCjDIi1y4XTCzg==","signatures":[{"sig":"MEYCIQC8L9P9s0V82ZseQY48QPzSO0Ncq0CsHT/XWiu5F4YeKQIhAPK6UFd50GGRgIRbGoXC/p9w40hIbgGtPBILFj2QODFR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2740023},"engines":{"node":">=16"},"gitHead":"7531b2335adfc395cb949e601aff884866cb90ea","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for Cursor, Claude, Codex, Grok, Windsurf.","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_1.20.1_1785923112060_0.6458730855062742","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"analyzthis_design","version":"2.0.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.0.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"29c1370224aa777be285f5929776b76c8afc6d02","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.0.0.tgz","fileCount":227,"integrity":"sha512-svXMgN2bR373rA3KVTJEtzvSmyCg6Wpst8zui3qj+8bIFmJApxK6FPgZWeBniaOpLFrnv0MFxFEPA+WP5gMWeg==","signatures":[{"sig":"MEUCIQC9Am+XIcAXOXI1AO2jptBiHmrWw5YSV+EK9d3EUVZqiwIgBfACIXK/5ObEU6ORO3Fph1Y4EbFB4dxhQkkjhsbrbh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3634713},"engines":{"node":">=16"},"gitHead":"e2fd2614e1ffef7eca1d79e48162eb6356f62780","scripts":{"build":"node scripts/obfuscate.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.0.0_1786592017650_0.6977655377077692","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"analyzthis_design","version":"2.0.1","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.0.1","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"4c9216b73b5c941077010d474f261109238dfb77","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.0.1.tgz","fileCount":232,"integrity":"sha512-TCV3JMDAjgFy5Vy9xB6XS99d6PhZhUiZx6BLM0g3L64E2kg6xmP9wSjPOTwImU3X4TQD+6WIFgzEN1He125oAg==","signatures":[{"sig":"MEUCIQD8WuRBytlBkcqki0vazeNr4eow+KN9IFInR6vTMkbg0QIgNLKWg9hiaCpUemCRf9XKXtnfYOoc/qtrjDlCiblxqfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3710315},"engines":{"node":">=16"},"gitHead":"8ee477187bdf04340ca1a13a21b3bb8bd8c1fc6d","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node dist/lib/install.js --silent --welcome","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"javascript-obfuscator":"^5.4.7"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.0.1_1786600499017_0.05438445925851587","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"analyzthis_design","version":"2.1.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.1.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"c053fbc0ff765ed725de347aa5a5af2e38a7dda1","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.1.0.tgz","fileCount":239,"integrity":"sha512-DAMrBE+W5IbsX1ZaBRxjaD+uVKjl9FcqzkPgXuL6cJF1JyKRWi9ABrBtRm+welsksrnu1Z5OtCA+qy5IT7IB9A==","signatures":[{"sig":"MEQCICcinnkEU2+E9FUINSZ8LYjAe+Gs/9dYK5A+5JDhGQVjAiAkMTakntBN4Wu7bvaGnRdSa92ThsEQRRFCWDDHWy2UYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3812983},"engines":{"node":">=16"},"gitHead":"564c3b90cb78d18fb0c351106abeab43846c35fb","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.1.0_1786712559569_0.936728680635385","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"analyzthis_design","version":"2.1.1","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.1.1","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"8fba90aa7a236f3118f50f0175f33e8a9dc2c754","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.1.1.tgz","fileCount":239,"integrity":"sha512-v1jN8RnXtnvFh3OR+UJfdEBZdJQJDICmvyrv/JnEHX5YGx1LcRrp1rJJ2gxJxdHnhJYq0wOCWonraLD4w4uLIA==","signatures":[{"sig":"MEUCIQDpeIpSEWvvZJw8DI1zVDBfi5B/pgEWW4ot61HhGLd7GQIgCEuACRZVX+8xrvK5IipAeD1VxmJE+BwrFCNDH6vFukY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3812983},"engines":{"node":">=16"},"gitHead":"0755f87a8333bedd18b1a092192beecda1112558","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.1.1_1786867929864_0.34333558134056896","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"analyzthis_design","version":"2.1.2","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.1.2","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"ca475c58eb99c9faa8946ab852b1198e8bbccecd","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.1.2.tgz","fileCount":239,"integrity":"sha512-vCepILYl9fEmiHWH1rcLUkdOb175I8ESVIAP7N6D46VYmACTVsMp6rifO5SupGnd12iO0q1rDokP6SxusSsGvQ==","signatures":[{"sig":"MEYCIQDQ8cMSg0hAdLIUvgkFLqocOUFt4ZdaRRoAkK6iU9bY6wIhAPzsbrML3yZwj7NS1k/Ty7RPPGA81tKJjJJ+z4x+21PZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3812831},"engines":{"node":">=16"},"gitHead":"3e7ea5125b733c9a1b36532d5b7fb1561b93d73e","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, DesignSpec producer path, wireframe skills, UX critique, Agent Skills for ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.1.2_1786868170203_0.7604697531221936","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"analyzthis_design","version":"2.2.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.2.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"90433b6154d5ae8575d88831f292ba8a2e3ec8fd","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.2.0.tgz","fileCount":233,"integrity":"sha512-wc6GIFC0YmLSRpjUttF+7qCSGeISuQVcEfi1zQ8cCnED7ALfQfWlfEcjE3do/Lbe/ifnh9Ww0SYJ9PFuYHiAPQ==","signatures":[{"sig":"MEQCIAEWQ8FN3iI64JfRAT4lNsD58xYz9cdTYkjXrMP9yW4+AiA9tpYoNFf7Dx00ETNUj2zkYQivJwVaFG/M3gqoUC+YCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3823426},"engines":{"node":">=16"},"gitHead":"3c9e3ec72a6db15e7ad1d113eaaf24b0794d6020","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.2 project-scoped knowledge bank (no cross-project vault entanglement), v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.2.0_1787043348592_0.31218420793670343","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"analyzthis_design","version":"2.3.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.3.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"bc8706c9fa0c12a94cdd26644fec08168dbf710c","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.3.0.tgz","fileCount":235,"integrity":"sha512-jAmZvTfuda81G2VuT/F7o1sXCaLzJvCXu2kfbGv9PDIaSI0jLMjJWk1zEFCPieCaoS4nmmHUHMc19ZvtFSpPdA==","signatures":[{"sig":"MEUCICEvD2Rbk5Fz8C6B1ojS6ICu4Ej54Tkrxyvhv+8p4D38AiEA+xvURqHEZoqYdDy64zgxoB/Jc21SC4Yc9xVMbr3a/gE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11695208},"engines":{"node":">=16"},"gitHead":"8a0d13b0b7dd6b65db351a018d2914765c5bc6e7","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.2 project-scoped knowledge bank (no cross-project vault entanglement), v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.3.0_1787554753628_0.7808402983601404","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"analyzthis_design","version":"2.3.1","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.3.1","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"5c800614d45163983dc4cbe8778bfcb9186b6896","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.3.1.tgz","fileCount":235,"integrity":"sha512-VeuhYdv1nSgTZUopP8P5bWE1ob+m0JGi/rYMrJHkYsrn68mO7mSoCRT8Fh5GMOT0BZicleKUWVQzE7EAJ0I8gw==","signatures":[{"sig":"MEUCIGZaB8t3lyxNl5FgCSTJThXQhJCGMM6a3QWpdWwxUN28AiEAwsUx3S6FsllPCEkbZeLIqShTCXtx6F/3y3Dz4NL8xbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3879830},"engines":{"node":">=16"},"gitHead":"3aadd2d47f374710b96fa3d11095a1fa1a13e3fe","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.2 project-scoped knowledge bank (no cross-project vault entanglement), v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.3.1_1788244340686_0.6605246264946285","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"analyzthis_design","version":"2.4.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.4.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"0e189f3cc3be270d29106c5f805a49222746efba","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.4.0.tgz","fileCount":243,"integrity":"sha512-LxbQ72mDhf0h1v5TMt2Tz9ijMVGP3KfUNh3b5SJOeIh9x7Jq1aIZNEmAN9Tino53M34Askze/6/gjhDzo0vT8Q==","signatures":[{"sig":"MEUCIGr1n9RmllzuaigVSeESYjGq7RfbO71hNAREq4ck028WAiEAoOXXJBWHEYRXRNxD/U+JjNpJe8Dwtvd9QYT5bTzQZMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3896718},"engines":{"node":">=16"},"gitHead":"aa394b4f683d3a66420916c87d38758b34627c20","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.2 project-scoped knowledge bank (no cross-project vault entanglement), v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.4.0_1788253959938_0.9424909213337698","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"analyzthis_design","version":"2.4.1","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.4.1","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"869144c294f274d5eed84ece1fa703259d5bf24c","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.4.1.tgz","fileCount":250,"integrity":"sha512-LfZXesOCFwmibokNMHy0b2G1oEQAEutoZmJTVqrQqG9tU5u0BzVs6IHAjz+ggcxxWqPKwmgB4wlPmjsmTxn63A==","signatures":[{"sig":"MEUCIQDNGNkSgT0pu0hCo4IA7VVQetC5+1JrBaBooXPq8+CfswIgMgQRl9OTp7C/PCZWRLsqtgajPEoY2bHWcs7jjbyJqBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3925398},"engines":{"node":">=16"},"gitHead":"be7a134baf634f98fde3dec60178862eafd707e9","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.2 project-scoped knowledge bank (no cross-project vault entanglement), v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.4.1_1788256481760_0.6925246848059805","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"analyzthis_design","version":"2.5.0","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.5.0","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"20164a9e93a7a5e3be010d2d3a1818065e0ea9b5","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.5.0.tgz","fileCount":250,"integrity":"sha512-VKaFEEPXEVZVBzoas3+2W5QL76lhBCBak5vPx5abH6m0S0YW+KWkPtjUVFi497k5BVQCp9xsUUjDjD1pHy/skw==","signatures":[{"sig":"MEYCIQD8dEWa+YIg4hE3XLG9Ay2fVKb2y5ntdJnl0+WTzLcLRQIhAO0JFFC1DQ+c+FI5kZYFvV8YT4xCnNh/tmRyITXW8uoa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3962107},"engines":{"node":">=16"},"gitHead":"ca828efcd464b7ab1a0a1b2e23cfb149d69d4430","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.2 project-scoped knowledge bank (no cross-project vault entanglement), v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, opt-in community feedback, Kavi knowledge collection, ","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"@neon/env":"^1.2.0","@neon/config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.5.0_1788340868525_0.36289816066504654","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"analyzthis_design","version":"2.5.1","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"author":{"name":"Rishikesh Joshi"},"license":"MIT","_id":"analyzthis_design@2.5.1","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"3cd28722efe0e36271f7517d1204663ebdcad2b6","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.5.1.tgz","fileCount":250,"integrity":"sha512-4zzV9Qzr5Ze1lp+TYIDJ9aa1aNM1ckUFGdlLoeoZl9Cm+lC/qs9Iod8FH/c7p29aIije6ACs6HXVm0OqHGhZZA==","signatures":[{"sig":"MEUCIQDwzguAPT7BvHXshegdFcfO4ZigkJE83Ac5xnhX5ZCkLgIgRx/ZeKEIY/I02abj86D+Rpgs0VfjFIBvC+6r54SGohA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3979734},"engines":{"node":">=16"},"gitHead":"ca828efcd464b7ab1a0a1b2e23cfb149d69d4430","scripts":{"build":"node scripts/obfuscate.js","validate":"node scripts/validate-csvs.js","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"_npmVersion":"10.9.2","description":"8 AI design personas — v2.5.1 anti-AI-slop & craftsmanship rules, v2.5.0 signed rate-based persona trust scoring, v2.2 project-scoped knowledge bank, v2.0 chunked execution with frontier planner + free/cheap chunk models, adversarial deliberation loops, o","directories":{},"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"@neon/env":"^1.2.0","@neon/config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/analyzthis_design_2.5.1_1788860685446_0.34288782550493013","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"_id":"analyzthis_design@2.5.2","bin":{"analyzthis_design":"dist/bin/cli.js"},"dist":{"shasum":"0cc42aeeef43392ad2ee76ab0b8e2061a254da4c","tarball":"https://registry.npmjs.org/analyzthis_design/-/analyzthis_design-2.5.2.tgz","fileCount":263,"integrity":"sha512-5rv0nsX8L7EutziU8ilX2nWZSwViiGxI6YSsSRuC/GOh/etcn91CFD/0sO3nm1jtjzADcsrP4OCeuVRFJNw1WA==","signatures":[{"sig":"MEUCIQDG5MQz70iBBi7WeOWaOJJkDV3vZtmhxSrD1m3ZtPlI4wIgRn049Vl3xByde2AaLe0pa9sOj7/gwm2XjX3HJWaLDvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAOqWRbHkuXQHdjKVP+UdxpXItVYikBFN+ulRvGY2zMFAiEA2PKYeu4rLSIPjDFSzRjqC3P2ExBa50TFp4b6iFW5pwY="}],"unpackedSize":4135348},"name":"analyzthis_design","author":{"name":"Rishikesh Joshi"},"engines":{"node":">=16"},"gitHead":"1a7bfeb49dfd03efc3e52c4ff449603851a730ce","license":"MIT","scripts":{"test":"node scripts/test-accept.js && node scripts/test-share.js && node scripts/test-calibration-core.js && node scripts/test-chunk-quality.js && node scripts/test-calibrate.js && node scripts/test-calibration-community.js","build":"node scripts/obfuscate.js","prepack":"npm run build && npm run validate","validate":"node scripts/validate-csvs.js","test:dist":"npm run build && node dist/bin/cli.js calibrate --dry-run --max-usd 1","postinstall":"node -e \"console.log('\\n  analyzthis_design installed. Run: npx analyzthis_design --target all\\n  Or: npx analyzthis_design welcome\\n')\"","prepublishOnly":"npm run build && npm run validate"},"version":"2.5.2","_npmUser":{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"},"keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"_npmVersion":"10.9.2","description":"8 AI design personas — v2.5.2 motion/UX/visual library catalog and Kavi install detection, v2.5.1 anti-AI-slop craftsmanship, v2.5.0 signed rate-based persona trust scoring, v2.2 project-scoped knowledge bank, v2.0 chunked execution with frontier planner ","directories":{},"maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"_nodeVersion":"23.6.1","_hasShrinkwrap":false,"devDependencies":{"@neon/env":"^1.2.0","@neon/config":"^1.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/analyzthis_design_2.5.2_1790584708360_0.7008654476347957"}}},"time":{"created":"2026-06-26T05:28:59.354Z","modified":"2026-09-28T08:38:28.684Z","1.1.0":"2026-06-26T05:28:59.740Z","1.2.0":"2026-06-26T05:42:13.700Z","1.3.0":"2026-06-26T05:50:30.914Z","1.3.1":"2026-06-26T05:54:25.430Z","1.4.0":"2026-06-29T11:00:51.026Z","1.5.0":"2026-07-18T04:52:00.013Z","1.6.0":"2026-07-21T08:42:13.207Z","1.7.0":"2026-07-21T09:26:29.892Z","1.8.0":"2026-07-29T06:52:34.017Z","1.10.0":"2026-07-30T07:16:32.520Z","1.11.0":"2026-07-30T19:44:50.368Z","1.12.0":"2026-07-30T19:54:48.950Z","1.15.0":"2026-08-04T15:54:00.874Z","1.18.0":"2026-08-04T17:31:17.907Z","1.19.0":"2026-08-05T08:19:58.718Z","1.20.0":"2026-08-05T09:16:53.936Z","1.20.1":"2026-08-05T09:45:12.237Z","2.0.0":"2026-08-13T03:33:37.859Z","2.0.1":"2026-08-13T05:54:59.205Z","2.1.0":"2026-08-14T13:02:39.772Z","2.1.1":"2026-08-16T08:12:10.034Z","2.1.2":"2026-08-16T08:16:10.371Z","2.2.0":"2026-08-18T08:55:48.805Z","2.3.0":"2026-08-24T06:59:13.870Z","2.3.1":"2026-09-01T06:32:20.857Z","2.4.0":"2026-09-01T09:12:40.114Z","2.4.1":"2026-09-01T09:54:41.920Z","2.5.0":"2026-09-02T09:21:08.730Z","2.5.1":"2026-09-08T09:44:45.608Z","2.5.2":"2026-09-28T08:38:28.446Z"},"author":{"name":"Rishikesh Joshi"},"license":"MIT","keywords":["cursor","cursor-skill","claude","claude-command","codex","grok","windsurf","agent-skills","ai-persona","ux","design","design-critic","ux-ideator","persona-orchestrator","knowledge-archivist","obsidian","moe","cost-optimization","effort-graded","lora"],"description":"8 AI design personas — v2.5.2 motion/UX/visual library catalog and Kavi install detection, v2.5.1 anti-AI-slop craftsmanship, v2.5.0 signed rate-based persona trust scoring, v2.2 project-scoped knowledge bank, v2.0 chunked execution with frontier planner ","maintainers":[{"name":"rishikesh_analyzthis","email":"rishikesh@analyzthis.com"}],"readme":"# Analyzthis_Design\n\nA set of AI design personas and a task-first evaluation framework that plugs into Cursor, Claude Code, and Codex CLI as slash commands — plus an agentic MoE router with shared session state so you can call the same graph from any IDE or from the CLI.\n\nInstall once. Run structured UX critiques, multi-phase ideation, and task-grounded screen reviews — directly inside your AI chat. **No external LLM API keys required** for CLI orchestrator runs: **`/devi`** voices each persona from your host IDE (Cursor, Claude, etc.).\n\n## v2.5.2 — Motion, UX, and visual-design libraries\n\nPersonas cite real packages and prefer what is already in the repo:\n\n- **Catalog:** `motion.csv` (150–250ms ease-out, no bounce) and `ui-libraries.csv` (Motion, Shadcn, React Aria, Chakra, CMDK, TanStack, Tremor, Magic UI, and more).\n- **Kavi:** Reads the full `package.json` plus kit folders, writes `Tech/Installed-UI-Libraries.md`, stores `installed_ui_libraries` on the session.\n- **Zara / Arjun / Anuj / Noor / Priya:** One library per job, installed first. Mixing two full kits is a block. Marketing FX stays off daily dashboards.\n- **DesignSpec:** When motion is on, require library, import, timing, easing, and a reduced-motion fallback.\n- **Design reference:** 30 CSV files total.\n\n## v2.5.1 — Anti-AI-slop & craftsmanship rules\n\nEnriched personas and design reference data with craftsmanship principles inspired by Impeccable:\n\n- **Arjun:** Flags container nesting (`card > card > card`), untinted harsh black/gray, gray text on colored badges/headers, and cliché purple/blue AI gradients.\n- **Noor:** Strips container clutter and enforces outcome-specific CTA labels (e.g. \"Create Invoice\" vs \"Submit\").\n- **Anuj:** Audits overflow handling and complete 5-state form controls.\n- **Zara:** 150–250ms ease-out; bans bouncy/elastic animations.\n- **Kavi:** Records Durable Product Truth (audience, purpose, constraints, voice, evidence).\n- **Design reference:** 11 craftsmanship rules in `ux-guidelines.csv` (rows 100–110).\n\n## v2.5.0 — personas earn or lose trust\n\nMarking a note now moves a score. Previously a rejection *raised* a persona's score by\n15 — `accept.fix()` recorded `outcome: 'revised'` and scoring counted outcomes without\nreading their value. Punishment was a reward. Fixed.\n\n- **Signed, rate-based scoring.** A persona starts at 50 and moves both ways:\n  `shipped` +15, `blocked_correctly` +10, `revised` −5, `missed` −15, plus\n  `(rating − 3) x 4` per rating. Scored as a **rate per signal**, not a running total,\n  so early wins can never make a persona immune to later failures.\n- **Evidence gating.** Under 5 signals a persona reads `Baseline (insufficient\n  evidence)`. One bad note does not brand anyone.\n- **Bands:** At risk · Developing · Baseline · Reliable · Trusted.\n- **Devi gets a scoreboard** in every pending prompt and weights its synthesis,\n  saying the lean in one line. Advisory only — **no persona is ever dropped from a run.**\n- **Feedback works with no terminal.** New `analyzthis_accept` MCP tool in the\n  **lite** catalog, so Claude Desktop can record keep/skip. Same shared core as the\n  CLI — both transports write identical state.\n- **The persona asks.** Every note ends with one host-neutral line: *\"Was this right?\n  Say yes, or no plus one sentence.\"* The designer answers in plain language; the\n  agent picks the transport. No flags, ever.\n- **Lessons learn from rejections too**, tagged `polarity`, and de-duplicated so\n  re-marking a note cannot inflate a score.\n\n```bash\nnpx analyzthis_design scores                  # the whole team\nnpx analyzthis_design scores --persona arjun  # one persona, with the breakdown\n```\n\nScores are derived on read — changing the weights re-scores history with no migration.\n\n## v2.4.1 — `/accept` and `/share` (designer keep / skip / send)\n\nAfter `/zara` (or any persona), type `/accept yes` or `/accept no` plus one sentence. No CLI flags. Writes keep or skip for **local** evolution. Slash-only notes still count.\n\nTo send a correction to the **published** package: `/share` (preview) then `/share yes`. Redacted. Uses the HTTP endpoint if configured; otherwise a GitHub issue on joshirishi/analyzthis_design.\n\n## v2.4.0 — Claude-path efficiency (1 Sep 2026)\n\nSame SHIP / REVISE / BLOCK. Fewer tokens on Claude Code and Claude Desktop. Not Caveman-speak. Not a proxy.\n\n- **Lite MCP catalog (default):** `analyzthis_design` (router) + `analyzthis_retrieve` + `analyzthis_session` + `analyzthis_receipt`. Old 19-tool list: `ANALYZTHIS_MCP_CATALOG=full` or `npx analyzthis_design mcp --catalog full`.\n- **Receipt:** every MCP result ends with inferred tokens (not a bill). CLI: `npx analyzthis_design receipt`. Slash: `/receipt`.\n- **Slim skill fronts:** Arjun, story-gate, and orchestrator load a short front. Call retrieve (`kind=skill`) for the lens. Personas default to verdict + top 3 + one evidence line; say **expand** for the full schema.\n- **Knowledge bank** is an index. Load one persona slice (`kind=knowledge`, `persona=zara`). Do not inject the whole bank.\n- **Tokens per verdict** prints on `receipt` and CLI `run`.\n- Optional: wrap our stdio MCP through Caveman’s shrink if you already run Caveman. We do not ship a proxy.\n\n## v2.3.1 — independently callable personas (31 Aug 2026)\n\nAfter install, type `/noor`, `/anuj`, `/arjun`, `/meera`, `/priya`, `/zara`, `/raj`, `/kavi` even if Claude’s slash menu only lists Getting Started.\n\n- `npx analyzthis_design --target claude` is the same as `install --target claude` (leading `--target` used to print “Unknown command”).\n- Install writes project slash commands into `.claude/commands/` and `.cursor/commands/`.\n- `mcp --configure claude` writes Claude Desktop, Claude Code (`~/.claude.json`), and this repo’s `.mcp.json` when you are in a project.\n- Do not `npm install` this package inside a pnpm/Yarn `workspace:*` repo — use `npx … --target` instead.\n- Slash and MCP still use the model already in your chat. CLI `run` still picks a strong planner and cheap chunks.\n\nWebsite changelog: [analyzthis-lab.vercel.app/design#whats-new](https://analyzthis-lab.vercel.app/design#whats-new)\n\n## v2.3.0 — MCP for any IDE\n\n19 MCP tools (`analyzthis_noor`, not `/noor`). Slash commands and MCP are different pipes. MCP never creates a slash menu entry.\n\n## v2.2 — project-scoped knowledge bank\n\nKnowledge sources are now scoped per project by default. `collect`, `connect`, `sync`, `disconnect`, and `status` operate on the project derived from your current working directory, and the built `knowledge-bank` skill is written into that project's local skills directory (`<project>/.claude/skills/knowledge-bank/SKILL.md`, `<project>/.cursor/skills/...`, etc.). Invoking a skill from one project never reads another project's vaults.\n\nPass `--global` to opt into the legacy merged behavior (read `config.sources` and write into `~/.claude/skills/...`). Use `--global` only when you deliberately want cross-project blending.\n\n## v2.0 — chunked execution by default\n\n`npx analyzthis_design run --task \"...\"` now uses a **frontier planner + cheap chunk models**:\n\n1. Frontier/strong model plans the task into small chunks.\n2. Each chunk runs on the cheapest capable model: local Ollama, free cloud APIs (Groq, Gemini, OpenRouter), or cheap cloud APIs with your keys.\n3. Outputs are merged into a final verdict.\n4. Telemetry learns which models work best for each chunk type.\n\nUse `npx analyzthis_design run-unchunked` for the legacy single-pass orchestrator.\n\n**npm:** [analyzthis_design](https://www.npmjs.com/package/analyzthis_design) · **Current version:** 2.5.2 · **Step-by-step guide:** [HOW-TO-USE.md](./HOW-TO-USE.md)\n\n---\n\n## Quick start\n\n```bash\n# 1. Install the CLI globally (optional). Do not run npm install inside a\n#    pnpm/Yarn workspace repo — npm cannot read workspace:* and will fail.\n#    Prefer npx from any folder:\nnpm install -g analyzthis_design\n\n# 2. Copy skills + slash commands into your IDE (consent-based)\nnpx analyzthis_design install --target all\n# Same thing: a leading --target means install\nnpx analyzthis_design --target all\n\n# 3. Run a task in v2.0 chunked mode (free/cheap models)\nnpx analyzthis_design run --task \"Review invoice approval screen\"\n\n# 4. Or use legacy single-pass orchestrator\nnpx analyzthis_design run-unchunked --task \"Review invoice approval screen\" --provider host\n```\n\n> **Security:** This package publishes **plain source** — no obfuscation, no minification, no dynamic require. Every file in `dist/` is readable and auditable. The `postinstall` script only prints a welcome message; it does **not** write to any AI-agent directories. Skill installation requires an explicit `npx analyzthis_design install --target <ide>` (or `npx analyzthis_design --target <ide>`).\n>\n> **MCP (universal):** `npx analyzthis_design mcp` starts a local MCP server. Default catalog is **lite** (router + retrieve + session + receipt). Full 19 named tools: `ANALYZTHIS_MCP_CATALOG=full` or `mcp --catalog full`. Auto-configures for Cursor, Claude Desktop, **Claude Code**, and Windsurf during install. **Browser-only tools (Lovable, v0, Bolt, Replit, ChatGPT) cannot use MCP here** — our server speaks stdio, and a cloud-hosted tool cannot spawn a process on your machine. Paste the team in instead: `npx analyzthis_design system-prompt --mode both`, or copy it with one click from [the tool picker](https://analyzthis-lab.vercel.app/design#install-lovable). Note the paste path gives you the personas but no `/accept`, lessons, or trust scores — those need local state.\n\n### Install by target IDE\n\n```bash\nnpx analyzthis_design install --target claude\nnpx analyzthis_design --target claude\nnpx analyzthis_design --target codex\nnpx analyzthis_design --target grok\nnpx analyzthis_design --target windsurf\nnpx analyzthis_design --target all --force\n```\n\n**After install:** type `/noor`, `/arjun`, `/ux-ideator` (or `@` in Windsurf). Claude’s menu may only show Getting Started — type the name anyway. Also `/getting-started`. Walkthrough: [HOW-TO-USE.md](./HOW-TO-USE.md). Re-print help: `npx analyzthis_design welcome`.\n\n| Tool | Skills installed to | Invoke |\n|---|---|---|\n| Cursor | `~/.cursor/skills/<name>/SKILL.md` | `/getting-started` |\n| Claude Code | `~/.claude/skills/<name>/SKILL.md` (+ legacy `~/.claude/commands/`) | `/getting-started` |\n| Codex CLI | `~/.codex/skills/<name>/SKILL.md` | skill name / AGENTS.md |\n| Grok Build | `~/.grok/skills/<name>/SKILL.md` | `/kavi` |\n| Windsurf Cascade | `~/.codeium/windsurf/skills/<name>/SKILL.md` | `@kavi` |\n| Cross-agent | `~/.agents/skills/<name>/SKILL.md` | discovered by multiple hosts |\n\nAll skills use the **Agent Skills** `SKILL.md` standard — same files work across Cursor, Claude, Grok, Windsurf, and Codex. The CLI (`collect`, `run`, `sync`) is host-agnostic; only *where skills are discovered* differs.\n\n---\n\n## Skills Overview\n\n### Design — wireframes (start here for new screens)\n\n| Command | What it does |\n|---|---|\n| `/getting-started` | **First-run guide** — which command to use for wireframes vs critique |\n| `/design-director` | **Full producer path** — ideation → DesignSpec (tokens + components) → spec gates → implement when approved |\n| `/ux-ideator` | **Full ideation** — two competing text wireframes (minimalist vs dense), deliberation, delight, feasibility, DesignSpec |\n| `/design-spec` | **DesignSpec contract** — layout, tokens, component mapping, states (use with design-director) |\n| `/noor` | **Quick minimalist wireframe** — Concept A text wireframe, progressive disclosure |\n| `/anuj` | **Power-user wireframe** — Concept B text wireframe, density + bulk actions |\n\n### Evaluate — critique (existing designs)\n\n| Command | What it does |\n|---|---|\n| `/kavi` | **Kavi — Knowledge Archivist.** Scans the codebase, builds an Obsidian vault, LLM-enriches notes, syncs into the knowledge bank. Run once per project before critiques. _(Alias: `/collect-knowledge`)_ |\n| `/persona-orchestrator` | **Agentic critique entry point** (not for wireframes). MoE router + session state, ux-story-gate intake, persona chain, DS / hierarchy / verify gates → SHIP/REVISE/BLOCK |\n| `/ux-story-gate` | Task-first gate: PRDs, DS/Figma discovery, MoE routing, browser verify, assess-only mode |\n| `/design-critic` | 4-persona critique → Composite Score + Information Hierarchy Gate |\n| `/deliberation-protocol` | Adversarial review rules — grounding, objection JSON, parallel pairs, Raj escalation |\n\n### 9 Personas (+ host runtime)\n\nInvoke critique personas for targeted, already-grounded questions. For **wireframes**, use `/ux-ideator`, `/noor`, or `/anuj`. For full screen **critique**, prefer `/persona-orchestrator` or `/ux-story-gate`. Run **`/kavi`** first so they have project context.\n\n| Command | Persona | What they evaluate |\n|---|---|---|\n| `/kavi` | Kavi — Knowledge Archivist | Scan repo → Obsidian vault → enrich → sync knowledge bank (producer, not a critic) |\n| `/arjun` | UX + Visual Design | UX Honeycomb + Visual Design Audit (hierarchy, color, type, spacing, components, style fit, micro-interactions) |\n| `/meera` | Business Agent | Retention, ARR, GTM lever, adoption risk; hierarchy vs north-star check |\n| `/priya` | Feasibility Agent | Engineering effort (T-shirt sizing, 2-axis model), state machine traps |\n| `/zara` | Delight Agent | Exactly ONE peak delight moment — never contrast/token recovery (routes to DS Gate + Arjun) |\n| `/noor` | IA Architect | Minimalist Concept A + declared ranked information hierarchy |\n| `/anuj` | Power-User Advocate | Dense Concept B — bulk actions, keyboard shortcuts, hierarchy kept prominent |\n| `/raj` | Arbitrator | Resolves persona stalemates using 5 ranked product principles. Never speaks first. |\n| `/devi` | Host LLM runtime | Voices other personas when CLI `run` uses host mode (no API keys). Reads pending prompts → writes responses → `--continue` resumes |\n\n### Supporting skills\n\n| Command | Purpose |\n|---|---|\n| `/design-personas` | Session context template — fill in once before a session |\n| `/knowledge-bank` | Auto-populated from your connected vault (or from Kavi collect). All personas read this first. |\n| `/design-reference` | CSV reference data (colors, typography, UX guidelines, stacks, …) |\n| `/collect-knowledge` | Alias for `/kavi` |\n| `/accept` | Keep or skip the last persona note (yes / no). Local evolution — no CLI flags. |\n| `/share` | Send a correction to the package (preview, then yes). Redacted. |\n| `/receipt` | Inferred token receipt for this project. Not a bill. |\n\n---\n\n## Agentic system (v1.20)\n\n```\nUser ask / Figma URL\n        ↓\n  /persona-orchestrator\n        ↓\n  ux-story-gate Phases 0–1.5 (PRD + DS/Figma + MoE router)\n        ↓\n  Adversarial deliberation (parallel objection rounds, low satisfaction default)\n        ↓\n  MoE subset (default) OR full chain (explicit \"full\")\n        ↓\n  Zara (delight) → Raj on stalemate (after all groups — never before Zara)\n        ↓\n  Phase 5 synthesis (composite score + hierarchy gate + top 3)\n        ↓\n  Hard gates: DS → Hierarchy → Verify\n        ↓\n  SHIP / REVISE / BLOCK\n```\n\n### Devi — host LLM (no API keys) · v1.20\n\nWhen no `OPENAI_API_KEY` / `ANTHROPIC_API_KEY` / `GEMINI_API_KEY` / `ZAI_API_KEY` is set, **`run` defaults to `provider: host`**. The orchestrator writes each persona step as a prompt file; **`/devi`** (or your host IDE agent) embodies that persona and writes the response back. No paid API calls.\n\n```bash\n# 1. Start run — pauses at first persona with prompt path\nnpx analyzthis_design run --task \"Review invoice approval screen\" --full\n\n# 2. In Cursor / Claude: invoke /devi\n#    (reads pending/*.json, writes responses/*.md in persona voice)\n\n# 3. Check queue + continue\nnpx analyzthis_design devi status\nnpx analyzthis_design run --continue --task \"Review invoice approval screen\" --full\n```\n\n**Prompt queue layout:**\n\n```\n~/.analyzthis_design/runs/{project-id}/{run-id}/\n  pending/001-arjun.json    ← orchestrator writes\n  responses/001-arjun.md    ← Devi / host IDE writes\n  manifest.json\n```\n\n**Submit a response manually:**\n\n```bash\nnpx analyzthis_design devi respond \\\n  --run ~/.analyzthis_design/runs/{project-id}/{run-id} \\\n  --step 001-arjun \\\n  --file my-arjun-response.md\n```\n\n**Override host mode** when you have API keys:\n\n```bash\nexport ANTHROPIC_API_KEY=sk-...\nnpx analyzthis_design run --task \"...\" --provider anthropic\n```\n\nSkill: `/devi` · Implementation: `lib/host-llm.js`, `lib/provider.js`\n\n### Phase 5 synthesis · v1.20\n\nAfter deliberation closes, the orchestrator builds a **composite synthesis** automatically:\n\n- Per-persona scores (Arjun, Meera, Priya, Zara)\n- **Verdict:** SHIP / REVISE / BLOCK\n- **Top 3 actionable changes** (ranked)\n- **Information Hierarchy Gate** (Arjun visual hierarchy + Meera hierarchy check)\n\nStored in session as `synthesis` (JSON) and `synthesis_markdown` (display block). Printed at end of every completed `run`.\n\n### Adversarial deliberation (v1.19+)\n\nPersonas **debate** grounded in real task_map, PRD, and UI context — they do not pass generic handoff documents.\n\n| Knob | Default | Meaning |\n|------|---------|---------|\n| `satisfaction_threshold` | 0.4 | Personas hard to please — must see evidence before `accepts_prior: true` |\n| `max_rounds` | 3 | Cap on objection rounds (token-bounded) |\n| `parallel_pairs` | Noor∥Anuj, Meera∥Priya | Adversarial critique in parallel |\n\n```bash\nnpx analyzthis_design run --task \"Review onboarding\" --full --dry-run   # see deliberation groups\nnpx analyzthis_design run --task \"...\" --satisfaction 0.3               # even harder to satisfy\nnpx analyzthis_design run --task \"...\" --no-deliberate                  # legacy sequential mode\nnpx analyzthis_design metrics                                           # deliberation_rounds, objections\n```\n\nConfig: `~/.analyzthis_design/config.json` → `deliberation` block (see `supabase/deliberation-config.example.json`).\n\nSkill: `/deliberation-protocol` | Schema: `agents/deliberation-schema.json`\n\n**Low satisfaction ≠ unlimited tokens.** Objection rounds use lite schema + 600-token cap; synthesis and Raj use full produce mode.\n\n**Raj order (v1.20):** Raj escalates **after all deliberation groups** complete — Zara always runs before Raj in the critique chain.\n\n---\n\n**Shared session state** lives at `~/.analyzthis_design/sessions/{project-id}/session-state.json`.\n\nKey fields after a run:\n\n| Field | Contents |\n|---|---|\n| `persona_outputs` | Each persona's text + parsed deliberation JSON |\n| `full_prompts` | Exact `{ system, user }` prompts sent to the LLM (for training / auditing) |\n| `structured_outputs` | Parsed grades, score, top fixes per persona |\n| `covered_points` | Deduplicated findings across personas (redundancy suppression) |\n| `task_type` | Canonical problem type from the router |\n| `deliberation` | `round_log`, `open_objections`, `consensus_reached`, `raj_escalated` |\n| `synthesis` | Composite scores, verdict, top 3, hierarchy gate |\n| `synthesis_markdown` | Phase 5 block for display / export |\n| `outcome` | `inferred` + `confirmed` outcome per persona (for the evolution loop) |\n| `host_run` | Host-mode checkpoint when paused for Devi (`run_dir`, `checkpoint`) |\n| `metrics` | `llm_calls`, `deliberation_rounds`, `objections_raised`, token estimates |\n\n```bash\nnpx analyzthis_design session init\nnpx analyzthis_design session show\nnpx analyzthis_design session reset\n```\n\n**Portable agent graph** (same manifests for Cursor / Claude / Codex / CLI):\n\n```\nagents/\n  manifests/     # one JSON per persona + orchestrator\n  router.json    # MoE problem-type → expert list\n  chain.json     # default + ideation sequential graphs\n  session-schema.json\n```\n\n**v2.0 chunked runtime (default for `run`):**\n\n```bash\n# Default: frontier planner + sequential chunk execution on free/cheap models\nnpx analyzthis_design run --task \"Review invoice approval screen\"\n\n# Auto-detect local Ollama, otherwise use free cloud models\nnpx analyzthis_design run --task \"Review invoice approval screen\" --budget free\n\n# Use your paid keys for cheap cloud models\nnpx analyzthis_design run --task \"...\" --budget cheap --provider together\n\n# Limit parallelism / chunk count (sequential is default)\nnpx analyzthis_design run --task \"...\" --sequential --max-chunks 4\nnpx analyzthis_design run --task \"...\" --parallel --max-chunks 6\n\n# Legacy single-pass orchestrator (unchunked)\nnpx analyzthis_design run-unchunked --task \"Review invoice approval screen\" --full\n\n# Host mode (no API keys) — Devi voices personas via prompt queue\nnpx analyzthis_design run-unchunked --task \"Review invoice screen\" --full\nnpx analyzthis_design devi status\nnpx analyzthis_design run-unchunked --continue --task \"Review invoice screen\" --full\n```\n\n**Chunk model selection:** Ollama auto-discovered → free cloud (Groq/Gemini/OpenRouter free endpoints) → cheap cloud with user keys. The **planner always runs on a frontier/strong model** and never on a cheap model; if no frontier provider is available, it falls back to the host model with a warning.\n\n### Persona model calibration\n\nModel learning is scoped by persona, effort, task type, and output format. API availability failures are tracked separately from answer quality, and `/accept` records the exact run and model that produced the note. Host/Devi responses are labelled `host/unknown` because the package cannot verify the model selected inside an IDE.\n\n```bash\n# Preview the fixed benchmark, eligible models, call count, and worst-case cost\nnpx analyzthis_design calibrate --max-usd 5 --max-calls 500\n\n# Apply a qualified local winner after reviewing the preview/results\nnpx analyzthis_design calibrate --max-usd 5 --max-calls 500 --judge --apply\n\n# Preview the text-free community payload; private-task results are never shared\nnpx analyzthis_design calibrate --share --dry-run\n```\n\nCalibration is preview-only unless `--apply` is present. It uses fixed spending and call limits, format-specific checks, and paired non-inferiority comparisons. Local winners live in `~/.analyzthis_design/calibration.json`; maintainer-reviewed global defaults ship in `agents/model-policy.json`. A changed persona prompt, validator, expired model, or failed capability check automatically invalidates an old winner.\n\nApplying a winner also requires the selected judges to match the benchmark’s 10 maintainer-labelled comparisons at least 70% of the time. Without enough aligned, independent judge evidence, results remain low-confidence and the current model policy is kept.\n\n**Provider resolution order:** explicit `--provider` → config → first available API key → **`host`** (Devi) for unchunked; chunked mode also considers Ollama and free endpoints before paid.\n\nSupported providers: `host` | `anthropic` | `openai` | `google` | `zai` | `ollama` | `groq` | `together` | `openrouter` | `deepseek`\n\nProvider defaults live in `~/.analyzthis_design/config.json`:\n\n```json\n{\n  \"orchestrator\": {\n    \"provider\": \"anthropic\",\n    \"model\": \"claude-sonnet-4-20250514\",\n    \"mode\": \"lite\",\n    \"tiers\": {\n      \"structured\": { \"provider\": \"openai\", \"model\": \"gpt-4o-mini\" },\n      \"critique\":   { \"provider\": \"anthropic\", \"model\": \"claude-sonnet-4-20250514\" },\n      \"arbitrate\":  { \"provider\": \"anthropic\", \"model\": \"claude-sonnet-4-20250514\" }\n    },\n    \"max_tokens\": { \"structured\": 900, \"critique\": 1800, \"arbitrate\": 1200 }\n  },\n  \"pricing\": {\n    \"glm-4.5-flash\":     { \"input_per_m\": 0,    \"output_per_m\": 0 },\n    \"gemini-2.5-flash\":  { \"input_per_m\": 0.30, \"output_per_m\": 2.50 },\n    \"claude-sonnet-4-20250514\": { \"input_per_m\": 3, \"output_per_m\": 15 },\n    \"gpt-4o\":            { \"input_per_m\": 2.50, \"output_per_m\": 10 }\n  },\n  \"research\": { \"provider\": \"https://example.com/search?q={query}\" },\n  \"collect\": {\n    \"web_urls\": [\"https://analyzthis.com\"],\n    \"web_queries\": [\"competitor onboarding patterns\"],\n    \"web_limit\": 10,\n    \"web_from_repo\": true\n  }\n}\n```\n\nThe `effort_matrix` and `gate_override` live in `agents/chain.json` (not the user config) so they ship with the package and stay in sync with the agent graph. `pricing` is user-configured so you control your own $-cost reporting.\n\n**Web research (automatic in collect):**\n\nKavi fetches URLs during `collect` — from config and from links in README/PRD markdown — and merges them into the knowledge bank. You usually do **not** need a separate `research` step.\n\n```bash\nnpx analyzthis_design collect                    # repo + web URLs in one pass\nnpx analyzthis_design collect --dry-run          # preview URLs Kavi will fetch\nnpx analyzthis_design collect --no-web           # repo only\n```\n\nManual research (optional, when you want one-off fetches without a full collect):\n\n```bash\nnpx analyzthis_design research --url https://example.com/design-tokens\nnpx analyzthis_design research --query \"EY design system tokens\"\n```\n\nWrites to `~/.analyzthis_design/sessions/{id}/web-context.md` and merges into the knowledge bank on `sync` / `collect`.\n\n---\n\n## Efficiency & cost (v1.10)\n\nThe orchestrator defaults to the cheapest path that still respects every gate — fewer expert calls, shorter prompts, cheaper models where judgment isn't required, and on-disk caching. These savings apply to the **critique/audit** path (what this package does); see *What this actually saves* below for the honest scope.\n\n### Effort-graded model selection (v1.10)\n\nEach persona call is classified **trivial | standard | hard** from cheap signals already in the routing + session digest (no LLM call — a model call to pick a model would eat the savings). The classifier then resolves the model from an effort matrix, with persona-level overrides winning and the legacy `tiers` map as the final fallback so existing manifests keep working unchanged.\n\n```mermaid\nflowchart TB\n    Ask[User ask] --> Router[MoE router + effort classifier]\n    Router -->|effort| Resolve[resolveModel persona effort]\n    Resolve -->|gate? hard override| Matrix[effort_matrix in chain.json]\n    Resolve -->|persona| Overrides[manifest.effort_overrides]\n    Matrix --> Call[callLlm host or API provider]\n    Overrides --> Call\n    Call --> Metrics[metrics.effort_log + cost_usd]\n    Metrics --> CostCmd[npx analyzthis_design cost]\n```\n\nClassifier rules (first match wins, safety rules before savings rules):\n- scoped mode active → **trivial** (single dimension by construction)\n- stalemate / any BLOCK / `full_chain` / `full_screen_review` → **hard**\n- `digest.ds_at_risk` non-empty → **hard**\n- REVISE delta follow-up → **trivial**\n- `manifest.tier == structured` → **trivial**, `arbitrate` → **standard**\n- default → **standard**\n\n**Gates never downgrade.** `ds_gate`, `information_hierarchy_gate`, and `verify_gate` are pinned to `hard` via `chain.gate_override` regardless of the classified effort — they're the safety net that makes downgrading persona work safe.\n\nDefault effort matrix (in `agents/chain.json`):\n- **trivial** → `host` / Devi (~600-token cap for objection rounds) — or API model when keys set\n- **standard** → `gemini-2.5-flash` or `gpt-4o-mini`, ~1200-token cap\n- **hard** → `claude-sonnet-4-20250514`, ~1800-token cap\n\nPer-persona `effort_overrides` in each manifest refine this (e.g. Arjun's `trivial` is the color-system-only scoped mode at 700 tokens; his `hard` is the full Honeycomb + Visual Audit at 1800).\n\n```\nAsk → session digest → MoE router (1–2 experts, not 4) → persona cards (not full skills)\n    → retrieve-on-demand CSV rows (not whole files) → model tier by step → caches → cost metrics\n```\n\n| Lever | Default behavior |\n|---|---|\n| **Expert budget** | 1–2 personas per ask. Full `design-critic` chain only runs for an explicit \"full critique\" or `full_screen_review`. |\n| **Early DS exit** | Any \"at risk\" DS Token Checklist item stops the chain at `arjun_color_system_only` — Meera/Priya/Zara wait until it clears. |\n| **Delta re-evaluation** | A follow-up after REVISE re-runs only the personas assigned to the prior Top 3 changes, never the full chain. |\n| **Persona cards** | `agents/cards/<persona>.md` (~500 tokens) are the default system prompt; the full `skills/<persona>/SKILL.md` is only opened for a C-or-below rubric lookup or an explicit deep/full request. |\n| **Lite output schema** | Grades + Top 2 fixes + score, by default. Deep/full schema is opt-in. |\n| **Retrieve-on-demand** | `npx analyzthis_design retrieve --file colors.csv --column \"Product Type\" --keywords saas` returns only matching rows, pre-formatted for citation — never the whole CSV. |\n| **Multi-file reference packs** | Each persona retrieves from 3-5 CSV files (not 1), pooled into a single ranker call. Arjun gets styles + ux-guidelines + ui-reasoning + charts; Zara gets colors + typography + styles + landing + icons. Same LLM cost as single-file, 3-5x coverage. |\n| **Best For Tags** | `styles.csv` and `typography.csv` have a `Best For Tags` column (semicolon-delimited product-type tokens) for reliable keyword filtering. Previously `Best For` was free-text and 31/84 styles were unfilterable. |\n| **CSV schema + validation** | `skills/design-reference/schema.json` defines all 30 CSV files' headers, filter columns, and cross-file joins. `npm run validate` checks integrity before publish. |\n| **Model tiers** | `structured` steps can run on a cheaper model (e.g. `gpt-4o-mini`); `critique`/`arbitrate` steps use a stronger model. Configurable per tier in `~/.analyzthis_design/config.json`. |\n| **Caching** | `lib/cache.js` caches retrieve results (invalidated automatically when the source CSV changes) and knowledge-bank slices (invalidated on `sync` / `session reset`). |\n| **Cost metrics** | Every `run` records `metrics` (llm_calls, experts_run, estimated tokens, cache_hits) into session state. |\n\n```bash\nnpx analyzthis_design metrics                 # last run's cost summary for this project\nnpx analyzthis_design metrics --all           # across every project\n```\n\n### What this actually saves (and what it doesn't)\n\nanalyzthis_design is a design **critique** layer, not a design generator. The personas *review* UI; they don't produce a finished design end-to-end. So the savings show up on the **review** side of the loop, and across the **create → review → revise** loop when your host LLM uses the personas as a guided check — not on raw generation in isolation.\n\n**Honest, measurable savings on the critique path:**\n\n- ~50–75% fewer expert LLM calls on narrow asks (1–2 personas vs. 4).\n- ~50%+ fewer input tokens per `run` (persona cards vs. full SKILL.md).\n- Retrieve-on-demand sends only matching CSV rows, not whole files (`colors.csv` is 32 kB, `styles.csv` is 143 kB — we send ~5 rows).\n- Structured/extract steps can run on a cheaper model with a 900-token cap; only critique/arbitrate uses the strong model.\n- Repeat runs on the same file hit the cache instead of re-processing Figma screenshots, KB slices, and CSV packs.\n- Every saving above is **observable** via `npx analyzthis_design metrics` (`llm_calls`, `input_tokens_est`, `output_tokens_est`, `cache_hits`).\n\n**Where the savings come from across the whole loop** (when the host LLM routes a design through the personas):\n\n- Fewer revision rounds — DS / hierarchy / contrast failures are caught early instead of after a full review.\n- Data-driven citations ground the LLM so it doesn't hallucinate or re-derive design rules.\n- The host LLM gets a compact digest + targeted fixes, not a wall of prose.\n\n**What this is *not*:**\n\n- It does **not** generate end-to-end designs using fewer tokens — it critiques.\n- It does **not** save tokens vs. \"using no AI at all\" — it adds a review layer; it saves tokens vs. an *unstructured* review loop.\n- There is no hard percentage claim yet — v1.9 ships *targets* (full-chain rate <30%, median experts ≤2, ~50% fewer skill-prompt tokens), not proven production numbers. Run `metrics` on your own workload to see your actual savings.\n\n**LoRA readiness (export hook only — no training in this release):**\n\n```bash\n# Good examples (positive pairs)\nnpx analyzthis_design session accept --persona arjun\nnpx analyzthis_design export-training --persona arjun --all\n\n# Bad output + how you corrected it (negative / DPO pairs) — v1.16\nnpx analyzthis_design session accept --persona arjun --reject \\\n  --comment \"Invented tokens not in our DS\" \\\n  --correction \"Use --color-primary and spacing-4 from tokens.css\" \\\n  --rating 2 --tags invented_tokens,missed_ds\n\nnpx analyzthis_design feedback record --persona arjun --rating 2 \\\n  --comment \"Hierarchy wrong — CTA buried\" \\\n  --correction \"Primary action should be top-right, above the fold\"\n\nnpx analyzthis_design feedback list\nnpx analyzthis_design feedback export --persona arjun --all\n```\n\n`export-training` now emits richer training pairs: `{ system_card, system_prompt_full, user_prompt_full, digest, user, assistant, structured_output, outcome, task_type }`. The full prompts are captured automatically on every `run`, so fine-tuning datasets include the exact context the persona saw.\n\n**Correction export** writes `{ assistant_rejected, assistant_preferred, user_comment, tags }` to `~/.analyzthis_design/feedback/<persona>-corrections.jsonl` — useful when users were unhappy or had to rewrite persona output. Every entry is also appended to a global `corrections.jsonl` across projects.\n\nOnce a persona accumulates ~100–300 accepted pairs (and optionally correction pairs), that data is ready for a future fine-tuning pass on an open model — not part of this package yet.\n\n---\n\n## Self-evolving persona team (v1.21)\n\nThe system now captures every run, learns from accepted outputs + confirmed outcomes, and proposes improvements to its own prompts, reference data, and routing — **dry-run by default**, human review before any apply.\n\n```\nRun → full prompts + structured output + outcome captured\n        ↓\nLessons extracted (accepted outputs) → ~/.analyzthis_design/lessons/<persona>.jsonl\n        ↓\nOutcome confirmed (shipped / revised / blocked / missed)\n        ↓\nevolve --extract → proposes:\n  - prompt patches (new canonical failure patterns per persona)\n  - reference-data rows (new product-type patterns)\n  - router patches (task_type → best-performing expert)\n        ↓\n  evolve --apply <patchId> (human review) → skill/CSV/router updated\n         ↓\nNext run retrieves:\n  - per-persona knowledge slices (priority + fallback)\n  - past lessons for similar tasks\n  - query-expanded + ranked reference rows from 3-5 CSV files per persona\n```\n\n### Retrieval stack\n\n| Layer | What it does | Files |\n|---|---|---|\n| **Query expansion** | One cheap LLM call per run expands the task into search terms (product type, design domain, component, persona lens) | `lib/query-expander.js`, `agents/cards/query-expander.md` |\n| **Per-persona ranking** | A second cheap LLM call per persona ranks the top 5 reference rows + knowledge notes for that persona's lens | `lib/ranker.js`, `agents/cards/ranker.md` |\n| **Lessons retrieval** | Top-3 lessons from past accepted sessions, keyword-matched to the current task | `lib/lessons.js` |\n| **Redundancy suppression** | Before each persona produces, it sees what prior personas already covered and is told to only add NEW insights | `lib/dedup.js`, `lib/deliberation.js` |\n| **Per-persona KB slices** | `sync` now builds a filtered slice per persona (priority categories first, small fallback context at the end) | `lib/knowledge.js` |\n\n### Commands\n\n```bash\n# Extract lessons + infer outcomes + propose patches (dry-run by default)\nnpx analyzthis_design evolve --extract [--window N] [--dry-run]\n\n# Review a patch before applying\nnpx analyzthis_design evolve --apply <patchId> --dry-run\n\n# Apply a patch after review (prompt / reference rows only; router patches need manual edit)\nnpx analyzthis_design evolve --apply <patchId>\n\n# Outcome tracking\nnpx analyzthis_design outcome --infer [--window N]      # auto-infer from next session\nnpx analyzthis_design outcome --pending                  # list inferred outcomes awaiting confirmation\nnpx analyzthis_design outcome --confirm --persona arjun --result shipped\n```\n\nConfig in `agents/chain.json` → `evolution` block: `extraction_window_days`, `min_lessons_for_patch`, `min_outcomes_for_router_patch`.\n\n---\n\n## Persona feedback — corrections & unhappiness (v1.16)\n\nWhen a persona gets it wrong, you can record **what was wrong** and **how you fixed it**. This feeds future fine-tuning (negative / DPO pairs) alongside the existing positive `export-training` path.\n\n| Command | Purpose |\n|---------|---------|\n| `feedback record` | Log rating, comment, correction, tags for a persona's last output |\n| `feedback list` | See all feedback for this project (or `--all`) |\n| `feedback export` | Write `{ assistant_rejected, assistant_preferred, … }` JSONL |\n| `session accept --reject --comment …` | Reject + record in one step |\n\nSuggested tags: `wrong_hierarchy`, `invented_tokens`, `missed_ds`, `too_verbose`, `bad_ia`, `off_brief`.\n\nStored in `session-state.json` → `feedback_log` and appended globally to `~/.analyzthis_design/feedback/corrections.jsonl`.\n\n### Community collection (v1.17) — opt-in submit\n\nFor **open-source contributors**, share anonymized corrections with maintainers:\n\n```bash\nnpx analyzthis_design feedback record --persona arjun --rating 2 --comment \"...\" --correction \"...\"\nnpx analyzthis_design feedback submit --dry-run    # preview redacted payload\nnpx analyzthis_design feedback submit --all --yes  # send unsent entries (asks consent once)\nnpx analyzthis_design feedback status\n```\n\n**What gets sent:** persona, rating, tags, comment, correction, redacted output snippets, anonymous install id, package version.\n\n**What does NOT get sent:** project paths, repo names, emails, API keys, full source trees.\n\n**Maintainer setup (vendor-neutral HTTP endpoint):**\n\nThe `feedback submit` client is a plain HTTPS POST with an `apikey` header — it works with any REST endpoint that accepts anonymous inserts, not only Supabase. A reference schema (with row-level security for insert-only anon access) lives in [`supabase/migrations/001_persona_feedback.sql`](./supabase/migrations/001_persona_feedback.sql) in the repo. That folder is **not** shipped in the npm package, so installing `analyzthis_design` does not pull a Supabase-branded folder into `node_modules`.\n\n1. Stand up any HTTP endpoint that accepts anonymous JSON inserts (Supabase with RLS is one option; a small Cloudflare Worker or a self-hosted Postgres + thin API work too).\n2. Run `supabase/migrations/001_persona_feedback.sql` for persona feedback and `002_calibration_results.sql` for opt-in calibration aggregates. The second migration is compatible with Neon and was production-verified on 2026-09-17.\n3. Copy the endpoint URL and anon key into `~/.analyzthis_design/config.json` under `\"feedback\"` (or set env vars `ANALYZTHIS_FEEDBACK_URL` + `ANALYZTHIS_FEEDBACK_ANON_KEY`).\n4. Read submissions from your endpoint's dashboard.\n\nUsers can also file GitHub issues via **Persona feedback** template if they prefer not to use CLI submit.\n\n---\n\n## DesignSpec — Designer-grade handoff (v1.15)\n\nPersonas can now guide **what** and **how** to design — not just critique.\n\n```\n/ux-ideator or /design-director\n        ↓\n  Text wireframe + information hierarchy\n        ↓\n  DesignSpec JSON (layout, tokens, components, states)\n        ↓\n  Spec gates: DS + hierarchy + Arjun visual\n        ↓\n  status: ship → implement (if build_approved)\n        ↓\n  Browser verify + delta critique\n```\n\n**DesignSpec** fields: `intent`, `information_hierarchy`, `layout.regions`, `tokens` (from your DS), `components[]` (real import paths), `states` (empty/loading/error/success), `do`/`dont`.\n\n```bash\nnpx analyzthis_design spec template    # empty copy-paste block\nnpx analyzthis_design spec validate --file design-spec.json\nnpx analyzthis_design spec save --file design-spec.json\nnpx analyzthis_design spec show\n```\n\nSchema: `agents/design-spec-schema.json`. Producer orchestration: `/design-director`.\n\n---\n\n## UX Story Gate — How it works\n\n`/ux-story-gate` is the task-first gate for any screen evaluation:\n\n| Phase | What it does |\n|---|---|\n| 0 | PRD discovery from knowledge bank + repo |\n| 0.5 | DS / Figma discovery + DS Token Checklist (exit criteria) |\n| 1 | Task map intake gate |\n| 1.5 | MoE problem-type router → writes `routing_decision` to session state |\n| 2 | Field veto pass |\n| 3 | Scale & states declaration |\n| 4 | Per-task persona routing |\n| 4.5 | Browser verify gate (navigate → snapshot → primary flow → mobile+desktop screenshot) |\n| 5 | Task × Finding synthesis |\n| 5.5 | Assess-only mode — no code changes until you say build / implement / apply |\n\n---\n\n## Knowledge collection — Kavi (v1.14)\n\nKavi is a **producer** persona (not a critic). One command scans the current repo, **discovers Obsidian vaults and knowledge graphs**, **fetches external URLs**, writes an Obsidian vault with dynamic `Sources/*.md` manifests, optionally enriches notes, then auto-connects and syncs everything into the knowledge bank.\n\n```\n/kavi  (or  npx analyzthis_design collect)\n        ↓\n  Scan codebase → draft Obsidian notes\n        ↓\n  Discover knowledge sources (.obsidian vaults, wikis, refs in README/docs)\n        ↓\n  Write Sources/*.md manifest notes + _meta/knowledge-sources.md\n        ↓\n  Auto-connect discovered vaults + fetch web URLs → web-context.md\n        ↓\n  LLM enrich (optional)\n        ↓\n  connect + sync → knowledge bank (repo + vaults + web)\n        ↓\n  Personas read unified context first\n```\n\n```bash\n# In your app repo (sync KB to every host):\nnpx analyzthis_design collect --target all\nnpx analyzthis_design collect --dry-run          # preview notes + URLs\nnpx analyzthis_design collect --no-web           # skip external fetch\nnpx analyzthis_design collect --no-enrich --limit 50\nnpx analyzthis_design collect --vault ~/Documents/MyProjectVault --target claude\n```\n\nAdd external sources and vault paths in `~/.analyzthis_design/config.json`:\n\n```json\n{\n  \"collect\": {\n    \"source_paths\": [\"~/Documents/MyCompanyVault\"],\n    \"scan_home_vaults\": false,\n    \"auto_connect_discovered\": true,\n    \"web_urls\": [\"https://analyzthis.com\"],\n    \"web_limit\": 10\n  }\n}\n```\n\nKavi auto-discovers: `.obsidian/` vaults in the repo, markdown wikis, knowledge-graph mentions, and vault paths referenced in README / AGENTS.md / docs. Each discovery gets a `Sources/*.md` manifest note fed into the knowledge bank.\n\nVault folders: `PRDs/`, `Brand/`, `Product/`, `Pages/`, `Components/`, `Design/`, `Tech/`, `Research/`, `_meta/`. Notes use YAML frontmatter + `[[wikilinks]]`. Re-runs skip unchanged enriched notes via content hash.\n\nEnrichment needs one of: `OPENAI_API_KEY`, `GEMINI_API_KEY`, `ANTHROPIC_API_KEY`, `ZAI_API_KEY`. Without a key, Kavi still writes a draft vault and syncs it.\n\n---\n\n## Knowledge Bank — Connect your vault\n\n```bash\n# Option A — let Kavi build the vault from the codebase (recommended for new projects)\nnpx analyzthis_design collect\n\n# Option B — connect an existing Obsidian vault or markdown folder\nnpx analyzthis_design connect --vault ~/Documents/MyVault\nnpx analyzthis_design connect --vault ~/vault --tags design,brand,prd,product\nnpx analyzthis_design connect --vault ~/vault --include Design,Brand,PRDs,Research\nnpx analyzthis_design sync\nnpx analyzthis_design sync --target all\nnpx analyzthis_design status\nnpx analyzthis_design disconnect --vault ~/Documents/MyVault\n```\n\nPRDs and user stories are surfaced at the top of the knowledge bank. Brand / design-system notes feed Phase 0.5. Web research merges under **Web Research Context**.\n\nConfig: `~/.analyzthis_design/config.json`.\n\n---\n\n## CLI Reference\n\n```bash\n# Install / remove / list / welcome\nnpx analyzthis_design\nnpx analyzthis_design --target all\nnpx analyzthis_design --force\nnpx analyzthis_design welcome [--target cursor|claude|all]\nnpx analyzthis_design remove --target all\nnpx analyzthis_design list --target all\n\n# Design spec\nnpx analyzthis_design spec template\nnpx analyzthis_design spec validate --file design-spec.json\nnpx analyzthis_design spec save --file design-spec.json\nnpx analyzthis_design spec show\n\n# Knowledge collection (Kavi)\nnpx analyzthis_design collect [--vault path] [--dry-run] [--no-enrich] [--no-web] [--no-discover] [--web-limit N] [--target ...]\n\n# Knowledge bank\nnpx analyzthis_design connect --vault <path> [--tags ...] [--include ...]\nnpx analyzthis_design sync [--target all]\nnpx analyzthis_design disconnect --vault <path>\nnpx analyzthis_design status\n\n# Session (agentic)\nnpx analyzthis_design session init|show|reset [--project id] [--all]\nnpx analyzthis_design accept --keep [--persona zara]          # designer keep (slash: /accept yes)\nnpx analyzthis_design accept --fix --because \"one sentence\"   # designer skip (slash: /accept no)\nnpx analyzthis_design share                                   # preview notes for the package\nnpx analyzthis_design share --send                            # send (slash: /share yes)\nnpx analyzthis_design session accept --persona <id> [--reject] [--comment \"...\"] [--correction \"...\"] [--rating 1-5] [--tags a,b]\n\n# Persona feedback (v1.16)\nnpx analyzthis_design feedback record --persona <id> [--rating 1-5] [--comment \"...\"] [--correction \"...\"] [--tags a,b]\nnpx analyzthis_design feedback list [--all]\nnpx analyzthis_design feedback export [--persona <id>] [--all] [--output path] [--include-positive]\nnpx analyzthis_design feedback submit [--persona <id>] [--all] [--yes] [--dry-run]\nnpx analyzthis_design feedback status\nnpx analyzthis_design feedback revoke\n\n# Research\nnpx analyzthis_design research --url <url>\nnpx analyzthis_design research --query <text>\n\n# Reference data (retrieve-on-demand)\nnpx analyzthis_design retrieve --file <csv> --column <col> --keywords a,b [--limit N]\n\n# Standalone orchestrator (v2.0 chunked by default)\nnpx analyzthis_design run --task \"...\" [--budget free|cheap|auto] [--sequential|--parallel] [--max-chunks N] [--dry-run]\nnpx analyzthis_design run-unchunked --task \"...\" [--lite|--full] [--experts a,b] [--dry-run] [--deliberate|--no-deliberate]\nnpx analyzthis_design run --continue --task \"...\"   # resume host-mode run after /devi\n\n# Persona/model calibration (fixed benchmark; preview unless --apply)\nnpx analyzthis_design calibrate --max-usd 5 --max-calls 500 [--judge --apply]\nnpx analyzthis_design calibrate --share --dry-run\n\n# CSV validation\nnpx analyzthis_design validate    # validate all 30 CSV files against schema.json\n\n# MCP server (for any AI IDE: Cursor, Claude Desktop, Lovable, v0, Bolt, Replit)\nnpx analyzthis_design mcp                          # start stdio MCP server\nnpx analyzthis_design mcp --configure cursor       # auto-config Cursor\nnpx analyzthis_design mcp --configure claude        # auto-config Claude Desktop\nnpx analyzthis_design mcp --configure windsurf     # auto-config Windsurf\nnpx analyzthis_design mcp --configure <tool>       # print config for any other tool\n\n# Self-evolving team (v1.21)\nnpx analyzthis_design evolve --extract [--window N] [--dry-run]\nnpx analyzthis_design evolve --apply <patchId> [--dry-run]\nnpx analyzthis_design evolve --metrics [--project id]\nnpx analyzthis_design evolve --ready [--project id]\nnpx analyzthis_design outcome --infer [--window N]\nnpx analyzthis_design outcome --pending\nnpx analyzthis_design outcome --confirm --persona <id> --result shipped|revised|blocked|missed\n\n# Mood board (v1.22)\nnpx analyzthis_design moodboard create --task \"...\" [--auto] [--url <url> ...]\nnpx analyzthis_design moodboard critique --board <id>\nnpx analyzthis_design moodboard add --board <id> --url <url> --title \"...\" --tags a,b\nnpx analyzthis_design moodboard list\n\n# Devi — host LLM queue (v1.20)\nnpx analyzthis_design devi status [--run path]\nnpx analyzthis_design devi respond --run <run-dir> --step 001-arjun --file response.md\n\n# Efficiency / cost\nnpx analyzthis_design metrics [--project id] [--all]\nnpx analyzthis_design cost [--project id] [--all]\nnpx analyzthis_design export-training --persona <id> [--project id] [--all] [--output path]\nnpx analyzthis_design feedback export [--persona <id>] [--project id] [--all] [--output path]\n```\n\n---\n\n## Repository structure\n\n```\nagents/                 Portable MoE graph (manifests, router, chain, session schema)\n  cards/                Short per-persona system prompts (~500 tokens each)\nbin/cli.js              CLI entry point\nlib/\n  install.js            Skill installation\n  knowledge.js          Vault sync + web-context merge\n  collect.js            Kavi — codebase scan → vault → source discovery → enrich → sync\n  ui-libraries.js       Detect motion/UX/visual kits from package.json + kit folders\n  source-discovery.js   Obsidian vault / wiki / knowledge-graph discovery + manifest MD\n  platforms.js          Cross-host skill paths (Cursor, Claude, Codex, Grok, Windsurf, agents)\n  session.js            Shared session-state.json (+ digest, metrics, vault_path, installed_ui_libraries)\n  research.js           URL / query → web-context.md\n  retrieve.js           Filtered, citation-ready CSV row retrieval\n  cache.js              On-disk cache for retrieve/kb slices\n  chunk-models.js       Curated free/cheap model pool + Ollama auto-discovery\n  chunk-planner.js      Frontier/strong model chunk planner\n  chunk-router.js       Cheapest capable model per chunk\n  chunk-executor.js     Chunk execution with retry + fallback\n  chunk-synthesis.js    Merge chunk outputs into final verdict\n  chunk-telemetry.js    Per-chunk model quality tracking\n  chunk-run.js          Top-level chunked execution coordinator\n  reference-pack.js     Shared multi-file CSV + vault retrieval (buildReferencePack)\n  mcp-server.js         MCP server — 19 tools for any MCP-compatible IDE\n  system-prompt.js      Consolidated prompt generator (fallback for non-MCP tools)\n  moodboard.js          Mood-board engine: collect web/DS references, tag, deliberate\n  dedup.js              Cross-persona redundancy detection\n  lessons.js            Self-evolving lessons store (extract/retrieve/inject)\n  outcome.js            Infer + confirm persona outcome labels\n  query-expander.js     LLM task → search terms for retrieval\n  ranker.js             LLM per-persona ranking of reference/knowledge candidates\n  evolve.js             Evolution engine: prompt/reference/router patch proposals\n  export.js             LoRA training-pair export hook\n  feedback.js           Persona unhappiness + correction logging (session + global JSONL)\n  feedback-submit.js    Opt-in anonymized submit to Supabase (community feedback)\n  deliberation.js       Adversarial satisfaction loops, context pack, Raj escalation\n  host-llm.js           Devi bridge — pending/response queue, checkpoint on pause\n  provider.js           Auto-detect API keys or default to host\n  synthesis.js          Phase 5 composite score + hierarchy gate + top 3\n  cost.js               $-cost report from metrics × config.pricing\n  orchestrator/run.js   Standalone runtime (v2) — MoE, host/API providers, synthesis\nscripts/\n  run-live-quality.js   Host-mode quality test (fixtures through real engine)\n  quality-check.js      Validate persona outputs vs skill + deliberation protocol\n  demo-fictional-deliberation.js  Dry-run walkthrough for FlowPay scenario\nscripts/obfuscate.js    Build step → dist/\nscripts/validate-csvs.js  CSV integrity validation against schema.json\nskills/\n  devi/                 Host LLM runtime — voices personas from pending prompts\n  kavi/                 Kavi — Knowledge Archivist (/kavi)\n  collect-knowledge/    Alias for Kavi (backward compatible)\n  persona-orchestrator/ Agentic critique entry point\n  deliberation-protocol/ Adversarial review rules (v1.19+)\n  ux-story-gate/        Task-first gate + DS/MoE/verify/assess phases\n  design-critic/        4-persona critique + hierarchy gate\n  ux-ideator/           6-phase ideation\n  arjun/ meera/ priya/ zara/ noor/ anuj/ raj/\n  design-personas/ knowledge-bank/ design-reference/\n```\n\n---\n\n## Requirements\n\n- Node.js 16+\n- Any Agent Skills–compatible host: [Cursor](https://cursor.com), [Claude Code](https://code.claude.com), Codex CLI, [Grok Build](https://x.ai), or Windsurf Cascade\n- **CLI `run`:** works without API keys via **`/devi`** host mode (default). Optional keys for automated API runs: `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`, `ZAI_API_KEY`, `GROQ_API_KEY`, `TOGETHER_API_KEY`, `OPENROUTER_API_KEY`, `DEEPSEEK_API_KEY`. Local Ollama auto-detected at `localhost:11434`.\n- **Kavi `collect` enrichment:** optional — same keys as above; without keys, draft vault + sync still run\n\n---\n\n## What's new in v2.3\n\n| Feature | Description |\n|---------|-------------|\n| **MCP server** | `npx analyzthis_design mcp` starts a local MCP server exposing 19 tools — all 8 individual personas + 6 combination passes + 5 utilities. Any MCP-compatible client can discover and call them. |\n| **Auto-configure MCP** | `npx analyzthis_design mcp --configure cursor` (or `claude`, `windsurf`) writes the MCP config automatically. `--target all` now auto-configures MCP during install. |\n| **Universal IDE support** | Cursor, Claude Code, Claude Desktop, Windsurf auto-configured via MCP. Lovable, v0, Bolt, Replit, ChatGPT install nothing — paste `system-prompt` output into the tool's instructions. |\n| **MCP lite + full** | Default: router (`analyzthis_design`) + retrieve + session + receipt. Full 19 named tools behind `--catalog full`. |\n| **System prompt fallback** | `analyzthis_system_prompt` tool generates a consolidated prompt for tools that don't support MCP yet |\n\n## What's new in v2.2\n\n| Feature | Description |\n|---------|-------------|\n| **Premise challenge** | Planner now evaluates whether the task premise is valid before planning chunks. Can add a `premise_check` chunk (Raj) that runs first and questions \"are we solving the right problem?\" |\n| **Conflict resolution** | Synthesis must pick a winner when personas disagree — not summarize both sides. Detects disagreements automatically, injects them into the synthesis prompt, and requires a definitive answer with a forward path. |\n| **Raj authority expanded** | Raj can now challenge the task premise (not just arbitrate stalemates). \"Accepting the task framing without questioning it\" is explicitly forbidden. |\n| **Evolution metrics** | `evolve --metrics` shows a per-persona evolution dashboard (0-100 score, levels: Novice → Expert). `evolve --ready` checks if enough data exists to propose patches. |\n| **Devi evolution check** | After every successful run, Devi prints an evolution readiness hint and asks if the team is ready to evolve. |\n| **Plain source, no obfuscation** | Removed `javascript-obfuscator` entirely. `dist/` is fully auditable plain JavaScript. `postinstall` only prints a message — no auto-install. |\n\n## What's new in v2.0\n\n| Feature | Description |\n|---------|-------------|\n| **Chunked execution by default** | Frontier planner → cheap chunk models (Ollama, free/cheap cloud) → synthesis |\n| **Model router** | Auto-discovers Ollama + uses curated free/cheap cloud model pool |\n| **Chunk telemetry** | Tracks per-model success rate so router improves over time |\n| **Legacy mode preserved** | `npx analyzthis_design run-unchunked` for the original single-pass orchestrator |\n| **Planner never cheap** | Planner always uses frontier/host; chunk models are cost-optimized |\n| **Multi-file reference retrieval** | Each persona retrieves from 3-5 CSV files (not 1) via a shared ranker — same LLM cost, 3-5x coverage |\n| **All 16 stacks detected** | `detectStack()` covers all 16 stack CSVs (flutter, swiftui, laravel, threejs, etc.) — was 8 |\n| **CSV schema + validation** | `npm run validate` checks all 30 CSV files against `schema.json` before publish |\n| **Best For Tags** | styles.csv + typography.csv have normalized tag columns for reliable keyword filtering |\n\n## What's new in v1.22\n\n| Feature | Description |\n|---------|-------------|\n| **Mood boards** | Tagged URLs + team deliberation. **UI image boards:** Zara scouts 3–5 real shipped screens; Arjun/Noor/Priya/Meera jury; she re-scouts if they skip (max 3 rounds) |\n| **User-contributed references** | User can add URLs/notes to a board and rerun the critique loop |\n| **Visual direction setting** | Arjun, Meera, Priya, Zara, Noor score references via the UX Honeycomb rigor matrix |\n| **Workspace artifacts** | `moodboard/{boardId}.json` is written into the project for the user to inspect |\n\n## What's new in v1.21\n\n| Feature | Description |\n|---------|-------------|\n| **Self-evolving team** | `evolve --extract` harvests lessons + outcomes; proposes prompt/CSV/router patches |\n| **Per-persona knowledge slices** | `sync` builds filtered context per persona (priority categories + fallback) |\n| **Query expansion + ranking** | Cheap LLM calls broaden retrieval and rank references per persona lens |\n| **Lessons store** | Past accepted fixes are retrieved for similar future tasks |\n| **Outcome tracking** | `outcome --confirm` / `--infer` labels whether a persona's output actually shipped |\n| **Full-prompt training export** | `export-training` now emits the exact `{ system, user }` prompts + structured output |\n| **Redundancy suppression** | Personas see what prior personas already covered and add only new insights |\n\n## What's new in v1.20\n\n| Feature | Description |\n|---------|-------------|\n| **`/devi` host LLM** | No API keys needed — orchestrator writes prompts, host IDE voices personas |\n| **`run --continue`** | Resume after Devi fills `responses/*.md` |\n| **Phase 5 synthesis** | Auto composite score, verdict, top 3, hierarchy gate in session |\n| **Raj ordering fix** | Zara always runs before Raj; Raj escalates after all groups |\n| **Rebuttal rounds** | Prompts require new evidence — no verbatim repeat on objection re-runs |\n| **`devi status` / `devi respond`** | CLI helpers for the prompt queue |\n\n---\n\n## Marketing site\n\nThe public lab site lives in `website/` and is deployed on Vercel as **analyzthis-lab** (site only — not the npm package). Home names the design team first (type `/zara`, get a verdict), shows three jobs in human words, then three paths: designers (`design.html`), Dev/PMs, and firm owners (GST packet lives later, not in the hero). The Vercel project root is `website/` with no build step — do not set Output Directory to `public`.\n\n- Live: [https://analyzthis-lab.vercel.app](https://analyzthis-lab.vercel.app)\n- Design team deep-dive: [https://analyzthis-lab.vercel.app/design](https://analyzthis-lab.vercel.app/design) (`website/design.html`)\n- Form test (does not write to Airtable): add `?form=mock` to the URL\n- Leads go to Airtable through `website/api/lead.js`. Each step is saved; unfinished fills are marked `partial`.\n- Booking uses Google Calendar: [https://calendar.app.google/KtKJ7hCAx1duA8m58](https://calendar.app.google/KtKJ7hCAx1duA8m58)\n- Form views are counted first-party (no cookies, no third-party pixel). They are only stored if you set the optional `AIRTABLE_EVENTS_TABLE` env var to a separate Airtable table; without it the count is discarded and the Leads table is never touched.\n- There is exactly one privacy disclosure, in the `.privacy-note` directly above the inquiry form. If you change what the site collects, update that sentence — do not add a second notice elsewhere on the page.\n- Header layout: the real `logo.svg` sits left, nav links centre, one orange CTA right. No webfont is loaded, so the wordmark must stay an SVG.\n- The hero is tuned so the primary CTA and trust ticks stay above the fold at 1440×800 — check that before changing hero padding or the `h1` clamp.\n\n---\n\n## License\n\nMIT — [Rishikesh Joshi](https://github.com/rishikeshjoshi)\n","readmeFilename":"README.md"}