tribunal-kit 6.0.0 → 7.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 (353) hide show
  1. package/.agent/.manifest.json +78 -0
  2. package/.agent/ARCHITECTURE.md +19 -241
  3. package/.agent/agents/accessibility-reviewer.md +23 -16
  4. package/.agent/agents/ai-code-reviewer.md +25 -21
  5. package/.agent/agents/anti-pattern-reviewer.md +12 -7
  6. package/.agent/agents/api-architect.md +1 -0
  7. package/.agent/agents/backend-specialist.md +23 -22
  8. package/.agent/agents/cloud-engineer.md +1 -0
  9. package/.agent/agents/code-archaeologist.md +1 -0
  10. package/.agent/agents/complexity-reviewer.md +10 -7
  11. package/.agent/agents/database-architect.md +3 -2
  12. package/.agent/agents/db-latency-auditor.md +6 -2
  13. package/.agent/agents/debugger.md +3 -2
  14. package/.agent/agents/dependency-reviewer.md +1 -0
  15. package/.agent/agents/devops-engineer.md +9 -8
  16. package/.agent/agents/documentation-writer.md +6 -5
  17. package/.agent/agents/explorer-agent.md +1 -0
  18. package/.agent/agents/frontend-reviewer.md +21 -17
  19. package/.agent/agents/frontend-specialist.md +23 -20
  20. package/.agent/agents/game-developer.md +1 -0
  21. package/.agent/agents/interaction-reviewer.md +10 -5
  22. package/.agent/agents/logic-reviewer.md +3 -0
  23. package/.agent/agents/minimalist-reviewer.md +6 -0
  24. package/.agent/agents/mobile-developer.md +7 -6
  25. package/.agent/agents/mobile-reviewer.md +14 -13
  26. package/.agent/agents/orchestrator.md +3 -0
  27. package/.agent/agents/penetration-tester.md +1 -0
  28. package/.agent/agents/performance-optimizer.md +6 -5
  29. package/.agent/agents/performance-reviewer.md +6 -6
  30. package/.agent/agents/pipeline-reviewer.md +144 -0
  31. package/.agent/agents/precedence-reviewer.md +1 -0
  32. package/.agent/agents/product-manager.md +1 -0
  33. package/.agent/agents/product-owner.md +1 -0
  34. package/.agent/agents/product-reviewer.md +12 -7
  35. package/.agent/agents/project-planner.md +3 -0
  36. package/.agent/agents/qa-automation-engineer.md +50 -43
  37. package/.agent/agents/resilience-reviewer.md +1 -0
  38. package/.agent/agents/schema-reviewer.md +1 -0
  39. package/.agent/agents/security-auditor.md +24 -24
  40. package/.agent/agents/seo-specialist.md +33 -23
  41. package/.agent/agents/sql-reviewer.md +5 -4
  42. package/.agent/agents/supervisor-agent.md +12 -2
  43. package/.agent/agents/swarm-worker-contracts.md +13 -13
  44. package/.agent/agents/swarm-worker-registry.md +51 -51
  45. package/.agent/agents/system-architect.md +1 -0
  46. package/.agent/agents/test-coverage-reviewer.md +25 -22
  47. package/.agent/agents/test-engineer.md +12 -11
  48. package/.agent/agents/throughput-optimizer.md +45 -40
  49. package/.agent/agents/type-safety-reviewer.md +5 -4
  50. package/.agent/agents/ui-ux-auditor.md +6 -4
  51. package/.agent/agents/ui-visual-auditor.md +3 -0
  52. package/.agent/agents/ux-reviewer.md +11 -6
  53. package/.agent/agents/visual-reviewer.md +11 -6
  54. package/.agent/agents/vitals-reviewer.md +5 -4
  55. package/.agent/history/memory/.memory.idx +3716 -1
  56. package/.agent/history/memory/MEMORY.md +246 -1
  57. package/.agent/mcp_config.json +1 -6
  58. package/.agent/routing_index.json +2034 -263
  59. package/.agent/rules/GEMINI.md +12 -10
  60. package/.agent/rules/GEMINI_PLANNER.md +19 -21
  61. package/.agent/scripts/_colors.js +52 -54
  62. package/.agent/scripts/_utils.js +52 -53
  63. package/.agent/scripts/auto_preview.js +39 -43
  64. package/.agent/scripts/bundle_analyzer.js +47 -60
  65. package/.agent/scripts/case_law_manager.js +200 -294
  66. package/.agent/scripts/checklist.js +73 -94
  67. package/.agent/scripts/cicd_validator.js +305 -0
  68. package/.agent/scripts/compile_router.py +4 -111
  69. package/.agent/scripts/context_broker.js +317 -412
  70. package/.agent/scripts/contract_engine.js +402 -0
  71. package/.agent/scripts/dependency_analyzer.js +112 -124
  72. package/.agent/scripts/graph_builder.js +75 -103
  73. package/.agent/scripts/graph_visualizer.js +10 -12
  74. package/.agent/scripts/graph_zoom.js +38 -55
  75. package/.agent/scripts/guardrail_engine.js +195 -145
  76. package/.agent/scripts/impact_classifier.js +55 -30
  77. package/.agent/scripts/inner_loop_validator.js +108 -159
  78. package/.agent/scripts/integrity_manifest.js +59 -67
  79. package/.agent/scripts/lint_runner.js +65 -75
  80. package/.agent/scripts/marathon_harness.js +131 -208
  81. package/.agent/scripts/migrate_skills_frontmatter.py +4 -63
  82. package/.agent/scripts/minify_context.js +29 -33
  83. package/.agent/scripts/minimal_change_engine.js +95 -87
  84. package/.agent/scripts/mutation_runner.js +46 -62
  85. package/.agent/scripts/pipeline_engine.js +320 -209
  86. package/.agent/scripts/prompt_compiler.js +118 -93
  87. package/.agent/scripts/schema_validator.js +73 -121
  88. package/.agent/scripts/security_scan.js +88 -117
  89. package/.agent/scripts/session_manager.js +52 -69
  90. package/.agent/scripts/signal_detector.js +24 -22
  91. package/.agent/scripts/skill_evolution.js +184 -245
  92. package/.agent/scripts/skill_integrator.js +35 -48
  93. package/.agent/scripts/socratic_gate_policy.js +15 -12
  94. package/.agent/scripts/strengthen_skills.js +29 -33
  95. package/.agent/scripts/swarm_dispatcher.js +120 -151
  96. package/.agent/scripts/test_runner.js +54 -56
  97. package/.agent/scripts/token_budget_broker.js +9 -7
  98. package/.agent/scripts/trace_engine.js +126 -0
  99. package/.agent/scripts/verify_all.js +76 -93
  100. package/.agent/scripts/visual_audit.js +16 -21
  101. package/.agent/skill_topic_map.json +237 -0
  102. package/.agent/skills/12-principles-of-animation/SKILL.md +7 -0
  103. package/.agent/skills/60fps-animation/SKILL.md +7 -0
  104. package/.agent/skills/accessible-animation/SKILL.md +5 -1
  105. package/.agent/skills/adapt/SKILL.md +7 -1
  106. package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -0
  107. package/.agent/skills/agent-organizer/SKILL.md +1 -0
  108. package/.agent/skills/agentic-patterns/SKILL.md +33 -25
  109. package/.agent/skills/agentic-workflows-2026/SKILL.md +80 -0
  110. package/.agent/skills/ai-app-hardening/SKILL.md +59 -0
  111. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +7 -6
  112. package/.agent/skills/animation-on-scroll/SKILL.md +24 -15
  113. package/.agent/skills/animation-systems/SKILL.md +11 -10
  114. package/.agent/skills/antfu-conventions/SKILL.md +7 -2
  115. package/.agent/skills/api-patterns/SKILL.md +14 -10
  116. package/.agent/skills/api-security-auditor/SKILL.md +15 -14
  117. package/.agent/skills/app-builder/SKILL.md +1 -0
  118. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +2 -2
  119. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
  120. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +12 -12
  121. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +3 -3
  122. package/.agent/skills/apple-design/SKILL.md +8 -7
  123. package/.agent/skills/architecture/SKILL.md +3 -2
  124. package/.agent/skills/audit-and-fix/SKILL.md +8 -5
  125. package/.agent/skills/authentication-best-practices/SKILL.md +9 -8
  126. package/.agent/skills/backend-security-expert/SKILL.md +1 -0
  127. package/.agent/skills/baseline-ui/SKILL.md +8 -7
  128. package/.agent/skills/bash-linux/SKILL.md +1 -0
  129. package/.agent/skills/behavioral-modes/SKILL.md +1 -0
  130. package/.agent/skills/better-colors/SKILL.md +11 -7
  131. package/.agent/skills/better-typography/SKILL.md +30 -16
  132. package/.agent/skills/better-ui/SKILL.md +17 -10
  133. package/.agent/skills/bolder/SKILL.md +6 -0
  134. package/.agent/skills/brainstorming/SKILL.md +6 -4
  135. package/.agent/skills/browser-native-ai/SKILL.md +5 -4
  136. package/.agent/skills/build-primitive/SKILL.md +5 -0
  137. package/.agent/skills/building-native-ui/SKILL.md +1 -0
  138. package/.agent/skills/cicd-pro/SKILL.md +2 -1
  139. package/.agent/skills/clarify/SKILL.md +19 -14
  140. package/.agent/skills/clean-code/SKILL.md +16 -15
  141. package/.agent/skills/cloud-architect/SKILL.md +1 -0
  142. package/.agent/skills/cobejs/SKILL.md +7 -9
  143. package/.agent/skills/code-review-checklist/SKILL.md +1 -0
  144. package/.agent/skills/codebase-design/SKILL.md +7 -2
  145. package/.agent/skills/colorize/SKILL.md +8 -3
  146. package/.agent/skills/compact-landing/SKILL.md +8 -3
  147. package/.agent/skills/company-logos/SKILL.md +6 -0
  148. package/.agent/skills/config-validator/SKILL.md +10 -9
  149. package/.agent/skills/containerization-pro/SKILL.md +6 -5
  150. package/.agent/skills/context-engineering-pro/SKILL.md +70 -0
  151. package/.agent/skills/create-design-md/SKILL.md +13 -5
  152. package/.agent/skills/critique/SKILL.md +10 -8
  153. package/.agent/skills/csharp-developer/SKILL.md +1 -0
  154. package/.agent/skills/data-validation-schemas/SKILL.md +28 -23
  155. package/.agent/skills/database-design/SKILL.md +2 -1
  156. package/.agent/skills/delight/SKILL.md +6 -0
  157. package/.agent/skills/deployment-procedures/SKILL.md +2 -1
  158. package/.agent/skills/design-lab/SKILL.md +5 -0
  159. package/.agent/skills/devops-engineer/SKILL.md +3 -2
  160. package/.agent/skills/devops-incident-responder/SKILL.md +2 -1
  161. package/.agent/skills/diagnosing-bugs/SKILL.md +12 -2
  162. package/.agent/skills/distill/SKILL.md +7 -2
  163. package/.agent/skills/documentation-templates/SKILL.md +3 -2
  164. package/.agent/skills/domain-modeling/SKILL.md +12 -4
  165. package/.agent/skills/duckdb-analytical-sql/SKILL.md +59 -0
  166. package/.agent/skills/edge-ai-mobile/SKILL.md +50 -0
  167. package/.agent/skills/edge-computing/SKILL.md +9 -8
  168. package/.agent/skills/emil-design-eng/SKILL.md +43 -27
  169. package/.agent/skills/error-resilience/SKILL.md +34 -16
  170. package/.agent/skills/expo-router-v4/SKILL.md +81 -0
  171. package/.agent/skills/extract-design-system/SKILL.md +12 -11
  172. package/.agent/skills/fabel-protocol/SKILL.md +24 -17
  173. package/.agent/skills/fixing-accessibility/SKILL.md +23 -16
  174. package/.agent/skills/fixing-metadata/SKILL.md +24 -13
  175. package/.agent/skills/fixing-motion-performance/SKILL.md +7 -5
  176. package/.agent/skills/framer-motion-expert/SKILL.md +29 -15
  177. package/.agent/skills/frontend-design/SKILL.md +21 -13
  178. package/.agent/skills/frontend-security-expert/SKILL.md +1 -0
  179. package/.agent/skills/game-design-expert/SKILL.md +1 -0
  180. package/.agent/skills/game-engineering-expert/SKILL.md +1 -0
  181. package/.agent/skills/generative-ui-expert/SKILL.md +3 -2
  182. package/.agent/skills/geo-fundamentals/SKILL.md +2 -1
  183. package/.agent/skills/git-pro/SKILL.md +10 -9
  184. package/.agent/skills/github-operations/SKILL.md +2 -1
  185. package/.agent/skills/gpt-taste/SKILL.md +7 -0
  186. package/.agent/skills/gsap-core/SKILL.md +26 -22
  187. package/.agent/skills/gsap-frameworks/SKILL.md +6 -5
  188. package/.agent/skills/gsap-performance/SKILL.md +4 -3
  189. package/.agent/skills/gsap-plugins/SKILL.md +34 -33
  190. package/.agent/skills/gsap-react/SKILL.md +9 -8
  191. package/.agent/skills/gsap-scrolltrigger/SKILL.md +34 -33
  192. package/.agent/skills/gsap-timeline/SKILL.md +18 -15
  193. package/.agent/skills/gsap-utils/SKILL.md +25 -24
  194. package/.agent/skills/harden/SKILL.md +9 -3
  195. package/.agent/skills/harness-protocol/SKILL.md +1 -0
  196. package/.agent/skills/i18n-localization/SKILL.md +10 -9
  197. package/.agent/skills/impeccable/SKILL.md +5 -0
  198. package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -5
  199. package/.agent/skills/improve-ui/SKILL.md +12 -5
  200. package/.agent/skills/intelligent-routing/SKILL.md +7 -6
  201. package/.agent/skills/knowledge-graph/SKILL.md +1 -0
  202. package/.agent/skills/landing-page/SKILL.md +1 -0
  203. package/.agent/skills/lint-and-validate/SKILL.md +9 -4
  204. package/.agent/skills/llm-engineering/SKILL.md +55 -54
  205. package/.agent/skills/local-first/SKILL.md +20 -19
  206. package/.agent/skills/local-first-architecture/SKILL.md +6 -1
  207. package/.agent/skills/lottie-animation/SKILL.md +7 -3
  208. package/.agent/skills/marquee-loop/SKILL.md +1 -0
  209. package/.agent/skills/masked-reveal/SKILL.md +17 -4
  210. package/.agent/skills/mcp-builder/SKILL.md +13 -10
  211. package/.agent/skills/micro-interaction/SKILL.md +20 -5
  212. package/.agent/skills/mobile-design/SKILL.md +26 -15
  213. package/.agent/skills/monorepo-management/SKILL.md +3 -2
  214. package/.agent/skills/morphing-icons/SKILL.md +16 -6
  215. package/.agent/skills/motion-engineering/SKILL.md +19 -15
  216. package/.agent/skills/nextjs-react-expert/SKILL.md +26 -21
  217. package/.agent/skills/nodejs-best-practices/SKILL.md +89 -76
  218. package/.agent/skills/observability/SKILL.md +45 -44
  219. package/.agent/skills/opentelemetry-observability/SKILL.md +59 -0
  220. package/.agent/skills/page-transition-animation/SKILL.md +6 -3
  221. package/.agent/skills/parallel-agents/SKILL.md +7 -2
  222. package/.agent/skills/performance-profiling/SKILL.md +24 -13
  223. package/.agent/skills/plan-writing/SKILL.md +1 -0
  224. package/.agent/skills/platform-engineer/SKILL.md +3 -2
  225. package/.agent/skills/platform-engineering-opentofu/SKILL.md +68 -0
  226. package/.agent/skills/playwright-ai-e2e/SKILL.md +60 -0
  227. package/.agent/skills/playwright-best-practices/SKILL.md +29 -28
  228. package/.agent/skills/polish/SKILL.md +13 -12
  229. package/.agent/skills/powershell-windows/SKILL.md +1 -0
  230. package/.agent/skills/pricing-page/SKILL.md +8 -3
  231. package/.agent/skills/product-aware-heuristics/SKILL.md +122 -72
  232. package/.agent/skills/progressive-blur/SKILL.md +9 -4
  233. package/.agent/skills/project-idioms/SKILL.md +1 -0
  234. package/.agent/skills/property-based-testing/SKILL.md +58 -0
  235. package/.agent/skills/python-patterns/SKILL.md +1 -0
  236. package/.agent/skills/python-pro/SKILL.md +1 -0
  237. package/.agent/skills/quieter/SKILL.md +6 -0
  238. package/.agent/skills/react-doctor/SKILL.md +6 -0
  239. package/.agent/skills/react-specialist/SKILL.md +32 -28
  240. package/.agent/skills/readme-builder/SKILL.md +1 -0
  241. package/.agent/skills/realtime-patterns/SKILL.md +34 -33
  242. package/.agent/skills/red-team-tactics/SKILL.md +1 -0
  243. package/.agent/skills/redesign-skill/SKILL.md +6 -0
  244. package/.agent/skills/review-animations/SKILL.md +5 -2
  245. package/.agent/skills/review-animations/STANDARDS.md +37 -23
  246. package/.agent/skills/rust-pro/SKILL.md +1 -0
  247. package/.agent/skills/seo-fundamentals/SKILL.md +4 -3
  248. package/.agent/skills/server-management/SKILL.md +1 -0
  249. package/.agent/skills/shadcn-ui-expert/SKILL.md +28 -22
  250. package/.agent/skills/shape/SKILL.md +9 -2
  251. package/.agent/skills/skill-creator/SKILL.md +1 -0
  252. package/.agent/skills/soft-skill/SKILL.md +6 -0
  253. package/.agent/skills/sounds-on-the-web/SKILL.md +1 -0
  254. package/.agent/skills/sql-pro/SKILL.md +1 -0
  255. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -0
  256. package/.agent/skills/svg-animation/SKILL.md +16 -7
  257. package/.agent/skills/swiftui-expert/SKILL.md +1 -0
  258. package/.agent/skills/swiss-design/SKILL.md +5 -0
  259. package/.agent/skills/system-design-pro/SKILL.md +1 -0
  260. package/.agent/skills/systematic-debugging/SKILL.md +1 -0
  261. package/.agent/skills/tailwind-patterns/SKILL.md +25 -11
  262. package/.agent/skills/taste-skill/SKILL.md +6 -0
  263. package/.agent/skills/tdd-workflow/SKILL.md +5 -0
  264. package/.agent/skills/test-result-analyzer/SKILL.md +1 -0
  265. package/.agent/skills/testing-patterns/SKILL.md +123 -115
  266. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +5 -0
  267. package/.agent/skills/thinking-protocol/SKILL.md +3 -0
  268. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -8
  269. package/.agent/skills/transitions-dev/SKILL.md +19 -6
  270. package/.agent/skills/trend-researcher/SKILL.md +1 -0
  271. package/.agent/skills/typescript-advanced/SKILL.md +23 -18
  272. package/.agent/skills/typeset/SKILL.md +10 -1
  273. package/.agent/skills/ui-reasoning-engine/SKILL.md +67 -48
  274. package/.agent/skills/ui-skill-packs/SKILL.md +6 -1
  275. package/.agent/skills/ui-skills-root/SKILL.md +39 -38
  276. package/.agent/skills/ui-ux-pro-max/SKILL.md +34 -26
  277. package/.agent/skills/ui-ux-researcher/SKILL.md +1 -0
  278. package/.agent/skills/vector-search-pgvector/SKILL.md +78 -0
  279. package/.agent/skills/vue-expert/SKILL.md +22 -19
  280. package/.agent/skills/vulnerability-scanner/SKILL.md +22 -21
  281. package/.agent/skills/web-accessibility-auditor/SKILL.md +2 -1
  282. package/.agent/skills/web-design-guidelines/SKILL.md +16 -10
  283. package/.agent/skills/web-quality-audit/SKILL.md +5 -0
  284. package/.agent/skills/webapp-testing/SKILL.md +14 -13
  285. package/.agent/skills/webgpu-performance/SKILL.md +1 -0
  286. package/.agent/skills/whimsy-injector/SKILL.md +9 -5
  287. package/.agent/skills/workflow-optimizer/SKILL.md +1 -0
  288. package/.agent/skills/zero-trust-passkeys/SKILL.md +90 -0
  289. package/.agent/templates/DESIGN.md +119 -110
  290. package/.agent/templates/design-tokens.json +9 -6
  291. package/.agent/workflows/acf.md +1 -0
  292. package/.agent/workflows/api-tester.md +1 -0
  293. package/.agent/workflows/audit.md +1 -0
  294. package/.agent/workflows/brainstorm.md +1 -0
  295. package/.agent/workflows/changelog.md +1 -0
  296. package/.agent/workflows/contract.md +60 -0
  297. package/.agent/workflows/create.md +1 -0
  298. package/.agent/workflows/debug.md +1 -0
  299. package/.agent/workflows/deploy.md +1 -0
  300. package/.agent/workflows/enhance.md +1 -0
  301. package/.agent/workflows/fix-ci.md +89 -0
  302. package/.agent/workflows/fix.md +1 -0
  303. package/.agent/workflows/generate.md +1 -0
  304. package/.agent/workflows/marathon.md +1 -0
  305. package/.agent/workflows/migrate.md +1 -0
  306. package/.agent/workflows/minimal.md +9 -7
  307. package/.agent/workflows/orchestrate.md +1 -0
  308. package/.agent/workflows/performance-benchmarker.md +1 -0
  309. package/.agent/workflows/pipeline.md +26 -21
  310. package/.agent/workflows/plan.md +1 -0
  311. package/.agent/workflows/preview.md +1 -0
  312. package/.agent/workflows/refactor.md +3 -2
  313. package/.agent/workflows/review-ai.md +4 -3
  314. package/.agent/workflows/review.md +1 -0
  315. package/.agent/workflows/session.md +1 -0
  316. package/.agent/workflows/status.md +1 -0
  317. package/.agent/workflows/strengthen-skills.md +1 -0
  318. package/.agent/workflows/super-prompt.md +1 -0
  319. package/.agent/workflows/swarm.md +15 -3
  320. package/.agent/workflows/test.md +8 -7
  321. package/.agent/workflows/tribunal-backend.md +3 -2
  322. package/.agent/workflows/tribunal-cicd.md +104 -0
  323. package/.agent/workflows/tribunal-database.md +1 -0
  324. package/.agent/workflows/tribunal-frontend.md +8 -6
  325. package/.agent/workflows/tribunal-full.md +15 -14
  326. package/.agent/workflows/tribunal-mobile.md +6 -5
  327. package/.agent/workflows/tribunal-performance.md +1 -0
  328. package/.agent/workflows/tribunal-speed.md +1 -0
  329. package/.agent/workflows/tribunal-ui.md +29 -21
  330. package/.agent/workflows/ui-ux-pro-max.md +19 -15
  331. package/CONTRIBUTING.md +3 -3
  332. package/README.md +160 -88
  333. package/SECURITY.md +11 -11
  334. package/bin/mcp-server.js +512 -233
  335. package/bin/tribunal-kit.js +29 -30
  336. package/bin/wrapper.js +45 -48
  337. package/dist/cli.js +26 -0
  338. package/dist/commands/case.js +2 -0
  339. package/dist/commands/contract.js +440 -0
  340. package/dist/commands/memory.js +3 -2
  341. package/dist/commands/native.js +36 -0
  342. package/dist/commands/status.js +6 -0
  343. package/dist/esm/index.mjs +32 -0
  344. package/dist/index.d.ts +58 -3
  345. package/package.json +20 -16
  346. package/scripts/benchmark.js +62 -86
  347. package/scripts/changelog.js +67 -73
  348. package/scripts/fix-vbc.js +13 -15
  349. package/scripts/fix-vbc.ps1 +2 -118
  350. package/scripts/stress_benchmark.js +358 -0
  351. package/scripts/sync-version.js +71 -41
  352. package/scripts/validate-payload.js +23 -30
  353. package/scripts/visual_audit.js +23 -13
