tribunal-kit 9.0.0 → 9.0.2

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 (722) 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/slash-commands.json +13 -1
  22. package/.agent/config/system-prompt.md +21 -7
  23. package/.agent/routing_index.json +1546 -268
  24. package/.agent/scripts/browser_audit.js +94 -0
  25. package/.agent/scripts/context_compiler.js +9 -0
  26. package/.agent/scripts/prompt_compiler.js +105 -13
  27. package/.agent/skill_topic_map.json +2 -1
  28. package/.agent/skills/12-principles-of-animation/SKILL.md +63 -25
  29. package/.agent/skills/60fps-animation/SKILL.md +68 -24
  30. package/.agent/skills/accessible-animation/SKILL.md +208 -44
  31. package/.agent/skills/adapt/SKILL.md +63 -25
  32. package/.agent/skills/advanced-rag-pipelines/SKILL.md +65 -25
  33. package/.agent/skills/agent-organizer/SKILL.md +60 -31
  34. package/.agent/skills/agentic-patterns/SKILL.md +60 -31
  35. package/.agent/skills/agentic-workflows-2026/SKILL.md +67 -27
  36. package/.agent/skills/ai-app-hardening/SKILL.md +67 -27
  37. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +59 -31
  38. package/.agent/skills/animation-on-scroll/SKILL.md +187 -51
  39. package/.agent/skills/animation-systems/SKILL.md +230 -40
  40. package/.agent/skills/antfu-conventions/SKILL.md +64 -26
  41. package/.agent/skills/api-patterns/SKILL.md +61 -31
  42. package/.agent/skills/api-security-auditor/SKILL.md +59 -31
  43. package/.agent/skills/app-builder/SKILL.md +61 -31
  44. package/.agent/skills/appflow-wireframe/SKILL.md +62 -33
  45. package/.agent/skills/apple-design/SKILL.md +63 -25
  46. package/.agent/skills/architecture/SKILL.md +61 -31
  47. package/.agent/skills/audit-and-fix/SKILL.md +63 -25
  48. package/.agent/skills/authentication-best-practices/SKILL.md +59 -31
  49. package/.agent/skills/backend-security-expert/SKILL.md +61 -31
  50. package/.agent/skills/baseline-ui/SKILL.md +63 -25
  51. package/.agent/skills/bash-linux/SKILL.md +59 -31
  52. package/.agent/skills/behavioral-modes/SKILL.md +60 -31
  53. package/.agent/skills/better-colors/SKILL.md +63 -25
  54. package/.agent/skills/better-typography/SKILL.md +63 -36
  55. package/.agent/skills/better-ui/SKILL.md +64 -24
  56. package/.agent/skills/bolder/SKILL.md +63 -25
  57. package/.agent/skills/brainstorming/SKILL.md +61 -31
  58. package/.agent/skills/browser-audit/SKILL.md +170 -0
  59. package/.agent/skills/browser-native-ai/SKILL.md +64 -26
  60. package/.agent/skills/build-primitive/SKILL.md +63 -25
  61. package/.agent/skills/building-native-ui/SKILL.md +59 -31
  62. package/.agent/skills/cicd-pro/SKILL.md +65 -25
  63. package/.agent/skills/clarify/SKILL.md +63 -25
  64. package/.agent/skills/clean-code/SKILL.md +59 -31
  65. package/.agent/skills/cloud-architect/SKILL.md +65 -25
  66. package/.agent/skills/cobejs/SKILL.md +63 -25
  67. package/.agent/skills/code-review-checklist/SKILL.md +59 -31
  68. package/.agent/skills/codebase-design/SKILL.md +65 -25
  69. package/.agent/skills/colorize/SKILL.md +63 -25
  70. package/.agent/skills/compact-landing/SKILL.md +63 -25
  71. package/.agent/skills/company-logos/SKILL.md +63 -25
  72. package/.agent/skills/config-validator/SKILL.md +59 -31
  73. package/.agent/skills/containerization-pro/SKILL.md +65 -25
  74. package/.agent/skills/context-engineering-pro/SKILL.md +67 -27
  75. package/.agent/skills/create-design-md/SKILL.md +63 -25
  76. package/.agent/skills/critique/SKILL.md +64 -25
  77. package/.agent/skills/csharp-developer/SKILL.md +59 -31
  78. package/.agent/skills/data-validation-schemas/SKILL.md +59 -31
  79. package/.agent/skills/database-design/SKILL.md +61 -31
  80. package/.agent/skills/delight/SKILL.md +63 -25
  81. package/.agent/skills/deployment-procedures/SKILL.md +59 -31
  82. package/.agent/skills/design-lab/SKILL.md +65 -26
  83. package/.agent/skills/devops-engineer/SKILL.md +59 -31
  84. package/.agent/skills/devops-incident-responder/SKILL.md +59 -31
  85. package/.agent/skills/diagnosing-bugs/SKILL.md +64 -27
  86. package/.agent/skills/distill/SKILL.md +63 -25
  87. package/.agent/skills/documentation-templates/SKILL.md +59 -31
  88. package/.agent/skills/domain-modeling/SKILL.md +64 -26
  89. package/.agent/skills/duckdb-analytical-sql/SKILL.md +66 -26
  90. package/.agent/skills/edge-ai-mobile/SKILL.md +66 -26
  91. package/.agent/skills/edge-computing/SKILL.md +59 -31
  92. package/.agent/skills/emil-design-eng/SKILL.md +64 -24
  93. package/.agent/skills/error-resilience/SKILL.md +59 -31
  94. package/.agent/skills/expo-router-v4/SKILL.md +65 -26
  95. package/.agent/skills/extract-design-system/SKILL.md +59 -31
  96. package/.agent/skills/fabel-protocol/SKILL.md +64 -25
  97. package/.agent/skills/fixing-accessibility/SKILL.md +63 -25
  98. package/.agent/skills/fixing-metadata/SKILL.md +63 -25
  99. package/.agent/skills/fixing-motion-performance/SKILL.md +63 -25
  100. package/.agent/skills/framer-motion-expert/SKILL.md +68 -30
  101. package/.agent/skills/frontend-design/SKILL.md +63 -25
  102. package/.agent/skills/frontend-security-expert/SKILL.md +61 -31
  103. package/.agent/skills/game-design-expert/SKILL.md +59 -31
  104. package/.agent/skills/game-engineering-expert/SKILL.md +59 -31
  105. package/.agent/skills/generative-ui-expert/SKILL.md +64 -26
  106. package/.agent/skills/geo-fundamentals/SKILL.md +59 -31
  107. package/.agent/skills/git-pro/SKILL.md +65 -25
  108. package/.agent/skills/github-operations/SKILL.md +59 -31
  109. package/.agent/skills/gpt-taste/SKILL.md +63 -25
  110. package/.agent/skills/gsap-core/SKILL.md +65 -25
  111. package/.agent/skills/gsap-frameworks/SKILL.md +65 -25
  112. package/.agent/skills/gsap-performance/SKILL.md +65 -25
  113. package/.agent/skills/gsap-plugins/SKILL.md +65 -25
  114. package/.agent/skills/gsap-react/SKILL.md +65 -25
  115. package/.agent/skills/gsap-scrolltrigger/SKILL.md +65 -25
  116. package/.agent/skills/gsap-timeline/SKILL.md +65 -25
  117. package/.agent/skills/gsap-utils/SKILL.md +65 -25
  118. package/.agent/skills/harden/SKILL.md +63 -25
  119. package/.agent/skills/harness-protocol/SKILL.md +64 -25
  120. package/.agent/skills/i18n-localization/SKILL.md +59 -31
  121. package/.agent/skills/impeccable/SKILL.md +63 -25
  122. package/.agent/skills/improve-codebase-architecture/SKILL.md +64 -26
  123. package/.agent/skills/improve-ui/SKILL.md +63 -25
  124. package/.agent/skills/intelligent-routing/SKILL.md +63 -23
  125. package/.agent/skills/knowledge-graph/SKILL.md +64 -25
  126. package/.agent/skills/landing-page/SKILL.md +63 -25
  127. package/.agent/skills/lint-and-validate/SKILL.md +59 -31
  128. package/.agent/skills/llm-engineering/SKILL.md +59 -31
  129. package/.agent/skills/local-first/SKILL.md +59 -31
  130. package/.agent/skills/local-first-architecture/SKILL.md +64 -24
  131. package/.agent/skills/lottie-animation/SKILL.md +63 -25
  132. package/.agent/skills/marquee-loop/SKILL.md +63 -25
  133. package/.agent/skills/masked-reveal/SKILL.md +246 -55
  134. package/.agent/skills/mcp-builder/SKILL.md +59 -31
  135. package/.agent/skills/micro-interaction/SKILL.md +255 -61
  136. package/.agent/skills/mobile-design/SKILL.md +61 -31
  137. package/.agent/skills/monorepo-management/SKILL.md +59 -31
  138. package/.agent/skills/morphing-icons/SKILL.md +366 -51
  139. package/.agent/skills/motion-engineering/SKILL.md +64 -26
  140. package/.agent/skills/nextjs-react-expert/SKILL.md +61 -31
  141. package/.agent/skills/nodejs-best-practices/SKILL.md +59 -31
  142. package/.agent/skills/observability/SKILL.md +59 -31
  143. package/.agent/skills/opentelemetry-observability/SKILL.md +66 -26
  144. package/.agent/skills/page-transition-animation/SKILL.md +63 -25
  145. package/.agent/skills/parallel-agents/SKILL.md +60 -31
  146. package/.agent/skills/performance-profiling/SKILL.md +60 -31
  147. package/.agent/skills/plan-writing/SKILL.md +59 -31
  148. package/.agent/skills/platform-engineer/SKILL.md +59 -31
  149. package/.agent/skills/platform-engineering-opentofu/SKILL.md +66 -27
  150. package/.agent/skills/playwright-ai-e2e/SKILL.md +67 -27
  151. package/.agent/skills/playwright-best-practices/SKILL.md +60 -31
  152. package/.agent/skills/polish/SKILL.md +63 -25
  153. package/.agent/skills/powershell-windows/SKILL.md +59 -31
  154. package/.agent/skills/pricing-page/SKILL.md +63 -25
  155. package/.agent/skills/product-aware-heuristics/SKILL.md +63 -25
  156. package/.agent/skills/progressive-blur/SKILL.md +63 -25
  157. package/.agent/skills/project-idioms/SKILL.md +60 -36
  158. package/.agent/skills/property-based-testing/SKILL.md +67 -27
  159. package/.agent/skills/python-patterns/SKILL.md +59 -31
  160. package/.agent/skills/python-pro/SKILL.md +61 -31
  161. package/.agent/skills/quieter/SKILL.md +63 -25
  162. package/.agent/skills/react-doctor/SKILL.md +63 -25
  163. package/.agent/skills/react-specialist/SKILL.md +61 -31
  164. package/.agent/skills/readme-builder/SKILL.md +59 -31
  165. package/.agent/skills/realtime-patterns/SKILL.md +59 -31
  166. package/.agent/skills/red-team-tactics/SKILL.md +59 -31
  167. package/.agent/skills/redesign-skill/SKILL.md +63 -25
  168. package/.agent/skills/review-animations/SKILL.md +64 -26
  169. package/.agent/skills/rust-pro/SKILL.md +61 -31
  170. package/.agent/skills/seo-fundamentals/SKILL.md +59 -31
  171. package/.agent/skills/server-management/SKILL.md +59 -31
  172. package/.agent/skills/shadcn-ui-expert/SKILL.md +59 -31
  173. package/.agent/skills/shape/SKILL.md +64 -25
  174. package/.agent/skills/skill-creator/SKILL.md +66 -24
  175. package/.agent/skills/soft-skill/SKILL.md +63 -25
  176. package/.agent/skills/sounds-on-the-web/SKILL.md +63 -25
  177. package/.agent/skills/sql-pro/SKILL.md +59 -31
  178. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +59 -31
  179. package/.agent/skills/svg-animation/SKILL.md +369 -51
  180. package/.agent/skills/swiftui-expert/SKILL.md +59 -31
  181. package/.agent/skills/swiss-design/SKILL.md +63 -25
  182. package/.agent/skills/system-design-pro/SKILL.md +65 -25
  183. package/.agent/skills/systematic-debugging/SKILL.md +60 -31
  184. package/.agent/skills/tailwind-patterns/SKILL.md +59 -31
  185. package/.agent/skills/taste-skill/SKILL.md +63 -25
  186. package/.agent/skills/tdd-workflow/SKILL.md +66 -25
  187. package/.agent/skills/test-result-analyzer/SKILL.md +59 -32
  188. package/.agent/skills/testing-patterns/SKILL.md +60 -31
  189. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +64 -26
  190. package/.agent/skills/thinking-protocol/SKILL.md +58 -34
  191. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +63 -25
  192. package/.agent/skills/transitions-dev/SKILL.md +63 -25
  193. package/.agent/skills/trend-researcher/SKILL.md +58 -32
  194. package/.agent/skills/typescript-advanced/SKILL.md +59 -32
  195. package/.agent/skills/typeset/SKILL.md +63 -25
  196. package/.agent/skills/ui-reasoning-engine/SKILL.md +63 -25
  197. package/.agent/skills/ui-skill-packs/SKILL.md +64 -24
  198. package/.agent/skills/ui-skills-root/SKILL.md +63 -25
  199. package/.agent/skills/ui-ux-pro-max/SKILL.md +64 -24
  200. package/.agent/skills/ui-ux-researcher/SKILL.md +58 -32
  201. package/.agent/skills/vector-search-pgvector/SKILL.md +66 -26
  202. package/.agent/skills/verification-before-completion/SKILL.md +69 -16
  203. package/.agent/skills/vue-expert/SKILL.md +61 -31
  204. package/.agent/skills/vulnerability-scanner/SKILL.md +61 -31
  205. package/.agent/skills/web-accessibility-auditor/SKILL.md +59 -31
  206. package/.agent/skills/web-design-guidelines/SKILL.md +63 -25
  207. package/.agent/skills/web-quality-audit/SKILL.md +63 -25
  208. package/.agent/skills/webapp-testing/SKILL.md +60 -31
  209. package/.agent/skills/webgpu-performance/SKILL.md +64 -26
  210. package/.agent/skills/whimsy-injector/SKILL.md +58 -32
  211. package/.agent/skills/workflow-optimizer/SKILL.md +58 -31
  212. package/.agent/skills/zero-trust-passkeys/SKILL.md +66 -26
  213. package/.agent/templates/sdd/implementer-prompt.md +10 -1
  214. package/.agent/templates/sdd/re-review-prompt.md +9 -1
  215. package/.agent/templates/sdd/task-reviewer-prompt.md +20 -1
  216. package/.agent/workflows/audit-live.md +52 -0
  217. package/.agent/workflows/compare-web.md +35 -0
  218. package/.agent/workflows/context.md +100 -0
  219. package/.agent/workflows/plan.md +1 -1
  220. package/.agent/workflows/skill-enhancement-engine.md +88 -0
  221. package/.agent/workflows/super-prompt.md +101 -21
  222. package/.agents/skills/12-principles-of-animation/SKILL.md +126 -0
  223. package/.agents/skills/60fps-animation/SKILL.md +164 -0
  224. package/.agents/skills/accessible-animation/SKILL.md +266 -0
  225. package/.agents/skills/adapt/SKILL.md +131 -0
  226. package/.agents/skills/advanced-rag-pipelines/SKILL.md +169 -0
  227. package/.agents/skills/agent-organizer/SKILL.md +192 -0
  228. package/.agents/skills/agentic-patterns/SKILL.md +356 -0
  229. package/.agents/skills/agentic-workflows-2026/SKILL.md +157 -0
  230. package/.agents/skills/ai-app-hardening/SKILL.md +125 -0
  231. package/.agents/skills/ai-prompt-injection-defense/SKILL.md +237 -0
  232. package/.agents/skills/animation-on-scroll/SKILL.md +267 -0
  233. package/.agents/skills/animation-systems/SKILL.md +273 -0
  234. package/.agents/skills/antfu-conventions/SKILL.md +129 -0
  235. package/.agents/skills/api-patterns/SKILL.md +293 -0
  236. package/.agents/skills/api-patterns/scripts/api_validator.py +211 -0
  237. package/.agents/skills/api-security-auditor/SKILL.md +230 -0
  238. package/.agents/skills/app-builder/SKILL.md +610 -0
  239. package/.agents/skills/app-builder/templates/SKILL.md +108 -0
  240. package/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  241. package/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  242. package/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  243. package/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  244. package/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  245. package/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  246. package/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  247. package/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
  248. package/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
  249. package/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
  250. package/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
  251. package/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  252. package/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
  253. package/.agents/skills/appflow-wireframe/SKILL.md +173 -0
  254. package/.agents/skills/apple-design/SKILL.md +164 -0
  255. package/.agents/skills/architecture/SKILL.md +263 -0
  256. package/.agents/skills/audit-and-fix/SKILL.md +136 -0
  257. package/.agents/skills/authentication-best-practices/SKILL.md +232 -0
  258. package/.agents/skills/backend-security-expert/SKILL.md +148 -0
  259. package/.agents/skills/baseline-ui/SKILL.md +130 -0
  260. package/.agents/skills/bash-linux/SKILL.md +214 -0
  261. package/.agents/skills/behavioral-modes/SKILL.md +275 -0
  262. package/.agents/skills/better-colors/SKILL.md +191 -0
  263. package/.agents/skills/better-typography/SKILL.md +164 -0
  264. package/.agents/skills/better-ui/SKILL.md +193 -0
  265. package/.agents/skills/bolder/SKILL.md +124 -0
  266. package/.agents/skills/brainstorming/SKILL.md +534 -0
  267. package/.agents/skills/browser-audit/SKILL.md +170 -0
  268. package/.agents/skills/browser-native-ai/SKILL.md +147 -0
  269. package/.agents/skills/build-primitive/SKILL.md +125 -0
  270. package/.agents/skills/building-native-ui/SKILL.md +237 -0
  271. package/.agents/skills/cicd-pro/SKILL.md +487 -0
  272. package/.agents/skills/clarify/SKILL.md +130 -0
  273. package/.agents/skills/clean-code/SKILL.md +442 -0
  274. package/.agents/skills/cloud-architect/SKILL.md +484 -0
  275. package/.agents/skills/cobejs/SKILL.md +145 -0
  276. package/.agents/skills/code-review-checklist/SKILL.md +238 -0
  277. package/.agents/skills/codebase-design/SKILL.md +151 -0
  278. package/.agents/skills/colorize/SKILL.md +132 -0
  279. package/.agents/skills/compact-landing/SKILL.md +125 -0
  280. package/.agents/skills/company-logos/SKILL.md +129 -0
  281. package/.agents/skills/config-validator/SKILL.md +200 -0
  282. package/.agents/skills/containerization-pro/SKILL.md +497 -0
  283. package/.agents/skills/context-engineering-pro/SKILL.md +136 -0
  284. package/.agents/skills/create-design-md/SKILL.md +167 -0
  285. package/.agents/skills/critique/SKILL.md +154 -0
  286. package/.agents/skills/csharp-developer/SKILL.md +553 -0
  287. package/.agents/skills/data-validation-schemas/SKILL.md +372 -0
  288. package/.agents/skills/database-design/SKILL.md +294 -0
  289. package/.agents/skills/database-design/scripts/schema_validator.py +172 -0
  290. package/.agents/skills/delight/SKILL.md +121 -0
  291. package/.agents/skills/deployment-procedures/SKILL.md +207 -0
  292. package/.agents/skills/design-lab/SKILL.md +117 -0
  293. package/.agents/skills/devops-engineer/SKILL.md +380 -0
  294. package/.agents/skills/devops-incident-responder/SKILL.md +178 -0
  295. package/.agents/skills/diagnosing-bugs/SKILL.md +247 -0
  296. package/.agents/skills/distill/SKILL.md +120 -0
  297. package/.agents/skills/documentation-templates/SKILL.md +326 -0
  298. package/.agents/skills/domain-modeling/SKILL.md +136 -0
  299. package/.agents/skills/duckdb-analytical-sql/SKILL.md +125 -0
  300. package/.agents/skills/edge-ai-mobile/SKILL.md +116 -0
  301. package/.agents/skills/edge-computing/SKILL.md +218 -0
  302. package/.agents/skills/emil-design-eng/SKILL.md +209 -0
  303. package/.agents/skills/error-resilience/SKILL.md +478 -0
  304. package/.agents/skills/expo-router-v4/SKILL.md +146 -0
  305. package/.agents/skills/extract-design-system/SKILL.md +195 -0
  306. package/.agents/skills/fabel-protocol/SKILL.md +352 -0
  307. package/.agents/skills/fixing-accessibility/SKILL.md +162 -0
  308. package/.agents/skills/fixing-metadata/SKILL.md +158 -0
  309. package/.agents/skills/fixing-motion-performance/SKILL.md +153 -0
  310. package/.agents/skills/framer-motion-expert/SKILL.md +312 -0
  311. package/.agents/skills/frontend-design/SKILL.md +178 -0
  312. package/.agents/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  313. package/.agents/skills/frontend-design/scripts/ux_audit.py +722 -0
  314. package/.agents/skills/frontend-security-expert/SKILL.md +131 -0
  315. package/.agents/skills/game-design-expert/SKILL.md +167 -0
  316. package/.agents/skills/game-engineering-expert/SKILL.md +183 -0
  317. package/.agents/skills/generative-ui-expert/SKILL.md +175 -0
  318. package/.agents/skills/geo-fundamentals/SKILL.md +183 -0
  319. package/.agents/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  320. package/.agents/skills/git-pro/SKILL.md +476 -0
  321. package/.agents/skills/github-operations/SKILL.md +370 -0
  322. package/.agents/skills/gpt-taste/SKILL.md +125 -0
  323. package/.agents/skills/gsap-core/SKILL.md +352 -0
  324. package/.agents/skills/gsap-frameworks/SKILL.md +243 -0
  325. package/.agents/skills/gsap-performance/SKILL.md +169 -0
  326. package/.agents/skills/gsap-plugins/SKILL.md +516 -0
  327. package/.agents/skills/gsap-react/SKILL.md +288 -0
  328. package/.agents/skills/gsap-scrolltrigger/SKILL.md +387 -0
  329. package/.agents/skills/gsap-timeline/SKILL.md +197 -0
  330. package/.agents/skills/gsap-utils/SKILL.md +374 -0
  331. package/.agents/skills/harden/SKILL.md +130 -0
  332. package/.agents/skills/harness-protocol/SKILL.md +115 -0
  333. package/.agents/skills/i18n-localization/SKILL.md +209 -0
  334. package/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  335. package/.agents/skills/impeccable/SKILL.md +127 -0
  336. package/.agents/skills/improve-codebase-architecture/SKILL.md +123 -0
  337. package/.agents/skills/improve-ui/SKILL.md +145 -0
  338. package/.agents/skills/intelligent-routing/SKILL.md +283 -0
  339. package/.agents/skills/knowledge-graph/SKILL.md +146 -0
  340. package/.agents/skills/landing-page/SKILL.md +140 -0
  341. package/.agents/skills/lint-and-validate/SKILL.md +299 -0
  342. package/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  343. package/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  344. package/.agents/skills/llm-engineering/SKILL.md +435 -0
  345. package/.agents/skills/local-first/SKILL.md +213 -0
  346. package/.agents/skills/local-first-architecture/SKILL.md +137 -0
  347. package/.agents/skills/lottie-animation/SKILL.md +137 -0
  348. package/.agents/skills/marquee-loop/SKILL.md +147 -0
  349. package/.agents/skills/masked-reveal/SKILL.md +305 -0
  350. package/.agents/skills/mcp-builder/SKILL.md +180 -0
  351. package/.agents/skills/micro-interaction/SKILL.md +321 -0
  352. package/.agents/skills/mobile-design/SKILL.md +320 -0
  353. package/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -0
  354. package/.agents/skills/monorepo-management/SKILL.md +370 -0
  355. package/.agents/skills/morphing-icons/SKILL.md +423 -0
  356. package/.agents/skills/motion-engineering/SKILL.md +272 -0
  357. package/.agents/skills/nextjs-react-expert/SKILL.md +293 -0
  358. package/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  359. package/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  360. package/.agents/skills/nodejs-best-practices/SKILL.md +617 -0
  361. package/.agents/skills/observability/SKILL.md +378 -0
  362. package/.agents/skills/opentelemetry-observability/SKILL.md +125 -0
  363. package/.agents/skills/page-transition-animation/SKILL.md +161 -0
  364. package/.agents/skills/parallel-agents/SKILL.md +185 -0
  365. package/.agents/skills/performance-profiling/SKILL.md +305 -0
  366. package/.agents/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  367. package/.agents/skills/plan-writing/SKILL.md +202 -0
  368. package/.agents/skills/platform-engineer/SKILL.md +183 -0
  369. package/.agents/skills/platform-engineering-opentofu/SKILL.md +133 -0
  370. package/.agents/skills/playwright-ai-e2e/SKILL.md +126 -0
  371. package/.agents/skills/playwright-best-practices/SKILL.md +224 -0
  372. package/.agents/skills/polish/SKILL.md +114 -0
  373. package/.agents/skills/powershell-windows/SKILL.md +197 -0
  374. package/.agents/skills/pricing-page/SKILL.md +123 -0
  375. package/.agents/skills/product-aware-heuristics/SKILL.md +465 -0
  376. package/.agents/skills/progressive-blur/SKILL.md +155 -0
  377. package/.agents/skills/project-idioms/SKILL.md +166 -0
  378. package/.agents/skills/property-based-testing/SKILL.md +124 -0
  379. package/.agents/skills/python-patterns/SKILL.md +295 -0
  380. package/.agents/skills/python-pro/SKILL.md +380 -0
  381. package/.agents/skills/quieter/SKILL.md +124 -0
  382. package/.agents/skills/react-doctor/SKILL.md +126 -0
  383. package/.agents/skills/react-specialist/SKILL.md +355 -0
  384. package/.agents/skills/readme-builder/SKILL.md +345 -0
  385. package/.agents/skills/realtime-patterns/SKILL.md +358 -0
  386. package/.agents/skills/red-team-tactics/SKILL.md +266 -0
  387. package/.agents/skills/redesign-skill/SKILL.md +121 -0
  388. package/.agents/skills/review-animations/SKILL.md +120 -0
  389. package/.agents/skills/review-animations/STANDARDS.md +87 -0
  390. package/.agents/skills/rust-pro/SKILL.md +727 -0
  391. package/.agents/skills/seo-fundamentals/SKILL.md +214 -0
  392. package/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  393. package/.agents/skills/server-management/SKILL.md +253 -0
  394. package/.agents/skills/shadcn-ui-expert/SKILL.md +271 -0
  395. package/.agents/skills/shape/SKILL.md +131 -0
  396. package/.agents/skills/skill-creator/SKILL.md +136 -0
  397. package/.agents/skills/soft-skill/SKILL.md +128 -0
  398. package/.agents/skills/sounds-on-the-web/SKILL.md +151 -0
  399. package/.agents/skills/sql-pro/SKILL.md +699 -0
  400. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +132 -0
  401. package/.agents/skills/svg-animation/SKILL.md +431 -0
  402. package/.agents/skills/swiftui-expert/SKILL.md +239 -0
  403. package/.agents/skills/swiss-design/SKILL.md +119 -0
  404. package/.agents/skills/system-design-pro/SKILL.md +393 -0
  405. package/.agents/skills/systematic-debugging/SKILL.md +198 -0
  406. package/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
  407. package/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
  408. package/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
  409. package/.agents/skills/tailwind-patterns/SKILL.md +658 -0
  410. package/.agents/skills/taste-skill/SKILL.md +127 -0
  411. package/.agents/skills/tdd-workflow/SKILL.md +179 -0
  412. package/.agents/skills/test-result-analyzer/SKILL.md +345 -0
  413. package/.agents/skills/testing-patterns/SKILL.md +609 -0
  414. package/.agents/skills/testing-patterns/scripts/test_runner.py +219 -0
  415. package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
  416. package/.agents/skills/thinking-protocol/SKILL.md +97 -0
  417. package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
  418. package/.agents/skills/transitions-dev/SKILL.md +165 -0
  419. package/.agents/skills/trend-researcher/SKILL.md +273 -0
  420. package/.agents/skills/typescript-advanced/SKILL.md +381 -0
  421. package/.agents/skills/typeset/SKILL.md +135 -0
  422. package/.agents/skills/ui-reasoning-engine/SKILL.md +230 -0
  423. package/.agents/skills/ui-skill-packs/SKILL.md +132 -0
  424. package/.agents/skills/ui-skills-root/SKILL.md +144 -0
  425. package/.agents/skills/ui-ux-pro-max/SKILL.md +185 -0
  426. package/.agents/skills/ui-ux-researcher/SKILL.md +274 -0
  427. package/.agents/skills/vector-search-pgvector/SKILL.md +144 -0
  428. package/.agents/skills/verification-before-completion/SKILL.md +178 -0
  429. package/.agents/skills/vue-expert/SKILL.md +334 -0
  430. package/.agents/skills/vulnerability-scanner/SKILL.md +453 -0
  431. package/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  432. package/.agents/skills/web-accessibility-auditor/SKILL.md +254 -0
  433. package/.agents/skills/web-design-guidelines/SKILL.md +124 -0
  434. package/.agents/skills/web-quality-audit/SKILL.md +122 -0
  435. package/.agents/skills/webapp-testing/SKILL.md +203 -0
  436. package/.agents/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  437. package/.agents/skills/webgpu-performance/SKILL.md +163 -0
  438. package/.agents/skills/whimsy-injector/SKILL.md +380 -0
  439. package/.agents/skills/workflow-optimizer/SKILL.md +263 -0
  440. package/.agents/skills/zero-trust-passkeys/SKILL.md +156 -0
  441. package/.claude-plugin/marketplace.json +1 -4
  442. package/.hermes-plugin/plugin.yaml +1 -1
  443. package/.kimi-plugin/plugin.json +6 -6
  444. package/.opencode/INSTALL.md +2 -2
  445. package/.opencode/rules.md +258 -0
  446. package/AGENTS.md +91 -0
  447. package/CLAUDE.md +442 -0
  448. package/CONTRIBUTING.md +1 -1
  449. package/README.md +66 -69
  450. package/bin/adapter-install.js +40 -16
  451. package/bin/mcp-server.js +426 -0
  452. package/bin/proxy-server.js +18 -9
  453. package/bin/spawn-agent.js +9 -3
  454. package/bin/wrapper.js +19 -4
  455. package/dist/browser/audit.js +229 -0
  456. package/dist/browser/case_bridge.js +189 -0
  457. package/dist/browser/cdp.js +513 -0
  458. package/dist/browser/compare.js +110 -0
  459. package/dist/browser/discovery.js +140 -0
  460. package/dist/browser/idpi.js +142 -0
  461. package/dist/browser/index.js +89 -0
  462. package/dist/browser/launcher.js +154 -0
  463. package/dist/browser/sentinel.js +202 -0
  464. package/dist/browser/synapse.js +251 -0
  465. package/dist/browser/trimmer.js +210 -0
  466. package/dist/cli.js +70 -48
  467. package/dist/commands/audit-web.js +112 -0
  468. package/dist/commands/browse.js +56 -0
  469. package/dist/commands/compare-web.js +61 -0
  470. package/dist/commands/deconstruct.js +58 -0
  471. package/dist/commands/heal.js +99 -0
  472. package/dist/commands/init.js +10 -1
  473. package/dist/commands/sdd.js +229 -0
  474. package/dist/commands/uninstall.js +12 -0
  475. package/dist/tui/banner.js +1 -1
  476. package/gemini-extension.json +1 -1
  477. package/hooks/hooks-cursor.json +2 -8
  478. package/hooks/hooks.json +2 -8
  479. package/marketplace.json +14 -0
  480. package/package.json +176 -165
  481. package/plugin.json +26 -0
  482. package/scripts/apply-version.js +57 -0
  483. package/scripts/clean-pycache.js +42 -0
  484. package/scripts/context_compiler.js +944 -0
  485. package/scripts/package-cores.js +113 -0
  486. package/scripts/skill_enhancement_engine.js +473 -0
  487. package/scripts/sync-skills.js +61 -0
  488. package/skills/12-principles-of-animation/SKILL.md +126 -0
  489. package/skills/60fps-animation/SKILL.md +164 -0
  490. package/skills/accessible-animation/SKILL.md +266 -0
  491. package/skills/adapt/SKILL.md +131 -0
  492. package/skills/advanced-rag-pipelines/SKILL.md +169 -0
  493. package/skills/agent-organizer/SKILL.md +192 -0
  494. package/skills/agentic-patterns/SKILL.md +356 -0
  495. package/skills/agentic-workflows-2026/SKILL.md +157 -0
  496. package/skills/ai-app-hardening/SKILL.md +125 -0
  497. package/skills/ai-prompt-injection-defense/SKILL.md +237 -0
  498. package/skills/animation-on-scroll/SKILL.md +267 -0
  499. package/skills/animation-systems/SKILL.md +273 -0
  500. package/skills/antfu-conventions/SKILL.md +129 -0
  501. package/skills/api-patterns/SKILL.md +293 -0
  502. package/skills/api-patterns/scripts/api_validator.py +211 -0
  503. package/skills/api-security-auditor/SKILL.md +230 -0
  504. package/skills/app-builder/SKILL.md +610 -0
  505. package/skills/app-builder/templates/SKILL.md +108 -0
  506. package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  507. package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  508. package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  509. package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  510. package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  511. package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  512. package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  513. package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
  514. package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
  515. package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
  516. package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
  517. package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  518. package/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
  519. package/skills/appflow-wireframe/SKILL.md +173 -0
  520. package/skills/apple-design/SKILL.md +164 -0
  521. package/skills/architecture/SKILL.md +263 -0
  522. package/skills/audit-and-fix/SKILL.md +136 -0
  523. package/skills/authentication-best-practices/SKILL.md +232 -0
  524. package/skills/backend-security-expert/SKILL.md +148 -0
  525. package/skills/baseline-ui/SKILL.md +130 -0
  526. package/skills/bash-linux/SKILL.md +214 -0
  527. package/skills/behavioral-modes/SKILL.md +275 -0
  528. package/skills/better-colors/SKILL.md +191 -0
  529. package/skills/better-typography/SKILL.md +164 -0
  530. package/skills/better-ui/SKILL.md +193 -0
  531. package/skills/bolder/SKILL.md +124 -0
  532. package/skills/brainstorming/SKILL.md +534 -0
  533. package/skills/browser-audit/SKILL.md +170 -0
  534. package/skills/browser-native-ai/SKILL.md +147 -0
  535. package/skills/build-primitive/SKILL.md +125 -0
  536. package/skills/building-native-ui/SKILL.md +237 -0
  537. package/skills/cicd-pro/SKILL.md +487 -0
  538. package/skills/clarify/SKILL.md +130 -0
  539. package/skills/clean-code/SKILL.md +442 -0
  540. package/skills/cloud-architect/SKILL.md +484 -0
  541. package/skills/cobejs/SKILL.md +145 -0
  542. package/skills/code-review-checklist/SKILL.md +238 -0
  543. package/skills/codebase-design/SKILL.md +151 -0
  544. package/skills/colorize/SKILL.md +132 -0
  545. package/skills/compact-landing/SKILL.md +125 -0
  546. package/skills/company-logos/SKILL.md +129 -0
  547. package/skills/config-validator/SKILL.md +200 -0
  548. package/skills/containerization-pro/SKILL.md +497 -0
  549. package/skills/context-engineering-pro/SKILL.md +136 -0
  550. package/skills/create-design-md/SKILL.md +167 -0
  551. package/skills/critique/SKILL.md +154 -0
  552. package/skills/csharp-developer/SKILL.md +553 -0
  553. package/skills/data-validation-schemas/SKILL.md +372 -0
  554. package/skills/database-design/SKILL.md +294 -0
  555. package/skills/database-design/scripts/schema_validator.py +172 -0
  556. package/skills/delight/SKILL.md +121 -0
  557. package/skills/deployment-procedures/SKILL.md +207 -0
  558. package/skills/design-lab/SKILL.md +117 -0
  559. package/skills/devops-engineer/SKILL.md +380 -0
  560. package/skills/devops-incident-responder/SKILL.md +178 -0
  561. package/skills/diagnosing-bugs/SKILL.md +247 -0
  562. package/skills/distill/SKILL.md +120 -0
  563. package/skills/documentation-templates/SKILL.md +326 -0
  564. package/skills/domain-modeling/SKILL.md +136 -0
  565. package/skills/duckdb-analytical-sql/SKILL.md +125 -0
  566. package/skills/edge-ai-mobile/SKILL.md +116 -0
  567. package/skills/edge-computing/SKILL.md +218 -0
  568. package/skills/emil-design-eng/SKILL.md +209 -0
  569. package/skills/error-resilience/SKILL.md +478 -0
  570. package/skills/expo-router-v4/SKILL.md +146 -0
  571. package/skills/extract-design-system/SKILL.md +195 -0
  572. package/skills/fabel-protocol/SKILL.md +352 -0
  573. package/skills/fixing-accessibility/SKILL.md +162 -0
  574. package/skills/fixing-metadata/SKILL.md +158 -0
  575. package/skills/fixing-motion-performance/SKILL.md +153 -0
  576. package/skills/framer-motion-expert/SKILL.md +312 -0
  577. package/skills/frontend-design/SKILL.md +178 -0
  578. package/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  579. package/skills/frontend-design/scripts/ux_audit.py +722 -0
  580. package/skills/frontend-security-expert/SKILL.md +131 -0
  581. package/skills/game-design-expert/SKILL.md +167 -0
  582. package/skills/game-engineering-expert/SKILL.md +183 -0
  583. package/skills/generative-ui-expert/SKILL.md +175 -0
  584. package/skills/geo-fundamentals/SKILL.md +183 -0
  585. package/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  586. package/skills/git-pro/SKILL.md +476 -0
  587. package/skills/github-operations/SKILL.md +370 -0
  588. package/skills/gpt-taste/SKILL.md +125 -0
  589. package/skills/gsap-core/SKILL.md +352 -0
  590. package/skills/gsap-frameworks/SKILL.md +243 -0
  591. package/skills/gsap-performance/SKILL.md +169 -0
  592. package/skills/gsap-plugins/SKILL.md +516 -0
  593. package/skills/gsap-react/SKILL.md +288 -0
  594. package/skills/gsap-scrolltrigger/SKILL.md +387 -0
  595. package/skills/gsap-timeline/SKILL.md +197 -0
  596. package/skills/gsap-utils/SKILL.md +374 -0
  597. package/skills/harden/SKILL.md +130 -0
  598. package/skills/harness-protocol/SKILL.md +115 -0
  599. package/skills/i18n-localization/SKILL.md +209 -0
  600. package/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  601. package/skills/impeccable/SKILL.md +127 -0
  602. package/skills/improve-codebase-architecture/SKILL.md +123 -0
  603. package/skills/improve-ui/SKILL.md +145 -0
  604. package/skills/intelligent-routing/SKILL.md +283 -0
  605. package/skills/knowledge-graph/SKILL.md +146 -0
  606. package/skills/landing-page/SKILL.md +140 -0
  607. package/skills/lint-and-validate/SKILL.md +299 -0
  608. package/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  609. package/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  610. package/skills/llm-engineering/SKILL.md +435 -0
  611. package/skills/local-first/SKILL.md +213 -0
  612. package/skills/local-first-architecture/SKILL.md +137 -0
  613. package/skills/lottie-animation/SKILL.md +137 -0
  614. package/skills/marquee-loop/SKILL.md +147 -0
  615. package/skills/masked-reveal/SKILL.md +305 -0
  616. package/skills/mcp-builder/SKILL.md +180 -0
  617. package/skills/micro-interaction/SKILL.md +321 -0
  618. package/skills/mobile-design/SKILL.md +320 -0
  619. package/skills/mobile-design/scripts/mobile_audit.py +670 -0
  620. package/skills/monorepo-management/SKILL.md +370 -0
  621. package/skills/morphing-icons/SKILL.md +423 -0
  622. package/skills/motion-engineering/SKILL.md +272 -0
  623. package/skills/nextjs-react-expert/SKILL.md +293 -0
  624. package/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  625. package/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  626. package/skills/nodejs-best-practices/SKILL.md +617 -0
  627. package/skills/observability/SKILL.md +378 -0
  628. package/skills/opentelemetry-observability/SKILL.md +125 -0
  629. package/skills/page-transition-animation/SKILL.md +161 -0
  630. package/skills/parallel-agents/SKILL.md +185 -0
  631. package/skills/performance-profiling/SKILL.md +305 -0
  632. package/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  633. package/skills/plan-writing/SKILL.md +202 -0
  634. package/skills/platform-engineer/SKILL.md +183 -0
  635. package/skills/platform-engineering-opentofu/SKILL.md +133 -0
  636. package/skills/playwright-ai-e2e/SKILL.md +126 -0
  637. package/skills/playwright-best-practices/SKILL.md +224 -0
  638. package/skills/polish/SKILL.md +114 -0
  639. package/skills/powershell-windows/SKILL.md +197 -0
  640. package/skills/pricing-page/SKILL.md +123 -0
  641. package/skills/product-aware-heuristics/SKILL.md +465 -0
  642. package/skills/progressive-blur/SKILL.md +155 -0
  643. package/skills/project-idioms/SKILL.md +166 -0
  644. package/skills/property-based-testing/SKILL.md +124 -0
  645. package/skills/python-patterns/SKILL.md +295 -0
  646. package/skills/python-pro/SKILL.md +380 -0
  647. package/skills/quieter/SKILL.md +124 -0
  648. package/skills/react-doctor/SKILL.md +126 -0
  649. package/skills/react-specialist/SKILL.md +355 -0
  650. package/skills/readme-builder/SKILL.md +345 -0
  651. package/skills/realtime-patterns/SKILL.md +358 -0
  652. package/skills/red-team-tactics/SKILL.md +266 -0
  653. package/skills/redesign-skill/SKILL.md +121 -0
  654. package/skills/review-animations/SKILL.md +120 -0
  655. package/skills/review-animations/STANDARDS.md +87 -0
  656. package/skills/rust-pro/SKILL.md +727 -0
  657. package/skills/seo-fundamentals/SKILL.md +214 -0
  658. package/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  659. package/skills/server-management/SKILL.md +253 -0
  660. package/skills/shadcn-ui-expert/SKILL.md +271 -0
  661. package/skills/shape/SKILL.md +131 -0
  662. package/skills/skill-creator/SKILL.md +136 -0
  663. package/skills/soft-skill/SKILL.md +128 -0
  664. package/skills/sounds-on-the-web/SKILL.md +151 -0
  665. package/skills/sql-pro/SKILL.md +699 -0
  666. package/skills/supabase-postgres-best-practices/SKILL.md +132 -0
  667. package/skills/svg-animation/SKILL.md +431 -0
  668. package/skills/swiftui-expert/SKILL.md +239 -0
  669. package/skills/swiss-design/SKILL.md +119 -0
  670. package/skills/system-design-pro/SKILL.md +393 -0
  671. package/skills/systematic-debugging/SKILL.md +198 -0
  672. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  673. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  674. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  675. package/skills/tailwind-patterns/SKILL.md +658 -0
  676. package/skills/taste-skill/SKILL.md +127 -0
  677. package/skills/tdd-workflow/SKILL.md +179 -0
  678. package/skills/test-result-analyzer/SKILL.md +345 -0
  679. package/skills/testing-patterns/SKILL.md +609 -0
  680. package/skills/testing-patterns/scripts/test_runner.py +219 -0
  681. package/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
  682. package/skills/thinking-protocol/SKILL.md +97 -0
  683. package/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
  684. package/skills/transitions-dev/SKILL.md +165 -0
  685. package/skills/trend-researcher/SKILL.md +273 -0
  686. package/skills/typescript-advanced/SKILL.md +381 -0
  687. package/skills/typeset/SKILL.md +135 -0
  688. package/skills/ui-reasoning-engine/SKILL.md +230 -0
  689. package/skills/ui-skill-packs/SKILL.md +132 -0
  690. package/skills/ui-skills-root/SKILL.md +144 -0
  691. package/skills/ui-ux-pro-max/SKILL.md +185 -0
  692. package/skills/ui-ux-researcher/SKILL.md +274 -0
  693. package/skills/vector-search-pgvector/SKILL.md +144 -0
  694. package/skills/verification-before-completion/SKILL.md +178 -0
  695. package/skills/vue-expert/SKILL.md +334 -0
  696. package/skills/vulnerability-scanner/SKILL.md +453 -0
  697. package/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  698. package/skills/web-accessibility-auditor/SKILL.md +254 -0
  699. package/skills/web-design-guidelines/SKILL.md +124 -0
  700. package/skills/web-quality-audit/SKILL.md +122 -0
  701. package/skills/webapp-testing/SKILL.md +203 -0
  702. package/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  703. package/skills/webgpu-performance/SKILL.md +163 -0
  704. package/skills/whimsy-injector/SKILL.md +380 -0
  705. package/skills/workflow-optimizer/SKILL.md +263 -0
  706. package/skills/zero-trust-passkeys/SKILL.md +156 -0
  707. package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
  708. package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
  709. package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
  710. package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
  711. package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
  712. package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
  713. package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
  714. package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
  715. package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
  716. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
  717. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
  718. package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
  719. package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
  720. package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  721. package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  722. package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
