tribunal-kit 9.0.2 → 9.2.3

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 (691) hide show
  1. package/.agent/agents/backend-specialist.md +1 -1
  2. package/.agent/agents/code-archaeologist.md +1 -1
  3. package/.agent/agents/database-architect.md +1 -1
  4. package/.agent/agents/debugger.md +1 -1
  5. package/.agent/agents/devops-engineer.md +1 -1
  6. package/.agent/agents/documentation-writer.md +1 -1
  7. package/.agent/agents/explorer-agent.md +1 -1
  8. package/.agent/agents/game-developer.md +1 -1
  9. package/.agent/agents/minimalist-reviewer.md +1 -1
  10. package/.agent/agents/mobile-developer.md +1 -1
  11. package/.agent/agents/orchestrator.md +44 -2
  12. package/.agent/agents/penetration-tester.md +1 -1
  13. package/.agent/agents/performance-optimizer.md +1 -1
  14. package/.agent/agents/product-manager.md +1 -1
  15. package/.agent/agents/product-owner.md +1 -1
  16. package/.agent/agents/project-planner.md +1 -1
  17. package/.agent/agents/qa-automation-engineer.md +1 -1
  18. package/.agent/agents/seo-specialist.md +1 -1
  19. package/.agent/agents/test-engineer.md +1 -1
  20. package/.agent/config/claude.json +1 -1
  21. package/.agent/config/plugin.json +1 -1
  22. package/.agent/history/architecture-explorer.html +352 -0
  23. package/.agent/history/architecture-graph.yaml +181 -1
  24. package/.agent/history/graph-cache.json +323 -13
  25. package/.agent/history/integrity_manifest.json +3937 -299
  26. package/.agent/history/memory/.memory.idx +50 -50
  27. package/.agent/history/snapshots/.opencode__plugins__tribunal.js.json +12 -0
  28. package/.agent/history/snapshots/.pi__extensions__tribunal.ts.json +12 -0
  29. package/.agent/history/snapshots/bin__adapter-install.js.json +1 -1
  30. package/.agent/history/snapshots/bin__mcp-server.js.json +4 -2
  31. package/.agent/history/snapshots/bin__proxy-server.js.json +1 -1
  32. package/.agent/history/snapshots/bin__spawn-agent.js.json +1 -1
  33. package/.agent/history/snapshots/bin__wrapper.js.json +1 -1
  34. package/.agent/history/snapshots/eslint.config.js.json +1 -1
  35. package/.agent/history/snapshots/hooks__session-start.js.json +11 -0
  36. package/.agent/history/snapshots/scripts__apply-version.js.json +11 -0
  37. package/.agent/history/snapshots/scripts__audit_skill_sdo.js.json +11 -0
  38. package/.agent/history/snapshots/scripts__clean-pycache.js.json +11 -0
  39. package/.agent/history/snapshots/scripts__context_compiler.js.json +17 -0
  40. package/.agent/history/snapshots/scripts__modernize_skills.js.json +11 -0
  41. package/.agent/history/snapshots/scripts__package-cores.js.json +12 -0
  42. package/.agent/history/snapshots/scripts__skill_enhancement_engine.js.json +11 -0
  43. package/.agent/history/snapshots/scripts__sync-skills.js.json +11 -0
  44. package/.agent/history/snapshots/scripts__telemetry_gc.js.json +11 -0
  45. package/.agent/history/snapshots/scripts__validate-payload.js.json +1 -1
  46. package/.agent/history/snapshots/test__integration__browser_cli.test.js.json +12 -0
  47. package/.agent/history/snapshots/test__integration__sync_status.test.js.json +1 -1
  48. package/.agent/history/snapshots/test__unit__ast_context_loader.test.js.json +12 -0
  49. package/.agent/history/snapshots/test__unit__browser_case_bridge.test.js.json +11 -0
  50. package/.agent/history/snapshots/test__unit__browser_discovery.test.js.json +10 -0
  51. package/.agent/history/snapshots/test__unit__browser_idpi.test.js.json +10 -0
  52. package/.agent/history/snapshots/test__unit__browser_sentinel.test.js.json +11 -0
  53. package/.agent/history/snapshots/test__unit__browser_synapse.test.js.json +10 -0
  54. package/.agent/history/snapshots/test__unit__browser_trimmer.test.js.json +10 -0
  55. package/.agent/history/snapshots/test__unit__context_compiler.test.js.json +26 -0
  56. package/.agent/history/snapshots/test__unit__init.test.js.json +1 -1
  57. package/.agent/history/snapshots/test__unit__learn.test.js.json +1 -1
  58. package/.agent/history/snapshots/test__unit__mcp_server.test.js.json +1 -1
  59. package/.agent/history/snapshots/test__unit__platform_download_audit.test.js.json +11 -0
  60. package/.agent/history/snapshots/test__unit__prompt_compiler.test.js.json +10 -0
  61. package/.agent/history/snapshots/test__unit__sdd_integration.test.js.json +12 -0
  62. package/.agent/history/snapshots/test__unit__stress.test.js.json +1 -1
  63. package/.agent/history/snapshots/test__unit__token_budget_broker.test.js.json +10 -0
  64. package/.agent/history/snapshots/test__unit__tui.test.js.json +10 -0
  65. package/.agent/routing_index.json +266 -1531
  66. package/.agent/rules/kernel.md +86 -0
  67. package/.agent/scripts/_utils.js +78 -0
  68. package/.agent/scripts/browser_audit.js +13 -5
  69. package/.agent/scripts/bundle_analyzer.js +7 -3
  70. package/.agent/scripts/context_broker.js +0 -8
  71. package/.agent/scripts/context_compiler.js +1106 -3
  72. package/.agent/scripts/dependency_analyzer.js +16 -16
  73. package/.agent/scripts/guardrail_engine.js +48 -11
  74. package/.agent/scripts/inner_loop_validator.js +1 -1
  75. package/.agent/scripts/memory_engine.js +490 -329
  76. package/.agent/scripts/payload_schemas.js +18 -0
  77. package/.agent/scripts/pipeline_engine.js +29 -105
  78. package/.agent/scripts/schema_validator.js +2 -1
  79. package/.agent/scripts/swarm_dispatcher.js +148 -46
  80. package/.agent/scripts/test_runner.js +1 -2
  81. package/.agent/skill_topic_map.json +71 -22
  82. package/.agent/skills/12-principles-of-animation/SKILL.md +1 -76
  83. package/.agent/skills/60fps-animation/SKILL.md +4 -77
  84. package/.agent/skills/accessible-animation/SKILL.md +9 -86
  85. package/.agent/skills/adapt/SKILL.md +1 -76
  86. package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -76
  87. package/.agent/skills/agent-organizer/SKILL.md +1 -76
  88. package/.agent/skills/agentic-patterns/SKILL.md +1 -76
  89. package/.agent/skills/agentic-workflows-2026/SKILL.md +1 -75
  90. package/.agent/skills/ai-app-hardening/SKILL.md +1 -75
  91. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +1 -76
  92. package/.agent/skills/animation-on-scroll/SKILL.md +16 -87
  93. package/.agent/skills/animation-systems/SKILL.md +15 -90
  94. package/.agent/skills/antfu-conventions/SKILL.md +0 -75
  95. package/.agent/skills/api-patterns/SKILL.md +1 -76
  96. package/.agent/skills/api-security-auditor/SKILL.md +1 -76
  97. package/.agent/skills/app-builder/SKILL.md +1 -76
  98. package/.agent/skills/appflow-wireframe/SKILL.md +1 -78
  99. package/.agent/skills/apple-design/SKILL.md +1 -76
  100. package/.agent/skills/architecture/SKILL.md +1 -76
  101. package/.agent/skills/audit-and-fix/SKILL.md +41 -77
  102. package/.agent/skills/authentication-best-practices/SKILL.md +1 -76
  103. package/.agent/skills/backend-security-expert/SKILL.md +1 -76
  104. package/.agent/skills/baseline-ui/SKILL.md +1 -76
  105. package/.agent/skills/bash-linux/SKILL.md +1 -76
  106. package/.agent/skills/behavioral-modes/SKILL.md +1 -76
  107. package/.agent/skills/better-colors/SKILL.md +1 -76
  108. package/.agent/skills/better-typography/SKILL.md +1 -75
  109. package/.agent/skills/better-ui/SKILL.md +18 -81
  110. package/.agent/skills/bolder/SKILL.md +1 -76
  111. package/.agent/skills/brainstorming/SKILL.md +1 -75
  112. package/.agent/skills/browser-audit/SKILL.md +15 -83
  113. package/.agent/skills/browser-native-ai/SKILL.md +1 -76
  114. package/.agent/skills/build-primitive/SKILL.md +1 -76
  115. package/.agent/skills/building-native-ui/SKILL.md +1 -76
  116. package/.agent/skills/cicd-pro/SKILL.md +1 -76
  117. package/.agent/skills/clarify/SKILL.md +1 -76
  118. package/.agent/skills/clean-code/SKILL.md +1 -76
  119. package/.agent/skills/cloud-architect/SKILL.md +1 -76
  120. package/.agent/skills/cobejs/SKILL.md +1 -76
  121. package/.agent/skills/code-review-checklist/SKILL.md +1 -76
  122. package/.agent/skills/codebase-design/SKILL.md +1 -76
  123. package/.agent/skills/colorize/SKILL.md +1 -76
  124. package/.agent/skills/compact-landing/SKILL.md +1 -76
  125. package/.agent/skills/company-logos/SKILL.md +1 -76
  126. package/.agent/skills/config-validator/SKILL.md +1 -76
  127. package/.agent/skills/containerization-pro/SKILL.md +1 -76
  128. package/.agent/skills/context-engineering-pro/SKILL.md +1 -75
  129. package/.agent/skills/create-design-md/SKILL.md +1 -76
  130. package/.agent/skills/critique/SKILL.md +1 -76
  131. package/.agent/skills/csharp-developer/SKILL.md +1 -76
  132. package/.agent/skills/data-validation-schemas/SKILL.md +1 -76
  133. package/.agent/skills/database-design/SKILL.md +1 -76
  134. package/.agent/skills/delight/SKILL.md +1 -76
  135. package/.agent/skills/deployment-procedures/SKILL.md +1 -76
  136. package/.agent/skills/design-lab/SKILL.md +0 -75
  137. package/.agent/skills/devops-engineer/SKILL.md +1 -76
  138. package/.agent/skills/devops-incident-responder/SKILL.md +1 -76
  139. package/.agent/skills/diagnosing-bugs/SKILL.md +0 -75
  140. package/.agent/skills/distill/SKILL.md +1 -76
  141. package/.agent/skills/documentation-templates/SKILL.md +1 -76
  142. package/.agent/skills/domain-modeling/SKILL.md +1 -76
  143. package/.agent/skills/duckdb-analytical-sql/SKILL.md +1 -75
  144. package/.agent/skills/edge-ai-mobile/SKILL.md +1 -75
  145. package/.agent/skills/edge-computing/SKILL.md +1 -76
  146. package/.agent/skills/emil-design-eng/SKILL.md +1 -76
  147. package/.agent/skills/error-resilience/SKILL.md +1 -76
  148. package/.agent/skills/expo-router-v4/SKILL.md +1 -75
  149. package/.agent/skills/extract-design-system/SKILL.md +1 -76
  150. package/.agent/skills/fabel-protocol/SKILL.md +1 -76
  151. package/.agent/skills/fixing-accessibility/SKILL.md +1 -76
  152. package/.agent/skills/fixing-metadata/SKILL.md +1 -76
  153. package/.agent/skills/fixing-motion-performance/SKILL.md +1 -76
  154. package/.agent/skills/framer-motion-expert/SKILL.md +1 -76
  155. package/.agent/skills/frontend-design/SKILL.md +1 -76
  156. package/.agent/skills/frontend-security-expert/SKILL.md +1 -76
  157. package/.agent/skills/game-design-expert/SKILL.md +1 -76
  158. package/.agent/skills/game-engineering-expert/SKILL.md +1 -76
  159. package/.agent/skills/generative-ui-expert/SKILL.md +1 -76
  160. package/.agent/skills/geo-fundamentals/SKILL.md +1 -76
  161. package/.agent/skills/git-pro/SKILL.md +1 -76
  162. package/.agent/skills/github-operations/SKILL.md +1 -76
  163. package/.agent/skills/gpt-taste/SKILL.md +1 -76
  164. package/.agent/skills/gsap-core/SKILL.md +1 -76
  165. package/.agent/skills/gsap-frameworks/SKILL.md +1 -76
  166. package/.agent/skills/gsap-performance/SKILL.md +1 -76
  167. package/.agent/skills/gsap-plugins/SKILL.md +1 -76
  168. package/.agent/skills/gsap-react/SKILL.md +1 -76
  169. package/.agent/skills/gsap-scrolltrigger/SKILL.md +1 -76
  170. package/.agent/skills/gsap-timeline/SKILL.md +1 -76
  171. package/.agent/skills/gsap-utils/SKILL.md +1 -76
  172. package/.agent/skills/harden/SKILL.md +1 -76
  173. package/.agent/skills/harness-protocol/SKILL.md +1 -76
  174. package/.agent/skills/i18n-localization/SKILL.md +1 -76
  175. package/.agent/skills/impeccable/SKILL.md +1 -76
  176. package/.agent/skills/improve-codebase-architecture/SKILL.md +1 -76
  177. package/.agent/skills/improve-ui/SKILL.md +1 -76
  178. package/.agent/skills/intelligent-routing/SKILL.md +2 -87
  179. package/.agent/skills/knowledge-graph/SKILL.md +1 -76
  180. package/.agent/skills/landing-page/SKILL.md +1 -76
  181. package/.agent/skills/lint-and-validate/SKILL.md +1 -76
  182. package/.agent/skills/llm-engineering/SKILL.md +1 -76
  183. package/.agent/skills/local-first/SKILL.md +1 -76
  184. package/.agent/skills/local-first-architecture/SKILL.md +1 -76
  185. package/.agent/skills/lottie-animation/SKILL.md +1 -76
  186. package/.agent/skills/marquee-loop/SKILL.md +1 -76
  187. package/.agent/skills/masked-reveal/SKILL.md +1 -76
  188. package/.agent/skills/mcp-builder/SKILL.md +1 -76
  189. package/.agent/skills/micro-interaction/SKILL.md +19 -87
  190. package/.agent/skills/mobile-design/SKILL.md +1 -76
  191. package/.agent/skills/monorepo-management/SKILL.md +1 -76
  192. package/.agent/skills/morphing-icons/SKILL.md +1 -76
  193. package/.agent/skills/motion-engineering/SKILL.md +1 -76
  194. package/.agent/skills/nextjs-react-expert/SKILL.md +1 -76
  195. package/.agent/skills/nodejs-best-practices/SKILL.md +1 -76
  196. package/.agent/skills/observability/SKILL.md +1 -76
  197. package/.agent/skills/opentelemetry-observability/SKILL.md +1 -75
  198. package/.agent/skills/page-transition-animation/SKILL.md +1 -76
  199. package/.agent/skills/parallel-agents/SKILL.md +1 -76
  200. package/.agent/skills/performance-profiling/SKILL.md +1 -76
  201. package/.agent/skills/plan-writing/SKILL.md +1 -76
  202. package/.agent/skills/platform-engineer/SKILL.md +1 -76
  203. package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -75
  204. package/.agent/skills/playwright-ai-e2e/SKILL.md +1 -75
  205. package/.agent/skills/playwright-best-practices/SKILL.md +1 -76
  206. package/.agent/skills/polish/SKILL.md +1 -76
  207. package/.agent/skills/powershell-windows/SKILL.md +1 -76
  208. package/.agent/skills/pricing-page/SKILL.md +1 -76
  209. package/.agent/skills/product-aware-heuristics/SKILL.md +1 -76
  210. package/.agent/skills/progressive-blur/SKILL.md +1 -76
  211. package/.agent/skills/project-idioms/SKILL.md +1 -76
  212. package/.agent/skills/property-based-testing/SKILL.md +1 -75
  213. package/.agent/skills/python-patterns/SKILL.md +1 -76
  214. package/.agent/skills/python-pro/SKILL.md +1 -76
  215. package/.agent/skills/quieter/SKILL.md +1 -76
  216. package/.agent/skills/react-doctor/SKILL.md +1 -76
  217. package/.agent/skills/react-specialist/SKILL.md +1 -76
  218. package/.agent/skills/readme-builder/SKILL.md +1 -76
  219. package/.agent/skills/realtime-patterns/SKILL.md +1 -76
  220. package/.agent/skills/red-team-tactics/SKILL.md +1 -76
  221. package/.agent/skills/redesign-skill/SKILL.md +1 -76
  222. package/.agent/skills/review-animations/SKILL.md +1 -76
  223. package/.agent/skills/rust-pro/SKILL.md +1 -76
  224. package/.agent/skills/seo-fundamentals/SKILL.md +1 -76
  225. package/.agent/skills/server-management/SKILL.md +1 -76
  226. package/.agent/skills/shadcn-ui-expert/SKILL.md +1 -76
  227. package/.agent/skills/shape/SKILL.md +1 -76
  228. package/.agent/skills/skill-creator/SKILL.md +127 -86
  229. package/.agent/skills/soft-skill/SKILL.md +1 -76
  230. package/.agent/skills/sounds-on-the-web/SKILL.md +1 -76
  231. package/.agent/skills/sql-pro/SKILL.md +1 -76
  232. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -76
  233. package/.agent/skills/svg-animation/SKILL.md +1 -76
  234. package/.agent/skills/swiftui-expert/SKILL.md +1 -76
  235. package/.agent/skills/swiss-design/SKILL.md +1 -76
  236. package/.agent/skills/system-design-pro/SKILL.md +1 -76
  237. package/.agent/skills/systematic-debugging/SKILL.md +2 -76
  238. package/.agent/skills/systematic-debugging/condition-based-waiting.md +14 -9
  239. package/.agent/skills/systematic-debugging/defense-in-depth.md +9 -3
  240. package/.agent/skills/systematic-debugging/root-cause-tracing.md +14 -0
  241. package/.agent/skills/tailwind-patterns/SKILL.md +1 -76
  242. package/.agent/skills/taste-skill/SKILL.md +1 -76
  243. package/.agent/skills/tdd-workflow/SKILL.md +8 -82
  244. package/.agent/skills/test-result-analyzer/SKILL.md +1 -76
  245. package/.agent/skills/testing-patterns/SKILL.md +1 -76
  246. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
  247. package/.agent/skills/thinking-protocol/SKILL.md +1 -77
  248. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
  249. package/.agent/skills/transitions-dev/SKILL.md +1 -76
  250. package/.agent/skills/trend-researcher/SKILL.md +1 -76
  251. package/.agent/skills/typescript-advanced/SKILL.md +1 -76
  252. package/.agent/skills/typeset/SKILL.md +1 -76
  253. package/.agent/skills/ui-reasoning-engine/SKILL.md +1 -76
  254. package/.agent/skills/ui-skill-packs/SKILL.md +1 -76
  255. package/.agent/skills/ui-skills-root/SKILL.md +1 -76
  256. package/.agent/skills/ui-ux-pro-max/SKILL.md +1 -76
  257. package/.agent/skills/ui-ux-researcher/SKILL.md +1 -76
  258. package/.agent/skills/vector-search-pgvector/SKILL.md +1 -75
  259. package/.agent/skills/verification-before-completion/SKILL.md +20 -91
  260. package/.agent/skills/vue-expert/SKILL.md +1 -76
  261. package/.agent/skills/vulnerability-scanner/SKILL.md +1 -76
  262. package/.agent/skills/web-accessibility-auditor/SKILL.md +1 -76
  263. package/.agent/skills/web-design-guidelines/SKILL.md +1 -76
  264. package/.agent/skills/web-quality-audit/SKILL.md +1 -76
  265. package/.agent/skills/webapp-testing/SKILL.md +1 -76
  266. package/.agent/skills/webgpu-performance/SKILL.md +1 -76
  267. package/.agent/skills/whimsy-injector/SKILL.md +1 -76
  268. package/.agent/skills/workflow-optimizer/SKILL.md +1 -76
  269. package/.agent/skills/zero-trust-passkeys/SKILL.md +1 -75
  270. package/.agent/templates/DESIGN.md +312 -290
  271. package/.agent/templates/sdd/task-reviewer-prompt.md +2 -2
  272. package/.agent/workflows/audit-live.md +4 -3
  273. package/.agent/workflows/brainstorm.md +1 -0
  274. package/.agent/workflows/context.md +9 -7
  275. package/.agent/workflows/generate.md +1 -1
  276. package/.agent/workflows/minimal.md +3 -2
  277. package/.agent/workflows/orchestrate.md +1 -1
  278. package/.agent/workflows/plan.md +1 -1
  279. package/.agent/workflows/review-ai.md +1 -1
  280. package/.agent/workflows/sdd.md +15 -0
  281. package/.agent/workflows/skill-enhancement-engine.md +17 -21
  282. package/.agent/workflows/super-prompt.md +25 -24
  283. package/.agent/workflows/swarm.md +1 -1
  284. package/.agent/workflows/tribunal-backend.md +1 -1
  285. package/.agent/workflows/tribunal-cicd.md +1 -1
  286. package/.agent/workflows/tribunal-database.md +1 -1
  287. package/.agent/workflows/tribunal-frontend.md +1 -1
  288. package/.agent/workflows/tribunal-full.md +9 -9
  289. package/.agent/workflows/tribunal-mobile.md +1 -1
  290. package/.agent/workflows/tribunal-speed.md +1 -1
  291. package/.agent/workflows/tribunal-ui.md +1 -1
  292. package/.agents/skills/12-principles-of-animation/SKILL.md +1 -76
  293. package/.agents/skills/60fps-animation/SKILL.md +4 -77
  294. package/.agents/skills/accessible-animation/SKILL.md +9 -86
  295. package/.agents/skills/adapt/SKILL.md +1 -76
  296. package/.agents/skills/advanced-rag-pipelines/SKILL.md +1 -76
  297. package/.agents/skills/agent-organizer/SKILL.md +1 -76
  298. package/.agents/skills/agentic-patterns/SKILL.md +1 -76
  299. package/.agents/skills/agentic-workflows-2026/SKILL.md +1 -75
  300. package/.agents/skills/ai-app-hardening/SKILL.md +1 -75
  301. package/.agents/skills/ai-prompt-injection-defense/SKILL.md +1 -76
  302. package/.agents/skills/animation-on-scroll/SKILL.md +16 -87
  303. package/.agents/skills/animation-systems/SKILL.md +15 -90
  304. package/.agents/skills/antfu-conventions/SKILL.md +0 -75
  305. package/.agents/skills/api-patterns/SKILL.md +1 -76
  306. package/.agents/skills/api-security-auditor/SKILL.md +1 -76
  307. package/.agents/skills/app-builder/SKILL.md +1 -76
  308. package/.agents/skills/appflow-wireframe/SKILL.md +1 -78
  309. package/.agents/skills/apple-design/SKILL.md +1 -76
  310. package/.agents/skills/architecture/SKILL.md +1 -76
  311. package/.agents/skills/audit-and-fix/SKILL.md +41 -77
  312. package/.agents/skills/authentication-best-practices/SKILL.md +1 -76
  313. package/.agents/skills/backend-security-expert/SKILL.md +1 -76
  314. package/.agents/skills/baseline-ui/SKILL.md +1 -76
  315. package/.agents/skills/bash-linux/SKILL.md +1 -76
  316. package/.agents/skills/behavioral-modes/SKILL.md +1 -76
  317. package/.agents/skills/better-colors/SKILL.md +1 -76
  318. package/.agents/skills/better-typography/SKILL.md +1 -75
  319. package/.agents/skills/better-ui/SKILL.md +18 -81
  320. package/.agents/skills/bolder/SKILL.md +1 -76
  321. package/.agents/skills/brainstorming/SKILL.md +1 -75
  322. package/.agents/skills/browser-audit/SKILL.md +15 -83
  323. package/.agents/skills/browser-native-ai/SKILL.md +1 -76
  324. package/.agents/skills/build-primitive/SKILL.md +1 -76
  325. package/.agents/skills/building-native-ui/SKILL.md +1 -76
  326. package/.agents/skills/cicd-pro/SKILL.md +1 -76
  327. package/.agents/skills/clarify/SKILL.md +1 -76
  328. package/.agents/skills/clean-code/SKILL.md +1 -76
  329. package/.agents/skills/cloud-architect/SKILL.md +1 -76
  330. package/.agents/skills/cobejs/SKILL.md +1 -76
  331. package/.agents/skills/code-review-checklist/SKILL.md +1 -76
  332. package/.agents/skills/codebase-design/SKILL.md +1 -76
  333. package/.agents/skills/colorize/SKILL.md +1 -76
  334. package/.agents/skills/compact-landing/SKILL.md +1 -76
  335. package/.agents/skills/company-logos/SKILL.md +1 -76
  336. package/.agents/skills/config-validator/SKILL.md +1 -76
  337. package/.agents/skills/containerization-pro/SKILL.md +1 -76
  338. package/.agents/skills/context-engineering-pro/SKILL.md +1 -75
  339. package/.agents/skills/create-design-md/SKILL.md +1 -76
  340. package/.agents/skills/critique/SKILL.md +1 -76
  341. package/.agents/skills/csharp-developer/SKILL.md +1 -76
  342. package/.agents/skills/data-validation-schemas/SKILL.md +1 -76
  343. package/.agents/skills/database-design/SKILL.md +1 -76
  344. package/.agents/skills/delight/SKILL.md +1 -76
  345. package/.agents/skills/deployment-procedures/SKILL.md +1 -76
  346. package/.agents/skills/design-lab/SKILL.md +0 -75
  347. package/.agents/skills/devops-engineer/SKILL.md +1 -76
  348. package/.agents/skills/devops-incident-responder/SKILL.md +1 -76
  349. package/.agents/skills/diagnosing-bugs/SKILL.md +0 -75
  350. package/.agents/skills/distill/SKILL.md +1 -76
  351. package/.agents/skills/documentation-templates/SKILL.md +1 -76
  352. package/.agents/skills/domain-modeling/SKILL.md +1 -76
  353. package/.agents/skills/duckdb-analytical-sql/SKILL.md +1 -75
  354. package/.agents/skills/edge-ai-mobile/SKILL.md +1 -75
  355. package/.agents/skills/edge-computing/SKILL.md +1 -76
  356. package/.agents/skills/emil-design-eng/SKILL.md +1 -76
  357. package/.agents/skills/error-resilience/SKILL.md +1 -76
  358. package/.agents/skills/expo-router-v4/SKILL.md +1 -75
  359. package/.agents/skills/extract-design-system/SKILL.md +1 -76
  360. package/.agents/skills/fabel-protocol/SKILL.md +1 -76
  361. package/.agents/skills/fixing-accessibility/SKILL.md +1 -76
  362. package/.agents/skills/fixing-metadata/SKILL.md +1 -76
  363. package/.agents/skills/fixing-motion-performance/SKILL.md +1 -76
  364. package/.agents/skills/framer-motion-expert/SKILL.md +1 -76
  365. package/.agents/skills/frontend-design/SKILL.md +1 -76
  366. package/.agents/skills/frontend-security-expert/SKILL.md +1 -76
  367. package/.agents/skills/game-design-expert/SKILL.md +1 -76
  368. package/.agents/skills/game-engineering-expert/SKILL.md +1 -76
  369. package/.agents/skills/generative-ui-expert/SKILL.md +1 -76
  370. package/.agents/skills/geo-fundamentals/SKILL.md +1 -76
  371. package/.agents/skills/git-pro/SKILL.md +1 -76
  372. package/.agents/skills/github-operations/SKILL.md +1 -76
  373. package/.agents/skills/gpt-taste/SKILL.md +1 -76
  374. package/.agents/skills/gsap-core/SKILL.md +1 -76
  375. package/.agents/skills/gsap-frameworks/SKILL.md +1 -76
  376. package/.agents/skills/gsap-performance/SKILL.md +1 -76
  377. package/.agents/skills/gsap-plugins/SKILL.md +1 -76
  378. package/.agents/skills/gsap-react/SKILL.md +1 -76
  379. package/.agents/skills/gsap-scrolltrigger/SKILL.md +1 -76
  380. package/.agents/skills/gsap-timeline/SKILL.md +1 -76
  381. package/.agents/skills/gsap-utils/SKILL.md +1 -76
  382. package/.agents/skills/harden/SKILL.md +1 -76
  383. package/.agents/skills/harness-protocol/SKILL.md +1 -76
  384. package/.agents/skills/i18n-localization/SKILL.md +1 -76
  385. package/.agents/skills/impeccable/SKILL.md +1 -76
  386. package/.agents/skills/improve-codebase-architecture/SKILL.md +1 -76
  387. package/.agents/skills/improve-ui/SKILL.md +1 -76
  388. package/.agents/skills/intelligent-routing/SKILL.md +2 -87
  389. package/.agents/skills/knowledge-graph/SKILL.md +1 -76
  390. package/.agents/skills/landing-page/SKILL.md +1 -76
  391. package/.agents/skills/lint-and-validate/SKILL.md +1 -76
  392. package/.agents/skills/llm-engineering/SKILL.md +1 -76
  393. package/.agents/skills/local-first/SKILL.md +1 -76
  394. package/.agents/skills/local-first-architecture/SKILL.md +1 -76
  395. package/.agents/skills/lottie-animation/SKILL.md +1 -76
  396. package/.agents/skills/marquee-loop/SKILL.md +1 -76
  397. package/.agents/skills/masked-reveal/SKILL.md +1 -76
  398. package/.agents/skills/mcp-builder/SKILL.md +1 -76
  399. package/.agents/skills/micro-interaction/SKILL.md +19 -87
  400. package/.agents/skills/mobile-design/SKILL.md +1 -76
  401. package/.agents/skills/monorepo-management/SKILL.md +1 -76
  402. package/.agents/skills/morphing-icons/SKILL.md +1 -76
  403. package/.agents/skills/motion-engineering/SKILL.md +1 -76
  404. package/.agents/skills/nextjs-react-expert/SKILL.md +1 -76
  405. package/.agents/skills/nodejs-best-practices/SKILL.md +1 -76
  406. package/.agents/skills/observability/SKILL.md +1 -76
  407. package/.agents/skills/opentelemetry-observability/SKILL.md +1 -75
  408. package/.agents/skills/page-transition-animation/SKILL.md +1 -76
  409. package/.agents/skills/parallel-agents/SKILL.md +1 -76
  410. package/.agents/skills/performance-profiling/SKILL.md +1 -76
  411. package/.agents/skills/plan-writing/SKILL.md +1 -76
  412. package/.agents/skills/platform-engineer/SKILL.md +1 -76
  413. package/.agents/skills/platform-engineering-opentofu/SKILL.md +1 -75
  414. package/.agents/skills/playwright-ai-e2e/SKILL.md +1 -75
  415. package/.agents/skills/playwright-best-practices/SKILL.md +1 -76
  416. package/.agents/skills/polish/SKILL.md +1 -76
  417. package/.agents/skills/powershell-windows/SKILL.md +1 -76
  418. package/.agents/skills/pricing-page/SKILL.md +1 -76
  419. package/.agents/skills/product-aware-heuristics/SKILL.md +1 -76
  420. package/.agents/skills/progressive-blur/SKILL.md +1 -76
  421. package/.agents/skills/project-idioms/SKILL.md +1 -76
  422. package/.agents/skills/property-based-testing/SKILL.md +1 -75
  423. package/.agents/skills/python-patterns/SKILL.md +1 -76
  424. package/.agents/skills/python-pro/SKILL.md +1 -76
  425. package/.agents/skills/quieter/SKILL.md +1 -76
  426. package/.agents/skills/react-doctor/SKILL.md +1 -76
  427. package/.agents/skills/react-specialist/SKILL.md +1 -76
  428. package/.agents/skills/readme-builder/SKILL.md +1 -76
  429. package/.agents/skills/realtime-patterns/SKILL.md +1 -76
  430. package/.agents/skills/red-team-tactics/SKILL.md +1 -76
  431. package/.agents/skills/redesign-skill/SKILL.md +1 -76
  432. package/.agents/skills/review-animations/SKILL.md +1 -76
  433. package/.agents/skills/rust-pro/SKILL.md +1 -76
  434. package/.agents/skills/seo-fundamentals/SKILL.md +1 -76
  435. package/.agents/skills/server-management/SKILL.md +1 -76
  436. package/.agents/skills/shadcn-ui-expert/SKILL.md +1 -76
  437. package/.agents/skills/shape/SKILL.md +1 -76
  438. package/.agents/skills/skill-creator/SKILL.md +127 -86
  439. package/.agents/skills/soft-skill/SKILL.md +1 -76
  440. package/.agents/skills/sounds-on-the-web/SKILL.md +1 -76
  441. package/.agents/skills/sql-pro/SKILL.md +1 -76
  442. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +1 -76
  443. package/.agents/skills/svg-animation/SKILL.md +1 -76
  444. package/.agents/skills/swiftui-expert/SKILL.md +1 -76
  445. package/.agents/skills/swiss-design/SKILL.md +1 -76
  446. package/.agents/skills/system-design-pro/SKILL.md +1 -76
  447. package/.agents/skills/systematic-debugging/SKILL.md +2 -76
  448. package/.agents/skills/systematic-debugging/condition-based-waiting.md +14 -9
  449. package/.agents/skills/systematic-debugging/defense-in-depth.md +9 -3
  450. package/.agents/skills/systematic-debugging/root-cause-tracing.md +14 -0
  451. package/.agents/skills/tailwind-patterns/SKILL.md +1 -76
  452. package/.agents/skills/taste-skill/SKILL.md +1 -76
  453. package/.agents/skills/tdd-workflow/SKILL.md +8 -82
  454. package/.agents/skills/test-result-analyzer/SKILL.md +1 -76
  455. package/.agents/skills/testing-patterns/SKILL.md +1 -76
  456. package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
  457. package/.agents/skills/thinking-protocol/SKILL.md +1 -77
  458. package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
  459. package/.agents/skills/transitions-dev/SKILL.md +1 -76
  460. package/.agents/skills/trend-researcher/SKILL.md +1 -76
  461. package/.agents/skills/typescript-advanced/SKILL.md +1 -76
  462. package/.agents/skills/typeset/SKILL.md +1 -76
  463. package/.agents/skills/ui-reasoning-engine/SKILL.md +1 -76
  464. package/.agents/skills/ui-skill-packs/SKILL.md +1 -76
  465. package/.agents/skills/ui-skills-root/SKILL.md +1 -76
  466. package/.agents/skills/ui-ux-pro-max/SKILL.md +1 -76
  467. package/.agents/skills/ui-ux-researcher/SKILL.md +1 -76
  468. package/.agents/skills/vector-search-pgvector/SKILL.md +1 -75
  469. package/.agents/skills/verification-before-completion/SKILL.md +20 -91
  470. package/.agents/skills/vue-expert/SKILL.md +1 -76
  471. package/.agents/skills/vulnerability-scanner/SKILL.md +1 -76
  472. package/.agents/skills/web-accessibility-auditor/SKILL.md +1 -76
  473. package/.agents/skills/web-design-guidelines/SKILL.md +1 -76
  474. package/.agents/skills/web-quality-audit/SKILL.md +1 -76
  475. package/.agents/skills/webapp-testing/SKILL.md +1 -76
  476. package/.agents/skills/webgpu-performance/SKILL.md +1 -76
  477. package/.agents/skills/whimsy-injector/SKILL.md +1 -76
  478. package/.agents/skills/workflow-optimizer/SKILL.md +1 -76
  479. package/.agents/skills/zero-trust-passkeys/SKILL.md +1 -75
  480. package/.codex-plugin/plugin.json +1 -5
  481. package/.kimi-plugin/plugin.json +1 -5
  482. package/.opencode/INSTALL.md +1 -0
  483. package/.opencode/plugins/tribunal.js +15 -6
  484. package/.pi/extensions/tribunal.ts +26 -29
  485. package/AGENTS.md +15 -13
  486. package/CLAUDE.md +3 -1
  487. package/README.md +23 -16
  488. package/bin/adapter-install.js +1 -1
  489. package/bin/mcp-server.js +88 -58
  490. package/bin/wrapper.js +22 -2
  491. package/dist/commands/init.js +25 -11
  492. package/dist/tui/banner.js +77 -77
  493. package/gemini-extension.json +1 -1
  494. package/package.json +13 -10
  495. package/plugin.json +1 -1
  496. package/scripts/apply-version.js +2 -2
  497. package/scripts/audit_skill_sdo.js +6 -4
  498. package/scripts/context_compiler.js +256 -83
  499. package/scripts/modernize_skills.js +25 -11
  500. package/scripts/package-cores.js +4 -1
  501. package/scripts/skill_enhancement_engine.js +212 -77
  502. package/scripts/telemetry_gc.js +156 -0
  503. package/scripts/validate-payload.js +1 -6
  504. package/skills/12-principles-of-animation/SKILL.md +1 -76
  505. package/skills/60fps-animation/SKILL.md +4 -77
  506. package/skills/accessible-animation/SKILL.md +9 -86
  507. package/skills/adapt/SKILL.md +1 -76
  508. package/skills/advanced-rag-pipelines/SKILL.md +1 -76
  509. package/skills/agent-organizer/SKILL.md +1 -76
  510. package/skills/agentic-patterns/SKILL.md +1 -76
  511. package/skills/agentic-workflows-2026/SKILL.md +1 -75
  512. package/skills/ai-app-hardening/SKILL.md +1 -75
  513. package/skills/ai-prompt-injection-defense/SKILL.md +1 -76
  514. package/skills/animation-on-scroll/SKILL.md +16 -87
  515. package/skills/animation-systems/SKILL.md +15 -90
  516. package/skills/antfu-conventions/SKILL.md +0 -75
  517. package/skills/api-patterns/SKILL.md +1 -76
  518. package/skills/api-security-auditor/SKILL.md +1 -76
  519. package/skills/app-builder/SKILL.md +1 -76
  520. package/skills/appflow-wireframe/SKILL.md +1 -78
  521. package/skills/apple-design/SKILL.md +1 -76
  522. package/skills/architecture/SKILL.md +1 -76
  523. package/skills/audit-and-fix/SKILL.md +41 -77
  524. package/skills/authentication-best-practices/SKILL.md +1 -76
  525. package/skills/backend-security-expert/SKILL.md +1 -76
  526. package/skills/baseline-ui/SKILL.md +1 -76
  527. package/skills/bash-linux/SKILL.md +1 -76
  528. package/skills/behavioral-modes/SKILL.md +1 -76
  529. package/skills/better-colors/SKILL.md +1 -76
  530. package/skills/better-typography/SKILL.md +1 -75
  531. package/skills/better-ui/SKILL.md +18 -81
  532. package/skills/bolder/SKILL.md +1 -76
  533. package/skills/brainstorming/SKILL.md +1 -75
  534. package/skills/browser-audit/SKILL.md +15 -83
  535. package/skills/browser-native-ai/SKILL.md +1 -76
  536. package/skills/build-primitive/SKILL.md +1 -76
  537. package/skills/building-native-ui/SKILL.md +1 -76
  538. package/skills/cicd-pro/SKILL.md +1 -76
  539. package/skills/clarify/SKILL.md +1 -76
  540. package/skills/clean-code/SKILL.md +1 -76
  541. package/skills/cloud-architect/SKILL.md +1 -76
  542. package/skills/cobejs/SKILL.md +1 -76
  543. package/skills/code-review-checklist/SKILL.md +1 -76
  544. package/skills/codebase-design/SKILL.md +1 -76
  545. package/skills/colorize/SKILL.md +1 -76
  546. package/skills/compact-landing/SKILL.md +1 -76
  547. package/skills/company-logos/SKILL.md +1 -76
  548. package/skills/config-validator/SKILL.md +1 -76
  549. package/skills/containerization-pro/SKILL.md +1 -76
  550. package/skills/context-engineering-pro/SKILL.md +1 -75
  551. package/skills/create-design-md/SKILL.md +1 -76
  552. package/skills/critique/SKILL.md +1 -76
  553. package/skills/csharp-developer/SKILL.md +1 -76
  554. package/skills/data-validation-schemas/SKILL.md +1 -76
  555. package/skills/database-design/SKILL.md +1 -76
  556. package/skills/delight/SKILL.md +1 -76
  557. package/skills/deployment-procedures/SKILL.md +1 -76
  558. package/skills/design-lab/SKILL.md +0 -75
  559. package/skills/devops-engineer/SKILL.md +1 -76
  560. package/skills/devops-incident-responder/SKILL.md +1 -76
  561. package/skills/diagnosing-bugs/SKILL.md +0 -75
  562. package/skills/distill/SKILL.md +1 -76
  563. package/skills/documentation-templates/SKILL.md +1 -76
  564. package/skills/domain-modeling/SKILL.md +1 -76
  565. package/skills/duckdb-analytical-sql/SKILL.md +1 -75
  566. package/skills/edge-ai-mobile/SKILL.md +1 -75
  567. package/skills/edge-computing/SKILL.md +1 -76
  568. package/skills/emil-design-eng/SKILL.md +1 -76
  569. package/skills/error-resilience/SKILL.md +1 -76
  570. package/skills/expo-router-v4/SKILL.md +1 -75
  571. package/skills/extract-design-system/SKILL.md +1 -76
  572. package/skills/fabel-protocol/SKILL.md +1 -76
  573. package/skills/fixing-accessibility/SKILL.md +1 -76
  574. package/skills/fixing-metadata/SKILL.md +1 -76
  575. package/skills/fixing-motion-performance/SKILL.md +1 -76
  576. package/skills/framer-motion-expert/SKILL.md +1 -76
  577. package/skills/frontend-design/SKILL.md +1 -76
  578. package/skills/frontend-security-expert/SKILL.md +1 -76
  579. package/skills/game-design-expert/SKILL.md +1 -76
  580. package/skills/game-engineering-expert/SKILL.md +1 -76
  581. package/skills/generative-ui-expert/SKILL.md +1 -76
  582. package/skills/geo-fundamentals/SKILL.md +1 -76
  583. package/skills/git-pro/SKILL.md +1 -76
  584. package/skills/github-operations/SKILL.md +1 -76
  585. package/skills/gpt-taste/SKILL.md +1 -76
  586. package/skills/gsap-core/SKILL.md +1 -76
  587. package/skills/gsap-frameworks/SKILL.md +1 -76
  588. package/skills/gsap-performance/SKILL.md +1 -76
  589. package/skills/gsap-plugins/SKILL.md +1 -76
  590. package/skills/gsap-react/SKILL.md +1 -76
  591. package/skills/gsap-scrolltrigger/SKILL.md +1 -76
  592. package/skills/gsap-timeline/SKILL.md +1 -76
  593. package/skills/gsap-utils/SKILL.md +1 -76
  594. package/skills/harden/SKILL.md +1 -76
  595. package/skills/harness-protocol/SKILL.md +1 -76
  596. package/skills/i18n-localization/SKILL.md +1 -76
  597. package/skills/impeccable/SKILL.md +1 -76
  598. package/skills/improve-codebase-architecture/SKILL.md +1 -76
  599. package/skills/improve-ui/SKILL.md +1 -76
  600. package/skills/intelligent-routing/SKILL.md +2 -87
  601. package/skills/knowledge-graph/SKILL.md +1 -76
  602. package/skills/landing-page/SKILL.md +1 -76
  603. package/skills/lint-and-validate/SKILL.md +1 -76
  604. package/skills/llm-engineering/SKILL.md +1 -76
  605. package/skills/local-first/SKILL.md +1 -76
  606. package/skills/local-first-architecture/SKILL.md +1 -76
  607. package/skills/lottie-animation/SKILL.md +1 -76
  608. package/skills/marquee-loop/SKILL.md +1 -76
  609. package/skills/masked-reveal/SKILL.md +1 -76
  610. package/skills/mcp-builder/SKILL.md +1 -76
  611. package/skills/micro-interaction/SKILL.md +19 -87
  612. package/skills/mobile-design/SKILL.md +1 -76
  613. package/skills/monorepo-management/SKILL.md +1 -76
  614. package/skills/morphing-icons/SKILL.md +1 -76
  615. package/skills/motion-engineering/SKILL.md +1 -76
  616. package/skills/nextjs-react-expert/SKILL.md +1 -76
  617. package/skills/nodejs-best-practices/SKILL.md +1 -76
  618. package/skills/observability/SKILL.md +1 -76
  619. package/skills/opentelemetry-observability/SKILL.md +1 -75
  620. package/skills/page-transition-animation/SKILL.md +1 -76
  621. package/skills/parallel-agents/SKILL.md +1 -76
  622. package/skills/performance-profiling/SKILL.md +1 -76
  623. package/skills/plan-writing/SKILL.md +1 -76
  624. package/skills/platform-engineer/SKILL.md +1 -76
  625. package/skills/platform-engineering-opentofu/SKILL.md +1 -75
  626. package/skills/playwright-ai-e2e/SKILL.md +1 -75
  627. package/skills/playwright-best-practices/SKILL.md +1 -76
  628. package/skills/polish/SKILL.md +1 -76
  629. package/skills/powershell-windows/SKILL.md +1 -76
  630. package/skills/pricing-page/SKILL.md +1 -76
  631. package/skills/product-aware-heuristics/SKILL.md +1 -76
  632. package/skills/progressive-blur/SKILL.md +1 -76
  633. package/skills/project-idioms/SKILL.md +1 -76
  634. package/skills/property-based-testing/SKILL.md +1 -75
  635. package/skills/python-patterns/SKILL.md +1 -76
  636. package/skills/python-pro/SKILL.md +1 -76
  637. package/skills/quieter/SKILL.md +1 -76
  638. package/skills/react-doctor/SKILL.md +1 -76
  639. package/skills/react-specialist/SKILL.md +1 -76
  640. package/skills/readme-builder/SKILL.md +1 -76
  641. package/skills/realtime-patterns/SKILL.md +1 -76
  642. package/skills/red-team-tactics/SKILL.md +1 -76
  643. package/skills/redesign-skill/SKILL.md +1 -76
  644. package/skills/review-animations/SKILL.md +1 -76
  645. package/skills/rust-pro/SKILL.md +1 -76
  646. package/skills/seo-fundamentals/SKILL.md +1 -76
  647. package/skills/server-management/SKILL.md +1 -76
  648. package/skills/shadcn-ui-expert/SKILL.md +1 -76
  649. package/skills/shape/SKILL.md +1 -76
  650. package/skills/skill-creator/SKILL.md +127 -86
  651. package/skills/soft-skill/SKILL.md +1 -76
  652. package/skills/sounds-on-the-web/SKILL.md +1 -76
  653. package/skills/sql-pro/SKILL.md +1 -76
  654. package/skills/supabase-postgres-best-practices/SKILL.md +1 -76
  655. package/skills/svg-animation/SKILL.md +1 -76
  656. package/skills/swiftui-expert/SKILL.md +1 -76
  657. package/skills/swiss-design/SKILL.md +1 -76
  658. package/skills/system-design-pro/SKILL.md +1 -76
  659. package/skills/systematic-debugging/SKILL.md +2 -76
  660. package/skills/systematic-debugging/condition-based-waiting.md +14 -9
  661. package/skills/systematic-debugging/defense-in-depth.md +9 -3
  662. package/skills/systematic-debugging/root-cause-tracing.md +14 -0
  663. package/skills/tailwind-patterns/SKILL.md +1 -76
  664. package/skills/taste-skill/SKILL.md +1 -76
  665. package/skills/tdd-workflow/SKILL.md +8 -82
  666. package/skills/test-result-analyzer/SKILL.md +1 -76
  667. package/skills/testing-patterns/SKILL.md +1 -76
  668. package/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
  669. package/skills/thinking-protocol/SKILL.md +1 -77
  670. package/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
  671. package/skills/transitions-dev/SKILL.md +1 -76
  672. package/skills/trend-researcher/SKILL.md +1 -76
  673. package/skills/typescript-advanced/SKILL.md +1 -76
  674. package/skills/typeset/SKILL.md +1 -76
  675. package/skills/ui-reasoning-engine/SKILL.md +1 -76
  676. package/skills/ui-skill-packs/SKILL.md +1 -76
  677. package/skills/ui-skills-root/SKILL.md +1 -76
  678. package/skills/ui-ux-pro-max/SKILL.md +1 -76
  679. package/skills/ui-ux-researcher/SKILL.md +1 -76
  680. package/skills/vector-search-pgvector/SKILL.md +1 -75
  681. package/skills/verification-before-completion/SKILL.md +20 -91
  682. package/skills/vue-expert/SKILL.md +1 -76
  683. package/skills/vulnerability-scanner/SKILL.md +1 -76
  684. package/skills/web-accessibility-auditor/SKILL.md +1 -76
  685. package/skills/web-design-guidelines/SKILL.md +1 -76
  686. package/skills/web-quality-audit/SKILL.md +1 -76
  687. package/skills/webapp-testing/SKILL.md +1 -76
  688. package/skills/webgpu-performance/SKILL.md +1 -76
  689. package/skills/whimsy-injector/SKILL.md +1 -76
  690. package/skills/workflow-optimizer/SKILL.md +1 -76
  691. package/skills/zero-trust-passkeys/SKILL.md +1 -75
