tribunal-kit 4.2.0 → 4.3.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 (186) hide show
  1. package/.agent/ARCHITECTURE.md +21 -14
  2. package/.agent/agents/swarm-worker-contracts.md +5 -5
  3. package/.agent/agents/ui-ux-auditor.md +292 -0
  4. package/.agent/rules/GEMINI.md +8 -8
  5. package/.agent/scripts/__pycache__/_colors.cpython-311.pyc +0 -0
  6. package/.agent/scripts/__pycache__/_utils.cpython-311.pyc +0 -0
  7. package/.agent/scripts/__pycache__/case_law_manager.cpython-311.pyc +0 -0
  8. package/.agent/scripts/_colors.js +18 -0
  9. package/.agent/scripts/_utils.js +42 -0
  10. package/.agent/scripts/auto_preview.js +197 -0
  11. package/.agent/scripts/bundle_analyzer.js +290 -0
  12. package/.agent/scripts/case_law_manager.js +684 -0
  13. package/.agent/scripts/checklist.js +266 -0
  14. package/.agent/scripts/colors.js +17 -0
  15. package/.agent/scripts/compress_skills.js +141 -0
  16. package/.agent/scripts/consolidate_skills.js +149 -0
  17. package/.agent/scripts/context_broker.js +609 -0
  18. package/.agent/scripts/deep_compress.js +150 -0
  19. package/.agent/scripts/dependency_analyzer.js +272 -0
  20. package/.agent/scripts/graph_builder.js +199 -0
  21. package/.agent/scripts/graph_zoom.js +154 -0
  22. package/.agent/scripts/inner_loop_validator.js +465 -0
  23. package/.agent/scripts/lint_runner.js +187 -0
  24. package/.agent/scripts/minify_context.js +100 -0
  25. package/.agent/scripts/patch_skills_meta.js +156 -0
  26. package/.agent/scripts/patch_skills_output.js +244 -0
  27. package/.agent/scripts/schema_validator.js +297 -0
  28. package/.agent/scripts/security_scan.js +303 -0
  29. package/.agent/scripts/session_manager.js +276 -0
  30. package/.agent/scripts/skill_evolution.js +644 -0
  31. package/.agent/scripts/skill_integrator.js +313 -0
  32. package/.agent/scripts/strengthen_skills.js +193 -0
  33. package/.agent/scripts/strip_tribunal.js +47 -0
  34. package/.agent/scripts/swarm_dispatcher.js +360 -0
  35. package/.agent/scripts/test_runner.js +193 -0
  36. package/.agent/scripts/utils.js +32 -0
  37. package/.agent/scripts/verify_all.js +256 -0
  38. package/.agent/skills/agent-organizer/SKILL.md +12 -4
  39. package/.agent/skills/agentic-patterns/SKILL.md +12 -4
  40. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +12 -4
  41. package/.agent/skills/api-patterns/SKILL.md +209 -201
  42. package/.agent/skills/api-security-auditor/SKILL.md +12 -4
  43. package/.agent/skills/app-builder/SKILL.md +12 -4
  44. package/.agent/skills/app-builder/templates/SKILL.md +76 -68
  45. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +1 -1
  46. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +1 -1
  47. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +1 -1
  48. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +1 -1
  49. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +1 -1
  50. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +1 -1
  51. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +1 -1
  52. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +1 -1
  53. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
  54. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +1 -1
  55. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +1 -1
  56. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +1 -1
  57. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +1 -1
  58. package/.agent/skills/appflow-wireframe/SKILL.md +12 -4
  59. package/.agent/skills/architecture/SKILL.md +12 -4
  60. package/.agent/skills/authentication-best-practices/SKILL.md +12 -4
  61. package/.agent/skills/bash-linux/SKILL.md +12 -4
  62. package/.agent/skills/behavioral-modes/SKILL.md +12 -4
  63. package/.agent/skills/brainstorming/SKILL.md +12 -4
  64. package/.agent/skills/building-native-ui/SKILL.md +12 -4
  65. package/.agent/skills/clean-code/SKILL.md +12 -4
  66. package/.agent/skills/code-review-checklist/SKILL.md +12 -4
  67. package/.agent/skills/config-validator/SKILL.md +12 -4
  68. package/.agent/skills/csharp-developer/SKILL.md +12 -4
  69. package/.agent/skills/data-validation-schemas/SKILL.md +290 -282
  70. package/.agent/skills/database-design/SKILL.md +202 -194
  71. package/.agent/skills/deployment-procedures/SKILL.md +12 -4
  72. package/.agent/skills/devops-engineer/SKILL.md +12 -4
  73. package/.agent/skills/devops-incident-responder/SKILL.md +12 -4
  74. package/.agent/skills/doc.md +1 -1
  75. package/.agent/skills/documentation-templates/SKILL.md +12 -4
  76. package/.agent/skills/edge-computing/SKILL.md +12 -4
  77. package/.agent/skills/error-resilience/SKILL.md +390 -382
  78. package/.agent/skills/extract-design-system/SKILL.md +12 -4
  79. package/.agent/skills/framer-motion-expert/SKILL.md +206 -199
  80. package/.agent/skills/frontend-design/SKILL.md +163 -155
  81. package/.agent/skills/game-design-expert/SKILL.md +12 -4
  82. package/.agent/skills/game-engineering-expert/SKILL.md +12 -4
  83. package/.agent/skills/geo-fundamentals/SKILL.md +12 -4
  84. package/.agent/skills/github-operations/SKILL.md +12 -4
  85. package/.agent/skills/gsap-core/SKILL.md +54 -48
  86. package/.agent/skills/gsap-frameworks/SKILL.md +54 -48
  87. package/.agent/skills/gsap-performance/SKILL.md +54 -48
  88. package/.agent/skills/gsap-plugins/SKILL.md +54 -48
  89. package/.agent/skills/gsap-react/SKILL.md +54 -48
  90. package/.agent/skills/gsap-scrolltrigger/SKILL.md +54 -48
  91. package/.agent/skills/gsap-timeline/SKILL.md +54 -48
  92. package/.agent/skills/gsap-utils/SKILL.md +54 -48
  93. package/.agent/skills/i18n-localization/SKILL.md +12 -4
  94. package/.agent/skills/intelligent-routing/SKILL.md +41 -33
  95. package/.agent/skills/knowledge-graph/SKILL.md +36 -0
  96. package/.agent/skills/lint-and-validate/SKILL.md +12 -4
  97. package/.agent/skills/llm-engineering/SKILL.md +12 -4
  98. package/.agent/skills/local-first/SKILL.md +12 -4
  99. package/.agent/skills/mcp-builder/SKILL.md +12 -4
  100. package/.agent/skills/mobile-design/SKILL.md +225 -217
  101. package/.agent/skills/monorepo-management/SKILL.md +296 -288
  102. package/.agent/skills/motion-engineering/SKILL.md +195 -187
  103. package/.agent/skills/nextjs-react-expert/SKILL.md +196 -188
  104. package/.agent/skills/nodejs-best-practices/SKILL.md +12 -4
  105. package/.agent/skills/observability/SKILL.md +12 -4
  106. package/.agent/skills/parallel-agents/SKILL.md +12 -4
  107. package/.agent/skills/performance-profiling/SKILL.md +12 -4
  108. package/.agent/skills/plan-writing/SKILL.md +12 -4
  109. package/.agent/skills/platform-engineer/SKILL.md +12 -4
  110. package/.agent/skills/playwright-best-practices/SKILL.md +12 -4
  111. package/.agent/skills/powershell-windows/SKILL.md +12 -4
  112. package/.agent/skills/project-idioms/SKILL.md +12 -4
  113. package/.agent/skills/python-patterns/SKILL.md +12 -4
  114. package/.agent/skills/python-pro/SKILL.md +285 -277
  115. package/.agent/skills/react-specialist/SKILL.md +239 -231
  116. package/.agent/skills/readme-builder/SKILL.md +12 -4
  117. package/.agent/skills/realtime-patterns/SKILL.md +12 -4
  118. package/.agent/skills/red-team-tactics/SKILL.md +12 -4
  119. package/.agent/skills/rust-pro/SKILL.md +12 -4
  120. package/.agent/skills/seo-fundamentals/SKILL.md +12 -4
  121. package/.agent/skills/server-management/SKILL.md +12 -4
  122. package/.agent/skills/shadcn-ui-expert/SKILL.md +12 -4
  123. package/.agent/skills/skill-creator/SKILL.md +12 -4
  124. package/.agent/skills/sql-pro/SKILL.md +12 -4
  125. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +12 -4
  126. package/.agent/skills/swiftui-expert/SKILL.md +12 -4
  127. package/.agent/skills/systematic-debugging/SKILL.md +12 -4
  128. package/.agent/skills/tailwind-patterns/SKILL.md +12 -4
  129. package/.agent/skills/tdd-workflow/SKILL.md +12 -4
  130. package/.agent/skills/test-result-analyzer/SKILL.md +12 -4
  131. package/.agent/skills/testing-patterns/SKILL.md +12 -4
  132. package/.agent/skills/trend-researcher/SKILL.md +12 -4
  133. package/.agent/skills/typescript-advanced/SKILL.md +297 -289
  134. package/.agent/skills/ui-ux-pro-max/SKILL.md +12 -4
  135. package/.agent/skills/ui-ux-researcher/SKILL.md +12 -4
  136. package/.agent/skills/vue-expert/SKILL.md +237 -229
  137. package/.agent/skills/vulnerability-scanner/SKILL.md +12 -4
  138. package/.agent/skills/web-accessibility-auditor/SKILL.md +12 -4
  139. package/.agent/skills/web-design-guidelines/SKILL.md +12 -4
  140. package/.agent/skills/webapp-testing/SKILL.md +12 -4
  141. package/.agent/skills/whimsy-injector/SKILL.md +12 -4
  142. package/.agent/skills/workflow-optimizer/SKILL.md +12 -4
  143. package/.agent/workflows/audit.md +6 -6
  144. package/.agent/workflows/deploy.md +1 -1
  145. package/.agent/workflows/generate.md +23 -6
  146. package/.agent/workflows/session.md +5 -5
  147. package/.agent/workflows/swarm.md +2 -2
  148. package/README.md +242 -186
  149. package/bin/tribunal-kit.js +297 -57
  150. package/package.json +81 -77
  151. package/scripts/changelog.js +167 -0
  152. package/scripts/sync-version.js +81 -0
  153. package/scripts/validate-payload.js +73 -0
  154. package/.agent/scripts/__pycache__/auto_preview.cpython-311.pyc +0 -0
  155. package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
  156. package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
  157. package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
  158. package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  159. package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
  160. package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
  161. package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
  162. package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  163. package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
  164. package/.agent/scripts/auto_preview.py +0 -180
  165. package/.agent/scripts/bundle_analyzer.py +0 -259
  166. package/.agent/scripts/case_law_manager.py +0 -755
  167. package/.agent/scripts/checklist.py +0 -209
  168. package/.agent/scripts/compress_skills.py +0 -167
  169. package/.agent/scripts/consolidate_skills.py +0 -173
  170. package/.agent/scripts/deep_compress.py +0 -202
  171. package/.agent/scripts/dependency_analyzer.py +0 -247
  172. package/.agent/scripts/lint_runner.py +0 -188
  173. package/.agent/scripts/minify_context.py +0 -80
  174. package/.agent/scripts/patch_skills_meta.py +0 -177
  175. package/.agent/scripts/patch_skills_output.py +0 -285
  176. package/.agent/scripts/schema_validator.py +0 -279
  177. package/.agent/scripts/security_scan.py +0 -224
  178. package/.agent/scripts/session_manager.py +0 -261
  179. package/.agent/scripts/skill_evolution.py +0 -563
  180. package/.agent/scripts/skill_integrator.py +0 -234
  181. package/.agent/scripts/strengthen_skills.py +0 -220
  182. package/.agent/scripts/strip_tribunal.py +0 -41
  183. package/.agent/scripts/swarm_dispatcher.py +0 -350
  184. package/.agent/scripts/test_runner.py +0 -192
  185. package/.agent/scripts/test_swarm_dispatcher.py +0 -163
  186. package/.agent/scripts/verify_all.py +0 -195
