tribunal-kit 9.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 (719) 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/hooks/hooks-cursor.json +2 -8
  476. package/hooks/hooks.json +2 -8
  477. package/marketplace.json +14 -0
  478. package/package.json +15 -4
  479. package/plugin.json +26 -0
  480. package/scripts/clean-pycache.js +42 -0
  481. package/scripts/context_compiler.js +944 -0
  482. package/scripts/package-cores.js +113 -0
  483. package/scripts/skill_enhancement_engine.js +473 -0
  484. package/scripts/sync-skills.js +61 -0
  485. package/skills/12-principles-of-animation/SKILL.md +126 -0
  486. package/skills/60fps-animation/SKILL.md +164 -0
  487. package/skills/accessible-animation/SKILL.md +266 -0
  488. package/skills/adapt/SKILL.md +131 -0
  489. package/skills/advanced-rag-pipelines/SKILL.md +169 -0
  490. package/skills/agent-organizer/SKILL.md +192 -0
  491. package/skills/agentic-patterns/SKILL.md +356 -0
  492. package/skills/agentic-workflows-2026/SKILL.md +157 -0
  493. package/skills/ai-app-hardening/SKILL.md +125 -0
  494. package/skills/ai-prompt-injection-defense/SKILL.md +237 -0
  495. package/skills/animation-on-scroll/SKILL.md +267 -0
  496. package/skills/animation-systems/SKILL.md +273 -0
  497. package/skills/antfu-conventions/SKILL.md +129 -0
  498. package/skills/api-patterns/SKILL.md +293 -0
  499. package/skills/api-patterns/scripts/api_validator.py +211 -0
  500. package/skills/api-security-auditor/SKILL.md +230 -0
  501. package/skills/app-builder/SKILL.md +610 -0
  502. package/skills/app-builder/templates/SKILL.md +108 -0
  503. package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  504. package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  505. package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  506. package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  507. package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  508. package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  509. package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  510. package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
  511. package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
  512. package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
  513. package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
  514. package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  515. package/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
  516. package/skills/appflow-wireframe/SKILL.md +173 -0
  517. package/skills/apple-design/SKILL.md +164 -0
  518. package/skills/architecture/SKILL.md +263 -0
  519. package/skills/audit-and-fix/SKILL.md +136 -0
  520. package/skills/authentication-best-practices/SKILL.md +232 -0
  521. package/skills/backend-security-expert/SKILL.md +148 -0
  522. package/skills/baseline-ui/SKILL.md +130 -0
  523. package/skills/bash-linux/SKILL.md +214 -0
  524. package/skills/behavioral-modes/SKILL.md +275 -0
  525. package/skills/better-colors/SKILL.md +191 -0
  526. package/skills/better-typography/SKILL.md +164 -0
  527. package/skills/better-ui/SKILL.md +193 -0
  528. package/skills/bolder/SKILL.md +124 -0
  529. package/skills/brainstorming/SKILL.md +534 -0
  530. package/skills/browser-audit/SKILL.md +170 -0
  531. package/skills/browser-native-ai/SKILL.md +147 -0
  532. package/skills/build-primitive/SKILL.md +125 -0
  533. package/skills/building-native-ui/SKILL.md +237 -0
  534. package/skills/cicd-pro/SKILL.md +487 -0
  535. package/skills/clarify/SKILL.md +130 -0
  536. package/skills/clean-code/SKILL.md +442 -0
  537. package/skills/cloud-architect/SKILL.md +484 -0
  538. package/skills/cobejs/SKILL.md +145 -0
  539. package/skills/code-review-checklist/SKILL.md +238 -0
  540. package/skills/codebase-design/SKILL.md +151 -0
  541. package/skills/colorize/SKILL.md +132 -0
  542. package/skills/compact-landing/SKILL.md +125 -0
  543. package/skills/company-logos/SKILL.md +129 -0
  544. package/skills/config-validator/SKILL.md +200 -0
  545. package/skills/containerization-pro/SKILL.md +497 -0
  546. package/skills/context-engineering-pro/SKILL.md +136 -0
  547. package/skills/create-design-md/SKILL.md +167 -0
  548. package/skills/critique/SKILL.md +154 -0
  549. package/skills/csharp-developer/SKILL.md +553 -0
  550. package/skills/data-validation-schemas/SKILL.md +372 -0
  551. package/skills/database-design/SKILL.md +294 -0
  552. package/skills/database-design/scripts/schema_validator.py +172 -0
  553. package/skills/delight/SKILL.md +121 -0
  554. package/skills/deployment-procedures/SKILL.md +207 -0
  555. package/skills/design-lab/SKILL.md +117 -0
  556. package/skills/devops-engineer/SKILL.md +380 -0
  557. package/skills/devops-incident-responder/SKILL.md +178 -0
  558. package/skills/diagnosing-bugs/SKILL.md +247 -0
  559. package/skills/distill/SKILL.md +120 -0
  560. package/skills/documentation-templates/SKILL.md +326 -0
  561. package/skills/domain-modeling/SKILL.md +136 -0
  562. package/skills/duckdb-analytical-sql/SKILL.md +125 -0
  563. package/skills/edge-ai-mobile/SKILL.md +116 -0
  564. package/skills/edge-computing/SKILL.md +218 -0
  565. package/skills/emil-design-eng/SKILL.md +209 -0
  566. package/skills/error-resilience/SKILL.md +478 -0
  567. package/skills/expo-router-v4/SKILL.md +146 -0
  568. package/skills/extract-design-system/SKILL.md +195 -0
  569. package/skills/fabel-protocol/SKILL.md +352 -0
  570. package/skills/fixing-accessibility/SKILL.md +162 -0
  571. package/skills/fixing-metadata/SKILL.md +158 -0
  572. package/skills/fixing-motion-performance/SKILL.md +153 -0
  573. package/skills/framer-motion-expert/SKILL.md +312 -0
  574. package/skills/frontend-design/SKILL.md +178 -0
  575. package/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  576. package/skills/frontend-design/scripts/ux_audit.py +722 -0
  577. package/skills/frontend-security-expert/SKILL.md +131 -0
  578. package/skills/game-design-expert/SKILL.md +167 -0
  579. package/skills/game-engineering-expert/SKILL.md +183 -0
  580. package/skills/generative-ui-expert/SKILL.md +175 -0
  581. package/skills/geo-fundamentals/SKILL.md +183 -0
  582. package/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  583. package/skills/git-pro/SKILL.md +476 -0
  584. package/skills/github-operations/SKILL.md +370 -0
  585. package/skills/gpt-taste/SKILL.md +125 -0
  586. package/skills/gsap-core/SKILL.md +352 -0
  587. package/skills/gsap-frameworks/SKILL.md +243 -0
  588. package/skills/gsap-performance/SKILL.md +169 -0
  589. package/skills/gsap-plugins/SKILL.md +516 -0
  590. package/skills/gsap-react/SKILL.md +288 -0
  591. package/skills/gsap-scrolltrigger/SKILL.md +387 -0
  592. package/skills/gsap-timeline/SKILL.md +197 -0
  593. package/skills/gsap-utils/SKILL.md +374 -0
  594. package/skills/harden/SKILL.md +130 -0
  595. package/skills/harness-protocol/SKILL.md +115 -0
  596. package/skills/i18n-localization/SKILL.md +209 -0
  597. package/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  598. package/skills/impeccable/SKILL.md +127 -0
  599. package/skills/improve-codebase-architecture/SKILL.md +123 -0
  600. package/skills/improve-ui/SKILL.md +145 -0
  601. package/skills/intelligent-routing/SKILL.md +283 -0
  602. package/skills/knowledge-graph/SKILL.md +146 -0
  603. package/skills/landing-page/SKILL.md +140 -0
  604. package/skills/lint-and-validate/SKILL.md +299 -0
  605. package/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  606. package/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  607. package/skills/llm-engineering/SKILL.md +435 -0
  608. package/skills/local-first/SKILL.md +213 -0
  609. package/skills/local-first-architecture/SKILL.md +137 -0
  610. package/skills/lottie-animation/SKILL.md +137 -0
  611. package/skills/marquee-loop/SKILL.md +147 -0
  612. package/skills/masked-reveal/SKILL.md +305 -0
  613. package/skills/mcp-builder/SKILL.md +180 -0
  614. package/skills/micro-interaction/SKILL.md +321 -0
  615. package/skills/mobile-design/SKILL.md +320 -0
  616. package/skills/mobile-design/scripts/mobile_audit.py +670 -0
  617. package/skills/monorepo-management/SKILL.md +370 -0
  618. package/skills/morphing-icons/SKILL.md +423 -0
  619. package/skills/motion-engineering/SKILL.md +272 -0
  620. package/skills/nextjs-react-expert/SKILL.md +293 -0
  621. package/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  622. package/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  623. package/skills/nodejs-best-practices/SKILL.md +617 -0
  624. package/skills/observability/SKILL.md +378 -0
  625. package/skills/opentelemetry-observability/SKILL.md +125 -0
  626. package/skills/page-transition-animation/SKILL.md +161 -0
  627. package/skills/parallel-agents/SKILL.md +185 -0
  628. package/skills/performance-profiling/SKILL.md +305 -0
  629. package/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  630. package/skills/plan-writing/SKILL.md +202 -0
  631. package/skills/platform-engineer/SKILL.md +183 -0
  632. package/skills/platform-engineering-opentofu/SKILL.md +133 -0
  633. package/skills/playwright-ai-e2e/SKILL.md +126 -0
  634. package/skills/playwright-best-practices/SKILL.md +224 -0
  635. package/skills/polish/SKILL.md +114 -0
  636. package/skills/powershell-windows/SKILL.md +197 -0
  637. package/skills/pricing-page/SKILL.md +123 -0
  638. package/skills/product-aware-heuristics/SKILL.md +465 -0
  639. package/skills/progressive-blur/SKILL.md +155 -0
  640. package/skills/project-idioms/SKILL.md +166 -0
  641. package/skills/property-based-testing/SKILL.md +124 -0
  642. package/skills/python-patterns/SKILL.md +295 -0
  643. package/skills/python-pro/SKILL.md +380 -0
  644. package/skills/quieter/SKILL.md +124 -0
  645. package/skills/react-doctor/SKILL.md +126 -0
  646. package/skills/react-specialist/SKILL.md +355 -0
  647. package/skills/readme-builder/SKILL.md +345 -0
  648. package/skills/realtime-patterns/SKILL.md +358 -0
  649. package/skills/red-team-tactics/SKILL.md +266 -0
  650. package/skills/redesign-skill/SKILL.md +121 -0
  651. package/skills/review-animations/SKILL.md +120 -0
  652. package/skills/review-animations/STANDARDS.md +87 -0
  653. package/skills/rust-pro/SKILL.md +727 -0
  654. package/skills/seo-fundamentals/SKILL.md +214 -0
  655. package/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  656. package/skills/server-management/SKILL.md +253 -0
  657. package/skills/shadcn-ui-expert/SKILL.md +271 -0
  658. package/skills/shape/SKILL.md +131 -0
  659. package/skills/skill-creator/SKILL.md +136 -0
  660. package/skills/soft-skill/SKILL.md +128 -0
  661. package/skills/sounds-on-the-web/SKILL.md +151 -0
  662. package/skills/sql-pro/SKILL.md +699 -0
  663. package/skills/supabase-postgres-best-practices/SKILL.md +132 -0
  664. package/skills/svg-animation/SKILL.md +431 -0
  665. package/skills/swiftui-expert/SKILL.md +239 -0
  666. package/skills/swiss-design/SKILL.md +119 -0
  667. package/skills/system-design-pro/SKILL.md +393 -0
  668. package/skills/systematic-debugging/SKILL.md +198 -0
  669. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  670. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  671. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  672. package/skills/tailwind-patterns/SKILL.md +658 -0
  673. package/skills/taste-skill/SKILL.md +127 -0
  674. package/skills/tdd-workflow/SKILL.md +179 -0
  675. package/skills/test-result-analyzer/SKILL.md +345 -0
  676. package/skills/testing-patterns/SKILL.md +609 -0
  677. package/skills/testing-patterns/scripts/test_runner.py +219 -0
  678. package/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
  679. package/skills/thinking-protocol/SKILL.md +97 -0
  680. package/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
  681. package/skills/transitions-dev/SKILL.md +165 -0
  682. package/skills/trend-researcher/SKILL.md +273 -0
  683. package/skills/typescript-advanced/SKILL.md +381 -0
  684. package/skills/typeset/SKILL.md +135 -0
  685. package/skills/ui-reasoning-engine/SKILL.md +230 -0
  686. package/skills/ui-skill-packs/SKILL.md +132 -0
  687. package/skills/ui-skills-root/SKILL.md +144 -0
  688. package/skills/ui-ux-pro-max/SKILL.md +185 -0
  689. package/skills/ui-ux-researcher/SKILL.md +274 -0
  690. package/skills/vector-search-pgvector/SKILL.md +144 -0
  691. package/skills/verification-before-completion/SKILL.md +178 -0
  692. package/skills/vue-expert/SKILL.md +334 -0
  693. package/skills/vulnerability-scanner/SKILL.md +453 -0
  694. package/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  695. package/skills/web-accessibility-auditor/SKILL.md +254 -0
  696. package/skills/web-design-guidelines/SKILL.md +124 -0
  697. package/skills/web-quality-audit/SKILL.md +122 -0
  698. package/skills/webapp-testing/SKILL.md +203 -0
  699. package/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  700. package/skills/webgpu-performance/SKILL.md +163 -0
  701. package/skills/whimsy-injector/SKILL.md +380 -0
  702. package/skills/workflow-optimizer/SKILL.md +263 -0
  703. package/skills/zero-trust-passkeys/SKILL.md +156 -0
  704. package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
  705. package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
  706. package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
  707. package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
  708. package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
  709. package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
  710. package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
  711. package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
  712. package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
  713. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
  714. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
  715. package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
  716. package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
  717. package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  718. package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  719. package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