@@ -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
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before designing agentic loops, tool schemas, or memory architectures, you MUST inspect:
23
+
23
24
  1. `package.json` / LLM SDK definitions → Check tool calling syntax (Zod schemas, OpenAI/Anthropic function calling API)
24
25
  2. Agent Loop boundaries (Section 1) → Define hard caps on `MAX_STEPS` (default: 10) and explicit termination reasons
25
26
  3. Human-in-the-loop gates (Section 5) → Ensure approval gates for destructive, data-deleting, or high-cost API calls
@@ -45,7 +46,7 @@ PERCEIVE → PLAN → ACT → OBSERVE → (repeat or terminate)
45
46
  ```ts
46
47
  // The three termination conditions — always define all three
47
48
  type AgentResult = {
48
- reason: "goal_reached" | "max_steps_exceeded" | "human_escalation";
49
+ reason: 'goal_reached' | 'max_steps_exceeded' | 'human_escalation';
49
50
  steps: number;
50
51
  result: string;
51
52
  };
@@ -63,23 +64,24 @@ Tools are the agent's interface to the real world. Design them defensively:
63
64
  // Tool definition — what the LLM sees and how to call it
64
65
  const tools = [
65
66
  {
66
- type: "function",
67
+ type: 'function',
67
68
  function: {
68
- name: "search_database",
69
- description: "Search the product database. Use this before creating a new record to avoid duplicates.",
69
+ name: 'search_database',
70
+ description:
71
+ 'Search the product database. Use this before creating a new record to avoid duplicates.',
70
72
  parameters: {
71
- type: "object",
73
+ type: 'object',
72
74
  properties: {
73
75
  query: {
74
- type: "string",
75
- description: "Search terms — be specific",
76
+ type: 'string',
77
+ description: 'Search terms — be specific',
76
78
  },
77
79
  limit: {
78
- type: "number",
79
- description: "Max results to return. Default: 5, max: 20",
80
+ type: 'number',
81
+ description: 'Max results to return. Default: 5, max: 20',
80
82
  },
81
83
  },
82
- required: ["query"],
84
+ required: ['query'],
83
85
  },
84
86
  },
85
87
  },
@@ -145,10 +147,13 @@ async function buildContext(userId: string, currentQuery: string) {
145
147
  });
146
148
 
147
149
  return [
148
- { role: "system", content: systemPrompt },
150
+ { role: 'system', content: systemPrompt },
149
151
  // Inject relevant past context — NOT entire history
150
- { role: "system", content: `Relevant past context:\n${pastMemories.map((m) => m.content).join("\n")}` },
151
- { role: "user", content: currentQuery },
152
+ {
153
+ role: 'system',
154
+ content: `Relevant past context:\n${pastMemories.map(m => m.content).join('\n')}`,
155
+ },
156
+ { role: 'user', content: currentQuery },
152
157
  ];
153
158
  }
154
159
  ```