@@ -0,0 +1,513 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * cdp.js — Native Chrome DevTools Protocol Client for Tribunal-Kit
5
+ *
6
+ * Implements a zero-dependency CDP client utilizing Node.js 22's native WebSocket.
7
+ * Communicates directly with headless Chrome over standard JSON-RPC.
8
+ */
9
+
10
+ const http = require('http');
11
+ const crypto = require('crypto');
12
+
13
+ const WS_OPEN = 1;
14
+
15
+ function getNativeWebSocket() {
16
+ if (typeof WebSocket !== 'undefined') return WebSocket;
17
+ if (typeof globalThis !== 'undefined' && typeof globalThis.WebSocket !== 'undefined') return globalThis.WebSocket;
18
+ if (typeof global !== 'undefined' && typeof global.WebSocket !== 'undefined') return global.WebSocket;
19
+ return null;
20
+ }
21
+
22
+ /**
23
+ * Zero-dependency RFC 6455 WebSocket client using Node.js standard http/crypto libraries.
24
+ * Seamless fallback for Node < 22 or environments without a global WebSocket.
25
+ */
26
+ function createNodeWebSocket(wsUrl) {
27
+ const parsed = new URL(wsUrl);
28
+ const key = crypto.randomBytes(16).toString('base64');
29
+
30
+ const ws = {
31
+ readyState: 0, // 0: CONNECTING, 1: OPEN, 2: CLOSING, 3: CLOSED
32
+ onopen: null,
33
+ onmessage: null,
34
+ onerror: null,
35
+ onclose: null,
36
+ _socket: null,
37
+ send(data) {
38
+ if (this.readyState !== WS_OPEN || !this._socket) {
39
+ throw new Error('WebSocket is not open: readyState ' + this.readyState);
40
+ }
41
+ const payload = Buffer.isBuffer(data) ? data : Buffer.from(String(data), 'utf8');
42
+ const mask = crypto.randomBytes(4);
43
+ let header;
44
+
45
+ if (payload.length < 126) {
46
+ header = Buffer.alloc(2 + 4);
47
+ header[0] = 0x81;
48
+ header[1] = 0x80 | payload.length;
49
+ mask.copy(header, 2);
50
+ } else if (payload.length <= 65535) {
51
+ header = Buffer.alloc(4 + 4);
52
+ header[0] = 0x81;
53
+ header[1] = 0x80 | 126;
54
+ header.writeUInt16BE(payload.length, 2);
55
+ mask.copy(header, 4);
56
+ } else {
57
+ header = Buffer.alloc(10 + 4);
58
+ header[0] = 0x81;
59
+ header[1] = 0x80 | 127;
60
+ header.writeBigUInt64BE(BigInt(payload.length), 2);
61
+ mask.copy(header, 10);
62
+ }
63
+
64
+ const masked = Buffer.allocUnsafe(payload.length);
65
+ for (let i = 0; i < payload.length; i++) {
66
+ masked[i] = payload[i] ^ mask[i % 4];
67
+ }
68
+
69
+ this._socket.write(Buffer.concat([header, masked]));
70
+ },
71
+ close() {
72
+ if (this.readyState === WS_OPEN && this._socket) {
73
+ this.readyState = 2;
74
+ const mask = crypto.randomBytes(4);
75
+ const closeFrame = Buffer.concat([Buffer.from([0x88, 0x80]), mask]);
76
+ try {
77
+ this._socket.write(closeFrame);
78
+ } catch {
79
+ // Ignore
80
+ }
81
+ this._socket.end();
82
+ }
83
+ this.readyState = 3;
84
+ if (this.onclose) {
85
+ try {
86
+ this.onclose();
87
+ } catch {
88
+ // Ignore
89
+ }
90
+ }
91
+ },
92
+ };
93
+
94
+ const req = http.request({
95
+ hostname: parsed.hostname || '127.0.0.1',
96
+ port: parsed.port || 80,
97
+ path: parsed.pathname + parsed.search,
98
+ method: 'GET',
99
+ headers: {
100
+ Host: `${parsed.hostname || '127.0.0.1'}:${parsed.port || 80}`,
101
+ Upgrade: 'websocket',
102
+ Connection: 'Upgrade',
103
+ 'Sec-WebSocket-Key': key,
104
+ 'Sec-WebSocket-Version': '13',
105
+ },
106
+ });
107
+
108
+ req.on('upgrade', (res, socket, head) => {
109
+ ws._socket = socket;
110
+ ws.readyState = WS_OPEN;
111
+
112
+ let buffer = head && head.length > 0 ? Buffer.from(head) : Buffer.alloc(0);
113
+
114
+ socket.on('data', (chunk) => {
115
+ buffer = Buffer.concat([buffer, chunk]);
116
+
117
+ while (buffer.length >= 2) {
118
+ const b0 = buffer[0];
119
+ const opcode = b0 & 0x0f;
120
+ const b1 = buffer[1];
121
+ const isMasked = (b1 & 0x80) !== 0;
122
+ let payloadLen = b1 & 0x7f;
123
+ let offset = 2;
124
+
125
+ if (payloadLen === 126) {
126
+ if (buffer.length < 4) break;
127
+ payloadLen = buffer.readUInt16BE(2);
128
+ offset = 4;
129
+ } else if (payloadLen === 127) {
130
+ if (buffer.length < 10) break;
131
+ payloadLen = Number(buffer.readBigUInt64BE(2));
132
+ offset = 10;
133
+ }
134
+
135
+ let mask = null;
136
+ if (isMasked) {
137
+ if (buffer.length < offset + 4) break;
138
+ mask = buffer.slice(offset, offset + 4);
139
+ offset += 4;
140
+ }
141
+
142
+ if (buffer.length < offset + payloadLen) {
143
+ break;
144
+ }
145
+
146
+ let payload = buffer.slice(offset, offset + payloadLen);
147
+ buffer = buffer.slice(offset + payloadLen);
148
+
149
+ if (isMasked && mask) {
150
+ const unmasked = Buffer.allocUnsafe(payloadLen);
151
+ for (let i = 0; i < payloadLen; i++) {
152
+ unmasked[i] = payload[i] ^ mask[i % 4];
153
+ }
154
+ payload = unmasked;
155
+ }
156
+
157
+ if (opcode === 1) {
158
+ if (ws.onmessage) {
159
+ try {
160
+ ws.onmessage({ data: payload.toString('utf8') });
161
+ } catch {
162
+ // Ignore
163
+ }
164
+ }
165
+ } else if (opcode === 8) {
166
+ ws.close();
167
+ } else if (opcode === 9) {
168
+ const pongMask = crypto.randomBytes(4);
169
+ const pongHeader = Buffer.from([0x8a, 0x80]);
170
+ try {
171
+ socket.write(Buffer.concat([pongHeader, pongMask]));
172
+ } catch {
173
+ // Ignore
174
+ }
175
+ }
176
+ }
177
+ });
178
+
179
+ socket.on('error', (err) => {
180
+ if (ws.onerror) {
181
+ try {
182
+ ws.onerror(err);
183
+ } catch {
184
+ // Ignore
185
+ }
186
+ }
187
+ });
188
+
189
+ socket.on('close', () => {
190
+ ws.readyState = 3;
191
+ if (ws.onclose) {
192
+ try {
193
+ ws.onclose();
194
+ } catch {
195
+ // Ignore
196
+ }
197
+ }
198
+ });
199
+
200
+ if (ws.onopen) {
201
+ try {
202
+ ws.onopen();
203
+ } catch {
204
+ // Ignore
205
+ }
206
+ }
207
+ });
208
+
209
+ req.on('error', (err) => {
210
+ ws.readyState = 3;
211
+ if (ws.onerror) {
212
+ try {
213
+ ws.onerror(err);
214
+ } catch {
215
+ // Ignore
216
+ }
217
+ }
218
+ });
219
+
220
+ req.end();
221
+ return ws;
222
+ }
223
+
224
+ function createWebSocket(wsUrl) {
225
+ const Native = getNativeWebSocket();
226
+ if (Native) {
227
+ return new Native(wsUrl);
228
+ }
229
+ return createNodeWebSocket(wsUrl);
230
+ }
231
+
232
+ class CdpClient {
233
+ constructor() {
234
+ this.ws = null;
235
+ this.nextId = 1;
236
+ this.pending = new Map();
237
+ this.eventListeners = new Map();
238
+ }
239
+
240
+ /**
241
+ * Connect to Chrome target using a WebSocket debugger URL.
242
+ * @param {string} wsUrl
243
+ * @returns {Promise<void>}
244
+ */
245
+ async connect(wsUrl) {
246
+ if (!wsUrl) throw new Error('CdpClient: wsUrl is required');
247
+
248
+ return new Promise((resolve, reject) => {
249
+ const socket = createWebSocket(wsUrl);
250
+ this.ws = socket;
251
+
252
+ socket.onopen = () => {
253
+ resolve();
254
+ };
255
+
256
+ socket.onerror = (err) => {
257
+ reject(new Error(`CDP WebSocket error: ${err.message || 'connection failed'}`));
258
+ };
259
+
260
+ socket.onmessage = (event) => {
261
+ try {
262
+ const msg = JSON.parse(event.data);
263
+ if (msg.id && this.pending.has(msg.id)) {
264
+ const { resolve: pResolve, reject: pReject } = this.pending.get(msg.id);
265
+ this.pending.delete(msg.id);
266
+ if (msg.error) {
267
+ pReject(new Error(msg.error.message || 'CDP command failed'));
268
+ } else {
269
+ pResolve(msg.result);
270
+ }
271
+ } else if (msg.method) {
272
+ const listeners = this.eventListeners.get(msg.method) || [];
273
+ for (const handler of listeners) {
274
+ try {
275
+ handler(msg.params);
276
+ } catch (e) {
277
+ // Ignore listener error
278
+ }
279
+ }
280
+ }
281
+ } catch (e) {
282
+ // Ignore parse errors
283
+ }
284
+ };
285
+
286
+ socket.onclose = () => {
287
+ for (const { reject: pReject } of this.pending.values()) {
288
+ pReject(new Error('CDP WebSocket closed'));
289
+ }
290
+ this.pending.clear();
291
+ };
292
+ });
293
+ }
294
+
295
+ /**
296
+ * Send a CDP command and await response.
297
+ * @param {string} method
298
+ * @param {object} params
299
+ * @returns {Promise<any>}
300
+ */
301
+ send(method, params = {}) {
302
+ if (!this.ws || this.ws.readyState !== WS_OPEN) {
303
+ return Promise.reject(new Error('CdpClient is not connected'));
304
+ }
305
+
306
+ const id = this.nextId++;
307
+ return new Promise((resolve, reject) => {
308
+ const timeout = setTimeout(() => {
309
+ if (this.pending.has(id)) {
310
+ this.pending.delete(id);
311
+ reject(new Error(`CDP command timed out: ${method}`));
312
+ }
313
+ }, 30000);
314
+
315
+ this.pending.set(id, {
316
+ resolve: (val) => {
317
+ clearTimeout(timeout);
318
+ resolve(val);
319
+ },
320
+ reject: (err) => {
321
+ clearTimeout(timeout);
322
+ reject(err);
323
+ },
324
+ });
325
+
326
+ this.ws.send(JSON.stringify({ id, method, params }));
327
+ });
328
+ }
329
+
330
+ /**
331
+ * Register an event listener for CDP events.
332
+ * @param {string} event
333
+ * @param {Function} handler
334
+ */
335
+ on(event, handler) {
336
+ if (!this.eventListeners.has(event)) {
337
+ this.eventListeners.set(event, []);
338
+ }
339
+ this.eventListeners.get(event).push(handler);
340
+ }
341
+
342
+ /**
343
+ * Initialize standard domains (Page, Runtime, DOM, Network, Console)
344
+ */
345
+ async initDomains() {
346
+ await Promise.all([
347
+ this.send('Page.enable'),
348
+ this.send('Runtime.enable'),
349
+ this.send('DOM.enable'),
350
+ this.send('Network.enable'),
351
+ this.send('Console.enable'),
352
+ ]);
353
+ }
354
+
355
+ /**
356
+ * Navigate to a URL and wait for load.
357
+ * @param {string} url
358
+ * @returns {Promise<void>}
359
+ */
360
+ async navigate(url) {
361
+ return new Promise(async (resolve, reject) => {
362
+ let timeoutId;
363
+
364
+ const onLoad = () => {
365
+ clearTimeout(timeoutId);
366
+ resolve();
367
+ };
368
+
369
+ timeoutId = setTimeout(() => {
370
+ // Fallback resolve after 15s even if load event stalls
371
+ resolve();
372
+ }, 15000);
373
+
374
+ this.on('Page.loadEventFired', onLoad);
375
+
376
+ try {
377
+ await this.send('Page.navigate', { url });
378
+ } catch (err) {
379
+ clearTimeout(timeoutId);
380
+ reject(err);
381
+ }
382
+ });
383
+ }
384
+
385
+ /**
386
+ * Evaluate a JavaScript expression in the page context.
387
+ * @param {string} expression
388
+ * @returns {Promise<any>}
389
+ */
390
+ async evaluate(expression) {
391
+ const res = await this.send('Runtime.evaluate', {
392
+ expression,
393
+ returnByValue: true,
394
+ awaitPromise: true,
395
+ });
396
+ return res?.result?.value;
397
+ }
398
+
399
+ /**
400
+ * Get outer HTML of the page.
401
+ * @returns {Promise<string>}
402
+ */
403
+ async getHTML() {
404
+ return (await this.evaluate('document.documentElement.outerHTML')) || '';
405
+ }
406
+
407
+ /**
408
+ * Capture page screenshot as base64 PNG.
409
+ * @returns {Promise<string>}
410
+ */
411
+ async captureScreenshot(format = 'png') {
412
+ const res = await this.send('Page.captureScreenshot', { format });
413
+ return res?.data || '';
414
+ }
415
+
416
+ /**
417
+ * Close the WebSocket connection.
418
+ */
419
+ close() {
420
+ if (this.ws) {
421
+ try {
422
+ this.ws.close();
423
+ } catch {
424
+ // Ignore
425
+ }
426
+ this.ws = null;
427
+ }
428
+ }
429
+ }
430
+
431
+ /**
432
+ * Fetch targets or create a new tab on Chrome debug port.
433
+ * @param {number} port
434
+ * @param {string} host
435
+ * @returns {Promise<{ id: string, webSocketDebuggerUrl: string }>}
436
+ */
437
+ function createNewTab(port = 9222, host = '127.0.0.1') {
438
+ return new Promise((resolve, reject) => {
439
+ // Chrome 120+ requires PUT for /json/new
440
+ const req = http.request(
441
+ {
442
+ host,
443
+ port,
444
+ path: '/json/new',
445
+ method: 'PUT',
446
+ },
447
+ (res) => {
448
+ let data = '';
449
+ res.on('data', (chunk) => (data += chunk));
450
+ res.on('end', () => {
451
+ try {
452
+ const tab = JSON.parse(data);
453
+ if (tab.webSocketDebuggerUrl) {
454
+ return resolve(tab);
455
+ }
456
+ } catch {
457
+ // Fallback to /json/list
458
+ }
459
+ getExistingTab(port, host).then(resolve).catch(reject);
460
+ });
461
+ },
462
+ );
463
+
464
+ req.on('error', () => {
465
+ getExistingTab(port, host).then(resolve).catch(reject);
466
+ });
467
+
468
+ req.end();
469
+ });
470
+ }
471
+
472
+ /**
473
+ * Fallback to fetch existing tab from /json/list
474
+ */
475
+ function getExistingTab(port = 9222, host = '127.0.0.1') {
476
+ return new Promise((resolve, reject) => {
477
+ http.get(`http://${host}:${port}/json/list`, (res) => {
478
+ let data = '';
479
+ res.on('data', chunk => (data += chunk));
480
+ res.on('end', () => {
481
+ try {
482
+ const list = JSON.parse(data);
483
+ const pageTab = list.find(t => t.type === 'page' && t.webSocketDebuggerUrl) || list[0];
484
+ if (pageTab && pageTab.webSocketDebuggerUrl) {
485
+ resolve(pageTab);
486
+ } else {
487
+ reject(new Error('No valid page target found in /json/list'));
488
+ }
489
+ } catch (e) {
490
+ reject(e);
491
+ }
492
+ });
493
+ }).on('error', reject);
494
+ });
495
+ }
496
+
497
+ /**
498
+ * Close a tab target on Chrome debug port.
499
+ * @param {string} targetId
500
+ * @param {number} port
501
+ * @param {string} host
502
+ */
503
+ function closeTab(targetId, port = 9222, host = '127.0.0.1') {
504
+ return new Promise((resolve) => {
505
+ http.get(`http://${host}:${port}/json/close/${targetId}`, () => resolve()).on('error', () => resolve());
506
+ });
507
+ }
508
+
509
+ module.exports = {
510
+ CdpClient,
511
+ createNewTab,
512
+ closeTab,
513
+ };
@@ -0,0 +1,110 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * compare.js — Visual Regression & Viewport Differ for Tribunal-Kit
5
+ *
6
+ * Compares two URLs visually by capturing synchronized viewport snapshots and
7
+ * computing the pixel mismatch ratio. Used as an automated gate in CI and releases.
8
+ */
9
+
10
+ const { launchBrowser } = require('./launcher');
11
+ const { CdpClient, createNewTab, closeTab } = require('./cdp');
12
+
13
+ /**
14
+ * Compares two URLs visually.
15
+ * @param {string} url1
16
+ * @param {string} url2
17
+ * @param {object} options
18
+ * @param {number} options.maxDiffPercent (default 1.0)
19
+ * @param {number} options.width (default 1280)
20
+ * @param {number} options.height (default 800)
21
+ * @returns {Promise<object>}
22
+ */
23
+ async function compareURLs(url1, url2, options = {}) {
24
+ const maxDiff = options.maxDiffPercent !== undefined ? options.maxDiffPercent : 1.0;
25
+ const width = options.width || 1280;
26
+ const height = options.height || 800;
27
+
28
+ const browser = await launchBrowser();
29
+ let client = null;
30
+ let tab = null;
31
+
32
+ try {
33
+ tab = await createNewTab(browser.port);
34
+ client = new CdpClient();
35
+ await client.connect(tab.webSocketDebuggerUrl);
36
+ await client.initDomains();
37
+
38
+ // Set standard viewport
39
+ await client.send('Emulation.setDeviceMetricsOverride', {
40
+ width,
41
+ height,
42
+ deviceScaleFactor: 1,
43
+ mobile: false,
44
+ });
45
+
46
+ // Capture 1
47
+ await client.navigate(url1);
48
+ await new Promise(r => setTimeout(r, 500)); // Allow animations to settle
49
+ const shot1 = await client.captureScreenshot('png');
50
+
51
+ // Capture 2
52
+ await client.navigate(url2);
53
+ await new Promise(r => setTimeout(r, 500));
54
+ const shot2 = await client.captureScreenshot('png');
55
+
56
+ // Calculate buffer difference
57
+ const buf1 = Buffer.from(shot1, 'base64');
58
+ const buf2 = Buffer.from(shot2, 'base64');
59
+
60
+ const diff = computeBufferDiff(buf1, buf2);
61
+
62
+ const passed = diff.diffPercentage <= maxDiff;
63
+
64
+ return {
65
+ url1,
66
+ url2,
67
+ diffPercentage: diff.diffPercentage,
68
+ passed,
69
+ maxAllowedDiff: maxDiff,
70
+ totalPixelsCompared: diff.totalBytes,
71
+ mismatchBytes: diff.mismatches,
72
+ };
73
+ } finally {
74
+ if (client) client.close();
75
+ if (tab && browser) await closeTab(tab.id, browser.port);
76
+ await browser.close();
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Fast byte-level comparison of image data buffers.
82
+ * @param {Buffer} b1
83
+ * @param {Buffer} b2
84
+ * @returns {{ diffPercentage: number, mismatches: number, totalBytes: number }}
85
+ */
86
+ function computeBufferDiff(b1, b2) {
87
+ const len = Math.min(b1.length, b2.length);
88
+ const maxLen = Math.max(b1.length, b2.length);
89
+
90
+ let mismatches = Math.abs(b1.length - b2.length);
91
+
92
+ for (let i = 0; i < len; i++) {
93
+ if (b1[i] !== b2[i]) {
94
+ mismatches++;
95
+ }
96
+ }
97
+
98
+ const diffPercentage = maxLen === 0 ? 0 : parseFloat(((mismatches / maxLen) * 100).toFixed(2));
99
+
100
+ return {
101
+ diffPercentage,
102
+ mismatches,
103
+ totalBytes: maxLen,
104
+ };
105
+ }
106
+
107
+ module.exports = {
108
+ compareURLs,
109
+ computeBufferDiff,
110
+ };