tribunal-kit 6.0.1 → 8.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 (434) hide show
  1. package/.agent/ARCHITECTURE.md +9 -6
  2. package/.agent/agents/accessibility-reviewer.md +23 -16
  3. package/.agent/agents/ai-code-reviewer.md +25 -21
  4. package/.agent/agents/anti-pattern-reviewer.md +12 -7
  5. package/.agent/agents/api-architect.md +1 -0
  6. package/.agent/agents/backend-specialist.md +23 -22
  7. package/.agent/agents/cloud-engineer.md +1 -0
  8. package/.agent/agents/code-archaeologist.md +1 -0
  9. package/.agent/agents/complexity-reviewer.md +10 -7
  10. package/.agent/agents/database-architect.md +3 -2
  11. package/.agent/agents/db-latency-auditor.md +6 -2
  12. package/.agent/agents/debugger.md +3 -2
  13. package/.agent/agents/dependency-reviewer.md +1 -0
  14. package/.agent/agents/devops-engineer.md +9 -8
  15. package/.agent/agents/documentation-writer.md +6 -5
  16. package/.agent/agents/explorer-agent.md +1 -0
  17. package/.agent/agents/frontend-reviewer.md +21 -17
  18. package/.agent/agents/frontend-specialist.md +23 -20
  19. package/.agent/agents/game-developer.md +1 -0
  20. package/.agent/agents/interaction-reviewer.md +10 -5
  21. package/.agent/agents/logic-reviewer.md +3 -0
  22. package/.agent/agents/minimalist-reviewer.md +6 -0
  23. package/.agent/agents/mobile-developer.md +7 -6
  24. package/.agent/agents/mobile-reviewer.md +14 -13
  25. package/.agent/agents/orchestrator.md +3 -0
  26. package/.agent/agents/penetration-tester.md +1 -0
  27. package/.agent/agents/performance-optimizer.md +6 -5
  28. package/.agent/agents/performance-reviewer.md +6 -6
  29. package/.agent/agents/pipeline-reviewer.md +144 -0
  30. package/.agent/agents/precedence-reviewer.md +1 -0
  31. package/.agent/agents/product-manager.md +1 -0
  32. package/.agent/agents/product-owner.md +1 -0
  33. package/.agent/agents/product-reviewer.md +12 -7
  34. package/.agent/agents/project-planner.md +3 -0
  35. package/.agent/agents/qa-automation-engineer.md +50 -43
  36. package/.agent/agents/resilience-reviewer.md +1 -0
  37. package/.agent/agents/schema-reviewer.md +1 -0
  38. package/.agent/agents/security-auditor.md +24 -24
  39. package/.agent/agents/seo-specialist.md +33 -23
  40. package/.agent/agents/sql-reviewer.md +5 -4
  41. package/.agent/agents/supervisor-agent.md +12 -2
  42. package/.agent/agents/swarm-worker-contracts.md +13 -13
  43. package/.agent/agents/swarm-worker-registry.md +51 -51
  44. package/.agent/agents/system-architect.md +1 -0
  45. package/.agent/agents/test-coverage-reviewer.md +25 -22
  46. package/.agent/agents/test-engineer.md +12 -11
  47. package/.agent/agents/throughput-optimizer.md +45 -40
  48. package/.agent/agents/type-safety-reviewer.md +5 -4
  49. package/.agent/agents/ui-ux-auditor.md +6 -4
  50. package/.agent/agents/ui-visual-auditor.md +3 -0
  51. package/.agent/agents/ux-reviewer.md +11 -6
  52. package/.agent/agents/visual-reviewer.md +11 -6
  53. package/.agent/agents/vitals-reviewer.md +5 -4
  54. package/.agent/config/claude.json +18 -0
  55. package/.agent/config/plugin.json +102 -0
  56. package/.agent/config/slash-commands.json +103 -0
  57. package/.agent/config/specialist-registry.json +415 -0
  58. package/.agent/config/system-prompt.md +191 -0
  59. package/.agent/history/architecture-graph.yaml +302 -3
  60. package/.agent/history/graph-cache.json +515 -45
  61. package/.agent/history/memory/.memory.idx +1532 -1
  62. package/.agent/history/memory/MEMORY.md +102 -1
  63. package/.agent/history/memory.db +0 -0
  64. package/.agent/history/snapshots/bin__adapter-install.js.json +13 -0
  65. package/.agent/history/snapshots/bin__global-store.js.json +15 -0
  66. package/.agent/history/snapshots/bin__mcp-server.js.json +19 -0
  67. package/.agent/history/snapshots/bin__proxy-server.js.json +20 -0
  68. package/.agent/history/snapshots/bin__spawn-agent.js.json +12 -0
  69. package/.agent/history/snapshots/bin__tk-proxy.js.json +21 -0
  70. package/.agent/history/snapshots/bin__tribunal-kit.js.json +9 -7
  71. package/.agent/history/snapshots/bin__wrapper.js.json +14 -0
  72. package/.agent/history/snapshots/eslint.config.js.json +1 -2
  73. package/.agent/history/snapshots/scripts__benchmark.js.json +14 -0
  74. package/.agent/history/snapshots/scripts__changelog.js.json +1 -2
  75. package/.agent/history/snapshots/scripts__fix-vbc.js.json +11 -0
  76. package/.agent/history/snapshots/scripts__stress_benchmark.js.json +15 -0
  77. package/.agent/history/snapshots/scripts__sync-version.js.json +1 -2
  78. package/.agent/history/snapshots/scripts__validate-payload.js.json +1 -2
  79. package/.agent/history/snapshots/scripts__visual_audit.js.json +11 -0
  80. package/.agent/history/snapshots/test__integration__bridges.test.js.json +1 -2
  81. package/.agent/history/snapshots/test__integration__graceful_degradation.test.js.json +12 -0
  82. package/.agent/history/snapshots/test__integration__init.test.js.json +1 -2
  83. package/.agent/history/snapshots/test__integration__minimal_change_pipeline.test.js.json +13 -0
  84. package/.agent/history/snapshots/test__integration__parallel_tribunal.test.js.json +12 -0
  85. package/.agent/history/snapshots/test__integration__routing.test.js.json +1 -2
  86. package/.agent/history/snapshots/test__integration__swarm_dispatcher.test.js.json +1 -2
  87. package/.agent/history/snapshots/test__integration__sync_status.test.js.json +13 -0
  88. package/.agent/history/snapshots/test__integration__wave2.test.js.json +1 -2
  89. package/.agent/history/snapshots/test__integration__wrapper.test.js.json +13 -0
  90. package/.agent/history/snapshots/test__unit__align.test.js.json +10 -0
  91. package/.agent/history/snapshots/test__unit__args.test.js.json +3 -3
  92. package/.agent/history/snapshots/test__unit__audit_release.test.js.json +16 -0
  93. package/.agent/history/snapshots/test__unit__case_law_manager.test.js.json +1 -2
  94. package/.agent/history/snapshots/test__unit__cicd_validator.test.js.json +12 -0
  95. package/.agent/history/snapshots/test__unit__compile.test.js.json +10 -0
  96. package/.agent/history/snapshots/test__unit__context_broker.test.js.json +1 -2
  97. package/.agent/history/snapshots/test__unit__contract_engine.test.js.json +13 -0
  98. package/.agent/history/snapshots/test__unit__copyDir.test.js.json +3 -3
  99. package/.agent/history/snapshots/test__unit__graph_tools.test.js.json +1 -2
  100. package/.agent/history/snapshots/test__unit__guardrail_engine.test.js.json +10 -0
  101. package/.agent/history/snapshots/test__unit__impact_classifier.test.js.json +12 -0
  102. package/.agent/history/snapshots/test__unit__init.test.js.json +14 -0
  103. package/.agent/history/snapshots/test__unit__inner_loop_validator.test.js.json +1 -2
  104. package/.agent/history/snapshots/test__unit__integrity_manifest.test.js.json +13 -0
  105. package/.agent/history/snapshots/test__unit__learn.test.js.json +11 -0
  106. package/.agent/history/snapshots/test__unit__marathon.test.js.json +22 -0
  107. package/.agent/history/snapshots/test__unit__mcp_server.test.js.json +16 -0
  108. package/.agent/history/snapshots/test__unit__memory.test.js.json +13 -0
  109. package/.agent/history/snapshots/test__unit__minimal_change.test.js.json +10 -0
  110. package/.agent/history/snapshots/test__unit__native.test.js.json +10 -0
  111. package/.agent/history/snapshots/test__unit__optimize.test.js.json +13 -0
  112. package/.agent/history/snapshots/test__unit__path_resolution.test.js.json +14 -0
  113. package/.agent/history/snapshots/test__unit__production_readiness_evidence.test.js.json +21 -0
  114. package/.agent/history/snapshots/test__unit__selfInstall.test.js.json +3 -3
  115. package/.agent/history/snapshots/test__unit__semver.test.js.json +3 -3
  116. package/.agent/history/snapshots/test__unit__skill_evolution.test.js.json +11 -0
  117. package/.agent/history/snapshots/test__unit__stress.test.js.json +15 -0
  118. package/.agent/history/snapshots/test__unit__swarm_dispatcher.test.js.json +3 -3
  119. package/.agent/history/snapshots/test__unit__utils.test.js.json +10 -0
  120. package/.agent/mcp_config.json +1 -6
  121. package/.agent/routing_index.json +2033 -263
  122. package/.agent/rules/GEMINI.md +11 -9
  123. package/.agent/rules/GEMINI_PLANNER.md +19 -21
  124. package/.agent/scripts/_colors.js +52 -54
  125. package/.agent/scripts/_utils.js +52 -53
  126. package/.agent/scripts/ast_context_loader.js +137 -0
  127. package/.agent/scripts/auto_preview.js +39 -43
  128. package/.agent/scripts/bundle_analyzer.js +47 -60
  129. package/.agent/scripts/case_law_manager.js +200 -294
  130. package/.agent/scripts/checklist.js +73 -94
  131. package/.agent/scripts/cicd_validator.js +305 -0
  132. package/.agent/scripts/context_broker.js +317 -412
  133. package/.agent/scripts/contract_engine.js +402 -0
  134. package/.agent/scripts/dependency_analyzer.js +112 -124
  135. package/.agent/scripts/graph_builder.js +75 -103
  136. package/.agent/scripts/graph_visualizer.js +10 -12
  137. package/.agent/scripts/graph_zoom.js +38 -55
  138. package/.agent/scripts/guardrail_engine.js +195 -145
  139. package/.agent/scripts/impact_classifier.js +55 -30
  140. package/.agent/scripts/inner_loop_validator.js +108 -159
  141. package/.agent/scripts/integrity_manifest.js +59 -67
  142. package/.agent/scripts/lint_runner.js +65 -75
  143. package/.agent/scripts/marathon_harness.js +131 -208
  144. package/.agent/scripts/memory_engine.js +581 -0
  145. package/.agent/scripts/minify_context.js +29 -33
  146. package/.agent/scripts/minimal_change_engine.js +95 -87
  147. package/.agent/scripts/mutation_runner.js +46 -62
  148. package/.agent/scripts/payload_schemas.js +146 -0
  149. package/.agent/scripts/pipeline_engine.js +320 -209
  150. package/.agent/scripts/prompt_compiler.js +166 -93
  151. package/.agent/scripts/schema_validator.js +73 -121
  152. package/.agent/scripts/security_scan.js +88 -117
  153. package/.agent/scripts/session_manager.js +52 -69
  154. package/.agent/scripts/signal_detector.js +24 -22
  155. package/.agent/scripts/skill_evolution.js +184 -245
  156. package/.agent/scripts/skill_integrator.js +35 -48
  157. package/.agent/scripts/socratic_gate_policy.js +15 -12
  158. package/.agent/scripts/strengthen_skills.js +29 -33
  159. package/.agent/scripts/swarm_dispatcher.js +397 -200
  160. package/.agent/scripts/test_runner.js +54 -56
  161. package/.agent/scripts/token_budget_broker.js +126 -13
  162. package/.agent/scripts/trace_engine.js +126 -0
  163. package/.agent/scripts/verify_all.js +76 -93
  164. package/.agent/scripts/visual_audit.js +16 -21
  165. package/.agent/skill_topic_map.json +22 -3
  166. package/.agent/skills/12-principles-of-animation/SKILL.md +7 -0
  167. package/.agent/skills/60fps-animation/SKILL.md +7 -0
  168. package/.agent/skills/accessible-animation/SKILL.md +5 -1
  169. package/.agent/skills/adapt/SKILL.md +7 -1
  170. package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -0
  171. package/.agent/skills/agent-organizer/SKILL.md +1 -0
  172. package/.agent/skills/agentic-patterns/SKILL.md +33 -25
  173. package/.agent/skills/agentic-workflows-2026/SKILL.md +6 -2
  174. package/.agent/skills/ai-app-hardening/SKILL.md +9 -8
  175. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +7 -6
  176. package/.agent/skills/animation-on-scroll/SKILL.md +24 -15
  177. package/.agent/skills/animation-systems/SKILL.md +11 -10
  178. package/.agent/skills/antfu-conventions/SKILL.md +7 -2
  179. package/.agent/skills/api-patterns/SKILL.md +14 -10
  180. package/.agent/skills/api-security-auditor/SKILL.md +15 -14
  181. package/.agent/skills/app-builder/SKILL.md +1 -0
  182. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +2 -2
  183. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
  184. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +12 -12
  185. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +3 -3
  186. package/.agent/skills/apple-design/SKILL.md +8 -7
  187. package/.agent/skills/architecture/SKILL.md +3 -2
  188. package/.agent/skills/audit-and-fix/SKILL.md +8 -5
  189. package/.agent/skills/authentication-best-practices/SKILL.md +9 -8
  190. package/.agent/skills/backend-security-expert/SKILL.md +1 -0
  191. package/.agent/skills/baseline-ui/SKILL.md +8 -7
  192. package/.agent/skills/bash-linux/SKILL.md +1 -0
  193. package/.agent/skills/behavioral-modes/SKILL.md +1 -0
  194. package/.agent/skills/better-colors/SKILL.md +11 -7
  195. package/.agent/skills/better-typography/SKILL.md +30 -16
  196. package/.agent/skills/better-ui/SKILL.md +17 -10
  197. package/.agent/skills/bolder/SKILL.md +6 -0
  198. package/.agent/skills/brainstorming/SKILL.md +6 -4
  199. package/.agent/skills/browser-native-ai/SKILL.md +5 -4
  200. package/.agent/skills/build-primitive/SKILL.md +5 -0
  201. package/.agent/skills/building-native-ui/SKILL.md +1 -0
  202. package/.agent/skills/cicd-pro/SKILL.md +2 -1
  203. package/.agent/skills/clarify/SKILL.md +19 -14
  204. package/.agent/skills/clean-code/SKILL.md +16 -15
  205. package/.agent/skills/cloud-architect/SKILL.md +1 -0
  206. package/.agent/skills/cobejs/SKILL.md +7 -9
  207. package/.agent/skills/code-review-checklist/SKILL.md +1 -0
  208. package/.agent/skills/codebase-design/SKILL.md +7 -2
  209. package/.agent/skills/colorize/SKILL.md +8 -3
  210. package/.agent/skills/compact-landing/SKILL.md +8 -3
  211. package/.agent/skills/company-logos/SKILL.md +6 -0
  212. package/.agent/skills/config-validator/SKILL.md +10 -9
  213. package/.agent/skills/containerization-pro/SKILL.md +6 -5
  214. package/.agent/skills/context-engineering-pro/SKILL.md +5 -4
  215. package/.agent/skills/create-design-md/SKILL.md +13 -5
  216. package/.agent/skills/critique/SKILL.md +10 -8
  217. package/.agent/skills/csharp-developer/SKILL.md +1 -0
  218. package/.agent/skills/data-validation-schemas/SKILL.md +28 -23
  219. package/.agent/skills/database-design/SKILL.md +2 -1
  220. package/.agent/skills/delight/SKILL.md +6 -0
  221. package/.agent/skills/deployment-procedures/SKILL.md +2 -1
  222. package/.agent/skills/design-lab/SKILL.md +5 -0
  223. package/.agent/skills/devops-engineer/SKILL.md +3 -2
  224. package/.agent/skills/devops-incident-responder/SKILL.md +2 -1
  225. package/.agent/skills/diagnosing-bugs/SKILL.md +12 -2
  226. package/.agent/skills/distill/SKILL.md +7 -2
  227. package/.agent/skills/documentation-templates/SKILL.md +3 -2
  228. package/.agent/skills/domain-modeling/SKILL.md +12 -4
  229. package/.agent/skills/duckdb-analytical-sql/SKILL.md +7 -3
  230. package/.agent/skills/edge-ai-mobile/SKILL.md +5 -1
  231. package/.agent/skills/edge-computing/SKILL.md +9 -8
  232. package/.agent/skills/emil-design-eng/SKILL.md +43 -27
  233. package/.agent/skills/error-resilience/SKILL.md +34 -16
  234. package/.agent/skills/expo-router-v4/SKILL.md +2 -1
  235. package/.agent/skills/extract-design-system/SKILL.md +12 -11
  236. package/.agent/skills/fabel-protocol/SKILL.md +24 -17
  237. package/.agent/skills/fixing-accessibility/SKILL.md +23 -16
  238. package/.agent/skills/fixing-metadata/SKILL.md +24 -13
  239. package/.agent/skills/fixing-motion-performance/SKILL.md +7 -5
  240. package/.agent/skills/framer-motion-expert/SKILL.md +29 -15
  241. package/.agent/skills/frontend-design/SKILL.md +21 -13
  242. package/.agent/skills/frontend-security-expert/SKILL.md +1 -0
  243. package/.agent/skills/game-design-expert/SKILL.md +1 -0
  244. package/.agent/skills/game-engineering-expert/SKILL.md +1 -0
  245. package/.agent/skills/generative-ui-expert/SKILL.md +3 -2
  246. package/.agent/skills/geo-fundamentals/SKILL.md +2 -1
  247. package/.agent/skills/git-pro/SKILL.md +10 -9
  248. package/.agent/skills/github-operations/SKILL.md +2 -1
  249. package/.agent/skills/gpt-taste/SKILL.md +7 -0
  250. package/.agent/skills/gsap-core/SKILL.md +26 -22
  251. package/.agent/skills/gsap-frameworks/SKILL.md +6 -5
  252. package/.agent/skills/gsap-performance/SKILL.md +4 -3
  253. package/.agent/skills/gsap-plugins/SKILL.md +34 -33
  254. package/.agent/skills/gsap-react/SKILL.md +9 -8
  255. package/.agent/skills/gsap-scrolltrigger/SKILL.md +34 -33
  256. package/.agent/skills/gsap-timeline/SKILL.md +18 -15
  257. package/.agent/skills/gsap-utils/SKILL.md +25 -24
  258. package/.agent/skills/harden/SKILL.md +9 -3
  259. package/.agent/skills/harness-protocol/SKILL.md +1 -0
  260. package/.agent/skills/i18n-localization/SKILL.md +10 -9
  261. package/.agent/skills/impeccable/SKILL.md +5 -0
  262. package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -5
  263. package/.agent/skills/improve-ui/SKILL.md +12 -5
  264. package/.agent/skills/intelligent-routing/SKILL.md +7 -6
  265. package/.agent/skills/knowledge-graph/SKILL.md +1 -0
  266. package/.agent/skills/landing-page/SKILL.md +1 -0
  267. package/.agent/skills/lint-and-validate/SKILL.md +9 -4
  268. package/.agent/skills/llm-engineering/SKILL.md +55 -54
  269. package/.agent/skills/local-first/SKILL.md +20 -19
  270. package/.agent/skills/local-first-architecture/SKILL.md +6 -1
  271. package/.agent/skills/lottie-animation/SKILL.md +7 -3
  272. package/.agent/skills/marquee-loop/SKILL.md +1 -0
  273. package/.agent/skills/masked-reveal/SKILL.md +17 -4
  274. package/.agent/skills/mcp-builder/SKILL.md +13 -10
  275. package/.agent/skills/micro-interaction/SKILL.md +20 -5
  276. package/.agent/skills/mobile-design/SKILL.md +26 -15
  277. package/.agent/skills/monorepo-management/SKILL.md +3 -2
  278. package/.agent/skills/morphing-icons/SKILL.md +16 -6
  279. package/.agent/skills/motion-engineering/SKILL.md +19 -15
  280. package/.agent/skills/nextjs-react-expert/SKILL.md +26 -21
  281. package/.agent/skills/nodejs-best-practices/SKILL.md +89 -76
  282. package/.agent/skills/observability/SKILL.md +45 -44
  283. package/.agent/skills/opentelemetry-observability/SKILL.md +2 -1
  284. package/.agent/skills/page-transition-animation/SKILL.md +6 -3
  285. package/.agent/skills/parallel-agents/SKILL.md +7 -2
  286. package/.agent/skills/performance-profiling/SKILL.md +24 -13
  287. package/.agent/skills/plan-writing/SKILL.md +1 -0
  288. package/.agent/skills/platform-engineer/SKILL.md +3 -2
  289. package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -0
  290. package/.agent/skills/playwright-ai-e2e/SKILL.md +3 -2
  291. package/.agent/skills/playwright-best-practices/SKILL.md +29 -28
  292. package/.agent/skills/polish/SKILL.md +13 -12
  293. package/.agent/skills/powershell-windows/SKILL.md +1 -0
  294. package/.agent/skills/pricing-page/SKILL.md +8 -3
  295. package/.agent/skills/product-aware-heuristics/SKILL.md +122 -72
  296. package/.agent/skills/progressive-blur/SKILL.md +9 -4
  297. package/.agent/skills/project-idioms/SKILL.md +1 -0
  298. package/.agent/skills/property-based-testing/SKILL.md +10 -12
  299. package/.agent/skills/python-patterns/SKILL.md +1 -0
  300. package/.agent/skills/python-pro/SKILL.md +1 -0
  301. package/.agent/skills/quieter/SKILL.md +6 -0
  302. package/.agent/skills/react-doctor/SKILL.md +6 -0
  303. package/.agent/skills/react-specialist/SKILL.md +32 -28
  304. package/.agent/skills/readme-builder/SKILL.md +1 -0
  305. package/.agent/skills/realtime-patterns/SKILL.md +34 -33
  306. package/.agent/skills/red-team-tactics/SKILL.md +1 -0
  307. package/.agent/skills/redesign-skill/SKILL.md +6 -0
  308. package/.agent/skills/review-animations/SKILL.md +5 -2
  309. package/.agent/skills/review-animations/STANDARDS.md +37 -23
  310. package/.agent/skills/rust-pro/SKILL.md +1 -0
  311. package/.agent/skills/seo-fundamentals/SKILL.md +4 -3
  312. package/.agent/skills/server-management/SKILL.md +1 -0
  313. package/.agent/skills/shadcn-ui-expert/SKILL.md +28 -22
  314. package/.agent/skills/shape/SKILL.md +9 -2
  315. package/.agent/skills/skill-creator/SKILL.md +1 -0
  316. package/.agent/skills/soft-skill/SKILL.md +6 -0
  317. package/.agent/skills/sounds-on-the-web/SKILL.md +1 -0
  318. package/.agent/skills/sql-pro/SKILL.md +1 -0
  319. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -0
  320. package/.agent/skills/svg-animation/SKILL.md +16 -7
  321. package/.agent/skills/swiftui-expert/SKILL.md +1 -0
  322. package/.agent/skills/swiss-design/SKILL.md +5 -0
  323. package/.agent/skills/system-design-pro/SKILL.md +1 -0
  324. package/.agent/skills/systematic-debugging/SKILL.md +1 -0
  325. package/.agent/skills/tailwind-patterns/SKILL.md +25 -11
  326. package/.agent/skills/taste-skill/SKILL.md +6 -0
  327. package/.agent/skills/tdd-workflow/SKILL.md +5 -0
  328. package/.agent/skills/test-result-analyzer/SKILL.md +1 -0
  329. package/.agent/skills/testing-patterns/SKILL.md +123 -115
  330. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +5 -0
  331. package/.agent/skills/thinking-protocol/SKILL.md +3 -0
  332. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -8
  333. package/.agent/skills/transitions-dev/SKILL.md +19 -6
  334. package/.agent/skills/trend-researcher/SKILL.md +1 -0
  335. package/.agent/skills/typescript-advanced/SKILL.md +23 -18
  336. package/.agent/skills/typeset/SKILL.md +10 -1
  337. package/.agent/skills/ui-reasoning-engine/SKILL.md +67 -48
  338. package/.agent/skills/ui-skill-packs/SKILL.md +6 -1
  339. package/.agent/skills/ui-skills-root/SKILL.md +39 -38
  340. package/.agent/skills/ui-ux-pro-max/SKILL.md +34 -26
  341. package/.agent/skills/ui-ux-researcher/SKILL.md +1 -0
  342. package/.agent/skills/vector-search-pgvector/SKILL.md +3 -2
  343. package/.agent/skills/vue-expert/SKILL.md +22 -19
  344. package/.agent/skills/vulnerability-scanner/SKILL.md +22 -21
  345. package/.agent/skills/web-accessibility-auditor/SKILL.md +2 -1
  346. package/.agent/skills/web-design-guidelines/SKILL.md +16 -10
  347. package/.agent/skills/web-quality-audit/SKILL.md +5 -0
  348. package/.agent/skills/webapp-testing/SKILL.md +14 -13
  349. package/.agent/skills/webgpu-performance/SKILL.md +1 -0
  350. package/.agent/skills/whimsy-injector/SKILL.md +9 -5
  351. package/.agent/skills/workflow-optimizer/SKILL.md +1 -0
  352. package/.agent/skills/zero-trust-passkeys/SKILL.md +11 -6
  353. package/.agent/templates/DESIGN.md +119 -110
  354. package/.agent/templates/design-tokens.json +9 -6
  355. package/.agent/workflows/acf.md +1 -0
  356. package/.agent/workflows/api-tester.md +1 -0
  357. package/.agent/workflows/audit.md +1 -0
  358. package/.agent/workflows/brainstorm.md +1 -0
  359. package/.agent/workflows/changelog.md +1 -0
  360. package/.agent/workflows/contract.md +60 -0
  361. package/.agent/workflows/create.md +1 -0
  362. package/.agent/workflows/debug.md +1 -0
  363. package/.agent/workflows/deploy.md +1 -0
  364. package/.agent/workflows/enhance.md +1 -0
  365. package/.agent/workflows/fix-ci.md +89 -0
  366. package/.agent/workflows/fix.md +1 -0
  367. package/.agent/workflows/generate.md +1 -0
  368. package/.agent/workflows/marathon.md +1 -0
  369. package/.agent/workflows/migrate.md +1 -0
  370. package/.agent/workflows/minimal.md +9 -7
  371. package/.agent/workflows/orchestrate.md +1 -0
  372. package/.agent/workflows/performance-benchmarker.md +1 -0
  373. package/.agent/workflows/pipeline.md +26 -21
  374. package/.agent/workflows/plan.md +1 -0
  375. package/.agent/workflows/preview.md +1 -0
  376. package/.agent/workflows/refactor.md +3 -2
  377. package/.agent/workflows/review-ai.md +4 -3
  378. package/.agent/workflows/review.md +1 -0
  379. package/.agent/workflows/session.md +1 -0
  380. package/.agent/workflows/status.md +1 -0
  381. package/.agent/workflows/strengthen-skills.md +1 -0
  382. package/.agent/workflows/super-prompt.md +1 -0
  383. package/.agent/workflows/swarm.md +15 -3
  384. package/.agent/workflows/test.md +8 -7
  385. package/.agent/workflows/tribunal-backend.md +3 -2
  386. package/.agent/workflows/tribunal-cicd.md +104 -0
  387. package/.agent/workflows/tribunal-database.md +1 -0
  388. package/.agent/workflows/tribunal-frontend.md +8 -6
  389. package/.agent/workflows/tribunal-full.md +2 -1
  390. package/.agent/workflows/tribunal-mobile.md +6 -5
  391. package/.agent/workflows/tribunal-performance.md +1 -0
  392. package/.agent/workflows/tribunal-speed.md +1 -0
  393. package/.agent/workflows/tribunal-ui.md +29 -21
  394. package/.agent/workflows/ui-ux-pro-max.md +19 -15
  395. package/.claude/CLAUDE.md +442 -0
  396. package/CONTRIBUTING.md +3 -3
  397. package/README.md +105 -45
  398. package/SECURITY.md +11 -11
  399. package/bin/adapter-install.js +240 -0
  400. package/bin/global-store.js +48 -0
  401. package/bin/mcp-server.js +781 -332
  402. package/bin/proxy-server.js +113 -0
  403. package/bin/spawn-agent.js +39 -0
  404. package/bin/tk-proxy.js +34 -0
  405. package/bin/tribunal-kit.js +29 -30
  406. package/bin/wrapper.js +40 -46
  407. package/dist/cli.js +6 -0
  408. package/dist/commands/case.js +2 -0
  409. package/dist/commands/contract.js +440 -0
  410. package/dist/commands/init.js +8 -51
  411. package/dist/commands/status.js +61 -30
  412. package/dist/commands/validate.js +22 -31
  413. package/dist/index.d.ts +8 -1
  414. package/dist/tui/banner.js +77 -0
  415. package/dist/tui/index.js +21 -0
  416. package/dist/tui/reviewer-grid.js +90 -0
  417. package/dist/tui/shimmer.js +91 -0
  418. package/dist/tui/theme.js +130 -0
  419. package/dist/tui/tree.js +93 -0
  420. package/dist/tui/wizard.js +148 -0
  421. package/dist/utils/helpers.js +5 -41
  422. package/package.json +33 -15
  423. package/scripts/benchmark.js +62 -86
  424. package/scripts/build-graph.js +71 -0
  425. package/scripts/changelog.js +67 -73
  426. package/scripts/fix-vbc.js +13 -15
  427. package/scripts/fix-vbc.ps1 +2 -118
  428. package/scripts/stress_benchmark.js +358 -0
  429. package/scripts/sync-version.js +71 -41
  430. package/scripts/validate-payload.js +23 -30
  431. package/scripts/visual_audit.js +23 -13
  432. package/.agent/history/snapshots/migrate_refs.js.json +0 -11
  433. package/.agent/scripts/compile_router.py +0 -112
  434. package/.agent/scripts/migrate_skills_frontmatter.py +0 -64
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing local-first storage or CRDT synchronization, you MUST inspect:
23
+
23
24
  1. Conflict Resolution Strategy (Section 15) → Define explicit conflict resolution (LWW timestamps or Yjs CRDTs) before writing local sync logic