@@ -175,7 +180,10 @@ Supervisor agent ─→ breaks task into subtasks
175
180
 
176
181
  ```ts
177
182
  // Two independent agents answer the same question — supervisor resolves disagreement
178
- const [answerA, answerB] = await Promise.all([agentA.complete(question), agentB.complete(question)]);
183
+ const [answerA, answerB] = await Promise.all([
184
+ agentA.complete(question),
185
+ agentB.complete(question),
186
+ ]);
179
187
 
180
188
  if (answerA.answer === answerB.answer) {
181
189
  return answerA; // Agreement — high confidence
@@ -209,13 +217,13 @@ async function agentLoop(task: string) {
209
217
  reason: planned.reasoning,
210
218
  confidence: planned.confidence,
211
219
  });
212
- if (!approved) return { reason: "human_rejected", step };
220
+ if (!approved) return { reason: 'human_rejected', step };
213
221
  }
214
222
 
215
223
  // ✅ Confidence gate — don't act when uncertain
216
224
  if (planned.confidence < 0.7) {
217
225
  return {
218
- reason: "human_escalation",
226
+ reason: 'human_escalation',
219
227
  message: `Low confidence (${planned.confidence}) on: ${planned.action.description}`,
220
228
  };
221
229
  }
@@ -238,23 +246,23 @@ Every production agent needs:
238
246
  const guardrails = {
239
247
  // Input guardrails — reject bad prompts before they reach the agent
240
248
  input: [
241
- { check: "no_prompt_injection", action: "reject" },
242
- { check: "within_scope", action: "reject" }, // Off-topic requests
243
- { check: "pii_detection", action: "redact" }, // Redact before processing
249
+ { check: 'no_prompt_injection', action: 'reject' },
250
+ { check: 'within_scope', action: 'reject' }, // Off-topic requests
251
+ { check: 'pii_detection', action: 'redact' }, // Redact before processing
244
252
  ],
245
253
 
246
254
  // Output guardrails — validate before returning
247
255
  output: [
248
- { check: "no_hallucinated_citations", action: "flag" },
249
- { check: "schema_valid", action: "retry_once" },
250
- { check: "no_pii_leaked", action: "reject" },
256
+ { check: 'no_hallucinated_citations', action: 'flag' },
257
+ { check: 'schema_valid', action: 'retry_once' },
258
+ { check: 'no_pii_leaked', action: 'reject' },
251
259
  ],
252
260
 
253
261
  // Resource guardrails — prevent runaway cost/loops
254
262
  resource: [
255
- { check: "max_tokens_per_session", limit: 100_000 },
256
- { check: "max_tool_calls_per_session", limit: 50 },
257
- { check: "max_cost_per_session_usd", limit: 1.0 },
263
+ { check: 'max_tokens_per_session', limit: 100_000 },
264
+ { check: 'max_tool_calls_per_session', limit: 50 },
265
+ { check: 'max_cost_per_session_usd', limit: 1.0 },
258
266
  ],
259
267
  };
260
268
  ```
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: agentic-workflows-2026
3
+ description: Advanced 2026-2027 AI agent loops, ReAct planning, structured tool calling via Zod/Pydantic, streaming generative UI, and human-in-the-loop gates.
4
+ tools: Read, Grep, Glob, Edit, Write
5
+ version: 3.0.0
6
+ last-updated: 2026-08-05
7
+ script: .agent/scripts/swarm_dispatcher.js
8
+ scripts-binding:
9
+ - .agent/scripts/swarm_dispatcher.js
10
+ - .agent/scripts/context_broker.js
11
+ skills:
12
+ - agentic-patterns
13
+ - generative-ui-expert
14
+ - parallel-agents
15
+ ---
16
+
17
+ # Agentic Workflows 2026 — Multi-Agent Architecture
18
+
19
+ ## Mandatory Pre-Flight Context Inspection
20
+
21
+ Before designing autonomous agent loops:
22
+
23
+ 1. Tool Contract Validation → Enforce strict JSON Schema / Zod validation for every tool call
24
+ 2. Hard Execution Limit → Enforce a maximum iteration cap (max 10 turns) to prevent infinite loops
25
+ 3. Human-in-the-Loop Gate → Require human approval for destructive operations (file deletion, production deploy, DB writes)
26
+
27
+ ## Core ReAct Loop Pattern (Zod + TypeScript)
28
+
29
+ ```typescript
30
+ import { z } from 'zod';
31
+
32
+ export const ToolCallSchema = z.object({
33
+ toolName: z.enum(['read_file', 'write_file', 'run_test']),
34
+ args: z.record(z.unknown()),
35
+ reasoning: z.string().min(10),
36
+ });
37
+
38
+ export type ToolCall = z.infer<typeof ToolCallSchema>;
39
+
40
+ export async function runAgentLoop(task: string, maxTurns = 10) {
41
+ let turn = 0;
42
+ const history: Array<{ role: string; content: string }> = [{ role: 'user', content: task }];
43
+
44
+ while (turn < maxTurns) {
45
+ turn++;
46
+ const response = await callLLM(history);
47
+ const parsed = ToolCallSchema.safeParse(response);
48
+
49
+ if (!parsed.success) {
50
+ history.push({
51
+ role: 'system',
52
+ content: `Invalid tool call payload: ${parsed.error.message}`,
53
+ });
54
+ continue;
55
+ }
56
+
57
+ if (parsed.data.toolName === 'write_file') {
58
+ const approved = await requestHumanApproval(parsed.data);
59
+ if (!approved) break;
60
+ }
61
+
62
+ const result = await executeTool(parsed.data);
63
+ history.push({ role: 'tool', content: JSON.stringify(result) });
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## Parallel Fan-Out / Fan-In Execution Matrix
69
+
70
+ ```
71
+ [Supervisor Agent]
72
+ ├── Dispatch Worker A (Backend) ──> WorkerResult A ──┐
73
+ ├── Dispatch Worker B (Database) ──> WorkerResult B ──┼─> [Promise.allSettled Synthesis]
74
+ └── Dispatch Worker C (Frontend) ──> WorkerResult C ──┘
75
+ ```
76
+
77
+ ## 🛑 Verification-Before-Completion (VBC) Protocol
78
+
79
+ - Validate tool arguments before tool execution.
80
+ - Log complete agent trace trajectory for auditability.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: ai-app-hardening
3
+ description: OWASP Top 10 for LLMs (2026), prompt injection defense, model output sanitization, indirect injection defense, and automated SBOM dependency security.
4
+ tools: Read, Grep, Glob, Edit, Write
5
+ version: 3.0.0
6
+ last-updated: 2026-08-05
7
+ script: .agent/scripts/security_scan.js
8
+ scripts-binding:
9
+ - .agent/scripts/security_scan.js
10
+ - .agent/scripts/guardrail_engine.js
11
+ skills:
12
+ - ai-prompt-injection-defense
13
+ - vulnerability-scanner
14
+ - backend-security-expert
15
+ ---
16
+
17
+ # AI Application Hardening & Indirect Prompt Injection Defense
18
+
19
+ ## Mandatory Pre-Flight Context Inspection
20
+
21
+ Before deploying AI features:
22
+
23
+ 1. Indirect Prompt Injection Defense → Sanitize third-party content (scraped URLs, PDF imports, RAG docs) before feeding to LLMs
24
+ 2. XML Delimiter Sandboxing → Enclose user/external inputs inside `<external_context>` and instruct model to ignore instructions within
25
+ 3. Insecure Output Handling (OWASP LLM02) → Escape HTML/script tags on all rendered model outputs
26
+
27
+ ## Indirect Prompt Injection Defense Filter
28
+
29
+ ```typescript
30
+ export function sanitizeRAGDocument(rawDocumentContent: string): string {
31
+ if (!rawDocumentContent || typeof rawDocumentContent !== 'string') return '';
32
+
33
+ // 1. Redact indirect prompt injection trigger phrases
34
+ let cleaned = rawDocumentContent.replace(
35
+ /(?:system:\s*ignore|override system prompt|you are now in developer mode|print system prompt)/gi,
36
+ '[REDACTED_INDIRECT_INJECTION]',
37
+ );
38
+
39
+ // 2. Escape structural tag injection attempts
40
+ cleaned = cleaned.replace(/<\/?(?:system|user_input|external_context)[^>]*>/gi, '');
41
+
42
+ // 3. Truncate document snippet length
43
+ return cleaned.slice(0, 3000).trim();
44
+ }
45
+ ```
46
+
47
+ ## OWASP LLM Top 10 (2026 Matrix)
48
+
49
+ | Risk ID | Vulnerability | Defense Implementation |
50
+ | --------- | ------------------------------------ | --------------------------------------------------- |
51
+ | **LLM01** | Prompt Injection (Direct & Indirect) | Delimiter sandboxing + `sanitizeRAGDocument` filter |
52
+ | **LLM02** | Insecure Output Handling | Strict Zod output parsing + DOMPurify on frontend |
53
+ | **LLM04** | Model Denial of Service | Hard `max_tokens` limit + IP bucket rate limiting |
54
+ | **LLM07** | System Prompt Leakage | System prompt redaction guards in output stream |
55
+
56
+ ## 🛑 Verification-Before-Completion (VBC) Protocol
57
+
58
+ - Run prompt injection test suite against external RAG context inputs.
59
+ - Audit tool calls for privilege escalation risks.
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before engineering LLM prompts or processing untrusted user input, you MUST inspect:
23
+
23
24
  1. Message Role Isolation (Section 15) → Place user input exclusively in `role: "user"` messages; never concatenate user input into `role: "system"`
24
25
  2. Delimiter Sandboxing (Section 49) → Frame untrusted input inside XML tags (`<user_input>`) or randomized nonces (`<data_a8b4f1c9>`)
25
26
  3. Human-in-the-Loop Gate (Section 119) → Require explicit human approval before executing state-changing tool operations (`delete_user`, `process_payment`)
@@ -74,9 +75,9 @@ ${userInput}
74
75
  If an attacker guesses your delimiter (`</user_input> Ignore that.`), they can escape the sandbox. Generating random delimit tokens prevents this.
75
76
 
76
77
  ```typescript
