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
@@ -18,6 +18,7 @@ skills:
18
18
  ## Mandatory Pre-Flight Context Inspection
19
19
 
20
20
  Before creating vector tables or indexes:
21
+
21
22
  1. Index Type & Precision → Use `halfvec` (half-precision) for 50% RAM savings on HNSW indexes; use `sparsevec` for high-dimensional sparse vectors
22
23
  2. Iterative Index Scans (pgvector 0.8.0+) → Enable iterative scanning to prevent HNSW overfiltering when combining `WHERE` clauses with vector similarity
23
24
  3. Hybrid Search Strategy → Combine BM25 full-text search with dense vector similarity via Reciprocal Rank Fusion (RRF)
@@ -37,7 +38,7 @@ CREATE TABLE document_chunks (
37
38
  );
38
39
 
39
40
  -- HNSW index using halfvec with iterative scanning support (pgvector 0.8.0+)
40
- CREATE INDEX idx_chunks_embedding_hnsw
41
+ CREATE INDEX idx_chunks_embedding_hnsw
41
42
  ON document_chunks USING hnsw (embedding halfvec_cosine_ops)
42
43
  WITH (m = 16, ef_construction = 64);
43
44
 
@@ -61,7 +62,7 @@ fts_search AS (
61
62
  WHERE fts_vector @@ websearch_to_tsquery($2) AND document_id = $3
62
63
  LIMIT 20
63
64
  )
64
- SELECT
65
+ SELECT
65
66
  COALESCE(v.id, f.id) as id,
66
67
  COALESCE(v.content, f.content) as content,
67
68
  COALESCE(1.0 / (60 + v.rank), 0.0) + COALESCE(1.0 / (60 + f.rank), 0.0) as rrf_score
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before writing Vue 3.5+ or Nuxt 4 components, you MUST inspect:
23
+
23
24
  1. Script Setup Architecture → Use `<script setup lang="ts">` exclusively; ban legacy Options API
24
25
  2. Pinia & Reactivity Rules (Section 133) → Use `storeToRefs(store)` when destructuring Pinia state to preserve reactivity
25
26
  3. Model & Watcher Syntax (Section 42) → Use `defineModel<T>()` (Vue 3.4+) and `watch(() => state.prop, ...)` for primitive watchers
@@ -42,19 +43,21 @@ Before writing Vue 3.5+ or Nuxt 4 components, you MUST inspect:
42
43
 
43
44
  ```vue
44
45
  <script setup lang="ts">
45
- import { ref, computed, watch, onMounted } from "vue";
46
+ import { ref, computed, watch, onMounted } from 'vue';
46
47
 
47
48
  // Props
48
49
  const props = defineProps<{ title: string; count?: number }>();
49
50
  // With defaults:
50
- const props = withDefaults(defineProps<{ variant?: "primary" | "secondary" }>(), { variant: "primary" });
51
+ const props = withDefaults(defineProps<{ variant?: 'primary' | 'secondary' }>(), {
52
+ variant: 'primary',
53
+ });
51
54
 
52
55
  // Emits
53
56
  const emit = defineEmits<{ update: [value: string]; delete: [id: number] }>();
54
57
 
55
58
  // v-model (Vue 3.4+)
56
59
  const modelValue = defineModel<string>(); // default model
57
- const count = defineModel<number>("count"); // named model
60
+ const count = defineModel<number>('count'); // named model
58
61
 
59
62
  // Expose to parent ref
60
63
  defineExpose({ reset: () => {}, focus: () => {} });
@@ -71,7 +74,7 @@ const count = ref(0);
71
74
  count.value++;
72
75
 
73
76
  // reactive — for objects (loses reactivity on reassign/destructure)
74
- const state = reactive({ name: "Alice", age: 25 });
77
+ const state = reactive({ name: 'Alice', age: 25 });
75
78
  // ❌ const { name } = state; // loses reactivity
76
79
  // ✅ const name = computed(() => state.name);
77
80
 
@@ -79,8 +82,8 @@ const state = reactive({ name: "Alice", age: 25 });
79
82
  const doubled = computed(() => count.value * 2);
80
83
  const fullName = computed({
81
84
  get: () => `${first.value} ${last.value}`,
82
- set: (v) => {
83
- [first.value, last.value] = v.split(" ");
85
+ set: v => {
86
+ [first.value, last.value] = v.split(' ');
84
87
  },
85
88
  });
86
89
 
@@ -131,8 +134,8 @@ export function useAsyncData<T>(fn: () => Promise<T>) {
131
134
 
132
135
  ```ts
