imhcode 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (986) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +39 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +29 -0
  4. package/.github/copilot-instructions.md +43 -0
  5. package/.github/workflows/framework-validator.yml +53 -0
  6. package/.gitignore.template +15 -0
  7. package/AGENTS.md +69 -0
  8. package/CLAUDE.md +27 -0
  9. package/README.md +63 -0
  10. package/SETUP.md +81 -0
  11. package/USER_MANUAL.md +70 -0
  12. package/agents/android-executor/SYSTEM.md +32 -0
  13. package/agents/android-executor/agent.yml +53 -0
  14. package/agents/debugger/SYSTEM.md +32 -0
  15. package/agents/debugger/agent.yml +56 -0
  16. package/agents/designer/SYSTEM.md +32 -0
  17. package/agents/designer/agent.yml +59 -0
  18. package/agents/devops-executor/SYSTEM.md +32 -0
  19. package/agents/devops-executor/agent.yml +56 -0
  20. package/agents/flutter-executor/SYSTEM.md +32 -0
  21. package/agents/flutter-executor/agent.yml +54 -0
  22. package/agents/ios-executor/SYSTEM.md +32 -0
  23. package/agents/ios-executor/agent.yml +53 -0
  24. package/agents/java-executor/SYSTEM.md +32 -0
  25. package/agents/java-executor/agent.yml +57 -0
  26. package/agents/laravel-executor/SYSTEM.md +32 -0
  27. package/agents/laravel-executor/agent.yml +59 -0
  28. package/agents/nextjs-executor/SYSTEM.md +32 -0
  29. package/agents/nextjs-executor/agent.yml +60 -0
  30. package/agents/planner/SYSTEM.md +32 -0
  31. package/agents/planner/agent.yml +56 -0
  32. package/agents/python-executor/SYSTEM.md +32 -0
  33. package/agents/python-executor/agent.yml +58 -0
  34. package/agents/react-executor/SYSTEM.md +32 -0
  35. package/agents/react-executor/agent.yml +58 -0
  36. package/agents/react-native-executor/SYSTEM.md +32 -0
  37. package/agents/react-native-executor/agent.yml +53 -0
  38. package/agents/security-auditor/SYSTEM.md +32 -0
  39. package/agents/security-auditor/agent.yml +56 -0
  40. package/agents/seo-optimizer/SYSTEM.md +32 -0
  41. package/agents/seo-optimizer/agent.yml +54 -0
  42. package/agents/systems-executor/SYSTEM.md +32 -0
  43. package/agents/systems-executor/agent.yml +54 -0
  44. package/agents/tester/SYSTEM.md +32 -0
  45. package/agents/tester/agent.yml +58 -0
  46. package/agents/vue-executor/SYSTEM.md +32 -0
  47. package/agents/vue-executor/agent.yml +58 -0
  48. package/agents/web3-executor/SYSTEM.md +32 -0
  49. package/agents/web3-executor/agent.yml +55 -0
  50. package/bin/imhcode.js +1634 -0
  51. package/dist/orchestrator/builder.d.ts +23 -0
  52. package/dist/orchestrator/builder.d.ts.map +1 -0
  53. package/dist/orchestrator/builder.js +231 -0
  54. package/dist/orchestrator/builder.js.map +1 -0
  55. package/dist/orchestrator/executor.d.ts +43 -0
  56. package/dist/orchestrator/executor.d.ts.map +1 -0
  57. package/dist/orchestrator/executor.js +356 -0
  58. package/dist/orchestrator/executor.js.map +1 -0
  59. package/dist/orchestrator/index.d.ts +35 -0
  60. package/dist/orchestrator/index.d.ts.map +1 -0
  61. package/dist/orchestrator/index.js +490 -0
  62. package/dist/orchestrator/index.js.map +1 -0
  63. package/dist/orchestrator/loader.d.ts +33 -0
  64. package/dist/orchestrator/loader.d.ts.map +1 -0
  65. package/dist/orchestrator/loader.js +203 -0
  66. package/dist/orchestrator/loader.js.map +1 -0
  67. package/dist/orchestrator/registry.d.ts +63 -0
  68. package/dist/orchestrator/registry.d.ts.map +1 -0
  69. package/dist/orchestrator/registry.js +181 -0
  70. package/dist/orchestrator/registry.js.map +1 -0
  71. package/dist/orchestrator/schema.d.ts +132 -0
  72. package/dist/orchestrator/schema.d.ts.map +1 -0
  73. package/dist/orchestrator/schema.js +101 -0
  74. package/dist/orchestrator/schema.js.map +1 -0
  75. package/dist/orchestrator/session.d.ts +25 -0
  76. package/dist/orchestrator/session.d.ts.map +1 -0
  77. package/dist/orchestrator/session.js +80 -0
  78. package/dist/orchestrator/session.js.map +1 -0
  79. package/dist/orchestrator/types.d.ts +91 -0
  80. package/dist/orchestrator/types.d.ts.map +1 -0
  81. package/dist/orchestrator/types.js +7 -0
  82. package/dist/orchestrator/types.js.map +1 -0
  83. package/package.json +95 -0
  84. package/skills/AnimatePresence/SKILL.md +3 -0
  85. package/skills/accessibility/SKILL.md +146 -0
  86. package/skills/agent-architecture-audit/SKILL.md +256 -0
  87. package/skills/agent-eval/SKILL.md +145 -0
  88. package/skills/agent-introspection-debugging/SKILL.md +153 -0
  89. package/skills/agentic-engineering/SKILL.md +63 -0
  90. package/skills/ai-regression-testing/SKILL.md +385 -0
  91. package/skills/android-clean-architecture/SKILL.md +339 -0
  92. package/skills/animated-component-libraries/SKILL.md +8 -0
  93. package/skills/animejs/SKILL.md +8 -0
  94. package/skills/api-connector-builder/SKILL.md +120 -0
  95. package/skills/api-design/SKILL.md +523 -0
  96. package/skills/apple/SKILL.md +158 -0
  97. package/skills/apple/metadata.json +16 -0
  98. package/skills/architecture-decision-records/SKILL.md +179 -0
  99. package/skills/article-writing/SKILL.md +79 -0
  100. package/skills/automation-audit-ops/SKILL.md +142 -0
  101. package/skills/awwwards/SKILL.md +162 -0
  102. package/skills/awwwards/metadata.json +16 -0
  103. package/skills/babylonjs-engine/SKILL.md +8 -0
  104. package/skills/backend-patterns/SKILL.md +561 -0
  105. package/skills/baqir-docs/SKILL.md +3 -0
  106. package/skills/barba-js/SKILL.md +8 -0
  107. package/skills/benchmark/SKILL.md +93 -0
  108. package/skills/best-practice/SKILL.md +7 -0
  109. package/skills/best-practice/assets/claude-memory/claude-memory-monorepo.jpg +0 -0
  110. package/skills/best-practice/assets/claude-power-ups/dial-the-model-1.png +0 -0
  111. package/skills/best-practice/assets/claude-power-ups/dial-the-model-2.png +0 -0
  112. package/skills/best-practice/assets/claude-power-ups/dial-the-model-3.png +0 -0
  113. package/skills/best-practice/assets/claude-power-ups/powerup-menu.png +0 -0
  114. package/skills/best-practice/claude-cli-startup-flags.md +231 -0
  115. package/skills/best-practice/claude-commands.md +132 -0
  116. package/skills/best-practice/claude-mcp.md +132 -0
  117. package/skills/best-practice/claude-memory.md +121 -0
  118. package/skills/best-practice/claude-power-ups.md +66 -0
  119. package/skills/best-practice/claude-settings.md +1170 -0
  120. package/skills/best-practice/claude-skills.md +58 -0
  121. package/skills/best-practice/claude-subagents.md +56 -0
  122. package/skills/blender-motion-state-inspection/SKILL.md +164 -0
  123. package/skills/bootstrap-patterns/SKILL.md +316 -0
  124. package/skills/brand-guidelines/LICENSE.txt +202 -0
  125. package/skills/brand-guidelines/SKILL.md +73 -0
  126. package/skills/brand-voice/SKILL.md +97 -0
  127. package/skills/brand-voice/references/voice-profile-schema.md +55 -0
  128. package/skills/browser-qa/SKILL.md +87 -0
  129. package/skills/canary-watch/SKILL.md +107 -0
  130. package/skills/canvas-design/LICENSE.txt +202 -0
  131. package/skills/canvas-design/SKILL.md +8 -0
  132. package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  133. package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  134. package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  135. package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  136. package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  137. package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  138. package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  139. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  140. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  141. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  142. package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  143. package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  144. package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  145. package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  146. package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  147. package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  148. package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  149. package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  150. package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  151. package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  152. package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  153. package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  154. package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  155. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  156. package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  157. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  158. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  159. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  160. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  161. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  162. package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  163. package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  164. package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  165. package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  166. package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  167. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  168. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  169. package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  170. package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  171. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  172. package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  173. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  174. package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  175. package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  176. package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  177. package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  178. package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  179. package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  180. package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  181. package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  182. package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  183. package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  184. package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  185. package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  186. package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  187. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  188. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  189. package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  190. package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  191. package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  192. package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  193. package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  194. package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  195. package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  196. package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  197. package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  198. package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  199. package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  200. package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  201. package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  202. package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  203. package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  204. package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  205. package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  206. package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  207. package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  208. package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  209. package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  210. package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  211. package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  212. package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  213. package/skills/caveman/SKILL.md +74 -0
  214. package/skills/changelog-generator/SKILL.md +104 -0
  215. package/skills/cisco-ios-patterns/SKILL.md +163 -0
  216. package/skills/ckm:design-system/SKILL.md +3 -0
  217. package/skills/ckm:slides/SKILL.md +3 -0
  218. package/skills/claude-red/SKILL.md +35 -0
  219. package/skills/click-path-audit/SKILL.md +244 -0
  220. package/skills/clickhouse-io/SKILL.md +439 -0
  221. package/skills/codebase-onboarding/SKILL.md +233 -0
  222. package/skills/coding-standards/SKILL.md +549 -0
  223. package/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  224. package/skills/computational-architecture/SKILL.md +31 -0
  225. package/skills/content-engine/SKILL.md +131 -0
  226. package/skills/content-research-writer/SKILL.md +538 -0
  227. package/skills/continuous-agent-loop/SKILL.md +45 -0
  228. package/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  229. package/skills/cpp-coding-standards/SKILL.md +723 -0
  230. package/skills/crosspost/SKILL.md +111 -0
  231. package/skills/css-container-queries/SKILL.md +132 -0
  232. package/skills/customer-billing-ops/SKILL.md +140 -0
  233. package/skills/customs-trade-compliance/SKILL.md +263 -0
  234. package/skills/dart-flutter-patterns/SKILL.md +563 -0
  235. package/skills/dashboard-builder/SKILL.md +108 -0
  236. package/skills/data-scraper-agent/SKILL.md +764 -0
  237. package/skills/database-migrations/SKILL.md +429 -0
  238. package/skills/deep-research/SKILL.md +159 -0
  239. package/skills/defi-amm-security/SKILL.md +166 -0
  240. package/skills/deployment-patterns/SKILL.md +427 -0
  241. package/skills/design-auditor/README.md +504 -0
  242. package/skills/design-auditor/README_KR.md +327 -0
  243. package/skills/design-auditor/SKILL.md +8 -0
  244. package/skills/design-auditor/references/animation.md +300 -0
  245. package/skills/design-auditor/references/color.md +241 -0
  246. package/skills/design-auditor/references/corner-radius.md +331 -0
  247. package/skills/design-auditor/references/elevation.md +249 -0
  248. package/skills/design-auditor/references/ethics.md +877 -0
  249. package/skills/design-auditor/references/figma-mcp.md +377 -0
  250. package/skills/design-auditor/references/heuristics.md +730 -0
  251. package/skills/design-auditor/references/i18n.md +254 -0
  252. package/skills/design-auditor/references/iconography.md +201 -0
  253. package/skills/design-auditor/references/microcopy.md +227 -0
  254. package/skills/design-auditor/references/navigation.md +311 -0
  255. package/skills/design-auditor/references/spacing.md +313 -0
  256. package/skills/design-auditor/references/states.md +254 -0
  257. package/skills/design-auditor/references/tokens.md +286 -0
  258. package/skills/design-auditor/references/typography.md +273 -0
  259. package/skills/design-system/SKILL.md +82 -0
  260. package/skills/design-tokens-system/SKILL.md +156 -0
  261. package/skills/development-workflows/SKILL.md +7 -0
  262. package/skills/development-workflows/cross-model-workflow/assets/cross-model-workflow.png +0 -0
  263. package/skills/development-workflows/cross-model-workflow/cross-model-workflow.md +55 -0
  264. package/skills/development-workflows/rpi/.claude/agents/code-reviewer.md +21 -0
  265. package/skills/development-workflows/rpi/.claude/agents/constitutional-validator.md +288 -0
  266. package/skills/development-workflows/rpi/.claude/agents/documentation-analyst-writer.md +64 -0
  267. package/skills/development-workflows/rpi/.claude/agents/product-manager.md +15 -0
  268. package/skills/development-workflows/rpi/.claude/agents/requirement-parser.md +238 -0
  269. package/skills/development-workflows/rpi/.claude/agents/senior-software-engineer.md +15 -0
  270. package/skills/development-workflows/rpi/.claude/agents/technical-cto-advisor.md +201 -0
  271. package/skills/development-workflows/rpi/.claude/agents/ux-designer.md +14 -0
  272. package/skills/development-workflows/rpi/.claude/commands/rpi/implement.md +634 -0
  273. package/skills/development-workflows/rpi/.claude/commands/rpi/plan.md +416 -0
  274. package/skills/development-workflows/rpi/.claude/commands/rpi/research.md +381 -0
  275. package/skills/development-workflows/rpi/rpi-workflow.md +101 -0
  276. package/skills/development-workflows/rpi/rpi-workflow.svg +178 -0
  277. package/skills/django-celery/SKILL.md +457 -0
  278. package/skills/django-patterns/SKILL.md +734 -0
  279. package/skills/django-security/SKILL.md +593 -0
  280. package/skills/django-tdd/SKILL.md +729 -0
  281. package/skills/dmux-workflows/SKILL.md +7 -0
  282. package/skills/docker-patterns/SKILL.md +364 -0
  283. package/skills/documentation-lookup/SKILL.md +90 -0
  284. package/skills/domain-name-brainstormer/SKILL.md +212 -0
  285. package/skills/dribbble/SKILL.md +160 -0
  286. package/skills/dribbble/metadata.json +16 -0
  287. package/skills/e2e-testing/SKILL.md +326 -0
  288. package/skills/empirical-research/SKILL.md +22 -0
  289. package/skills/error-handling/SKILL.md +376 -0
  290. package/skills/eval-harness/SKILL.md +270 -0
  291. package/skills/evm-token-decimals/SKILL.md +130 -0
  292. package/skills/fastapi-patterns/SKILL.md +327 -0
  293. package/skills/finance-billing-ops/SKILL.md +127 -0
  294. package/skills/flox-environments/SKILL.md +496 -0
  295. package/skills/flutter-dart-code-review/SKILL.md +435 -0
  296. package/skills/foundation-models-on-device/SKILL.md +243 -0
  297. package/skills/framer/SKILL.md +159 -0
  298. package/skills/framer/metadata.json +16 -0
  299. package/skills/frontend-design/LICENSE.txt +21 -0
  300. package/skills/frontend-design/README.md +71 -0
  301. package/skills/frontend-design/SKILL.md +115 -0
  302. package/skills/frontend-design-direction/SKILL.md +92 -0
  303. package/skills/frontend-patterns/SKILL.md +7 -0
  304. package/skills/frontend-slides/SKILL.md +184 -0
  305. package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  306. package/skills/frontend-slides/animation-patterns.md +122 -0
  307. package/skills/frontend-slides/html-template.md +419 -0
  308. package/skills/frontend-slides/scripts/export-pdf.sh +418 -0
  309. package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  310. package/skills/frontend-slides/viewport-base.css +153 -0
  311. package/skills/gateguard/SKILL.md +125 -0
  312. package/skills/git-workflow/SKILL.md +715 -0
  313. package/skills/github-ops/SKILL.md +144 -0
  314. package/skills/golang-patterns/SKILL.md +674 -0
  315. package/skills/golang-testing/SKILL.md +720 -0
  316. package/skills/graphify/__init__.py +28 -0
  317. package/skills/graphify/__main__.py +2899 -0
  318. package/skills/graphify/analyze.py +608 -0
  319. package/skills/graphify/benchmark.py +152 -0
  320. package/skills/graphify/build.py +366 -0
  321. package/skills/graphify/cache.py +244 -0
  322. package/skills/graphify/callflow_html.py +2014 -0
  323. package/skills/graphify/cluster.py +267 -0
  324. package/skills/graphify/dedup.py +414 -0
  325. package/skills/graphify/detect.py +1018 -0
  326. package/skills/graphify/export.py +1264 -0
  327. package/skills/graphify/extract.py +6646 -0
  328. package/skills/graphify/global_graph.py +155 -0
  329. package/skills/graphify/google_workspace.py +223 -0
  330. package/skills/graphify/hooks.py +304 -0
  331. package/skills/graphify/ingest.py +331 -0
  332. package/skills/graphify/llm.py +1111 -0
  333. package/skills/graphify/manifest.py +4 -0
  334. package/skills/graphify/prs.py +746 -0
  335. package/skills/graphify/report.py +203 -0
  336. package/skills/graphify/security.py +242 -0
  337. package/skills/graphify/serve.py +899 -0
  338. package/skills/graphify/skill-aider.md +1229 -0
  339. package/skills/graphify/skill-claw.md +1229 -0
  340. package/skills/graphify/skill-codex.md +1290 -0
  341. package/skills/graphify/skill-copilot.md +1317 -0
  342. package/skills/graphify/skill-droid.md +1285 -0
  343. package/skills/graphify/skill-kiro.md +1228 -0
  344. package/skills/graphify/skill-opencode.md +1340 -0
  345. package/skills/graphify/skill-pi.md +1228 -0
  346. package/skills/graphify/skill-trae.md +1254 -0
  347. package/skills/graphify/skill-vscode.md +258 -0
  348. package/skills/graphify/skill-windows.md +1434 -0
  349. package/skills/graphify/skill.md +1086 -0
  350. package/skills/graphify/transcribe.py +184 -0
  351. package/skills/graphify/tree_html.py +580 -0
  352. package/skills/graphify/validate.py +72 -0
  353. package/skills/graphify/watch.py +728 -0
  354. package/skills/graphify/wiki.py +259 -0
  355. package/skills/growth-marketing/SKILL.md +26 -0
  356. package/skills/gsap-scrolltrigger/SKILL.md +8 -0
  357. package/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  358. package/skills/healthcare-emr-patterns/SKILL.md +159 -0
  359. package/skills/healthcare-phi-compliance/SKILL.md +145 -0
  360. package/skills/hexagonal-architecture/SKILL.md +276 -0
  361. package/skills/hipaa-compliance/SKILL.md +78 -0
  362. package/skills/homelab-network-setup/SKILL.md +129 -0
  363. package/skills/imhcode/SKILL.md +183 -0
  364. package/skills/imhcode-brainstorm/SKILL.md +37 -0
  365. package/skills/imhcode-codebase-knowledge/SKILL.md +37 -0
  366. package/skills/imhcode-codebase-knowledge/assets/templates/ARCHITECTURE.md +49 -0
  367. package/skills/imhcode-codebase-knowledge/assets/templates/CONCERNS.md +56 -0
  368. package/skills/imhcode-codebase-knowledge/assets/templates/CONVENTIONS.md +52 -0
  369. package/skills/imhcode-codebase-knowledge/assets/templates/INTEGRATIONS.md +48 -0
  370. package/skills/imhcode-codebase-knowledge/assets/templates/STACK.md +56 -0
  371. package/skills/imhcode-codebase-knowledge/assets/templates/STRUCTURE.md +44 -0
  372. package/skills/imhcode-codebase-knowledge/assets/templates/TESTING.md +57 -0
  373. package/skills/imhcode-codebase-knowledge/references/inquiry-checkpoints.md +70 -0
  374. package/skills/imhcode-codebase-knowledge/references/stack-detection.md +131 -0
  375. package/skills/imhcode-codebase-knowledge/scripts/scan.py +712 -0
  376. package/skills/imhcode-dispatch/SKILL.md +31 -0
  377. package/skills/imhcode-saas-architect/SKILL.md +55 -0
  378. package/skills/imhcode-security/SKILL.md +42 -0
  379. package/skills/imhcode-sprint-planner/SKILL.md +42 -0
  380. package/skills/inventory-demand-planning/SKILL.md +247 -0
  381. package/skills/investor-materials/SKILL.md +96 -0
  382. package/skills/investor-outreach/SKILL.md +91 -0
  383. package/skills/ios-icon-gen/SKILL.md +157 -0
  384. package/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
  385. package/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  386. package/skills/java-coding-standards/SKILL.md +383 -0
  387. package/skills/jpa-patterns/SKILL.md +151 -0
  388. package/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  389. package/skills/kotlin-patterns/SKILL.md +711 -0
  390. package/skills/laravel-patterns/SKILL.md +415 -0
  391. package/skills/laravel-plugin-discovery/SKILL.md +229 -0
  392. package/skills/laravel-security/SKILL.md +285 -0
  393. package/skills/laravel-tdd/SKILL.md +283 -0
  394. package/skills/laravel-verification/SKILL.md +179 -0
  395. package/skills/lightweight-3d-effects/SKILL.md +8 -0
  396. package/skills/linear/SKILL.md +156 -0
  397. package/skills/linear/metadata.json +16 -0
  398. package/skills/liquid-glass-design/SKILL.md +279 -0
  399. package/skills/llm-trading-agent-security/SKILL.md +146 -0
  400. package/skills/locomotive-scroll/SKILL.md +8 -0
  401. package/skills/logistics-exception-management/SKILL.md +222 -0
  402. package/skills/lottie-animations/SKILL.md +8 -0
  403. package/skills/make-interfaces-feel-better/SKILL.md +151 -0
  404. package/skills/mcp-server-patterns/SKILL.md +69 -0
  405. package/skills/meeting-insights-analyzer/SKILL.md +327 -0
  406. package/skills/micro-interactions/SKILL.md +178 -0
  407. package/skills/mle-workflow/SKILL.md +346 -0
  408. package/skills/mobbin/SKILL.md +157 -0
  409. package/skills/mobbin/metadata.json +16 -0
  410. package/skills/mobile-app-design/README.md +302 -0
  411. package/skills/mobile-app-design/SKILL.md +330 -0
  412. package/skills/mobile-app-design/examples/design-system-config.ts +685 -0
  413. package/skills/mobile-app-design/examples/form-validation-example.tsx +501 -0
  414. package/skills/mobile-app-design/examples/optimized-list-example.tsx +384 -0
  415. package/skills/mobile-app-design/examples/profile-screen-example.tsx +450 -0
  416. package/skills/mobile-app-design/references/accessibility-checklist.md +525 -0
  417. package/skills/mobile-app-design/references/android-guidelines.md +582 -0
  418. package/skills/mobile-app-design/references/common-mistakes.md +834 -0
  419. package/skills/mobile-app-design/references/ios-guidelines.md +421 -0
  420. package/skills/mobile-app-design/references/performance-patterns.md +705 -0
  421. package/skills/mobile-app-design/references/platform-differences.md +353 -0
  422. package/skills/mobile-app-design/references/ui-libraries.md +729 -0
  423. package/skills/mobile-app-design/scripts/accessibility-audit.sh +281 -0
  424. package/skills/mobile-app-design/scripts/check-contrast.py +188 -0
  425. package/skills/mobile-app-design/scripts/validate-touch-targets.sh +228 -0
  426. package/skills/mobile-app-ui-design/INDEX.md +131 -0
  427. package/skills/mobile-app-ui-design/README.md +135 -0
  428. package/skills/mobile-app-ui-design/SKILL.md +7 -0
  429. package/skills/mobile-app-ui-design/references/industry-conventions.md +151 -0
  430. package/skills/modern-web-design/SKILL.md +8 -0
  431. package/skills/motion-advanced/SKILL.md +596 -0
  432. package/skills/motion-design/SKILL.md +21 -0
  433. package/skills/motion-foundations/SKILL.md +299 -0
  434. package/skills/motion-framer/SKILL.md +8 -0
  435. package/skills/motion-patterns/SKILL.md +435 -0
  436. package/skills/motion-ui/SKILL.md +575 -0
  437. package/skills/mysql-patterns/SKILL.md +412 -0
  438. package/skills/nestjs-patterns/SKILL.md +230 -0
  439. package/skills/network-config-validation/SKILL.md +210 -0
  440. package/skills/nextjs-turbopack/SKILL.md +44 -0
  441. package/skills/nodejs-keccak256/SKILL.md +102 -0
  442. package/skills/nothing-design/SKILL.md +177 -0
  443. package/skills/nothing-design/references/components.md +153 -0
  444. package/skills/nothing-design/references/platform-mapping.md +64 -0
  445. package/skills/nothing-design/references/tokens.md +142 -0
  446. package/skills/nuxt4-patterns/SKILL.md +100 -0
  447. package/skills/openclaw-persona-forge/SKILL.md +288 -0
  448. package/skills/openclaw-persona-forge/gacha.py +224 -0
  449. package/skills/openclaw-persona-forge/gacha.sh +5 -0
  450. package/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  451. package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  452. package/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  453. package/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  454. package/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  455. package/skills/openclaw-persona-forge/references/output-template.md +166 -0
  456. package/skills/orchestration-workflow/SKILL.md +199 -0
  457. package/skills/orchestration-workflow/orchestration-workflow.gif +0 -0
  458. package/skills/orchestration-workflow/orchestration-workflow.md +199 -0
  459. package/skills/orchestration-workflow/orchestration-workflow.svg +78 -0
  460. package/skills/orchestration-workflow/output.md +13 -0
  461. package/skills/orchestration-workflow/weather.svg +6 -0
  462. package/skills/pixijs-2d/SKILL.md +8 -0
  463. package/skills/plan-orchestrate/SKILL.md +262 -0
  464. package/skills/plankton-code-quality/SKILL.md +236 -0
  465. package/skills/postgres-patterns/SKILL.md +147 -0
  466. package/skills/ppt-mckinsey/SKILL.md +27 -0
  467. package/skills/prisma-patterns/SKILL.md +371 -0
  468. package/skills/product-capability/SKILL.md +141 -0
  469. package/skills/product-lens/SKILL.md +92 -0
  470. package/skills/production-audit/SKILL.md +206 -0
  471. package/skills/project-flow-ops/SKILL.md +111 -0
  472. package/skills/prompt-optimizer/SKILL.md +398 -0
  473. package/skills/python-patterns/SKILL.md +750 -0
  474. package/skills/python-testing/SKILL.md +816 -0
  475. package/skills/pytorch-patterns/SKILL.md +396 -0
  476. package/skills/quarkus-patterns/SKILL.md +722 -0
  477. package/skills/radix-ui-primitives/SKILL.md +86 -0
  478. package/skills/react-native-best-practices/SKILL.md +83 -0
  479. package/skills/react-native-brownfield-migration/SKILL.md +115 -0
  480. package/skills/react-spring-physics/SKILL.md +8 -0
  481. package/skills/react-three-fiber/SKILL.md +8 -0
  482. package/skills/recsys-pipeline-architect/SKILL.md +114 -0
  483. package/skills/redis-patterns/SKILL.md +403 -0
  484. package/skills/remotion-video-creation/SKILL.md +43 -0
  485. package/skills/remotion-video-creation/rules/3d.md +86 -0
  486. package/skills/remotion-video-creation/rules/animations.md +29 -0
  487. package/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  488. package/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  489. package/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  490. package/skills/remotion-video-creation/rules/assets.md +78 -0
  491. package/skills/remotion-video-creation/rules/audio.md +172 -0
  492. package/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  493. package/skills/remotion-video-creation/rules/can-decode.md +75 -0
  494. package/skills/remotion-video-creation/rules/charts.md +58 -0
  495. package/skills/remotion-video-creation/rules/compositions.md +146 -0
  496. package/skills/remotion-video-creation/rules/display-captions.md +126 -0
  497. package/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  498. package/skills/remotion-video-creation/rules/fonts.md +152 -0
  499. package/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  500. package/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  501. package/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  502. package/skills/remotion-video-creation/rules/gifs.md +138 -0
  503. package/skills/remotion-video-creation/rules/images.md +130 -0
  504. package/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  505. package/skills/remotion-video-creation/rules/lottie.md +67 -0
  506. package/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  507. package/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  508. package/skills/remotion-video-creation/rules/sequencing.md +106 -0
  509. package/skills/remotion-video-creation/rules/tailwind.md +11 -0
  510. package/skills/remotion-video-creation/rules/text-animations.md +20 -0
  511. package/skills/remotion-video-creation/rules/timing.md +179 -0
  512. package/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  513. package/skills/remotion-video-creation/rules/transitions.md +122 -0
  514. package/skills/remotion-video-creation/rules/trimming.md +52 -0
  515. package/skills/remotion-video-creation/rules/videos.md +171 -0
  516. package/skills/repo-scan/SKILL.md +78 -0
  517. package/skills/responsive-email-templates/SKILL.md +110 -0
  518. package/skills/rive-interactive/SKILL.md +8 -0
  519. package/skills/rust-patterns/SKILL.md +499 -0
  520. package/skills/rust-testing/SKILL.md +500 -0
  521. package/skills/scroll-reveal-libraries/SKILL.md +8 -0
  522. package/skills/security-bounty-hunter/SKILL.md +99 -0
  523. package/skills/security-review/SKILL.md +503 -0
  524. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  525. package/skills/security-scan/SKILL.md +165 -0
  526. package/skills/seo/SKILL.md +154 -0
  527. package/skills/seo-growth/SKILL.md +34 -0
  528. package/skills/shadcn-ui-patterns/SKILL.md +123 -0
  529. package/skills/spline-interactive/SKILL.md +8 -0
  530. package/skills/springboot-patterns/SKILL.md +314 -0
  531. package/skills/springboot-security/SKILL.md +272 -0
  532. package/skills/springboot-tdd/SKILL.md +158 -0
  533. package/skills/strategic-compact/SKILL.md +131 -0
  534. package/skills/stripe/SKILL.md +168 -0
  535. package/skills/stripe/metadata.json +16 -0
  536. package/skills/swift-actor-persistence/SKILL.md +143 -0
  537. package/skills/swift-concurrency-6-2/SKILL.md +216 -0
  538. package/skills/swiftui-patterns/SKILL.md +259 -0
  539. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  540. package/skills/systematic-debugging/SKILL.md +296 -0
  541. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  542. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  543. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  544. package/skills/systematic-debugging/find-polluter.sh +63 -0
  545. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  546. package/skills/systematic-debugging/test-academic.md +14 -0
  547. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  548. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  549. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  550. package/skills/tailwindcss-v4/SKILL.md +107 -0
  551. package/skills/tdd-workflow/SKILL.md +463 -0
  552. package/skills/team-builder/SKILL.md +168 -0
  553. package/skills/test-driven-development/SKILL.md +371 -0
  554. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  555. package/skills/theme-factory/LICENSE.txt +202 -0
  556. package/skills/theme-factory/SKILL.md +59 -0
  557. package/skills/theme-factory/theme-showcase.pdf +0 -0
  558. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  559. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  560. package/skills/theme-factory/themes/desert-rose.md +19 -0
  561. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  562. package/skills/theme-factory/themes/golden-hour.md +19 -0
  563. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  564. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  565. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  566. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  567. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  568. package/skills/threejs-webgl/SKILL.md +8 -0
  569. package/skills/trailofbits-auditing/SKILL.md +30 -0
  570. package/skills/twitter-algorithm-optimizer/SKILL.md +327 -0
  571. package/skills/typeui-cli/SKILL.md +90 -0
  572. package/skills/typeui-main/DESIGN.md +114 -0
  573. package/skills/typeui-main/LICENSE.md +9 -0
  574. package/skills/typeui-main/README.md +84 -0
  575. package/skills/typeui-main/REGISTRY.md +60 -0
  576. package/skills/typeui-main/SKILL.md +114 -0
  577. package/skills/typeui-main/package-lock.json +2123 -0
  578. package/skills/typeui-main/package.json +56 -0
  579. package/skills/typeui-main/skills/typeui-cli/SKILL.md +90 -0
  580. package/skills/typeui-main/src/cli.ts +282 -0
  581. package/skills/typeui-main/src/config.ts +28 -0
  582. package/skills/typeui-main/src/domain/designSystemSchema.ts +77 -0
  583. package/skills/typeui-main/src/generation/existingDesignSystem.ts +228 -0
  584. package/skills/typeui-main/src/generation/randomDesignSystem.ts +348 -0
  585. package/skills/typeui-main/src/generation/runDesignGeneration.ts +31 -0
  586. package/skills/typeui-main/src/generation/runGeneration.ts +36 -0
  587. package/skills/typeui-main/src/generation/runPull.ts +62 -0
  588. package/skills/typeui-main/src/io/updateSkillFile.ts +118 -0
  589. package/skills/typeui-main/src/prompts/designSystem.ts +755 -0
  590. package/skills/typeui-main/src/prompts/registry.ts +72 -0
  591. package/skills/typeui-main/src/registry/registryClient.ts +246 -0
  592. package/skills/typeui-main/src/renderers/claudeRenderer.ts +10 -0
  593. package/skills/typeui-main/src/renderers/codexRenderer.ts +10 -0
  594. package/skills/typeui-main/src/renderers/cursorRenderer.ts +10 -0
  595. package/skills/typeui-main/src/renderers/index.ts +14 -0
  596. package/skills/typeui-main/src/renderers/openCodeRenderer.ts +10 -0
  597. package/skills/typeui-main/src/renderers/shared.ts +252 -0
  598. package/skills/typeui-main/src/skillMetadata.ts +19 -0
  599. package/skills/typeui-main/src/types.ts +204 -0
  600. package/skills/typeui-main/src/ui/banner.ts +20 -0
  601. package/skills/typeui-main/test/existingDesignSystem.test.ts +67 -0
  602. package/skills/typeui-main/test/orchestrator.test.ts +113 -0
  603. package/skills/typeui-main/test/randomDesignSystem.test.ts +20 -0
  604. package/skills/typeui-main/test/registryClient.test.ts +408 -0
  605. package/skills/typeui-main/test/renderers.test.ts +41 -0
  606. package/skills/typeui-main/test/runDesignGeneration.test.ts +52 -0
  607. package/skills/typeui-main/test/runPull.test.ts +92 -0
  608. package/skills/typeui-main/test/skillMetadata.test.ts +11 -0
  609. package/skills/typeui-main/test/updateSkillFile.test.ts +160 -0
  610. package/skills/typeui-main/tsconfig.json +16 -0
  611. package/skills/ui-demo/SKILL.md +465 -0
  612. package/skills/ui-to-vue/SKILL.md +134 -0
  613. package/skills/ui-ux-pro-max/.claude/skills/banner-design/SKILL.md +192 -0
  614. package/skills/ui-ux-pro-max/.claude/skills/banner-design/references/banner-sizes-and-styles.md +118 -0
  615. package/skills/ui-ux-pro-max/.claude/skills/brand/SKILL.md +97 -0
  616. package/skills/ui-ux-pro-max/.claude/skills/brand/references/approval-checklist.md +169 -0
  617. package/skills/ui-ux-pro-max/.claude/skills/brand/references/asset-organization.md +157 -0
  618. package/skills/ui-ux-pro-max/.claude/skills/brand/references/brand-guideline-template.md +140 -0
  619. package/skills/ui-ux-pro-max/.claude/skills/brand/references/color-palette-management.md +186 -0
  620. package/skills/ui-ux-pro-max/.claude/skills/brand/references/consistency-checklist.md +94 -0
  621. package/skills/ui-ux-pro-max/.claude/skills/brand/references/logo-usage-rules.md +185 -0
  622. package/skills/ui-ux-pro-max/.claude/skills/brand/references/messaging-framework.md +85 -0
  623. package/skills/ui-ux-pro-max/.claude/skills/brand/references/typography-specifications.md +214 -0
  624. package/skills/ui-ux-pro-max/.claude/skills/brand/references/update.md +118 -0
  625. package/skills/ui-ux-pro-max/.claude/skills/brand/references/visual-identity.md +96 -0
  626. package/skills/ui-ux-pro-max/.claude/skills/brand/references/voice-framework.md +88 -0
  627. package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/extract-colors.cjs +341 -0
  628. package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/inject-brand-context.cjs +349 -0
  629. package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/sync-brand-to-tokens.cjs +266 -0
  630. package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/validate-asset.cjs +387 -0
  631. package/skills/ui-ux-pro-max/.claude/skills/brand/templates/brand-guidelines-starter.md +275 -0
  632. package/skills/ui-ux-pro-max/.claude/skills/design/SKILL.md +302 -0
  633. package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/deliverables.csv +51 -0
  634. package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/industries.csv +21 -0
  635. package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/mockup-contexts.csv +21 -0
  636. package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/styles.csv +21 -0
  637. package/skills/ui-ux-pro-max/.claude/skills/design/data/icon/styles.csv +16 -0
  638. package/skills/ui-ux-pro-max/.claude/skills/design/data/logo/colors.csv +56 -0
  639. package/skills/ui-ux-pro-max/.claude/skills/design/data/logo/industries.csv +56 -0
  640. package/skills/ui-ux-pro-max/.claude/skills/design/data/logo/styles.csv +56 -0
  641. package/skills/ui-ux-pro-max/.claude/skills/design/references/banner-sizes-and-styles.md +118 -0
  642. package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-deliverable-guide.md +95 -0
  643. package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-design.md +121 -0
  644. package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-prompt-engineering.md +84 -0
  645. package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-style-guide.md +68 -0
  646. package/skills/ui-ux-pro-max/.claude/skills/design/references/design-routing.md +207 -0
  647. package/skills/ui-ux-pro-max/.claude/skills/design/references/icon-design.md +122 -0
  648. package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-color-psychology.md +101 -0
  649. package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-design.md +92 -0
  650. package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-prompt-engineering.md +158 -0
  651. package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-style-guide.md +109 -0
  652. package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-copywriting-formulas.md +84 -0
  653. package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-create.md +4 -0
  654. package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-html-template.md +295 -0
  655. package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-layout-patterns.md +137 -0
  656. package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-strategies.md +94 -0
  657. package/skills/ui-ux-pro-max/.claude/skills/design/references/slides.md +42 -0
  658. package/skills/ui-ux-pro-max/.claude/skills/design/references/social-photos-design.md +329 -0
  659. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/core.py +215 -0
  660. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/generate.py +484 -0
  661. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/render-html.py +424 -0
  662. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/search.py +127 -0
  663. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/icon/generate.py +487 -0
  664. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/logo/core.py +175 -0
  665. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/logo/generate.py +362 -0
  666. package/skills/ui-ux-pro-max/.claude/skills/design/scripts/logo/search.py +114 -0
  667. package/skills/ui-ux-pro-max/.claude/skills/design-system/SKILL.md +244 -0
  668. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-backgrounds.csv +11 -0
  669. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-charts.csv +26 -0
  670. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-color-logic.csv +14 -0
  671. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-copy.csv +26 -0
  672. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-layout-logic.csv +16 -0
  673. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-layouts.csv +26 -0
  674. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-strategies.csv +16 -0
  675. package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-typography.csv +15 -0
  676. package/skills/ui-ux-pro-max/.claude/skills/design-system/references/component-specs.md +236 -0
  677. package/skills/ui-ux-pro-max/.claude/skills/design-system/references/component-tokens.md +214 -0
  678. package/skills/ui-ux-pro-max/.claude/skills/design-system/references/primitive-tokens.md +203 -0
  679. package/skills/ui-ux-pro-max/.claude/skills/design-system/references/semantic-tokens.md +215 -0
  680. package/skills/ui-ux-pro-max/.claude/skills/design-system/references/states-and-variants.md +241 -0
  681. package/skills/ui-ux-pro-max/.claude/skills/design-system/references/tailwind-integration.md +251 -0
  682. package/skills/ui-ux-pro-max/.claude/skills/design-system/references/token-architecture.md +224 -0
  683. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/embed-tokens.cjs +99 -0
  684. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/fetch-background.py +317 -0
  685. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/generate-slide.py +753 -0
  686. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/generate-tokens.cjs +205 -0
  687. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/html-token-validator.py +327 -0
  688. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/search-slides.py +218 -0
  689. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/slide-token-validator.py +35 -0
  690. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/slide_search_core.py +453 -0
  691. package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/validate-tokens.cjs +251 -0
  692. package/skills/ui-ux-pro-max/.claude/skills/design-system/templates/design-tokens-starter.json +143 -0
  693. package/skills/ui-ux-pro-max/.claude/skills/slides/SKILL.md +42 -0
  694. package/skills/ui-ux-pro-max/.claude/skills/slides/references/copywriting-formulas.md +84 -0
  695. package/skills/ui-ux-pro-max/.claude/skills/slides/references/create.md +4 -0
  696. package/skills/ui-ux-pro-max/.claude/skills/slides/references/html-template.md +295 -0
  697. package/skills/ui-ux-pro-max/.claude/skills/slides/references/layout-patterns.md +137 -0
  698. package/skills/ui-ux-pro-max/.claude/skills/slides/references/slide-strategies.md +94 -0
  699. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/LICENSE.txt +202 -0
  700. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/SKILL.md +324 -0
  701. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  702. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  703. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  704. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  705. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  706. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  707. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  708. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  709. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  710. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  711. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  712. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  713. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  714. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  715. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  716. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  717. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  718. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  719. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  720. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  721. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  722. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  723. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  724. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  725. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  726. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  727. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  728. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  729. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  730. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  731. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  732. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  733. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  734. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  735. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  736. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  737. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  738. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  739. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  740. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  741. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  742. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  743. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  744. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  745. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  746. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  747. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  748. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  749. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  750. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  751. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  752. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  753. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  754. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  755. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  756. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  757. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  758. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  759. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  760. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  761. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  762. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  763. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  764. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  765. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  766. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  767. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  768. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  769. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  770. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  771. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  772. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  773. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  774. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  775. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  776. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  777. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  778. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  779. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  780. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  781. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  782. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/canvas-design-system.md +320 -0
  783. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/shadcn-accessibility.md +471 -0
  784. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/shadcn-components.md +424 -0
  785. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/shadcn-theming.md +373 -0
  786. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/tailwind-customization.md +483 -0
  787. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/tailwind-responsive.md +382 -0
  788. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/tailwind-utilities.md +455 -0
  789. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/.coverage +0 -0
  790. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/requirements.txt +17 -0
  791. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/shadcn_add.py +292 -0
  792. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
  793. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/coverage-ui.json +1 -0
  794. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/requirements.txt +3 -0
  795. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
  796. package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
  797. package/skills/ui-ux-pro-max/.claude/skills/ui-ux-pro-max/SKILL.md +659 -0
  798. package/skills/ui-ux-pro-max/.claude-plugin/marketplace.json +35 -0
  799. package/skills/ui-ux-pro-max/.claude-plugin/plugin.json +11 -0
  800. package/skills/ui-ux-pro-max/.github/workflows/claude-code-review.yml +44 -0
  801. package/skills/ui-ux-pro-max/.github/workflows/claude.yml +50 -0
  802. package/skills/ui-ux-pro-max/.github/workflows/python-package-conda.yml +34 -0
  803. package/skills/ui-ux-pro-max/CLAUDE.md +98 -0
  804. package/skills/ui-ux-pro-max/LICENSE +21 -0
  805. package/skills/ui-ux-pro-max/README.md +513 -0
  806. package/skills/ui-ux-pro-max/SKILL.md +292 -0
  807. package/skills/ui-ux-pro-max/cli/README.md +63 -0
  808. package/skills/ui-ux-pro-max/cli/assets/data/_sync_all.py +414 -0
  809. package/skills/ui-ux-pro-max/cli/assets/data/app-interface.csv +31 -0
  810. package/skills/ui-ux-pro-max/cli/assets/data/charts.csv +26 -0
  811. package/skills/ui-ux-pro-max/cli/assets/data/colors.csv +162 -0
  812. package/skills/ui-ux-pro-max/cli/assets/data/design.csv +1776 -0
  813. package/skills/ui-ux-pro-max/cli/assets/data/draft.csv +1779 -0
  814. package/skills/ui-ux-pro-max/cli/assets/data/google-fonts.csv +1924 -0
  815. package/skills/ui-ux-pro-max/cli/assets/data/icons.csv +105 -0
  816. package/skills/ui-ux-pro-max/cli/assets/data/landing.csv +31 -0
  817. package/skills/ui-ux-pro-max/cli/assets/data/products.csv +162 -0
  818. package/skills/ui-ux-pro-max/cli/assets/data/react-performance.csv +45 -0
  819. package/skills/ui-ux-pro-max/cli/assets/data/stacks/angular.csv +51 -0
  820. package/skills/ui-ux-pro-max/cli/assets/data/stacks/astro.csv +54 -0
  821. package/skills/ui-ux-pro-max/cli/assets/data/stacks/flutter.csv +53 -0
  822. package/skills/ui-ux-pro-max/cli/assets/data/stacks/html-tailwind.csv +56 -0
  823. package/skills/ui-ux-pro-max/cli/assets/data/stacks/jetpack-compose.csv +53 -0
  824. package/skills/ui-ux-pro-max/cli/assets/data/stacks/laravel.csv +51 -0
  825. package/skills/ui-ux-pro-max/cli/assets/data/stacks/nextjs.csv +53 -0
  826. package/skills/ui-ux-pro-max/cli/assets/data/stacks/nuxt-ui.csv +51 -0
  827. package/skills/ui-ux-pro-max/cli/assets/data/stacks/nuxtjs.csv +59 -0
  828. package/skills/ui-ux-pro-max/cli/assets/data/stacks/react-native.csv +52 -0
  829. package/skills/ui-ux-pro-max/cli/assets/data/stacks/react.csv +54 -0
  830. package/skills/ui-ux-pro-max/cli/assets/data/stacks/shadcn.csv +61 -0
  831. package/skills/ui-ux-pro-max/cli/assets/data/stacks/svelte.csv +54 -0
  832. package/skills/ui-ux-pro-max/cli/assets/data/stacks/swiftui.csv +51 -0
  833. package/skills/ui-ux-pro-max/cli/assets/data/stacks/threejs.csv +54 -0
  834. package/skills/ui-ux-pro-max/cli/assets/data/stacks/vue.csv +50 -0
  835. package/skills/ui-ux-pro-max/cli/assets/data/styles.csv +85 -0
  836. package/skills/ui-ux-pro-max/cli/assets/data/typography.csv +74 -0
  837. package/skills/ui-ux-pro-max/cli/assets/data/ui-reasoning.csv +162 -0
  838. package/skills/ui-ux-pro-max/cli/assets/data/ux-guidelines.csv +100 -0
  839. package/skills/ui-ux-pro-max/cli/assets/scripts/core.py +247 -0
  840. package/skills/ui-ux-pro-max/cli/assets/scripts/design_system.py +1148 -0
  841. package/skills/ui-ux-pro-max/cli/assets/scripts/search.py +114 -0
  842. package/skills/ui-ux-pro-max/cli/assets/templates/base/quick-reference.md +297 -0
  843. package/skills/ui-ux-pro-max/cli/assets/templates/base/skill-content.md +353 -0
  844. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/agent.json +21 -0
  845. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/augment.json +18 -0
  846. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/claude.json +21 -0
  847. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/codebuddy.json +21 -0
  848. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/codex.json +21 -0
  849. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/continue.json +21 -0
  850. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/copilot.json +21 -0
  851. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/cursor.json +21 -0
  852. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/droid.json +21 -0
  853. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/gemini.json +21 -0
  854. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/kilocode.json +21 -0
  855. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/kiro.json +21 -0
  856. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/opencode.json +21 -0
  857. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/qoder.json +21 -0
  858. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/roocode.json +21 -0
  859. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/trae.json +21 -0
  860. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/warp.json +18 -0
  861. package/skills/ui-ux-pro-max/cli/assets/templates/platforms/windsurf.json +21 -0
  862. package/skills/ui-ux-pro-max/cli/bun.lock +77 -0
  863. package/skills/ui-ux-pro-max/cli/package-lock.json +370 -0
  864. package/skills/ui-ux-pro-max/cli/package.json +48 -0
  865. package/skills/ui-ux-pro-max/cli/src/commands/init.ts +216 -0
  866. package/skills/ui-ux-pro-max/cli/src/commands/uninstall.ts +135 -0
  867. package/skills/ui-ux-pro-max/cli/src/commands/update.ts +36 -0
  868. package/skills/ui-ux-pro-max/cli/src/commands/versions.ts +42 -0
  869. package/skills/ui-ux-pro-max/cli/src/index.ts +83 -0
  870. package/skills/ui-ux-pro-max/cli/src/types/index.ts +68 -0
  871. package/skills/ui-ux-pro-max/cli/src/utils/detect.ts +120 -0
  872. package/skills/ui-ux-pro-max/cli/src/utils/extract.ts +149 -0
  873. package/skills/ui-ux-pro-max/cli/src/utils/github.ts +104 -0
  874. package/skills/ui-ux-pro-max/cli/src/utils/logger.ts +11 -0
  875. package/skills/ui-ux-pro-max/cli/src/utils/template.ts +243 -0
  876. package/skills/ui-ux-pro-max/cli/tsconfig.json +17 -0
  877. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  878. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  879. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  880. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  881. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  882. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  883. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  884. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  885. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  886. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  887. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  888. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  889. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  890. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  891. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  892. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  893. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  894. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  895. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  896. package/skills/ui-ux-pro-max/data/styles.csv +68 -0
  897. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  898. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  899. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  900. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  901. package/skills/ui-ux-pro-max/docs//344/270/211/344/270/252 data-scripts-templates /347/232/204/345/214/272/345/210/253.md" +30 -0
  902. package/skills/ui-ux-pro-max/preview/xiaomaomi-app.html +411 -0
  903. package/skills/ui-ux-pro-max/screenshots/website.png +0 -0
  904. package/skills/ui-ux-pro-max/scripts/core.py +253 -0
  905. package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  906. package/skills/ui-ux-pro-max/scripts/search.py +114 -0
  907. package/skills/ui-ux-pro-max/skill.json +41 -0
  908. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/_sync_all.py +414 -0
  909. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/app-interface.csv +31 -0
  910. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/charts.csv +26 -0
  911. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/colors.csv +162 -0
  912. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/design.csv +1776 -0
  913. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/draft.csv +1779 -0
  914. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/google-fonts.csv +1924 -0
  915. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/icons.csv +106 -0
  916. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/landing.csv +35 -0
  917. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/products.csv +162 -0
  918. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/react-performance.csv +45 -0
  919. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/angular.csv +51 -0
  920. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  921. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  922. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  923. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  924. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
  925. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  926. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  927. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  928. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  929. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/react.csv +54 -0
  930. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  931. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  932. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  933. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
  934. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  935. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/styles.csv +85 -0
  936. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/typography.csv +74 -0
  937. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
  938. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  939. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/scripts/core.py +262 -0
  940. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/scripts/design_system.py +1148 -0
  941. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/scripts/search.py +114 -0
  942. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/base/quick-reference.md +297 -0
  943. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/base/skill-content.md +358 -0
  944. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/agent.json +21 -0
  945. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/augment.json +18 -0
  946. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/claude.json +21 -0
  947. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/codebuddy.json +21 -0
  948. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/codex.json +21 -0
  949. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/continue.json +21 -0
  950. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/copilot.json +21 -0
  951. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/cursor.json +21 -0
  952. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/droid.json +21 -0
  953. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/gemini.json +21 -0
  954. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/kilocode.json +21 -0
  955. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/kiro.json +21 -0
  956. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/opencode.json +21 -0
  957. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/qoder.json +21 -0
  958. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/roocode.json +21 -0
  959. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/trae.json +21 -0
  960. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/warp.json +18 -0
  961. package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/windsurf.json +21 -0
  962. package/skills/uncloud/SKILL.md +343 -0
  963. package/skills/upgrading-react-native/SKILL.md +58 -0
  964. package/skills/using-git-worktrees/SKILL.md +215 -0
  965. package/skills/vercel/SKILL.md +161 -0
  966. package/skills/vercel/metadata.json +16 -0
  967. package/skills/verification-loop/SKILL.md +126 -0
  968. package/skills/view-transitions-api/SKILL.md +108 -0
  969. package/skills/vite-patterns/SKILL.md +449 -0
  970. package/skills/vue3-composition-patterns/SKILL.md +375 -0
  971. package/skills/waza-habits/SKILL.md +22 -0
  972. package/skills/webapp-testing/LICENSE.txt +202 -0
  973. package/skills/webapp-testing/SKILL.md +96 -0
  974. package/skills/webapp-testing/examples/console_logging.py +35 -0
  975. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  976. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  977. package/skills/webapp-testing/scripts/with_server.py +106 -0
  978. package/src/orchestrator/builder.ts +234 -0
  979. package/src/orchestrator/executor.ts +386 -0
  980. package/src/orchestrator/index.ts +535 -0
  981. package/src/orchestrator/loader.ts +237 -0
  982. package/src/orchestrator/registry.ts +211 -0
  983. package/src/orchestrator/schema.ts +141 -0
  984. package/src/orchestrator/session.ts +128 -0
  985. package/src/orchestrator/types.ts +109 -0
  986. package/tsconfig.json +21 -0
