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
@@ -9,11 +9,11 @@
9
9
  * node .agent/scripts/verify_all.js --skip build,deps
10
10
  */
11
11
 
12
- "use strict";
12
+ 'use strict';
13
13
 
14
- const fs = require("fs");
15
- const path = require("path");
16
- const { execFileSync } = require("child_process");
14
+ const fs = require('fs');
15
+ const path = require('path');
16
+ const { execFileSync } = require('child_process');
17
17
 
18
18
  const {
19
19
  RED,
@@ -28,31 +28,31 @@ const {
28
28
  summaryTable,
29
29
  timer,
30
30
  formatMs,
31
- } = require("./_colors");
31
+ } = require('./_colors');
32
32
 
33
- const { walkDir, hasNpm } = require("./_utils");
33
+ const { walkDir, hasNpm } = require('./_utils');
34
34
 
35
35
  // ── Results Tracking ────────────────────────────────────────────────────────
36
36
 
37
37
  const RESULTS = [];
38
38
 
39
39
  function trackOk(label, ms, note) {
40
- const timing = ms != null ? `${DIM}(${formatMs(ms)})${RESET}` : "";
41
- const noteStr = note ? ` ${DIM}${note}${RESET}` : "";
40
+ const timing = ms != null ? `${DIM}(${formatMs(ms)})${RESET}` : '';
41
+ const noteStr = note ? ` ${DIM}${note}${RESET}` : '';
42
42
  console.log(` ${GREEN}✅ ${label}${RESET} ${timing}${noteStr}`);
43
- RESULTS.push({ name: label, status: "pass", ms, note: note || "" });
43
+ RESULTS.push({ name: label, status: 'pass', ms, note: note || '' });
44
44
  }
45
45
 
46
46
  function trackFail(label, ms, note) {
47
- const timing = ms != null ? `${DIM}(${formatMs(ms)})${RESET}` : "";
48
- const noteStr = note ? `\n ${note}` : "";
47
+ const timing = ms != null ? `${DIM}(${formatMs(ms)})${RESET}` : '';
48
+ const noteStr = note ? `\n ${note}` : '';
49
49
  console.log(` ${RED}❌ ${label}${RESET} ${timing}${noteStr}`);
50
- RESULTS.push({ name: label, status: "fail", ms, note: note || "" });
50
+ RESULTS.push({ name: label, status: 'fail', ms, note: note || '' });
51
51
  }
52
52
 
53
53
  function trackSkip(label, reason) {
54
54
  console.log(` ${YELLOW}⏭️ ${label} — ${reason}${RESET}`);
55
- RESULTS.push({ name: label, status: "skip", note: `skipped: ${reason}` });
55
+ RESULTS.push({ name: label, status: 'skip', note: `skipped: ${reason}` });
56
56
  }
57
57
 
58
58
  // ── Command Runner ──────────────────────────────────────────────────────────