77
- import crypto from "crypto";
78
+ import crypto from 'crypto';
78
79
 
79
- const nonce = crypto.randomBytes(8).toString("hex"); // e.g., "a8b4f1c9"
80
+ const nonce = crypto.randomBytes(8).toString('hex'); // e.g., "a8b4f1c9"
80
81
  const startTag = `<data_${nonce}>`;
81
82
  const endTag = `</data_${nonce}>`;
82
83
 
@@ -106,12 +107,12 @@ ${userInput}
106
107
  </text>`;
107
108
 
108
109
  const response = await scanWithFastModel(checkPrompt);
109
- return response.trim().includes("MALICIOUS");
110
+ return response.trim().includes('MALICIOUS');
110
111
  }
111
112
 
112
113
  // Flow:
113
114
  if (await detectInjection(req.body.text)) {
114
- return res.status(400).json({ error: "Input violates security policy." });
115
+ return res.status(400).json({ error: 'Input violates security policy.' });
115
116
  }
116
117
  // Proceed to main agent
117
118
  ```
@@ -136,8 +137,8 @@ If the LLM has tools (Function Calling):
136
137
  ```typescript
137
138
  // ❌ VULNERABLE TOOL DEFINITION
138
139
  const deleteUserTool = {
139
- name: "delete_user",
140
- description: "Deletes a user account from the DB",
140
+ name: 'delete_user',
141
+ description: 'Deletes a user account from the DB',
141
142
  }; // An injected prompt can trigger this autonomously
142
143
 
143
144
  // ✅ PREVENTATIVE ARCHITECTURE
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing scroll-driven animations, you MUST inspect:
23
+
23
24
  1. Target browser support → Prefer pure CSS `animation-timeline: view()` / `scroll()` when possible
24
25
  2. Pinning & Scrubbing rules (Section 45) → Use `scrub: 1` in GSAP ScrollTrigger timelines for smooth inertia
25
26
  3. Anti-Scrolljacking rule (Section 88) → Never hijack native scroll wheel momentum or override browser scrolling velocity
@@ -31,6 +32,7 @@ Architect performant scroll-linked motion and scrollytelling sequences that feel
31
32
  ## 3 Scroll-Driven Architecture Patterns
32
33
 
33
34
  ### 1. Modern Pure CSS `view-timeline` (No JavaScript Required)
35
+
34
36
  ```css
