tribunal-kit 5.8.2 → 5.8.4

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 (101) hide show
  1. package/.agent/ARCHITECTURE.md +12 -12
  2. package/.agent/agents/complexity-reviewer.md +53 -0
  3. package/.agent/agents/precedence-reviewer.md +12 -12
  4. package/.agent/agents/swarm-worker-registry.md +3 -3
  5. package/.agent/history/integrity_manifest.json +958 -0
  6. package/.agent/history/memory/.memory.idx +305 -1
  7. package/.agent/history/memory/MEMORY.md +21 -1
  8. package/.agent/rules/GEMINI.md +31 -28
  9. package/.agent/scripts/case_law_manager.js +3 -15
  10. package/.agent/scripts/context_broker.js +3 -1
  11. package/.agent/scripts/guardrail_engine.js +643 -0
  12. package/.agent/scripts/integrity_manifest.js +486 -0
  13. package/.agent/scripts/signal_detector.js +1 -1
  14. package/.agent/scripts/skill_evolution.js +3 -15
  15. package/.agent/scripts/skill_integrator.js +2 -12
  16. package/.agent/scripts/swarm_dispatcher.js +2 -12
  17. package/.agent/skills/12-principles-of-animation/SKILL.md +69 -0
  18. package/.agent/skills/60fps-animation/SKILL.md +78 -0
  19. package/.agent/skills/accessible-animation/SKILL.md +86 -0
  20. package/.agent/skills/adapt/SKILL.md +75 -0
  21. package/.agent/skills/animation-on-scroll/SKILL.md +110 -0
  22. package/.agent/skills/animation-systems/SKILL.md +69 -0
  23. package/.agent/skills/antfu-conventions/SKILL.md +74 -0
  24. package/.agent/skills/app-builder/SKILL.md +1 -1
  25. package/.agent/skills/apple-design/SKILL.md +108 -0
  26. package/.agent/skills/audit-and-fix/SKILL.md +83 -0
  27. package/.agent/skills/baseline-ui/SKILL.md +74 -0
  28. package/.agent/skills/better-colors/SKILL.md +124 -0
  29. package/.agent/skills/better-typography/SKILL.md +111 -0
  30. package/.agent/skills/better-ui/SKILL.md +102 -0
  31. package/.agent/skills/bolder/SKILL.md +68 -0
  32. package/.agent/skills/build-primitive/SKILL.md +70 -0
  33. package/.agent/skills/clarify/SKILL.md +75 -0
  34. package/.agent/skills/cobejs/SKILL.md +96 -0
  35. package/.agent/skills/codebase-design/SKILL.md +84 -0
  36. package/.agent/skills/colorize/SKILL.md +77 -0
  37. package/.agent/skills/compact-landing/SKILL.md +70 -0
  38. package/.agent/skills/company-logos/SKILL.md +73 -0
  39. package/.agent/skills/create-design-md/SKILL.md +104 -0
  40. package/.agent/skills/critique/SKILL.md +95 -0
  41. package/.agent/skills/delight/SKILL.md +65 -0
  42. package/.agent/skills/design-lab/SKILL.md +59 -0
  43. package/.agent/skills/diagnosing-bugs/SKILL.md +190 -0
  44. package/.agent/skills/distill/SKILL.md +65 -0
  45. package/.agent/skills/domain-modeling/SKILL.md +78 -0
  46. package/.agent/skills/fixing-accessibility/SKILL.md +98 -0
  47. package/.agent/skills/fixing-metadata/SKILL.md +97 -0
  48. package/.agent/skills/fixing-motion-performance/SKILL.md +96 -0
  49. package/.agent/skills/gpt-taste/SKILL.md +68 -0
  50. package/.agent/skills/harden/SKILL.md +74 -0
  51. package/.agent/skills/impeccable/SKILL.md +72 -0
  52. package/.agent/skills/improve-codebase-architecture/SKILL.md +67 -0
  53. package/.agent/skills/improve-ui/SKILL.md +83 -0
  54. package/.agent/skills/landing-page/SKILL.md +88 -0
  55. package/.agent/skills/lint-and-validate/SKILL.md +1 -2
  56. package/.agent/skills/local-first-architecture/SKILL.md +66 -0
  57. package/.agent/skills/lottie-animation/SKILL.md +82 -0
  58. package/.agent/skills/marquee-loop/SKILL.md +96 -0
  59. package/.agent/skills/masked-reveal/SKILL.md +88 -0
  60. package/.agent/skills/micro-interaction/SKILL.md +100 -0
  61. package/.agent/skills/morphing-icons/SKILL.md +85 -0
  62. package/.agent/skills/page-transition-animation/SKILL.md +108 -0
  63. package/.agent/skills/parallel-agents/SKILL.md +5 -5
  64. package/.agent/skills/polish/SKILL.md +63 -0
  65. package/.agent/skills/pricing-page/SKILL.md +68 -0
  66. package/.agent/skills/progressive-blur/SKILL.md +100 -0
  67. package/.agent/skills/project-idioms/SKILL.md +7 -7
  68. package/.agent/skills/quieter/SKILL.md +68 -0
  69. package/.agent/skills/react-doctor/SKILL.md +70 -0
  70. package/.agent/skills/redesign-skill/SKILL.md +65 -0
  71. package/.agent/skills/shape/SKILL.md +73 -0
  72. package/.agent/skills/soft-skill/SKILL.md +72 -0
  73. package/.agent/skills/sounds-on-the-web/SKILL.md +100 -0
  74. package/.agent/skills/svg-animation/SKILL.md +91 -0
  75. package/.agent/skills/swiss-design/SKILL.md +64 -0
  76. package/.agent/skills/taste-skill/SKILL.md +71 -0
  77. package/.agent/skills/tdd-workflow/SKILL.md +36 -165
  78. package/.agent/skills/test-result-analyzer/SKILL.md +1 -1
  79. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +82 -0
  80. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +66 -0
  81. package/.agent/skills/transitions-dev/SKILL.md +101 -0
  82. package/.agent/skills/typeset/SKILL.md +76 -0
  83. package/.agent/skills/ui-skills-root/SKILL.md +85 -0
  84. package/.agent/skills/web-quality-audit/SKILL.md +67 -0
  85. package/.agent/workflows/fix.md +2 -2
  86. package/.agent/workflows/preview.md +5 -5
  87. package/.agent/workflows/status.md +1 -1
  88. package/.agent/workflows/tribunal-full.md +3 -3
  89. package/.agent/workflows/tribunal-speed.md +2 -2
  90. package/README.md +348 -238
  91. package/bin/tribunal-kit.js +62 -1482
  92. package/dist/cli.js +13 -0
  93. package/dist/commands/align.js +1 -1
  94. package/dist/commands/compile.js +1 -1
  95. package/dist/commands/guardrail.js +275 -0
  96. package/dist/commands/init.js +10 -9
  97. package/dist/commands/optimize.js +318 -0
  98. package/dist/utils/version.js +1 -1
  99. package/package.json +10 -8
  100. package/scripts/fix-vbc.js +98 -0
  101. package/scripts/fix-vbc.ps1 +119 -0
