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