tribunal-kit 8.0.0 โ†’ 9.0.1

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 (774) hide show
  1. package/.agent/ARCHITECTURE.md +2 -2
  2. package/.agent/agents/backend-specialist.md +1 -1
  3. package/.agent/agents/code-archaeologist.md +1 -1
  4. package/.agent/agents/database-architect.md +1 -1
  5. package/.agent/agents/debugger.md +1 -1
  6. package/.agent/agents/devops-engineer.md +1 -1
  7. package/.agent/agents/documentation-writer.md +1 -1
  8. package/.agent/agents/explorer-agent.md +1 -1
  9. package/.agent/agents/game-developer.md +1 -1
  10. package/.agent/agents/minimalist-reviewer.md +1 -1
  11. package/.agent/agents/mobile-developer.md +1 -1
  12. package/.agent/agents/orchestrator.md +1 -1
  13. package/.agent/agents/penetration-tester.md +1 -1
  14. package/.agent/agents/performance-optimizer.md +1 -1
  15. package/.agent/agents/product-manager.md +1 -1
  16. package/.agent/agents/product-owner.md +1 -1
  17. package/.agent/agents/project-planner.md +1 -1
  18. package/.agent/agents/qa-automation-engineer.md +1 -1
  19. package/.agent/agents/seo-specialist.md +1 -1
  20. package/.agent/agents/test-engineer.md +1 -1
  21. package/.agent/config/plugin.json +4 -4
  22. package/.agent/config/slash-commands.json +13 -1
  23. package/.agent/config/system-prompt.md +75 -8
  24. package/.agent/routing_index.json +1546 -268
  25. package/.agent/scripts/browser_audit.js +94 -0
  26. package/.agent/scripts/context_compiler.js +9 -0
  27. package/.agent/scripts/prompt_compiler.js +105 -13
  28. package/.agent/skill_topic_map.json +2 -1
  29. package/.agent/skills/12-principles-of-animation/SKILL.md +62 -21
  30. package/.agent/skills/60fps-animation/SKILL.md +90 -20
  31. package/.agent/skills/accessible-animation/SKILL.md +207 -40
  32. package/.agent/skills/adapt/SKILL.md +62 -21
  33. package/.agent/skills/advanced-rag-pipelines/SKILL.md +87 -46
  34. package/.agent/skills/agent-organizer/SKILL.md +60 -81
  35. package/.agent/skills/agentic-patterns/SKILL.md +60 -79
  36. package/.agent/skills/agentic-workflows-2026/SKILL.md +92 -15
  37. package/.agent/skills/ai-app-hardening/SKILL.md +81 -15
  38. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +75 -85
  39. package/.agent/skills/animation-on-scroll/SKILL.md +186 -47
  40. package/.agent/skills/animation-systems/SKILL.md +229 -35
  41. package/.agent/skills/antfu-conventions/SKILL.md +62 -23
  42. package/.agent/skills/api-patterns/SKILL.md +59 -79
  43. package/.agent/skills/api-security-auditor/SKILL.md +59 -81
  44. package/.agent/skills/app-builder/SKILL.md +59 -79
  45. package/.agent/skills/appflow-wireframe/SKILL.md +68 -83
  46. package/.agent/skills/apple-design/SKILL.md +65 -19
  47. package/.agent/skills/architecture/SKILL.md +59 -79
  48. package/.agent/skills/audit-and-fix/SKILL.md +62 -21
  49. package/.agent/skills/authentication-best-practices/SKILL.md +59 -81
  50. package/.agent/skills/backend-security-expert/SKILL.md +79 -82
  51. package/.agent/skills/baseline-ui/SKILL.md +65 -19
  52. package/.agent/skills/bash-linux/SKILL.md +59 -81
  53. package/.agent/skills/behavioral-modes/SKILL.md +60 -79
  54. package/.agent/skills/better-colors/SKILL.md +65 -19
  55. package/.agent/skills/better-typography/SKILL.md +70 -31
  56. package/.agent/skills/better-ui/SKILL.md +93 -18
  57. package/.agent/skills/bolder/SKILL.md +62 -21
  58. package/.agent/skills/brainstorming/SKILL.md +60 -78
  59. package/.agent/skills/browser-audit/SKILL.md +170 -0
  60. package/.agent/skills/browser-native-ai/SKILL.md +60 -41
  61. package/.agent/skills/build-primitive/SKILL.md +62 -21
  62. package/.agent/skills/building-native-ui/SKILL.md +59 -81
  63. package/.agent/skills/cicd-pro/SKILL.md +64 -31
  64. package/.agent/skills/clarify/SKILL.md +62 -21
  65. package/.agent/skills/clean-code/SKILL.md +68 -83
  66. package/.agent/skills/cloud-architect/SKILL.md +64 -31
  67. package/.agent/skills/cobejs/SKILL.md +62 -20
  68. package/.agent/skills/code-review-checklist/SKILL.md +59 -81
  69. package/.agent/skills/codebase-design/SKILL.md +74 -23
  70. package/.agent/skills/colorize/SKILL.md +62 -21
  71. package/.agent/skills/compact-landing/SKILL.md +62 -21
  72. package/.agent/skills/company-logos/SKILL.md +62 -21
  73. package/.agent/skills/config-validator/SKILL.md +59 -81
  74. package/.agent/skills/containerization-pro/SKILL.md +64 -31
  75. package/.agent/skills/context-engineering-pro/SKILL.md +81 -15
  76. package/.agent/skills/create-design-md/SKILL.md +65 -19
  77. package/.agent/skills/critique/SKILL.md +67 -19
  78. package/.agent/skills/csharp-developer/SKILL.md +59 -81
  79. package/.agent/skills/data-validation-schemas/SKILL.md +59 -81
  80. package/.agent/skills/database-design/SKILL.md +74 -84
  81. package/.agent/skills/delight/SKILL.md +62 -21
  82. package/.agent/skills/deployment-procedures/SKILL.md +59 -81
  83. package/.agent/skills/design-lab/SKILL.md +63 -21
  84. package/.agent/skills/devops-engineer/SKILL.md +59 -81
  85. package/.agent/skills/devops-incident-responder/SKILL.md +59 -81
  86. package/.agent/skills/diagnosing-bugs/SKILL.md +63 -27
  87. package/.agent/skills/distill/SKILL.md +62 -21
  88. package/.agent/skills/documentation-templates/SKILL.md +59 -81
  89. package/.agent/skills/domain-modeling/SKILL.md +62 -23
  90. package/.agent/skills/duckdb-analytical-sql/SKILL.md +80 -14
  91. package/.agent/skills/edge-ai-mobile/SKILL.md +80 -14
  92. package/.agent/skills/edge-computing/SKILL.md +59 -81
  93. package/.agent/skills/emil-design-eng/SKILL.md +64 -27
  94. package/.agent/skills/error-resilience/SKILL.md +78 -85
  95. package/.agent/skills/expo-router-v4/SKILL.md +79 -14
  96. package/.agent/skills/extract-design-system/SKILL.md +59 -81
  97. package/.agent/skills/fabel-protocol/SKILL.md +72 -15
  98. package/.agent/skills/fixing-accessibility/SKILL.md +65 -19
  99. package/.agent/skills/fixing-metadata/SKILL.md +62 -21
  100. package/.agent/skills/fixing-motion-performance/SKILL.md +65 -19
  101. package/.agent/skills/framer-motion-expert/SKILL.md +67 -77
  102. package/.agent/skills/frontend-design/SKILL.md +73 -15
  103. package/.agent/skills/frontend-security-expert/SKILL.md +59 -79
  104. package/.agent/skills/game-design-expert/SKILL.md +59 -81
  105. package/.agent/skills/game-engineering-expert/SKILL.md +59 -81
  106. package/.agent/skills/generative-ui-expert/SKILL.md +60 -41
  107. package/.agent/skills/geo-fundamentals/SKILL.md +59 -81
  108. package/.agent/skills/git-pro/SKILL.md +62 -33
  109. package/.agent/skills/github-operations/SKILL.md +59 -81
  110. package/.agent/skills/gpt-taste/SKILL.md +62 -21
  111. package/.agent/skills/gsap-core/SKILL.md +59 -89
  112. package/.agent/skills/gsap-frameworks/SKILL.md +59 -89
  113. package/.agent/skills/gsap-performance/SKILL.md +59 -87
  114. package/.agent/skills/gsap-plugins/SKILL.md +59 -87
  115. package/.agent/skills/gsap-react/SKILL.md +60 -32
  116. package/.agent/skills/gsap-scrolltrigger/SKILL.md +59 -89
  117. package/.agent/skills/gsap-timeline/SKILL.md +59 -87
  118. package/.agent/skills/gsap-utils/SKILL.md +59 -87
  119. package/.agent/skills/harden/SKILL.md +62 -21
  120. package/.agent/skills/harness-protocol/SKILL.md +60 -33
  121. package/.agent/skills/i18n-localization/SKILL.md +59 -81
  122. package/.agent/skills/impeccable/SKILL.md +62 -23
  123. package/.agent/skills/improve-codebase-architecture/SKILL.md +62 -22
  124. package/.agent/skills/improve-ui/SKILL.md +65 -19
  125. package/.agent/skills/intelligent-routing/SKILL.md +59 -33
  126. package/.agent/skills/knowledge-graph/SKILL.md +60 -33
  127. package/.agent/skills/landing-page/SKILL.md +62 -21
  128. package/.agent/skills/lint-and-validate/SKILL.md +59 -81
  129. package/.agent/skills/llm-engineering/SKILL.md +59 -81
  130. package/.agent/skills/local-first/SKILL.md +59 -81
  131. package/.agent/skills/local-first-architecture/SKILL.md +77 -20
  132. package/.agent/skills/lottie-animation/SKILL.md +62 -20
  133. package/.agent/skills/marquee-loop/SKILL.md +62 -21
  134. package/.agent/skills/masked-reveal/SKILL.md +245 -50
  135. package/.agent/skills/mcp-builder/SKILL.md +59 -81
  136. package/.agent/skills/micro-interaction/SKILL.md +254 -57
  137. package/.agent/skills/mobile-design/SKILL.md +59 -79
  138. package/.agent/skills/monorepo-management/SKILL.md +59 -81
  139. package/.agent/skills/morphing-icons/SKILL.md +365 -46
  140. package/.agent/skills/motion-engineering/SKILL.md +66 -21
  141. package/.agent/skills/nextjs-react-expert/SKILL.md +82 -84
  142. package/.agent/skills/nodejs-best-practices/SKILL.md +81 -80
  143. package/.agent/skills/observability/SKILL.md +59 -81
  144. package/.agent/skills/opentelemetry-observability/SKILL.md +80 -14
  145. package/.agent/skills/page-transition-animation/SKILL.md +62 -21
  146. package/.agent/skills/parallel-agents/SKILL.md +60 -81
  147. package/.agent/skills/performance-profiling/SKILL.md +60 -81
  148. package/.agent/skills/plan-writing/SKILL.md +83 -88
  149. package/.agent/skills/platform-engineer/SKILL.md +59 -81
  150. package/.agent/skills/platform-engineering-opentofu/SKILL.md +80 -15
  151. package/.agent/skills/playwright-ai-e2e/SKILL.md +81 -15
  152. package/.agent/skills/playwright-best-practices/SKILL.md +60 -81
  153. package/.agent/skills/polish/SKILL.md +62 -21
  154. package/.agent/skills/powershell-windows/SKILL.md +59 -81
  155. package/.agent/skills/pricing-page/SKILL.md +62 -21
  156. package/.agent/skills/product-aware-heuristics/SKILL.md +73 -16
  157. package/.agent/skills/progressive-blur/SKILL.md +62 -21
  158. package/.agent/skills/project-idioms/SKILL.md +58 -84
  159. package/.agent/skills/property-based-testing/SKILL.md +81 -15
  160. package/.agent/skills/python-patterns/SKILL.md +59 -81
  161. package/.agent/skills/python-pro/SKILL.md +81 -83
  162. package/.agent/skills/quieter/SKILL.md +62 -21
  163. package/.agent/skills/react-doctor/SKILL.md +62 -21
  164. package/.agent/skills/react-specialist/SKILL.md +73 -82
  165. package/.agent/skills/readme-builder/SKILL.md +59 -81
  166. package/.agent/skills/realtime-patterns/SKILL.md +59 -81
  167. package/.agent/skills/red-team-tactics/SKILL.md +59 -81
  168. package/.agent/skills/redesign-skill/SKILL.md +62 -21
  169. package/.agent/skills/review-animations/SKILL.md +64 -30
  170. package/.agent/skills/rust-pro/SKILL.md +77 -78
  171. package/.agent/skills/seo-fundamentals/SKILL.md +59 -81
  172. package/.agent/skills/server-management/SKILL.md +59 -81
  173. package/.agent/skills/shadcn-ui-expert/SKILL.md +59 -81
  174. package/.agent/skills/shape/SKILL.md +63 -21
  175. package/.agent/skills/skill-creator/SKILL.md +80 -88
  176. package/.agent/skills/soft-skill/SKILL.md +62 -21
  177. package/.agent/skills/sounds-on-the-web/SKILL.md +62 -21
  178. package/.agent/skills/sql-pro/SKILL.md +93 -80
  179. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +59 -81
  180. package/.agent/skills/svg-animation/SKILL.md +368 -46
  181. package/.agent/skills/swiftui-expert/SKILL.md +59 -81
  182. package/.agent/skills/swiss-design/SKILL.md +62 -21
  183. package/.agent/skills/system-design-pro/SKILL.md +64 -29
  184. package/.agent/skills/systematic-debugging/SKILL.md +70 -82
  185. package/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
  186. package/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
  187. package/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
  188. package/.agent/skills/tailwind-patterns/SKILL.md +59 -81
  189. package/.agent/skills/taste-skill/SKILL.md +62 -21
  190. package/.agent/skills/tdd-workflow/SKILL.md +107 -26
  191. package/.agent/skills/test-result-analyzer/SKILL.md +59 -82
  192. package/.agent/skills/testing-patterns/SKILL.md +60 -81
  193. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +62 -23
  194. package/.agent/skills/thinking-protocol/SKILL.md +73 -18
  195. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +62 -20
  196. package/.agent/skills/transitions-dev/SKILL.md +62 -20
  197. package/.agent/skills/trend-researcher/SKILL.md +58 -82
  198. package/.agent/skills/typescript-advanced/SKILL.md +69 -85
  199. package/.agent/skills/typeset/SKILL.md +62 -21
  200. package/.agent/skills/ui-reasoning-engine/SKILL.md +73 -16
  201. package/.agent/skills/ui-skill-packs/SKILL.md +69 -19
  202. package/.agent/skills/ui-skills-root/SKILL.md +65 -19
  203. package/.agent/skills/ui-ux-pro-max/SKILL.md +81 -15
  204. package/.agent/skills/ui-ux-researcher/SKILL.md +58 -82
  205. package/.agent/skills/vector-search-pgvector/SKILL.md +80 -14
  206. package/.agent/skills/verification-before-completion/SKILL.md +178 -0
  207. package/.agent/skills/vue-expert/SKILL.md +59 -77
  208. package/.agent/skills/vulnerability-scanner/SKILL.md +59 -79
  209. package/.agent/skills/web-accessibility-auditor/SKILL.md +59 -81
  210. package/.agent/skills/web-design-guidelines/SKILL.md +73 -15
  211. package/.agent/skills/web-quality-audit/SKILL.md +62 -21
  212. package/.agent/skills/webapp-testing/SKILL.md +60 -81
  213. package/.agent/skills/webgpu-performance/SKILL.md +60 -41
  214. package/.agent/skills/whimsy-injector/SKILL.md +59 -81
  215. package/.agent/skills/workflow-optimizer/SKILL.md +59 -80
  216. package/.agent/skills/zero-trust-passkeys/SKILL.md +80 -14
  217. package/.agent/templates/DESIGN.md +680 -160
  218. package/.agent/templates/sdd/implementer-prompt.md +62 -0
  219. package/.agent/templates/sdd/re-review-prompt.md +36 -0
  220. package/.agent/templates/sdd/task-reviewer-prompt.md +78 -0
  221. package/.agent/workflows/acf.md +4 -0
  222. package/.agent/workflows/api-tester.md +5 -0
  223. package/.agent/workflows/audit-live.md +52 -0
  224. package/.agent/workflows/audit.md +5 -0
  225. package/.agent/workflows/brainstorm.md +17 -1
  226. package/.agent/workflows/changelog.md +5 -0
  227. package/.agent/workflows/compare-web.md +35 -0
  228. package/.agent/workflows/context.md +100 -0
  229. package/.agent/workflows/contract.md +19 -0
  230. package/.agent/workflows/create.md +6 -1
  231. package/.agent/workflows/debug.md +5 -0
  232. package/.agent/workflows/deploy.md +6 -1
  233. package/.agent/workflows/enhance.md +6 -1
  234. package/.agent/workflows/fix-ci.md +5 -0
  235. package/.agent/workflows/fix.md +5 -0
  236. package/.agent/workflows/generate.md +5 -0
  237. package/.agent/workflows/marathon.md +6 -1
  238. package/.agent/workflows/migrate.md +5 -0
  239. package/.agent/workflows/minimal.md +4 -0
  240. package/.agent/workflows/orchestrate.md +6 -1
  241. package/.agent/workflows/performance-benchmarker.md +6 -1
  242. package/.agent/workflows/pipeline.md +5 -0
  243. package/.agent/workflows/plan.md +7 -2
  244. package/.agent/workflows/preview.md +6 -1
  245. package/.agent/workflows/refactor.md +6 -0
  246. package/.agent/workflows/review-ai.md +5 -0
  247. package/.agent/workflows/review.md +5 -0
  248. package/.agent/workflows/sdd.md +122 -0
  249. package/.agent/workflows/session.md +5 -0
  250. package/.agent/workflows/skill-enhancement-engine.md +88 -0
  251. package/.agent/workflows/status.md +4 -0
  252. package/.agent/workflows/super-prompt.md +103 -19
  253. package/.agent/workflows/swarm.md +6 -1
  254. package/.agent/workflows/test.md +6 -1
  255. package/.agent/workflows/tribunal-backend.md +5 -0
  256. package/.agent/workflows/tribunal-cicd.md +5 -0
  257. package/.agent/workflows/tribunal-database.md +5 -0
  258. package/.agent/workflows/tribunal-full.md +8 -0
  259. package/.agent/workflows/tribunal-mobile.md +5 -0
  260. package/.agent/workflows/tribunal-performance.md +5 -0
  261. package/.agent/workflows/tribunal-speed.md +5 -0
  262. package/.agent/workflows/tribunal-ui.md +7 -0
  263. package/.agents/plugins/marketplace.json +20 -0
  264. package/.agents/skills/12-principles-of-animation/SKILL.md +126 -0
  265. package/.agents/skills/60fps-animation/SKILL.md +164 -0
  266. package/.agents/skills/accessible-animation/SKILL.md +266 -0
  267. package/.agents/skills/adapt/SKILL.md +131 -0
  268. package/.agents/skills/advanced-rag-pipelines/SKILL.md +169 -0
  269. package/.agents/skills/agent-organizer/SKILL.md +192 -0
  270. package/.agents/skills/agentic-patterns/SKILL.md +356 -0
  271. package/.agents/skills/agentic-workflows-2026/SKILL.md +157 -0
  272. package/.agents/skills/ai-app-hardening/SKILL.md +125 -0
  273. package/.agents/skills/ai-prompt-injection-defense/SKILL.md +237 -0
  274. package/.agents/skills/animation-on-scroll/SKILL.md +267 -0
  275. package/.agents/skills/animation-systems/SKILL.md +273 -0
  276. package/.agents/skills/antfu-conventions/SKILL.md +129 -0
  277. package/.agents/skills/api-patterns/SKILL.md +293 -0
  278. package/.agents/skills/api-patterns/scripts/api_validator.py +211 -0
  279. package/.agents/skills/api-security-auditor/SKILL.md +230 -0
  280. package/.agents/skills/app-builder/SKILL.md +610 -0
  281. package/.agents/skills/app-builder/templates/SKILL.md +108 -0
  282. package/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  283. package/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  284. package/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  285. package/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  286. package/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  287. package/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  288. package/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  289. package/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
  290. package/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
  291. package/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
  292. package/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
  293. package/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  294. package/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
  295. package/.agents/skills/appflow-wireframe/SKILL.md +173 -0
  296. package/.agents/skills/apple-design/SKILL.md +164 -0
  297. package/.agents/skills/architecture/SKILL.md +263 -0
  298. package/.agents/skills/audit-and-fix/SKILL.md +136 -0
  299. package/.agents/skills/authentication-best-practices/SKILL.md +232 -0
  300. package/.agents/skills/backend-security-expert/SKILL.md +148 -0
  301. package/.agents/skills/baseline-ui/SKILL.md +130 -0
  302. package/.agents/skills/bash-linux/SKILL.md +214 -0
  303. package/.agents/skills/behavioral-modes/SKILL.md +275 -0
  304. package/.agents/skills/better-colors/SKILL.md +191 -0
  305. package/.agents/skills/better-typography/SKILL.md +164 -0
  306. package/.agents/skills/better-ui/SKILL.md +193 -0
  307. package/.agents/skills/bolder/SKILL.md +124 -0
  308. package/.agents/skills/brainstorming/SKILL.md +534 -0
  309. package/.agents/skills/browser-audit/SKILL.md +170 -0
  310. package/.agents/skills/browser-native-ai/SKILL.md +147 -0
  311. package/.agents/skills/build-primitive/SKILL.md +125 -0
  312. package/.agents/skills/building-native-ui/SKILL.md +237 -0
  313. package/.agents/skills/cicd-pro/SKILL.md +487 -0
  314. package/.agents/skills/clarify/SKILL.md +130 -0
  315. package/.agents/skills/clean-code/SKILL.md +442 -0
  316. package/.agents/skills/cloud-architect/SKILL.md +484 -0
  317. package/.agents/skills/cobejs/SKILL.md +145 -0
  318. package/.agents/skills/code-review-checklist/SKILL.md +238 -0
  319. package/.agents/skills/codebase-design/SKILL.md +151 -0
  320. package/.agents/skills/colorize/SKILL.md +132 -0
  321. package/.agents/skills/compact-landing/SKILL.md +125 -0
  322. package/.agents/skills/company-logos/SKILL.md +129 -0
  323. package/.agents/skills/config-validator/SKILL.md +200 -0
  324. package/.agents/skills/containerization-pro/SKILL.md +497 -0
  325. package/.agents/skills/context-engineering-pro/SKILL.md +136 -0
  326. package/.agents/skills/create-design-md/SKILL.md +167 -0
  327. package/.agents/skills/critique/SKILL.md +154 -0
  328. package/.agents/skills/csharp-developer/SKILL.md +553 -0
  329. package/.agents/skills/data-validation-schemas/SKILL.md +372 -0
  330. package/.agents/skills/database-design/SKILL.md +294 -0
  331. package/.agents/skills/database-design/scripts/schema_validator.py +172 -0
  332. package/.agents/skills/delight/SKILL.md +121 -0
  333. package/.agents/skills/deployment-procedures/SKILL.md +207 -0
  334. package/.agents/skills/design-lab/SKILL.md +117 -0
  335. package/.agents/skills/devops-engineer/SKILL.md +380 -0
  336. package/.agents/skills/devops-incident-responder/SKILL.md +178 -0
  337. package/.agents/skills/diagnosing-bugs/SKILL.md +247 -0
  338. package/.agents/skills/distill/SKILL.md +120 -0
  339. package/.agents/skills/documentation-templates/SKILL.md +326 -0
  340. package/.agents/skills/domain-modeling/SKILL.md +136 -0
  341. package/.agents/skills/duckdb-analytical-sql/SKILL.md +125 -0
  342. package/.agents/skills/edge-ai-mobile/SKILL.md +116 -0
  343. package/.agents/skills/edge-computing/SKILL.md +218 -0
  344. package/.agents/skills/emil-design-eng/SKILL.md +209 -0
  345. package/.agents/skills/error-resilience/SKILL.md +478 -0
  346. package/.agents/skills/expo-router-v4/SKILL.md +146 -0
  347. package/.agents/skills/extract-design-system/SKILL.md +195 -0
  348. package/.agents/skills/fabel-protocol/SKILL.md +352 -0
  349. package/.agents/skills/fixing-accessibility/SKILL.md +162 -0
  350. package/.agents/skills/fixing-metadata/SKILL.md +158 -0
  351. package/.agents/skills/fixing-motion-performance/SKILL.md +153 -0
  352. package/.agents/skills/framer-motion-expert/SKILL.md +312 -0
  353. package/.agents/skills/frontend-design/SKILL.md +178 -0
  354. package/.agents/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  355. package/.agents/skills/frontend-design/scripts/ux_audit.py +722 -0
  356. package/.agents/skills/frontend-security-expert/SKILL.md +131 -0
  357. package/.agents/skills/game-design-expert/SKILL.md +167 -0
  358. package/.agents/skills/game-engineering-expert/SKILL.md +183 -0
  359. package/.agents/skills/generative-ui-expert/SKILL.md +175 -0
  360. package/.agents/skills/geo-fundamentals/SKILL.md +183 -0
  361. package/.agents/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  362. package/.agents/skills/git-pro/SKILL.md +476 -0
  363. package/.agents/skills/github-operations/SKILL.md +370 -0
  364. package/.agents/skills/gpt-taste/SKILL.md +125 -0
  365. package/.agents/skills/gsap-core/SKILL.md +352 -0
  366. package/.agents/skills/gsap-frameworks/SKILL.md +243 -0
  367. package/.agents/skills/gsap-performance/SKILL.md +169 -0
  368. package/.agents/skills/gsap-plugins/SKILL.md +516 -0
  369. package/.agents/skills/gsap-react/SKILL.md +288 -0
  370. package/.agents/skills/gsap-scrolltrigger/SKILL.md +387 -0
  371. package/.agents/skills/gsap-timeline/SKILL.md +197 -0
  372. package/.agents/skills/gsap-utils/SKILL.md +374 -0
  373. package/.agents/skills/harden/SKILL.md +130 -0
  374. package/.agents/skills/harness-protocol/SKILL.md +115 -0
  375. package/.agents/skills/i18n-localization/SKILL.md +209 -0
  376. package/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  377. package/.agents/skills/impeccable/SKILL.md +127 -0
  378. package/.agents/skills/improve-codebase-architecture/SKILL.md +123 -0
  379. package/.agents/skills/improve-ui/SKILL.md +145 -0
  380. package/.agents/skills/intelligent-routing/SKILL.md +283 -0
  381. package/.agents/skills/knowledge-graph/SKILL.md +146 -0
  382. package/.agents/skills/landing-page/SKILL.md +140 -0
  383. package/.agents/skills/lint-and-validate/SKILL.md +299 -0
  384. package/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  385. package/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  386. package/.agents/skills/llm-engineering/SKILL.md +435 -0
  387. package/.agents/skills/local-first/SKILL.md +213 -0
  388. package/.agents/skills/local-first-architecture/SKILL.md +137 -0
  389. package/.agents/skills/lottie-animation/SKILL.md +137 -0
  390. package/.agents/skills/marquee-loop/SKILL.md +147 -0
  391. package/.agents/skills/masked-reveal/SKILL.md +305 -0
  392. package/.agents/skills/mcp-builder/SKILL.md +180 -0
  393. package/.agents/skills/micro-interaction/SKILL.md +321 -0
  394. package/.agents/skills/mobile-design/SKILL.md +320 -0
  395. package/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -0
  396. package/.agents/skills/monorepo-management/SKILL.md +370 -0
  397. package/.agents/skills/morphing-icons/SKILL.md +423 -0
  398. package/.agents/skills/motion-engineering/SKILL.md +272 -0
  399. package/.agents/skills/nextjs-react-expert/SKILL.md +293 -0
  400. package/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  401. package/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  402. package/.agents/skills/nodejs-best-practices/SKILL.md +617 -0
  403. package/.agents/skills/observability/SKILL.md +378 -0
  404. package/.agents/skills/opentelemetry-observability/SKILL.md +125 -0
  405. package/.agents/skills/page-transition-animation/SKILL.md +161 -0
  406. package/.agents/skills/parallel-agents/SKILL.md +185 -0
  407. package/.agents/skills/performance-profiling/SKILL.md +305 -0
  408. package/.agents/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  409. package/.agents/skills/plan-writing/SKILL.md +202 -0
  410. package/.agents/skills/platform-engineer/SKILL.md +183 -0
  411. package/.agents/skills/platform-engineering-opentofu/SKILL.md +133 -0
  412. package/.agents/skills/playwright-ai-e2e/SKILL.md +126 -0
  413. package/.agents/skills/playwright-best-practices/SKILL.md +224 -0
  414. package/.agents/skills/polish/SKILL.md +114 -0
  415. package/.agents/skills/powershell-windows/SKILL.md +197 -0
  416. package/.agents/skills/pricing-page/SKILL.md +123 -0
  417. package/.agents/skills/product-aware-heuristics/SKILL.md +465 -0
  418. package/.agents/skills/progressive-blur/SKILL.md +155 -0
  419. package/.agents/skills/project-idioms/SKILL.md +166 -0
  420. package/.agents/skills/property-based-testing/SKILL.md +124 -0
  421. package/.agents/skills/python-patterns/SKILL.md +295 -0
  422. package/.agents/skills/python-pro/SKILL.md +380 -0
  423. package/.agents/skills/quieter/SKILL.md +124 -0
  424. package/.agents/skills/react-doctor/SKILL.md +126 -0
  425. package/.agents/skills/react-specialist/SKILL.md +355 -0
  426. package/.agents/skills/readme-builder/SKILL.md +345 -0
  427. package/.agents/skills/realtime-patterns/SKILL.md +358 -0
  428. package/.agents/skills/red-team-tactics/SKILL.md +266 -0
  429. package/.agents/skills/redesign-skill/SKILL.md +121 -0
  430. package/.agents/skills/review-animations/SKILL.md +120 -0
  431. package/.agents/skills/review-animations/STANDARDS.md +87 -0
  432. package/.agents/skills/rust-pro/SKILL.md +727 -0
  433. package/.agents/skills/seo-fundamentals/SKILL.md +214 -0
  434. package/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  435. package/.agents/skills/server-management/SKILL.md +253 -0
  436. package/.agents/skills/shadcn-ui-expert/SKILL.md +271 -0
  437. package/.agents/skills/shape/SKILL.md +131 -0
  438. package/.agents/skills/skill-creator/SKILL.md +136 -0
  439. package/.agents/skills/soft-skill/SKILL.md +128 -0
  440. package/.agents/skills/sounds-on-the-web/SKILL.md +151 -0
  441. package/.agents/skills/sql-pro/SKILL.md +699 -0
  442. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +132 -0
  443. package/.agents/skills/svg-animation/SKILL.md +431 -0
  444. package/.agents/skills/swiftui-expert/SKILL.md +239 -0
  445. package/.agents/skills/swiss-design/SKILL.md +119 -0
  446. package/.agents/skills/system-design-pro/SKILL.md +393 -0
  447. package/.agents/skills/systematic-debugging/SKILL.md +198 -0
  448. package/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
  449. package/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
  450. package/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
  451. package/.agents/skills/tailwind-patterns/SKILL.md +658 -0
  452. package/.agents/skills/taste-skill/SKILL.md +127 -0
  453. package/.agents/skills/tdd-workflow/SKILL.md +179 -0
  454. package/.agents/skills/test-result-analyzer/SKILL.md +345 -0
  455. package/.agents/skills/testing-patterns/SKILL.md +609 -0
  456. package/.agents/skills/testing-patterns/scripts/test_runner.py +219 -0
  457. package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
  458. package/.agents/skills/thinking-protocol/SKILL.md +97 -0
  459. package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
  460. package/.agents/skills/transitions-dev/SKILL.md +165 -0
  461. package/.agents/skills/trend-researcher/SKILL.md +273 -0
  462. package/.agents/skills/typescript-advanced/SKILL.md +381 -0
  463. package/.agents/skills/typeset/SKILL.md +135 -0
  464. package/.agents/skills/ui-reasoning-engine/SKILL.md +230 -0
  465. package/.agents/skills/ui-skill-packs/SKILL.md +132 -0
  466. package/.agents/skills/ui-skills-root/SKILL.md +144 -0
  467. package/.agents/skills/ui-ux-pro-max/SKILL.md +185 -0
  468. package/.agents/skills/ui-ux-researcher/SKILL.md +274 -0
  469. package/.agents/skills/vector-search-pgvector/SKILL.md +144 -0
  470. package/.agents/skills/verification-before-completion/SKILL.md +178 -0
  471. package/.agents/skills/vue-expert/SKILL.md +334 -0
  472. package/.agents/skills/vulnerability-scanner/SKILL.md +453 -0
  473. package/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  474. package/.agents/skills/web-accessibility-auditor/SKILL.md +254 -0
  475. package/.agents/skills/web-design-guidelines/SKILL.md +124 -0
  476. package/.agents/skills/web-quality-audit/SKILL.md +122 -0
  477. package/.agents/skills/webapp-testing/SKILL.md +203 -0
  478. package/.agents/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  479. package/.agents/skills/webgpu-performance/SKILL.md +163 -0
  480. package/.agents/skills/whimsy-injector/SKILL.md +380 -0
  481. package/.agents/skills/workflow-optimizer/SKILL.md +263 -0
  482. package/.agents/skills/zero-trust-passkeys/SKILL.md +156 -0
  483. package/.claude-plugin/marketplace.json +14 -0
  484. package/.claude-plugin/plugin.json +26 -0
  485. package/.codex-plugin/plugin.json +45 -0
  486. package/.cursor-plugin/plugin.json +26 -0
  487. package/.devin-plugin/plugin.json +14 -0
  488. package/.hermes-plugin/__init__.py +102 -0
  489. package/.hermes-plugin/plugin.yaml +6 -0
  490. package/.kimi-plugin/plugin.json +38 -0
  491. package/.opencode/INSTALL.md +41 -0
  492. package/.opencode/plugins/tribunal.js +101 -0
  493. package/.opencode/rules.md +258 -0
  494. package/.pi/extensions/tribunal.ts +133 -0
  495. package/AGENTS.md +91 -0
  496. package/CLAUDE.md +442 -0
  497. package/CONTRIBUTING.md +1 -1
  498. package/README.md +273 -251
  499. package/bin/adapter-install.js +40 -16
  500. package/bin/mcp-server.js +426 -0
  501. package/bin/proxy-server.js +18 -9
  502. package/bin/spawn-agent.js +9 -3
  503. package/bin/wrapper.js +20 -4
  504. package/dist/browser/audit.js +229 -0
  505. package/dist/browser/case_bridge.js +189 -0
  506. package/dist/browser/cdp.js +513 -0
  507. package/dist/browser/compare.js +110 -0
  508. package/dist/browser/discovery.js +140 -0
  509. package/dist/browser/idpi.js +142 -0
  510. package/dist/browser/index.js +89 -0
  511. package/dist/browser/launcher.js +154 -0
  512. package/dist/browser/sentinel.js +202 -0
  513. package/dist/browser/synapse.js +251 -0
  514. package/dist/browser/trimmer.js +210 -0
  515. package/dist/cli.js +377 -355
  516. package/dist/commands/audit-web.js +112 -0
  517. package/dist/commands/browse.js +56 -0
  518. package/dist/commands/compare-web.js +61 -0
  519. package/dist/commands/deconstruct.js +58 -0
  520. package/dist/commands/heal.js +99 -0
  521. package/dist/commands/init.js +10 -1
  522. package/dist/commands/sdd.js +229 -0
  523. package/dist/commands/uninstall.js +12 -0
  524. package/dist/esm/index.mjs +142 -142
  525. package/dist/index.d.ts +349 -343
  526. package/gemini-extension.json +6 -0
  527. package/hooks/hooks-cursor.json +10 -0
  528. package/hooks/hooks.json +10 -0
  529. package/hooks/session-start.js +77 -0
  530. package/marketplace.json +14 -0
  531. package/package.json +176 -146
  532. package/plugin.json +26 -0
  533. package/scripts/audit_skill_sdo.js +87 -0
  534. package/scripts/clean-pycache.js +42 -0
  535. package/scripts/context_compiler.js +944 -0
  536. package/scripts/modernize_skills.js +254 -0
  537. package/scripts/package-cores.js +113 -0
  538. package/scripts/skill_enhancement_engine.js +473 -0
  539. package/scripts/sync-skills.js +61 -0
  540. package/skills/12-principles-of-animation/SKILL.md +126 -0
  541. package/skills/60fps-animation/SKILL.md +164 -0
  542. package/skills/accessible-animation/SKILL.md +266 -0
  543. package/skills/adapt/SKILL.md +131 -0
  544. package/skills/advanced-rag-pipelines/SKILL.md +169 -0
  545. package/skills/agent-organizer/SKILL.md +192 -0
  546. package/skills/agentic-patterns/SKILL.md +356 -0
  547. package/skills/agentic-workflows-2026/SKILL.md +157 -0
  548. package/skills/ai-app-hardening/SKILL.md +125 -0
  549. package/skills/ai-prompt-injection-defense/SKILL.md +237 -0
  550. package/skills/animation-on-scroll/SKILL.md +267 -0
  551. package/skills/animation-systems/SKILL.md +273 -0
  552. package/skills/antfu-conventions/SKILL.md +129 -0
  553. package/skills/api-patterns/SKILL.md +293 -0
  554. package/skills/api-patterns/scripts/api_validator.py +211 -0
  555. package/skills/api-security-auditor/SKILL.md +230 -0
  556. package/skills/app-builder/SKILL.md +610 -0
  557. package/skills/app-builder/templates/SKILL.md +108 -0
  558. package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  559. package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  560. package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  561. package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  562. package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  563. package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  564. package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  565. package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
  566. package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
  567. package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
  568. package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
  569. package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  570. package/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
  571. package/skills/appflow-wireframe/SKILL.md +173 -0
  572. package/skills/apple-design/SKILL.md +164 -0
  573. package/skills/architecture/SKILL.md +263 -0
  574. package/skills/audit-and-fix/SKILL.md +136 -0
  575. package/skills/authentication-best-practices/SKILL.md +232 -0
  576. package/skills/backend-security-expert/SKILL.md +148 -0
  577. package/skills/baseline-ui/SKILL.md +130 -0
  578. package/skills/bash-linux/SKILL.md +214 -0
  579. package/skills/behavioral-modes/SKILL.md +275 -0
  580. package/skills/better-colors/SKILL.md +191 -0
  581. package/skills/better-typography/SKILL.md +164 -0
  582. package/skills/better-ui/SKILL.md +193 -0
  583. package/skills/bolder/SKILL.md +124 -0
  584. package/skills/brainstorming/SKILL.md +534 -0
  585. package/skills/browser-audit/SKILL.md +170 -0
  586. package/skills/browser-native-ai/SKILL.md +147 -0
  587. package/skills/build-primitive/SKILL.md +125 -0
  588. package/skills/building-native-ui/SKILL.md +237 -0
  589. package/skills/cicd-pro/SKILL.md +487 -0
  590. package/skills/clarify/SKILL.md +130 -0
  591. package/skills/clean-code/SKILL.md +442 -0
  592. package/skills/cloud-architect/SKILL.md +484 -0
  593. package/skills/cobejs/SKILL.md +145 -0
  594. package/skills/code-review-checklist/SKILL.md +238 -0
  595. package/skills/codebase-design/SKILL.md +151 -0
  596. package/skills/colorize/SKILL.md +132 -0
  597. package/skills/compact-landing/SKILL.md +125 -0
  598. package/skills/company-logos/SKILL.md +129 -0
  599. package/skills/config-validator/SKILL.md +200 -0
  600. package/skills/containerization-pro/SKILL.md +497 -0
  601. package/skills/context-engineering-pro/SKILL.md +136 -0
  602. package/skills/create-design-md/SKILL.md +167 -0
  603. package/skills/critique/SKILL.md +154 -0
  604. package/skills/csharp-developer/SKILL.md +553 -0
  605. package/skills/data-validation-schemas/SKILL.md +372 -0
  606. package/skills/database-design/SKILL.md +294 -0
  607. package/skills/database-design/scripts/schema_validator.py +172 -0
  608. package/skills/delight/SKILL.md +121 -0
  609. package/skills/deployment-procedures/SKILL.md +207 -0
  610. package/skills/design-lab/SKILL.md +117 -0
  611. package/skills/devops-engineer/SKILL.md +380 -0
  612. package/skills/devops-incident-responder/SKILL.md +178 -0
  613. package/skills/diagnosing-bugs/SKILL.md +247 -0
  614. package/skills/distill/SKILL.md +120 -0
  615. package/skills/documentation-templates/SKILL.md +326 -0
  616. package/skills/domain-modeling/SKILL.md +136 -0
  617. package/skills/duckdb-analytical-sql/SKILL.md +125 -0
  618. package/skills/edge-ai-mobile/SKILL.md +116 -0
  619. package/skills/edge-computing/SKILL.md +218 -0
  620. package/skills/emil-design-eng/SKILL.md +209 -0
  621. package/skills/error-resilience/SKILL.md +478 -0
  622. package/skills/expo-router-v4/SKILL.md +146 -0
  623. package/skills/extract-design-system/SKILL.md +195 -0
  624. package/skills/fabel-protocol/SKILL.md +352 -0
  625. package/skills/fixing-accessibility/SKILL.md +162 -0
  626. package/skills/fixing-metadata/SKILL.md +158 -0
  627. package/skills/fixing-motion-performance/SKILL.md +153 -0
  628. package/skills/framer-motion-expert/SKILL.md +312 -0
  629. package/skills/frontend-design/SKILL.md +178 -0
  630. package/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  631. package/skills/frontend-design/scripts/ux_audit.py +722 -0
  632. package/skills/frontend-security-expert/SKILL.md +131 -0
  633. package/skills/game-design-expert/SKILL.md +167 -0
  634. package/skills/game-engineering-expert/SKILL.md +183 -0
  635. package/skills/generative-ui-expert/SKILL.md +175 -0
  636. package/skills/geo-fundamentals/SKILL.md +183 -0
  637. package/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  638. package/skills/git-pro/SKILL.md +476 -0
  639. package/skills/github-operations/SKILL.md +370 -0
  640. package/skills/gpt-taste/SKILL.md +125 -0
  641. package/skills/gsap-core/SKILL.md +352 -0
  642. package/skills/gsap-frameworks/SKILL.md +243 -0
  643. package/skills/gsap-performance/SKILL.md +169 -0
  644. package/skills/gsap-plugins/SKILL.md +516 -0
  645. package/skills/gsap-react/SKILL.md +288 -0
  646. package/skills/gsap-scrolltrigger/SKILL.md +387 -0
  647. package/skills/gsap-timeline/SKILL.md +197 -0
  648. package/skills/gsap-utils/SKILL.md +374 -0
  649. package/skills/harden/SKILL.md +130 -0
  650. package/skills/harness-protocol/SKILL.md +115 -0
  651. package/skills/i18n-localization/SKILL.md +209 -0
  652. package/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  653. package/skills/impeccable/SKILL.md +127 -0
  654. package/skills/improve-codebase-architecture/SKILL.md +123 -0
  655. package/skills/improve-ui/SKILL.md +145 -0
  656. package/skills/intelligent-routing/SKILL.md +283 -0
  657. package/skills/knowledge-graph/SKILL.md +146 -0
  658. package/skills/landing-page/SKILL.md +140 -0
  659. package/skills/lint-and-validate/SKILL.md +299 -0
  660. package/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  661. package/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  662. package/skills/llm-engineering/SKILL.md +435 -0
  663. package/skills/local-first/SKILL.md +213 -0
  664. package/skills/local-first-architecture/SKILL.md +137 -0
  665. package/skills/lottie-animation/SKILL.md +137 -0
  666. package/skills/marquee-loop/SKILL.md +147 -0
  667. package/skills/masked-reveal/SKILL.md +305 -0
  668. package/skills/mcp-builder/SKILL.md +180 -0
  669. package/skills/micro-interaction/SKILL.md +321 -0
  670. package/skills/mobile-design/SKILL.md +320 -0
  671. package/skills/mobile-design/scripts/mobile_audit.py +670 -0
  672. package/skills/monorepo-management/SKILL.md +370 -0
  673. package/skills/morphing-icons/SKILL.md +423 -0
  674. package/skills/motion-engineering/SKILL.md +272 -0
  675. package/skills/nextjs-react-expert/SKILL.md +293 -0
  676. package/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  677. package/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  678. package/skills/nodejs-best-practices/SKILL.md +617 -0
  679. package/skills/observability/SKILL.md +378 -0
  680. package/skills/opentelemetry-observability/SKILL.md +125 -0
  681. package/skills/page-transition-animation/SKILL.md +161 -0
  682. package/skills/parallel-agents/SKILL.md +185 -0
  683. package/skills/performance-profiling/SKILL.md +305 -0
  684. package/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  685. package/skills/plan-writing/SKILL.md +202 -0
  686. package/skills/platform-engineer/SKILL.md +183 -0
  687. package/skills/platform-engineering-opentofu/SKILL.md +133 -0
  688. package/skills/playwright-ai-e2e/SKILL.md +126 -0
  689. package/skills/playwright-best-practices/SKILL.md +224 -0
  690. package/skills/polish/SKILL.md +114 -0
  691. package/skills/powershell-windows/SKILL.md +197 -0
  692. package/skills/pricing-page/SKILL.md +123 -0
  693. package/skills/product-aware-heuristics/SKILL.md +465 -0
  694. package/skills/progressive-blur/SKILL.md +155 -0
  695. package/skills/project-idioms/SKILL.md +166 -0
  696. package/skills/property-based-testing/SKILL.md +124 -0
  697. package/skills/python-patterns/SKILL.md +295 -0
  698. package/skills/python-pro/SKILL.md +380 -0
  699. package/skills/quieter/SKILL.md +124 -0
  700. package/skills/react-doctor/SKILL.md +126 -0
  701. package/skills/react-specialist/SKILL.md +355 -0
  702. package/skills/readme-builder/SKILL.md +345 -0
  703. package/skills/realtime-patterns/SKILL.md +358 -0
  704. package/skills/red-team-tactics/SKILL.md +266 -0
  705. package/skills/redesign-skill/SKILL.md +121 -0
  706. package/skills/review-animations/SKILL.md +120 -0
  707. package/skills/review-animations/STANDARDS.md +87 -0
  708. package/skills/rust-pro/SKILL.md +727 -0
  709. package/skills/seo-fundamentals/SKILL.md +214 -0
  710. package/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  711. package/skills/server-management/SKILL.md +253 -0
  712. package/skills/shadcn-ui-expert/SKILL.md +271 -0
  713. package/skills/shape/SKILL.md +131 -0
  714. package/skills/skill-creator/SKILL.md +136 -0
  715. package/skills/soft-skill/SKILL.md +128 -0
  716. package/skills/sounds-on-the-web/SKILL.md +151 -0
  717. package/skills/sql-pro/SKILL.md +699 -0
  718. package/skills/supabase-postgres-best-practices/SKILL.md +132 -0
  719. package/skills/svg-animation/SKILL.md +431 -0
  720. package/skills/swiftui-expert/SKILL.md +239 -0
  721. package/skills/swiss-design/SKILL.md +119 -0
  722. package/skills/system-design-pro/SKILL.md +393 -0
  723. package/skills/systematic-debugging/SKILL.md +198 -0
  724. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  725. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  726. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  727. package/skills/tailwind-patterns/SKILL.md +658 -0
  728. package/skills/taste-skill/SKILL.md +127 -0
  729. package/skills/tdd-workflow/SKILL.md +179 -0
  730. package/skills/test-result-analyzer/SKILL.md +345 -0
  731. package/skills/testing-patterns/SKILL.md +609 -0
  732. package/skills/testing-patterns/scripts/test_runner.py +219 -0
  733. package/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
  734. package/skills/thinking-protocol/SKILL.md +97 -0
  735. package/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
  736. package/skills/transitions-dev/SKILL.md +165 -0
  737. package/skills/trend-researcher/SKILL.md +273 -0
  738. package/skills/typescript-advanced/SKILL.md +381 -0
  739. package/skills/typeset/SKILL.md +135 -0
  740. package/skills/ui-reasoning-engine/SKILL.md +230 -0
  741. package/skills/ui-skill-packs/SKILL.md +132 -0
  742. package/skills/ui-skills-root/SKILL.md +144 -0
  743. package/skills/ui-ux-pro-max/SKILL.md +185 -0
  744. package/skills/ui-ux-researcher/SKILL.md +274 -0
  745. package/skills/vector-search-pgvector/SKILL.md +144 -0
  746. package/skills/verification-before-completion/SKILL.md +178 -0
  747. package/skills/vue-expert/SKILL.md +334 -0
  748. package/skills/vulnerability-scanner/SKILL.md +453 -0
  749. package/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  750. package/skills/web-accessibility-auditor/SKILL.md +254 -0
  751. package/skills/web-design-guidelines/SKILL.md +124 -0
  752. package/skills/web-quality-audit/SKILL.md +122 -0
  753. package/skills/webapp-testing/SKILL.md +203 -0
  754. package/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  755. package/skills/webgpu-performance/SKILL.md +163 -0
  756. package/skills/whimsy-injector/SKILL.md +380 -0
  757. package/skills/workflow-optimizer/SKILL.md +263 -0
  758. package/skills/zero-trust-passkeys/SKILL.md +156 -0
  759. package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
  760. package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
  761. package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
  762. package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
  763. package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
  764. package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
  765. package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
  766. package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
  767. package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
  768. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
  769. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
  770. package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
  771. package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
  772. package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  773. package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  774. package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