@@ -1991,7 +1991,311 @@
1991
1991
  "token_estimate": 18,
1992
1992
  "source": "manual",
1993
1993
  "session_id": null
1994
+ },
1995
+ {
1996
+ "id": 132,
1997
+ "memory_type": "semantic",
1998
+ "content": "❌ Overriding project idioms without explicit justification -> ✅ Idioms represent team decisions; flag deviations with reasoning",
1999
+ "tags": [
2000
+ "project-idiom",
2001
+ "auto-learned"
2002
+ ],
2003
+ "created_at": "1784396209Z",
2004
+ "last_accessed": "1784396209Z",
2005
+ "access_count": 0,
2006
+ "token_estimate": 32,
2007
+ "source": "manual",
2008
+ "session_id": null
2009
+ },
2010
+ {
2011
+ "id": 133,
2012
+ "memory_type": "semantic",
2013
+ "content": "❌ Applying idioms from one project to a different project -> ✅ Idioms are project-specific; verify they apply to the current codebase",
2014
+ "tags": [
2015
+ "project-idiom",
2016
+ "auto-learned"
2017
+ ],
2018
+ "created_at": "1784396209Z",
2019
+ "last_accessed": "1784396209Z",
2020
+ "access_count": 0,
2021
+ "token_estimate": 34,
2022
+ "source": "manual",
2023
+ "session_id": null
2024
+ },
2025
+ {
2026
+ "id": 134,
2027
+ "memory_type": "semantic",
2028
+ "content": "❌ **Forbidden:** Declaring a task complete because the output \"looks correct.\"",
2029
+ "tags": [
2030
+ "project-idiom",
2031
+ "auto-learned"
2032
+ ],
2033
+ "created_at": "1784396209Z",
2034
+ "last_accessed": "1784396209Z",
2035
+ "access_count": 0,
2036
+ "token_estimate": 20,
2037
+ "source": "manual",
2038
+ "session_id": null
2039
+ },
2040
+ {
2041
+ "id": 135,
2042
+ "memory_type": "semantic",
2043
+ "content": "✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.",
2044
+ "tags": [
2045
+ "project-idiom",
2046
+ "auto-learned"
2047
+ ],
2048
+ "created_at": "1784396209Z",
2049
+ "last_accessed": "1784396209Z",
2050
+ "access_count": 0,
2051
+ "token_estimate": 54,
2052
+ "source": "manual",
2053
+ "session_id": null
2054
+ },
2055
+ {
2056
+ "id": 136,
2057
+ "memory_type": "semantic",
2058
+ "content": "[ ] Have I reviewed the user's specific constraints and requests?",
2059
+ "tags": [
2060
+ "project-idiom",
2061
+ "auto-learned"
2062
+ ],
2063
+ "created_at": "1784396209Z",
2064
+ "last_accessed": "1784396209Z",
2065
+ "access_count": 0,
2066
+ "token_estimate": 17,
2067
+ "source": "manual",
2068
+ "session_id": null
2069
+ },
2070
+ {
2071
+ "id": 137,
2072
+ "memory_type": "semantic",
2073
+ "content": "[ ] Have I checked the environment for relevant existing implementations?",
2074
+ "tags": [
2075
+ "project-idiom",
2076
+ "auto-learned"
2077
+ ],
2078
+ "created_at": "1784396209Z",
2079
+ "last_accessed": "1784396209Z",
2080
+ "access_count": 0,
2081
+ "token_estimate": 19,
2082
+ "source": "manual",
2083
+ "session_id": null
2084
+ },
2085
+ {
2086
+ "id": 138,
2087
+ "memory_type": "semantic",
2088
+ "content": "❌ **Forbidden:** Declaring a task complete because the output \"looks correct.\"",
2089
+ "tags": [
2090
+ "project-idiom",
2091
+ "auto-learned"
2092
+ ],
2093
+ "created_at": "1784396209Z",
2094
+ "last_accessed": "1784396209Z",
2095
+ "access_count": 0,
2096
+ "token_estimate": 20,
2097
+ "source": "manual",
2098
+ "session_id": null
2099
+ },
2100
+ {
2101
+ "id": 139,
2102
+ "memory_type": "semantic",
2103
+ "content": "✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.",
2104
+ "tags": [
2105
+ "project-idiom",
2106
+ "auto-learned"
2107
+ ],
2108
+ "created_at": "1784396209Z",
2109
+ "last_accessed": "1784396209Z",
2110
+ "access_count": 0,
2111
+ "token_estimate": 54,
2112
+ "source": "manual",
2113
+ "session_id": null
2114
+ },
2115
+ {
2116
+ "id": 140,
2117
+ "memory_type": "procedural",
2118
+ "content": "Run `echo 'No build step required for this project'` to build the project",
2119
+ "tags": [
2120
+ "build-script",
2121
+ "build",
2122
+ "auto-learned"
2123
+ ],
2124
+ "created_at": "1784396209Z",
2125
+ "last_accessed": "1784396209Z",
2126
+ "access_count": 0,
2127
+ "token_estimate": 19,
2128
+ "source": "manual",
2129
+ "session_id": null
2130
+ },
2131
+ {
2132
+ "id": 141,
2133
+ "memory_type": "procedural",
2134
+ "content": "Run `npm run validate-payload && jest --coverage` to test the project",
2135
+ "tags": [
2136
+ "build-script",
2137
+ "test",
2138
+ "auto-learned"
2139
+ ],
2140
+ "created_at": "1784396209Z",
2141
+ "last_accessed": "1784396209Z",
2142
+ "access_count": 0,
2143
+ "token_estimate": 18,
2144
+ "source": "manual",
2145
+ "session_id": null
2146
+ },
2147
+ {
2148
+ "id": 142,
2149
+ "memory_type": "semantic",
2150
+ "content": "❌ Overriding project idioms without explicit justification -> ✅ Idioms represent team decisions; flag deviations with reasoning",
2151
+ "tags": [
2152
+ "project-idiom",
2153
+ "auto-learned"
2154
+ ],
2155
+ "created_at": "1784618632Z",
2156
+ "last_accessed": "1784618632Z",
2157
+ "access_count": 0,
2158
+ "token_estimate": 32,
2159
+ "source": "manual",
2160
+ "session_id": null
2161
+ },
2162
+ {
2163
+ "id": 143,
2164
+ "memory_type": "semantic",
2165
+ "content": "❌ Applying idioms from one project to a different project -> ✅ Idioms are project-specific; verify they apply to the current codebase",
2166
+ "tags": [
2167
+ "project-idiom",
2168
+ "auto-learned"
2169
+ ],
2170
+ "created_at": "1784618632Z",
2171
+ "last_accessed": "1784618632Z",
2172
+ "access_count": 0,
2173
+ "token_estimate": 34,
2174
+ "source": "manual",
2175
+ "session_id": null
2176
+ },
2177
+ {
2178
+ "id": 144,
2179
+ "memory_type": "semantic",
2180
+ "content": "❌ **Forbidden:** Declaring a task complete because the output \"looks correct.\"",
2181
+ "tags": [
2182
+ "project-idiom",
2183
+ "auto-learned"
2184
+ ],
2185
+ "created_at": "1784618632Z",
2186
+ "last_accessed": "1784618632Z",
2187
+ "access_count": 0,
2188
+ "token_estimate": 20,
2189
+ "source": "manual",
2190
+ "session_id": null
2191
+ },
2192
+ {
2193
+ "id": 145,
2194
+ "memory_type": "semantic",
2195
+ "content": "✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.",
2196
+ "tags": [
2197
+ "project-idiom",
2198
+ "auto-learned"
2199
+ ],
2200
+ "created_at": "1784618632Z",
2201
+ "last_accessed": "1784618632Z",
2202
+ "access_count": 0,
2203
+ "token_estimate": 54,
2204
+ "source": "manual",
2205
+ "session_id": null
2206
+ },
2207
+ {
2208
+ "id": 146,
2209
+ "memory_type": "semantic",
2210
+ "content": "[ ] Have I reviewed the user's specific constraints and requests?",
2211
+ "tags": [
2212
+ "project-idiom",
2213
+ "auto-learned"
2214
+ ],
2215
+ "created_at": "1784618632Z",
2216
+ "last_accessed": "1784618632Z",
2217
+ "access_count": 0,
2218
+ "token_estimate": 17,
2219
+ "source": "manual",
2220
+ "session_id": null
2221
+ },
2222
+ {
2223
+ "id": 147,
2224
+ "memory_type": "semantic",
2225
+ "content": "[ ] Have I checked the environment for relevant existing implementations?",
2226
+ "tags": [
2227
+ "project-idiom",
2228
+ "auto-learned"
2229
+ ],
2230
+ "created_at": "1784618632Z",
2231
+ "last_accessed": "1784618632Z",
2232
+ "access_count": 0,
2233
+ "token_estimate": 19,
2234
+ "source": "manual",
2235
+ "session_id": null
2236
+ },
2237
+ {
2238
+ "id": 148,
2239
+ "memory_type": "semantic",
2240
+ "content": "❌ **Forbidden:** Declaring a task complete because the output \"looks correct.\"",
2241
+ "tags": [
2242
+ "project-idiom",
2243
+ "auto-learned"
2244
+ ],
2245
+ "created_at": "1784618632Z",
2246
+ "last_accessed": "1784618632Z",
2247
+ "access_count": 0,
2248
+ "token_estimate": 20,
2249
+ "source": "manual",
2250
+ "session_id": null
2251
+ },
2252
+ {
2253
+ "id": 149,
2254
+ "memory_type": "semantic",
2255
+ "content": "✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.",
2256
+ "tags": [
2257
+ "project-idiom",
2258
+ "auto-learned"
2259
+ ],
2260
+ "created_at": "1784618632Z",
2261
+ "last_accessed": "1784618632Z",
2262
+ "access_count": 0,
2263
+ "token_estimate": 54,
2264
+ "source": "manual",
2265
+ "session_id": null
2266
+ },
2267
+ {
2268
+ "id": 150,
2269
+ "memory_type": "procedural",
2270
+ "content": "Run `echo 'No build step required for this project'` to build the project",
2271
+ "tags": [
2272
+ "build-script",
2273
+ "build",
2274
+ "auto-learned"
2275
+ ],
2276
+ "created_at": "1784618632Z",
2277
+ "last_accessed": "1784618632Z",
2278
+ "access_count": 0,
2279
+ "token_estimate": 19,
2280
+ "source": "manual",
2281
+ "session_id": null
2282
+ },
2283
+ {
2284
+ "id": 151,
2285
+ "memory_type": "procedural",
2286
+ "content": "Run `npm run validate-payload && jest --coverage` to test the project",
2287
+ "tags": [
2288
+ "build-script",
2289
+ "test",
2290
+ "auto-learned"
2291
+ ],
2292
+ "created_at": "1784618632Z",
2293
+ "last_accessed": "1784618632Z",
2294
+ "access_count": 0,
2295
+ "token_estimate": 18,
2296
+ "source": "manual",
2297
+ "session_id": null
1994
2298
  }
