exonous 0.0.0-stage → 2.10.4

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 (385) hide show
  1. package/README.md +100 -2
  2. package/assets/THIRD-PARTY-NOTICES.md +29 -0
  3. package/assets/adapters/opencode/exonous.js +54 -0
  4. package/assets/agents/exo-backend.md +22 -0
  5. package/assets/agents/exo-cto.md +22 -0
  6. package/assets/agents/exo-data-ai.md +22 -0
  7. package/assets/agents/exo-designer.md +22 -0
  8. package/assets/agents/exo-devops.md +22 -0
  9. package/assets/agents/exo-frontend.md +22 -0
  10. package/assets/agents/exo-infra.md +22 -0
  11. package/assets/agents/exo-mobile.md +22 -0
  12. package/assets/agents/exo-pm.md +22 -0
  13. package/assets/agents/exo-qa.md +22 -0
  14. package/assets/agents/exo-researcher.md +22 -0
  15. package/assets/agents/exo-security.md +22 -0
  16. package/assets/agents/roster.json +209 -0
  17. package/assets/agents/taxis.js +189 -0
  18. package/assets/editors/cursor/frontend-skills.mdc +27 -0
  19. package/assets/editors/hooks/cursor/hooks.json +11 -0
  20. package/assets/machine/PR-TEMPLATE.md +21 -0
  21. package/assets/machine/hooks/anamnesis.cjs +61 -0
  22. package/assets/machine/hooks/ethos.cjs +48 -0
  23. package/assets/machine/hooks/kairos.cjs +46 -0
  24. package/assets/machine/hooks/lib/cli-options.cjs +133 -0
  25. package/assets/machine/hooks/lib/memory.cjs +488 -0
  26. package/assets/machine/hooks/lib/metron.cjs +52 -0
  27. package/assets/machine/hooks/lib/paths.cjs +99 -0
  28. package/assets/machine/hooks/lib/payload.cjs +81 -0
  29. package/assets/machine/hooks/lib/pr-template-validate.cjs +103 -0
  30. package/assets/machine/hooks/lib/release.cjs +58 -0
  31. package/assets/machine/hooks/lib/repo.cjs +138 -0
  32. package/assets/machine/hooks/lib/sanitize.cjs +37 -0
  33. package/assets/machine/hooks/lib/selfupdate.cjs +354 -0
  34. package/assets/machine/hooks/lib/shell.cjs +722 -0
  35. package/assets/machine/hooks/lib/template.cjs +70 -0
  36. package/assets/machine/hooks/lib/token.cjs +110 -0
  37. package/assets/machine/hooks/lib/validate-pr-body.cjs +21 -0
  38. package/assets/machine/hooks/pyle.cjs +302 -0
  39. package/assets/rules/nomos.md +59 -0
  40. package/assets/rules/praxis.md +38 -0
  41. package/assets/skills/code-review/SKILL.md +124 -0
  42. package/assets/skills/commit-changes/SKILL.md +49 -0
  43. package/assets/skills/deliver/SKILL.md +114 -0
  44. package/assets/skills/deliver/references/parallel.md +37 -0
  45. package/assets/skills/doc/SKILL.md +140 -0
  46. package/assets/skills/doc/doc.mjs +277 -0
  47. package/assets/skills/issue-board/SKILL.md +84 -0
  48. package/assets/skills/issue-board/board.mjs +389 -0
  49. package/assets/skills/issue-board/config.example.json +9 -0
  50. package/assets/skills/issue-board/render.py +189 -0
  51. package/assets/skills/make-pr/SKILL.md +24 -0
  52. package/assets/skills/native-ui/SKILL.md +67 -0
  53. package/assets/skills/native-ui/reference/apple.md +180 -0
  54. package/assets/skills/native-ui/reference/mobile-feel.md +221 -0
  55. package/assets/skills/native-ui/reference/swift.md +289 -0
  56. package/assets/skills/project-memory/SKILL.md +59 -0
  57. package/assets/skills/project-memory/config.example.json +4 -0
  58. package/assets/skills/project-memory/project-memory.mjs +478 -0
  59. package/assets/skills/security-review/SKILL.md +102 -0
  60. package/assets/skills/session-handoff/SKILL.md +23 -0
  61. package/assets/skills/session-handoff/config.example.json +3 -0
  62. package/assets/skills/ui-design/SKILL.md +75 -0
  63. package/assets/skills/ui-design/reference/adapt.md +151 -0
  64. package/assets/skills/ui-design/reference/adapt.native.md +35 -0
  65. package/assets/skills/ui-design/reference/android.md +50 -0
  66. package/assets/skills/ui-design/reference/animate.md +87 -0
  67. package/assets/skills/ui-design/reference/audit.md +76 -0
  68. package/assets/skills/ui-design/reference/audit.native.md +126 -0
  69. package/assets/skills/ui-design/reference/bolder.md +33 -0
  70. package/assets/skills/ui-design/reference/clarify.md +84 -0
  71. package/assets/skills/ui-design/reference/colorize.md +86 -0
  72. package/assets/skills/ui-design/reference/craft-floor.md +25 -0
  73. package/assets/skills/ui-design/reference/critique.md +345 -0
  74. package/assets/skills/ui-design/reference/degraded/asset-producer.md +35 -0
  75. package/assets/skills/ui-design/reference/degraded/documenter.md +23 -0
  76. package/assets/skills/ui-design/reference/degraded/finish-reviewer.md +43 -0
  77. package/assets/skills/ui-design/reference/degraded/manual-edit-applier.md +56 -0
  78. package/assets/skills/ui-design/reference/delight.md +63 -0
  79. package/assets/skills/ui-design/reference/distill.md +98 -0
  80. package/assets/skills/ui-design/reference/doctor.md +49 -0
  81. package/assets/skills/ui-design/reference/document.md +273 -0
  82. package/assets/skills/ui-design/reference/extract.md +52 -0
  83. package/assets/skills/ui-design/reference/harden.md +122 -0
  84. package/assets/skills/ui-design/reference/hooks.md +114 -0
  85. package/assets/skills/ui-design/reference/init.md +47 -0
  86. package/assets/skills/ui-design/reference/ios.md +55 -0
  87. package/assets/skills/ui-design/reference/layout.md +81 -0
  88. package/assets/skills/ui-design/reference/live-setup.md +75 -0
  89. package/assets/skills/ui-design/reference/live.md +326 -0
  90. package/assets/skills/ui-design/reference/new-work.md +350 -0
  91. package/assets/skills/ui-design/reference/onboard.md +85 -0
  92. package/assets/skills/ui-design/reference/operate.md +29 -0
  93. package/assets/skills/ui-design/reference/optimize.md +101 -0
  94. package/assets/skills/ui-design/reference/overdrive.md +83 -0
  95. package/assets/skills/ui-design/reference/polish.md +77 -0
  96. package/assets/skills/ui-design/reference/quieter.md +95 -0
  97. package/assets/skills/ui-design/reference/routing.md +37 -0
  98. package/assets/skills/ui-design/reference/shape.md +43 -0
  99. package/assets/skills/ui-design/reference/styles/brutalist.md +45 -0
  100. package/assets/skills/ui-design/reference/styles/design-md.md +70 -0
  101. package/assets/skills/ui-design/reference/styles/direction.md +95 -0
  102. package/assets/skills/ui-design/reference/styles/full-output.md +42 -0
  103. package/assets/skills/ui-design/reference/styles/minimalist.md +64 -0
  104. package/assets/skills/ui-design/reference/styles/premium.md +65 -0
  105. package/assets/skills/ui-design/reference/styles/redesign.md +59 -0
  106. package/assets/skills/ui-design/reference/typeset.md +73 -0
  107. package/assets/skills/ui-design/reference/visualize.md +156 -0
  108. package/assets/skills/ui-design/scripts/ENGINE-LICENSE +191 -0
  109. package/assets/skills/ui-design/scripts/VERSION +1 -0
  110. package/assets/skills/ui-design/scripts/bin/darwin-arm64/impeccable +0 -0
  111. package/assets/skills/ui-design/scripts/command-metadata.json +94 -0
  112. package/assets/skills/ui-design/scripts/data/font-index-failures.json +121 -0
  113. package/assets/skills/ui-design/scripts/data/font-index.json +1 -0
  114. package/assets/skills/ui-design/scripts/impeccable +206 -0
  115. package/assets/skills/ui-design/scripts/impeccable.cmd +214 -0
  116. package/assets/skills/ui-design/scripts/live-browser-dom.js +167 -0
  117. package/assets/skills/ui-design/scripts/live-browser-ignores.js +242 -0
  118. package/assets/skills/ui-design/scripts/live-browser-session.js +144 -0
  119. package/assets/skills/ui-design/scripts/live-browser.js +12990 -0
  120. package/assets/skills/ui-design/scripts/modern-screenshot.umd.js +14 -0
  121. package/assets/skills/ui-design/scripts/ui-design +6 -0
  122. package/assets/skills/ui-design/scripts/ui-design.cmd +3 -0
  123. package/assets/skills/ui-design/scripts/ui-design.mjs +124 -0
  124. package/assets/skills/ui-mockup/SKILL.md +68 -0
  125. package/assets/skills/ui-mockup/reference/brandkit.md +101 -0
  126. package/assets/skills/ui-mockup/reference/image-to-code.md +83 -0
  127. package/assets/skills/ui-mockup/reference/mobile-comps.md +94 -0
  128. package/assets/skills/ui-mockup/reference/web-comps.md +83 -0
  129. package/assets/skills/ui-motion/SKILL.md +112 -0
  130. package/assets/skills/ui-motion/reference/expo.md +224 -0
  131. package/assets/skills/ui-motion/reference/opportunities.md +81 -0
  132. package/assets/skills/ui-motion/reference/prototype.md +238 -0
  133. package/assets/skills/ui-motion/reference/review.md +163 -0
  134. package/assets/skills/ui-motion/reference/toasts.md +144 -0
  135. package/assets/skills/ui-motion/reference/ui-libraries.md +71 -0
  136. package/assets/skills/ui-motion/reference/vocabulary.md +130 -0
  137. package/assets/skills/ui-motion/reference/web.md +294 -0
  138. package/assets/skills/ui-patterns/SKILL.md +105 -0
  139. package/assets/skills/ui-patterns/references/stacks/html-tailwind.md +40 -0
  140. package/assets/skills/ui-patterns/references/stacks/nextjs.md +52 -0
  141. package/assets/skills/ui-patterns/references/stacks/nuxt.md +100 -0
  142. package/assets/skills/ui-patterns/references/stacks/react-native.md +48 -0
  143. package/assets/skills/ui-patterns/references/stacks/react.md +49 -0
  144. package/assets/skills/ui-patterns/references/stacks/shadcn.md +57 -0
  145. package/assets/skills/ui-patterns/references/stacks/vue.md +37 -0
  146. package/assets/techne/.claude-plugin/marketplace.json +31 -0
  147. package/assets/techne/.claude-plugin/plugin.json +24 -0
  148. package/assets/techne/.mcp.json +8 -0
  149. package/assets/techne/commands/build-fix.md +48 -0
  150. package/assets/techne/commands/refactor-clean.md +46 -0
  151. package/assets/techne/commands/test-coverage.md +42 -0
  152. package/assets/techne/hooks/hooks.json +49 -0
  153. package/assets/techne/rules/angular/coding-style.md +49 -0
  154. package/assets/techne/rules/angular/hooks.md +23 -0
  155. package/assets/techne/rules/angular/patterns.md +48 -0
  156. package/assets/techne/rules/angular/security.md +26 -0
  157. package/assets/techne/rules/angular/testing.md +46 -0
  158. package/assets/techne/rules/arkts/coding-style.md +63 -0
  159. package/assets/techne/rules/arkts/hooks.md +38 -0
  160. package/assets/techne/rules/arkts/patterns.md +42 -0
  161. package/assets/techne/rules/arkts/security.md +35 -0
  162. package/assets/techne/rules/arkts/testing.md +39 -0
  163. package/assets/techne/rules/common/agents.md +6 -0
  164. package/assets/techne/rules/common/code-review.md +15 -0
  165. package/assets/techne/rules/common/coding-style.md +13 -0
  166. package/assets/techne/rules/common/development-workflow.md +5 -0
  167. package/assets/techne/rules/common/git-workflow.md +30 -0
  168. package/assets/techne/rules/common/hooks.md +7 -0
  169. package/assets/techne/rules/common/patterns.md +3 -0
  170. package/assets/techne/rules/common/performance.md +3 -0
  171. package/assets/techne/rules/common/security.md +5 -0
  172. package/assets/techne/rules/common/testing.md +3 -0
  173. package/assets/techne/rules/cpp/coding-style.md +31 -0
  174. package/assets/techne/rules/cpp/hooks.md +26 -0
  175. package/assets/techne/rules/cpp/patterns.md +31 -0
  176. package/assets/techne/rules/cpp/security.md +37 -0
  177. package/assets/techne/rules/cpp/testing.md +31 -0
  178. package/assets/techne/rules/csharp/coding-style.md +30 -0
  179. package/assets/techne/rules/csharp/hooks.md +24 -0
  180. package/assets/techne/rules/csharp/patterns.md +28 -0
  181. package/assets/techne/rules/csharp/security.md +32 -0
  182. package/assets/techne/rules/csharp/testing.md +27 -0
  183. package/assets/techne/rules/dart/coding-style.md +47 -0
  184. package/assets/techne/rules/dart/hooks.md +26 -0
  185. package/assets/techne/rules/dart/patterns.md +38 -0
  186. package/assets/techne/rules/dart/security.md +44 -0
  187. package/assets/techne/rules/dart/testing.md +39 -0
  188. package/assets/techne/rules/fsharp/coding-style.md +34 -0
  189. package/assets/techne/rules/fsharp/hooks.md +25 -0
  190. package/assets/techne/rules/fsharp/patterns.md +43 -0
  191. package/assets/techne/rules/fsharp/security.md +32 -0
  192. package/assets/techne/rules/fsharp/testing.md +27 -0
  193. package/assets/techne/rules/golang/coding-style.md +30 -0
  194. package/assets/techne/rules/golang/hooks.md +17 -0
  195. package/assets/techne/rules/golang/patterns.md +43 -0
  196. package/assets/techne/rules/golang/security.md +33 -0
  197. package/assets/techne/rules/golang/testing.md +20 -0
  198. package/assets/techne/rules/java/coding-style.md +51 -0
  199. package/assets/techne/rules/java/hooks.md +18 -0
  200. package/assets/techne/rules/java/patterns.md +55 -0
  201. package/assets/techne/rules/java/security.md +33 -0
  202. package/assets/techne/rules/java/testing.md +33 -0
  203. package/assets/techne/rules/kotlin/coding-style.md +50 -0
  204. package/assets/techne/rules/kotlin/hooks.md +17 -0
  205. package/assets/techne/rules/kotlin/patterns.md +44 -0
  206. package/assets/techne/rules/kotlin/security.md +34 -0
  207. package/assets/techne/rules/kotlin/testing.md +38 -0
  208. package/assets/techne/rules/nuxt/coding-style.md +20 -0
  209. package/assets/techne/rules/nuxt/hooks.md +16 -0
  210. package/assets/techne/rules/nuxt/patterns.md +46 -0
  211. package/assets/techne/rules/nuxt/security.md +19 -0
  212. package/assets/techne/rules/nuxt/testing.md +15 -0
  213. package/assets/techne/rules/perl/coding-style.md +33 -0
  214. package/assets/techne/rules/perl/hooks.md +22 -0
  215. package/assets/techne/rules/perl/patterns.md +43 -0
  216. package/assets/techne/rules/perl/security.md +39 -0
  217. package/assets/techne/rules/perl/testing.md +42 -0
  218. package/assets/techne/rules/php/coding-style.md +30 -0
  219. package/assets/techne/rules/php/hooks.md +24 -0
  220. package/assets/techne/rules/php/patterns.md +26 -0
  221. package/assets/techne/rules/php/security.md +27 -0
  222. package/assets/techne/rules/php/testing.md +28 -0
  223. package/assets/techne/rules/python/coding-style.md +38 -0
  224. package/assets/techne/rules/python/fastapi.md +57 -0
  225. package/assets/techne/rules/python/hooks.md +19 -0
  226. package/assets/techne/rules/python/patterns.md +37 -0
  227. package/assets/techne/rules/python/security.md +26 -0
  228. package/assets/techne/rules/python/testing.md +32 -0
  229. package/assets/techne/rules/react/coding-style.md +24 -0
  230. package/assets/techne/rules/react/hooks.md +62 -0
  231. package/assets/techne/rules/react/patterns.md +48 -0
  232. package/assets/techne/rules/react/security.md +45 -0
  233. package/assets/techne/rules/react/testing.md +42 -0
  234. package/assets/techne/rules/react-native/accessibility.md +14 -0
  235. package/assets/techne/rules/react-native/coding-style.md +16 -0
  236. package/assets/techne/rules/react-native/hooks.md +16 -0
  237. package/assets/techne/rules/react-native/patterns.md +18 -0
  238. package/assets/techne/rules/react-native/performance.md +14 -0
  239. package/assets/techne/rules/react-native/production-readiness.md +16 -0
  240. package/assets/techne/rules/react-native/security.md +16 -0
  241. package/assets/techne/rules/react-native/testing.md +14 -0
  242. package/assets/techne/rules/ruby/coding-style.md +40 -0
  243. package/assets/techne/rules/ruby/hooks.md +33 -0
  244. package/assets/techne/rules/ruby/patterns.md +33 -0
  245. package/assets/techne/rules/ruby/security.md +39 -0
  246. package/assets/techne/rules/ruby/testing.md +35 -0
  247. package/assets/techne/rules/rust/coding-style.md +41 -0
  248. package/assets/techne/rules/rust/hooks.md +16 -0
  249. package/assets/techne/rules/rust/patterns.md +42 -0
  250. package/assets/techne/rules/rust/security.md +33 -0
  251. package/assets/techne/rules/rust/testing.md +30 -0
  252. package/assets/techne/rules/swift/coding-style.md +30 -0
  253. package/assets/techne/rules/swift/hooks.md +20 -0
  254. package/assets/techne/rules/swift/patterns.md +30 -0
  255. package/assets/techne/rules/swift/security.md +22 -0
  256. package/assets/techne/rules/swift/testing.md +28 -0
  257. package/assets/techne/rules/typescript/coding-style.md +38 -0
  258. package/assets/techne/rules/typescript/hooks.md +14 -0
  259. package/assets/techne/rules/typescript/patterns.md +12 -0
  260. package/assets/techne/rules/typescript/security.md +14 -0
  261. package/assets/techne/rules/typescript/testing.md +12 -0
  262. package/assets/techne/rules/vue/coding-style.md +19 -0
  263. package/assets/techne/rules/vue/hooks.md +13 -0
  264. package/assets/techne/rules/vue/patterns.md +29 -0
  265. package/assets/techne/rules/vue/security.md +11 -0
  266. package/assets/techne/rules/vue/testing.md +11 -0
  267. package/assets/techne/rules/web/coding-style.md +25 -0
  268. package/assets/techne/rules/web/design-quality.md +21 -0
  269. package/assets/techne/rules/web/hooks.md +39 -0
  270. package/assets/techne/rules/web/patterns.md +23 -0
  271. package/assets/techne/rules/web/performance.md +25 -0
  272. package/assets/techne/rules/web/security.md +23 -0
  273. package/assets/techne/rules/web/testing.md +21 -0
  274. package/assets/techne/scripts/hooks/config-guard.js +50 -0
  275. package/assets/techne/scripts/hooks/edit-tracker.js +26 -0
  276. package/assets/techne/scripts/hooks/lib/shell.js +204 -0
  277. package/assets/techne/scripts/hooks/no-verify-guard.js +205 -0
  278. package/assets/techne/scripts/hooks/run.js +92 -0
  279. package/assets/techne/scripts/hooks/stop-checks.js +136 -0
  280. package/assets/techne/skills/angular/SKILL.md +34 -0
  281. package/assets/techne/skills/angular/reference/components-and-templates.md +63 -0
  282. package/assets/techne/skills/angular/reference/dependency-injection.md +44 -0
  283. package/assets/techne/skills/angular/reference/forms.md +97 -0
  284. package/assets/techne/skills/angular/reference/routing.md +50 -0
  285. package/assets/techne/skills/angular/reference/signals-and-state.md +59 -0
  286. package/assets/techne/skills/angular/reference/styling-motion-a11y.md +54 -0
  287. package/assets/techne/skills/angular/reference/testing.md +52 -0
  288. package/assets/techne/skills/angular/reference/tooling.md +31 -0
  289. package/assets/techne/skills/cpp/SKILL.md +27 -0
  290. package/assets/techne/skills/cpp/reference/coding-standards.md +160 -0
  291. package/assets/techne/skills/databases/SKILL.md +35 -0
  292. package/assets/techne/skills/databases/reference/clickhouse.md +102 -0
  293. package/assets/techne/skills/databases/reference/migrations.md +94 -0
  294. package/assets/techne/skills/databases/reference/mysql.md +101 -0
  295. package/assets/techne/skills/databases/reference/postgres.md +72 -0
  296. package/assets/techne/skills/databases/reference/prisma.md +105 -0
  297. package/assets/techne/skills/databases/reference/redis.md +108 -0
  298. package/assets/techne/skills/delivery/SKILL.md +35 -0
  299. package/assets/techne/skills/delivery/reference/deployment-patterns.md +58 -0
  300. package/assets/techne/skills/delivery/reference/docker-patterns.md +77 -0
  301. package/assets/techne/skills/delivery/reference/git-workflow.md +64 -0
  302. package/assets/techne/skills/delivery/reference/github-ops.md +67 -0
  303. package/assets/techne/skills/delivery/reference/jira-integration.md +53 -0
  304. package/assets/techne/skills/delivery/reference/kubernetes-patterns.md +67 -0
  305. package/assets/techne/skills/dotnet/SKILL.md +27 -0
  306. package/assets/techne/skills/dotnet/reference/dotnet-core.md +131 -0
  307. package/assets/techne/skills/flutter/SKILL.md +29 -0
  308. package/assets/techne/skills/flutter/reference/code-review.md +76 -0
  309. package/assets/techne/skills/flutter/reference/patterns.md +201 -0
  310. package/assets/techne/skills/go/SKILL.md +28 -0
  311. package/assets/techne/skills/go/reference/patterns.md +87 -0
  312. package/assets/techne/skills/go/reference/testing.md +142 -0
  313. package/assets/techne/skills/java/SKILL.md +29 -0
  314. package/assets/techne/skills/java/reference/java-standards.md +117 -0
  315. package/assets/techne/skills/java/reference/springboot.md +108 -0
  316. package/assets/techne/skills/kotlin/SKILL.md +35 -0
  317. package/assets/techne/skills/kotlin/reference/android-clean-architecture.md +115 -0
  318. package/assets/techne/skills/kotlin/reference/compose-multiplatform-patterns.md +113 -0
  319. package/assets/techne/skills/kotlin/reference/kotlin-coroutines-flows.md +93 -0
  320. package/assets/techne/skills/kotlin/reference/kotlin-patterns.md +74 -0
  321. package/assets/techne/skills/kotlin/reference/kotlin-testing.md +115 -0
  322. package/assets/techne/skills/ml/SKILL.md +34 -0
  323. package/assets/techne/skills/ml/reference/ai-regression-testing.md +99 -0
  324. package/assets/techne/skills/ml/reference/cost-aware-llm-pipeline.md +133 -0
  325. package/assets/techne/skills/ml/reference/eval-harness.md +94 -0
  326. package/assets/techne/skills/ml/reference/mle-workflow.md +177 -0
  327. package/assets/techne/skills/ml/reference/prompt-optimizer.md +107 -0
  328. package/assets/techne/skills/ml/reference/pytorch-patterns.md +164 -0
  329. package/assets/techne/skills/php/SKILL.md +27 -0
  330. package/assets/techne/skills/php/reference/laravel.md +142 -0
  331. package/assets/techne/skills/python/SKILL.md +33 -0
  332. package/assets/techne/skills/python/reference/django.md +104 -0
  333. package/assets/techne/skills/python/reference/fastapi.md +118 -0
  334. package/assets/techne/skills/python/reference/python-core.md +88 -0
  335. package/assets/techne/skills/python/reference/python-testing.md +105 -0
  336. package/assets/techne/skills/quality/SKILL.md +34 -0
  337. package/assets/techne/skills/quality/reference/benchmark.md +55 -0
  338. package/assets/techne/skills/quality/reference/browser-qa.md +60 -0
  339. package/assets/techne/skills/quality/reference/coding-standards.md +88 -0
  340. package/assets/techne/skills/quality/reference/e2e-testing.md +99 -0
  341. package/assets/techne/skills/quality/reference/tdd-workflow.md +89 -0
  342. package/assets/techne/skills/quality/reference/verification-loop.md +80 -0
  343. package/assets/techne/skills/react/SKILL.md +30 -0
  344. package/assets/techne/skills/react/reference/nextjs-turbopack.md +42 -0
  345. package/assets/techne/skills/react/reference/react-patterns.md +139 -0
  346. package/assets/techne/skills/react/reference/react-performance.md +101 -0
  347. package/assets/techne/skills/react/reference/react-testing.md +139 -0
  348. package/assets/techne/skills/react-native/SKILL.md +28 -0
  349. package/assets/techne/skills/react-native/reference/expo-patterns.md +196 -0
  350. package/assets/techne/skills/research/SKILL.md +35 -0
  351. package/assets/techne/skills/research/reference/architecture-decision-records.md +65 -0
  352. package/assets/techne/skills/research/reference/codebase-onboarding.md +44 -0
  353. package/assets/techne/skills/research/reference/deep-research.md +50 -0
  354. package/assets/techne/skills/research/reference/iterative-retrieval.md +62 -0
  355. package/assets/techne/skills/research/reference/product-lens.md +38 -0
  356. package/assets/techne/skills/research/reference/search-first.md +50 -0
  357. package/assets/techne/skills/rust/SKILL.md +28 -0
  358. package/assets/techne/skills/rust/reference/patterns.md +108 -0
  359. package/assets/techne/skills/rust/reference/testing.md +142 -0
  360. package/assets/techne/skills/services/SKILL.md +32 -0
  361. package/assets/techne/skills/services/reference/api-contracts.md +139 -0
  362. package/assets/techne/skills/services/reference/backend-layers.md +95 -0
  363. package/assets/techne/skills/services/reference/errors-and-resilience.md +146 -0
  364. package/assets/techne/skills/services/reference/hexagonal-boundaries.md +93 -0
  365. package/assets/techne/skills/services/reference/mcp-servers.md +50 -0
  366. package/assets/techne/skills/services/reference/nestjs.md +96 -0
  367. package/assets/techne/skills/swift/SKILL.md +29 -0
  368. package/assets/techne/skills/swift/reference/concurrency.md +83 -0
  369. package/assets/techne/skills/swift/reference/swiftui.md +139 -0
  370. package/assets/techne/skills/vue/SKILL.md +29 -0
  371. package/assets/techne/skills/vue/reference/nuxt4-patterns.md +90 -0
  372. package/assets/techne/skills/vue/reference/ui-to-vue.md +90 -0
  373. package/assets/techne/skills/vue/reference/vue-patterns.md +151 -0
  374. package/assets/techne/skills/web/SKILL.md +30 -0
  375. package/assets/techne/skills/web/reference/bun-runtime.md +55 -0
  376. package/assets/techne/skills/web/reference/frontend-patterns.md +54 -0
  377. package/assets/techne/skills/web/reference/seo.md +77 -0
  378. package/assets/techne/skills/web/reference/vite-patterns.md +96 -0
  379. package/bin/native.cjs +30 -0
  380. package/native/aarch64-apple-darwin/exonous +0 -0
  381. package/native/aarch64-unknown-linux-gnu/exonous +0 -0
  382. package/native/x86_64-apple-darwin/exonous +0 -0
  383. package/native/x86_64-pc-windows-msvc/exonous.exe +0 -0
  384. package/native/x86_64-unknown-linux-gnu/exonous +0 -0
  385. package/package.json +1 -6