@@ -1,292 +1,292 @@
1
- ---
2
- name: monorepo-management
3
- description: Monorepo architecture and tooling mastery. Turborepo, Nx, pnpm workspaces, shared package design, task pipelines, dependency hoisting, change detection, versioning strategies (independent vs. fixed), shared TypeScript configs, internal packages, and CI optimization for monorepos. Use when setting up monorepos, managing shared code across apps, or optimizing build pipelines.
4
- allowed-tools: Read, Write, Edit, Glob, Grep
5
- version: 1.0.0
6
- last-updated: 2026-04-17
7
- applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
8
- ---
9
-
10
- ## Hallucination Traps (Read First)
11
- - ❌ Publishing internal packages to npm when they're meant to stay private -> ✅ Internal packages use `"private": true` and workspace protocol `"workspace:*"`
12
- - ❌ Putting all shared code in a single `packages/shared` dump -> ✅ Split by domain: `packages/ui`, `packages/config`, `packages/utils`
13
- - ❌ Running all tests on every PR regardless of what changed -> ✅ Use affected/changed detection (Turborepo `--filter`, Nx `affected`)
14
-
15
- ---
16
-
17
- # Monorepo Management — Scaling Multi-Package Projects
18
-
19
- ---
20
-
21
- ## Tool Selection
22
-
23
- ```
24
- ┌──────────────────────────────────────────────────────────────┐
25
- │ When to Use What │
26
- ├──────────────────────────────────────────────────────────────┤
27
- │ pnpm workspaces │ Package linking only, no build orchestration│
28
- │ Turborepo │ Fast builds, simple config, Vercel ecosystem│
29
- │ Nx │ Enterprise, generators, dependency graph UI │
30
- │ npm workspaces │ Zero-dep, basic linking (limited features) │
31
- │ Yarn workspaces │ Legacy projects already using Yarn │
32
- ├──────────────────────────────────────────────────────────────┤
33
- │ Recommendation: pnpm + Turborepo for most projects │
34
- └──────────────────────────────────────────────────────────────┘
35
- ```
36
-
37
- ---
38
-
39
- ## Directory Structure
40
-
41
- ```
42
- my-monorepo/
43
- ├── apps/
44
- │ ├── web/ # Next.js frontend
45
- │ │ ├── package.json
46
- │ │ └── tsconfig.json
47
- │ ├── api/ # Fastify/Express backend
48
- │ │ ├── package.json
49
- │ │ └── tsconfig.json
50
- │ └── mobile/ # React Native app
51
- │ └── package.json
52
- ├── packages/
53
- │ ├── ui/ # Shared React components
54
- │ │ ├── src/
55
- │ │ ├── package.json
56
- │ │ └── tsconfig.json
57
- │ ├── config/ # Shared ESLint, TypeScript, Prettier configs
58
- │ │ ├── eslint/
59
- │ │ ├── typescript/
60
- │ │ └── package.json
61
- │ ├── utils/ # Shared pure functions
62
- │ │ └── package.json
63
- │ └── db/ # Shared database client + schemas
64
- │ └── package.json
65
- ├── turbo.json
66
- ├── pnpm-workspace.yaml
67
- ├── package.json # Root — devDependencies only
68
- └── tsconfig.base.json # Shared TS config extended by all
69
- ```
70
-
71
- ---
72
-
73
- ## pnpm Workspace Setup
74
-
75
- ```yaml
76
- # pnpm-workspace.yaml
77
- packages:
78
- - "apps/*"
79
- - "packages/*"
80
- ```
81
-
82
- ```json
83
- // Root package.json
84
- {
85
- "name": "my-monorepo",
86
- "private": true,
87
- "scripts": {
88
- "dev": "turbo run dev",
89
- "build": "turbo run build",
90
- "lint": "turbo run lint",
91
- "test": "turbo run test",
92
- "clean": "turbo run clean"
93
- },
94
- "devDependencies": {
95
- "turbo": "^2.0.0"
96
- }
97
- }
98
- ```
99
-
100
- ```json
101
- // packages/ui/package.json
102
- {
103
- "name": "@myorg/ui",
104
- "version": "0.0.0",
105
- "private": true,
106
- "main": "./src/index.ts",
107
- "types": "./src/index.ts",
108
- "exports": {
109
- ".": "./src/index.ts",
110
- "./button": "./src/button.tsx",
111
- "./card": "./src/card.tsx"
112
- },
113
- "peerDependencies": {
114
- "react": "^19.0.0",
115
- "react-dom": "^19.0.0"
116
- }
117
- }
118
- ```
119
-
120
- ```json
121
- // apps/web/package.json — consuming internal package
122
- {
123
- "name": "web",
124
- "dependencies": {
125
- "@myorg/ui": "workspace:*",
126
- "@myorg/utils": "workspace:*"
127
- }
128
- }
129
- ```
130
-
131
- ---
132
-
133
- ## Turborepo Configuration
134
-
135
- ```json
136
- // turbo.json
137
- {
138
- "$schema": "https://turbo.build/schema.json",
139
- "globalDependencies": ["**/.env.*local"],
140
- "tasks": {
141
- "build": {
142
- "dependsOn": ["^build"],
143
- "outputs": ["dist/**", ".next/**", "!.next/cache/**"]
144
- },
145
- "dev": {
146
- "cache": false,
147
- "persistent": true
148
- },
149
- "lint": {
150
- "dependsOn": ["^build"]
151
- },
152
- "test": {
153
- "dependsOn": ["^build"],
154
- "outputs": ["coverage/**"]
155
- },
156
- "clean": {
157
- "cache": false
158
- }
159
- }
160
- }
161
- ```
162
-
163
- ```
164
- Key concepts:
165
- "^build" = Run build in dependencies FIRST (topological)
166
- "dependsOn" = Task ordering — lint waits for build
167
- "outputs" = What gets cached — skip re-runs if unchanged
168
- "persistent" = Long-running (dev servers) — never cached
169
- "cache: false" = Always run, never skip
170
- ```
171
-
172
- ---
173
-
174
- ## Shared TypeScript Configuration
175
-
176
- ```json
177
- // tsconfig.base.json (root)
178
- {
179
- "compilerOptions": {
180
- "strict": true,
181
- "target": "ES2022",
182
- "module": "ESNext",
183
- "moduleResolution": "bundler",
184
- "esModuleInterop": true,
185
- "skipLibCheck": true,
186
- "forceConsistentCasingInFileNames": true,
187
- "declaration": true,
188
- "declarationMap": true,
189
- "sourceMap": true,
190
- "isolatedModules": true,
191
- "resolveJsonModule": true
192
- }
193
- }
194
- ```
195
-
196
- ```json
197
- // apps/web/tsconfig.json
198
- {
199
- "extends": "../../tsconfig.base.json",
200
- "compilerOptions": {
201
- "jsx": "preserve",
202
- "lib": ["dom", "dom.iterable", "ES2022"],
203
- "outDir": "./dist"
204
- },
205
- "include": ["src/**/*", "../../packages/*/src/**/*"]
206
- }
207
- ```
208
-
209
- ---
210
-
211
- ## Change Detection (Only Build What Changed)
212
-
213
- ```bash
214
- # Turborepo — filter by affected packages
215
- turbo run build --filter=...[HEAD~1] # packages changed since last commit
216
- turbo run test --filter=web... # web app + its dependencies
217
- turbo run lint --filter=@myorg/ui # specific package only
218
-
219
- # CI: Only run tests for changed packages
220
- turbo run test --filter="[origin/main...HEAD]"
221
- ```
222
-
223
- ```yaml
224
- # GitHub Actions — with Turborepo cache
225
- - name: Build & Test (cached)
226
- run: npx turbo run build test lint --filter="[origin/main...HEAD]"
227
- env:
228
- TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
229
- TURBO_TEAM: ${{ vars.TURBO_TEAM }}
230
- ```
231
-
232
- ---
233
-
234
- ## Versioning Strategies
235
-
236
- ```
237
- ┌─────────────────────────────────────────────────────────────┐
238
- │ Fixed (recommended for apps) │
239
- │ All packages share one version. Simple. One changelog. │
240
- │ Example: v1.2.3 applies to web, api, ui, utils, db │
241
- ├─────────────────────────────────────────────────────────────┤
242
- │ Independent (for published libraries) │
243
- │ Each package has its own version + changelog. │
244
- │ Example: @myorg/ui@2.1.0, @myorg/utils@1.4.2 │
245
- │ Tools: Changesets, Lerna │
246
- ├─────────────────────────────────────────────────────────────┤
247
- │ Recommendation: │
248
- │ Internal monorepo (1 team) → Fixed versioning │
249
- │ Open-source multi-package → Independent + Changesets │
250
- └─────────────────────────────────────────────────────────────┘
251
- ```
252
-
253
- ---
254
-
255
- ## Internal Package Design Rules
256
-
257
- ```
258
- ✅ Internal packages are "private": true — never published to npm
259
- ✅ Use workspace protocol: "@myorg/ui": "workspace:*"
260
- ✅ Export raw TypeScript (src/index.ts) — let the consuming app bundle it
261
- ✅ One package per domain: ui, utils, config, db — NOT one giant "shared"
262
- ✅ Peer dependencies for React/framework — don't bundle the framework
263
-
264
- ❌ Don't create a package for 1-2 functions — inline until it's reused 3+ times
265
- ❌ Don't publish internal packages to npm "just in case"
266
- ❌ Don't share mutable state across packages — each package is a pure module
267
- ❌ Don't put app-specific code in packages/ — only truly shared code
268
- ```
269
-
270
- ---
271
-
272
- ## Anti-Patterns
273
-
274
- ```
275
- ❌ Running all CI checks on every package for every PR — use affected detection
276
- ❌ Circular dependencies between packages — topological ordering must be acyclic
277
- ❌ Mixing CommonJS and ESM in the same monorepo — standardize on ESM
278
- ❌ Installing devDependencies in every package — hoist shared devDeps to root
279
- ❌ No lockfile — pnpm-lock.yaml MUST be committed
280
- ❌ Using relative paths (../../packages/ui) — use workspace:* protocol
281
- ❌ Giant "shared" package — splits into domain-focused packages
282
- ```
283
-
284
- ---
1
+ ---
2
+ name: monorepo-management
3
+ description: Monorepo architecture and tooling mastery. Turborepo, Nx, pnpm workspaces, shared package design, task pipelines, dependency hoisting, change detection, versioning strategies (independent vs. fixed), shared TypeScript configs, internal packages, and CI optimization for monorepos. Use when setting up monorepos, managing shared code across apps, or optimizing build pipelines.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ version: 1.0.0
6
+ last-updated: 2026-04-17
7
+ applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
8
+ ---
9
+
10
+ ## Hallucination Traps (Read First)
11
+ - ❌ Publishing internal packages to npm when they're meant to stay private -> ✅ Internal packages use `"private": true` and workspace protocol `"workspace:*"`
12
+ - ❌ Putting all shared code in a single `packages/shared` dump -> ✅ Split by domain: `packages/ui`, `packages/config`, `packages/utils`
13
+ - ❌ Running all tests on every PR regardless of what changed -> ✅ Use affected/changed detection (Turborepo `--filter`, Nx `affected`)
14
+
15
+ ---
16
+
17
+ # Monorepo Management — Scaling Multi-Package Projects
18
+
19
+ ---
20
+
21
+ ## Tool Selection
22
+
23
+ ```
24
+ ┌──────────────────────────────────────────────────────────────┐
25
+ │ When to Use What │
26
+ ├──────────────────────────────────────────────────────────────┤
27
+ │ pnpm workspaces │ Package linking only, no build orchestration│
28
+ │ Turborepo │ Fast builds, simple config, Vercel ecosystem│
29
+ │ Nx │ Enterprise, generators, dependency graph UI │
30
+ │ npm workspaces │ Zero-dep, basic linking (limited features) │
31
+ │ Yarn workspaces │ Legacy projects already using Yarn │
32
+ ├──────────────────────────────────────────────────────────────┤
33
+ │ Recommendation: pnpm + Turborepo for most projects │
34
+ └──────────────────────────────────────────────────────────────┘
35
+ ```
36
+
37
+ ---
38
+
39
+ ## Directory Structure
40
+
41
+ ```
42
+ my-monorepo/
43
+ ├── apps/
44
+ │ ├── web/ # Next.js frontend
45
+ │ │ ├── package.json
46
+ │ │ └── tsconfig.json
47
+ │ ├── api/ # Fastify/Express backend
48
+ │ │ ├── package.json
49
+ │ │ └── tsconfig.json
50
+ │ └── mobile/ # React Native app
51
+ │ └── package.json
52
+ ├── packages/
53
+ │ ├── ui/ # Shared React components
54
+ │ │ ├── src/
55
+ │ │ ├── package.json
56
+ │ │ └── tsconfig.json
57
+ │ ├── config/ # Shared ESLint, TypeScript, Prettier configs
58
+ │ │ ├── eslint/
59
+ │ │ ├── typescript/
60
+ │ │ └── package.json
61
+ │ ├── utils/ # Shared pure functions
62
+ │ │ └── package.json
63
+ │ └── db/ # Shared database client + schemas
64
+ │ └── package.json
65
+ ├── turbo.json
66
+ ├── pnpm-workspace.yaml
67
+ ├── package.json # Root — devDependencies only
68
+ └── tsconfig.base.json # Shared TS config extended by all
69
+ ```
70
+
71
+ ---
285
72
 