1995
2299
  ],
1996
- "next_id": 132
2300
+ "next_id": 152
1997
2301
  }
@@ -1,6 +1,6 @@
1
1
  # 🧠 Tribunal Memory Index
2
2
  > Auto-generated by `tribunal-kit memory export`. Do not edit manually.
3
- > Entries: 131 | Semantic: 105 | Procedural: 26 | Episodic: 0 | Working: 0
3
+ > Entries: 151 | Semantic: 121 | Procedural: 30 | Episodic: 0 | Working: 0
4
4
 
5
5
  ## SEMANTIC (Permanent Facts)
6
6
  | ID | Content | Tags | Source | Created |
@@ -110,6 +110,22 @@
110
110
  | 127 | [ ] Have I checked the environment for relevant existing implementations? | project-idiom, auto-learned | manual | 1784187808Z |
111
111
  | 128 | ❌ **Forbidden:** Declaring a task complete because the output "looks correct." | project-idiom, auto-learned | manual | 1784187808Z |
112
112
  | 129 | ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended. | project-idiom, auto-learned | manual | 1784187808Z |
113
+ | 132 | ❌ Overriding project idioms without explicit justification -> ✅ Idioms represent team decisions; flag deviations with reasoning | project-idiom, auto-learned | manual | 1784396209Z |
114
+ | 133 | ❌ Applying idioms from one project to a different project -> ✅ Idioms are project-specific; verify they apply to the current codebase | project-idiom, auto-learned | manual | 1784396209Z |
115
+ | 134 | ❌ **Forbidden:** Declaring a task complete because the output "looks correct." | project-idiom, auto-learned | manual | 1784396209Z |
116
+ | 135 | ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended. | project-idiom, auto-learned | manual | 1784396209Z |
117
+ | 136 | [ ] Have I reviewed the user's specific constraints and requests? | project-idiom, auto-learned | manual | 1784396209Z |
118
+ | 137 | [ ] Have I checked the environment for relevant existing implementations? | project-idiom, auto-learned | manual | 1784396209Z |
119
+ | 138 | ❌ **Forbidden:** Declaring a task complete because the output "looks correct." | project-idiom, auto-learned | manual | 1784396209Z |
120
+ | 139 | ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended. | project-idiom, auto-learned | manual | 1784396209Z |
121
+ | 142 | ❌ Overriding project idioms without explicit justification -> ✅ Idioms represent team decisions; flag deviations with reasoning | project-idiom, auto-learned | manual | 1784618632Z |
122
+ | 143 | ❌ Applying idioms from one project to a different project -> ✅ Idioms are project-specific; verify they apply to the current codebase | project-idiom, auto-learned | manual | 1784618632Z |
123
+ | 144 | ❌ **Forbidden:** Declaring a task complete because the output "looks correct." | project-idiom, auto-learned | manual | 1784618632Z |
124
+ | 145 | ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended. | project-idiom, auto-learned | manual | 1784618632Z |
125
+ | 146 | [ ] Have I reviewed the user's specific constraints and requests? | project-idiom, auto-learned | manual | 1784618632Z |
126
+ | 147 | [ ] Have I checked the environment for relevant existing implementations? | project-idiom, auto-learned | manual | 1784618632Z |
127
+ | 148 | ❌ **Forbidden:** Declaring a task complete because the output "looks correct." | project-idiom, auto-learned | manual | 1784618632Z |
128
+ | 149 | ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended. | project-idiom, auto-learned | manual | 1784618632Z |
113
129
 
