tribunal-kit 5.8.5 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/.agent/.manifest.json +78 -0
  2. package/.agent/ARCHITECTURE.md +32 -253
  3. package/.agent/agents/accessibility-reviewer.md +66 -151
  4. package/.agent/agents/ai-code-reviewer.md +22 -2
  5. package/.agent/agents/anti-pattern-reviewer.md +99 -0
  6. package/.agent/agents/api-architect.md +19 -2
  7. package/.agent/agents/backend-specialist.md +25 -3
  8. package/.agent/agents/cloud-engineer.md +21 -0
  9. package/.agent/agents/code-archaeologist.md +20 -3
  10. package/.agent/agents/complexity-reviewer.md +22 -2
  11. package/.agent/agents/database-architect.md +24 -3
  12. package/.agent/agents/db-latency-auditor.md +22 -2
  13. package/.agent/agents/debugger.md +19 -3
  14. package/.agent/agents/dependency-reviewer.md +19 -2
  15. package/.agent/agents/devops-engineer.md +24 -3
  16. package/.agent/agents/documentation-writer.md +21 -3
  17. package/.agent/agents/explorer-agent.md +21 -3
  18. package/.agent/agents/frontend-reviewer.md +19 -3
  19. package/.agent/agents/frontend-specialist.md +72 -224
  20. package/.agent/agents/game-developer.md +22 -3
  21. package/.agent/agents/interaction-reviewer.md +118 -0
  22. package/.agent/agents/logic-reviewer.md +18 -3
  23. package/.agent/agents/minimalist-reviewer.md +98 -0
  24. package/.agent/agents/mobile-developer.md +21 -3
  25. package/.agent/agents/mobile-reviewer.md +22 -2
  26. package/.agent/agents/orchestrator.md +19 -3
  27. package/.agent/agents/penetration-tester.md +22 -3
  28. package/.agent/agents/performance-optimizer.md +21 -3
  29. package/.agent/agents/performance-reviewer.md +2 -0
  30. package/.agent/agents/precedence-reviewer.md +19 -5
  31. package/.agent/agents/product-manager.md +20 -3
  32. package/.agent/agents/product-owner.md +22 -1
  33. package/.agent/agents/product-reviewer.md +98 -0
  34. package/.agent/agents/project-planner.md +19 -3
  35. package/.agent/agents/qa-automation-engineer.md +24 -3
  36. package/.agent/agents/resilience-reviewer.md +21 -2
  37. package/.agent/agents/schema-reviewer.md +21 -2
  38. package/.agent/agents/security-auditor.md +7 -1
  39. package/.agent/agents/seo-specialist.md +18 -3
  40. package/.agent/agents/sql-reviewer.md +22 -2
  41. package/.agent/agents/supervisor-agent.md +22 -3
  42. package/.agent/agents/swarm-worker-registry.md +7 -0
  43. package/.agent/agents/system-architect.md +19 -0
  44. package/.agent/agents/test-coverage-reviewer.md +22 -2
  45. package/.agent/agents/test-engineer.md +21 -2
  46. package/.agent/agents/throughput-optimizer.md +22 -2
  47. package/.agent/agents/type-safety-reviewer.md +21 -2
  48. package/.agent/agents/ui-ux-auditor.md +44 -242
  49. package/.agent/agents/ui-visual-auditor.md +99 -0
  50. package/.agent/agents/ux-reviewer.md +104 -0
  51. package/.agent/agents/visual-reviewer.md +98 -0
  52. package/.agent/agents/vitals-reviewer.md +23 -2
  53. package/.agent/history/README.md +53 -0
  54. package/.agent/history/case-law/cases/template-case.json +19 -0
  55. package/.agent/history/integrity_manifest.json +63 -33
  56. package/.agent/history/memory/.memory.idx +2701 -1
  57. package/.agent/history/memory/MEMORY.md +179 -1
  58. package/.agent/routing_index.json +273 -690
  59. package/.agent/rules/GEMINI.md +11 -13
  60. package/.agent/rules/GEMINI_PLANNER.md +84 -0
  61. package/.agent/scripts/case_law_manager.js +2 -0
  62. package/.agent/scripts/context_broker.js +152 -0
  63. package/.agent/scripts/guardrail_engine.js +59 -4
  64. package/.agent/scripts/impact_classifier.js +167 -0
  65. package/.agent/scripts/minimal_change_engine.js +437 -0
  66. package/.agent/scripts/pipeline_engine.js +856 -0
  67. package/.agent/scripts/socratic_gate_policy.js +60 -0
  68. package/.agent/scripts/token_budget_broker.js +52 -0
  69. package/.agent/scripts/verify_all.js +13 -0
  70. package/.agent/scripts/visual_audit.js +92 -0
  71. package/.agent/skill_topic_map.json +218 -0
  72. package/.agent/skills/12-principles-of-animation/SKILL.md +19 -10
  73. package/.agent/skills/60fps-animation/SKILL.md +19 -10
  74. package/.agent/skills/accessible-animation/SKILL.md +19 -10
  75. package/.agent/skills/adapt/SKILL.md +19 -10
  76. package/.agent/skills/advanced-rag-pipelines/SKILL.md +21 -3
  77. package/.agent/skills/agent-organizer/SKILL.md +21 -7
  78. package/.agent/skills/agentic-patterns/SKILL.md +19 -7
  79. package/.agent/skills/agentic-workflows-2026/SKILL.md +76 -0
  80. package/.agent/skills/ai-app-hardening/SKILL.md +58 -0
  81. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +21 -7
  82. package/.agent/skills/animation-on-scroll/SKILL.md +19 -10
  83. package/.agent/skills/animation-systems/SKILL.md +19 -10
  84. package/.agent/skills/antfu-conventions/SKILL.md +21 -10
  85. package/.agent/skills/api-patterns/SKILL.md +21 -7
  86. package/.agent/skills/api-security-auditor/SKILL.md +21 -7
  87. package/.agent/skills/app-builder/SKILL.md +21 -7
  88. package/.agent/skills/apple-design/SKILL.md +19 -10
  89. package/.agent/skills/architecture/SKILL.md +21 -7
  90. package/.agent/skills/audit-and-fix/SKILL.md +19 -10
  91. package/.agent/skills/authentication-best-practices/SKILL.md +21 -7
  92. package/.agent/skills/backend-security-expert/SKILL.md +21 -7
  93. package/.agent/skills/baseline-ui/SKILL.md +19 -10
  94. package/.agent/skills/bash-linux/SKILL.md +21 -7
  95. package/.agent/skills/behavioral-modes/SKILL.md +19 -7
  96. package/.agent/skills/better-colors/SKILL.md +19 -10
  97. package/.agent/skills/better-ui/SKILL.md +19 -10
  98. package/.agent/skills/bolder/SKILL.md +19 -10
  99. package/.agent/skills/brainstorming/SKILL.md +17 -7
  100. package/.agent/skills/browser-native-ai/SKILL.md +19 -3
  101. package/.agent/skills/build-primitive/SKILL.md +19 -10
  102. package/.agent/skills/building-native-ui/SKILL.md +21 -7
  103. package/.agent/skills/cicd-pro/SKILL.md +21 -10
  104. package/.agent/skills/clarify/SKILL.md +19 -10
  105. package/.agent/skills/clean-code/SKILL.md +21 -7
  106. package/.agent/skills/cloud-architect/SKILL.md +21 -10
  107. package/.agent/skills/cobejs/SKILL.md +19 -10
  108. package/.agent/skills/code-review-checklist/SKILL.md +21 -7
  109. package/.agent/skills/codebase-design/SKILL.md +21 -10
  110. package/.agent/skills/colorize/SKILL.md +19 -10
  111. package/.agent/skills/compact-landing/SKILL.md +19 -10
  112. package/.agent/skills/company-logos/SKILL.md +19 -10
  113. package/.agent/skills/config-validator/SKILL.md +21 -7
  114. package/.agent/skills/containerization-pro/SKILL.md +21 -10
  115. package/.agent/skills/context-engineering-pro/SKILL.md +69 -0
  116. package/.agent/skills/create-design-md/SKILL.md +19 -10
  117. package/.agent/skills/critique/SKILL.md +19 -10
  118. package/.agent/skills/csharp-developer/SKILL.md +21 -7
  119. package/.agent/skills/data-validation-schemas/SKILL.md +21 -7
  120. package/.agent/skills/database-design/SKILL.md +21 -7
  121. package/.agent/skills/delight/SKILL.md +19 -10
  122. package/.agent/skills/deployment-procedures/SKILL.md +21 -7
  123. package/.agent/skills/design-lab/SKILL.md +21 -10
  124. package/.agent/skills/devops-engineer/SKILL.md +21 -7
  125. package/.agent/skills/devops-incident-responder/SKILL.md +21 -7
  126. package/.agent/skills/diagnosing-bugs/SKILL.md +21 -10
  127. package/.agent/skills/distill/SKILL.md +19 -10
  128. package/.agent/skills/documentation-templates/SKILL.md +21 -7
  129. package/.agent/skills/domain-modeling/SKILL.md +21 -10
  130. package/.agent/skills/duckdb-analytical-sql/SKILL.md +55 -0
  131. package/.agent/skills/edge-ai-mobile/SKILL.md +46 -0
  132. package/.agent/skills/edge-computing/SKILL.md +21 -7
  133. package/.agent/skills/emil-design-eng/SKILL.md +19 -10
  134. package/.agent/skills/error-resilience/SKILL.md +21 -7
  135. package/.agent/skills/expo-router-v4/SKILL.md +80 -0
  136. package/.agent/skills/extract-design-system/SKILL.md +21 -7
  137. package/.agent/skills/fabel-protocol/SKILL.md +19 -2
  138. package/.agent/skills/fixing-accessibility/SKILL.md +19 -10
  139. package/.agent/skills/fixing-metadata/SKILL.md +19 -10
  140. package/.agent/skills/fixing-motion-performance/SKILL.md +19 -10
  141. package/.agent/skills/framer-motion-expert/SKILL.md +19 -6
  142. package/.agent/skills/frontend-design/SKILL.md +64 -201
  143. package/.agent/skills/frontend-security-expert/SKILL.md +21 -7
  144. package/.agent/skills/game-design-expert/SKILL.md +21 -7
  145. package/.agent/skills/game-engineering-expert/SKILL.md +21 -7
  146. package/.agent/skills/generative-ui-expert/SKILL.md +19 -3
  147. package/.agent/skills/geo-fundamentals/SKILL.md +21 -7
  148. package/.agent/skills/git-pro/SKILL.md +21 -10
  149. package/.agent/skills/github-operations/SKILL.md +21 -7
  150. package/.agent/skills/gpt-taste/SKILL.md +19 -10
  151. package/.agent/skills/gsap-core/SKILL.md +21 -4
  152. package/.agent/skills/gsap-frameworks/SKILL.md +21 -4
  153. package/.agent/skills/gsap-performance/SKILL.md +20 -5
  154. package/.agent/skills/gsap-plugins/SKILL.md +20 -5
  155. package/.agent/skills/gsap-react/SKILL.md +20 -5
  156. package/.agent/skills/gsap-scrolltrigger/SKILL.md +21 -4
  157. package/.agent/skills/gsap-timeline/SKILL.md +20 -5
  158. package/.agent/skills/gsap-utils/SKILL.md +20 -5
  159. package/.agent/skills/harden/SKILL.md +19 -10
  160. package/.agent/skills/harness-protocol/SKILL.md +20 -4
  161. package/.agent/skills/i18n-localization/SKILL.md +21 -7
  162. package/.agent/skills/impeccable/SKILL.md +19 -10
  163. package/.agent/skills/improve-codebase-architecture/SKILL.md +21 -10
  164. package/.agent/skills/improve-ui/SKILL.md +19 -10
  165. package/.agent/skills/intelligent-routing/SKILL.md +19 -7
  166. package/.agent/skills/knowledge-graph/SKILL.md +20 -4
  167. package/.agent/skills/landing-page/SKILL.md +20 -10
  168. package/.agent/skills/lint-and-validate/SKILL.md +21 -7
  169. package/.agent/skills/llm-engineering/SKILL.md +21 -7
  170. package/.agent/skills/local-first/SKILL.md +21 -7
  171. package/.agent/skills/local-first-architecture/SKILL.md +19 -10
  172. package/.agent/skills/lottie-animation/SKILL.md +19 -10
  173. package/.agent/skills/marquee-loop/SKILL.md +19 -10
  174. package/.agent/skills/masked-reveal/SKILL.md +19 -10
  175. package/.agent/skills/mcp-builder/SKILL.md +21 -7
  176. package/.agent/skills/micro-interaction/SKILL.md +19 -10
  177. package/.agent/skills/mobile-design/SKILL.md +21 -6
  178. package/.agent/skills/monorepo-management/SKILL.md +21 -7
  179. package/.agent/skills/morphing-icons/SKILL.md +19 -10
  180. package/.agent/skills/motion-engineering/SKILL.md +20 -7
  181. package/.agent/skills/nextjs-react-expert/SKILL.md +19 -7
  182. package/.agent/skills/nodejs-best-practices/SKILL.md +21 -7
  183. package/.agent/skills/observability/SKILL.md +21 -7
  184. package/.agent/skills/opentelemetry-observability/SKILL.md +58 -0
  185. package/.agent/skills/page-transition-animation/SKILL.md +19 -10
  186. package/.agent/skills/parallel-agents/SKILL.md +23 -7
  187. package/.agent/skills/performance-profiling/SKILL.md +21 -7
  188. package/.agent/skills/plan-writing/SKILL.md +21 -7
  189. package/.agent/skills/platform-engineer/SKILL.md +21 -7
  190. package/.agent/skills/platform-engineering-opentofu/SKILL.md +67 -0
  191. package/.agent/skills/playwright-ai-e2e/SKILL.md +59 -0
  192. package/.agent/skills/playwright-best-practices/SKILL.md +21 -7
  193. package/.agent/skills/polish/SKILL.md +19 -10
  194. package/.agent/skills/powershell-windows/SKILL.md +21 -7
  195. package/.agent/skills/pricing-page/SKILL.md +19 -10
  196. package/.agent/skills/product-aware-heuristics/SKILL.md +358 -0
  197. package/.agent/skills/progressive-blur/SKILL.md +19 -10
  198. package/.agent/skills/project-idioms/SKILL.md +20 -8
  199. package/.agent/skills/property-based-testing/SKILL.md +60 -0
  200. package/.agent/skills/python-patterns/SKILL.md +21 -7
  201. package/.agent/skills/python-pro/SKILL.md +21 -6
  202. package/.agent/skills/quieter/SKILL.md +19 -10
  203. package/.agent/skills/react-doctor/SKILL.md +19 -10
  204. package/.agent/skills/react-specialist/SKILL.md +19 -6
  205. package/.agent/skills/readme-builder/SKILL.md +21 -7
  206. package/.agent/skills/realtime-patterns/SKILL.md +21 -7
  207. package/.agent/skills/red-team-tactics/SKILL.md +21 -7
  208. package/.agent/skills/redesign-skill/SKILL.md +19 -10
  209. package/.agent/skills/review-animations/SKILL.md +21 -10
  210. package/.agent/skills/rust-pro/SKILL.md +21 -7
  211. package/.agent/skills/seo-fundamentals/SKILL.md +21 -7
  212. package/.agent/skills/server-management/SKILL.md +21 -7
  213. package/.agent/skills/shadcn-ui-expert/SKILL.md +21 -7
  214. package/.agent/skills/shape/SKILL.md +19 -10
  215. package/.agent/skills/skill-creator/SKILL.md +21 -7
  216. package/.agent/skills/soft-skill/SKILL.md +19 -10
  217. package/.agent/skills/sounds-on-the-web/SKILL.md +19 -10
  218. package/.agent/skills/sql-pro/SKILL.md +21 -7
  219. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +21 -7
  220. package/.agent/skills/svg-animation/SKILL.md +19 -10
  221. package/.agent/skills/swiftui-expert/SKILL.md +21 -7
  222. package/.agent/skills/swiss-design/SKILL.md +19 -10
  223. package/.agent/skills/system-design-pro/SKILL.md +21 -9
  224. package/.agent/skills/systematic-debugging/SKILL.md +21 -7
  225. package/.agent/skills/tailwind-patterns/SKILL.md +21 -7
  226. package/.agent/skills/taste-skill/SKILL.md +19 -10
  227. package/.agent/skills/tdd-workflow/SKILL.md +21 -10
  228. package/.agent/skills/test-result-analyzer/SKILL.md +18 -6
  229. package/.agent/skills/testing-patterns/SKILL.md +21 -7
  230. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +21 -10
  231. package/.agent/skills/thinking-protocol/SKILL.md +20 -8
  232. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +19 -10
  233. package/.agent/skills/transitions-dev/SKILL.md +19 -10
  234. package/.agent/skills/trend-researcher/SKILL.md +17 -6
  235. package/.agent/skills/typescript-advanced/SKILL.md +21 -7
  236. package/.agent/skills/typeset/SKILL.md +19 -10
  237. package/.agent/skills/ui-reasoning-engine/SKILL.md +154 -0
  238. package/.agent/skills/ui-skill-packs/SKILL.md +77 -0
  239. package/.agent/skills/ui-skills-root/SKILL.md +21 -9
  240. package/.agent/skills/ui-ux-pro-max/SKILL.md +62 -583
  241. package/.agent/skills/ui-ux-researcher/SKILL.md +17 -6
  242. package/.agent/skills/vector-search-pgvector/SKILL.md +77 -0
  243. package/.agent/skills/vue-expert/SKILL.md +19 -6
  244. package/.agent/skills/vulnerability-scanner/SKILL.md +21 -7
  245. package/.agent/skills/web-accessibility-auditor/SKILL.md +21 -7
  246. package/.agent/skills/web-design-guidelines/SKILL.md +32 -206
  247. package/.agent/skills/web-quality-audit/SKILL.md +19 -10
  248. package/.agent/skills/webapp-testing/SKILL.md +21 -7
  249. package/.agent/skills/webgpu-performance/SKILL.md +19 -3
  250. package/.agent/skills/whimsy-injector/SKILL.md +20 -10
  251. package/.agent/skills/workflow-optimizer/SKILL.md +16 -6
  252. package/.agent/skills/zero-trust-passkeys/SKILL.md +85 -0
  253. package/.agent/templates/DESIGN.md +292 -0
  254. package/.agent/templates/design-tokens.json +137 -0
  255. package/.agent/workflows/acf.md +13 -6
  256. package/.agent/workflows/api-tester.md +15 -8
  257. package/.agent/workflows/audit.md +19 -8
  258. package/.agent/workflows/brainstorm.md +14 -9
  259. package/.agent/workflows/changelog.md +14 -8
  260. package/.agent/workflows/create.md +16 -8
  261. package/.agent/workflows/debug.md +15 -10
  262. package/.agent/workflows/deploy.md +16 -8
  263. package/.agent/workflows/enhance.md +15 -10
  264. package/.agent/workflows/fix.md +15 -8
  265. package/.agent/workflows/generate.md +17 -11
  266. package/.agent/workflows/marathon.md +15 -8
  267. package/.agent/workflows/migrate.md +16 -8
  268. package/.agent/workflows/minimal.md +94 -0
  269. package/.agent/workflows/orchestrate.md +15 -8
  270. package/.agent/workflows/performance-benchmarker.md +15 -8
  271. package/.agent/workflows/pipeline.md +155 -0
  272. package/.agent/workflows/plan.md +14 -10
  273. package/.agent/workflows/preview.md +14 -7
  274. package/.agent/workflows/refactor.md +16 -8
  275. package/.agent/workflows/review-ai.md +15 -7
  276. package/.agent/workflows/review.md +15 -7
  277. package/.agent/workflows/session.md +14 -7
  278. package/.agent/workflows/status.md +13 -7
  279. package/.agent/workflows/strengthen-skills.md +15 -6
  280. package/.agent/workflows/super-prompt.md +19 -10
  281. package/.agent/workflows/swarm.md +15 -7
  282. package/.agent/workflows/test.md +15 -8
  283. package/.agent/workflows/tribunal-backend.md +16 -9
  284. package/.agent/workflows/tribunal-database.md +15 -8
  285. package/.agent/workflows/tribunal-frontend.md +26 -11
  286. package/.agent/workflows/tribunal-full.md +41 -26
  287. package/.agent/workflows/tribunal-mobile.md +15 -8
  288. package/.agent/workflows/tribunal-performance.md +15 -8
  289. package/.agent/workflows/tribunal-speed.md +16 -9
  290. package/.agent/workflows/tribunal-ui.md +82 -0
  291. package/.agent/workflows/ui-ux-pro-max.md +51 -107
  292. package/CONTRIBUTING.md +2 -2
  293. package/README.md +82 -60
  294. package/SECURITY.md +3 -3
  295. package/bin/mcp-server.js +253 -57
  296. package/bin/wrapper.js +24 -10
  297. package/dist/cli.js +29 -1
  298. package/dist/commands/compile.js +7 -0
  299. package/dist/commands/context.js +8 -3
  300. package/dist/commands/graph.js +8 -2
  301. package/dist/commands/init.js +13 -2
  302. package/dist/commands/memory.js +120 -68
  303. package/dist/commands/minimal.js +71 -0
  304. package/dist/commands/native.js +36 -0
  305. package/dist/commands/optimize.js +15 -5
  306. package/dist/esm/index.mjs +58 -32
  307. package/dist/index.d.ts +50 -2
  308. package/dist/utils/fs.js +10 -4
  309. package/dist/utils/helpers.js +10 -1
  310. package/dist/utils/version.js +9 -2
  311. package/mcp_config.json +10 -1
  312. package/package.json +16 -10
  313. package/scripts/benchmark.js +16 -0
  314. package/scripts/sync-version.js +1 -1
  315. package/scripts/visual_audit.js +126 -0