package/bin/mcp-server.js CHANGED
@@ -561,6 +561,165 @@ async function handleRequest(req) {
561
561
  additionalProperties: false,
562
562
  },
563
563
  },
564
+ {
565
+ name: 'tk_browser_navigate',
566
+ description:
567
+ 'Token-efficient browser navigation. Navigates headlessly to a URL, prunes HTML using htmltrim (< 4,000 bytes / ~1,000 tokens), enforces IDPI prompt injection defense, and returns compact semantic markdown with an interactive elements tree.',
568
+ inputSchema: {
569
+ type: 'object',
570
+ properties: {
571
+ url: {
572
+ type: 'string',
573
+ description: 'The target URL to inspect (e.g. http://localhost:3000 or https://example.com)',
574
+ },
575
+ },
576
+ required: ['url'],
577
+ additionalProperties: false,
578
+ },
579
+ },
580
+ {
581
+ name: 'tk_browser_audit',
582
+ description:
583
+ 'Live web quality, accessibility, console error, and Core Web Vitals auditor. Navigates headlessly to a URL, checks WCAG 2.2 contrast/aria, network failures, uncaught exceptions, and security headers. Returns structured audit report.',
584
+ inputSchema: {
585
+ type: 'object',
586
+ properties: {
587
+ url: {
588
+ type: 'string',
589
+ description: 'The target URL to audit (e.g. http://localhost:3000)',
590
+ },
591
+ },
592
+ required: ['url'],
593
+ additionalProperties: false,
594
+ },
595
+ },
596
+ {
597
+ name: 'tk_browser_compare',
598
+ description:
599
+ 'Visual regression differ. Captures synchronized screenshots of two URLs (e.g. localhost dev server vs production) and computes pixel mismatch percentage to verify layout integrity before release.',
600
+ inputSchema: {
601
+ type: 'object',
602
+ properties: {
603
+ url1: {
604
+ type: 'string',
605
+ description: 'Baseline or staging URL (e.g. http://localhost:3000)',
606
+ },
607
+ url2: {
608
+ type: 'string',
609
+ description: 'Production or target URL to compare against',
610
+ },
611
+ maxDiffPercent: {
612
+ type: 'number',
613
+ description: 'Maximum allowable difference percentage before failing (default: 1.0)',
614
+ },
615
+ },
616
+ required: ['url1', 'url2'],
617
+ additionalProperties: false,
618
+ },
619
+ },
620
+ {
621
+ name: 'tk_browser_screenshot',
622
+ description:
623
+ 'Captures a viewport screenshot of a target URL as base64 PNG data.',
624
+ inputSchema: {
625
+ type: 'object',
626
+ properties: {
627
+ url: {
628
+ type: 'string',
629
+ description: 'The URL to screenshot',
630
+ },
631
+ },
632
+ required: ['url'],
633
+ additionalProperties: false,
634
+ },
635
+ },
636
+ {
637
+ name: 'tk_deconstruct_component',
638
+ description:
639
+ 'Reverse-engineers a live web element into a production React TSX component with Tailwind CSS classes by inspecting computed CSSOM (geometry, typography, elevation, transitions).',
640
+ inputSchema: {
641
+ type: 'object',
642
+ properties: {
643
+ url: {
644
+ type: 'string',
645
+ description: 'The URL hosting the target element',
646
+ },
647
+ selector: {
648
+ type: 'string',
649
+ description: 'CSS selector matching the element (e.g. button.primary or #pricing-card)',
650
+ },
651
+ name: {
652
+ type: 'string',
653
+ description: 'Optional PascalCase component name (e.g. PricingCard)',
654
+ },
655
+ },
656
+ required: ['url', 'selector'],
657
+ additionalProperties: false,
658
+ },
659
+ },
660
+ {
661
+ name: 'tk_heal_runtime_errors',
662
+ description:
663
+ 'Runtime Sentinel error hunter. Scans a live web page or dev server for uncaught exceptions, React boundary errors, and framework overlays, localizing them to workspace source files.',
664
+ inputSchema: {
665
+ type: 'object',
666
+ properties: {
667
+ url: {
668
+ type: 'string',
669
+ description: 'The dev server or web page URL (e.g. http://localhost:3000)',
670
+ },
671
+ verify: {
672
+ type: 'boolean',
673
+ description: 'If true, verifies whether previously reported runtime errors have cleared',
674
+ },
675
+ },
676
+ required: ['url'],
677
+ additionalProperties: false,
678
+ },
679
+ },
680
+ {
681
+ name: 'tk_codify_browser_audit',
682
+ description:
683
+ 'Audits a target URL and automatically codifies detected WCAG accessibility failures, missing security headers, and console errors into binding Case Law precedents.',
684
+ inputSchema: {
685
+ type: 'object',
686
+ properties: {
687
+ url: {
688
+ type: 'string',
689
+ description: 'The URL to audit and codify',
690
+ },
691
+ },
692
+ required: ['url'],
693
+ additionalProperties: false,
694
+ },
695
+ },
696
+ {
697
+ name: 'tribunal_get_context',
698
+ description:
699
+ 'Generate or retrieve an elite Flight Data HUD context dossier for any file, multi-file pair, or directory. Automatically extracts public API contracts, callers, Chesterton\'s Fences, invariants, and test recipes. Supports drift checking and living vault sync.',
700
+ inputSchema: {
701
+ type: 'object',
702
+ properties: {
703
+ target: {
704
+ type: 'string',
705
+ description: 'File path, folder path, or primary file to analyze.',
706
+ },
707
+ compareWith: {
708
+ type: 'string',
709
+ description: 'Optional secondary file for multi-file interface bridge analysis.',
710
+ },
711
+ write: {
712
+ type: 'boolean',
713
+ description: 'Whether to write the generated dossier to docs/context/ and update INDEX.md (default: true).',
714
+ },
715
+ check: {
716
+ type: 'boolean',
717
+ description: 'Run vault-wide semantic drift check instead of analyzing a target.',
718
+ },
719
+ },
720
+ additionalProperties: false,
721
+ },
722
+ },
564
723
  ],