133
136
  // stores/counter.ts
134
- import { defineStore } from "pinia";
135
- export const useCounterStore = defineStore("counter", () => {
137
+ import { defineStore } from 'pinia';
138
+ export const useCounterStore = defineStore('counter', () => {
136
139
  const count = ref(0); // Setup Store (preferred)
137
140
  const doubled = computed(() => count.value * 2);
138
141
  function increment() {
@@ -145,12 +148,12 @@ export const useCounterStore = defineStore("counter", () => {
145
148
  const store = useCounterStore();
146
149
  // ❌ const { count } = store; // loses reactivity!
147
150
  // ✅ const count = storeToRefs(store).count;
148
- import { storeToRefs } from "pinia";
151
+ import { storeToRefs } from 'pinia';
149
152
  const { count } = storeToRefs(store);
150
153
 
151
154
  // Persist plugin:
152
- import { createPinia } from "pinia";
153
- import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
155
+ import { createPinia } from 'pinia';
156
+ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
154
157
  const pinia = createPinia().use(piniaPluginPersistedstate);
155
158
  ```
156
159
 
@@ -160,25 +163,25 @@ const pinia = createPinia().use(piniaPluginPersistedstate);
160
163
 
161
164
  ```ts
162
165
  // router/index.ts
163
- import { createRouter, createWebHistory } from "vue-router";
166
+ import { createRouter, createWebHistory } from 'vue-router';
164
167
  const router = createRouter({
165
168
  history: createWebHistory(),
166
169
  routes: [
167
- { path: "/", component: () => import("./views/Home.vue") }, // lazy-loaded
168
- { path: "/user/:id", component: UserView, props: true }, // props:true passes params as props
169
- { path: "/:pathMatch(.*)*", component: NotFound }, // 404 catch-all
170
+ { path: '/', component: () => import('./views/Home.vue') }, // lazy-loaded
171
+ { path: '/user/:id', component: UserView, props: true }, // props:true passes params as props
172
+ { path: '/:pathMatch(.*)*', component: NotFound }, // 404 catch-all
170
173
  ],
171
174
  });
172
175
  // Route guards
173
176
  router.beforeEach(async (to, from) => {
174
- if (to.meta.requiresAuth && !isLoggedIn()) return { name: "Login" };
177
+ if (to.meta.requiresAuth && !isLoggedIn()) return { name: 'Login' };
175
178
  });
176
179
 
177
180
  // In component:
178
- import { useRouter, useRoute } from "vue-router";
181
+ import { useRouter, useRoute } from 'vue-router';
179
182
  const router = useRouter();
180
183
  const route = useRoute();
181
- router.push({ name: "User", params: { id: 42 } });
184
+ router.push({ name: 'User', params: { id: 42 } });
182
185
  const userId = route.params.id as string;
183
186
  ```
184
187
 
@@ -243,7 +246,7 @@ const { id } = useRoute().params; // auto-imported
243
246
  const { data, error, refresh } = await useFetch(`/api/users/${id}`, {
244
247
  lazy: false, // SSR: wait for data before rendering
245
248
  server: true, // fetch on server (default)
246
- transform: (r) => r.user,
249
+ transform: r => r.user,
247
250
  });
248
251
  // ❌ TRAP: useFetch in Nuxt ≠ @tanstack/react-query. It's Nuxt-specific.
249
252
  // ❌ TRAP: useAsyncData key must be UNIQUE per page/component
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before scanning codebases for security vulnerabilities, you MUST inspect:
23
+
23
24
  1. SQL Injection Vectors (Section 39) → Ban template literal interpolation in SQL queries (`SELECT ... WHERE id = ${id}`); require parameterized queries
24
25
  2. Explicit JWT Algorithms (Section 121) → Verify `jwt.verify(token, secret, { algorithms: ["HS256"] })` specifies explicit algorithms to prevent "None" attacks
25
26
  3. SSRF Domain Allowlist (Section 87) → Validate external request URLs against a strict domain allowlist and block private IP ranges (169.254.169.254, 127.0.0.1)
@@ -55,7 +56,7 @@ const query = `SELECT * FROM users WHERE email = '${email}'`;
55
56
  // Attack: email = "'; DROP TABLE users; --"
56
57
 
57
58
  // ✅ SAFE: Parameterized queries
58
- const result = await db.query("SELECT * FROM users WHERE email = $1", [email]);
59
+ const result = await db.query('SELECT * FROM users WHERE email = $1', [email]);
59
60
 
60
61
  // ✅ SAFE: ORM (Prisma, Drizzle)
61
62
  const user = await prisma.user.findUnique({ where: { email } });
@@ -91,27 +92,27 @@ element.textContent = userComment;
91
92
 
92
93
  ```typescript
93
94
  // ❌ VULNERABLE: fetching user-provided URLs
94
- app.get("/proxy", async (req, res) => {
95
- const data = await fetch(req.query.url).then((r) => r.text());
95
+ app.get('/proxy', async (req, res) => {
96
+ const data = await fetch(req.query.url).then(r => r.text());
96
97
  res.send(data);
97
98
  });
98
99
  // Attack: url = "http://169.254.169.254/latest/meta-data/" (AWS metadata)
99
100
  // Attack: url = "http://localhost:6379/" (internal Redis)
100
101
 
101
102
  // ✅ SAFE: Allowlist of domains
102
- const ALLOWED_HOSTS = new Set(["api.example.com", "cdn.example.com"]);
103
+ const ALLOWED_HOSTS = new Set(['api.example.com', 'cdn.example.com']);
103
104
 
104
- app.get("/proxy", async (req, res) => {
105
+ app.get('/proxy', async (req, res) => {
105
106
  const url = new URL(req.query.url as string);
106
107
  if (!ALLOWED_HOSTS.has(url.hostname)) {
107
- return res.status(403).json({ error: "Domain not allowed" });
108
+ return res.status(403).json({ error: 'Domain not allowed' });
108
109
  }
109
110
  // Additional: block private IP ranges
110
111
  const ip = await dns.resolve4(url.hostname);
111
112
  if (isPrivateIP(ip[0])) {
112
- return res.status(403).json({ error: "Private IP not allowed" });
113
+ return res.status(403).json({ error: 'Private IP not allowed' });
113
114
  }
114
- const data = await fetch(url).then((r) => r.text());
115
+ const data = await fetch(url).then(r => r.text());
115
116
  res.send(data);
116
117
  });
117
118
  ```
@@ -122,19 +123,19 @@ app.get("/proxy", async (req, res) => {
122
123
 
123
124
  ```typescript
124
125
  // JWT Best Practices
125
- import jwt from "jsonwebtoken";
126
+ import jwt from 'jsonwebtoken';
126
127
 
127
128
  // ✅ SAFE: Specify algorithm explicitly
128
129
  const token = jwt.sign(payload, SECRET, {
129
- algorithm: "HS256", // explicit
130
- expiresIn: "15m", // short-lived access token
131
- issuer: "myapp",
130
+ algorithm: 'HS256', // explicit
131
+ expiresIn: '15m', // short-lived access token
132
+ issuer: 'myapp',
132
133
  });
133
134
 
134
135
  // ✅ SAFE: Verify with explicit algorithms
135
136
  const decoded = jwt.verify(token, SECRET, {
136
- algorithms: ["HS256"], // MUST specify — prevents algorithm confusion attack
137
- issuer: "myapp",
137
+ algorithms: ['HS256'], // MUST specify — prevents algorithm confusion attack
138
+ issuer: 'myapp',
138
139
  });
139
140
 
140
141
  // ❌ HALLUCINATION TRAP: jwt.verify() without algorithms option is VULNERABLE
@@ -142,13 +143,13 @@ const decoded = jwt.verify(token, SECRET, {
142
143
  // ✅ jwt.verify(token, SECRET, { algorithms: ["HS256"] });
143
144
 
144
145
  // Authorization: check BEFORE business logic
145
- app.delete("/api/posts/:id", async (req, res) => {
146
+ app.delete('/api/posts/:id', async (req, res) => {
146
147
  const post = await getPost(req.params.id);
147
- if (!post) return res.status(404).json({ error: "Not found" });
148
+ if (!post) return res.status(404).json({ error: 'Not found' });
148
149
 
149
150
  // ✅ Authorization check BEFORE delete
150
- if (post.authorId !== req.user.id && req.user.role !== "admin") {
151
- return res.status(403).json({ error: "Forbidden" });
151
+ if (post.authorId !== req.user.id && req.user.role !== 'admin') {
152
+ return res.status(403).json({ error: 'Forbidden' });
152
153
  }
153
154
 
154
155
  await deletePost(post.id);
@@ -196,7 +197,7 @@ Defense:
196
197
  ## Security Headers
197
198
 
198
199
  ```typescript
199
- import helmet from "helmet";
200
+ import helmet from 'helmet';
200
201
 
201
202
  app.use(helmet()); // Sets secure defaults
202
203
 
@@ -211,8 +212,8 @@ app.use(helmet()); // Sets secure defaults
211
212
  // CORS — never wildcard in production
212
213
  app.use(
213
214
  cors({
214
- origin: ["https://myapp.com", "https://admin.myapp.com"],
215
- methods: ["GET", "POST", "PUT", "DELETE"],
215
+ origin: ['https://myapp.com', 'https://admin.myapp.com'],
216
+ methods: ['GET', 'POST', 'PUT', 'DELETE'],
216
217
  credentials: true,
217
218
  }),
218
219
  );
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before auditing accessibility or building UI components, you MUST inspect:
23
+
23
24
  1. Native Semantic HTML First Rule (Section 28) → Use native `<button>`, `<a>`, `<label>` elements; ban adding `role="button"` to non-interactive `<div>` tags
24
25
  2. Keyboard Focus Visibility (Section 61) → Preserve `:focus-visible` outlines; ban global outline removal (`*:focus { outline: none; }`)
25
26
  3. Explicit Form Label Linking (Section 129) → Explicitly link inputs to `<label>` via `id`/`for` attributes; ban using `placeholder` as a label replacement
@@ -104,7 +105,7 @@ When a modal opens:
104
105
  <button formmethod="dialog">Close</button>
105
106
  </dialog>
106
107
  <script>
107
- document.getElementById("myModal").showModal();
108
+ document.getElementById('myModal').showModal();
108
109
  </script>
109
110
  ```
110
111
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before enforcing web design guidelines or reviewing UI code, you MUST inspect:
23
+
23
24
  1. APCA Contrast Thresholds (Section 14) → Require Lc > 75 for body text, Lc > 60 for headings, Lc > 45 for controls/borders
24
25
  2. Core Web Vitals Targets (Section 23) → Ensure LCP < 1.5s (fetchpriority="high"), INP < 100ms, and CLS = 0.00 (explicit aspect-ratio)
25
26
  3. Compositor-Only Motion (Section 30) → Restrict animations strictly to `transform` and `opacity` to avoid layout reflows
@@ -31,30 +32,35 @@ This skill defines performance, accessibility, and rendering efficiency guidelin
31
32
  ## 1. APCA Contrast Guidelines (WCAG 3.0 Base)
32
33
 
33
34
  APCA calculates lightness contrast mathematically based on font size and background luminance.
34
- * **Body Text:** Lc > 75 is required for body text readability.
35
- * **Headings:** Lc > 60 is required for headings.
36
- * **Controls/Borders:** Lc > 45 is required for visual divider borders and focus rings.
35
+
36
+ - **Body Text:** Lc > 75 is required for body text readability.
37
+ - **Headings:** Lc > 60 is required for headings.
38
+ - **Controls/Borders:** Lc > 45 is required for visual divider borders and focus rings.
37
39
 
38
40
  ---
39
41
 
40
42
  ## 2. Core Web Vitals (CWV)
41
- * **Largest Contentful Paint (LCP < 1.5s):** Hero banners and images must use the `fetchpriority="high"` tag. Avoid blocking layout paints with heavy JS scripts.
42
- * **Interaction to Next Paint (INP < 100ms):** Enforce main-thread speed. Wrap heavy operations in `startTransition` or React's deferred values.
43
- * **Cumulative Layout Shift (CLS = 0.00):** Image nodes must declare explicit width/height dimensions or aspect-ratios. Pre-allocate spaces for dynamic elements.
43
+
44
+ - **Largest Contentful Paint (LCP < 1.5s):** Hero banners and images must use the `fetchpriority="high"` tag. Avoid blocking layout paints with heavy JS scripts.
45
+ - **Interaction to Next Paint (INP < 100ms):** Enforce main-thread speed. Wrap heavy operations in `startTransition` or React's deferred values.
46
+ - **Cumulative Layout Shift (CLS = 0.00):** Image nodes must declare explicit width/height dimensions or aspect-ratios. Pre-allocate spaces for dynamic elements.
44
47
 
45
48
  ---
46
49
 
47
50
  ## 3. Sustainable & Battery-Efficient UI
48
- * **Compositor Properties:** Transitions and animations must only animate `transform` and `opacity`. Animating properties like `margin`, `width`, `height`, or `top` triggers layout reflows and wastes CPU cycles.
49
- * **OLED Blacks:** For dark luxury themes, base backgrounds must use OLED-friendly blacks (`oklch(0.08 0.005 250)` or `#000000`) to physically turn off pixels on compatible screens.
50
- * **Font Subsetting:** Self-host typography files and use variable fonts to minimize network payloads.
51
- * **Image Formats:** Serve images exclusively in AVIF or WebP formats.
51
+
52
+ - **Compositor Properties:** Transitions and animations must only animate `transform` and `opacity`. Animating properties like `margin`, `width`, `height`, or `top` triggers layout reflows and wastes CPU cycles.
53
+ - **OLED Blacks:** For dark luxury themes, base backgrounds must use OLED-friendly blacks (`oklch(0.08 0.005 250)` or `#000000`) to physically turn off pixels on compatible screens.
54
+ - **Font Subsetting:** Self-host typography files and use variable fonts to minimize network payloads.
55
+ - **Image Formats:** Serve images exclusively in AVIF or WebP formats.
52
56
 
53
57
  ---
54
58
 
55
59
  ## Pre-Flight Checklist
60
+
56
61
  - [ ] Have I reviewed the user's specific constraints and requests?
57
62
  - [ ] Have I checked the environment for relevant existing implementations?
58
63
 
59
64
  ## VBC Protocol (Verification-Before-Completion)
65
+
60
66
  You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before executing web quality audits or Lighthouse-style evaluations, you MUST inspect:
23
+
23
24
  1. Core Web Vitals Benchmarks (Section 24) → LCP $\le 2.5\text{s}$, INP $\le 200\text{ms}$, CLS $\le 0.1$
24
25
  2. Layout Shift Prevention (Section 27) → Enforce explicit `width`/`height` or aspect-ratio declarations on all media tags
25
26
  3. Async Script Loading (Section 46) → Enforce `async` or `defer` attributes on all third-party script tags in `<head>`
@@ -31,19 +32,23 @@ Conduct a comprehensive multi-pillar web quality audit covering Performance, Acc
31
32
  ## 4 Quality Pillars
32
33
 
33
34
  ### 1. Core Web Vitals (Performance)
35
+
34
36
  - **Largest Contentful Paint (LCP)**: Target $\le 2.5\text{s}$. Preload hero images using `<link rel="preload" as="image">` and fetchpriority="high".
35
37
  - **Interaction to Next Paint (INP)**: Target $\le 200\text{ms}$. Break long JS tasks into smaller chunks using `setTimeout` or `requestIdleCallback`.
36
38
  - **Cumulative Layout Shift (CLS)**: Target $\le 0.1$. Set explicit `width` and `height` attributes on images and videos; reserve space for dynamic ads/banners.
37
39
 
38
40
  ### 2. Accessibility (a11y)
41
+
39
42
  - Target 100/100 score. Verify all interactive controls have accessible names, proper contrast ($\ge 4.5:1$), and complete keyboard accessibility.
40
43
 
41
44
  ### 3. Web Best Practices
45
+
42
46
  - Serve images in modern formats (`.webp` or `.avif`).
43
47
  - Enforce HTTPS security headers (`Content-Security-Policy`, `X-Frame-Options`, `Strict-Transport-Security`).
44
48
  - Eliminate console errors and unhandled promise rejections.
45
49
 
46
50
  ### 4. Search Engine Optimization (SEO)
51
+
47
52
  - Valid HTML5 document structure (`<!DOCTYPE html>`, `<html>` with `lang`, single `<h1>`).
48
53
  - Robots.txt, sitemap.xml, canonical URLs, and structured JSON-LD data.
49
54
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before building web application test suites or configuring component mocks, you MUST inspect:
23
+
23
24
  1. Testing Trophy Allocation (Section 27) → Prioritize Integration tests (60% RTL + MSW) over pure Unit (20%) or E2E (10%)
24
25
  2. MSW Network Interception Rule (Section 40) → Intercept HTTP network calls via MSW (`setupServer`); ban mocking library clients like `axios.get.mockResolvedValue`
25
26
  3. Decouple Business Logic from React (Section 99) → Extract complex calculations into pure testable functions outside React components
@@ -55,17 +56,17 @@ To prevent network calls, utilize Mock Service Worker (MSW) which intercepts req
55
56
 
56
57
  ```typescript
57
58
  // ❌ BAD: Mocking implementation details
58
- jest.mock("axios");
59
+ jest.mock('axios');
59
60
  axios.get.mockResolvedValue({ data: { users: [] } });
60
61
 
61
62
  // ✅ GOOD: MSW (Mock Service Worker) network level interception
62
63
  // The component functions EXACTLY as it would in production
63
- import { http, HttpResponse } from "msw";
64
- import { setupServer } from "msw/node";
64
+ import { http, HttpResponse } from 'msw';
65
+ import { setupServer } from 'msw/node';
65
66
 
66
67
  export const handlers = [
67
- http.get("/api/users", () => {
68
- return HttpResponse.json([{ id: 1, name: "John Appleseed" }]);
68
+ http.get('/api/users', () => {
69
+ return HttpResponse.json([{ id: 1, name: 'John Appleseed' }]);
69
70
  }),
70
71
  ];
71
72
  const server = setupServer(...handlers);
@@ -112,21 +113,21 @@ Isolate business logic entirely from React.
112
113
  ```typescript
113
114
  // ✅ Move complex logic OUT of the React component entirely
114
115
  export function calculateTax(subtotal: number, state: string): number {
115
- if (subtotal < 0) throw new Error("Subtotal cannot be negative");
116
- if (state === "CA") return subtotal * 0.0825;
116
+ if (subtotal < 0) throw new Error('Subtotal cannot be negative');
117
+ if (state === 'CA') return subtotal * 0.0825;
117
118
  return 0; // Default
118
119
  }
119
120
 
120
121
  // ✅ Test with extreme precision and coverage
121
- import { describe, it, expect } from "vitest";
122
+ import { describe, it, expect } from 'vitest';
122
123
 
123
- describe("calculateTax()", () => {
124
- it("applies CA tax correctly", () => {
125
- expect(calculateTax(100, "CA")).toBe(8.25);
124
+ describe('calculateTax()', () => {
125
+ it('applies CA tax correctly', () => {
126
+ expect(calculateTax(100, 'CA')).toBe(8.25);
126
127
  });
127
128
 
128
- it("throws on negative input", () => {
129
- expect(() => calculateTax(-50, "CA")).toThrowError("negative");
129
+ it('throws on negative input', () => {
130
+ expect(() => calculateTax(-50, 'CA')).toThrowError('negative');
130
131
  });
131
132
  });
132
133
  ```
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing WebGPU shaders or pipelines, you MUST inspect:
23
+
23
24
  1. Feature Detection (Section 64) → Always feature-detect WebGPU with `if (!navigator.gpu)` and provide WebGL fallback
24
25
  2. WGSL Buffer Alignment (Section 17) → Pad WGSL structs strictly to 16-byte boundaries (`vec4<f32>`) to prevent memory corruption
25
26
  3. Async Buffer Mapping (Section 68) → Use `mapAsync(GPUMapMode.READ)` to read GPU buffers without main-thread blocking
@@ -21,6 +21,7 @@ scripts-binding:
21
21
  ## Mandatory Pre-Flight Context Inspection
22
22
 
23
23
  Before injecting micro-animations or interaction polish, you MUST inspect:
24
+
24
25
  1. `package.json` → Check installed motion dependencies (`framer-motion`, `gsap`, `@vueuse/motion`, CSS-only)
25
26
  2. Whimsy Quota Rules (Section 228) → Max 3 distinct animation types per page; keep CLS impact at ZERO
26
27
  3. Duration Constraints (Section 238) → Keep hover interactions $\le 150\text{ms}$ and entrance animations $\le 300\text{ms}$
@@ -78,23 +79,26 @@ You are a specialized agent for injecting "micro-delights" into user interfaces
78
79
  ```javascript
79
80
  // Vanilla JS — IntersectionObserver trigger
80
81
  const observer = new IntersectionObserver(
81
- (entries) => {
82
- entries.forEach((entry) => {
82
+ entries => {
83
+ entries.forEach(entry => {
83
84
  if (entry.isIntersecting) {
84
- entry.target.classList.add("visible");
85
+ entry.target.classList.add('visible');
85
86
  }
86
87
  });
87
88
  },
88
89
  { threshold: 0.1 },
89
90
  );
90
- document.querySelectorAll(".reveal").forEach((el) => observer.observe(el));
91
+ document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
91
92
  ```
92
93
 
93
94
  ```jsx
94
95
  // React — Framer Motion stagger (only if framer-motion is in package.json)
95
96
  <motion.ul variants={{ show: { transition: { staggerChildren: 0.05 } } }}>
96
97
  {items.map((item, i) => (
97
- <motion.li key={item.id} variants={{ hidden: { opacity: 0, y: 20 }, show: { opacity: 1, y: 0 } }} />
98
+ <motion.li
99
+ key={item.id}
100
+ variants={{ hidden: { opacity: 0, y: 20 }, show: { opacity: 1, y: 0 } }}
101
+ />
98
102
  ))}
99
103
  </motion.ul>
100
104
  ```
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before analyzing tool-calling logs or task efficiency, you MUST inspect:
23
+
23
24
  1. Tool Call Pattern Analysis table (Section 1) → Classify redundant reads, serial bottlenecks, and context dumps
24
25
  2. Parallelism Opportunity Detection (Section 2) → Verify read/write dependency rules for batch tool calls
25
26
  3. Efficiency Score formula (Section 105) → Compute actual vs optimal call ratios accurately
@@ -18,6 +18,7 @@ skills:
18
18
  ## Mandatory Pre-Flight Context Inspection
19
19
 
20
20
  Before implementing auth flows:
21
+
21
22
  1. Conditional UI (Passkey Autofill) → Use `useBrowserAutofill: true` and `autocomplete="username webauthn"` for seamless form autofill
22
23
  2. Feature Detection & Abort Signals → Check `isConditionalMediationAvailable()` and manage cancellation via `AbortController`
23
24
  3. Discoverable Credentials → Ensure `userVerification` and resident key options are enabled on registration
@@ -25,10 +26,7 @@ Before implementing auth flows:
25
26
  ## Client-Side Passkey Autofill Pattern (SimpleWebAuthn v13 Browser)
26
27
 
27
28
  ```typescript
28
- import {
29
- startAuthentication,
30
- isConditionalMediationAvailable
31
- } from '@simplewebauthn/browser';
29
+ import { startAuthentication, isConditionalMediationAvailable } from '@simplewebauthn/browser';
32
30
 
33
31
  export async function initConditionalPasskeyAutofill(abortSignal: AbortSignal) {
34
32
  const isAvailable = await isConditionalMediationAvailable();
@@ -60,9 +58,16 @@ export async function initConditionalPasskeyAutofill(abortSignal: AbortSignal) {
60
58
  ## Server Verification Pattern (SimpleWebAuthn v13 Server)
61
59
 
62
60
  ```typescript
63
- import { verifyAuthenticationResponse, generateAuthenticationOptions } from '@simplewebauthn/server';
61
+ import {
62
+ verifyAuthenticationResponse,
63
+ generateAuthenticationOptions,
64
+ } from '@simplewebauthn/server';
64
65
 
65
- export async function verifyPasskeyAuth(body: any, expectedChallenge: string, userPublicKey: Uint8Array) {
66
+ export async function verifyPasskeyAuth(
67
+ body: any,
68
+ expectedChallenge: string,
69
+ userPublicKey: Uint8Array,
70
+ ) {
66
71
  const verification = await verifyAuthenticationResponse({
67
72
  response: body,
68
73
  expectedChallenge,