@@ -28,7 +28,7 @@ let C = {
28
28
  BLUE: '\x1b[94m',
29
29
  BOLD: '\x1b[1m',
30
30
  DIM: '\x1b[2m',
31
- RESET: '\x1b[0m'
31
+ RESET: '\x1b[0m',
32
32
  };
33
33
 
34
34
  try {
@@ -51,7 +51,10 @@ function computeSha256(content) {
51
51
  }
52
52
 
53
53
  function computeInterfaceHash(signatures) {
54
- const text = signatures.map(s => `${s.kind}:${s.name}:${s.signature}`).sort().join('\n');
54
+ const text = signatures
55
+ .map(s => `${s.kind}:${s.name}:${s.signature}`)
56
+ .sort()
57
+ .join('\n');
55
58
  return crypto.createHash('sha256').update(text, 'utf8').digest('hex').substring(0, 16);
56
59
  }
57
60
 
@@ -81,62 +84,117 @@ function extractFileSkeleton(filePath, rawContent) {
81
84
  ) {
82
85
  landmines.push({
83
86
  line: idx + 1,
84
- content: trimmed
87
+ content: trimmed,
85
88
  });
86
89
  }
87
90
  });
88
91
 
89
92
  // 2. Language-Specific Parsers
90
93
  if (ext === '.ts' || ext === '.tsx' || ext === '.js' || ext === '.jsx' || ext === '.mjs') {
94
+ // Phase 1: Try Rust AST Extraction
95
+ try {
96
+ const absPath = path.resolve(process.cwd(), filePath);
97
+ let corePath = null;
98
+ try {
99
+ const { getBinaryPath } = require('../.agent/scripts/_utils');
100
+ corePath = getBinaryPath();
101
+ } catch (_) {
102
+ try {
103
+ const { getBinaryPath } = require('./_utils');
104
+ corePath = getBinaryPath();
105
+ } catch (_2) {
106
+ try {
107
+ const wrapper = require('../bin/wrapper');
108
+ corePath = wrapper.getBinaryPath ? wrapper.getBinaryPath() : null;
109
+ } catch (_3) {}
110
+ }
111
+ }
112
+
113
+ if (!corePath && process.env.TRIBUNAL_CORE_PATH && fs.existsSync(process.env.TRIBUNAL_CORE_PATH)) {
114
+ corePath = process.env.TRIBUNAL_CORE_PATH;
115
+ }
116
+
117
+ if (corePath && fs.existsSync(corePath)) {
118
+ const result = require('child_process').execSync(`"${corePath}" ast-extract --file "${absPath}"`, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
119
+ const data = JSON.parse(result);
120
+ if (data && data.success) {
121
+ // We map the Rust JSON into the exact format expected by the rest of the JS code
122
+ const mappedImports = data.imports.map(i => ({ source: i.source, specifiers: i.specifiers, line: 0 }));
123
+ const mappedExports = data.exports.map(e => ({ kind: e.kind, name: e.name, signature: e.signature, line: 0 }));
124
+ const mappedTypes = data.types.map(t => ({ kind: t.kind, name: t.name, signature: t.signature, line: 0 }));
125
+
126
+ return {
127
+ imports: mappedImports,
128
+ exports: mappedExports,
129
+ types: mappedTypes,
130
+ landmines: data.landmines,
131
+ interfaceHash: computeInterfaceHash(mappedExports.concat(mappedTypes))
132
+ };
133
+ }
134
+ }
135
+ } catch(e) {
136
+ // Silent fallback to Regex parsing
137
+ }
138
+
91
139
  lines.forEach((line, idx) => {
92
140
  const trimmed = line.trim();
93
141
 
94
142
  // Imports
95
- const importMatch = trimmed.match(/^import\s+(?:type\s+)?(?:(.+?)\s+from\s+)?['"]([^'"]+)['"]/);
143
+ const importMatch = trimmed.match(
144
+ /^import\s+(?:type\s+)?(?:(.+?)\s+from\s+)?['"]([^'"]+)['"]/,
145
+ );
96
146
  if (importMatch) {
97
147
  imports.push({
98
148
  source: importMatch[2],
99
149
  specifiers: importMatch[1] ? importMatch[1].trim() : '*',
100
- line: idx + 1
150
+ line: idx + 1,
101
151
  });
102
152
  }
103
- const requireMatch = trimmed.match(/(?:const|let|var)\s+(.+?)\s*=\s*require\(['"]([^'"]+)['"]\)/);
153
+ const requireMatch = trimmed.match(
154
+ /(?:const|let|var)\s+(.+?)\s*=\s*require\(['"]([^'"]+)['"]\)/,
155
+ );
104
156
  if (requireMatch) {
105
157
  imports.push({
106
158
  source: requireMatch[2],
107
159
  specifiers: requireMatch[1].trim(),
108
- line: idx + 1
160
+ line: idx + 1,
109
161
  });
110
162
  }
111
163
 
112
164
  // Exports
113
- const exportFunc = trimmed.match(/^export\s+(?:default\s+)?(?:async\s+)?function\s+(\w+)\s*(\(.*?\))/);
165
+ const exportFunc = trimmed.match(
166
+ /^export\s+(?:default\s+)?(?:async\s+)?function\s+(\w+)\s*(\(.*?\))/,
167
+ );
114
168
  if (exportFunc) {
115
169
  exports.push({
116
170
  kind: 'function',
117
171
  name: exportFunc[1],
118
172
  signature: `function ${exportFunc[1]}${exportFunc[2]}`,
119
- line: idx + 1
173
+ line: idx + 1,
120
174
  });
121
175
  }
122
176
 
123
- const exportConst = trimmed.match(/^export\s+const\s+(\w+)(?:\s*:\s*([^=]+))?\s*=\s*(?:async\s+)?(?:\((.*?)\)|(\w+))\s*=>/);
177
+ const exportConst = trimmed.match(
178
+ /^export\s+const\s+(\w+)(?:\s*:\s*([^=]+))?\s*=\s*(?:async\s+)?(?:\((.*?)\)|(\w+))\s*=>/,
179
+ );
124
180
  if (exportConst) {
125
181
  exports.push({
126
182
  kind: 'arrow_function',
127
183
  name: exportConst[1],
128
184
  signature: `const ${exportConst[1]}: (${exportConst[3] || exportConst[4] || ''}) => ...`,
129
- line: idx + 1
185
+ line: idx + 1,
130
186
  });
131
187
  }
132
188
 
133
- const exportClass = trimmed.match(/^export\s+(?:default\s+)?class\s+(\w+)(?:\s+extends\s+(\w+))?/);
189
+ const exportClass = trimmed.match(
190
+ /^export\s+(?:default\s+)?class\s+(\w+)(?:\s+extends\s+(\w+))?/,
191
+ );
134
192
  if (exportClass) {
135
193
  exports.push({
136
194
  kind: 'class',
137
195
  name: exportClass[1],
138
196
  signature: `class ${exportClass[1]}${exportClass[2] ? ' extends ' + exportClass[2] : ''}`,
139
- line: idx + 1
197
+ line: idx + 1,
140
198
  });
141
199
  }
142
200
 
@@ -147,17 +205,19 @@ function extractFileSkeleton(filePath, rawContent) {
147
205
  kind: 'type',
148
206
  name: exportType[1],
149
207
  signature: trimmed.replace(/;?$/, ''),
150
- line: idx + 1
208
+ line: idx + 1,
151
209
  });
152
210
  }
153
211
 
154
- const exportInterface = trimmed.match(/^export\s+interface\s+(\w+)(?:<.*?>)?(?:\s+extends\s+.*?)?\s*\{?/);
212
+ const exportInterface = trimmed.match(
213
+ /^export\s+interface\s+(\w+)(?:<.*?>)?(?:\s+extends\s+.*?)?\s*\{?/,
214
+ );
155
215
  if (exportInterface) {
156
216
  types.push({
157
217
  kind: 'interface',
158
218
  name: exportInterface[1],
159
219
  signature: trimmed.replace(/\{?$/, '').trim(),
160
- line: idx + 1
220
+ line: idx + 1,
161
221
  });
162
222
  }
163
223
  });
@@ -171,18 +231,20 @@ function extractFileSkeleton(filePath, rawContent) {
171
231
  imports.push({
172
232
  source: useMatch[1].trim(),
173
233
  specifiers: useMatch[1].trim(),
174
- line: idx + 1
234
+ line: idx + 1,
175
235
  });
176
236
  }
177
237
 
178
238
  // Public Functions
179
- const pubFn = trimmed.match(/^pub(?:\(.*?\))?\s+(?:async\s+)?fn\s+(\w+)(?:<.*?>)?\s*(\(.*?\))(?:\s*->\s*([^{;]+))?/);
239
+ const pubFn = trimmed.match(
240
+ /^pub(?:\(.*?\))?\s+(?:async\s+)?fn\s+(\w+)(?:<.*?>)?\s*(\(.*?\))(?:\s*->\s*([^{;]+))?/,
241
+ );
180
242
  if (pubFn) {
181
243
  exports.push({
182
244
  kind: 'function',
183
245
  name: pubFn[1],
184
246
  signature: `pub fn ${pubFn[1]}${pubFn[2]}${pubFn[3] ? ' -> ' + pubFn[3].trim() : ''}`,
185
- line: idx + 1
247
+ line: idx + 1,
186
248
  });
187
249
  }
188
250
 
@@ -193,7 +255,7 @@ function extractFileSkeleton(filePath, rawContent) {
193
255
  kind: 'struct',
194
256
  name: pubStruct[1],
195
257
  signature: `pub struct ${pubStruct[1]}`,
196
- line: idx + 1
258
+ line: idx + 1,
197
259
  });
198
260
  }
199
261
 
@@ -203,7 +265,7 @@ function extractFileSkeleton(filePath, rawContent) {
203
265
  kind: 'enum',
204
266
  name: pubEnum[1],
205
267
  signature: `pub enum ${pubEnum[1]}`,
206
- line: idx + 1
268
+ line: idx + 1,
207
269
  });
208
270
  }
209
271
 
@@ -213,7 +275,7 @@ function extractFileSkeleton(filePath, rawContent) {
213
275
  kind: 'trait',
214
276
  name: pubTrait[1],
215
277
  signature: `pub trait ${pubTrait[1]}`,
216
- line: idx + 1
278
+ line: idx + 1,
217
279
  });