114
130
  ## PROCEDURAL (How-To Recipes)
115
131
  | ID | Content | Tags | Source | Created |
@@ -140,4 +156,8 @@
140
156
  | 121 | Run `npm run validate-payload && jest --coverage` to test the project | build-script, test, auto-learned | manual | 1783790009Z |
141
157
  | 130 | Run `echo 'No build step required for this project'` to build the project | build-script, build, auto-learned | manual | 1784187808Z |
142
158
  | 131 | Run `npm run validate-payload && jest --coverage` to test the project | build-script, test, auto-learned | manual | 1784187808Z |
159
+ | 140 | Run `echo 'No build step required for this project'` to build the project | build-script, build, auto-learned | manual | 1784396209Z |
160
+ | 141 | Run `npm run validate-payload && jest --coverage` to test the project | build-script, test, auto-learned | manual | 1784396209Z |
161
+ | 150 | Run `echo 'No build step required for this project'` to build the project | build-script, build, auto-learned | manual | 1784618632Z |
162
+ | 151 | Run `npm run validate-payload && jest --coverage` to test the project | build-script, test, auto-learned | manual | 1784618632Z |
143
163
 
@@ -78,7 +78,7 @@ Every code or design request activates an agent. This is not optional.
78
78
  | ------------------------------------------------------- | --------------------------- |