24
25
  2. Persistent Storage (Section 16) → Use IndexedDB (via Dexie/idb) or SQLite WASM for local persistence; ban localStorage for >5MB data
25
26
  3. Incremental Watermark Sync (Section 17) → Perform delta syncs using timestamps/watermarks rather than re-fetching full datasets
@@ -55,20 +56,20 @@ Do not use React Query / SWR to build local-first. They are HTTP caching mechani
55
56
  // ❌ CLOUD-FIRST (React Query / Fetch)
56
57
  // Fails when offline. Subject to UI latency.
57
58
  const { data, isLoading } = useQuery({
58
- queryKey: ["todos"],
59
- queryFn: () => fetch("/api/todos").then((res) => res.json()),
59
+ queryKey: ['todos'],
60
+ queryFn: () => fetch('/api/todos').then(res => res.json()),
60
61
  });
61
62
 
62
63
  // ✅ LOCAL-FIRST (e.g. PowerSync / ElectricSQL / WatermelonDB)
63
64
  // Resolves instantly. Data lives locally. Syncs silently in background.
64
- import { useQuery } from "@powersync/react";
65
+ import { useQuery } from '@powersync/react';
65
66
 
66
- const { data, isLoading } = useQuery("SELECT * FROM todos ORDER BY created_at DESC");
67
+ const { data, isLoading } = useQuery('SELECT * FROM todos ORDER BY created_at DESC');
67
68
 