218
280
  }
219
281
  });
@@ -226,17 +288,19 @@ function extractFileSkeleton(filePath, rawContent) {
226
288
  imports.push({
227
289
  source: importMatch[1] || importMatch[2],
228
290
  specifiers: importMatch[2],
229
- line: idx + 1
291
+ line: idx + 1,
230
292
  });
231
293
  }
232
294
 
233
- const defMatch = trimmed.match(/^(?:async\s+)?def\s+([a-zA-Z_]\w*)\s*(\(.*?\))(?:\s*->\s*([^:]+))?:/);
295
+ const defMatch = trimmed.match(
296
+ /^(?:async\s+)?def\s+([a-zA-Z_]\w*)\s*(\(.*?\))(?:\s*->\s*([^:]+))?:/,
297
+ );
234
298
  if (defMatch && !defMatch[1].startsWith('_')) {
235
299
  exports.push({
236
300
  kind: 'function',
237
301
  name: defMatch[1],
238
302
  signature: `def ${defMatch[1]}${defMatch[2]}${defMatch[3] ? ' -> ' + defMatch[3].trim() : ''}`,
239
- line: idx + 1
303
+ line: idx + 1,
240
304
  });
241
305
  }
242
306
 
@@ -246,7 +310,7 @@ function extractFileSkeleton(filePath, rawContent) {
246
310
  kind: 'class',
247
311
  name: classMatch[1],
248
312
  signature: `class ${classMatch[1]}${classMatch[2] ? '(' + classMatch[2] + ')' : ''}`,
249
- line: idx + 1
313
+ line: idx + 1,
250
314
  });