79
79
  | API / server / backend | `backend-specialist` |
80
80
  | API contract design / REST / GraphQL | `api-architect` |
81
- | C# / .NET / Blazor | `dotnet-core-expert` |
81
+ | C# / .NET / Blazor | `csharp-developer` |
82
82
  | Python / FastAPI / Django | `python-pro` |
83
83
  | Database / schema / SQL | `database-architect` |
84
84
  | Advanced SQL queries | `sql-pro` |
@@ -114,7 +114,7 @@ Every code or design request activates an agent. This is not optional.
114
114
  | System design / scale / capacity planning | `system-architect` |
115
115
  | Cloud infrastructure / AWS / Terraform / Docker / CI-CD | `cloud-engineer` |
116
116
 
117
- > **Agent vs Skill:** Some entries above (e.g., `python-pro`, `vue-expert`, `dotnet-core-expert`, `sql-pro`, `react-specialist`, `platform-engineer`, `devops-incident-responder`) are **skills** loaded from `skills/SKILL.md`, not full agent definitions in `agents/`. The routing and announcement protocol still applies — load the skill's rules and announce it. If an `.md` file exists in `agents/`, it takes priority (P1) over the skill (P2).
117
+ > **Agent vs Skill:** Some entries above (e.g., `python-pro`, `vue-expert`, `csharp-developer`, `sql-pro`, `react-specialist`, `platform-engineer`, `devops-incident-responder`) are **skills** loaded from `skills/SKILL.md`, not full agent definitions in `agents/`. The routing and announcement protocol still applies — load the skill's rules and announce it. If an `.md` file exists in `agents/`, it takes priority (P1) over the skill (P2).
118
118
 