@@ -0,0 +1,727 @@
1
+ ---
2
+ name: rust-pro
3
+ description: Use when Master Rust 1.75+ with modern async patterns, ownership/borrowing, lifetimes, traits, error handling with thiserror/anyhow, async Tokio runtime, axum web framework, serde serialization, and systems programming. Use when building Rust services, CLI tools, WebAssembly, or performance-critical systems.
4
+ version: 5.0.0
5
+ last-updated: 2026-09-13
6
+ skills:
7
+ - clean-code
8
+ - api-patterns
9
+ - backend-security-expert
10
+ tools: Read, Grep, Glob, Bash, Edit, Write
11
+ scripts-binding:
12
+ - .agent/scripts/lint_runner.js
13
+ - .agent/scripts/verify_all.js
14
+ ---
15
+
16
+ # Rust Pro โ€” Rust 1.75+ Systems Mastery
17
+
18
+ ## Mandatory Pre-Flight Context Inspection
19
+
20
+ Before generating, refactoring, or reviewing code in the `rust-pro` domain, inspect these 5 critical parameters:
21
+
22
+ 1. **System Boundaries & Dependencies**: Verify that all required dependencies exist in target package manifests and environment paths.
23
+ 2. **Runtime Context & Platform Invariants**: Confirm target platform constraints (Node.js, Browser, Mobile OS, Edge runtime) before applying APIs.
24
+ 3. **Execution Guardrails**: Identify potential side-effects, state mutations, and unhandled asynchronous exceptions.
25
+ 4. **Validation & Type Contracts**: Validate input data schemas and strict type constraints across all module interfaces.
26
+ 5. **Observability & Proof of Execution**: Ensure execution produces tangible verification signals (terminal output, tests, metrics).
27
+
28
+ ## Activation Boundaries
29
+
30
+ - **Activate when:** Use when Master Rust 1.75+ with modern async patterns, ownership/borrowing, lifetimes, traits, error handling with thiserror/anyhow, async Tokio runtime, axum web framework, serde serialization, and systems programming. Use when building Rust services, CLI tools, WebAssembly, or performance-critical systems.
31
+ - **DO NOT activate when:** The task falls outside the `rust-pro` domain or is managed by a different dedicated specialist.
32
+
33
+ ## ๐Ÿ” Multi-Pass Execution Protocol
34
+
35
+ Execute all non-trivial tasks through this 7-pass cognitive loop:
36
+
37
+ | Pass | Phase | Core Action |
38
+ |:---|:---|:---|
39
+ | **Pass 1** | **Understand** | Deconstruct the user's explicit objective, implicit requirements, and platform constraints. |
40
+ | **Pass 2** | **Plan** | Decompose the task into smallest logical steps; map dependencies and required tool calls. |
41
+ | **Pass 3** | **Execute** | Implement the solution with production-grade craft, zero placeholders, and strict typing. |
42
+ | **Pass 4** | **Verify** | Run linters, unit tests, or compiler checks to validate structural correctness. |
43
+ | **Pass 5** | **Attack** | Perform an adversarial review searching for edge-case failures, race conditions, and traps. |
44
+ | **Pass 6** | **Improve** | Eliminate discovered friction, optimize performance, and harden error boundaries. |
45
+ | **Pass 7** | **Quality Gate** | Enforce Verification-Before-Completion (VBC) with concrete terminal proof before finalizing. |
46
+
47
+ ---
48
+
49
+ ## ๐Ÿ› ๏ธ Technical Architecture & Reference Recipes
50
+
51
+ ---
52
+
53
+
54
+ ## 2026 Rust Performance & Memory Invariants
55
+
56
+ 1. **Native `std::sync::LazyLock`**:
57
+ ```rust
58
+ use std::sync::LazyLock;
59
+ static REGEX: LazyLock<regex::Regex> = LazyLock::new(|| regex::Regex::new(r"^\d+$").unwrap());
60
+ ```
61
+ 2. **Async fn in Traits**: Use native `async fn` inside traits directly (Rust 1.75+ / 2024 edition) without the legacy `#[async_trait]` macro attribute.
62
+ 3. **Zero-Copy Borrowing**: Accept `&str` or `&[T]` instead of taking owned `String` or `Vec<T>` in function signatures unless ownership transfer is strictly required.
63
+ 4. **Tokio Task Spawning Budget**: Never spawn unbounded Tokio tasks inside request loops without a semaphore limit to prevent memory exhaustion.
64
+
65
+ ## Hallucination Traps (Read First)
66
+
67
+ - โŒ Using `lazy_static!` or `once_cell::sync::Lazy` โ†’ โœ… Use `std::sync::LazyLock`
68
+ - โŒ Using `#[async_trait]` macro for basic traits โ†’ โœ… Native `async fn` in traits (Rust 1.75+)
69
+ - โŒ `.unwrap()` in production handlers โ†’ โœ… `?` operator with `thiserror` / `anyhow`
70
+ - โŒ Axum `:id` path parameter syntax โ†’ โœ… Axum 0.7+: `{id}` bracket syntax
71
+ - โŒ Allocating `String` just to pass to a reader โ†’ โœ… Pass `&str`
72
+
73
+ ---
74
+
75
+ ## Ownership & Borrowing
76
+
77
+ ### The Three Rules
78
+
79
+ ```rust
80
+ // Rule 1: Each value has exactly ONE owner
81
+ let s1 = String::from("hello");
82
+ let s2 = s1; // s1 is MOVED to s2 โ€” s1 is no longer valid
83
+ // println!("{s1}"); // โŒ compile error: value borrowed after move
84
+
85
+ // Rule 2: You can have EITHER one mutable reference OR any number of immutable references
86
+ let mut data = vec![1, 2, 3];
87
+ let r1 = &data; // โœ… immutable borrow
88
+ let r2 = &data; // โœ… second immutable borrow โ€” fine
89
+ // let r3 = &mut data; // โŒ compile error: cannot borrow as mutable while immutable borrows exist
90
+ println!("{r1:?} {r2:?}");
91
+ // r1 and r2 go out of scope here (NLL โ€” Non-Lexical Lifetimes)
92
+ let r3 = &mut data; // โœ… now fine โ€” no immutable borrows active
93
+ r3.push(4);
94
+
95
+ // Rule 3: References must always be valid (no dangling pointers)
96
+ // fn dangling() -> &String { // โŒ compile error
97
+ // let s = String::from("hello");
98
+ // &s // s is dropped at end of function โ€” reference would dangle
99
+ // }
100
+ fn not_dangling() -> String {
101
+ String::from("hello") // โœ… return owned value
102
+ }
103
+ ```
104
+
105
+ ### Common Ownership Patterns
106
+
107
+ ```rust
108
+ // Clone when you need independent copies (has a cost โ€” measure)
109
+ let original = vec![1, 2, 3];
110
+ let copy = original.clone(); // deep copy โ€” both are independent
111
+
112
+ // Rc<T> โ€” shared ownership (single-threaded)
113
+ use std::rc::Rc;
114
+ let shared = Rc::new(vec![1, 2, 3]);
115
+ let also_shared = Rc::clone(&shared); // cheap reference count increment
116
+ // Both shared and also_shared point to the same data
117
+
118
+ // Arc<T> โ€” shared ownership (thread-safe)
119
+ use std::sync::Arc;
120
+ let thread_safe = Arc::new(vec![1, 2, 3]);
121
+ let for_thread = Arc::clone(&thread_safe);
122
+ std::thread::spawn(move || {
123
+ println!("{for_thread:?}");
124
+ });
125
+
126
+ // Cow<T> โ€” Clone on Write (zero-copy when not modified)
127
+ use std::borrow::Cow;
128
+ fn process(input: &str) -> Cow<'_, str> {
129
+ if input.contains("bad") {
130
+ Cow::Owned(input.replace("bad", "good")) // allocated only if needed
131
+ } else {
132
+ Cow::Borrowed(input) // zero-copy
133
+ }
134
+ }
135
+ ```
136
+
137
+ ---
138
+
139
+ ## Lifetimes
140
+
141
+ ```rust
142
+ // Lifetime annotations tell the compiler how long references are valid
143
+ // They DON'T change how long values live โ€” they DESCRIBE existing relationships
144
+
145
+ // โœ… Explicit lifetime: return value lives as long as the input
146
+ fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
147
+ if x.len() > y.len() { x } else { y }
148
+ }
149
+
150
+ // Struct with references (requires lifetime annotation)
151
+ struct Config<'a> {
152
+ name: &'a str,
153
+ version: &'a str,
154
+ }
155
+
156
+ impl<'a> Config<'a> {
157
+ fn display(&self) -> String {
158
+ format!("{} v{}", self.name, self.version)
159
+ }
160
+ }
161
+
162
+ // 'static lifetime โ€” lives for the entire program
163
+ let s: &'static str = "I live forever"; // string literals are 'static
164
+ // Owned types satisfy 'static (they own their data)
165
+ fn takes_static(s: String) { /* String is 'static because it owns its data */ }
166
+
167
+ // โŒ HALLUCINATION TRAP: Lifetime elision rules handle most cases
168
+ // Don't add lifetimes unless the compiler asks for them
169
+ // The compiler tells you exactly which annotations are needed
170
+ ```
171
+
172
+ ---
173
+
174
+ ## Error Handling
175
+
176
+ ### The `?` Operator & Result
177
+
178
+ ```rust
179
+ use std::fs;
180
+ use std::io;
181
+
182
+ // โœ… Propagate errors with ?
183
+ fn read_config(path: &str) -> Result<Config, io::Error> {
184
+ let content = fs::read_to_string(path)?; // returns early on error
185
+ let config: Config = serde_json::from_str(&content)?;
186
+ Ok(config)
187
+ }
188
+
189
+ // โŒ HALLUCINATION TRAP: NEVER use .unwrap() in production code
190
+ // .unwrap() panics on error โ€” crashes the entire program
191
+ // โŒ let file = File::open("config.json").unwrap();
192
+ // โœ… let file = File::open("config.json")?;
193
+ // โœ… let file = File::open("config.json").unwrap_or_default();
194
+ // โœ… let file = File::open("config.json").map_err(|e| AppError::Io(e))?;
195
+ ```
196
+
197
+ ### thiserror (Library Errors)
198
+
199
+ ```rust
200
+ // thiserror โ€” for library code (structured error types)
201
+ use thiserror::Error;
202
+
203
+ #[derive(Debug, Error)]
204
+ pub enum AppError {
205
+ #[error("Database error: {0}")]
206
+ Database(#[from] sqlx::Error),
207
+
208
+ #[error("Validation error: {field} โ€” {message}")]
209
+ Validation { field: String, message: String },
210
+
211
+ #[error("Not found: {0}")]
212
+ NotFound(String),
213
+
214
+ #[error("Unauthorized")]
215
+ Unauthorized,
216
+
217
+ #[error("IO error: {0}")]
218
+ Io(#[from] std::io::Error),
219
+
220
+ #[error("JSON error: {0}")]
221
+ Json(#[from] serde_json::Error),
222
+ }
223
+
224
+ // #[from] auto-implements From<sqlx::Error> for AppError
225
+ // So sqlx errors can be propagated with ? automatically
226
+ ```
227
+
228
+ ### anyhow (Application Errors)
229
+
230
+ ```rust
231
+ // anyhow โ€” for application code (quick error propagation)
232
+ use anyhow::{Context, Result, bail, ensure};
233
+
234
+ fn load_config(path: &str) -> Result<Config> {
235
+ let content = fs::read_to_string(path)
236
+ .context(format!("Failed to read config from {path}"))?;
237
+
238
+ let config: Config = serde_json::from_str(&content)
239
+ .context("Invalid JSON in config file")?;
240
+
241
+ ensure!(config.port > 0, "Port must be positive, got {}", config.port);
242
+
243
+ if config.name.is_empty() {
244
+ bail!("Config name cannot be empty");
245
+ }
246
+
247
+ Ok(config)
248
+ }
249
+
250
+ // Use thiserror for libraries, anyhow for applications
251
+ // โŒ HALLUCINATION TRAP: Don't use anyhow in library crates
252
+ // Libraries should expose structured error types (thiserror)
253
+ // anyhow erases type information โ€” callers can't match on specific errors
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Traits
259
+
260
+ ### Defining & Implementing
261
+
262
+ ```rust
263
+ trait Summarizable {
264
+ fn summary(&self) -> String;
265
+
266
+ // Default implementation
267
+ fn preview(&self) -> String {
268
+ let s = self.summary();
269
+ if s.len() > 50 {
270
+ format!("{}...", &s[..50])
271
+ } else {
272
+ s
273
+ }
274
+ }
275
+ }
276
+
277
+ struct Article {
278
+ title: String,
279
+ body: String,
280
+ author: String,
281
+ }
282
+
283
+ impl Summarizable for Article {
284
+ fn summary(&self) -> String {
285
+ format!("{} by {} โ€” {}", self.title, self.author, &self.body[..100.min(self.body.len())])
286
+ }
287
+ }
288
+
289
+ // Trait bounds
290
+ fn notify(item: &impl Summarizable) {
291
+ println!("Breaking: {}", item.summary());
292
+ }
293
+
294
+ // Equivalent with generics (more flexible)
295
+ fn notify_generic<T: Summarizable + std::fmt::Display>(item: &T) {
296
+ println!("Breaking: {}", item.summary());
297
+ }
298
+
299
+ // where clause (cleaner for complex bounds)
300
+ fn process<T, U>(t: &T, u: &U) -> String
301
+ where
302
+ T: Summarizable + Clone,
303
+ U: std::fmt::Debug + Send,
304
+ {
305
+ format!("{} โ€” {:?}", t.summary(), u)
306
+ }
307
+
308
+ // Return impl Trait (hide concrete type)
309
+ fn make_summarizer() -> impl Summarizable {
310
+ Article { title: "News".into(), body: "Content".into(), author: "Author".into() }
311
+ }
312
+ ```
313
+
314
+ ### Common Standard Traits
315
+
316
+ ```rust
317
+ // Derive common traits
318
+ #[derive(Debug, Clone, PartialEq, Eq, Hash)]
319
+ struct Point {
320
+ x: i32,
321
+ y: i32,
322
+ }
323
+
324
+ // Display โ€” for user-facing output
325
+ use std::fmt;
326
+ impl fmt::Display for Point {
327
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
328
+ write!(f, "({}, {})", self.x, self.y)
329
+ }
330
+ }
331
+
332
+ // From/Into โ€” type conversion
333
+ impl From<(i32, i32)> for Point {
334
+ fn from((x, y): (i32, i32)) -> Self {
335
+ Point { x, y }
336
+ }
337
+ }
338
+ let p: Point = (10, 20).into(); // uses From automatically
339
+
340
+ // Iterator
341
+ struct Counter { count: u32, max: u32 }
342
+ impl Iterator for Counter {
343
+ type Item = u32;
344
+ fn next(&mut self) -> Option<Self::Item> {
345
+ if self.count < self.max {
346
+ self.count += 1;
347
+ Some(self.count)
348
+ } else {
349
+ None
350
+ }
351
+ }
352
+ }
353
+ ```
354
+
355
+ ---
356
+
357
+ ## Async with Tokio
358
+
359
+ ### Runtime Setup
360
+
361
+ ```rust
362
+ // Cargo.toml
363
+ // [dependencies]
364
+ // tokio = { version = "1", features = ["full"] }
365
+
366
+ #[tokio::main]
367
+ async fn main() {
368
+ let result = fetch_data("https://api.example.com/data").await;
369
+ println!("{result:?}");
370
+ }
371
+
372
+ // For library code โ€” don't use #[tokio::main], let the caller choose the runtime
373
+ pub async fn fetch_data(url: &str) -> Result<String> {
374
+ let response = reqwest::get(url).await?;
375
+ let body = response.text().await?;
376
+ Ok(body)
377
+ }
378
+ ```
379
+
380
+ ### Concurrent Tasks
381
+
382
+ ```rust
383
+ use tokio::task;
384
+
385
+ // Spawn concurrent tasks
386
+ async fn parallel_fetch() -> Result<(Users, Posts)> {
387
+ let users_handle = task::spawn(async { fetch_users().await });
388
+ let posts_handle = task::spawn(async { fetch_posts().await });
389
+
390
+ let users = users_handle.await??; // first ? for JoinError, second for app error
391
+ let posts = posts_handle.await??;
392
+
393
+ Ok((users, posts))
394
+ }
395
+
396
+ // tokio::join! โ€” run concurrently, wait for all
397
+ async fn fetch_all() -> Result<(Users, Posts, Analytics)> {
398
+ let (users, posts, analytics) = tokio::join!(
399
+ fetch_users(),
400
+ fetch_posts(),
401
+ fetch_analytics(),
402
+ );
403
+ Ok((users?, posts?, analytics?))
404
+ }
405
+
406
+ // tokio::select! โ€” race multiple futures, take first to complete
407
+ async fn fetch_with_timeout(url: &str) -> Result<String> {
408
+ tokio::select! {
409
+ result = fetch_data(url) => result,
410
+ _ = tokio::time::sleep(Duration::from_secs(5)) => {
411
+ Err(anyhow!("Request timed out after 5s"))
412
+ }
413
+ }
414
+ }
415
+
416
+ // โŒ HALLUCINATION TRAP: tokio::spawn requires 'static + Send
417
+ // You cannot spawn a task referencing local variables without Arc/clone
418
+ // โŒ let data = &local_data;
419
+ // tokio::spawn(async { process(data) }); // โŒ data doesn't live long enough
420
+ // โœ… let data = Arc::new(local_data);
421
+ // let data_clone = Arc::clone(&data);
422
+ // tokio::spawn(async move { process(&data_clone) });
423
+ ```
424
+
425
+ ### Channels
426
+
427
+ ```rust
428
+ use tokio::sync::{mpsc, oneshot, broadcast};
429
+
430
+ // mpsc โ€” Multiple Producer, Single Consumer
431
+ async fn worker_pattern() {
432
+ let (tx, mut rx) = mpsc::channel::<String>(32); // buffer size
433
+
434
+ tokio::spawn(async move {
435
+ tx.send("hello".to_string()).await.unwrap();
436
+ tx.send("world".to_string()).await.unwrap();
437
+ });
438
+
439
+ while let Some(msg) = rx.recv().await {
440
+ println!("Got: {msg}");
441
+ }
442
+ }
443
+
444
+ // oneshot โ€” single response (request/response pattern)
445
+ async fn request_response() {
446
+ let (tx, rx) = oneshot::channel::<String>();
447
+
448
+ tokio::spawn(async move {
449
+ let result = expensive_computation().await;
450
+ tx.send(result).unwrap();
451
+ });
452
+
453
+ let response = rx.await.unwrap();
454
+ }
455
+
456
+ // Mutex (async-safe)
457
+ use tokio::sync::Mutex;
458
+ let shared_state = Arc::new(Mutex::new(Vec::new()));
459
+
460
+ let state = Arc::clone(&shared_state);
461
+ tokio::spawn(async move {
462
+ let mut guard = state.lock().await;
463
+ guard.push("item");
464
+ }); // lock released when guard is dropped
465
+ ```
466
+
467
+ ---
468
+
469
+ ## Axum Web Framework
470
+
471
+ ### Basic Server
472
+
473
+ ```rust
474
+ use axum::{
475
+ extract::{Path, Query, State, Json},
476
+ http::StatusCode,
477
+ response::IntoResponse,
478
+ routing::{get, post, delete},
479
+ Router,
480
+ };
481
+ use serde::{Deserialize, Serialize};
482
+
483
+ #[derive(Clone)]
484
+ struct AppState {
485
+ db: sqlx::PgPool,
486
+ }
487
+
488
+ #[tokio::main]
489
+ async fn main() {
490
+ let pool = sqlx::PgPool::connect("postgres://localhost/mydb").await.unwrap();
491
+ let state = AppState { db: pool };
492
+
493
+ let app = Router::new()
494
+ .route("/users", get(list_users).post(create_user))
495
+ .route("/users/{id}", get(get_user).delete(delete_user))
496
+ .with_state(state);
497
+
498
+ let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
499
+ axum::serve(listener, app).await.unwrap();
500
+ }
501
+
502
+ // โŒ HALLUCINATION TRAP: axum 0.7+ uses {id} not :id for path params
503
+ // โŒ .route("/users/:id", ...) โ† old syntax
504
+ // โœ… .route("/users/{id}", ...) โ† axum 0.7+
505
+ ```
506
+
507
+ ### Handlers
508
+
509
+ ```rust
510
+ #[derive(Deserialize)]
511
+ struct ListParams {
512
+ page: Option<u32>,
513
+ limit: Option<u32>,
514
+ }
515
+
516
+ async fn list_users(
517
+ State(state): State<AppState>,
518
+ Query(params): Query<ListParams>,
519
+ ) -> Result<Json<Vec<User>>, AppError> {
520
+ let page = params.page.unwrap_or(1);
521
+ let limit = params.limit.unwrap_or(20).min(100);
522
+ let offset = (page - 1) * limit;
523
+
524
+ let users = sqlx::query_as!(
525
+ User,
526
+ "SELECT id, name, email FROM users ORDER BY id LIMIT $1 OFFSET $2",
527
+ limit as i64,
528
+ offset as i64,
529
+ )
530
+ .fetch_all(&state.db)
531
+ .await?;
532
+
533
+ Ok(Json(users))
534
+ }
535
+
536
+ #[derive(Deserialize)]
537
+ struct CreateUserPayload {
538
+ name: String,
539
+ email: String,
540
+ }
541
+
542
+ async fn create_user(
543
+ State(state): State<AppState>,
544
+ Json(payload): Json<CreateUserPayload>,
545
+ ) -> Result<(StatusCode, Json<User>), AppError> {
546
+ let user = sqlx::query_as!(
547
+ User,
548
+ "INSERT INTO users (name, email) VALUES ($1, $2) RETURNING id, name, email",
549
+ payload.name,
550
+ payload.email,
551
+ )
552
+ .fetch_one(&state.db)
553
+ .await?;
554
+
555
+ Ok((StatusCode::CREATED, Json(user)))
556
+ }
557
+
558
+ async fn get_user(
559
+ State(state): State<AppState>,
560
+ Path(id): Path<i32>,
561
+ ) -> Result<Json<User>, AppError> {
562
+ let user = sqlx::query_as!(User, "SELECT id, name, email FROM users WHERE id = $1", id)
563
+ .fetch_optional(&state.db)
564
+ .await?
565
+ .ok_or(AppError::NotFound(format!("User {id}")))?;
566
+
567
+ Ok(Json(user))
568
+ }
569
+ ```
570
+
571
+ ### Error Handling in Axum
572
+
573
+ ```rust
574
+ use axum::response::{IntoResponse, Response};
575
+
576
+ #[derive(Debug, thiserror::Error)]
577
+ pub enum AppError {
578
+ #[error("Not found: {0}")]
579
+ NotFound(String),
580
+ #[error("Validation: {0}")]
581
+ Validation(String),
582
+ #[error("Database: {0}")]
583
+ Database(#[from] sqlx::Error),
584
+ #[error("Internal: {0}")]
585
+ Internal(#[from] anyhow::Error),
586
+ }
587
+
588
+ impl IntoResponse for AppError {
589
+ fn into_response(self) -> Response {
590
+ let (status, message) = match &self {
591
+ AppError::NotFound(msg) => (StatusCode::NOT_FOUND, msg.clone()),
592
+ AppError::Validation(msg) => (StatusCode::BAD_REQUEST, msg.clone()),
593
+ AppError::Database(e) => {
594
+ tracing::error!("DB error: {e}"); // log internal details
595
+ (StatusCode::INTERNAL_SERVER_ERROR, "Database error".to_string())
596
+ }
597
+ AppError::Internal(e) => {
598
+ tracing::error!("Internal error: {e}");
599
+ (StatusCode::INTERNAL_SERVER_ERROR, "Internal error".to_string())
600
+ }
601
+ };
602
+
603
+ (status, Json(serde_json::json!({ "error": message }))).into_response()
604
+ }
605
+ }
606
+ ```
607
+
608
+ ---
609
+
610
+ ## Serde (Serialization)
611
+
612
+ ```rust
613
+ use serde::{Deserialize, Serialize};
614
+
615
+ #[derive(Debug, Serialize, Deserialize)]
616
+ #[serde(rename_all = "camelCase")] // JSON uses camelCase
617
+ struct UserResponse {
618
+ user_id: i32, // serialized as "userId"
619
+ full_name: String, // serialized as "fullName"
620
+ email: String,
621
+
622
+ #[serde(skip_serializing_if = "Option::is_none")]
623
+ phone: Option<String>, // omitted from JSON if None
624
+
625
+ #[serde(default)] // defaults to 0 if missing in input
626
+ login_count: u32,
627
+
628
+ #[serde(rename = "type")] // rename for reserved keywords
629
+ user_type: String,
630
+
631
+ #[serde(skip)] // never serialized/deserialized
632
+ internal_token: String,
633
+ }
634
+
635
+ // Enum serialization
636
+ #[derive(Serialize, Deserialize)]
637
+ #[serde(tag = "type", content = "data")] // adjacently tagged
638
+ enum Event {
639
+ #[serde(rename = "user_created")]
640
+ UserCreated { id: i32, name: String },
641
+ #[serde(rename = "user_deleted")]
642
+ UserDeleted { id: i32 },
643
+ }
644
+ // Serializes as: {"type": "user_created", "data": {"id": 1, "name": "Alice"}}
645
+ ```
646
+
647
+ ---
648
+
649
+ ## Iterator Patterns
650
+
651
+ ```rust
652
+ let numbers = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
653
+
654
+ // Chain operations (lazy โ€” no allocation until collect)
655
+ let result: Vec<i32> = numbers.iter()
656
+ .filter(|&&n| n % 2 == 0) // keep even
657
+ .map(|&n| n * n) // square
658
+ .take(3) // first 3
659
+ .collect(); // [4, 16, 36]
660
+
661
+ // fold (reduce)
662
+ let sum: i32 = numbers.iter().fold(0, |acc, &n| acc + n);
663
+
664
+ // find / position
665
+ let first_even = numbers.iter().find(|&&n| n % 2 == 0); // Some(&2)
666
+ let pos = numbers.iter().position(|&n| n > 5); // Some(5)
667
+
668
+ // chunk / window
669
+ let chunks: Vec<&[i32]> = numbers.chunks(3).collect();
670
+ // [[1,2,3], [4,5,6], [7,8,9], [10]]
671
+
672
+ let windows: Vec<&[i32]> = numbers.windows(3).collect();
673
+ // [[1,2,3], [2,3,4], [3,4,5], ...]
674
+
675
+ // Collecting into HashMap
676
+ use std::collections::HashMap;
677
+ let word_counts: HashMap<&str, usize> = words.iter()
678
+ .fold(HashMap::new(), |mut map, word| {
679
+ *map.entry(word.as_str()).or_insert(0) += 1;
680
+ map
681
+ });
682
+ ```
683
+
684
+ ---
685
+
686
+ ## ๐Ÿšจ Edge-Case & Failure Mode Matrix
687
+
688
+ | Scenario | Risk | Mitigation Strategy |
689
+ |:---|:---|:---|
690
+ | **Empty or Null Inputs** | Unhandled exception or unexpected rendering collapse | Enforce fallback guards, optional chaining, and explicit empty state handlers |
691
+ | **Network Timeout / Latency** | Hanging operations or duplicate side-effects | Implement bounded abort controllers, exponential backoff, and idempotency keys |
692
+ | **Concurrency / Race Conditions** | Stale state overwrite or inconsistent data mutations | Use atomic transactions, mutex locking, or cancel-on-resubmit controls |
693
+ | **Invalid Schema / Malformed Payload** | Downstream runtime errors or security injection | Validate boundary payloads with Zod/Pydantic schemas prior to execution |
694
+ | **Resource / Memory Saturation** | OOM errors, frame drops, or memory leaks | Clean up listeners, cancel active timers, and enforce pagination/virtualization |
695
+
696
+ ---
697
+
698
+ ## ๐Ÿค– LLM-Specific Traps Table
699
+
700
+ | Anti-Pattern | What AI Commonly Does Wrong | What Is Actually Correct |
701
+ |:---|:---|:---|
702
+ | **Unchecked Payload Cast** | Casting request bodies to TypeScript types without runtime schema validation | Parse request payloads through Zod/Pydantic schemas before business logic |
703
+ | **Silent Error Swallowing** | Catching errors with empty catch blocks or logging without rethrowing | Propagate structured errors with status codes and contextual stack traces |
704
+ | **Unparameterized Query** | Concatenating user inputs into SQL/Prisma query strings | Always use parameterized bindings or type-safe ORM query builders |
705
+
706
+ ---
707
+
708
+ ## ๐Ÿ›๏ธ Tribunal Verification & Guardrails
709
+
710
+ **Active Reviewers:** `logic-reviewer` ยท `security-auditor` ยท `api-architect` ยท `resilience-reviewer`
711
+ **Slash Command:** `/review` or `/tribunal-full`
712
+
713
+ ### โœ… Pre-Flight Self-Audit Checklist
714
+
715
+ ```
716
+ โœ… Are all inputs and boundary payloads validated against schemas (Zod/Pydantic)?
717
+ โœ… Are SQL and database queries parameterized with zero string concatenation?
718
+ โœ… Are error boundaries and timeout/retry policies explicitly declared?
719
+ โœ… Are authentication checks performed before business logic execution?
720
+ โœ… Did I verify that imported dependencies exist in package.json/requirements.txt?
721
+ ```
722
+
723
+ ### ๐Ÿ›‘ Verification-Before-Completion (VBC) Protocol
724
+
725
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
726
+ - โŒ **Forbidden:** Declaring a task complete because the output "looks correct."
727
+ - โœ… **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing test suites, compiler success, or equivalent operational proof) that your output works as intended.