565
724
  };
566
725
  }
@@ -575,6 +734,83 @@ async function handleRequest(req) {
575
734
  const reminder = repeatGuard.observe(toolName, argsObj);
576
735
 
577
736
  const executeTool = async () => {
737
+ if (toolName === 'tribunal_get_context') {
738
+ const target = req.params?.arguments?.target;
739
+ const compareWith = req.params?.arguments?.compareWith;
740
+ const write = req.params?.arguments?.write !== false;
741
+ const check = req.params?.arguments?.check;
742
+
743
+ try {
744
+ const compiler = require('../scripts/context_compiler');
745
+ const workspaceRoot = process.cwd();
746
+
747
+ if (check) {
748
+ const drift = compiler.checkDrift(workspaceRoot);
749
+ return {
750
+ content: [
751
+ {
752
+ type: 'text',
753
+ text: JSON.stringify(drift, null, 2),
754
+ },
755
+ ],
756
+ };
757
+ }
758
+
759
+ if (target && compareWith) {
760
+ const bridge = compiler.analyzeMultiFileBridge(target, compareWith, workspaceRoot);
761
+ const md = compiler.renderBridgeDossier(bridge);
762
+ if (write) {
763
+ const outName = `${path.basename(target).replace(/\.[^.]+$/, '')}__${path.basename(compareWith).replace(/\.[^.]+$/, '')}.bridge.md`;
764
+ const dest = path.join(workspaceRoot, 'docs', 'context', outName);
765
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
766
+ fs.writeFileSync(dest, md, 'utf8');
767
+ compiler.syncVaultIndex(workspaceRoot);
768
+ }
769
+ return {
770
+ content: [{ type: 'text', text: md }],
771
+ };
772
+ }
773
+
774
+ if (!target) {
775
+ throw new RpcError(-32602, 'Missing required argument: target (file or directory path)');
776
+ }
777
+
778
+ const absTarget = path.isAbsolute(target) ? target : path.resolve(workspaceRoot, target);
779
+ if (fs.existsSync(absTarget) && fs.statSync(absTarget).isDirectory()) {
780
+ const dirData = compiler.analyzeDirectory(absTarget, workspaceRoot);
781
+ const md = compiler.renderDirectoryDossier(dirData);
782
+ if (write) {
783
+ const outName = `${path.basename(absTarget)}.context.md`;
784
+ const dest = path.join(workspaceRoot, 'docs', 'context', outName);
785
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
786
+ fs.writeFileSync(dest, md, 'utf8');
787
+ compiler.syncVaultIndex(workspaceRoot);
788
+ }
789
+ return {
790
+ content: [{ type: 'text', text: md }],
791
+ };
792
+ }
793
+
794
+ const fileData = compiler.analyzeSingleFile(target, workspaceRoot);
795
+ const md = compiler.renderSingleFileDossier(fileData);
796
+ if (write) {
797
+ const outName = `${path.basename(target).replace(/\.[^.]+$/, '')}.context.md`;
798
+ const dest = path.join(workspaceRoot, 'docs', 'context', outName);
799
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
800
+ fs.writeFileSync(dest, md, 'utf8');
801
+ compiler.syncVaultIndex(workspaceRoot);
802
+ }
803
+ return {
804
+ content: [{ type: 'text', text: md }],
805
+ };
806
+ } catch (e) {
807
+ return {
808
+ content: [{ type: 'text', text: `Context Compiler Error: ${e.message}` }],
809
+ isError: true,
810
+ };
811
+ }
812
+ }
813
+
578
814
  if (toolName === 'exit_plan_mode') {
579
815
  const planContent = req.params?.arguments?.plan_content;
580
816
  if (typeof planContent !== 'string') {
@@ -591,6 +827,196 @@ async function handleRequest(req) {
591
827
  };
592
828
  }
593
829
 
830
+ if (toolName === 'tk_browser_navigate') {
831
+ const url = req.params?.arguments?.url;
832
+ if (!url || typeof url !== 'string') {
833
+ throw new RpcError(-32602, 'Missing required argument: url (string)');
834
+ }
835
+ try {
836
+ const { browse } = require('../dist/browser');
837
+ const result = await browse(url);
838
+ return {
839
+ content: [
840
+ {
841
+ type: 'text',
842
+ text: result.sandboxed,
843
+ },
844
+ ],
845
+ };
846
+ } catch (e) {
847
+ return {
848
+ content: [{ type: 'text', text: `Browser navigation error: ${e.message}` }],
849
+ isError: true,
850
+ };
851
+ }
852
+ }
853
+
854
+ if (toolName === 'tk_browser_audit') {
855
+ const url = req.params?.arguments?.url;
856
+ if (!url || typeof url !== 'string') {
857
+ throw new RpcError(-32602, 'Missing required argument: url (string)');
858
+ }
859
+ try {
860
+ const { auditURL } = require('../dist/browser');
861
+ const report = await auditURL(url);
862
+ return {
863
+ content: [
864
+ {
865
+ type: 'text',
866
+ text: JSON.stringify(report, null, 2),
867
+ },
868
+ ],
869
+ };
870
+ } catch (e) {
871
+ return {
872
+ content: [{ type: 'text', text: `Browser audit error: ${e.message}` }],
873
+ isError: true,
874
+ };
875
+ }
876
+ }
877
+
878
+ if (toolName === 'tk_browser_compare') {
879
+ const url1 = req.params?.arguments?.url1;
880
+ const url2 = req.params?.arguments?.url2;
881
+ const maxDiffPercent = req.params?.arguments?.maxDiffPercent;
882
+ if (!url1 || !url2) {
883
+ throw new RpcError(-32602, 'Missing required arguments: url1 and url2 (strings)');
884
+ }
885
+ try {
886
+ const { compareURLs } = require('../dist/browser');
887
+ const result = await compareURLs(url1, url2, { maxDiffPercent });
888
+ return {
889
+ content: [
890
+ {
891
+ type: 'text',
892
+ text: JSON.stringify(result, null, 2),
893
+ },
894
+ ],
895
+ };
896
+ } catch (e) {
897
+ return {
898
+ content: [{ type: 'text', text: `Browser compare error: ${e.message}` }],
899
+ isError: true,
900
+ };
901
+ }
902
+ }
903
+
904
+ if (toolName === 'tk_browser_screenshot') {
905
+ const url = req.params?.arguments?.url;
906
+ if (!url || typeof url !== 'string') {
907
+ throw new RpcError(-32602, 'Missing required argument: url (string)');
908
+ }
909
+ try {
910
+ const { launchBrowser, CdpClient, createNewTab, closeTab } = require('../dist/browser');
911
+ const browser = await launchBrowser();
912
+ let client = null;
913
+ let tab = null;
914
+ try {
915
+ tab = await createNewTab(browser.port);
916
+ client = new CdpClient();
917
+ await client.connect(tab.webSocketDebuggerUrl);
918
+ await client.initDomains();
919
+ await client.navigate(url);
920
+ const shot = await client.captureScreenshot('png');
921
+ return {
922
+ content: [
923
+ {
924
+ type: 'text',
925
+ text: `Screenshot captured successfully for ${url} (${Buffer.byteLength(shot, 'base64')} bytes base64 PNG).`,
926
+ },
927
+ ],
928
+ };
929
+ } finally {
930
+ if (client) client.close();
931
+ if (tab && browser) await closeTab(tab.id, browser.port);
932
+ await browser.close();
933
+ }
934
+ } catch (e) {
935
+ return {
936
+ content: [{ type: 'text', text: `Screenshot error: ${e.message}` }],
937
+ isError: true,
938
+ };
939
+ }
940
+ }
941
+
942
+ if (toolName === 'tk_deconstruct_component') {
943
+ const url = req.params?.arguments?.url;
944
+ const selector = req.params?.arguments?.selector;
945
+ const name = req.params?.arguments?.name;
946
+ if (!url || !selector) {
947
+ throw new RpcError(-32602, 'Missing required arguments: url and selector (strings)');
948
+ }
949
+ try {
950
+ const { deconstructElement } = require('../dist/browser');
951
+ const result = await deconstructElement(url, selector, { name });
952
+ return {
953
+ content: [
954
+ {
955
+ type: 'text',
956
+ text: result.code,
957
+ },
958
+ ],
959
+ };
960
+ } catch (e) {
961
+ return {
962
+ content: [{ type: 'text', text: `Component deconstruction error: ${e.message}` }],
963
+ isError: true,
964
+ };
965
+ }
966
+ }
967
+
968
+ if (toolName === 'tk_heal_runtime_errors') {
969
+ const url = req.params?.arguments?.url;
970
+ const verify = req.params?.arguments?.verify;
971
+ if (!url) {
972
+ throw new RpcError(-32602, 'Missing required argument: url (string)');
973
+ }
974
+ try {
975
+ const { captureRuntimeErrors, verifyRuntimeFix } = require('../dist/browser');
976
+ const result = verify
977
+ ? await verifyRuntimeFix(url)
978
+ : await captureRuntimeErrors(url);
979
+ return {
980
+ content: [
981
+ {
982
+ type: 'text',
983
+ text: JSON.stringify(result, null, 2),
984
+ },
985
+ ],
986
+ };
987
+ } catch (e) {
988
+ return {
989
+ content: [{ type: 'text', text: `Runtime Sentinel error: ${e.message}` }],
990
+ isError: true,
991
+ };
992
+ }
993
+ }
994
+
995
+ if (toolName === 'tk_codify_browser_audit') {
996
+ const url = req.params?.arguments?.url;
997
+ if (!url) {
998
+ throw new RpcError(-32602, 'Missing required argument: url (string)');
999
+ }
1000
+ try {
1001
+ const { auditURL, codifyAuditViolations } = require('../dist/browser');
1002
+ const report = await auditURL(url);
1003
+ const codified = codifyAuditViolations(report);
1004
+ return {
1005
+ content: [
1006
+ {
1007
+ type: 'text',
1008
+ text: JSON.stringify({ report, codified }, null, 2),
1009
+ },
1010
+ ],
1011
+ };
1012
+ } catch (e) {
1013
+ return {
1014
+ content: [{ type: 'text', text: `Audit & codify error: ${e.message}` }],
1015
+ isError: true,
1016
+ };
1017
+ }
1018
+ }
1019
+
594
1020
  if (toolName === 'dispatch_swarm') {
595
1021
  const payload = req.params?.arguments?.payload;
596
1022
  const file = req.params?.arguments?.file;
@@ -51,29 +51,34 @@ function startProxyServer(port) {
51
51
  // 5MB payload limit to prevent memory exhaustion (DoS)
52
52
  if (body.length > 5 * 1024 * 1024) {
53
53
  console.error('[Tribunal Proxy] Request too large, aborting.');
54
+ if (!clientRes.headersSent) {
55
+ clientRes.writeHead(413, { 'Content-Type': 'text/plain' });
56
+ clientRes.end('Payload Too Large');
57
+ }
54
58
  clientReq.destroy();
55
59
  }
56
60
  });
57
61
 
58
62
  clientReq.on('end', () => {
63
+ if (clientReq.destroyed) return;
59
64
  let modifiedBody = body;
60
65
 
61
66
  // Only intercept AI chat completion endpoints
62
- if (clientReq.url.includes('/v1/messages')) {
67
+ if (clientReq.url && clientReq.url.includes('/v1/messages')) {
63
68
  console.log(`[Tribunal Proxy] Intercepting request to ${clientReq.url}`);
64
69
  modifiedBody = injectRulesIntoAnthropicPayload(body);
65
70
  }
66
71
 
72
+ const headers = { ...clientReq.headers, host: 'api.anthropic.com' };
73
+ delete headers['transfer-encoding'];
74
+ headers['content-length'] = Buffer.byteLength(modifiedBody);
75
+
67
76
  const options = {
68
77
  hostname: 'api.anthropic.com',
69
78
  port: 443,
70
79
  path: clientReq.url,
71
80
  method: clientReq.method,
72
- headers: {
73
- ...clientReq.headers,
74
- host: 'api.anthropic.com',
75
- 'content-length': Buffer.byteLength(modifiedBody),
76
- },
81
+ headers,
77
82
  };
78
83
 
79
84
  const proxyReq = https.request(options, proxyRes => {
@@ -83,11 +88,15 @@ function startProxyServer(port) {
83
88
 
84
89
  proxyReq.on('error', err => {
85
90
  console.error('[Tribunal Proxy] Proxy request error:', err);
86
- clientRes.writeHead(500);
87
- clientRes.end();
91
+ if (!clientRes.headersSent) {
92
+ clientRes.writeHead(502, { 'Content-Type': 'text/plain' });
93
+ clientRes.end('Bad Gateway');
94
+ }
88
95
  });
89
96
 
90
- proxyReq.write(modifiedBody);
97
+ if (modifiedBody && clientReq.method !== 'GET' && clientReq.method !== 'HEAD') {
98
+ proxyReq.write(modifiedBody);
99
+ }
91
100
  proxyReq.end();
92
101
  });
93
102
  });
@@ -18,14 +18,20 @@ function spawnAgent(agentCommand, proxyPort) {
18
18
  // NODE_TLS_REJECT_UNAUTHORIZED: "0"
19
19
  };
20
20
 
21
+ const isWin = process.platform === 'win32';
21
22
  const child = spawn(command, args, {
22
23
  stdio: 'inherit', // Pass stdin, stdout, stderr directly to the TTY
23
24
  env,
25
+ shell: isWin,
24
26
  });
25
27
 
26
- child.on('close', code => {
27
- console.log(`[Tribunal Proxy] ${command} exited with code ${code}`);
28
- process.exit(code);
28
+ child.on('close', (code, signal) => {
29
+ console.log(`[Tribunal Proxy] ${command} exited with code ${code !== null ? code : signal}`);
30
+ if (code !== null) {
31
+ process.exit(code);
32
+ } else {
33
+ process.exit(signal ? 128 : 1);
34
+ }
29
35
  });
30
36
 
31
37
  child.on('error', err => {
package/bin/wrapper.js CHANGED
@@ -82,13 +82,14 @@ function getBinaryPath() {
82
82
  }
83
83
  }
84
84
 
85
- // Third, attempt on-demand compilation if Cargo.toml exists locally and cargo is installed
85
+ // Third, attempt on-demand compilation if Cargo.toml exists locally and explicitly requested
86
86
  const cargoTomlPath = path.resolve(__dirname, '..', 'Cargo.toml');
87
- if (fs.existsSync(cargoTomlPath)) {
87
+ if (process.env.TK_AUTO_BUILD === '1' && fs.existsSync(cargoTomlPath)) {
88
88
  try {
89
+ console.log('\x1b[90m⚡ Building Rust core engine (TK_AUTO_BUILD=1)...\x1b[0m');
89
90
  const buildResult = spawnSync('cargo', ['build', '--release'], {
90
91
  cwd: path.resolve(__dirname, '..'),
91
- stdio: 'ignore',
92
+ stdio: 'inherit',
92
93
  timeout: 60000,
93
94
  });
94
95
  if (buildResult.status === 0) {
@@ -106,6 +107,15 @@ function getBinaryPath() {
106
107
  }
107
108
 
108
109
  function runRustBinary(binPath, args) {
110
+ // On Unix-like platforms, ensure the binary has execute permissions
111
+ if (os.platform() !== 'win32') {
112
+ try {
113
+ fs.chmodSync(binPath, 0o755);
114
+ } catch {
115
+ // Best-effort permission check
116
+ }
117
+ }
118
+
109
119
  const stdio = ['inherit', 'inherit', 'inherit'];
110
120
  const result = spawnSync(binPath, args, {
111
121
  stdio: stdio,
@@ -122,7 +132,12 @@ function runRustBinary(binPath, args) {
122
132
  return false; // Signal caller to fall back
123
133
  }
124
134
 
125
- process.exit(result.status || 0);
135
+ if (result.signal) {
136
+ const signalCode = os.constants?.signals?.[result.signal] || 1;
137
+ process.exit(128 + signalCode);
138
+ }
139
+
140
+ process.exit(result.status !== null && result.status !== undefined ? result.status : 1);
126
141
  }
127
142
 
128
143
  function runLegacyFallback() {