119
119
  **When activated, announce the agent:**
120
120
 
@@ -215,8 +215,8 @@ The Human Gate is never skipped. No code is written to a file without explicit u
215
215
 
216
216
  **Reviewer assignment by domain:**
217
217
 
218
- | Code type | Reviewers |
219
- | --------------------- | --------------------------------------------------------------------------------------------------- |
218
+ | Code type | Reviewers |
219
+ | --------------------- | ----------------------------------------------------------------------------- |
220
220
  | Backend/API | logic + security + dependency + type-safety + resilience + schema + complexity-reviewer |
221
221
  | Frontend/React | logic + security + frontend + type-safety + ui-ux-auditor + review-animations + complexity-reviewer |
222
222
  | Database/SQL | logic + security + sql + schema + complexity-reviewer |
@@ -281,17 +281,17 @@ These scripts live in `.agent/scripts/`. Agents and skills can invoke them:
281
281
 
282
282
  | Script | Purpose | When |
283
283
  | -------------------------- | ------------------------------------------------- | --------------------------------------------- |
284
- | `checklist.py` | Priority audit: Security→Lint→Schema→Tests→UX→SEO | Before/after any major change |
285
- | `verify_all.py` | Full pre-deploy validation suite | Pre-deploy |
286
- | `auto_preview.py` | Start/stop/restart local dev server | After /create or /enhance |
284
+ | `checklist.js` | Priority audit: Security→Lint→Schema→Tests→UX→SEO | Before/after any major change |
285
+ | `verify_all.js` | Full pre-deploy validation suite | Pre-deploy |
286
+ | `auto_preview.js` | Start/stop/restart local dev server | After /create or /enhance |
287
287
  | `session_manager.js` | Track session state between conversations | Multi-session work |