@@ -63,29 +63,29 @@ function trackSkip(label, reason) {
63
63
  function run(label, cmd, cwd) {
64
64
  const elapsed = timer();
65
65
  try {
66
- const isWindows = process.platform === "win32";
66
+ const isWindows = process.platform === 'win32';
67
67
 
68
68
  execFileSync(cmd[0], cmd.slice(1), {
69
69
  cwd,
70
- stdio: "pipe",
70
+ stdio: 'pipe',
71
71
  timeout: 120000,
72
- encoding: "utf8",
72
+ encoding: 'utf8',
73
73
  shell: isWindows,
74
74
  });
75
75
  trackOk(label, elapsed());
76
76
  return true;
77
77
  } catch (err) {
78
78
  const ms = elapsed();
79
- if (err.code === "ENOENT") {
80
- trackSkip(label, "tool not installed — skipping");
79
+ if (err.code === 'ENOENT') {
80
+ trackSkip(label, 'tool not installed — skipping');
81
81
  return true;
82
82
  }
83
83
  if (err.killed) {
84
- trackFail(label, ms, "timed out after 120s");
84
+ trackFail(label, ms, 'timed out after 120s');
85
85
  return false;
86
86
  }
87
- const output = ((err.stdout || "") + (err.stderr || "")).trim();
88
- trackFail(label, ms, output ? output.slice(0, 500) : "non-zero exit code");
87
+ const output = ((err.stdout || '') + (err.stderr || '')).trim();
88
+ trackFail(label, ms, output ? output.slice(0, 500) : 'non-zero exit code');
89
89
  return false;
90
90
  }
91
91
  }
@@ -96,31 +96,25 @@ function run(label, cmd, cwd) {
96
96
  */
97
97
  function scanSecrets(cwd) {
98
98
  const elapsed = timer();
99
- const patterns = [
100
- "password=",
101
- "secret=",
102
- "api_key=",
103
- "private_key=",
104
- "auth_token=",
105
- ];
99
+ const patterns = ['password=', 'secret=', 'api_key=', 'private_key=', 'auth_token='];
106
100
  const found = [];
107
101
 
108
- const sourceExtensions = new Set([".ts", ".tsx", ".js", ".jsx", ".py"]);
102
+ const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.py']);
109
103
  const files = walkDir(cwd, { extensions: sourceExtensions });
110
104
 
111
105
  for (const fullPath of files) {
112
106
  let content;
113
107
  try {
114
- content = fs.readFileSync(fullPath, "utf8");
108
+ content = fs.readFileSync(fullPath, 'utf8');
115
109
  } catch {
116
110
  continue;
117
111
  }
118
112
 
119
- const lines = content.split("\n");
113
+ const lines = content.split('\n');
120
114
  for (let i = 0; i < lines.length; i++) {
121
115
  const low = lines[i].toLowerCase().trim();
122
- const hasPattern = patterns.some((p) => low.includes(p));
123
- if (hasPattern && !low.startsWith("#") && low.includes("=")) {
116
+ const hasPattern = patterns.some(p => low.includes(p));
117
+ if (hasPattern && !low.startsWith('#') && low.includes('=')) {
124
118
  const rel = path.relative(cwd, fullPath);
125
119
  found.push(`${rel}:${i + 1}`);
126
120
  }
@@ -129,14 +123,10 @@ function scanSecrets(cwd) {
129
123
 
130
124
  const ms = elapsed();
131
125
  if (found.length > 0) {
132
- trackFail("Secret scan", ms, found.slice(0, 5).join("\n "));
126
+ trackFail('Secret scan', ms, found.slice(0, 5).join('\n '));
133
127
  return false;
134
128
  }
135
- trackOk(
136
- "Secret scan — no hardcoded credentials found",
137
- ms,
138
- `${files.length} files scanned`,
139
- );
129
+ trackOk('Secret scan — no hardcoded credentials found', ms, `${files.length} files scanned`);
140
130
  return true;
141
131
  }
142
132
 
@@ -148,82 +138,81 @@ function verifyAll(cwd, skipped) {
148
138
  RESULTS.length = 0; // Reset for clean runs (prevents accumulation in tests)
149
139
  const totalTimer = timer();
150
140
 
151
- console.log(sectionHeader("Secret Scan", 1));
152
- if (!skipped.includes("secrets")) {
141
+ console.log(sectionHeader('Secret Scan', 1));
142
+ if (!skipped.includes('secrets')) {
153
143
  if (!scanSecrets(cwd)) failures++;
154
144
  } else {
155
- trackSkip("Secret scan", "skipped by flag");
145
+ trackSkip('Secret scan', 'skipped by flag');
156
146
  }
157
147
 
158
- console.log(sectionHeader("TypeScript", 2));
159
- if (!skipped.includes("typescript")) {
148
+ console.log(sectionHeader('TypeScript', 2));
149
+ if (!skipped.includes('typescript')) {
160
150
  if (hasNpm(cwd)) {
161
- if (!run("tsc --noEmit", ["npx", "tsc", "--noEmit"], cwd)) failures++;
151
+ if (!run('tsc --noEmit', ['npx', 'tsc', '--noEmit'], cwd)) failures++;
162
152
  } else {
163
- trackSkip("TypeScript", "no package.json found in project");
153
+ trackSkip('TypeScript', 'no package.json found in project');
164
154
  }
165
155
  } else {
166
- trackSkip("TypeScript", "skipped by flag");
156
+ trackSkip('TypeScript', 'skipped by flag');
167
157
  }
168
158
 
169
- console.log(sectionHeader("ESLint", 3));
170
- if (!skipped.includes("lint")) {
159
+ console.log(sectionHeader('ESLint', 3));
160
+ if (!skipped.includes('lint')) {
171
161
  if (hasNpm(cwd)) {
172
- if (!run("ESLint", ["npx", "eslint", ".", "--max-warnings=0"], cwd))
173
- failures++;
162
+ if (!run('ESLint', ['npx', 'eslint', '.', '--max-warnings=0'], cwd)) failures++;
174
163
  } else {
175
- trackSkip("ESLint", "no package.json found in project");
164
+ trackSkip('ESLint', 'no package.json found in project');
176
165
  }
177
166
  } else {
178
- trackSkip("ESLint", "skipped by flag");
167
+ trackSkip('ESLint', 'skipped by flag');
179
168
  }
180
169
 
181
- console.log(sectionHeader("Unit Tests", 4));
182
- if (!skipped.includes("tests")) {
170
+ console.log(sectionHeader('Unit Tests', 4));
171
+ if (!skipped.includes('tests')) {
183
172
  if (hasNpm(cwd)) {
184
- if (!run("Test suite", ["npm", "test", "--", "--passWithNoTests"], cwd))
185
- failures++;
173
+ if (!run('Test suite', ['npm', 'test', '--', '--passWithNoTests'], cwd)) failures++;
186
174
  } else {
187
- trackSkip("Tests", "no package.json found in project");
175
+ trackSkip('Tests', 'no package.json found in project');
188
176
  }
189
177
  } else {
190
- trackSkip("Tests", "skipped by flag");
178
+ trackSkip('Tests', 'skipped by flag');
191
179
  }
192
180
 
193
- console.log(sectionHeader("Build", 5));
194
- if (!skipped.includes("build")) {
181
+ console.log(sectionHeader('Build', 5));
182
+ if (!skipped.includes('build')) {
195
183
  if (hasNpm(cwd)) {
196
- if (!run("npm run build", ["npm", "run", "build"], cwd)) failures++;
184
+ if (!run('npm run build', ['npm', 'run', 'build'], cwd)) failures++;
197
185
  } else {
198
- trackSkip("Build", "no package.json found in project");
186
+ trackSkip('Build', 'no package.json found in project');
199
187
  }
200
188
  } else {
201
- trackSkip("Build", "skipped by flag");
189
+ trackSkip('Build', 'skipped by flag');
202
190
  }
203
191
 
204
- console.log(sectionHeader("Dependency Audit", 6));
205
- if (!skipped.includes("deps")) {
192
+ console.log(sectionHeader('Dependency Audit', 6));
193
+ if (!skipped.includes('deps')) {
206
194
  if (hasNpm(cwd)) {
207
- if (!run("npm audit", ["npm", "audit", "--audit-level=high"], cwd))
208
- failures++;
195
+ if (!run('npm audit', ['npm', 'audit', '--audit-level=high'], cwd)) failures++;
209
196
  } else {
210
- trackSkip("Dependency audit", "no package.json found in project");
197
+ trackSkip('Dependency audit', 'no package.json found in project');
211
198
  }
212
199
  } else {
213
- trackSkip("Dependency audit", "skipped by flag");
200
+ trackSkip('Dependency audit', 'skipped by flag');
214
201
  }
215
202
 
216
- console.log(sectionHeader("Rust Core Tests", 7));
217
- if (!skipped.includes("rust")) {
218
- const cargoToml = path.join(cwd, "crates", "core", "Cargo.toml");
203
+ console.log(sectionHeader('Rust Core Tests', 7));
204
+ if (!skipped.includes('rust')) {
205
+ const cargoToml = path.join(cwd, 'crates', 'core', 'Cargo.toml');
219
206
  if (fs.existsSync(cargoToml)) {
220
- if (!run("Rust Core Tests", ["cargo", "test", "--manifest-path", "crates/core/Cargo.toml"], cwd))
207
+ if (
208
+ !run('Rust Core Tests', ['cargo', 'test', '--manifest-path', 'crates/core/Cargo.toml'], cwd)
209
+ )
221
210
  failures++;
222
211
  } else {
223
- trackSkip("Rust Core Tests", "crates/core/Cargo.toml not found in project");
212
+ trackSkip('Rust Core Tests', 'crates/core/Cargo.toml not found in project');
224
213
  }
225
214
  } else {
226
- trackSkip("Rust Core Tests", "skipped by flag");
215
+ trackSkip('Rust Core Tests', 'skipped by flag');
227
216
  }
228
217
 
229
218
  // ━━━ Summary Table ━━━
@@ -231,26 +220,20 @@ function verifyAll(cwd, skipped) {
231
220
  console.log(`\n${BOLD}${CYAN}━━━ Verification Summary ━━━${RESET}`);
232
221
  summaryTable(RESULTS);
233
222
 
234
- const passCount = RESULTS.filter((r) => r.status === "pass").length;
235
- const failCount = RESULTS.filter((r) => r.status === "fail").length;
236
- const skipCount = RESULTS.filter((r) => r.status === "skip").length;
223
+ const passCount = RESULTS.filter(r => r.status === 'pass').length;
224
+ const failCount = RESULTS.filter(r => r.status === 'fail').length;
225
+ const skipCount = RESULTS.filter(r => r.status === 'skip').length;
237
226
 
227
+ console.log(`\n ${DIM}Total: ${RESULTS.length} checks in ${formatMs(totalMs)}${RESET}`);
238
228
  console.log(
239
- `\n ${DIM}Total: ${RESULTS.length} checks in ${formatMs(totalMs)}${RESET}`,
240
- );
241
- console.log(
242
- ` ${GREEN}${passCount} passed${RESET} ${failCount > 0 ? `${RED}${failCount} failed${RESET} ` : ""}${skipCount > 0 ? `${YELLOW}${skipCount} skipped${RESET}` : ""}`,
229
+ ` ${GREEN}${passCount} passed${RESET} ${failCount > 0 ? `${RED}${failCount} failed${RESET} ` : ''}${skipCount > 0 ? `${YELLOW}${skipCount} skipped${RESET}` : ''}`,
243
230
  );
244
231
 
245
232
  console.log();
246
233
  if (failures === 0) {
247
- console.log(
248
- `${GREEN}${BOLD} ✔ All checks passed — safe to deploy.${RESET}`,
249
- );
234
+ console.log(`${GREEN}${BOLD} ✔ All checks passed — safe to deploy.${RESET}`);
250
235
  } else {
251
- console.log(
252
- `${RED}${BOLD} ✖ ${failures} check(s) failed — fix before deploying.${RESET}`,
253
- );
236
+ console.log(`${RED}${BOLD} ✖ ${failures} check(s) failed — fix before deploying.${RESET}`);
254
237
  }
255
238
  console.log();
256
239
 
@@ -265,10 +248,10 @@ function parseArgs(argv) {
265
248
  const raw = argv.slice(2);
266
249
 
267
250
  for (let i = 0; i < raw.length; i++) {
268
- if (raw[i] === "--skip" && raw[i + 1]) {
251
+ if (raw[i] === '--skip' && raw[i + 1]) {
269
252
  args.skip = raw[++i]
270
- .split(",")
271
- .map((s) => s.trim().toLowerCase())
253
+ .split(',')
254
+ .map(s => s.trim().toLowerCase())
272
255
  .filter(Boolean);
273
256
  }
274
257
  }
@@ -279,7 +262,7 @@ function main() {
279
262
  const args = parseArgs(process.argv);
280
263
  const cwd = process.cwd();
281
264
 
282
- console.log(banner("verify_all.js", { Project: cwd }));
265
+ console.log(banner('verify_all.js', { Project: cwd }));
283
266
 
284
267
  const failures = verifyAll(cwd, args.skip);
285
268
  process.exit(failures > 0 ? 1 : 0);
@@ -10,43 +10,34 @@
10
10
  * node .agent/scripts/visual_audit.js --file src/components/Button.tsx
11
11
  */
12
12
 
13
- "use strict";
13
+ 'use strict';
14
14
 
15
- const fs = require("fs");
16
- const path = require("path");
15
+ const fs = require('fs');
16
+ const path = require('path');
17
17
 
18
- const {
19
- GREEN,
20
- YELLOW,
21
- BOLD,
22
- DIM,
23
- RESET,
24
- banner,
25
- timer,
26
- formatMs,
27
- } = require("./_colors");
18
+ const { GREEN, YELLOW, BOLD, DIM, RESET, banner, timer, formatMs } = require('./_colors');
28
19
 
29
- const { walkDir, SOURCE_EXTENSIONS } = require("./_utils");
20
+ const { walkDir, SOURCE_EXTENSIONS } = require('./_utils');
30
21
 
31
22
  function auditFile(filePath) {
32
23
  let content;
33
24
  try {
34
- content = fs.readFileSync(filePath, "utf8");
25
+ content = fs.readFileSync(filePath, 'utf8');
35
26
  } catch {
36
27
  return [];
37
28
  }
38
29
 
39
30
  const issues = [];
40
- const lines = content.split("\n");
31
+ const lines = content.split('\n');
41
32
 
42
33
  for (let i = 0; i < lines.length; i++) {
43
34
  const line = lines[i];
44
35
 
45
36
  // Check for hardcoded hex colors when oklch or CSS variables are expected
46
- if (/#([0-9a-fA-F]{3}){1,2}\b/.test(line) && !line.includes("// ignore-color")) {
37
+ if (/#([0-9a-fA-F]{3}){1,2}\b/.test(line) && !line.includes('// ignore-color')) {
47
38
  issues.push({
48
39
  line: i + 1,
49
- rule: "oklch-color",
40
+ rule: 'oklch-color',
50
41
  message: `Hardcoded hex color found: "${line.trim()}". Prefer OKLCH or design token CSS variables.`,
51
42
  });
52
43
  }
@@ -59,7 +50,7 @@ function main() {
59
50
  const cwd = process.cwd();
60
51
  const elapsed = timer();
61
52
 
62
- console.log(banner("visual_audit.js", { Target: cwd }));
53
+ console.log(banner('visual_audit.js', { Target: cwd }));
63
54
 
64
55
  const files = walkDir(cwd, { extensions: SOURCE_EXTENSIONS });
65
56
  let totalIssues = 0;
@@ -79,9 +70,13 @@ function main() {
79
70
  console.log(`\n ${DIM}Audited ${files.length} files in ${formatMs(elapsed())}${RESET}`);
80
71
 
81
72
  if (totalIssues === 0) {
82
- console.log(` ${GREEN}${BOLD}✔ Visual audit complete — zero design violations found.${RESET}\n`);
73
+ console.log(
74
+ ` ${GREEN}${BOLD}✔ Visual audit complete — zero design violations found.${RESET}\n`,
75
+ );
83
76
  } else {
84
- console.log(` ${YELLOW}${BOLD}⚠ Visual audit completed with ${totalIssues} advisory issue(s).${RESET}\n`);
77
+ console.log(
78
+ ` ${YELLOW}${BOLD}⚠ Visual audit completed with ${totalIssues} advisory issue(s).${RESET}\n`,
79
+ );
85
80
  }
86
81
  }
87
82
 
@@ -198,15 +198,34 @@
198
198
  ]
199
199
  },
200
200
  "file_extensions": {
201
- ".tsx": ["react-specialist", "nextjs-react-expert", "frontend-design", "better-ui", "expo-router-v4", "playwright-ai-e2e"],
202
- ".ts": ["typescript-advanced", "clean-code", "lint-and-validate", "opentelemetry-observability", "property-based-testing"],
201
+ ".tsx": [
202
+ "react-specialist",
203
+ "nextjs-react-expert",
204
+ "frontend-design",
205
+ "better-ui",
206
+ "expo-router-v4",
207
+ "playwright-ai-e2e"
208
+ ],
209
+ ".ts": [
210
+ "typescript-advanced",
211
+ "clean-code",
212
+ "lint-and-validate",
213
+ "opentelemetry-observability",
214
+ "property-based-testing"
215
+ ],
203
216
  ".jsx": ["react-specialist", "frontend-design"],
204
217
  ".js": ["nodejs-best-practices", "clean-code", "opentelemetry-observability"],
205
218
  ".vue": ["vue-expert", "frontend-design"],
206
219
  ".py": ["python-pro", "python-patterns", "duckdb-analytical-sql", "property-based-testing"],
207
220
  ".rs": ["rust-pro"],
208
221
  ".cs": ["csharp-developer"],
209
- ".sql": ["sql-pro", "database-architect", "supabase-postgres-best-practices", "vector-search-pgvector", "duckdb-analytical-sql"],
222
+ ".sql": [
223
+ "sql-pro",
224
+ "database-architect",
225
+ "supabase-postgres-best-practices",
226
+ "vector-search-pgvector",
227
+ "duckdb-analytical-sql"
228
+ ],
210
229
  ".prisma": ["database-architect", "database-design", "vector-search-pgvector"],
211
230
  ".css": ["frontend-design", "better-colors", "better-typography", "swiss-design"],
212
231
  ".sh": ["bash-linux"],
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before applying animation principles to web components, you MUST inspect:
23
+
23
24
  1. Target interaction pattern → Identify applicability of Squash & Stretch, Anticipation, Slow In/Out, or Follow Through
24
25
  2. Volume-Preservation Rule (Section 26) → Keep UI squash/stretch subtle (max 2%-4%); if height scales to 0.97, width MUST scale to 1.03
25
26
  3. Staging Rules (Section 31) → Direct user focus with sequential motion rather than competing simultaneous animations
@@ -31,22 +32,28 @@ Translate Disney's 12 classic principles of animation into modern CSS, Web API,
31
32
  ## The 6 Essential Web Principles
32
33
 
33
34
  ### 1. Squash & Stretch (Scale Elasticity)
35
+
34
36
  - Compress elements slightly on impact (e.g. button press down `scale(0.97)`), then stretch slightly on release (`scale(1.02)` -> `scale(1)`).
35
37
  - **Rule**: Preserve overall volume. If height decreases by 5%, width must expand by 5%.
36
38
 
37
39
  ### 2. Anticipation (Pre-Motion Cue)
40
+
38
41
  - Before a major movement (e.g. modal sliding up), perform a micro-backwards movement (e.g. shift down `2px` for `40ms`) to prepare the user's eye.
39
42
 
40
43
  ### 3. Staging (Focus & Spatial Hierarchy)
44
+
41
45
  - Direct user attention to one primary animation at a time. Never animate competing layout elements across different regions simultaneously.
42
46
 
43
47
  ### 4. Slow In & Slow Out (Easing Curves)
48
+
44
49
  - Objects in nature start slow, accelerate, and decelerate gradually. Use strong ease-out curves (`cubic-bezier(0.16, 1, 0.3, 1)`) for UI entrances.
45
50
 
46
51
  ### 5. Arcs (Natural Curvilinear Trajectories)
52
+
47
53
  - Human arms and physical objects move in curved arcs rather than mechanical straight lines. When moving elements across 2D space, use parabolic bezier curves or `offset-path`.
48
54
 
49
55
  ### 6. Follow Through & Overlapping Action
56
+
50
57
  - Secondary elements (e.g. badge text inside a sliding card) lag slightly behind the main container (stagger delay 30ms - 50ms), creating organic physical realism.
51
58
 
52
59
  ---
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before writing animation CSS or JS, you MUST inspect:
23
+
23
24
  1. Target animated properties → Strictly enforce GPU compositor-only properties (`transform`, `opacity`) and ban layout-triggering properties (`width`, `height`, `top`, `left`)
24
25
  2. Scale Math Replacement (Section 29) → Use `transform: scaleX(2)` instead of animating `width`
25
26
  3. `will-change` VRAM Management (Section 45) → Apply `will-change` dynamically during active animation and remove upon completion
@@ -31,12 +32,16 @@ Eliminate jank, layout thrashing, and frame drops to achieve locked 60fps / 120f
31
32
  ## 4 Performance Rules
32
33
 
33
34
  ### 1. Compositor-Only Animation Pipeline
35
+
34
36
  Only animate properties handled strictly by the GPU compositor layer:
37
+
35
38
  - ✅ **Compositor Properties** (Zero Layout / Zero Paint): `transform` (`translate3d`, `scale`, `rotate`) and `opacity`.
36
39
  - ❌ **Forbidden Animating Properties** (Triggers Full Layout Re-calculation): `width`, `height`, `margin`, `padding`, `top`, `left`, `border-width`.
37
40
 
38
41
  ### 2. Replacing Width/Height Transitions with Scale Math
42
+
39
43
  Instead of animating `width: 100px` to `200px`:
44
+
40
45
  ```css
41
46
  /* BAD: Triggers Layout recalculation on every frame */
42
47
  .box-bad {
@@ -52,10 +57,12 @@ Instead of animating `width: 100px` to `200px`:
52
57
  ```
53
58
 
54
59
  ### 3. `will-change` Management
60
+
55
61
  - Apply `will-change: transform, opacity` ONLY right before or during active animation.
56
62
  - Remove `will-change` when animation completes to free up GPU VRAM memory!
57
63
 
58
64
  ### 4. Layout Thrashing Prevention in JS
65
+
59
66
  - Never interleave DOM reads (`element.offsetHeight`) with DOM writes (`element.style.height = ...`) inside requestAnimationFrame or scroll handlers. Batch all reads first, then perform all writes.
60
67
 
61
68
  ---
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing UI animation code, you MUST inspect:
23
+
23
24
  1. CSS stylesheets → Verify presence of `@media (prefers-reduced-motion: reduce)` rules
24
25
  2. Framer Motion / GSAP components → Query `useReducedMotion()` or `matchMedia('(prefers-reduced-motion: reduce)')`
25
26
  3. Vestibular Trigger Replacement (Section 57) → Replace parallax scroll and 3D rotations with instant opacity cross-fades (`0 -> 1`)
@@ -31,6 +32,7 @@ Ensure UI motion respects user accessibility preferences (`prefers-reduced-motio
31
32
  ## 3 Tiered Reduced-Motion Rules
32
33
 
33
34
  ### Tier 1: CSS Reduced Motion Media Query
35
+
34
36
  ```css
35
37
  @media (prefers-reduced-motion: reduce) {
36
38
  *,
@@ -45,8 +47,9 @@ Ensure UI motion respects user accessibility preferences (`prefers-reduced-motio
45
47
  ```
46
48
 
47
49
  ### Tier 2: React & Framer Motion Hook (`useReducedMotion`)
50
+
48
51
  ```tsx
49
- import { useReducedMotion, motion } from "framer-motion";
52
+ import { useReducedMotion, motion } from 'framer-motion';
50
53
 
51
54
  export function AccessibleCard({ children }) {
52
55
  const shouldReduceMotion = useReducedMotion();
@@ -64,6 +67,7 @@ export function AccessibleCard({ children }) {
64
67
  ```
65
68
 
66
69
  ### Tier 3: Replacing Parallax & Vestibular Triggers with Instant Fades
70
+
67
71
  - Disorienting motions (parallax scrolling, 3D rotations, zoom scaling) MUST be converted into instant cross-fades (`opacity: 0 -> 1`) when `prefers-reduced-motion: reduce` is active.
68
72
 
69
73
  ---
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before engineering responsive layouts or cross-device UIs, you MUST inspect:
23
+
23
24
  1. Container Queries (`@container`) over Viewport Media Queries (Section 24) → Adapt component layouts based on parent container width (`container-type: inline-size`)
24
25
  2. Touch Target Sizing (Section 39) → Ensure interactive controls meet min `44x44px` target size on touch devices
25
26
  3. Fluid Clamp Scaling (Section 45) → Use `clamp()` for smooth fluid typography and spacing without abrupt media query jumps
@@ -31,7 +32,9 @@ Architect UIs that adapt fluidly to screen dimensions, container boundaries, inp
31
32
  ## 4 Adaptation Mechanics
32
33
 
33
34
  ### 1. Container Queries (`@container`) over Viewport Media Queries (`@media`)
35
+
34
36
  - Components should adapt based on their parent container's width, NOT the global browser window size:
37
+
35
38
  ```css
36
39
  .card-container {
37
40
  container-type: inline-size;
@@ -46,14 +49,17 @@ Architect UIs that adapt fluidly to screen dimensions, container boundaries, inp
46
49
  ```
47
50
 
48
51
  ### 2. Touch Target Sizing (Min 44x44px)
52
+
49
53
  - Interactive targets on mobile/touch interfaces MUST maintain a minimum tap target size of `44x44px` (or `48x48px` for Android), even if the visual icon is smaller (`16px`).
50
54
 
51
55
  ### 3. Drawer on Mobile -> Modal on Desktop
56
+
52
57
  - Complex popovers or dialogs on mobile screens should render as bottom sheets (drawers) with drag-to-dismiss handles, automatically morphing into centered modals on desktop viewports ($\ge 768\text{px}$).
53
58
 
54
59
  ### 4. Fluid Typography & Spacing
60
+
55
61
  - Use `clamp()` for fluid scaling without abrupt media query jumps:
56
- $$\text{FontSize} = \text{clamp}(1\text{rem}, 0.8\text{rem} + 1\text{vw}, 1.75\text{rem})$$
62
+ $$\text{FontSize} = \text{clamp}(1\text{rem}, 0.8\text{rem} + 1\text{vw}, 1.75\text{rem})$$
57
63
 
58
64
  ---
59
65
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before building RAG pipelines or vector search components, you MUST inspect:
23
+
23
24
  1. Hybrid Search Requirement (Section 16) → Always combine Dense Vector Search with Sparse BM25 Search to catch exact keyword matches (IDs, versions)
24
25
  2. Two-Stage Reranking Pipeline (Section 29) → Retrieve top ~50 candidate chunks, then rerank with a Cross-Encoder down to top 3-5 before feeding the LLM
25
26
  3. Context XML Framing (Section 59) → Wrap retrieved chunks inside explicit `<context>` XML tags in the prompt to prevent indirect prompt injection
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before dispatching multi-agent tasks, you MUST inspect:
23
+
23
24
  1. `swarm-worker-registry.md` / `task.md` → Verify target worker agents and global execution state
24
25
  2. Context Window Budget rules (Section 1) → Trim worker payload context to max 3 files per dispatch
25
26
  3. Handoff state signals (`COMPLETE`, `BLOCKED`, `ERROR`) → Verify terminal status handling rules