251
315
  }
252
316
  });
@@ -260,7 +324,7 @@ function extractFileSkeleton(filePath, rawContent) {
260
324
  exports,
261
325
  types,
262
326
  landmines,
263
- interfaceHash
327
+ interfaceHash,
264
328
  };
265
329
  }
266
330
 
@@ -283,13 +347,21 @@ function findInboundCallers(targetFilePath, exportNames, workspaceRoot = process
283
347
  if (!token || token.length < 3) continue;
284
348
  try {
285
349
  const cmd = `git grep -n -I "${token}" -- ":!docs/" ":!node_modules/" ":!dist/" ":!target/" ":!*.lock"`;
286
- const res = execSync(cmd, { cwd: workspaceRoot, stdio: ['ignore', 'pipe', 'ignore'], encoding: 'utf8' });
350
+ const res = execSync(cmd, {
351
+ cwd: workspaceRoot,
352
+ stdio: ['ignore', 'pipe', 'ignore'],
353
+ encoding: 'utf8',
354
+ });
287
355
  if (res) grepOutputs.push(...res.split('\n').filter(Boolean));
288
356
  } catch {
289
357
  // Ripgrep fallback
290
358
  try {
291
359
  const cmd = `rg -n --no-heading --color=never "${token}" -g "!docs/**" -g "!node_modules/**" -g "!target/**" -g "!dist/**"`;
292
- const res = execSync(cmd, { cwd: workspaceRoot, stdio: ['ignore', 'pipe', 'ignore'], encoding: 'utf8' });
360
+ const res = execSync(cmd, {
361
+ cwd: workspaceRoot,
362
+ stdio: ['ignore', 'pipe', 'ignore'],
363
+ encoding: 'utf8',
364
+ });
293
365
  if (res) grepOutputs.push(...res.split('\n').filter(Boolean));
294
366
  } catch {
295
367
  // Silent catch
@@ -310,7 +382,11 @@ function findInboundCallers(targetFilePath, exportNames, workspaceRoot = process
310
382
  const lineContent = parts.slice(2).join(':').trim();
311
383
 
312
384
  // Ignore self-references and context docs
313
- if (callerFile === relativeTarget || callerFile.includes('.context.md') || callerFile.includes('INDEX.md')) {
385
+ if (
386
+ callerFile === relativeTarget ||
387
+ callerFile.includes('.context.md') ||
388
+ callerFile.includes('INDEX.md')
389
+ ) {
314
390
  continue;
315
391
  }
316
392
 
@@ -322,7 +398,10 @@ function findInboundCallers(targetFilePath, exportNames, workspaceRoot = process
322
398
  file: callerFile,
323
399
  line: lineNum,
324
400
  snippet: lineContent.substring(0, 100),
325
- isDirectImport: lineContent.includes('import') || lineContent.includes('require') || lineContent.includes('use ')
401
+ isDirectImport:
402
+ lineContent.includes('import') ||
403
+ lineContent.includes('require') ||
404
+ lineContent.includes('use '),
326
405
  });
327
406
 
328
407
  if (callers.length >= 12) break; // Cap callers for token efficiency
@@ -338,25 +417,30 @@ function discoverTests(targetFilePath, workspaceRoot = process.cwd()) {
338
417
  const baseName = path.basename(targetFilePath);
339
418
  const stem = baseName.replace(/\.[^.]+$/, '');
340
419
 
341
- const testPatterns = [
342
- `${stem}.test.`,
343
- `${stem}.spec.`,
344
- `${stem}_test.`,
345
- `test_${stem}.`
346
- ];
420
+ const testPatterns = [`${stem}.test.`, `${stem}.spec.`, `${stem}_test.`, `test_${stem}.`];
347
421
 
348
422
  function walk(dir) {
349
423
  if (!fs.existsSync(dir)) return;
350
424
  try {
351
425
  const entries = fs.readdirSync(dir, { withFileTypes: true });
352
426
  for (const entry of entries) {
353
- if (entry.name === 'node_modules' || entry.name === 'target' || entry.name === '.git' || entry.name === 'dist') {
427
+ if (
428
+ entry.name === 'node_modules' ||
429
+ entry.name === 'target' ||
430
+ entry.name === '.git' ||
431
+ entry.name === 'dist'
432
+ ) {
354
433
  continue;
355
434
  }
356
435
  const full = path.join(dir, entry.name);
357
436
  if (entry.isDirectory()) {
358
437
  // Only walk tests dirs or immediate directories
359
- if (entry.name === 'tests' || entry.name === '__tests__' || entry.name === 'test' || entry.name === 'crates') {
438
+ if (
439
+ entry.name === 'tests' ||
440
+ entry.name === '__tests__' ||
441
+ entry.name === 'test' ||
442
+ entry.name === 'crates'
443
+ ) {
360
444
  walk(full);
361
445
  }
362
446
  } else if (entry.isFile()) {
@@ -389,13 +473,27 @@ function resolveSkills(targetFilePath, content) {
389
473
  else skills.push('clean-code');
390
474
  }
391
475
 
392
- if (lowerContent.includes('auth') || lowerContent.includes('jwt') || lowerContent.includes('token') || lowerContent.includes('crypto')) {
476
+ if (
477
+ lowerContent.includes('auth') ||
478
+ lowerContent.includes('jwt') ||
479
+ lowerContent.includes('token') ||
480
+ lowerContent.includes('crypto')
481
+ ) {
393
482
  skills.push('backend-security-expert');
394
483
  }
395
- if (lowerContent.includes('query') || lowerContent.includes('prisma') || lowerContent.includes('sql') || lowerContent.includes('database')) {
484
+ if (
485
+ lowerContent.includes('query') ||
486
+ lowerContent.includes('prisma') ||
487
+ lowerContent.includes('sql') ||
488
+ lowerContent.includes('database')
489
+ ) {
396
490
  skills.push('database-architect');
397
491
  }
398
- if (lowerContent.includes('compress') || lowerContent.includes('tokens') || lowerContent.includes('prompt')) {
492
+ if (
493
+ lowerContent.includes('compress') ||
494
+ lowerContent.includes('tokens') ||
495
+ lowerContent.includes('prompt')
496
+ ) {
399
497
  skills.push('context-engineering-pro');
400
498
  }
401
499
 
@@ -426,7 +524,9 @@ function getDocsDir(workspaceRoot = process.cwd()) {
426
524
  const local = path.join(workspaceRoot, 'docs', 'context');
427
525
  if (fs.existsSync(local)) {
428
526
  try {
429
- const files = fs.readdirSync(local).filter(f => f.endsWith('.context.md') || f.endsWith('.bridge.md'));
527
+ const files = fs
528
+ .readdirSync(local)
529
+ .filter(f => f.endsWith('.context.md') || f.endsWith('.bridge.md'));
430
530
  if (files.length > 0) return local;
431
531
  } catch {
432
532
  // fallback
@@ -435,7 +535,9 @@ function getDocsDir(workspaceRoot = process.cwd()) {
435
535
  const parent = path.join(workspaceRoot, '..', 'docs', 'context');
436
536
  if (fs.existsSync(parent)) {
437
537
  try {
438
- const files = fs.readdirSync(parent).filter(f => f.endsWith('.context.md') || f.endsWith('.bridge.md'));
538
+ const files = fs
539
+ .readdirSync(parent)
540
+ .filter(f => f.endsWith('.context.md') || f.endsWith('.bridge.md'));
439
541
  if (files.length > 0) return parent;
440
542
  } catch {
441
543
  // fallback
@@ -463,10 +565,17 @@ function analyzeSingleFile(targetPath, workspaceRoot = process.cwd()) {
463
565
 
464
566
  // Determine domain layer
465
567
  let domainLayer = 'Core Logic / Utility';
466
- if (relativePath.includes('api') || relativePath.includes('route')) domainLayer = 'API / Gateway Layer';
568
+ if (relativePath.includes('api') || relativePath.includes('route'))
569
+ domainLayer = 'API / Gateway Layer';
467
570
  else if (relativePath.includes('service')) domainLayer = 'Service / Business Logic';
468
- else if (relativePath.includes('model') || relativePath.includes('schema') || relativePath.includes('db')) domainLayer = 'Data / Persistence Layer';
469
- else if (relativePath.includes('components') || relativePath.includes('ui')) domainLayer = 'UI / Presentation Layer';
571
+ else if (
572
+ relativePath.includes('model') ||
573
+ relativePath.includes('schema') ||
574
+ relativePath.includes('db')
575
+ )
576
+ domainLayer = 'Data / Persistence Layer';
577
+ else if (relativePath.includes('components') || relativePath.includes('ui'))
578
+ domainLayer = 'UI / Presentation Layer';
470
579
  else if (relativePath.includes('commands')) domainLayer = 'Command / Dispatch Layer';
471
580
 
472
581
  return {
@@ -483,7 +592,7 @@ function analyzeSingleFile(targetPath, workspaceRoot = process.cwd()) {
483
592
  tests,
484
593
  skills,
485
594
  lineCount: rawContent.split('\n').length,
486
- byteSize: Buffer.byteLength(rawContent, 'utf8')
595
+ byteSize: Buffer.byteLength(rawContent, 'utf8'),
487
596
  };
488
597
  }
489
598
 
@@ -493,8 +602,12 @@ function analyzeMultiFileBridge(pathA, pathB, workspaceRoot = process.cwd()) {
493
602
  const metaA = analyzeSingleFile(pathA, workspaceRoot);
494
603
  const metaB = analyzeSingleFile(pathB, workspaceRoot);
495
604
 
496
- const aImportsB = metaA.imports.some(imp => imp.source.includes(path.basename(metaB.filePath).replace(/\.[^.]+$/, '')));
497
- const bImportsA = metaB.imports.some(imp => imp.source.includes(path.basename(metaA.filePath).replace(/\.[^.]+$/, '')));
605
+ const aImportsB = metaA.imports.some(imp =>
606
+ imp.source.includes(path.basename(metaB.filePath).replace(/\.[^.]+$/, '')),
607
+ );
608
+ const bImportsA = metaB.imports.some(imp =>
609
+ imp.source.includes(path.basename(metaA.filePath).replace(/\.[^.]+$/, '')),
610
+ );
498
611
 
499
612
  const sharedTypes = [];
500
613
  const typeNamesA = new Set(metaA.types.map(t => t.name));
@@ -510,8 +623,15 @@ function analyzeMultiFileBridge(pathA, pathB, workspaceRoot = process.cwd()) {
510
623
  aImportsB,
511
624
  bImportsA,
512
625
  sharedTypes,
513
- relationship: aImportsB && bImportsA ? 'Bidirectional Coupling' : aImportsB ? 'A depends on B' : bImportsA ? 'B depends on A' : 'Sibling / Peer Modules'
514
- }
626
+ relationship:
627
+ aImportsB && bImportsA
628
+ ? 'Bidirectional Coupling'
629
+ : aImportsB
630
+ ? 'A depends on B'
631
+ : bImportsA
632
+ ? 'B depends on A'
633
+ : 'Sibling / Peer Modules',
634
+ },
515
635
  };
516
636
  }
517
637
 
@@ -529,7 +649,15 @@ function analyzeDirectory(dirPath, workspaceRoot = process.cwd()) {
529
649
  let totalFiles = 0;
530
650
  const langCounts = {};
531
651
 
532
- const ignoreSet = new Set(['node_modules', 'target', '.git', 'dist', 'coverage', '.gemini', 'build']);
652
+ const ignoreSet = new Set([
653
+ 'node_modules',
654
+ 'target',
655
+ '.git',
656
+ 'dist',
657
+ 'coverage',
658
+ '.gemini',
659
+ 'build',
660
+ ]);
533
661
 
534
662
  // Check top-level manifests
535
663
  if (fs.existsSync(path.join(absDir, 'package.json'))) manifests.push('package.json');
@@ -547,7 +675,7 @@ function analyzeDirectory(dirPath, workspaceRoot = process.cwd()) {
547
675
  subsystems.push({
548
676
  name: entry.name,
549
677
  fileCount: subFiles.length,
550
- keySample: subFiles.slice(0, 3).join(', ')
678
+ keySample: subFiles.slice(0, 3).join(', '),
551
679
  });
552
680
  } catch {
553
681
  // Ignore unreadable
@@ -565,28 +693,38 @@ function analyzeDirectory(dirPath, workspaceRoot = process.cwd()) {
565
693
  manifests,
566
694
  subsystems,
567
695
  directFiles: totalFiles,
568
- langCounts
696
+ langCounts,
569
697
  };
570
698
  }
571
699
 
572
700
  // ── Markdown Dossier Generators ─────────────────────────────────────────────
573
701
 
574
702
  function renderSingleFileDossier(data) {
575
- const callersTable = data.callers.length > 0
576
- ? data.callers.map(c => `| \`${c.file}:${c.line}\` | \`${c.snippet}\` | ${c.isDirectImport ? 'Direct Import' : 'Symbol Reference'} |`).join('\n')
577
- : '| *None detected (potential root entrypoint or test)* | - | - |';
578
-
579
- const typesTable = data.exports.concat(data.types).length > 0
580
- ? data.exports.concat(data.types).slice(0, 10).map(s => `| \`${s.name}\` | \`${s.kind}\` | \`${s.signature}\` | Line ${s.line} |`).join('\n')
581
- : '| *No explicit exported symbols detected* | - | - | - |';
582
-
583
- const landminesContent = data.landmines.length > 0
584
- ? data.landmines.map(l => `> [!CAUTION]\n> **Line ${l.line}:** \`${l.content}\``).join('\n\n')
585
- : '> [!NOTE]\n> No explicit defensive comments (`// VERIFY`, `// NOTE`, `// HACK`) found in source code.';
586
-
587
- const testCommand = data.tests.length > 0
588
- ? `npm test -- ${data.tests[0]}`
589
- : `npm test`;
703
+ const callersTable =
704
+ data.callers.length > 0
705
+ ? data.callers
706
+ .map(
707
+ c =>
708
+ `| \`${c.file}:${c.line}\` | \`${c.snippet}\` | ${c.isDirectImport ? 'Direct Import' : 'Symbol Reference'} |`,
709
+ )
710
+ .join('\n')
711
+ : '| *None detected (potential root entrypoint or test)* | - | - |';
712
+
713
+ const typesTable =
714
+ data.exports.concat(data.types).length > 0
715
+ ? data.exports
716
+ .concat(data.types)
717
+ .slice(0, 10)
718
+ .map(s => `| \`${s.name}\` | \`${s.kind}\` | \`${s.signature}\` | Line ${s.line} |`)
719
+ .join('\n')
720
+ : '| *No explicit exported symbols detected* | - | - | - |';
721
+
722
+ const landminesContent =
723
+ data.landmines.length > 0
724
+ ? data.landmines.map(l => `> [!CAUTION]\n> **Line ${l.line}:** \`${l.content}\``).join('\n\n')
725
+ : '> [!NOTE]\n> No explicit defensive comments (`// VERIFY`, `// NOTE`, `// HACK`) found in source code.';
726
+
727
+ const testCommand = data.tests.length > 0 ? `npm test -- ${data.tests[0]}` : `npm test`;
590
728
 
591
729
  return `---
592
730
  version: 2.0.0
@@ -607,7 +745,10 @@ ${data.tests.length > 0 ? data.tests.map(t => ` - ${t}`).join('\n') : ' - none
607
745
  > \`\`\`yaml
608
746
  > Target: ${data.filePath} (${data.domainLayer})
609
747
  > Role: Core logic for ${path.basename(data.filePath)}.
610
- > Exports: [${data.exports.map(e => e.name).slice(0, 6).join(', ')}]
748
+ > Exports: [${data.exports
749
+ .map(e => e.name)
750
+ .slice(0, 6)
751
+ .join(', ')}]
611
752
  > Inbound Callers: ${data.callers.length} active consumer sites.
612
753
  > Invariant Check: Verify test passing before merge: ${testCommand}
613
754
  > \`\`\`
@@ -643,17 +784,37 @@ graph LR
643
784
  classDef ext fill:#0f172a,stroke:#64748b,stroke-width:1px,color:#94a3b8;
644
785
 
645
786
  subgraph Inbound Callers
646
- ${data.callers.slice(0, 4).map((c, i) => ` C${i}["${c.file}"]:::ext`).join('\n') || ' C0["Entrypoint / CLI"]:::ext'}
787
+ ${
788
+ data.callers
789
+ .slice(0, 4)
790
+ .map((c, i) => ` C${i}["${c.file}"]:::ext`)
791
+ .join('\n') || ' C0["Entrypoint / CLI"]:::ext'
792
+ }
647
793
  end
648
794
 
649
795
  T["${path.basename(data.filePath)}"]:::target
650
796
 
651
797
  subgraph Dependencies
652
- ${data.imports.slice(0, 4).map((imp, i) => ` D${i}["${imp.source}"]:::ext`).join('\n') || ' D0["Stdlib"]:::ext'}
798
+ ${
799
+ data.imports
800
+ .slice(0, 4)
801
+ .map((imp, i) => ` D${i}["${imp.source}"]:::ext`)
802
+ .join('\n') || ' D0["Stdlib"]:::ext'
803
+ }
653
804
  end
654
805
 
655
- ${data.callers.slice(0, 4).map((_, i) => ` C${i} --> T`).join('\n') || ' C0 --> T'}
656
- ${data.imports.slice(0, 4).map((_, i) => ` T --> D${i}`).join('\n') || ' T --> D0'}
806
+ ${
807
+ data.callers
808
+ .slice(0, 4)
809
+ .map((_, i) => ` C${i} --> T`)
810
+ .join('\n') || ' C0 --> T'
811
+ }
812
+ ${
813
+ data.imports
814
+ .slice(0, 4)
815
+ .map((_, i) => ` T --> D${i}`)
816
+ .join('\n') || ' T --> D0'
817
+ }
657
818
  \`\`\`
658
819
 
659
820
  ### Inbound Consumer Sites
@@ -706,9 +867,11 @@ graph LR
706
867
  \`\`\`
707
868
 
708
869
  ## 📦 Shared Types & Interfaces
709
- ${data.coupling.sharedTypes.length > 0
710
- ? data.coupling.sharedTypes.map(t => `- \`${t}\``).join('\n')
711
- : '- *No identical type names detected between modules.*'}
870
+ ${
871
+ data.coupling.sharedTypes.length > 0
872
+ ? data.coupling.sharedTypes.map(t => `- \`${t}\``).join('\n')
873
+ : '- *No identical type names detected between modules.*'
874
+ }
712
875
 
713
876
  ## 📋 Interface Alignment Summary
714
877
  - **${path.basename(data.fileA.filePath)} Exports:** ${data.fileA.exports.length} symbols.
@@ -755,7 +918,9 @@ function syncVaultIndex(workspaceRoot = process.cwd()) {
755
918
  fs.mkdirSync(docsDir, { recursive: true });
756
919
  }
757
920
 
758
- const files = fs.readdirSync(docsDir).filter(f => f.endsWith('.context.md') || f.endsWith('.bridge.md'));
921
+ const files = fs
922
+ .readdirSync(docsDir)
923
+ .filter(f => f.endsWith('.context.md') || f.endsWith('.bridge.md'));
759
924
 
760
925
  const rows = [];
761
926
  for (const f of files) {
@@ -822,7 +987,7 @@ function checkDrift(workspaceRoot = process.cwd()) {
822
987
  total: syncRes.indexedCount,
823
988
  fresh: freshCount,
824
989
  stale: staleCount,
825
- isHealthy: staleCount === 0
990
+ isHealthy: staleCount === 0,
826
991
  };
827
992
  }
828
993
 
@@ -834,11 +999,17 @@ function main() {
834
999
 
835
1000
  if (args.includes('--check')) {
836
1001
  const drift = checkDrift(workspaceRoot);
1002
+ if (args.includes('--json')) {
1003
+ console.log(JSON.stringify(drift));
1004
+ process.exit(0);
1005
+ }
837
1006
  console.log(`\n${C.BOLD}═══ Context Vault Drift Audit ═══${C.RESET}`);
838
1007
  console.log(`Total Dossiers: ${drift.total}`);
839
1008
  console.log(`🟢 Fresh: ${drift.fresh}`);
840
1009
  console.log(`🔴 Stale: ${drift.stale}`);
841
- console.log(`Status: ${drift.isHealthy ? C.GREEN + 'HEALTHY' : C.RED + 'DRIFT DETECTED'}${C.RESET}\n`);
1010
+ console.log(
1011
+ `Status: ${drift.isHealthy ? C.GREEN + 'HEALTHY' : C.RED + 'DRIFT DETECTED'}${C.RESET}\n`,
1012
+ );
842
1013
  process.exit(drift.isHealthy ? 0 : 1);
843
1014
  }
844
1015
 
@@ -922,7 +1093,9 @@ function main() {
922
1093
  }
923
1094
  }
924
1095
  } else {
925
- console.error(`${C.RED}Error: Provide --file <path>, --dir <path>, --multi <fileA> <fileB>, or --check${C.RESET}`);
1096
+ console.error(
1097
+ `${C.RED}Error: Provide --file <path>, --dir <path>, --multi <fileA> <fileB>, or --check${C.RESET}`,
1098
+ );
926
1099
  process.exit(1);
927
1100
  }
928
1101
  }
@@ -936,7 +1109,7 @@ module.exports = {
936
1109
  renderBridgeDossier,
937
1110
  renderDirectoryDossier,
938
1111
  syncVaultIndex,
939
- checkDrift
1112
+ checkDrift,
940
1113
  };
941
1114
 
942
1115
  if (require.main === module) {