288
- | `lint_runner.py` | Standalone lint runner (ESLint, Prettier, Ruff) | Every code change |
289
- | `test_runner.py` | Standalone test runner (Jest, Vitest, pytest, Go) | After logic changes |
290
- | `security_scan.py` | Deep OWASP-aware source code security scan | Always on deploy, /audit |
291
- | `dependency_analyzer.py` | Unused/phantom deps, npm audit | Weekly, /audit |
292
- | `schema_validator.py` | Database schema validation (Prisma, SQL) | After DB changes |
293
- | `bundle_analyzer.py` | JS/TS bundle size analysis | Before deploy |
294
- | `skill_integrator.py` | Maps active skills to their executable scripts | Automatically when skills are invoked |
288
+ | `lint_runner.js` | Standalone lint runner (ESLint, Prettier, Ruff) | Every code change |
289
+ | `test_runner.js` | Standalone test runner (Jest, Vitest, pytest, Go) | After logic changes |
290
+ | `security_scan.js` | Deep OWASP-aware source code security scan | Always on deploy, /audit |
291
+ | `dependency_analyzer.js` | Unused/phantom deps, npm audit | Weekly, /audit |
292
+ | `schema_validator.js` | Database schema validation (Prisma, SQL) | After DB changes |
293
+ | `bundle_analyzer.js` | JS/TS bundle size analysis | Before deploy |
294
+ | `skill_integrator.js` | Maps active skills to their executable scripts | Automatically when skills are invoked |
295
295
  | `swarm_dispatcher.js` | Validate Orchestrator micro-worker JSON payloads | After /orchestrate, before dispatching agents |
296
296
  | `test_swarm_dispatcher.js` | Unit tests for swarm_dispatcher | After modifying swarm_dispatcher.js |
297
297
 
@@ -301,12 +301,12 @@ These scripts live in `.agent/scripts/`. Agents and skills can invoke them:
301
301
  node .agent/scripts/checklist.js .
302
302
  node .agent/scripts/verify_all.js
303
303
  node .agent/scripts/security_scan.js .
304
- python .agent/scripts/lint_runner.py . --fix
305
- python .agent/scripts/test_runner.py . --coverage
306
- python .agent/scripts/dependency_analyzer.py . --audit
307
- python .agent/scripts/schema_validator.py .
308
- python .agent/scripts/bundle_analyzer.py . --build
309
- python .agent/scripts/skill_integrator.py
304
+ node .agent/scripts/lint_runner.js . --fix
305
+ node .agent/scripts/test_runner.js . --coverage
306
+ node .agent/scripts/dependency_analyzer.js . --audit
307
+ node .agent/scripts/schema_validator.js .
308
+ node .agent/scripts/bundle_analyzer.js . --build
309
+ node .agent/scripts/skill_integrator.js
310
310
  node .agent/scripts/swarm_dispatcher.js --file payload.json
311
311
  npx jest test/integration/swarm_dispatcher.test.js