@@ -0,0 +1,130 @@
1
+ # Motion vocabulary (reverse lookup)
2
+
3
+ Maps vague descriptions to precise terms so prompts and specs use shared language. Naming only — not build (`reference/web.md`) or audit (`reference/review.md`).
4
+
5
+ ## How to answer
6
+
7
+ User describes what they see or feel. Return:
8
+
9
+ ```
10
+ **Term** — One-line definition.
11
+ ```
12
+
13
+ Best match first; 1–2 alternates if close. Disambiguate (e.g. crossfade vs shared-element vs morph). If no exact match, say so and compose from glossary terms. Keep answers short.
14
+
15
+ ## Glossary
16
+
17
+ ### Entrances & exits
18
+ - **Fade in / Fade out** — Opacity to visible or hidden.
19
+ - **Slide in** — Enters from off-screen edge.
20
+ - **Scale in** — Grows from smaller size, often with fade.
21
+ - **Pop in** — Slight overshoot on arrival.
22
+ - **Reveal** — Gradual uncover via clip or mask.
23
+ - **Enter / Exit** — Motion when node mounts or unmounts.
24
+
25
+ ### Sequencing & timing
26
+ - **Keyframes** — Defined waypoints the engine interpolates between.
27
+ - **Interpolation / Tween** — In-between frames between start and end values.
28
+ - **Stagger** — Sequential starts with small offsets — cascade.
29
+ - **Orchestration** — Multiple motions timed as one beat.
30
+ - **Delay** — Wait before start.
31
+ - **Duration** — Length of motion.
32
+ - **Fill mode** — Styles held before/after (e.g. forwards).
33
+ - **Stepped animation** — Discrete steps, not smooth blend.
34
+
35
+ ### Movement & transforms
36
+ - **Translate** — Shift along X or Y.
37
+ - **Scale** — Resize uniformly.
38
+ - **Rotate** — Spin around a point.
39
+ - **Skew** — Shear from rectangular shape.
40
+ - **3D tilt / Flip** — rotateX/Y depth.
41
+ - **Perspective** — Viewer distance for 3D exaggeration.
42
+ - **Transform origin** — Anchor for scale/rotate.
43
+ - **Origin-aware animation** — Grows from trigger, not box center.
44
+
45
+ ### State transitions
46
+ - **Crossfade** — Overlap fade between two states same place.
47
+ - **Continuity transition** — Same object reads across states (resize, reposition).
48
+ - **Morph** — One shape becomes another.
49
+ - **Shared element transition** — Element travels between layouts.
50
+ - **Layout animation** — Size/position animates to new layout.
51
+ - **Accordion / Collapse** — Height opens/closes for content.
52
+ - **Direction-aware transition** — Forward/back slide opposes by nav direction.
53
+
54
+ ### Scroll & navigation
55
+ - **Scroll reveal** — Enters when entering viewport.
56
+ - **Scroll-driven animation** — Progress tied to scroll offset.
57
+ - **Parallax** — Layers move at different rates.
58
+ - **Page transition** — Motion between routes.
59
+ - **View transition** — Browser morph between document states.
60
+
61
+ ### Feedback & interaction
62
+ - **Hover effect** — Pointer-over change (web).
63
+ - **Press / Tap feedback** — Brief scale on press.
64
+ - **Hold to confirm** — Fill while held for destructive confirm.
65
+ - **Drag** — Direct manipulation with optional momentum.
66
+ - **Drag to reorder** — List reorder with shifting neighbors.
67
+ - **Swipe to dismiss** — Off-screen drag to close.
68
+ - **Rubber-banding** — Resistance and snap at overscroll edge.
69
+ - **Shake / Wiggle** — Error/reject jitter.
70
+ - **Ripple** — Expanding circle from tap point.
71
+
72
+ ### Easing
73
+ - **Easing** — Speed curve over time.
74
+ - **Ease-out** — Fast start, slow end — default for UI response.
75
+ - **Ease-in** — Slow start — usually avoid on UI.
76
+ - **Ease-in-out** — Slow-fast-slow for on-screen travel.
77
+ - **Linear** — Constant speed — spinners, progress.
78
+ - **Cubic-bezier** — Custom curve control points.
79
+ - **Asymmetric easing** — Different accel/decel — livelier than symmetric.
80
+
81
+ ### Springs
82
+ - **Spring** — Physics-driven settle vs fixed duration.
83
+ - **Stiffness / Tension** — Pull toward target — higher = snappier.
84
+ - **Damping** — Oscillation decay — lower = more bounce.
85
+ - **Mass** — Heaviness of moving object.
86
+ - **Bounce** — Overshoot then settle.
87
+ - **Perceptual duration** — When motion *feels* done.
88
+ - **Momentum** — Velocity continues after release.
89
+ - **Velocity** — Speed/direction; springs preserve on interrupt.
90
+ - **Interruptible animation** — Retarget mid-flight smoothly.
91
+
92
+ ### Looping & ambient
93
+ - **Marquee** — Continuous horizontal scroll loop.
94
+ - **Loop** — Repeating cycle.
95
+ - **Alternate (yoyo)** — Forward then reverse each cycle.
96
+ - **Orbit** — Path around anchor.
97
+ - **Pulse** — Rhythmic scale/opacity attention.
98
+ - **Float** — Gentle vertical drift idle motion.
99
+ - **Idle animation** — Subtle motion while waiting.
100
+
101
+ ### Polish & effects
102
+ - **Blur** — Soften or hide transition seams.
103
+ - **Clip-path** — Hard-edge reveal/mask shapes.
104
+ - **Mask** — Soft-edge hide/reveal vs clip-path.
105
+ - **Before / after slider** — Draggable compare wipe.
106
+ - **Line drawing** — SVG stroke draw-on.
107
+ - **Text morph** — Character-wise text change.
108
+ - **Skeleton / Shimmer** — Loading placeholder sheen.
109
+ - **Number ticker** — Rolling digit counter.
110
+ - **Tabular numbers** — Fixed-width digits — stable counters.
111
+ - **Typewriter** — Sequential character reveal.
112
+
113
+ ### Performance
114
+ - **Frame rate (FPS)** — 60 baseline; 120 on high-refresh displays.
115
+ - **Jank** — Visible stutter from missed frames.
116
+ - **Dropped frame** — Missed paint deadline hitch.
117
+ - **Compositing** — GPU layer move/fade without layout.
118
+ - **will-change** — Hint upcoming animation for promotion.
119
+ - **Layout thrashing** — Layout-forcing props animated each frame.
120
+
121
+ ### Principles
122
+ - **Purposeful animation** — Motion serves orientation/feedback, not filler.
123
+ - **Anticipation** — Small wind-up before main move.
124
+ - **Follow-through** — Secondary motion after main stop.
125
+ - **Squash & stretch** — Deform conveys weight/speed.
126
+ - **Perceived performance** — Motion changes felt speed.
127
+ - **Frequency of use** — More exposure → shorter/subtler motion.
128
+ - **Spatial consistency** — Same identity/path across states.
129
+ - **Hardware acceleration** — transform/opacity on GPU.
130
+ - **Reduced motion** — Honor system preference — gentler, not always off.
@@ -0,0 +1,294 @@
1
+ # Web animation — build sequence & recipes
2
+
3
+ Construction skill: turn a motion request into implementation that passes review. Not for codebase audits (`reference/review.md`) or RN (`reference/expo.md`). For overlays (toast, drawer, menu) consider `reference/ui-libraries.md` before hand-rolling.
4
+
5
+ ## Posture
6
+
7
+ Make the call; one line of reasoning; ship code. Worst failure: animating what should stay instant. Second: right moment, wrong curve, keyframes on a stack, `scale(0)`.
8
+
9
+ ## Hard rules
10
+
11
+ 1. Run steps 1–2 before tools or curves.
12
+ 2. Use table values — no invented beziers.
13
+ 3. Extend existing `--ease-*` / duration tokens; do not fork a parallel scale.
14
+ 4. Ship reduced-motion and hover gating with the change.
15
+ 5. Cheapest tool: CSS fade beats installing Motion.
16
+
17
+ ## Build sequence
18
+
19
+ ### 1–2. Gate & purpose
20
+
21
+ Same frequency and purpose tables as `SKILL.md`. Keyboard-initiated → stop with instant UI alternative.
22
+
23
+ ### 3. Tool (first fit)
24
+
25
+ | Need | Tool |
26
+ | --- | --- |
27
+ | Class/attribute toggles | CSS transition |
28
+ | Mount entry, no JS | `@starting-style` |
29
+ | Predetermined motion under load | CSS `@keyframes` / animation |
30
+ | JS control, CSS perf | WAAPI `element.animate()` |
31
+ | Springs, layout, exit, gestures | Motion (`motion.dev`) |
32
+
33
+ ### 4. Properties
34
+
35
+ - `transform` + `opacity`; `clip-path` when recipe says so; `height` only for accordions.
36
+ - No `scale(0)` entrances.
37
+ - Trigger-anchored surfaces: `transform-origin: var(--transform-origin)`.
38
+ - `translateY(100%)` = one element height — prefer over px.
39
+ - Motion: full `transform` string, not `x`/`y` shorthands under load.
40
+
41
+ ### 5. Easing, duration, springs
42
+
43
+ Follow `SKILL.md` tokens and duration table.
44
+
45
+ Springs when: drag momentum, alive feel, interruptible gesture, decorative pointer tracking.
46
+
47
+ ```js
48
+ { type: "spring", duration: 0.5, bounce: 0.2 }
49
+ { type: "spring", mass: 1, stiffness: 100, damping: 10 }
50
+ ```
51
+
52
+ Bounce 0.1–0.3; reserve visible bounce for dismiss/playful cases.
53
+
54
+ ### 6. Interruption & exit
55
+
56
+ Transitions (or springs) for rapid fire; symmetric enter/exit paths for dismiss surfaces; slow deliberate press, fast release (hold-to-confirm pattern).
57
+
58
+ ### 7. A11y
59
+
60
+ `prefers-reduced-motion` + `@media (hover: hover) and (pointer: fine)` for hover motion.
61
+
62
+ ## Never ship
63
+
64
+ | Avoid | Use |
65
+ | --- | --- |
66
+ | `transition: all` | Named properties |
67
+ | `scale(0)` enter | `scale(0.95)` + opacity |
68
+ | `ease-in` on UI | ease-out + strong bezier |
69
+ | Keyframes on toasts/toggles | Transitions |
70
+ | Motion x/y under load | `transform` string |
71
+ | Ungated hover | fine-pointer media query |
72
+
73
+ ## Recipes
74
+
75
+ Tokens: `--ease-out`, `--ease-in-out`, `--ease-drawer` from sequence above.
76
+
77
+ ### Press feedback
78
+
79
+ ```css
80
+ .tap-target {
81
+ transition: transform 160ms var(--ease-out);
82
+ }
83
+ .tap-target:active {
84
+ transform: scale(0.97);
85
+ }
86
+ ```
87
+
88
+ ### Popover / menu / select
89
+
90
+ ```css
91
+ .floating-panel {
92
+ transform-origin: var(--transform-origin);
93
+ transition:
94
+ opacity 200ms var(--ease-out),
95
+ transform 200ms var(--ease-out);
96
+ }
97
+ .floating-panel[data-starting-style],
98
+ .floating-panel[data-ending-style] {
99
+ opacity: 0;
100
+ transform: scale(0.95);
101
+ }
102
+ ```
103
+
104
+ ### Tooltip
105
+
106
+ ```css
107
+ .hint {
108
+ transform-origin: var(--transform-origin);
109
+ transition:
110
+ transform 125ms var(--ease-out),
111
+ opacity 125ms var(--ease-out);
112
+ }
113
+ .hint[data-starting-style],
114
+ .hint[data-ending-style] {
115
+ opacity: 0;
116
+ transform: scale(0.97);
117
+ }
118
+ .hint[data-instant] {
119
+ transition-duration: 0ms;
120
+ }
121
+ ```
122
+
123
+ ### Modal (centered origin)
124
+
125
+ ```css
126
+ .dialog {
127
+ transform-origin: center;
128
+ transition:
129
+ opacity 250ms var(--ease-out),
130
+ transform 250ms var(--ease-out);
131
+ }
132
+ .dialog[data-starting-style],
133
+ .dialog[data-ending-style] {
134
+ opacity: 0;
135
+ transform: scale(0.96);
136
+ }
137
+ .scrim {
138
+ transition: opacity 250ms var(--ease-out);
139
+ }
140
+ ```
141
+
142
+ ### Drawer
143
+
144
+ ```css
145
+ .sheet {
146
+ transform: translateY(0);
147
+ transition: transform 500ms var(--ease-drawer);
148
+ }
149
+ .sheet[data-closed] {
150
+ transform: translateY(100%);
151
+ }
152
+ ```
153
+
154
+ ### Toast
155
+
156
+ ```css
157
+ .notice {
158
+ opacity: 1;
159
+ transform: translateY(0);
160
+ transition:
161
+ opacity 400ms ease,
162
+ transform 400ms ease;
163
+
164
+ @starting-style {
165
+ opacity: 0;
166
+ transform: translateY(100%);
167
+ }
168
+ }
169
+ ```
170
+
171
+ Fallback mount flag if `@starting-style` unavailable:
172
+
173
+ ```jsx
174
+ useEffect(() => { setVisible(true); }, []);
175
+ // data-visible on root
176
+ ```
177
+
178
+ ### Accordion
179
+
180
+ ```css
181
+ .panel-body {
182
+ overflow: hidden;
183
+ transition:
184
+ height 200ms var(--ease-out),
185
+ opacity 200ms var(--ease-out);
186
+ }
187
+ ```
188
+
189
+ Measure height in JS — do not animate to `auto` blindly.
190
+
191
+ ### Stagger (occasional lists)
192
+
193
+ ```css
194
+ .row {
195
+ opacity: 0;
196
+ transform: translateY(8px);
197
+ animation: rise 300ms var(--ease-out) forwards;
198
+ }
199
+ .row:nth-child(2) { animation-delay: 50ms; }
200
+ .row:nth-child(3) { animation-delay: 100ms; }
201
+ .row:nth-child(4) { animation-delay: 150ms; }
202
+
203
+ @keyframes rise {
204
+ to { opacity: 1; transform: translateY(0); }
205
+ }
206
+ ```
207
+
208
+ 30–80ms between items; never block interaction.
209
+
210
+ ### Hold to confirm
211
+
212
+ ```css
213
+ .fill-mask {
214
+ clip-path: inset(0 100% 0 0);
215
+ transition: clip-path 200ms var(--ease-out);
216
+ }
217
+ .destructive:active .fill-mask {
218
+ clip-path: inset(0 0 0 0);
219
+ transition: clip-path 2s linear;
220
+ }
221
+ .destructive:active {
222
+ transform: scale(0.97);
223
+ }
224
+ ```
225
+
226
+ ### Tab color via clip
227
+
228
+ Duplicate tab row; clip active copy; animate `clip-path` not per-tab color tweens.
229
+
230
+ ```css
231
+ .tabs-active-layer {
232
+ clip-path: inset(0 60% 0 20%);
233
+ transition: clip-path 250ms var(--ease-in-out);
234
+ }
235
+ ```
236
+
237
+ ### Scroll reveal (marketing only)
238
+
239
+ ```css
240
+ .hero-block {
241
+ clip-path: inset(0 0 100% 0);
242
+ transition: clip-path 600ms var(--ease-in-out);
243
+ }
244
+ .hero-block[data-in-view] {
245
+ clip-path: inset(0 0 0 0);
246
+ }
247
+ ```
248
+
249
+ Once per element (`IntersectionObserver` or Motion `useInView` `{ once: true, margin: "-100px" }`).
250
+
251
+ ### Drag dismiss
252
+
253
+ ```js
254
+ const elapsed = Date.now() - pointerDownAt;
255
+ const speed = Math.abs(deltaY) / elapsed;
256
+ if (Math.abs(deltaY) >= DISMISS_PX || speed > 0.11) close();
257
+ ```
258
+
259
+ ```js
260
+ node.style.transform = `translateY(${deltaY}px)`;
261
+ ```
262
+
263
+ Pointer capture; ignore second touch while dragging; rubber-band past edges; spring settle `{ type: "spring", duration: 0.5, bounce: 0.2 }`.
264
+
265
+ ### Crossfade seam blur
266
+
267
+ ```css
268
+ .inner {
269
+ transition: filter 200ms ease, opacity 200ms ease;
270
+ }
271
+ .inner.is-swapping {
272
+ filter: blur(2px);
273
+ opacity: 0.7;
274
+ }
275
+ ```
276
+
277
+ Keep blur < 20px.
278
+
279
+ ### WAAPI clip reveal
280
+
281
+ ```js
282
+ node.animate(
283
+ [{ clipPath: 'inset(0 0 100% 0)' }, { clipPath: 'inset(0 0 0 0)' }],
284
+ {
285
+ duration: 1000,
286
+ fill: 'forwards',
287
+ easing: 'cubic-bezier(0.77, 0, 0.175, 1)',
288
+ }
289
+ );
290
+ ```
291
+
292
+ ## Output
293
+
294
+ Deliver code; then briefly: gate + purpose, tool/properties/curve/duration, what to feel-check (2–5× slow, DevTools frames, device for gestures).
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: ui-patterns
3
+ description: SUBORDINATE to the design stack (ui-design, ui-motion, native-ui, ui-mockup). Consult only after the stack has set design direction, and only for four gaps it does not cover - charts and data visualization, form UX patterns, web navigation patterns, and stack implementation guidelines (Vue, Nuxt, React, Next.js, React Native, shadcn/ui, HTML + Tailwind). Never sets visual direction, style, palette, typography or motion.
4
+ ---
5
+
6
+ # ui-patterns
7
+
8
+ Authority: this skill never sets visual direction. The design stack is the maximum source of truth for design; on any conflict between this file and the stack, the stack wins. Consult it only after the stack has defined direction, and only for the four areas below: charts, forms, web navigation and stack guidelines. Existing project design systems still win for tokens and components.
9
+
10
+ Not here on purpose (the design stack owns it): aesthetic direction, style and palette selection, typography and font pairing, motion and animation, responsive and native iOS/Android adaptation, performance and Core Web Vitals, accessibility audit and hardening, i18n, empty and error states, copywriting, polish.
11
+
12
+ ## 1. Charts and data visualization
13
+
14
+ Pick the chart from the data shape, not from looks.
15
+
16
+ | Data type | Best chart | Avoid when | A11y fallback |
17
+ |-----------|-----------|-----------|---------------|
18
+ | Trend over time | Line | Fewer than 4 points (use a stat card); more than 6 series; no time dimension | Dashed/dotted line per series; toggleable data table with timestamps |
19
+ | Compare categories | Bar (horizontal for long labels) | More than 15 categories (use a table); data has a time axis (use line) | Value labels always visible |
20
+ | Part-to-whole | Donut / pie | More than 5 slices; differences under 5%; precise values needed | Stacked bar + percentage table (mandatory) |
21
+ | Correlation / distribution | Scatter / bubble; box plot for groups | Categorical variables; fewer than 20 points; mobile-primary | Shape marker per group; data table (or min/Q1/median/Q3/max table) |
22
+ | Heatmap / intensity | Heat map | Fewer than 20 cells (use bar); exact values needed; no pattern fallback for colorblind users | Numeric overlay on hover/focus; grid table with row/column labels |
23
+ | Funnel / flow | Funnel; Sankey for branching | Non-sequential stages; values not monotonically decreasing; fewer than 3 stages | List of stage + count + drop-off %; keyboard traversal |
24
+ | Performance vs target | Bullet (grid for several KPIs); gauge for a single KPI | No target or benchmark exists | Value and % of target as visible text; live region for real-time updates |
25
+ | Hierarchical | Treemap | More than 3 levels; precise sibling comparison needed | Collapsible tree table as primary view |
26
+ | Real-time streaming | Streaming area / line | Updates less than once a minute (use periodic refresh) | Pause/resume control; current value as large text; freeze under reduced motion |
27
+ | Geographic | Choropleth / bubble map | Region sizes distort comparison (use bar); mobile-primary | Region labels; sortable table by region; keyboard-navigable regions |
28
+
29
+ Rules:
30
+
31
+ - Never encode meaning by color alone: add pattern, shape, line style or direct labels; no red/green-only pairs.
32
+ - Contrast: data marks vs background at least 3:1; data text labels at least 4.5:1.
33
+ - Always show a legend next to the chart; make it toggle series when there are several.
34
+ - Label axes with units and readable, auto-skipped ticks; label time granularity and allow switching when relevant.
35
+ - Direct-label values on small datasets; exact values via tooltip on hover, tap and keyboard focus.
36
+ - Interactive marks (points, bars, slices) are keyboard-focusable and have at least 44pt touch targets.
37
+ - Provide a data table alternative (sortable, with `aria-sort`) and a text summary or `aria-label` stating the key insight.
38
+ - Format numbers, dates and currency with the user's locale.
39
+ - More than 5 categories on a pie becomes a bar; 1000+ points get aggregated or sampled with drill-down.
40
+ - Drill-down keeps a visible back path (breadcrumb of the current level).
41
+ - One question per chart; split dense charts; keep gridlines low-contrast and skip decorative gradients and shadows.
42
+ - Charts reflow on small screens (horizontal bars, fewer ticks) and render readable data immediately; entrance animation respects reduced motion.
43
+ - Every chart has loading (skeleton, not an empty axis frame), empty (message + next step) and error (message + retry) states.
44
+ - Data-heavy products offer CSV export of the underlying data.
45
+
46
+ ## 2. Forms and feedback
47
+
48
+ Complements `ui-design harden` (validation, sanitization, double-submit, permission states); use both.
49
+
50
+ - Every input has a visible label; placeholder is never the only label. Group related fields with `fieldset`/`legend`.
51
+ - Mark required fields visibly and with `required` / `aria-required`.
52
+ - Use semantic input types (`email`, `tel`, `number`, `url`) and `autocomplete` tokens so keyboards and autofill work.
53
+ - Password fields have a show/hide toggle.
54
+ - Validate on blur, not on every keystroke; show the error directly below its field, stating cause and fix.
55
+ - Errors are announced: `aria-live` region or `role="alert"`, and the field links to its message via `aria-describedby`.
56
+ - After a failed submit, move focus to the first invalid field. With many errors, add an error summary at the top whose items anchor to each field.
57
+ - Submit shows loading, then success or error; the button stays disabled only while the request is in flight.
58
+ - Toasts never steal focus: announce them with `aria-live="polite"`.
59
+ - Confirm destructive actions and dismissing a modal/sheet with unsaved changes.
60
+ - Offer undo for destructive and bulk actions (for example an "Undo delete" toast) instead of, or in addition to, a confirm.
61
+ - Multi-step flows show a step indicator and allow going back without losing entered data.
62
+ - Read-only is not disabled: read-only stays focusable, selectable and readable; disabled is removed from interaction and carries the semantic attribute.
63
+
64
+ ## 3. Web navigation patterns
65
+
66
+ Native navigation (tab bars, app bars, gestures) belongs to `ui-design adapt` (native references) and `native-ui`.
67
+
68
+ - Highlight the current location in every nav (indicator plus weight or color) and set `aria-current="page"`.
69
+ - Back is predictable: restore scroll position, filters and form input; never silently reset the stack or jump home.
70
+ - Key screens and meaningful state (filters, tabs, pagination, selected item) live in the URL so they are deep-linkable and shareable.
71
+ - On client-side route change, move focus to the main content region (or its heading) and update the document title.
72
+ - Use breadcrumbs for hierarchies 3+ levels deep.
73
+ - Do not mix tabs, sidebar and bottom nav at the same hierarchy level; keep nav placement identical across pages.
74
+ - Modals are not for primary navigation flows; if it needs a URL or a back button, it is a page.
75
+ - Keep destructive actions (delete account, logout) visually and spatially separated from normal nav items.
76
+ - When a destination is unavailable, show it disabled with the reason instead of silently hiding it.
77
+ - Adaptive nav: persistent sidebar at 1024px and wider; top bar or bottom nav on small screens; core nav stays reachable from deep pages.
78
+
79
+ ## 4. Stack implementation guidelines
80
+
81
+ High-severity implementation rules only (correctness, not look). Detect the stack from the project's `package.json` dependencies and read the matching file; read every file that applies (for example Nuxt + Tailwind).
82
+
83
+ | Stack | Detect in `package.json` | Reference |
84
+ |-------|--------------------------|-----------|
85
+ | Vue | `vue` (without `nuxt`) | `references/stacks/vue.md` |
86
+ | Nuxt / Nuxt UI | `nuxt`, `@nuxt/ui` | `references/stacks/nuxt.md` (also `vue.md`) |
87
+ | React | `react` (without `next` / `react-native`) | `references/stacks/react.md` |
88
+ | Next.js | `next` | `references/stacks/nextjs.md` (also `react.md`) |
89
+ | React Native | `react-native`, `expo` | `references/stacks/react-native.md` |
90
+ | shadcn/ui | `components.json` at the root, `@radix-ui/*` + `class-variance-authority` | `references/stacks/shadcn.md` |
91
+ | HTML + Tailwind | `tailwindcss`, `@tailwindcss/*` | `references/stacks/html-tailwind.md` |
92
+
93
+ ## 5. Pre-delivery add-on
94
+
95
+ Run after ui-design's own polish/audit pass; these are the items it does not enforce.
96
+
97
+ - [ ] Clickable elements that are not `<button>`/`<a>` have `cursor: pointer` (and a proper role plus keyboard handler).
98
+ - [ ] Every chart has a visible legend, a non-color encoding, and a table or text-summary fallback.
99
+ - [ ] Forms: visible labels, error below field, errors announced, focus moves to the first invalid field on submit.
100
+ - [ ] Toasts use `aria-live="polite"` and never take focus.
101
+ - [ ] Client-side route changes move focus to main content and update the title; the active nav item is marked.
102
+ - [ ] Meaningful UI state (filters, tabs, pagination) survives reload and back via the URL.
103
+ - [ ] `z-index` values come from a defined scale (tokens), not ad-hoc numbers.
104
+
105
+ Derived from [ui-ux-pro-max](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) (MIT).
@@ -0,0 +1,40 @@
1
+ # HTML + Tailwind — high-severity implementation guidelines
2
+
3
+ Subordinate to the design stack (ui-design first). Implementation correctness only; never visual direction.
4
+
5
+ ## Animation
6
+
7
+ - **Limit bounce animations** — Do: Use animate-bounce sparingly on CTAs only · Don't: Multiple bounce animations on page
8
+
9
+ ## Z-Index
10
+
11
+ - **Fixed elements z-index** — Do: z-50 for nav z-40 for dropdowns · Don't: Relying on DOM order for stacking
12
+
13
+ ## Images
14
+
15
+ - **Lazy loading** — Do: loading='lazy' on images · Don't: All images eager load
16
+ - **Responsive images** — Do: srcset and sizes attributes · Don't: Same large image all devices
17
+ - **SVG explicit dimensions** — Do: <svg class='size-6' width='24' height='24'> · Don't: SVG without explicit dimensions
18
+
19
+ ## Forms
20
+
21
+ - **Focus states** — Do: focus:ring-2 focus:ring-blue-500 · Don't: Remove focus outline
22
+
23
+ ## Responsive
24
+
25
+ - **Breakpoint testing** — Do: 320 375 768 1024 1280 1536 · Don't: Only test on development device
26
+
27
+ ## Buttons
28
+
29
+ - **Touch targets** — Do: min-h-[44px] on mobile · Don't: Small buttons on mobile
30
+ - **Loading states** — Do: disabled + spinner icon · Don't: Clickable during loading
31
+ - **Icon buttons** — Do: aria-label on icon buttons · Don't: Icon button without label
32
+
33
+ ## Accessibility
34
+
35
+ - **Screen reader text** — Do: sr-only for hidden labels · Don't: Missing context for icons
36
+ - **Reduced motion** — Do: motion-reduce:animate-none · Don't: Ignore motion preferences
37
+
38
+ ## Performance
39
+
40
+ - **Configure content paths** — Do: Use 'content' array in config · Don't: Use deprecated 'purge' option (v2)
@@ -0,0 +1,52 @@
1
+ # Next.js — high-severity implementation guidelines
2
+
3
+ Subordinate to the design stack (ui-design first). Implementation correctness only; never visual direction.
4
+
5
+ ## Routing
6
+
7
+ - **Handle errors with error.tsx** — Do: error.tsx with reset function · Don't: try/catch in every component
8
+
9
+ ## Rendering
10
+
11
+ - **Use Server Components by default** — Do: Keep components server by default · Don't: Add 'use client' unnecessarily
12
+ - **Mark Client Components explicitly** — Do: Add 'use client' only when needed · Don't: Server Component with hooks/events
13
+ - **Push Client Components down** — Do: Client wrapper for interactive parts only · Don't: Mark page as Client Component
14
+
15
+ ## DataFetching
16
+
17
+ - **Fetch data in Server Components** — Do: async function Page() { const data = await fetch() } · Don't: useEffect for initial data
18
+ - **Configure caching explicitly (Next.js 15+)** — Do: Explicitly set cache: 'force-cache' for static data · Don't: Assume default is cached (it's not in Next.js 15)
19
+
20
+ ## Images
21
+
22
+ - **Use next/image for optimization** — Do: <Image> component for all images · Don't: <img> tags directly
23
+ - **Provide width and height** — Do: width and height props or fill · Don't: Missing dimensions
24
+ - **Configure remote image domains** — Do: remotePatterns in next.config.js · Don't: Allow all domains
25
+
26
+ ## API
27
+
28
+ - **Validate request body** — Do: Zod or similar for validation · Don't: Trust client input
29
+
30
+ ## Middleware
31
+
32
+ - **Keep middleware edge-compatible** — Do: Edge-compatible code only · Don't: Node.js APIs in middleware
33
+
34
+ ## Environment
35
+
36
+ - **Use NEXT_PUBLIC prefix** — Do: NEXT_PUBLIC_ for client vars · Don't: Server vars exposed to client
37
+ - **Validate env vars** — Do: Validate on startup · Don't: Undefined env at runtime
38
+ - **Use .env.local for secrets** — Do: .env.local gitignored · Don't: Secrets in .env committed
39
+
40
+ ## Performance
41
+
42
+ - **Avoid layout shifts** — Do: Skeleton loaders aspect ratios · Don't: Content popping in
43
+
44
+ ## Link
45
+
46
+ - **Use next/link for navigation** — Do: <Link href=""> for internal links · Don't: <a> for internal navigation
47
+
48
+ ## Security
49
+
50
+ - **Sanitize user input** — Do: Escape sanitize validate all input · Don't: Direct interpolation of user data
51
+ - **Use CSP headers** — Do: Configure CSP in next.config.js · Don't: No security headers
52
+ - **Validate Server Action input** — Do: Validate and authorize in Server Action · Don't: Trust Server Action input