@@ -0,0 +1,877 @@
1
+ # Ethical Design & Dark Patterns Reference
2
+
3
+ Ethical design means building interfaces that respect users' autonomy, attention, and interests. Persuasion is a normal and legitimate part of good design โ€” the line is crossed when a pattern deceives users, exploits cognitive biases against their interests, or removes their ability to make an informed, free choice.
4
+
5
+ This reference covers Category 18 of the Design Auditor skill.
6
+
7
+ ---
8
+
9
+ ## The Ethical Line
10
+
11
+ **Persuasion is acceptable when:**
12
+ - It accurately represents facts and outcomes
13
+ - It highlights genuine value to the user
14
+ - It makes desired actions easier without making undesired actions impossible
15
+ - The user retains full understanding and control of what they're agreeing to
16
+
17
+ **Persuasion becomes manipulation when it:**
18
+ - Deceives users about facts, prices, consequences, or availability
19
+ - Exploits cognitive biases (loss aversion, social pressure, anchoring) against the user's interests
20
+ - Makes unwanted outcomes harder to reach than wanted ones through friction, not logic
21
+ - Obscures, buries, or misrepresents what the user is consenting to
22
+ - Uses emotional pressure (guilt, fear, shame) as a primary decision driver
23
+
24
+ When in doubt, apply this test: **"Would the user feel tricked if they understood what just happened?"** If yes, it's manipulation.
25
+
26
+ ---
27
+
28
+ ## Detection Scope
29
+
30
+ Not all patterns are equally detectable from design files or code. Declare confidence level per finding.
31
+
32
+ | Pattern | Figma detectable? | Code detectable? | Confidence |
33
+ |---|---|---|---|
34
+ | Confirmshaming | โœ… Text content | โœ… String literals | ๐ŸŸข High |
35
+ | CTA hierarchy inversion | โœ… Size, color, weight | โœ… Class/style comparison | ๐ŸŸข High |
36
+ | Trick questions | โœ… Label text | โœ… Label + input text | ๐ŸŸข High |
37
+ | Pre-checked consent | โŒ N/A | โœ… checked attribute | ๐ŸŸข High |
38
+ | Countdown timers | โœ… Timer UI elements | โœ… JS timer / CSS | ๐ŸŸข High |
39
+ | Guilt-based copy | โœ… Text content | โœ… String literals | ๐ŸŸข High |
40
+ | Privacy zuckering | โœ… Toggle defaults | โœ… Default values | ๐ŸŸข High |
41
+ | False scarcity (hardcoded) | โœ… Static text | โœ… Static strings | ๐ŸŸก Medium |
42
+ | False social proof (hardcoded) | โœ… Static numbers | โœ… Static strings | ๐ŸŸก Medium |
43
+ | Disguised ads | โœ… Visual similarity | โš ๏ธ Partial | ๐ŸŸก Medium |
44
+ | Hidden costs | โš ๏ธ Multi-step flow only | โš ๏ธ Partial | ๐ŸŸก Medium |
45
+ | Roach motel | โš ๏ธ Multi-screen flow | โš ๏ธ Route count | ๐ŸŸก Medium |
46
+ | Bait and switch | โœ… CTA label vs outcome | โš ๏ธ Partial | ๐ŸŸก Medium |
47
+ | Obstruction | โš ๏ธ Step count | โš ๏ธ Route complexity | ๐ŸŸก Medium |
48
+ | Nagging | โš ๏ธ Multi-screen only | โš ๏ธ State logic | ๐Ÿ”ด Low |
49
+ | Forced continuity | โŒ Requires backend | โŒ Requires backend | โŒ Not detectable |
50
+ | Friend spam | โš ๏ธ Contact UI patterns | โœ… Pre-selected inputs | ๐ŸŸก Medium |
51
+ | Visual misdirection | โœ… Layout analysis | โš ๏ธ Partial | ๐ŸŸก Medium |
52
+
53
+ **When confidence is ๐ŸŸก Medium:** Flag as potential issue. State the detection limitation. Ask the user to verify.
54
+ **When confidence is ๐Ÿ”ด Low:** Do not flag unless the user specifically requests a flow-level ethics review.
55
+ **When not detectable:** Do not guess or speculate. Note in the audit that pattern cannot be assessed from static design alone.
56
+
57
+ ---
58
+
59
+ ## Ethics Severity Model
60
+
61
+ Ethics issues use a different severity framing from the rest of the audit. These are not design mistakes โ€” they are intentional choices that range from potentially harmful to clearly deceptive.
62
+
63
+ | Severity | Label | Meaning | Score deduction |
64
+ |---|---|---|---|
65
+ | ๐Ÿ”ด | **Deceptive** | Actively misleads or coerces users. Violates user trust and in many jurisdictions consumer law. Must fix. | โˆ’15 pts |
66
+ | ๐ŸŸก | **Questionable** | Persuasive in a way that may exploit users depending on context. Warrants review and justification. | โˆ’7 pts |
67
+ | ๐ŸŸข | **Noted** | Persuasive element present. Ethical in standard use but worth documenting for transparency. | 0 pts (informational) |
68
+
69
+ Ethics score starts at 100. Floor is 0.
70
+
71
+ **Scoring bands:**
72
+ - **90โ€“100** โ€” Ethically sound
73
+ - **70โ€“89** โ€” Minor concerns, review questionable patterns
74
+ - **50โ€“69** โ€” Significant manipulation risk, recommend redesign before shipping
75
+ - **< 50** โ€” Deliberately deceptive โ€” do not ship
76
+
77
+ Display as: **Ethics Score: X/100** in the report, alongside the Accessibility Score.
78
+
79
+ ---
80
+
81
+ ## Pattern Taxonomy
82
+
83
+ ### GROUP A: Deceptive Interface Patterns
84
+
85
+ ---
86
+
87
+ #### A1. Confirmshaming
88
+
89
+ **Definition:** Decline/cancel options are written to induce guilt or shame, pressuring users to accept rather than freely choose.
90
+
91
+ **Real-world example:** A newsletter popup with "Yes, sign me up!" and "No thanks, I prefer to stay uninformed" as the decline option.
92
+
93
+ **Why it's harmful:** It weaponises self-image against the user's best interest. The user can't decline without implicitly accepting a negative label about themselves. It removes genuine free choice.
94
+
95
+ **Figma detection:**
96
+ - Read all cancel/decline/skip CTA text nodes
97
+ - Flag if decline copy: uses first-person self-deprecation ("I don't want to..."), implies the user is foolish for declining, or phrases the refusal as a loss of identity
98
+
99
+ **Code detection:**
100
+ ```
101
+ Search for button/link text containing patterns like:
102
+ "No thanks, I prefer"
103
+ "No, I don't want"
104
+ "I'd rather not save"
105
+ "I hate [benefit]"
106
+ Any decline option written in first person with negative framing
107
+
108
+ Also check: <a> and <button> elements near consent modals/popups
109
+ ```
110
+
111
+ **Severity:** ๐Ÿ”ด Deceptive
112
+
113
+ **Fix:** Rewrite decline copy as a neutral, factual statement: "No thanks" / "Maybe later" / "Skip" / "Close". The user's choice to decline needs no editorial comment.
114
+
115
+ **Context note:** First-person CTA copy for the *accept* option ("Yes, I want better design!") is a standard and acceptable persuasion technique. Only the *decline* option is subject to this check.
116
+
117
+ ---
118
+
119
+ #### A2. CTA Hierarchy Inversion
120
+
121
+ **Definition:** The visual hierarchy of action buttons is deliberately inverted so the option that benefits the company (e.g. accept, subscribe, agree) appears as the primary action and the option that benefits the user (e.g. decline, cancel, close) is visually subordinated or hidden.
122
+
123
+ **Real-world example:** A cookie consent dialog where "Accept all" is a large, coloured primary button and "Manage preferences" is small grey text below โ€” despite both being valid user choices.
124
+
125
+ **Why it's harmful:** Users follow visual hierarchy automatically. Inverting it exploits scanning behaviour to steer choices rather than inform them.
126
+
127
+ **Figma detection:**
128
+ - On any consent, subscription, or upsell screen: identify the pair of accept/decline actions
129
+ - Flag if: accept button is significantly larger, uses brand colour or filled style, and decline is text-only, grey, or below a visual fold
130
+ - Flag if: there are 2+ dismissal steps to reach the same outcome as 1 acceptance step
131
+
132
+ **Code detection:**
133
+ ```
134
+ Find paired action buttons (e.g. inside modal, cookie banner, paywall):
135
+ Accept/Primary: class="btn-primary" or bg-[brand] or font-bold
136
+ Decline/Secondary: class="text-sm text-gray-400" or visually minimal
137
+
138
+ Flag if:
139
+ Primary styled button leads to subscription/consent/purchase
140
+ AND secondary/text link leads to user's preferred non-committal outcome
141
+ AND the size/weight/color difference is > 2 Tailwind size steps
142
+
143
+ Also check:
144
+ Cookie banners: "Accept all" button vs "Reject all" or "Manage" โ€” must be equivalent visual weight
145
+ (Required by GDPR/ePrivacy โ€” unequal styling = legal risk in EU, not just ethical risk)
146
+ ```
147
+
148
+ **Severity:** ๐Ÿ”ด Deceptive
149
+
150
+ **Fix:** Actions of equal consequence to the user must receive equivalent visual weight. If two choices are both valid, style them at the same level (both secondary, or one primary/one outlined โ€” not primary vs invisible text).
151
+
152
+ **Context note:** It is acceptable for a *recommended* action to be styled as primary (e.g. "Save" vs "Discard changes" โ€” save is logically primary). The manipulation is specifically when the company-beneficial option is elevated over the user-beneficial one without logical justification.
153
+
154
+ ---
155
+
156
+ #### A3. Trick Questions
157
+
158
+ **Definition:** Consent checkboxes or form fields are written using double negatives, confusing language, or inverted logic so that the "safe" user choice (opt out, decline) requires careful reading to identify.
159
+
160
+ **Real-world example:** "Uncheck this box if you do not wish to not receive marketing emails." Checking = opted in. Unchecking = opted out. No one knows.
161
+
162
+ **Why it's harmful:** Cognitive load means users often check or uncheck without reading carefully. Deliberately confusing wording exploits this to obtain consent that wasn't freely given.
163
+
164
+ **Figma detection:**
165
+ - Read all checkbox label text nodes associated with consent/marketing/data sharing
166
+ - Flag any label containing: double negatives, "unless", "except", "if you do not", inverted opt-out framing
167
+
168
+ **Code detection:**
169
+ ```
170
+ Search label text associated with <input type="checkbox"> for:
171
+ - "do not" + "not" (double negative)
172
+ - "unless you" / "except where"
173
+ - Any label where the positive action (checking) results in opting OUT
174
+
175
+ Pattern to flag:
176
+ <label for="marketing">Uncheck to opt out of marketing</label>
177
+ <label for="share">Leave unchecked to not share your data</label>
178
+
179
+ Correct pattern:
180
+ <label for="marketing">Send me marketing emails</label>
181
+ (checked = opted in โ€” clear, no negatives)
182
+ ```
183
+
184
+ **Severity:** ๐Ÿ”ด Deceptive
185
+
186
+ **Fix:** Rewrite all consent labels as positive, first-person affirmative statements. Checking = consenting, always. "Send me updates", "Share my data with partners", "Enrol in loyalty programme". No negatives.
187
+
188
+ **Context note:** "I agree to the Terms of Service" โ€” checking = agreeing โ€” is standard and fine. The issue is specifically consent options where the action and outcome are inverted or obscured.
189
+
190
+ ---
191
+
192
+ #### A4. Disguised Ads
193
+
194
+ **Definition:** Advertisements or promoted content are styled to visually resemble organic content, editorial results, or UI elements, obscuring their commercial nature.
195
+
196
+ **Real-world example:** Search results where sponsored listings use the same card style as organic results, with only a tiny grey "Ad" label.
197
+
198
+ **Why it's harmful:** Users rely on visual distinction to apply appropriate scepticism to commercial content. Removing that distinction deceives users into treating paid placement as editorial recommendation.
199
+
200
+ **Figma detection:**
201
+ - Look for "Ad", "Sponsored", "Promoted" labels on content cards
202
+ - Flag if: the label is < 11px, uses low-contrast colour (< 3:1 against background), or is positioned in a non-prominent location (e.g. bottom-right corner, below the fold of the card)
203
+ - Flag if: sponsored content cards are visually identical to organic content cards with no secondary signal beyond text
204
+
205
+ **Code detection:**
206
+ ```
207
+ Search for elements with "ad", "sponsored", "promoted" labels:
208
+ โ†’ Label font-size < 12px โ†’ ๐Ÿ”ด
209
+ โ†’ Label color contrast < 3:1 against card background โ†’ ๐Ÿ”ด
210
+ โ†’ No visual distinction (border, background, icon) beyond text label alone โ†’ ๐ŸŸก
211
+ โ†’ aria-label or role missing on ad container โ†’ ๐ŸŸก
212
+ (screen readers need to know it's an advertisement)
213
+ ```
214
+
215
+ **Severity:** ๐Ÿ”ด Deceptive
216
+
217
+ **Fix:** Sponsored/promoted content must be visually distinct from organic content. Use a consistent label ("Sponsored") in readable size (โ‰ฅ 12px) with sufficient contrast, placed prominently (top-left of card). A background tint or border on sponsored cards provides a secondary visual signal.
218
+
219
+ **Context note:** Clearly labelled "Featured" or "Partner" content sections with distinct visual treatment are acceptable. The issue is specifically when commercial and organic content are made to look identical.
220
+
221
+ ---
222
+
223
+ #### A5. Bait and Switch
224
+
225
+ **Definition:** A CTA or link promises one outcome but delivers a different, typically more committed or costly one.
226
+
227
+ **Real-world example:** A "See pricing" button that goes directly to a payment form pre-filled with the most expensive plan, skipping the pricing comparison page.
228
+
229
+ **Why it's harmful:** Users make decisions based on expected outcomes. Delivering a different outcome without warning bypasses informed consent.
230
+
231
+ **Figma detection:**
232
+ - On multi-step flows: check if CTA label accurately describes the destination
233
+ - Flag: "See plans" โ†’ payment screen (not plans page)
234
+ - Flag: "Learn more" โ†’ sign-up form (not information)
235
+ - Flag: "Free trial" โ†’ credit card required screen without prior disclosure
236
+
237
+ **Code detection:**
238
+ ```
239
+ Check <a href> and <button> destinations vs their text content:
240
+ โ†’ "Free" in label but destination URL contains /payment, /checkout, /billing โ†’ ๐ŸŸก
241
+ โ†’ "Learn more" linking to /signup or /register โ†’ ๐ŸŸก
242
+ โ†’ "Try for free" where the linked page requires credit card without this being
243
+ disclosed before the click โ†’ ๐Ÿ”ด
244
+
245
+ Also check for pre-selected plan tiers on pricing/signup pages:
246
+ โ†’ Most expensive plan pre-selected by default โ†’ ๐ŸŸก
247
+ ```
248
+
249
+ **Severity:** ๐Ÿ”ด Deceptive (when credit card / payment is involved) ยท ๐ŸŸก Questionable (when destination is unexpected but not costly)
250
+
251
+ **Fix:** CTA labels must accurately describe the immediate next step. If a free trial requires a credit card, state it on the CTA: "Start free trial (card required)". Never pre-select the most expensive plan.
252
+
253
+ **Context note:** "Get started" as a general CTA for a signup flow is fine โ€” it's a convention users understand. The issue is specifically when the CTA implies a lower-commitment action than what actually occurs.
254
+
255
+ ---
256
+
257
+ #### A6. Hidden Costs
258
+
259
+ **Definition:** Fees, charges, or required add-ons are revealed only at the final step of a purchase flow, after the user has invested time and effort in the process.
260
+
261
+ **Real-world example:** A booking flow that shows ยฃ49 throughout, then adds a ยฃ12 "service fee" and ยฃ3 "payment processing fee" only at the checkout confirmation screen.
262
+
263
+ **Why it's harmful:** Sunk cost psychology means users are more likely to accept hidden fees at the final step than if disclosed upfront. This is deliberate exploitation of a cognitive bias.
264
+
265
+ **Figma detection (multi-frame flows):**
266
+ - On checkout/booking/subscription flows: look for price displays at each step
267
+ - Flag if: a price shown early in the flow differs from the total on the confirmation/payment screen without an explicit explanation of additional charges
268
+ - Flag if: "Taxes and fees" are listed as "+ fees" with no amount shown until the final screen
269
+
270
+ **Code detection:**
271
+ ```
272
+ On checkout flows, look for:
273
+ โ†’ Price displayed as number in early steps โ†’ different number in payment step
274
+ without an explicit fee breakdown element in between โ†’ ๐Ÿ”ด
275
+ โ†’ "Processing fee", "Service fee", "Convenience fee" elements that only appear
276
+ in the final checkout component โ†’ ๐Ÿ”ด
277
+ โ†’ Fee disclosure only in <small> or footnote text โ†’ ๐ŸŸก
278
+ ```
279
+
280
+ **Severity:** ๐Ÿ”ด Deceptive
281
+
282
+ **Fix:** Show the complete price โ€” including all fees and taxes โ€” from the first step where a price is shown, or as early as possible. If exact fees can't be calculated early, show an estimate with a clear "Final price at checkout" note.
283
+
284
+ **Context note:** Showing taxes calculated at checkout (because they depend on location) is acceptable if "taxes will be added" is disclosed upfront. The manipulation is specifically hiding fees that are always charged regardless of user input.
285
+
286
+ ---
287
+
288
+ #### A7. Visual Misdirection
289
+
290
+ **Definition:** Layout, colour, animation, or visual weight is used to draw attention away from important information (terms, costs, risks) and toward conversion-positive elements.
291
+
292
+ **Real-world example:** A subscription signup where the price and billing frequency are in small light-grey text below the fold, while a large colourful button dominates the screen.
293
+
294
+ **Why it's harmful:** Visual hierarchy is a primary way users decide what to read. Deliberately inverting it for important information prevents informed consent.
295
+
296
+ **Figma detection:**
297
+ - On pricing/consent/checkout screens: identify all text that describes cost, commitment, or risk
298
+ - Flag if: such text is: < 13px, below 3:1 contrast, placed below the primary CTA, or in a location users are unlikely to read before acting
299
+ - Flag if: animation or visual weight strongly directs attention away from fee/commitment disclosure
300
+
301
+ **Code detection:**
302
+ ```
303
+ On pricing/checkout/consent pages, find text containing:
304
+ "per month", "per year", "billed annually", "renews at", "after trial",
305
+ "terms", "cancel anytime" (verify it's actually easy to cancel โ€” see Roach Motel)
306
+
307
+ Flag if that text has:
308
+ โ†’ font-size < 13px โ†’ ๐ŸŸก
309
+ โ†’ color contrast < 3:1 โ†’ ๐Ÿ”ด (also a Cat 2 issue)
310
+ โ†’ position: below the primary CTA in DOM order โ†’ ๐ŸŸก
311
+ โ†’ opacity < 0.7 โ†’ ๐ŸŸก
312
+ ```
313
+
314
+ **Severity:** ๐ŸŸก Questionable (layout) ยท ๐Ÿ”ด Deceptive (when combined with hidden costs or false urgency)
315
+
316
+ **Fix:** Any text describing cost, commitment, or risk must meet the same visual standards as the CTA it accompanies. Minimum 13px, 4.5:1 contrast, positioned before or at the same level as the primary action button.
317
+
318
+ **Context note:** Styling a primary CTA prominently is legitimate. The issue is specifically when important *constraining* information (costs, terms, risks) is visually suppressed.
319
+
320
+ ---
321
+
322
+ ### GROUP B: Coercive Flows
323
+
324
+ ---
325
+
326
+ #### B1. Roach Motel
327
+
328
+ **Definition:** A flow is designed so that entering a subscription, service, or commitment is significantly easier than exiting it. The cancellation path requires substantially more effort than the sign-up path.
329
+
330
+ **Real-world example:** Signing up for a subscription takes 2 clicks. Cancelling requires navigating to Account โ†’ Settings โ†’ Billing โ†’ Manage Subscription โ†’ Cancel โ†’ Confirm Cancel โ†’ Receive Retention Offer โ†’ Confirm Again โ†’ Wait 5 days.
331
+
332
+ **Why it's harmful:** Asymmetric friction exploits the path of least resistance. Users who intended to cancel often give up, paying for a service they don't want. This is deceptive by design.
333
+
334
+ **Figma detection (multi-frame flows):**
335
+ - Count the steps from intent to completion for: sign up, subscribe, add payment
336
+ - Count the steps from intent to completion for: cancel, unsubscribe, close account, remove payment
337
+ - Flag if: cancellation requires significantly more steps (2ร—+) than sign-up
338
+ - Flag if: a "cancellation" flow leads to retention offers, plan downgrades, or pause options before the actual cancel option
339
+
340
+ **Code detection:**
341
+ ```
342
+ Navigation structure check:
343
+ โ†’ Sign-up route: /signup โ†’ /payment โ†’ done (2 steps)
344
+ โ†’ Cancel route: /account โ†’ /settings โ†’ /billing โ†’ /manage โ†’ /cancel
345
+ โ†’ /confirm โ†’ /retention-offer โ†’ /final-confirm (7 steps)
346
+ โ†’ Step count ratio > 2:1 (cancel:signup) โ†’ ๐Ÿ”ด
347
+
348
+ Also check:
349
+ โ†’ Cancel button leads to a retention modal before actual cancellation โ†’ ๐ŸŸก
350
+ (one retention offer is acceptable; multiple forced offers before cancel = ๐Ÿ”ด)
351
+ โ†’ "Delete account" option buried in settings hierarchy 3+ levels deep โ†’ ๐ŸŸก
352
+ ```
353
+
354
+ **Severity:** ๐Ÿ”ด Deceptive
355
+
356
+ **Fix:** The path to exit a commitment must be no harder than the path to enter it. If sign-up is 2 steps, cancellation must be reachable in โ‰ค 3 steps. One genuine retention offer (e.g. "Before you go โ€” would you like to pause instead?") is acceptable if the user can immediately proceed to cancel.
357
+
358
+ **Context note:** Asking "Are you sure?" before a destructive action is a legitimate UX safety pattern. One confirmation step on cancellation is fine. Multiple forced steps, retention loops, and buried options are not.
359
+
360
+ ---
361
+
362
+ #### B2. Obstruction
363
+
364
+ **Definition:** Unnecessary steps, friction, or complexity are deliberately added to paths the company doesn't want users to take (unsubscribe, opt out, delete data, close account).
365
+
366
+ **Real-world example:** An unsubscribe link in an email leads to a page requiring the user to: log in, navigate to preferences, uncheck 12 individual email types, and click save โ€” rather than a one-click unsubscribe.
367
+
368
+ **Why it's harmful:** Friction is a tool that works. Artificial friction on user-beneficial paths is a deliberate barrier to exercising rights.
369
+
370
+ **Figma detection:**
371
+ - On opt-out/deletion/unsubscribe flows: count form fields and steps required
372
+ - Flag if: unsubscribe requires login when the user arrived from an email
373
+ - Flag if: data deletion requires contacting support rather than a self-serve option
374
+ - Flag if: GDPR data export/deletion is not present or requires > 3 steps
375
+
376
+ **Code detection:**
377
+ ```
378
+ On privacy/account deletion/unsubscribe flows:
379
+ โ†’ Login required to unsubscribe from email โ†’ ๐Ÿ”ด
380
+ (one-click unsubscribe is the standard and legally required in many jurisdictions)
381
+ โ†’ Data deletion only available via support contact form, not self-serve โ†’ ๐ŸŸก
382
+ โ†’ Account deletion requires email verification + 7-day wait + re-confirmation โ†’ ๐ŸŸก
383
+ (some delay is acceptable for security; making it confusing is not)
384
+ โ†’ Unsubscribe confirmation page has re-subscribe CTA more prominent than confirmation โ†’ ๐ŸŸก
385
+ ```
386
+
387
+ **Severity:** ๐Ÿ”ด Deceptive (when it blocks legally required actions) ยท ๐ŸŸก Questionable (unnecessary friction on non-legal paths)
388
+
389
+ **Fix:** Unsubscribe must be one click from the email link. Account/data deletion must be self-serve and reachable in โ‰ค 3 steps. Privacy rights (GDPR, CCPA) are legal obligations, not optional UX choices.
390
+
391
+ **Context note:** A reasonable confirmation step ("Your account will be deleted in 14 days โ€” here's how to recover it") is legitimate safety design. The issue is specifically friction that serves no user interest.
392
+
393
+ ---
394
+
395
+ #### B3. Forced Action
396
+
397
+ **Definition:** Users are required to complete an unwanted action (share data, accept marketing, connect a social account) in order to access a feature or complete an unrelated task.
398
+
399
+ **Real-world example:** An app that requires connecting your Facebook account to use its core features, even though the features don't require social data.
400
+
401
+ **Why it's harmful:** Bundling unrelated consent with core functionality coerces agreement that wouldn't be freely given in isolation.
402
+
403
+ **Figma detection:**
404
+ - On onboarding/signup flows: identify any steps that collect data or permissions beyond what the core product requires
405
+ - Flag if: social login is the *only* option with no email alternative
406
+ - Flag if: marketing consent is a required field (not optional) in a signup form
407
+ - Flag if: permission requests (location, contacts, notifications) are presented before their functional context is clear
408
+
409
+ **Code detection:**
410
+ ```
411
+ Signup/onboarding forms:
412
+ โ†’ Marketing consent checkbox with required attribute โ†’ ๐Ÿ”ด
413
+ (<input type="checkbox" required> on a marketing opt-in)
414
+ โ†’ Social OAuth as sole login option (no email/password alternative) โ†’ ๐ŸŸก
415
+ โ†’ Permission requests (geolocation, notifications) on first load with no
416
+ explanation of why they're needed โ†’ ๐ŸŸก
417
+
418
+ Account connection flows:
419
+ โ†’ Third-party data connection presented as required step in core onboarding โ†’ ๐ŸŸก
420
+ (should be optional or clearly labelled as optional)
421
+ ```
422
+
423
+ **Severity:** ๐Ÿ”ด Deceptive (when bundled with legally required consent) ยท ๐ŸŸก Questionable (when it restricts reasonable alternatives)
424
+
425
+ **Fix:** Marketing consent must always be optional and unchecked by default. Core product functionality must be available without requiring unrelated data sharing. Offer email/password as an alternative to social login.
426
+
427
+ **Context note:** Requiring account creation to access a personalised service is legitimate. Requiring data collection that goes beyond what the service needs is not.
428
+
429
+ ---
430
+
431
+ #### B4. Nagging
432
+
433
+ **Definition:** The same prompt, request, or offer is shown repeatedly after the user has explicitly dismissed it, exploiting persistence to wear down resistance.
434
+
435
+ **Real-world example:** An app that shows a "Rate us!" popup every session despite the user tapping "Not now" each time.
436
+
437
+ **Why it's harmful:** Repeat prompts after explicit dismissal disrespect the user's stated preference and erode trust.
438
+
439
+ **Figma detection (multi-screen audits):**
440
+ - Flag if: the same modal, banner, or prompt appears across multiple screens without a visible "don't show again" or session-persistent dismiss option
441
+ - Flag if: a dismissed notification/banner has no permanent dismiss mechanism
442
+
443
+ **Code detection:**
444
+ ```
445
+ Look for localStorage/sessionStorage/cookie patterns:
446
+ โ†’ Prompt shown based on session count without a "permanently dismissed" flag โ†’ ๐ŸŸก
447
+ โ†’ showRatingPrompt() called on every app open with no check for prior dismissal โ†’ ๐ŸŸก
448
+ โ†’ Cookie consent banner that reappears after being dismissed (without clearing cookies) โ†’ ๐Ÿ”ด
449
+
450
+ Pattern to flag:
451
+ if (sessionCount % 3 === 0) showPromoModal() // no dismissal check โ†’ ๐ŸŸก
452
+
453
+ Correct pattern:
454
+ if (!localStorage.getItem('promoDismissed')) showPromoModal()
455
+ ```
456
+
457
+ **Severity:** ๐ŸŸก Questionable (after 1 dismissal) ยท ๐Ÿ”ด Deceptive (after explicit "don't show again")
458
+
459
+ **Fix:** Every dismissible prompt must have a permanently effective dismiss option. After explicit dismissal, never show the same prompt again in the same session. Respect "not now" as a soft no; respect "don't show again" as a hard no.
460
+
461
+ **Context note:** A first-time prompt for reviews, push notifications, or premium features is legitimate. Persistence beyond one dismissal per session, or ignoring "don't show again", is nagging.
462
+
463
+ ---
464
+
465
+ ### GROUP C: Consent & Privacy Manipulation
466
+
467
+ ---
468
+
469
+ #### C1. Privacy Zuckering
470
+
471
+ **Definition:** Privacy settings default to maximum data sharing, and the interface is designed to make restricting sharing confusing, time-consuming, or hard to find.
472
+
473
+ **Named after:** Mark Zuckerberg's approach to Facebook privacy settings.
474
+
475
+ **Real-world example:** A cookie consent dialog where all non-essential cookies are pre-enabled, and "Manage preferences" leads to 12 categories each requiring individual opt-out, while "Accept all" is one click.
476
+
477
+ **Why it's harmful:** Defaults have an enormous effect on user behaviour. Defaulting to maximum data sharing obtains consent that most users would not give if the choice were equally easy in both directions.
478
+
479
+ **Figma detection:**
480
+ - On privacy settings / cookie consent screens: check the default state of all data-sharing toggles
481
+ - Flag if: any non-essential data sharing toggle is ON by default
482
+ - Flag if: privacy controls are in Settings โ†’ Privacy โ†’ Advanced โ†’ Manage rather than reachable in โ‰ค 2 steps
483
+ - Flag if: "Accept all" and "Reject all" are not equivalent in visual weight
484
+
485
+ **Code detection:**
486
+ ```
487
+ Check default state of consent inputs:
488
+ โ†’ <input type="checkbox" checked> on any non-essential data sharing option โ†’ ๐Ÿ”ด
489
+ โ†’ <toggle default="true"> on analytics/marketing/advertising categories โ†’ ๐Ÿ”ด
490
+ โ†’ "Accept all" button present without equivalent "Reject all" button โ†’ ๐Ÿ”ด
491
+ (GDPR requires symmetrical consent withdrawal)
492
+
493
+ Cookie consent libraries:
494
+ โ†’ consentRequired: false for analytics category โ†’ ๐Ÿ”ด
495
+ โ†’ Default consent: 'granted' for non-essential categories โ†’ ๐Ÿ”ด
496
+ โ†’ Google Consent Mode with analytics_storage: 'granted' as default โ†’ ๐Ÿ”ด
497
+ ```
498
+
499
+ **Severity:** ๐Ÿ”ด Deceptive (legally non-compliant in GDPR jurisdictions)
500
+
501
+ **Fix:** All non-essential data collection must default to OFF. "Accept all" and "Reject all" must be visually equivalent. Privacy settings must be reachable in โ‰ค 2 steps from any screen.
502
+
503
+ **Context note:** Strictly necessary cookies (session, security, load balancing) can be enabled by default as they are required for the service to function. Only non-essential categories (analytics, advertising, personalisation) must default to off.
504
+
505
+ ---
506
+
507
+ #### C2. Pre-Checked Consent
508
+
509
+ **Definition:** Consent checkboxes for marketing communications, data sharing, or third-party sharing are pre-checked by default, requiring users to actively opt out rather than actively opt in.
510
+
511
+ **Real-world example:** A checkout form where "Yes, send me emails about products and special offers" is pre-checked alongside the required terms agreement.
512
+
513
+ **Why it's harmful:** Pre-checked consent exploits form completion inertia. Most users complete forms without reading every field. Pre-checking harvests consent that was never genuinely given. Illegal under GDPR/PECR.
514
+
515
+ **Figma detection:**
516
+ - On any form containing consent checkboxes: note which are checked by default in the design
517
+ - Flag any checkbox for marketing, data sharing, or third-party sharing that appears checked in the default/empty state
518
+
519
+ **Code detection:**
520
+ ```
521
+ Direct detection:
522
+ โ†’ <input type="checkbox" name="marketing" checked> โ†’ ๐Ÿ”ด
523
+ โ†’ <input type="checkbox" name="newsletter" defaultChecked={true}> (React) โ†’ ๐Ÿ”ด
524
+ โ†’ v-model with default true on consent checkbox (Vue) โ†’ ๐Ÿ”ด
525
+
526
+ Bundled consent:
527
+ โ†’ Single checkbox that covers both ToS acceptance AND marketing consent โ†’ ๐Ÿ”ด
528
+ ("I agree to the Terms and want to receive marketing emails" โ€” must be separate)
529
+
530
+ Correct pattern:
531
+ <input type="checkbox" name="marketing"> (unchecked by default)
532
+ <input type="checkbox" name="terms" required> (ToS โ€” required is acceptable)
533
+ ```
534
+
535
+ **Severity:** ๐Ÿ”ด Deceptive (legally non-compliant in GDPR/PECR jurisdictions)
536
+
537
+ **Fix:** All marketing, data sharing, and third-party consent checkboxes must be unchecked by default. Terms of Service agreement can be required. Marketing consent must always be separate from ToS agreement and always optional.
538
+
539
+ **Context note:** Functional settings (e.g. "Remember my preferences") can reasonably default to checked. Only consent for data collection, marketing, and sharing with third parties must default to unchecked.
540
+
541
+ ---
542
+
543
+ #### C3. Interface Interference
544
+
545
+ **Definition:** Privacy and consent settings are designed with confusing language, inconsistent interaction patterns, or misleading UI elements that make it difficult for users to achieve their intended privacy choices.
546
+
547
+ **Real-world example:** A cookie settings panel where some categories use a toggle (on = consented) and others use a checkbox (checked = opted out), with no explanation of the difference.
548
+
549
+ **Why it's harmful:** Interface inconsistency in the specific context of consent exploits cognitive load to obtain broader consent than intended.
550
+
551
+ **Figma detection:**
552
+ - On privacy/settings screens: check for inconsistent control types (mix of toggles and checkboxes) without clear labelling of what each state means
553
+ - Flag if: "on" and "off" toggle labels are absent โ€” the user can't tell which direction is consent
554
+ - Flag if: save/apply button is not present after changes (no clear way to confirm intent)
555
+
556
+ **Code detection:**
557
+ ```
558
+ Consent UI patterns:
559
+ โ†’ Mix of checkbox and toggle inputs within the same consent category group โ†’ ๐ŸŸก
560
+ โ†’ Toggle without visible on/off or yes/no label โ†’ ๐ŸŸก
561
+ โ†’ aria-checked missing on custom toggle elements โ†’ ๐ŸŸก
562
+ โ†’ No save/apply button โ€” changes auto-save without confirmation โ†’ ๐ŸŸก
563
+ (user may not know their change was registered)
564
+ โ†’ Visually identical "on" and "off" toggle states (relies on position only) โ†’ ๐ŸŸก
565
+ (must pass 3:1 contrast between states)
566
+ ```
567
+
568
+ **Severity:** ๐ŸŸก Questionable
569
+
570
+ **Fix:** All consent controls within the same panel must use consistent interaction patterns. Toggles must have visible "On/Off" or "Yes/No" labels. A "Save preferences" button must confirm intent. Never auto-apply privacy changes.
571
+
572
+ **Context note:** Mixing toggles and checkboxes in general settings is fine. The issue is specifically in consent and privacy contexts, where the consequences of misunderstanding are significant.
573
+
574
+ ---
575
+
576
+ #### C4. Drip Pricing
577
+
578
+ **Definition:** The total price of a product or service is revealed incrementally across multiple steps, with each step adding fees, charges, or required add-ons.
579
+
580
+ **Real-world example:** A flight booking that shows ยฃ45 โ†’ adds ยฃ12 seat selection โ†’ adds ยฃ8 luggage โ†’ adds ยฃ5 payment fee โ†’ final total: ยฃ70 (56% more than initially shown).
581
+
582
+ **Why it's harmful:** Each incremental reveal exploits sunk cost psychology. By the time the final price appears, the user has invested time and expects the price they saw initially. This is a form of false advertising.
583
+
584
+ **Figma detection (multi-frame flows):**
585
+ - Track price display across booking/checkout flow frames
586
+ - Flag if: price shown in step 1 differs from price shown in final confirmation without an explicit, prominent breakdown of what was added and why
587
+
588
+ **Code detection:**
589
+ ```
590
+ Price element tracking across checkout steps:
591
+ โ†’ Price component shows different value on /checkout vs /payment
592
+ without a fee breakdown component between them โ†’ ๐Ÿ”ด
593
+ โ†’ Optional add-ons (seats, luggage, insurance) defaulting to selected โ†’ ๐ŸŸก
594
+ โ†’ "Booking fee", "Service fee" appearing only on the final step โ†’ ๐Ÿ”ด
595
+
596
+ Also flag:
597
+ โ†’ Required add-ons presented as optional during flow then added automatically โ†’ ๐Ÿ”ด
598
+ โ†’ Total price element only present on the final confirmation step โ†’ ๐ŸŸก
599
+ ```
600
+
601
+ **Severity:** ๐Ÿ”ด Deceptive
602
+
603
+ **Fix:** Show the total price (including all mandatory fees) from the first price display. Optional add-ons must be clearly optional and unselected by default. A running total that updates in real time as add-ons are selected is the ethical pattern.
604
+
605
+ **Context note:** Showing taxes calculated at the final step (because they depend on user location) is acceptable if the pre-tax price is clearly labelled as such. Mandatory fees that don't depend on user input must be included in all price displays.
606
+
607
+ ---
608
+
609
+ ### GROUP D: False Urgency & Scarcity
610
+
611
+ ---
612
+
613
+ #### D1. Countdown Timers
614
+
615
+ **Definition:** A countdown timer implies that a price, offer, or availability will expire at the deadline โ€” when in reality the offer resets or the timer is artificial.
616
+
617
+ **Real-world example:** A "Sale ends in 02:47:22" timer on a product page where the same sale has been running for months and the timer simply resets every day.
618
+
619
+ **Why it's harmful:** Artificial urgency exploits loss aversion to rush decisions users would otherwise take more time on. False urgency is deceptive about the nature of the offer.
620
+
621
+ **Figma detection:**
622
+ - Identify countdown timer UI elements (numerical countdown, progress bar depleting, ticking clock)
623
+ - Flag: timer present on a pricing/offer screen โ†’ always flag as potential issue (confidence: medium โ€” can't verify if timer is real from static design)
624
+ - Note: ask the user whether the timer is backed by real data
625
+
626
+ **Code detection:**
627
+ ```
628
+ Detect timer implementations:
629
+ โ†’ setInterval() or setTimeout() used to count down from a fixed number โ†’ ๐ŸŸก
630
+ โ†’ Timer initialized from localStorage or sessionStorage (resets per session) โ†’ ๐Ÿ”ด
631
+ โ†’ Timer initialized from a hardcoded future date that doesn't change โ†’ ๐Ÿ”ด
632
+ โ†’ Timer that resets on page refresh (visible in network tab patterns) โ†’ ๐Ÿ”ด
633
+
634
+ Real (acceptable) timers:
635
+ โ†’ Timer value fetched from API endpoint โ†’ โœ… (may be real)
636
+ โ†’ Timer initialized from a server-side expiry timestamp โ†’ โœ… (may be real)
637
+
638
+ Flag as ๐ŸŸก in all cases; upgrade to ๐Ÿ”ด if reset/artificial pattern is confirmed.
639
+ ```
640
+
641
+ **Severity:** ๐ŸŸก Questionable (unverified) ยท ๐Ÿ”ด Deceptive (when reset pattern is confirmed)
642
+
643
+ **Fix:** Only use countdown timers for genuinely time-limited offers with a real end date. If the offer doesn't expire, remove the timer. If it does expire, ensure the timer value comes from a real server-side timestamp that does not reset.
644
+
645
+ **Context note:** Flash sales with real expiry dates and stock-based countdowns ("X left") backed by real inventory data are legitimate urgency signals. The issue is specifically fabricated or perpetually-resetting timers.
646
+
647
+ ---
648
+
649
+ #### D2. False Scarcity
650
+
651
+ **Definition:** Inventory, availability, or demand is presented as more limited than it actually is to pressure purchase decisions.
652
+
653
+ **Real-world example:** "Only 2 rooms left at this price!" shown on a hotel booking site when there are actually 47 rooms available.
654
+
655
+ **Why it's harmful:** Manufactured scarcity exploits loss aversion to accelerate decisions the user would otherwise make more carefully.
656
+
657
+ **Figma detection:**
658
+ - Identify scarcity indicators: "Only X left", "X remaining", "Limited availability", "Almost sold out"
659
+ - Flag: hardcoded numbers in scarcity text โ†’ always flag (medium confidence โ€” can't verify accuracy from static design)
660
+ - Note: ask user whether numbers are dynamic or static
661
+
662
+ **Code detection:**
663
+ ```
664
+ Search string literals for scarcity language:
665
+ โ†’ "Only [number] left" as a hardcoded string โ†’ ๐ŸŸก
666
+ โ†’ "Limited availability" with no data binding โ†’ ๐ŸŸก
667
+ โ†’ "X people viewing this" with static/fake number โ†’ ๐Ÿ”ด (see D3)
668
+
669
+ Real (acceptable) scarcity:
670
+ โ†’ Scarcity number bound to inventory API: {stockCount} remaining โ†’ โœ…
671
+ โ†’ Scarcity element only rendered when stock < threshold from real data โ†’ โœ…
672
+
673
+ Also flag:
674
+ โ†’ "Low stock" label that appears regardless of actual inventory โ†’ ๐ŸŸก
675
+ ```
676
+
677
+ **Severity:** ๐ŸŸก Questionable (hardcoded, unverifiable) ยท ๐Ÿ”ด Deceptive (confirmed inaccurate)
678
+
679
+ **Fix:** Scarcity indicators must be backed by real, real-time inventory data. If you can't connect scarcity claims to live data, remove them.
680
+
681
+ **Context note:** Genuine "last few available" messaging backed by real inventory is a legitimate and helpful signal for users who need to make timely decisions. The issue is fabricated or exaggerated scarcity.
682
+
683
+ ---
684
+
685
+ #### D3. False Social Proof
686
+
687
+ **Definition:** User counts, viewer numbers, or social validation figures are fabricated or misleading, creating artificial impression of demand or popularity.
688
+
689
+ **Real-world example:** "1,247 people are looking at this right now" shown simultaneously to all users, where the number is randomly generated between 800 and 1,500.
690
+
691
+ **Why it's harmful:** Social proof is a powerful trust and urgency signal. Fabricating it is straightforwardly deceptive โ€” it creates false beliefs about product demand.
692
+
693
+ **Figma detection:**
694
+ - Identify social proof elements: "X people viewing", "X purchased today", "X happy customers"
695
+ - Flag: large, specific, round-ish numbers in social proof text (e.g. "10,000 customers") โ†’ medium confidence โ€” can't verify accuracy
696
+ - Flag: viewer count / activity feed UI elements โ†’ always flag for verification
697
+
698
+ **Code detection:**
699
+ ```
700
+ Search for social proof patterns with static values:
701
+ โ†’ "people viewing" or "viewing this" with hardcoded number โ†’ ๐Ÿ”ด
702
+ โ†’ Random number generation for social proof:
703
+ Math.floor(Math.random() * 500) + 800 โ†’ ๐Ÿ”ด (extremely common pattern)
704
+ โ†’ "X sold today" as static string โ†’ ๐ŸŸก
705
+
706
+ Real (acceptable) social proof:
707
+ โ†’ Viewer count fetched from WebSocket or real-time API โ†’ โœ…
708
+ โ†’ Purchase count from real analytics data โ†’ โœ…
709
+ โ†’ Review count from real review data โ†’ โœ…
710
+
711
+ Also flag:
712
+ โ†’ Testimonials without attribution (name, photo, company) โ†’ ๐ŸŸข Noted
713
+ โ†’ Review counts that can't be independently verified โ†’ ๐ŸŸข Noted
714
+ ```
715
+
716
+ **Severity:** ๐Ÿ”ด Deceptive (fabricated numbers) ยท ๐ŸŸก Questionable (unverifiable claims)
717
+
718
+ **Fix:** All social proof numbers must reflect real data. Remove viewer counts if they can't be backed by real-time data. Real customer counts, real review scores, and real testimonials are all legitimate.
719
+
720
+ **Context note:** "Join 50,000+ designers" on a marketing page is acceptable if the number is real and updated. The issue is specifically fabricated or algorithmically-generated social pressure.
721
+
722
+ ---
723
+
724
+ ### GROUP E: Emotional Manipulation
725
+
726
+ ---
727
+
728
+ #### E1. Guilt-Based Copy
729
+
730
+ **Definition:** UI copy uses shame, guilt, or implied self-judgement to pressure users into accepting offers, upgrading, or continuing engagement.
731
+
732
+ **Real-world example:** An app that sends push notifications saying "You've been neglecting your goals ๐Ÿ˜”" or shows "You're falling behind your streak!"
733
+
734
+ **Why it's harmful:** Using negative emotional states (guilt, shame, anxiety) as conversion tools exploits psychological vulnerabilities, particularly harmful for users with anxiety or perfectionism.
735
+
736
+ **Figma detection:**
737
+ - Read notification, empty state, and retention copy text nodes
738
+ - Flag if: copy implies failure, neglect, or inadequacy for not using the product
739
+ - Flag if: copy uses self-referential shame framing ("you've been slipping", "you're falling behind")
740
+
741
+ **Code detection:**
742
+ ```
743
+ Search string literals for guilt/shame patterns:
744
+ โ†’ "You haven't [verbed] in X days" with implicit negative framing โ†’ ๐ŸŸก
745
+ โ†’ "Don't lose your streak" (mild โ€” acceptable) vs
746
+ "You're letting yourself down" (guilt โ€” not acceptable) โ†’ ๐Ÿ”ด
747
+ โ†’ "Your [friends/team/competitors] are [ahead/doing better]" โ†’ ๐ŸŸก
748
+ โ†’ Notification copy containing "neglect", "fail", "behind", "disappointing" โ†’ ๐Ÿ”ด
749
+ โ†’ Empty state copy implying the user is at fault for having no data โ†’ ๐ŸŸก
750
+ ```
751
+
752
+ **Severity:** ๐Ÿ”ด Deceptive (explicit shame/guilt) ยท ๐ŸŸก Questionable (implied inadequacy)
753
+
754
+ **Fix:** Motivational copy should focus on positive outcomes, not negative self-image. "Keep the momentum going!" not "You're falling behind." "Resume where you left off" not "You've been neglecting this." Acknowledge inactivity neutrally; never shame it.
755
+
756
+ **Context note:** Streak mechanics, completion percentages, and progress indicators are legitimate engagement tools when framed positively. Loss framing ("you'll lose your streak") is a borderline pattern โ€” acceptable in mild doses, manipulative when central to the engagement loop.
757
+
758
+ ---
759
+
760
+ #### E2. Fear Appeals
761
+
762
+ **Definition:** Disproportionate or exaggerated negative consequences are implied to pressure users into action, exploiting fear of loss, harm, or failure.
763
+
764
+ **Real-world example:** A password manager showing "Your accounts are EXPOSED" in large red text, implying imminent breach, when the actual risk is ordinary.
765
+
766
+ **Why it's harmful:** Disproportionate fear appeals cause anxiety that may lead to rushed decisions. When the fear is exaggerated or manufactured, it's manipulative.
767
+
768
+ **Figma detection:**
769
+ - Read warning/alert/empty state copy for fear-based framing
770
+ - Flag if: risk language uses all-caps, red colour, or alarm icons for ordinary states
771
+ - Flag if: consequences described are significantly more severe than what would actually occur
772
+
773
+ **Code detection:**
774
+ ```
775
+ Search for disproportionate warning language:
776
+ โ†’ "EXPOSED", "COMPROMISED", "AT RISK", "VULNERABLE" for non-critical states โ†’ ๐ŸŸก
777
+ โ†’ Red alert styling on informational messages โ†’ ๐ŸŸก (also a Cat 2 issue)
778
+ โ†’ Modal that cannot be dismissed without taking an action (forced fear conversion) โ†’ ๐Ÿ”ด
779
+ โ†’ "Your data could be stolen" messaging on a standard upsell prompt โ†’ ๐Ÿ”ด
780
+ ```
781
+
782
+ **Severity:** ๐ŸŸก Questionable (exaggerated risk) ยท ๐Ÿ”ด Deceptive (fabricated risk used for conversion)
783
+
784
+ **Fix:** Risk communication should be proportionate to actual risk. Use appropriate severity levels: info, warning, error. Reserve red/alarm styling for genuine high-severity states. Never exaggerate risk to drive upgrades or signups.
785
+
786
+ **Context note:** Genuine security warnings ("Your password was found in a data breach") are legitimate and important. The issue is using fear-based language for routine prompts or upsells where the risk is minor or manufactured.
787
+
788
+ ---
789
+
790
+ #### E3. Toying with Emotion
791
+
792
+ **Definition:** UI design deliberately targets emotional vulnerabilities โ€” anxiety, loneliness, FOMO, regret โ€” as primary drivers of engagement or conversion, beyond what serves the user's interests.
793
+
794
+ **Real-world example:** A social app that withholds notification counts until the user opens the app, then reveals a large number to create a dopamine hit. Or an e-commerce site that shows "You almost missed this deal!" on items the user viewed.
795
+
796
+ **Why it's harmful:** Deliberately engineering emotional states to drive engagement treats users as mechanisms to exploit rather than people to serve. It's particularly harmful for users with anxiety, addiction vulnerability, or compulsive behaviour patterns.
797
+
798
+ **Figma detection:**
799
+ - Identify: notification badges with counts hidden until interaction, "You almost..." / "Don't miss out" copy, regret-inducing copy on cart abandonment screens
800
+ - Flag: patterns whose primary purpose is emotional state creation rather than information delivery
801
+
802
+ **Code detection:**
803
+ ```
804
+ Patterns to flag:
805
+ โ†’ Notification badge count hidden behind interaction (revealed on click/hover) โ†’ ๐ŸŸก
806
+ โ†’ "You almost had it" / "Items in your cart are selling out" language โ†’ ๐ŸŸก
807
+ โ†’ Countdown on cart abandonment email links โ†’ ๐ŸŸก
808
+ โ†’ Variable reward patterns: content that withholds gratification unpredictably โ†’ ๐ŸŸก
809
+ (infinite scroll with delayed content reveal, pull-to-refresh with spinner)
810
+ โ†’ Push notification permission request immediately after first valuable action
811
+ (harvesting emotional high for permission) โ†’ ๐ŸŸก
812
+ ```
813
+
814
+ **Severity:** ๐ŸŸก Questionable
815
+
816
+ **Fix:** Notification counts should be visible without requiring interaction. Cart and wish-list reminders can reference real urgency but should not manufacture emotional pressure. Push notification permission requests should be contextual (triggered when a feature requires it), not timed to emotional peaks.
817
+
818
+ **Context note:** Excitement about new messages or genuine urgency about real availability are legitimate emotional contexts. The issue is deliberately engineering emotional states (anxiety, FOMO, regret) as a conversion mechanism rather than as a natural response to genuine product value.
819
+
820
+ ---
821
+
822
+ ## Ethical Persuasion โ€” What NOT to Flag
823
+
824
+ These are persuasive design techniques that are legitimate, ethical, and should never be penalised by the ethics audit.
825
+
826
+ | Technique | Why it's acceptable |
827
+ |---|---|
828
+ | **Prominent primary CTA** | Clear visual hierarchy helps users understand what to do. Acceptable when the primary action is logically primary. |
829
+ | **Genuine social proof** | Real review counts, real testimonials, real customer numbers. Helps users make informed decisions. |
830
+ | **Real scarcity** | Accurate "last few available" backed by real inventory. Genuinely useful information. |
831
+ | **Real urgency** | Offers with genuine expiry dates, real events with real deadlines. |
832
+ | **Progress indicators** | Progress bars, completion percentages, streaks โ€” when framed positively. |
833
+ | **Anchoring (transparent)** | Showing a higher price before a discounted price when both are real. |
834
+ | **Loss framing (honest)** | "You'll lose your saved items if you don't sign in" โ€” when true and stated once. |
835
+ | **Reciprocity** | Free tier, free trial, free content offered genuinely before asking for commitment. |
836
+ | **Scarcity countdown** | Countdown backed by a real server-side expiry that doesn't reset. |
837
+ | **Completion motivation** | "You're 80% done โ€” finish setting up your profile!" โ€” positive framing, accurate. |
838
+ | **Feature gating** | Showing premium features as locked โ€” transparent about what requires upgrade. |
839
+ | **Onboarding nudges** | Tooltips, highlights, empty state CTAs that guide users to value. Not repeated after dismissal. |
840
+
841
+ **Rule of thumb:** If the persuasive element is honest, proportionate, and serves the user's ability to make an informed decision โ€” it's ethical persuasion, not manipulation.
842
+
843
+ ---
844
+
845
+ ## Quick Reference: Ethics Audit Checklist
846
+
847
+ Use this during Cat 18 to ensure all patterns are checked:
848
+
849
+ **Group A โ€” Interface**
850
+ - [ ] No confirmshaming on decline/cancel options
851
+ - [ ] Accept and decline actions have equivalent visual weight (especially cookie consent)
852
+ - [ ] All consent copy uses positive, non-double-negative language
853
+ - [ ] Ads/sponsored content are visually distinct from organic content
854
+ - [ ] CTA labels accurately describe the immediate next action
855
+ - [ ] All fees shown from first price display
856
+
857
+ **Group B โ€” Flows**
858
+ - [ ] Cancellation path โ‰ค 2ร— the steps of sign-up path
859
+ - [ ] Unsubscribe works in one click from email
860
+ - [ ] No required fields collecting non-essential data
861
+ - [ ] Dismissed prompts stay dismissed
862
+
863
+ **Group C โ€” Consent**
864
+ - [ ] All non-essential data collection defaults to OFF
865
+ - [ ] No pre-checked marketing consent
866
+ - [ ] Consent controls are consistent and clearly labelled
867
+ - [ ] Total price always shown โ€” no drip pricing
868
+
869
+ **Group D โ€” Urgency**
870
+ - [ ] Countdown timers backed by real server-side data
871
+ - [ ] Scarcity claims backed by real inventory
872
+ - [ ] Social proof numbers backed by real data
873
+
874
+ **Group E โ€” Emotion**
875
+ - [ ] No shame or guilt in decline/inactivity copy
876
+ - [ ] Risk language proportionate to actual risk
877
+ - [ ] No emotional manipulation patterns (FOMO engineering, hidden notification counts)