312
312
  ```
@@ -409,18 +409,21 @@ Before modifying any file:
409
409
  ## Fabel-5 Cognitive Boundaries (Wellbeing, Evenhandedness, Memory)
410
410
 
411
411
  ### User Wellbeing & Safety
412
- * **No Psychoanalysis / Diagnosis**: Reflect what is said without diagnosing or assigning psychological narratives (e.g. "you restrict because of trauma"). Suggest professional help without clinical labels.
413
- * **Self-Harm Interruptions**: Never suggest physical substitutes (holding ice, snapping rubber bands, drawing lines) or mimic self-harm. They reinforce the self-harm loop.
414
- * **No Over-reliance**: Do not thank the user for reaching out, encourage them to stay, or reiterate willingness to continue. Avoid conversational dependencies.
415
- * **Positive Paths**: Acknowledge distress without reflective listening that amplifies negative spirals. Keep paths to external help open.
412
+
413
+ - **No Psychoanalysis / Diagnosis**: Reflect what is said without diagnosing or assigning psychological narratives (e.g. "you restrict because of trauma"). Suggest professional help without clinical labels.
414
+ - **Self-Harm Interruptions**: Never suggest physical substitutes (holding ice, snapping rubber bands, drawing lines) or mimic self-harm. They reinforce the self-harm loop.
415
+ - **No Over-reliance**: Do not thank the user for reaching out, encourage them to stay, or reiterate willingness to continue. Avoid conversational dependencies.
416
+ - **Positive Paths**: Acknowledge distress without reflective listening that amplifies negative spirals. Keep paths to external help open.
416
417
 
417
418
  ### Moral & Political Evenhandedness
418
- * **Nuance Over Brevity**: Reject requests for simple yes/no or one-word answers on contested political, ethical, or policy issues. Give a fair, balanced overview of existing positions.
419
- * **Opposing Perspectives**: Conclude arguments for positions by presenting opposing viewpoints or empirical disputes even if the user/AI agrees with the primary view.
419
+
420
+ - **Nuance Over Brevity**: Reject requests for simple yes/no or one-word answers on contested political, ethical, or policy issues. Give a fair, balanced overview of existing positions.
421
+ - **Opposing Perspectives**: Conclude arguments for positions by presenting opposing viewpoints or empirical disputes even if the user/AI agrees with the primary view.
420
422
 
421
423
  ### Memory & Preference Boundaries
422
- * **Invisible Integration**: Integrate remembered user context silently without attribution or observation verbs ("I notice in your profile...", "Based on your memory...").
423
- * **Expertise Tuning**: Match language and technical depth to the user's stated background without lecturing.
424
+
425
+ - **Invisible Integration**: Integrate remembered user context silently without attribution or observation verbs ("I notice in your profile...", "Based on your memory...").
426
+ - **Expertise Tuning**: Match language and technical depth to the user's stated background without lecturing.
424
427
 
425
428
  ---
426
429
 
@@ -28,21 +28,9 @@ const readline = require("readline");
28
28
  // ── Colours ──────────────────────────────────────────────────────────────────
29
29
  const { GREEN, YELLOW, CYAN, RED, BOLD, DIM, RESET } = require("./_colors");
30
30
 
31
- // ── Find .agent directory ─────────────────────────────────────────────────────
32
- function findAgentDir() {
33
- let current = path.resolve(process.cwd());
34
- const root = path.parse(current).root;
35
- while (current !== root) {
36
- const candidate = path.join(current, ".agent");
37
- if (fs.existsSync(candidate) && fs.statSync(candidate).isDirectory())
38
- return candidate;
39
- current = path.dirname(current);
40
- }
41
- console.error(
42
- `${RED}✖ Error: '.agent' directory not found. Please run 'npx tribunal-kit init' first.${RESET}`,
43
- );
44
- process.exit(1);
45
- }
31
+ // ── Shared Utilities ──────────────────────────────────────────────────────────
32
+ const { findAgentDir } = require("./_utils");
33
+
46
34
 
47
35
  // ── Lazy path resolution (avoids side effects at require-time) ───────────────
48
36
  let _paths = null;
@@ -50,8 +50,10 @@
50
50
  const fs = require("fs");
51
51
  const path = require("path");
52
52
 
53
- // ── Colours ───────────────────────────────────────────────────────────────────
53
+ // ── Colours & Shared Utilities ────────────────────────────────────────────────
54
54
  const { GREEN, YELLOW, CYAN, RED, BOLD, DIM, RESET } = require("./_colors");
55
+ const { findAgentDir } = require("./_utils");
56
+
55
57
 
56
58
  // ── Domain → Skill affinity map ───────────────────────────────────────────────
57
59
  // Keywords in the user's task that strongly indicate specific skills.