68
69
  // Writes are also local First
69
70
  const addTodo = async (text: string) => {
70
71
  // Written to the local SQLite WASM database instantly.
71
- await localDb.execute("INSERT INTO todos (id, text) VALUES (uuid(), ?)", [text]);
72
+ await localDb.execute('INSERT INTO todos (id, text) VALUES (uuid(), ?)', [text]);
72
73
  // Background worker syncs to Postgres later.
73
74
  };
74
75
  ```
@@ -83,22 +84,22 @@ When two users edit the exact same document offline and then reconnect, how is i
83
84
 
84
85
  ```typescript
85
86
  // Yjs - The leading CRDT library for collaborative text/state
86
- import * as Y from "yjs";
87
- import { WebsocketProvider } from "y-websocket";
87
+ import * as Y from 'yjs';
88
+ import { WebsocketProvider } from 'y-websocket';
88
89
 
89
90
  const ydoc = new Y.Doc();
90
- const provider = new WebsocketProvider("wss://sync.example.com", "room-1", ydoc);
91
+ const provider = new WebsocketProvider('wss://sync.example.com', 'room-1', ydoc);
91
92
 
92
93
  // Shared state array
93
- const yarray = ydoc.getArray("todos");
94
+ const yarray = ydoc.getArray('todos');
94
95
 