73
+ ## pnpm Workspace Setup
74
+
75
+ ```yaml
76
+ # pnpm-workspace.yaml
77
+ packages:
78
+ - "apps/*"
79
+ - "packages/*"
80
+ ```
81
+
82
+ ```json
83
+ // Root package.json
84
+ {
85
+ "name": "my-monorepo",
86
+ "private": true,
87
+ "scripts": {
88
+ "dev": "turbo run dev",
89
+ "build": "turbo run build",
90
+ "lint": "turbo run lint",
91
+ "test": "turbo run test",
92
+ "clean": "turbo run clean"
93
+ },
94
+ "devDependencies": {
95
+ "turbo": "^2.0.0"
96
+ }
97
+ }
98
+ ```
99
+
100
+ ```json
101
+ // packages/ui/package.json
102
+ {
103
+ "name": "@myorg/ui",
104
+ "version": "0.0.0",
105
+ "private": true,
106
+ "main": "./src/index.ts",
107
+ "types": "./src/index.ts",
108
+ "exports": {
109
+ ".": "./src/index.ts",
110
+ "./button": "./src/button.tsx",
111
+ "./card": "./src/card.tsx"
112
+ },
113
+ "peerDependencies": {
114
+ "react": "^19.0.0",
115
+ "react-dom": "^19.0.0"
116
+ }
117
+ }
118
+ ```
119
+
120
+ ```json
121
+ // apps/web/package.json — consuming internal package
122
+ {
123
+ "name": "web",
124
+ "dependencies": {
125
+ "@myorg/ui": "workspace:*",
126
+ "@myorg/utils": "workspace:*"
127
+ }
128
+ }
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Turborepo Configuration
134
+
135
+ ```json
136
+ // turbo.json
137
+ {
138
+ "$schema": "https://turbo.build/schema.json",
139
+ "globalDependencies": ["**/.env.*local"],
140
+ "tasks": {
141
+ "build": {
142
+ "dependsOn": ["^build"],
143
+ "outputs": ["dist/**", ".next/**", "!.next/cache/**"]
144
+ },
145
+ "dev": {
146
+ "cache": false,
147
+ "persistent": true
148
+ },
149
+ "lint": {
150
+ "dependsOn": ["^build"]
151
+ },
152
+ "test": {
153
+ "dependsOn": ["^build"],
154
+ "outputs": ["coverage/**"]
155
+ },
156
+ "clean": {
157
+ "cache": false
158
+ }
159
+ }
160
+ }
161
+ ```
162
+
163
+ ```
164
+ Key concepts:
165
+ "^build" = Run build in dependencies FIRST (topological)
166
+ "dependsOn" = Task ordering — lint waits for build
167
+ "outputs" = What gets cached — skip re-runs if unchanged
168
+ "persistent" = Long-running (dev servers) — never cached
169
+ "cache: false" = Always run, never skip
170
+ ```
286
171
 
287
172
  ---
288
173
 
289
- ## 🤖 LLM-Specific Traps
174
+ ## Shared TypeScript Configuration
175
+
176
+ ```json
177
+ // tsconfig.base.json (root)
178
+ {
179
+ "compilerOptions": {
180
+ "strict": true,
181
+ "target": "ES2022",
182
+ "module": "ESNext",
183
+ "moduleResolution": "bundler",
184
+ "esModuleInterop": true,
185
+ "skipLibCheck": true,
186
+ "forceConsistentCasingInFileNames": true,
187
+ "declaration": true,
188
+ "declarationMap": true,
189
+ "sourceMap": true,
190
+ "isolatedModules": true,
191
+ "resolveJsonModule": true
192
+ }
193
+ }
194
+ ```
195
+
196
+ ```json
197
+ // apps/web/tsconfig.json
198
+ {
199
+ "extends": "../../tsconfig.base.json",
200
+ "compilerOptions": {
201
+ "jsx": "preserve",
202
+ "lib": ["dom", "dom.iterable", "ES2022"],
203
+ "outDir": "./dist"
204
+ },
205
+ "include": ["src/**/*", "../../packages/*/src/**/*"]
206
+ }
207
+ ```
208
+
209
+ ---
210
+
211
+ ## Change Detection (Only Build What Changed)
212
+
213
+ ```bash
214
+ # Turborepo — filter by affected packages
215
+ turbo run build --filter=...[HEAD~1] # packages changed since last commit
216
+ turbo run test --filter=web... # web app + its dependencies
217
+ turbo run lint --filter=@myorg/ui # specific package only
218
+
219
+ # CI: Only run tests for changed packages
220
+ turbo run test --filter="[origin/main...HEAD]"
221
+ ```
222
+
223
+ ```yaml
224
+ # GitHub Actions — with Turborepo cache
225
+ - name: Build & Test (cached)
226
+ run: npx turbo run build test lint --filter="[origin/main...HEAD]"
227
+ env:
228
+ TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
229
+ TURBO_TEAM: ${{ vars.TURBO_TEAM }}
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Versioning Strategies
235
+
236
+ ```
237
+ ┌─────────────────────────────────────────────────────────────┐
238
+ │ Fixed (recommended for apps) │
239
+ │ All packages share one version. Simple. One changelog. │
240
+ │ Example: v1.2.3 applies to web, api, ui, utils, db │
241
+ ├─────────────────────────────────────────────────────────────┤
242
+ │ Independent (for published libraries) │
243
+ │ Each package has its own version + changelog. │
244
+ │ Example: @myorg/ui@2.1.0, @myorg/utils@1.4.2 │
245
+ │ Tools: Changesets, Lerna │
246
+ ├─────────────────────────────────────────────────────────────┤
247
+ │ Recommendation: │
248
+ │ Internal monorepo (1 team) → Fixed versioning │
249
+ │ Open-source multi-package → Independent + Changesets │
250
+ └─────────────────────────────────────────────────────────────┘
251
+ ```
252
+
253
+ ---
254
+
255
+ ## Internal Package Design Rules
256
+
257
+ ```
258
+ ✅ Internal packages are "private": true — never published to npm
259
+ ✅ Use workspace protocol: "@myorg/ui": "workspace:*"
260
+ ✅ Export raw TypeScript (src/index.ts) — let the consuming app bundle it
261
+ ✅ One package per domain: ui, utils, config, db — NOT one giant "shared"
262
+ ✅ Peer dependencies for React/framework — don't bundle the framework
263
+
264
+ ❌ Don't create a package for 1-2 functions — inline until it's reused 3+ times
265
+ ❌ Don't publish internal packages to npm "just in case"
266
+ ❌ Don't share mutable state across packages — each package is a pure module
267
+ ❌ Don't put app-specific code in packages/ — only truly shared code
268
+ ```
269
+
270
+ ---
271
+
272
+ ## Anti-Patterns
273
+
274
+ ```
275
+ ❌ Running all CI checks on every package for every PR — use affected detection
276
+ ❌ Circular dependencies between packages — topological ordering must be acyclic
277
+ ❌ Mixing CommonJS and ESM in the same monorepo — standardize on ESM
278
+ ❌ Installing devDependencies in every package — hoist shared devDeps to root
279
+ ❌ No lockfile — pnpm-lock.yaml MUST be committed
280
+ ❌ Using relative paths (../../packages/ui) — use workspace:* protocol
281
+ ❌ Giant "shared" package — splits into domain-focused packages
282
+ ```
283
+
284
+ ---
285
+
286
+
287
+ ---
288
+
289
+
290
290
 
291
291
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
292
292
 
@@ -298,7 +298,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
298
298
 
299
299
  ---
300
300
 
301
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
301
+
302
302
 
303
303
  **Slash command: `/review` or `/tribunal-full`**
304
304
  **Active reviewers: `logic-reviewer` · `security-auditor`**
@@ -309,7 +309,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
309
309
  2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
310
310
  3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
311
311
 
312
- ### ✅ Pre-Flight Self-Audit
312
+
313
313
 
314
314
  Review these questions before confirming output:
315
315
  ```
@@ -323,4 +323,12 @@ Review these questions before confirming output:
323
323
 
324
324
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
325
325
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
326
- - ✅ **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.
326
+ - ✅ **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.
327
+
328
+
329
+ ## Pre-Flight Checklist
330
+ - [ ] Have I reviewed the user's specific constraints and requests?
331
+ - [ ] Have I checked the environment for relevant existing implementations?
332
+
333
+ ## VBC Protocol (Verification-Before-Completion)
334
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.