@@ -119,18 +119,25 @@ function fetchLatestVersion(currentVersion) {
119
119
  *
120
120
  * Returns true if a re-invoke happened (caller should exit), false otherwise.
121
121
  */
122
+ let hasRegisteredUpdateNotifier = false;
123
+
122
124
  async function autoUpdateCheck(originalArgs, currentVersion) {
123
125
  // Recursion guard: if we're already a re-invoked process, skip
124
126
  if (process.env.TK_SKIP_UPDATE_CHECK === '1') {
125
127
  return false;
126
128
  }
127
129
 
130
+ if (hasRegisteredUpdateNotifier) {
131
+ return false;
132
+ }
133
+ hasRegisteredUpdateNotifier = true;
134
+
128
135
  // Fire the fetch but DON'T await it immediately — let the command run first
129
136
  const versionPromise = fetchLatestVersion(currentVersion);
130
137
 
131
- // Register a process.on('beforeExit') hook to show the update notification
138
+ // Register a process.once('beforeExit') hook to show the update notification
132
139
  // AFTER the command has finished executing
133
- process.on('beforeExit', async () => {
140
+ process.once('beforeExit', async () => {
134
141
  try {
135
142
  const latestVersion = await versionPromise;
136
143
  if (!latestVersion) return;
package/mcp_config.json CHANGED
@@ -3,7 +3,16 @@
3
3
  "tribunal-kit": {
4
4
  "command": "node",
5
5
  "args": ["bin/mcp-server.js"],
6
- "env": {}
6
+ "env": {
7
+ "NODE_ENV": "production"
8
+ }
7
9
  }
10
+ },
11
+ "minimal_change": {
12
+ "enabled": true,
13
+ "mode": "balanced",
14
+ "repository_search": true,
15
+ "change_budget": true,
16
+ "minimality_score": true
8
17
  }
9
18
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tribunal-kit",
3
- "version": "5.8.5",
4
- "description": "The operating system for AI software engineering governance, memory, review pipelines, and reusable skills for every coding agent. 44 specialist agents, 34 workflows, 19 parallel Tribunal code reviewers, MCP server, Rust core engine, and long-running autonomous agent harness for Cursor, VSCode, Windsurf, Claude Code, and Aider.",
3
+ "version": "6.0.1",
4
+ "description": "Your AI writes code that doesn't exist. Tribunal Kit stops it. The governance layer for AI coding agents 51 specialists, 27 parallel reviewers, 183 skills, Rust core, MCP server. Works with Cursor, VSCode, Windsurf, Claude Code, and Aider.",
5
5
  "keywords": [
6
6
  "ai",
7
7
  "ai-agent",
@@ -80,7 +80,7 @@
80
80
  "node": ">=18.0.0"
81
81
  },
82
82
  "scripts": {
83
- "test": "npm run validate-payload && jest --coverage",
83
+ "test": "npm run validate-payload && jest --runInBand --coverage",
84
84
  "test:unit": "jest test/unit --coverage",
85
85
  "test:integration": "jest test/integration --coverage",
86
86
  "preversion": "node scripts/sync-version.js",
@@ -92,21 +92,26 @@
92
92
  "benchmark": "node scripts/benchmark.js",
93
93
  "benchmark:rust": "cargo build --release && node scripts/benchmark.js",
94
94
  "build:rust": "cargo build --release",
95
+ "build:core": "cargo build --release --manifest-path crates/core/Cargo.toml",
95
96
  "test:rust": "cargo test --manifest-path crates/core/Cargo.toml",
97
+ "test:all": "npm run validate-payload && npm run test:rust && jest --runInBand --coverage",
98
+ "format": "prettier --write .",
99
+ "format:check": "prettier --check .",
96
100
  "build": "npm run build:rust"
97
101
  },
98
102
  "devDependencies": {
99
103
  "eslint": "^9.1.1",
100
104
  "jest": "^30.4.2",
105
+ "prettier": "^3.2.5",
101
106
  "typescript": "^5.4.5"
102
107
  },
103
108
  "optionalDependencies": {
104
- "@tribunal-kit/core-darwin-arm64": "^5.8.5",
105
- "@tribunal-kit/core-darwin-x64": "^5.8.5",
106
- "@tribunal-kit/core-linux-arm64": "^5.8.5",
107
- "@tribunal-kit/core-linux-x64": "^5.8.5",
108
- "@tribunal-kit/core-win32-arm64": "^5.8.5",
109
- "@tribunal-kit/core-win32-x64": "^5.8.5"
109
+ "@tribunal-kit/core-darwin-arm64": "^6.0.1",
110
+ "@tribunal-kit/core-darwin-x64": "^6.0.1",
111
+ "@tribunal-kit/core-linux-arm64": "^6.0.1",
112
+ "@tribunal-kit/core-linux-x64": "^6.0.1",
113
+ "@tribunal-kit/core-win32-arm64": "^6.0.1",
114
+ "@tribunal-kit/core-win32-x64": "^6.0.1"
110
115
  },
111
116
  "jest": {
112
117
  "testMatch": [
@@ -116,7 +121,8 @@
116
121
  "coverageDirectory": "coverage",
117
122
  "collectCoverageFrom": [
118
123
  "bin/**/*.js",
119
- ".agent/scripts/**/*.js"
124
+ ".agent/scripts/**/*.js",
125
+ "dist/**/*.js"
120
126
  ]
121
127
  }
122
128
  }
@@ -183,6 +183,22 @@ async function main() {
183
183
  );
184
184
  results.push(dagResult);
185
185
 
186
+ // 6. Minimal Change Governance Engine benchmark
187
+ console.log(c("cyan", " ▸ Benchmarking: Minimal Change Governance Engine"));
188
+ const minResult = await benchmark(
189
+ "Minimal Change Audit",
190
+ () => {
191
+ const minEngine = require("../.agent/scripts/minimal_change_engine");
192
+ minEngine.evaluateMinimalChange("add retry logic to API requests", {
193
+ files_added: 0,
194
+ files_modified: 1,
195
+ estimated_lines_added: 15,
196
+ });
197
+ },
198
+ 20,
199
+ );
200
+ results.push(minResult);
201
+
186
202
 
187
203
  // Print results table
188
204
  console.log();
@@ -80,7 +80,7 @@ function checkVersionMetadata() {
80
80
  }
81
81
 
82
82
  const cargoLock = readText("Cargo.lock");
83
- const cargoLockVersion = cargoLock.match(/name\s*=\s*"tribunal-core"\s*\nversion\s*=\s*"([^"]+)"/)?.[1];
83
+ const cargoLockVersion = cargoLock.match(/name\s*=\s*"tribunal-core"[\s\S]*?version\s*=\s*"([^"]+)"/)?.[1];
84
84
  if (cargoLockVersion !== VERSION) {
85
85
  fail(`Cargo.lock tribunal-core version is ${cargoLockVersion || "missing"}, expected ${VERSION}`);
86
86
  }
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Automated UI Visual & Anti-Slop Audit Script
5
+ * Analyzes frontend files (JSX/TSX/CSS/HTML) for visual depth, color spaces, anti-slop rules, and interactive state completeness.
6
+ */
7
+
8
+ const fs = require('fs');
9
+ const path = require('path');
10
+
11
+ function runVisualAudit(filePath) {
12
+ if (!fs.existsSync(filePath)) {
13
+ return {
14
+ status: 'ERROR',
15
+ score: 0,
16
+ message: `File not found: ${filePath}`,
17
+ violations: []
18
+ };
19
+ }
20
+
21
+ const content = fs.readFileSync(filePath, 'utf8');
22
+ const violations = [];
23
+ let score = 100;
24
+
25
+ // 1. Purple/Violet AI cliché color check
26
+ const purpleRegex = /#(?:7[cC]3[aA][eE][dD]|8[bB]5[cC][fF]6|9333ea|a855f7|c084fc)/i;
27
+ if (purpleRegex.test(content) || /color:\s*(?:purple|violet)/i.test(content)) {
28
+ violations.push({
29
+ rule: 'NO_PURPLE_CLICHE',
30
+ severity: 'REJECTED',
31
+ description: 'Primary color uses AI cliché purple/violet (#7C3AED, #8B5CF6). Use signal orange, acid green, slate, or OKLCH blue instead.',
32
+ impact: -25
33
+ });
34
+ score -= 25;
35
+ }
36
+
37
+ // 2. Raw Hex without OKLCH or design tokens
38
+ const rawHexRegex = /#[0-9a-fA-F]{6}\b/g;
39
+ const hexMatches = content.match(rawHexRegex) || [];
40
+ if (hexMatches.length > 4 && !/oklch/i.test(content) && !/var\(--/i.test(content)) {
41
+ violations.push({
42
+ rule: 'USE_OKLCH_OR_TOKENS',
43
+ severity: 'REJECTED',
44
+ description: 'Found raw hex colors without modern OKLCH color spaces or design token variables.',
45
+ impact: -15
46
+ });
47
+ score -= 15;
48
+ }
49
+
50
+ // 3. Interactive state check on clickable elements
51
+ if (/<button|<a\b|onClick=/i.test(content)) {
52
+ if (!/hover:/i.test(content) && !/:hover/i.test(content)) {
53
+ violations.push({
54
+ rule: 'MISSING_HOVER_STATE',
55
+ severity: 'WARNING',
56
+ description: 'Interactive buttons/links lack visible hover state handling.',
57
+ impact: -10
58
+ });
59
+ score -= 10;
60
+ }
61
+ if (!/focus-visible:/i.test(content) && !/:focus/i.test(content)) {
62
+ violations.push({
63
+ rule: 'MISSING_FOCUS_INDICATOR',
64
+ severity: 'WARNING',
65
+ description: 'Interactive elements lack focus-visible outlines for keyboard accessibility.',
66
+ impact: -10
67
+ });
68
+ score -= 10;
69
+ }
70
+ }
71
+
72
+ // 4. Visual depth & border check for container elements
73
+ if (/className=["'][^"']*(?:card|container|box|panel|wrapper)[^"']*["']/i.test(content) || /<article|<section/i.test(content)) {
74
+ if (!/border|shadow|hairline|depth/i.test(content)) {
75
+ violations.push({
76
+ rule: 'MISSING_SURFACE_DEPTH',
77
+ severity: 'WARNING',
78
+ description: 'Container elements lack 1px luminous border or ambient shadow depth layers.',
79
+ impact: -15
80
+ });
81
+ score -= 15;
82
+ }
83
+ }
84
+
85
+ // 5. Hardcoded static offsets vs dynamic math
86
+ if (/style=\{\{[^}]*\b(?:top|left|height|width):\s*['"]\d+px['"]/i.test(content)) {
87
+ violations.push({
88
+ rule: 'HARDCODED_PIXEL_LAYOUT',
89
+ severity: 'WARNING',
90
+ description: 'Hardcoded static pixel offsets found in inline styles. Use responsive clamp() or layout bounds.',
91
+ impact: -10
92
+ });
93
+ score -= 10;
94
+ }
95
+
96
+ const finalScore = Math.max(0, score);
97
+ const status = violations.some(v => v.severity === 'REJECTED') ? 'REJECTED' : (violations.length > 0 ? 'WARNING' : 'APPROVED');
98
+
99
+ return {
100
+ status,
101
+ score: finalScore,
102
+ file: filePath,
103
+ violations
104
+ };
105
+ }
106
+
107
+ // CLI Execution Support
108
+ if (require.main === module) {
109
+ const args = process.argv.slice(2);
110
+ const fileArgIndex = args.indexOf('--file');
111
+ const targetPath = fileArgIndex !== -1 ? args[fileArgIndex + 1] : args[0];
112
+
113
+ if (!targetPath) {
114
+ console.error('Usage: node visual_audit.js --file <path-to-file>');
115
+ process.exit(1);
116
+ }
117
+
118
+ const result = runVisualAudit(path.resolve(targetPath));
119
+ console.log(JSON.stringify(result, null, 2));
120
+
121
+ if (result.status === 'REJECTED') {
122
+ process.exit(1);
123
+ }
124
+ }
125
+
126
+ module.exports = { runVisualAudit };