35
37
  @keyframes reveal-on-scroll {
36
38
  from {
@@ -51,30 +53,37 @@ Architect performant scroll-linked motion and scrollytelling sequences that feel
51
53
  ```
52
54
 
53
55
  ### 2. Sticky Canvas / Section Pinned Storytelling (GSAP ScrollTrigger)
56
+
54
57
  ```javascript
55
- import { gsap } from "gsap";
56
- import { ScrollTrigger } from "gsap/ScrollTrigger";
58
+ import { gsap } from 'gsap';
59
+ import { ScrollTrigger } from 'gsap/ScrollTrigger';
57
60
 
58
61
  gsap.registerPlugin(ScrollTrigger);
59
62
 
60
- gsap.timeline({
61
- scrollTrigger: {
62
- trigger: ".story-container",
63
- start: "top top",
64
- end: "+=200%",
65
- pin: true,
66
- scrub: 1, // Smooth scrub delay
67
- }
68
- })
69
- .to(".story-step-1", { opacity: 0, y: -20 })
70
- .from(".story-step-2", { opacity: 0, y: 20 });
63
+ gsap
64
+ .timeline({
65
+ scrollTrigger: {
66
+ trigger: '.story-container',
67
+ start: 'top top',
68
+ end: '+=200%',
69
+ pin: true,
70
+ scrub: 1, // Smooth scrub delay
71
+ },
72
+ })
73
+ .to('.story-step-1', { opacity: 0, y: -20 })
74
+ .from('.story-step-2', { opacity: 0, y: 20 });
71
75
  ```
72
76
 
73
77
  ### 3. Scroll Progress Indicator Bar
78
+
74
79
  ```css
75
80
  @keyframes grow-progress {
76
- from { transform: scaleX(0); }
77
- to { transform: scaleX(1); }
81
+ from {
82
+ transform: scaleX(0);
83
+ }
84
+ to {
85
+ transform: scaleX(1);
86
+ }
78
87
  }
79
88
 
80
89
  .scroll-progress-bar {
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before defining animation tokens or styling transitions, you MUST inspect:
23
+
23
24
  1. `index.css` / `DESIGN.md` → Verify presence of centralized `--duration-*` and `--ease-*` CSS custom properties
24
25
  2. Centralized Motion Tokens Schema (Section 26) → Enforce standardized duration tiers (80ms instant to 500ms delight)
25
26
  3. Anti-Ad-Hoc Easing Rule (Section 48) → Strictly prohibit inline custom cubic-bezier curves; reference motion tokens instead
@@ -35,18 +36,18 @@ Define standardized design tokens for motion in global CSS or Tailwind config:
35
36
  ```css
36
37
  :root {
37
38
  /* Duration Scale */
38
- --duration-instant: 80ms; /* Micro feedback, toggle switches */
39
- --duration-fast: 150ms; /* Tooltips, hover states, press feedback */
40
- --duration-normal: 220ms; /* Dropdowns, menus, tab switching */
41
- --duration-slow: 320ms; /* Modals, drawers, page reveals */
42
- --duration-delight: 500ms; /* Milestone celebrations, toasts */
39
+ --duration-instant: 80ms; /* Micro feedback, toggle switches */
40
+ --duration-fast: 150ms; /* Tooltips, hover states, press feedback */
41
+ --duration-normal: 220ms; /* Dropdowns, menus, tab switching */
42
+ --duration-slow: 320ms; /* Modals, drawers, page reveals */
43
+ --duration-delight: 500ms; /* Milestone celebrations, toasts */
43
44
 
44
45
  /* Standardized Easing Curves */
45
- --ease-snappy: cubic-bezier(0.2, 0, 0, 1); /* Quick response for press/active */
46
- --ease-out-ui: cubic-bezier(0.16, 1, 0.3, 1); /* Smooth entrance for popovers/modals */
47
- --ease-in-ui: cubic-bezier(0.7, 0, 0.84, 0); /* Smooth exit for modals */
48
- --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);/* Subtle spring overshoot */
49
- --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); /* Morphing layout changes */
46
+ --ease-snappy: cubic-bezier(0.2, 0, 0, 1); /* Quick response for press/active */
47
+ --ease-out-ui: cubic-bezier(0.16, 1, 0.3, 1); /* Smooth entrance for popovers/modals */
48
+ --ease-in-ui: cubic-bezier(0.7, 0, 0.84, 0); /* Smooth exit for modals */
49
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); /* Subtle spring overshoot */
50
+ --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); /* Morphing layout changes */
50
51
  }
51
52
  ```
52
53
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before configuring JS/TS tooling or lint rules, you MUST inspect:
23
+
23
24
  1. Pure ESM-First Requirement (Section 24) → Set `"type": "module"` in `package.json`; ban CommonJS `require()` or `module.exports`
24
25
  2. ESLint Flat Config (`eslint.config.js`) (Section 28) → Use `@antfu/eslint-config` with flat config format; ban legacy `.eslintrc.json`
25
26
  3. Explicit Type Imports (`import type`) (Section 45) → Enforce `import type` for type-only symbols to allow clean tree-shaking compilation
@@ -33,27 +34,31 @@ Enforce Anthony Fu's modern JavaScript/TypeScript engineering conventions: ESM-f
33
34
  ## 4 Core Tooling Conventions
34
35
 
35
36
  ### 1. ESM-First Standards
37
+
36
38
  - Use pure ES Modules (`"type": "module"` in `package.json`).
37
39
  - Avoid CommonJS `require()` or `module.exports`. Use explicit `.js` extension in relative imports when building Node ESM modules.
38
40
 
39
41
  ### 2. Single ESLint Flat Config (`eslint.config.js`)
42
+
40
43
  - Use `@antfu/eslint-config` for unified linting across TypeScript, Vue, React, JSON, and Markdown in 1 simple config file.
41
44
 
42
45
  ```javascript
43
46
  // eslint.config.js
44
- import antfu from '@antfu/eslint-config'
47
+ import antfu from '@antfu/eslint-config';
45
48
 
46
49
  export default antfu({
47
50
  typescript: true,
48
51
  vue: true,
49
52
  react: true,
50
- })
53
+ });
51
54
  ```
52
55
 
53
56
  ### 3. PNPM Catalog & Workspace Monorepo
57
+
54
58
  - Use `pnpm-workspace.yaml` with PNPM catalogs (`catalog:`) to lock unified dependency versions across monorepos.
55
59
 
56
60
  ### 4. Explicit Type Imports (`import type`)
61
+
57
62
  - Enforce `import type { User } from './types'` to allow tree-shaking compilers (esbuild/tsdown) to strip type imports cleanly without runtime side effects.
58
63
 
59
64
  ---