95
96
  // Observe changes (Fires locally and when peers sync)
96
- yarray.observe((event) => {
97
- console.log("State updated natively without conflict:", yarray.toArray());
97
+ yarray.observe(event => {
98
+ console.log('State updated natively without conflict:', yarray.toArray());
98
99
  });
99
100
 
100
101
  // Insert data (Instantly merges cleanly with remote peers)
101
- yarray.insert(0, ["Buy milk"]);
102
+ yarray.insert(0, ['Buy milk']);
102
103
  ```
103
104
 
104
105
  ---
@@ -117,7 +118,7 @@ Storing megabytes of relational data in `localStorage` will crash the browser.
117
118
 
118
119
  ```typescript
119
120
  // Clean IndexedDB Wrapper Example (Dexie)
120
- import Dexie, { type EntityTable } from "dexie";
121
+ import Dexie, { type EntityTable } from 'dexie';
121
122
 
122
123
  interface Friend {
123
124
  id: number;
@@ -125,21 +126,21 @@ interface Friend {
125
126
  age: number;
126
127
  }
127
128
 
128
- const db = new Dexie("FriendsDatabase") as Dexie & {
129
- friends: EntityTable<Friend, "id">;
129
+ const db = new Dexie('FriendsDatabase') as Dexie & {
130
+ friends: EntityTable<Friend, 'id'>;
130
131
  };
131
132
 
132
133
  // Schema configuration
133
134
  db.version(1).stores({
134
- friends: "++id, name, age", // Primary key and indexed props
135
+ friends: '++id, name, age', // Primary key and indexed props
135
136
  });
136
137
 
137
138
  // Write to DB instantly
138
- await db.friends.add({ name: "Alice", age: 25 });
139
+ await db.friends.add({ name: 'Alice', age: 25 });
139
140
 
140
141
  // Live query natively drives React state without network calls
141
- import { useLiveQuery } from "dexie-react-hooks";
142
- const friends = useLiveQuery(() => db.friends.where("age").above(21).toArray());
142
+ import { useLiveQuery } from 'dexie-react-hooks';
143
+ const friends = useLiveQuery(() => db.friends.where('age').above(21).toArray());
143
144
  ```
144
145
 
145
146
  ---
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing local-first architecture or offline sync engines, you MUST inspect:
23
+
23
24
  1. Zero Network Latency Rule (Section 24) → Execute reads and writes against local storage (IndexedDB/SQLite) first before queueing outbound sync
24
25
  2. Outbound Mutation Queue (Section 28) → Persist mutation logs in IndexedDB with client-generated UUID `idempotencyKey` fields
25
26
  3. Conflict Resolution Strategy (Section 33) → Use Last-Write-Wins (LWW) for simple fields or CRDTs (Yjs/Automerge) for collaborative state
@@ -31,19 +32,23 @@ Architect software that reads and writes to local storage (SQLite/IndexedDB) fir
31
32
  ## 4 Pillars of Local-First Architecture
32
33
 
33
34
  ### 1. Read & Write Local First
35
+
34
36
  - **Zero Network Latency**: UI queries (`select * from tasks`) run synchronously or near-instantaneously against in-memory or IndexedDB caches.
35
- - Mutations update the local cache immediately (*optimistic write*), appending a mutation log item to an outbound sync queue.
37
+ - Mutations update the local cache immediately (_optimistic write_), appending a mutation log item to an outbound sync queue.
36
38
 
37
39
  ### 2. Outbound Mutation Queue & Idempotency
40
+
38
41
  - Store mutation logs in a persistent local queue (`IndexedDB` / `SQLite`).
39
42
  - Assign every client mutation a unique UUID (`idempotencyKey`).
40
43
  - When network connection is restored, flush queue items sequentially with automatic retry on 5xx failures.
41
44
 
42
45
  ### 3. Conflict Resolution (CRDTs & LWW)
46
+
43
47
  - **Last-Write-Wins (LWW)**: Timestamp + Client ID ordering for simple fields.
44
48
  - **CRDTs (Yjs / Automerge)**: Conflict-free Replicated Data Types for collaborative text editing and array state.
45
49
 
46
50
  ### 4. Background Delta Streaming
51
+
47
52
  - Receive database updates via WebSockets or Server-Sent Events (SSE) as thin binary deltas (`sync_version > client_version`), applying changes to local storage without re-fetching full datasets.
48
53
 
49
54
  ---
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before integrating Lottie animations, you MUST inspect:
23
+
23
24
  1. Asset Format (.lottie vs .json) → Prefer compressed `.lottie` (dotLottie) assets for 80% smaller bundle file sizes
24
25
  2. Playback Triggers (Section 34) → Bind playback to user hover/click or viewport intersection instead of aggressive continuous looping
25
26
  3. Package Manifest (`package.json`) → Verify `@dotlottie/react-player` or `lottie-web` library dependencies
@@ -31,10 +32,11 @@ Integrate lightweight, vector-based Lottie animations with interactive trigger c
31
32
  ## 3 Lottie Integration Recipes
32
33
 
33
34
  ### 1. React dotLottie Interactive Player (`@dotlottie/react-player`)
35
+
34
36
  ```tsx
35
- import React, { useRef } from "react";
36
- import { DotLottiePlayer, Controls } from "@dotlottie/react-player";
37
- import "@dotlottie/react-player/dist/index.css";
37
+ import React, { useRef } from 'react';
38
+ import { DotLottiePlayer, Controls } from '@dotlottie/react-player';
39
+ import '@dotlottie/react-player/dist/index.css';
38
40
 
39
41
  export function InteractiveLottieIcon() {
40
42
  const lottieRef = useRef<any>(null);
@@ -57,9 +59,11 @@ export function InteractiveLottieIcon() {
57
59
  ```
58
60
 
59
61
  ### 2. Runtime Color Injection / Theming
62
+
60
63
  Pass custom CSS variable overrides to dotLottie players to dynamically recolor vector paths at runtime without re-downloading JSON assets.
61
64
 
62
65
  ### 3. Performance & Lazy Loading
66
+
63
67
  - Use `.lottie` (dotLottie format) instead of uncompressed `.json` Lottie files to achieve **80% smaller bundle file sizes**.
64
68
  - Lazy-load offscreen Lottie animations using `IntersectionObserver`.
65
69
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing marquee loop tracks, you MUST inspect:
23
+
23
24
  1. DOM Structure (Section 24) → Duplicate item tracks MUST be rendered with `aria-hidden="true"` to prevent screen reader redundancy
24
25
  2. Hover Accessibility (Section 50) → Enforce `animation-play-state: paused` on `:hover` and `:focus-within`
25
26
  3. Reduced Motion Fallback (Section 61) → Collapse marquee into static wrapped flex grid when `prefers-reduced-motion: reduce` is active
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing clip-path or SVG mask reveals, you MUST inspect:
23
+
23
24
  1. Target DOM elements → Enforce `overflow: hidden` on text line wrappers to prevent unmasked overflow artifacts
24
25
  2. `clip-path: inset()` syntax (Section 26) → Prefer CSS `clip-path` over heavy SVG masks for linear curtain wipes
25
26
  3. Transition Easing → Use custom ease-out curves (`cubic-bezier(0.16, 1, 0.3, 1)`) for smooth deceleration
@@ -31,10 +32,15 @@ Create editorial, high-end visual reveals using CSS `clip-path` and SVG masks.
31
32
  ## 3 Masked Reveal Patterns
32
33
 
33
34
  ### 1. CSS `clip-path` Curtain Reveal
35
+
34
36
  ```css
35
37
  @keyframes curtain-reveal {
36
- from { clip-path: inset(0 100% 0 0); }
37
- to { clip-path: inset(0 0 0 0); }
38
+ from {
39
+ clip-path: inset(0 100% 0 0);
40
+ }
41
+ to {
42
+ clip-path: inset(0 0 0 0);
43
+ }
38
44
  }
39
45
 
40
46
  .reveal-image-curtain {
@@ -43,10 +49,15 @@ Create editorial, high-end visual reveals using CSS `clip-path` and SVG masks.
43
49
  ```
44
50
 
45
51
  ### 2. Radial Spotlight Clip Reveal
52
+
46
53
  ```css
47
54
  @keyframes circle-expand {
48
- from { clip-path: circle(0% at 50% 50%); }
49
- to { clip-path: circle(150% at 50% 50%); }
55
+ from {
56
+ clip-path: circle(0% at 50% 50%);
57
+ }
58
+ to {
59
+ clip-path: circle(150% at 50% 50%);
60
+ }
50
61
  }
51
62
 
52
63
  .spotlight-reveal {
@@ -55,7 +66,9 @@ Create editorial, high-end visual reveals using CSS `clip-path` and SVG masks.
55
66
  ```
56
67
 
57
68
  ### 3. Masked Text Line Wipe (Editorial Typography)
69
+
58
70
  Wrap text lines inside overflow-hidden wrappers and animate inner text lines upward:
71
+
59
72
  ```css
60
73
  .text-line-wrapper {
61
74
  overflow: hidden;
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before architecting MCP tools or resource handlers, you MUST inspect:
23
+
23
24
  1. Strict Zod Input Validation (Section 45) → Enforce explicit JSON Schema parameter validation (Zod) for every tool exposed to the LLM
24
25
  2. Resource vs Tool Distinction (Section 68) → Use Resources for static read-only data (`file:///`, `db://schema`), Tools strictly for dynamic parameterized actions
25
26
  3. Output Payload Truncation Safeguard (Section 94) → Forcibly truncate large tool response outputs before returning payload to protect LLM context windows
@@ -47,27 +48,29 @@ A robust MCP server exposes exactly 3 primary concepts:
47
48
 
48
49
  ```typescript
49
50
  // Standardize exposing a Tool securely via an MCP Server Wrapper
50
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
51
- import { z } from "zod";
51
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
52
+ import { z } from 'zod';
52
53
 
53
54
  const server = new McpServer({
54
- name: "internal-database-auditor",
55
- version: "1.0.0",
55
+ name: 'internal-database-auditor',
56
+ version: '1.0.0',
56
57
  });
57
58
 
58
59
  // Defining a rigorous tool parameter boundary
59
60
  server.tool(
60
- "query_production_database",
61
- "Executes a read-only sanitized query against the production analytical replica.",
61
+ 'query_production_database',
62
+ 'Executes a read-only sanitized query against the production analytical replica.',
62
63
  {
63
- table: z.enum(["users", "transactions", "audit_logs"]).describe("The specific table to analyze"),
64
- limit: z.number().max(100).default(10).describe("Maximum row returns to prevent context bloat"),
64
+ table: z
65
+ .enum(['users', 'transactions', 'audit_logs'])
66
+ .describe('The specific table to analyze'),
67
+ limit: z.number().max(100).default(10).describe('Maximum row returns to prevent context bloat'),
65
68
  },
66
69
  async ({ table, limit }) => {
67
70
  // Execution logic
68
71
  const data = await secureDatabaseClient.query(`SELECT * FROM ${table} LIMIT ${limit}`);
69
72
  return {
70
- content: [{ type: "text", text: JSON.stringify(data) }],
73
+ content: [{ type: 'text', text: JSON.stringify(data) }],
71
74
  };
72
75
  },
73
76
  );
@@ -91,7 +94,7 @@ If your description is vague, the LLM will hallucinate executions unpredictably.
91
94
 
92
95
  ```typescript
93
96
  // ❌ VAGUE (The LLM will guess when to use this, often incorrectly)
94
- description: "Changes the system status.";
97
+ description: 'Changes the system status.';
95
98
 
96
99
  // ✅ DETERMINISTIC (The LLM knows the exact boundaries and consequences)
97
100
  description: "Transitions the payment processing gateway between 'ACTIVE' and 'MAINTENANCE' modes. Use this ONLY after verifying traffic logs to halt impending queue flooding. Requires Admin clearance.";
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before engineering component micro-interactions, you MUST inspect:
23
+
23
24
  1. Duration Caps → Keep interactive component feedback (press/hover/toggle) under 180ms
24
25
  2. Popover Origin Rules (Section 60) → Set `transform-origin` dynamically to match trigger button position
25
26
  3. SVG Path Draw-on (Section 48) → Use `stroke-dashoffset` transitions for checkboxes and toggle icons
@@ -31,9 +32,12 @@ Craft responsive, physically grounded micro-interactions for everyday UI control
31
32
  ## 4 Micro-Interaction Recipes
32
33
 
33
34
  ### 1. Tactile Button Press
35
+
34
36
  ```css
35
37
  .btn-tactile {
36
- transition: transform 120ms cubic-bezier(0.2, 0, 0, 1), box-shadow 120ms ease;
38
+ transition:
39
+ transform 120ms cubic-bezier(0.2, 0, 0, 1),
40
+ box-shadow 120ms ease;
37
41
  }
38
42
  .btn-tactile:hover {
39
43
  transform: translateY(-1px);
@@ -44,30 +48,35 @@ Craft responsive, physically grounded micro-interactions for everyday UI control
44
48
  ```
45
49
 
46
50
  ### 2. Animated Toggle Switch
51
+
47
52
  ```css
48
53
  .toggle-thumb {
49
54
  transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1); /* Subtle spring overshoot */
50
55
  }
51
- [data-state="checked"] .toggle-thumb {
56
+ [data-state='checked'] .toggle-thumb {
52
57
  transform: translateX(20px);
53
58
  }
54
59
  ```
55
60
 
56
61
  ### 3. Animated Checkbox Morph
62
+
57
63
  Use an SVG path draw-on keyframe when checked:
64
+
58
65
  ```css
59
66
  .checkbox-svg-path {
60
67
  stroke-dasharray: 24;
61
68
  stroke-dashoffset: 24;
62
69
  transition: stroke-dashoffset 180ms ease-out;
63
70
  }
64
- [data-state="checked"] .checkbox-svg-path {
71
+ [data-state='checked'] .checkbox-svg-path {
65
72
  stroke-dashoffset: 0;
66
73
  }
67
74
  ```
68
75
 
69
76
  ### 4. Origin-Aware Popover / Dropdown
77
+
70
78
  Popovers scale out from their trigger source using CSS variables:
79
+
71
80
  ```css
72
81
  .popover-content {
73
82
  transform-origin: var(--radix-popover-content-transform-origin, center top);
@@ -75,8 +84,14 @@ Popovers scale out from their trigger source using CSS variables:
75
84
  }
76
85
 
77
86
  @keyframes popover-enter {
78
- from { opacity: 0; transform: scale(0.95); }
79
- to { opacity: 1; transform: scale(1); }
87
+ from {
88
+ opacity: 0;
89
+ transform: scale(0.95);
90
+ }
91
+ to {
92
+ opacity: 1;
93
+ transform: scale(1);
94
+ }
80
95
  }
81
96
  ```
82
97
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before designing mobile interfaces or writing React Native code, you MUST inspect:
23
+
23
24
  1. Reanimated 3 & Worklet Rules (Section 47) → Execute animations on the UI thread using Reanimated 3 worklets; ban legacy `Animated.View`
24
25
  2. List Optimization (Section 32) → Use `@shopify/flash-list` with required `estimatedItemSize` instead of `ScrollView` or `FlatList`
25
26
  3. Safe Area Insets (Section 100) → Always wrap content with `useSafeAreaInsets()` to accommodate notch, dynamic island, and home indicators
@@ -47,13 +48,13 @@ Before designing mobile interfaces or writing React Native code, you MUST inspec
47
48
  ### FlashList (Required for Lists)
48
49
 
49
50
  ```tsx
50
- import { FlashList } from "@shopify/flash-list";
51
+ import { FlashList } from '@shopify/flash-list';
51
52
  <FlashList
52
53
  data={items}
53
54
  renderItem={({ item }) => <ItemCard item={item} />}
54
55
  estimatedItemSize={100} // REQUIRED — measure actual item height first
55
- keyExtractor={(item) => item.id}
56
- getItemType={(item) => item.type} // multi-type optimization
56
+ keyExtractor={item => item.id}
57
+ getItemType={item => item.type} // multi-type optimization
57
58
  />;
58
59
  // ❌ NEVER: <ScrollView>{items.map(...)}</ScrollView> for lists
59
60
  // ❌ NEVER: <FlatList> for perf-critical lists — FlashList is 5-10x faster
@@ -62,7 +63,13 @@ import { FlashList } from "@shopify/flash-list";
62
63
  ### Reanimated 3 — Worklet Animations (Required for 120Hz)
63
64
 
64
65
  ```tsx
65
- import { useSharedValue, useAnimatedStyle, withSpring, withTiming, runOnJS } from "react-native-reanimated";
66
+ import {
67
+ useSharedValue,
68
+ useAnimatedStyle,
69
+ withSpring,
70
+ withTiming,
71
+ runOnJS,
72
+ } from 'react-native-reanimated';
66
73
 
67
74
  // Shared values run on the UI thread — never on JS thread
68
75
  const scale = useSharedValue(1);
@@ -99,7 +106,7 @@ scale.value = withSpring(1, {}, onComplete);
99
106
  ## Haptics
100
107
 
101
108
  ```tsx
102
- import * as Haptics from "expo-haptics";
109
+ import * as Haptics from 'expo-haptics';
103
110
  // light → switch toggle, tap feedback
104
111
  // medium → selection change, confirm
105
112
  // heavy → destructive action, strong confirm
@@ -115,18 +122,22 @@ Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success); // save com
115
122
  ## Safe Areas & Platform Layout
116
123
 
117
124
  ```tsx
118
- import { useSafeAreaInsets } from "react-native-safe-area-context";
119
- import { Platform, StatusBar } from "react-native";
125
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
126
+ import { Platform, StatusBar } from 'react-native';
120
127
 
121
128
  function Screen() {
122
129
  const insets = useSafeAreaInsets();
123
- return <View style={{ paddingTop: insets.top, paddingBottom: insets.bottom }}>{/* Content safe from Dynamic Island, home indicator, status bar */}</View>;
130
+ return (
131
+ <View style={{ paddingTop: insets.top, paddingBottom: insets.bottom }}>
132
+ {/* Content safe from Dynamic Island, home indicator, status bar */}
133
+ </View>
134
+ );
124
135
  }
125
136
  // Android status bar
126
- const STATUS_BAR_HEIGHT = Platform.OS === "android" ? (StatusBar.currentHeight ?? 24) : 0;
137
+ const STATUS_BAR_HEIGHT = Platform.OS === 'android' ? (StatusBar.currentHeight ?? 24) : 0;
127
138
 
128
139
  // Foldable/tablet — dual pane
129
- import { useWindowDimensions } from "react-native";
140
+ import { useWindowDimensions } from 'react-native';
130
141
  function AdaptiveLayout() {
131
142
  const { width } = useWindowDimensions();
132
143
  const isTablet = width >= 600;
@@ -160,17 +171,17 @@ function AdaptiveLayout() {
160
171
  // app/(modal)/settings.tsx — modal group
161
172
 
162
173
  // Stack navigation with gesture
163
- import { Stack } from "expo-router";
164
- <Stack screenOptions={{ headerShown: false, animation: "slide_from_right" }}>
174
+ import { Stack } from 'expo-router';
175
+ <Stack screenOptions={{ headerShown: false, animation: 'slide_from_right' }}>
165
176
  <Stack.Screen name="(tabs)" />
166
- <Stack.Screen name="[id]" options={{ presentation: "modal" }} />
177
+ <Stack.Screen name="[id]" options={{ presentation: 'modal' }} />
167
178
  </Stack>;
168
179
 
169
180
  // Deep linking (Expo Router handles automatically via app.json scheme)
170
181
  // ❌ TRAP: Don't use react-navigation Link for deep links in Expo Router — use expo-router Link
171
- import { Link, useRouter } from "expo-router";
182
+ import { Link, useRouter } from 'expo-router';
172
183
  const router = useRouter();
173
- router.push("/user/42");
184
+ router.push('/user/42');
174
185
  ```
175
186
 
176
187
  ---
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before organizing workspace packages or writing Turborepo/pnpm configs, you MUST inspect:
23
+
23
24
  1. Internal Package Protocol (Section 128) → Reference internal monorepo dependencies via `"workspace:*"` protocol and mark them `"private": true`
24
25
  2. Topological Task Dependencies (Section 146) → Define topological ordering (`"^build"`) in `turbo.json` to ensure dependencies build before consumers
25
26
  3. Domain-Focused Package Partitioning (Section 261) → Divide shared code into domain packages (`packages/ui`, `packages/db`, `packages/utils`); ban single monolithic `packages/shared` dumpsters
@@ -93,8 +94,8 @@ my-monorepo/
93
94
  ```yaml
94
95
  # pnpm-workspace.yaml
95
96
  packages:
96
- - "apps/*"
97
- - "packages/*"
97
+ - 'apps/*'
98
+ - 'packages/*'
98
99
  ```
99
100
 
100
101
  ```json
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing morphing icon components, you MUST inspect:
23
+
23
24
  1. Target states (e.g. Hamburger Menu <-> Close X, Play <-> Pause) → Verify matching SVG path point count and coordinate bounds
24
25
  2. Accessibility (Section 65) → Ensure `aria-label` updates dynamically alongside state changes
25
26
  3. Interpolation Curves → Use snappy ease-out curves (`cubic-bezier(0.16, 1, 0.3, 1)`) with duration $\le 200\text{ms}$
@@ -31,32 +32,41 @@ Architect crisp, interactive SVG icon components that morph seamlessly between o
31
32
  ## The Hamburger Menu <-> Close X Morph Recipe
32
33
 
33
34
  ```tsx
34
- import React from "react";
35
- import { motion } from "framer-motion";
35
+ import React from 'react';
36
+ import { motion } from 'framer-motion';
36
37
 
37
38
  export function MenuToCloseIcon({ isOpen, onClick }: { isOpen: boolean; onClick: () => void }) {
38
39
  return (
39
40
  <button
40
41
  onClick={onClick}
41
42
  className="p-2 rounded-lg hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors"
42
- aria-label={isOpen ? "Close menu" : "Open menu"}
43
+ aria-label={isOpen ? 'Close menu' : 'Open menu'}
43
44
  >
44
45
  <svg className="w-6 h-6 stroke-current stroke-2 fill-none" viewBox="0 0 24 24">
45
46
  {/* Top Line -> Top diagonal of X */}
46
47
  <motion.line
47
- x1="4" y1="6" x2="20" y2="6"
48
+ x1="4"
49
+ y1="6"
50
+ x2="20"
51
+ y2="6"
48
52
  animate={isOpen ? { x1: 6, y1: 6, x2: 18, y2: 18 } : { x1: 4, y1: 6, x2: 20, y2: 6 }}
49
53
  transition={{ duration: 0.2, ease: [0.16, 1, 0.3, 1] }}
50
54
  />
51
55
  {/* Middle Line -> Fade out */}
52
56
  <motion.line
53
- x1="4" y1="12" x2="20" y2="12"
57
+ x1="4"
58
+ y1="12"
59
+ x2="20"
60
+ y2="12"
54
61
  animate={isOpen ? { opacity: 0, x: -4 } : { opacity: 1, x: 0 }}
55
62
  transition={{ duration: 0.15 }}
56
63
  />
57
64
  {/* Bottom Line -> Bottom diagonal of X */}
58
65
  <motion.line
59
- x1="4" y1="18" x2="20" y2="18"
66
+ x1="4"
67
+ y1="18"
68
+ x2="20"
69
+ y2="18"
60
70
  animate={isOpen ? { x1: 6, y1: 18, x2: 18, y2: 6 } : { x1: 4, y1: 18, x2: 20, y2: 18 }}
61
71
  transition={{ duration: 0.2, ease: [0.16, 1, 0.3, 1] }}
62
72
  />
@@ -21,6 +21,7 @@ scripts-binding:
21
21
  ## Mandatory Pre-Flight Context Inspection
22
22
 
23
23
  Before engineering web animations or selecting motion libraries, you MUST inspect:
24
+
24
25
  1. Master Library Decision Matrix (Section 29) → Select appropriate library (Framer Motion, GSAP, View Transitions API, Lottie) based on interaction category
25
26
  2. 120fps GPU Compositing Rule (Section 181) → Restrict animations strictly to `transform` and `opacity` to avoid layout thrashing
26
27
  3. Accessibility & `prefers-reduced-motion` (Section 158) → Ensure fallback to instant opacity or no-op motion for reduced-motion preference
@@ -80,7 +81,11 @@ Used for immediate feedback, clarifying actions, and improving perceived respons
80
81
 
81
82
  ```tsx
82
83
  // Framer Motion — button with spring micro-interaction
83
- <motion.button whileHover={{ scale: 1.02, filter: "brightness(1.08)" }} whileTap={{ scale: 0.97 }} transition={{ type: "spring", stiffness: 400, damping: 17 }}>
84
+ <motion.button
85
+ whileHover={{ scale: 1.02, filter: 'brightness(1.08)' }}
86
+ whileTap={{ scale: 0.97 }}
87
+ transition={{ type: 'spring', stiffness: 400, damping: 17 }}
88
+ >
84
89
  Submit
85
90
  </motion.button>
86
91
  ```
@@ -91,18 +96,18 @@ Triggers narrative flow and depth based on user scrolling.
91
96
 
92
97
  ```javascript
93
98
  // GSAP ScrollTrigger — industry standard
94
- gsap.from(".reveal-section", {
95
- scrollTrigger: { trigger: ".reveal-section", start: "top 80%", scrub: 1 },
99
+ gsap.from('.reveal-section', {
100
+ scrollTrigger: { trigger: '.reveal-section', start: 'top 80%', scrub: 1 },
96
101
  y: 60,
97
102
  opacity: 0,
98
103
  stagger: 0.1,
99
104
  });
100
105
 
101
106
  // Lenis — smooth scroll compatible with GSAP
102
- import Lenis from "lenis";
107
+ import Lenis from 'lenis';
103
108
  const lenis = new Lenis({ lerp: 0.1, wheelMultiplier: 0.8 });
104
- lenis.on("scroll", ScrollTrigger.update);
105
- gsap.ticker.add((time) => lenis.raf(time * 1000));
109
+ lenis.on('scroll', ScrollTrigger.update);
110
+ gsap.ticker.add(time => lenis.raf(time * 1000));
106
111
  gsap.ticker.lagSmoothing(0);
107
112
  ```
108
113
 
@@ -146,9 +151,9 @@ function navigateWithTransition(url: string, navigate: (path: string) => void) {
146
151
  display: none;
147
152
  opacity: 0;
148
153
  transform: scale(0.95);
149
- transition:
150
- opacity 0.2s ease,
151
- transform 0.2s cubic-bezier(0.2, 0.8, 0.4, 1),
154
+ transition:
155
+ opacity 0.2s ease,
156
+ transform 0.2s cubic-bezier(0.2, 0.8, 0.4, 1),
152
157
  display 0.2s allow-discrete;
153
158
  }
154
159
 
@@ -174,16 +179,16 @@ function navigateWithTransition(url: string, navigate: (path: string) => void) {
174
179
  Always respect `prefers-reduced-motion`. Fall back to instant opacity or no-op motion.
175
180
 
176
181
  ```tsx
177
- import { useReducedMotion } from "motion/react";
182
+ import { useReducedMotion } from 'motion/react';
178
183
 
179
184
  function AccessibleComponent() {
180
185
  const shouldReduceMotion = useReducedMotion();
181
-
186
+
182
187
  return (
183
188
  <motion.div
184
- animate={{
185
- x: shouldReduceMotion ? 0 : 100,
186
- opacity: 1
189
+ animate={{
190
+ x: shouldReduceMotion ? 0 : 100,
191
+ opacity: 1,
187
192
  }}
188
193
  transition={{ duration: shouldReduceMotion ? 0 : 0.3 }}
189
194
  />
@@ -220,4 +225,3 @@ function AccessibleComponent() {
220
225
  ### 🛑 Verification-Before-Completion (VBC) Protocol
221
226
 
222
227
  Inspect motion frame performance in DevTools Rendering tab to verify 60/120fps compositor execution without layout thrashing.
223
-