tribunal-kit 4.5.0 → 4.6.0
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.
- package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
- package/.agent/ARCHITECTURE.md +279 -277
- package/.agent/GEMINI.md +127 -121
- package/.agent/agents/accessibility-reviewer.md +187 -187
- package/.agent/agents/ai-code-reviewer.md +199 -199
- package/.agent/agents/api-architect.md +71 -66
- package/.agent/agents/backend-specialist.md +219 -215
- package/.agent/agents/cloud-engineer.md +98 -0
- package/.agent/agents/code-archaeologist.md +168 -161
- package/.agent/agents/database-architect.md +184 -184
- package/.agent/agents/db-latency-auditor.md +213 -216
- package/.agent/agents/debugger.md +198 -191
- package/.agent/agents/dependency-reviewer.md +106 -103
- package/.agent/agents/devops-engineer.md +218 -218
- package/.agent/agents/documentation-writer.md +209 -201
- package/.agent/agents/explorer-agent.md +167 -160
- package/.agent/agents/frontend-reviewer.md +162 -160
- package/.agent/agents/frontend-specialist.md +257 -248
- package/.agent/agents/game-developer.md +48 -48
- package/.agent/agents/logic-reviewer.md +118 -116
- package/.agent/agents/mobile-developer.md +197 -200
- package/.agent/agents/mobile-reviewer.md +159 -162
- package/.agent/agents/orchestrator.md +187 -181
- package/.agent/agents/penetration-tester.md +160 -157
- package/.agent/agents/performance-optimizer.md +183 -183
- package/.agent/agents/performance-reviewer.md +178 -178
- package/.agent/agents/precedence-reviewer.md +251 -250
- package/.agent/agents/product-manager.md +149 -142
- package/.agent/agents/product-owner.md +81 -80
- package/.agent/agents/project-planner.md +152 -142
- package/.agent/agents/qa-automation-engineer.md +216 -225
- package/.agent/agents/resilience-reviewer.md +88 -88
- package/.agent/agents/schema-reviewer.md +67 -67
- package/.agent/agents/security-auditor.md +180 -174
- package/.agent/agents/seo-specialist.md +188 -193
- package/.agent/agents/sql-reviewer.md +159 -161
- package/.agent/agents/supervisor-agent.md +173 -184
- package/.agent/agents/swarm-worker-contracts.md +170 -166
- package/.agent/agents/swarm-worker-registry.md +92 -92
- package/.agent/agents/system-architect.md +85 -0
- package/.agent/agents/test-coverage-reviewer.md +158 -160
- package/.agent/agents/test-engineer.md +118 -118
- package/.agent/agents/throughput-optimizer.md +291 -299
- package/.agent/agents/type-safety-reviewer.md +182 -175
- package/.agent/agents/ui-ux-auditor.md +300 -292
- package/.agent/agents/vitals-reviewer.md +223 -223
- package/.agent/mcp_config.json +37 -40
- package/.agent/patterns/generator.md +11 -9
- package/.agent/patterns/inversion.md +14 -12
- package/.agent/patterns/pipeline.md +11 -9
- package/.agent/patterns/reviewer.md +15 -13
- package/.agent/patterns/tool-wrapper.md +11 -9
- package/.agent/routing_index.json +654 -0
- package/.agent/rules/GEMINI.md +358 -352
- package/.agent/scripts/compile_router.py +112 -0
- package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
- package/.agent/scripts/strengthen_skills.js +1 -1
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
- package/.agent/skills/agent-organizer/SKILL.md +156 -150
- package/.agent/skills/agentic-patterns/SKILL.md +313 -315
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
- package/.agent/skills/api-patterns/SKILL.md +253 -247
- package/.agent/skills/api-security-auditor/SKILL.md +195 -193
- package/.agent/skills/app-builder/SKILL.md +573 -572
- package/.agent/skills/app-builder/templates/SKILL.md +108 -115
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
- package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
- package/.agent/skills/architecture/SKILL.md +226 -219
- package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
- package/.agent/skills/backend-security-expert/SKILL.md +16 -2
- package/.agent/skills/bash-linux/SKILL.md +179 -179
- package/.agent/skills/behavioral-modes/SKILL.md +239 -223
- package/.agent/skills/brainstorming/SKILL.md +498 -486
- package/.agent/skills/browser-native-ai/SKILL.md +57 -4
- package/.agent/skills/building-native-ui/SKILL.md +202 -202
- package/.agent/skills/cicd-pro/SKILL.md +442 -0
- package/.agent/skills/clean-code/SKILL.md +400 -381
- package/.agent/skills/cloud-architect/SKILL.md +439 -0
- package/.agent/skills/code-review-checklist/SKILL.md +203 -194
- package/.agent/skills/config-validator/SKILL.md +165 -165
- package/.agent/skills/containerization-pro/SKILL.md +452 -0
- package/.agent/skills/csharp-developer/SKILL.md +518 -518
- package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
- package/.agent/skills/database-design/SKILL.md +247 -240
- package/.agent/skills/deployment-procedures/SKILL.md +172 -169
- package/.agent/skills/devops-engineer/SKILL.md +345 -345
- package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
- package/.agent/skills/doc.md +209 -177
- package/.agent/skills/documentation-templates/SKILL.md +291 -279
- package/.agent/skills/edge-computing/SKILL.md +183 -181
- package/.agent/skills/error-resilience/SKILL.md +411 -428
- package/.agent/skills/extract-design-system/SKILL.md +160 -158
- package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
- package/.agent/skills/frontend-design/SKILL.md +208 -201
- package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
- package/.agent/skills/game-design-expert/SKILL.md +132 -129
- package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
- package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
- package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
- package/.agent/skills/git-pro/SKILL.md +435 -0
- package/.agent/skills/github-operations/SKILL.md +335 -329
- package/.agent/skills/gsap-core/SKILL.md +319 -308
- package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
- package/.agent/skills/gsap-performance/SKILL.md +139 -133
- package/.agent/skills/gsap-plugins/SKILL.md +486 -480
- package/.agent/skills/gsap-react/SKILL.md +202 -189
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
- package/.agent/skills/gsap-timeline/SKILL.md +165 -161
- package/.agent/skills/gsap-utils/SKILL.md +344 -338
- package/.agent/skills/harness-protocol/SKILL.md +48 -0
- package/.agent/skills/i18n-localization/SKILL.md +174 -163
- package/.agent/skills/intelligent-routing/SKILL.md +202 -246
- package/.agent/skills/knowledge-graph/SKILL.md +60 -52
- package/.agent/skills/lint-and-validate/SKILL.md +261 -261
- package/.agent/skills/llm-engineering/SKILL.md +400 -394
- package/.agent/skills/local-first/SKILL.md +178 -178
- package/.agent/skills/mcp-builder/SKILL.md +143 -142
- package/.agent/skills/mobile-design/SKILL.md +272 -263
- package/.agent/skills/monorepo-management/SKILL.md +335 -334
- package/.agent/skills/motion-engineering/SKILL.md +266 -234
- package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
- package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
- package/.agent/skills/observability/SKILL.md +343 -343
- package/.agent/skills/parallel-agents/SKILL.md +143 -146
- package/.agent/skills/performance-profiling/SKILL.md +259 -267
- package/.agent/skills/plan-writing/SKILL.md +150 -142
- package/.agent/skills/platform-engineer/SKILL.md +148 -147
- package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
- package/.agent/skills/powershell-windows/SKILL.md +162 -162
- package/.agent/skills/project-idioms/SKILL.md +137 -137
- package/.agent/skills/python-patterns/SKILL.md +260 -259
- package/.agent/skills/python-pro/SKILL.md +324 -323
- package/.agent/skills/react-specialist/SKILL.md +305 -277
- package/.agent/skills/readme-builder/SKILL.md +310 -300
- package/.agent/skills/realtime-patterns/SKILL.md +323 -319
- package/.agent/skills/red-team-tactics/SKILL.md +231 -218
- package/.agent/skills/rust-pro/SKILL.md +671 -673
- package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
- package/.agent/skills/server-management/SKILL.md +218 -214
- package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
- package/.agent/skills/skill-creator/SKILL.md +87 -86
- package/.agent/skills/sql-pro/SKILL.md +629 -629
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
- package/.agent/skills/swiftui-expert/SKILL.md +204 -201
- package/.agent/skills/system-design-pro/SKILL.md +345 -0
- package/.agent/skills/systematic-debugging/SKILL.md +153 -142
- package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
- package/.agent/skills/tdd-workflow/SKILL.md +169 -161
- package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
- package/.agent/skills/testing-patterns/SKILL.md +566 -579
- package/.agent/skills/trend-researcher/SKILL.md +243 -237
- package/.agent/skills/typescript-advanced/SKILL.md +336 -335
- package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
- package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
- package/.agent/skills/vue-expert/SKILL.md +294 -275
- package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
- package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
- package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
- package/.agent/skills/webapp-testing/SKILL.md +167 -169
- package/.agent/skills/webgpu-performance/SKILL.md +56 -2
- package/.agent/skills/whimsy-injector/SKILL.md +346 -325
- package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
- package/.agent/workflows/acf.md +141 -0
- package/.agent/workflows/api-tester.md +176 -151
- package/.agent/workflows/audit.md +150 -127
- package/.agent/workflows/brainstorm.md +134 -110
- package/.agent/workflows/changelog.md +140 -112
- package/.agent/workflows/create.md +168 -124
- package/.agent/workflows/debug.md +190 -165
- package/.agent/workflows/deploy.md +201 -180
- package/.agent/workflows/enhance.md +154 -128
- package/.agent/workflows/fix.md +136 -114
- package/.agent/workflows/generate.md +198 -183
- package/.agent/workflows/marathon.md +37 -11
- package/.agent/workflows/migrate.md +184 -160
- package/.agent/workflows/orchestrate.md +192 -168
- package/.agent/workflows/performance-benchmarker.md +135 -114
- package/.agent/workflows/plan.md +196 -173
- package/.agent/workflows/preview.md +103 -80
- package/.agent/workflows/refactor.md +192 -161
- package/.agent/workflows/review-ai.md +125 -101
- package/.agent/workflows/review.md +141 -116
- package/.agent/workflows/session.md +122 -94
- package/.agent/workflows/status.md +101 -79
- package/.agent/workflows/strengthen-skills.md +164 -138
- package/.agent/workflows/super-prompt.md +24 -0
- package/.agent/workflows/swarm.md +193 -179
- package/.agent/workflows/test.md +211 -189
- package/.agent/workflows/tribunal-backend.md +136 -105
- package/.agent/workflows/tribunal-database.md +122 -95
- package/.agent/workflows/tribunal-frontend.md +221 -96
- package/.agent/workflows/tribunal-full.md +129 -100
- package/.agent/workflows/tribunal-mobile.md +122 -95
- package/.agent/workflows/tribunal-performance.md +136 -110
- package/.agent/workflows/tribunal-speed.md +209 -183
- package/.agent/workflows/ui-ux-pro-max.md +145 -122
- package/README.md +107 -55
- package/bin/mcp-server.js +159 -0
- package/bin/tribunal-kit.js +105 -29
- package/bin/wrapper.js +16 -7
- package/mcp_config.json +9 -0
- package/package.json +94 -86
- package/scripts/changelog.js +4 -3
- package/scripts/validate-payload.js +6 -1
- package/scripts/postinstall.js +0 -127
|
@@ -1,338 +1,337 @@
|
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
│
|
|
30
|
-
|
|
31
|
-
│
|
|
32
|
-
|
|
33
|
-
│
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
│
|
|
49
|
-
│ │
|
|
50
|
-
│ └──
|
|
51
|
-
│
|
|
52
|
-
├──
|
|
53
|
-
│
|
|
54
|
-
│
|
|
55
|
-
│
|
|
56
|
-
|
|
57
|
-
│ ├──
|
|
58
|
-
│ │ ├──
|
|
59
|
-
│ │ ├──
|
|
60
|
-
│ │ └──
|
|
61
|
-
│ ├──
|
|
62
|
-
│ │
|
|
63
|
-
│
|
|
64
|
-
│
|
|
65
|
-
├──
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
└──
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
"
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
},
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
"
|
|
155
|
-
},
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
"
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
"
|
|
188
|
-
"
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
turbo run test --filter=
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
│
|
|
243
|
-
│
|
|
244
|
-
│ Example:
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
│
|
|
248
|
-
│
|
|
249
|
-
│
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
✅
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
❌
|
|
280
|
-
❌
|
|
281
|
-
❌
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
**
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
### ❌ Forbidden AI Tropes
|
|
307
|
-
|
|
308
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
309
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
310
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
Review these questions before confirming output:
|
|
315
|
-
```
|
|
316
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
317
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
318
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
319
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
323
|
-
|
|
324
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
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.
|
|
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.
|
|
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
|
+
routing:
|
|
9
|
+
domain: general
|
|
10
|
+
tier: basic
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Hallucination Traps (Read First)
|
|
14
|
+
|
|
15
|
+
- ❌ Publishing internal packages to npm when they're meant to stay private -> ✅ Internal packages use `"private": true` and workspace protocol `"workspace:*"`
|
|
16
|
+
- ❌ Putting all shared code in a single `packages/shared` dump -> ✅ Split by domain: `packages/ui`, `packages/config`, `packages/utils`
|
|
17
|
+
- ❌ Running all tests on every PR regardless of what changed -> ✅ Use affected/changed detection (Turborepo `--filter`, Nx `affected`)
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Monorepo Management — Scaling Multi-Package Projects
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Tool Selection
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
29
|
+
│ When to Use What │
|
|
30
|
+
├──────────────────────────────────────────────────────────────┤
|
|
31
|
+
│ pnpm workspaces │ Package linking only, no build orchestration│
|
|
32
|
+
│ Turborepo │ Fast builds, simple config, Vercel ecosystem│
|
|
33
|
+
│ Nx │ Enterprise, generators, dependency graph UI │
|
|
34
|
+
│ npm workspaces │ Zero-dep, basic linking (limited features) │
|
|
35
|
+
│ Yarn workspaces │ Legacy projects already using Yarn │
|
|
36
|
+
├──────────────────────────────────────────────────────────────┤
|
|
37
|
+
│ Recommendation: pnpm + Turborepo for most projects │
|
|
38
|
+
└──────────────────────────────────────────────────────────────┘
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Directory Structure
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
my-monorepo/
|
|
47
|
+
├── apps/
|
|
48
|
+
│ ├── web/ # Next.js frontend
|
|
49
|
+
│ │ ├── package.json
|
|
50
|
+
│ │ └── tsconfig.json
|
|
51
|
+
│ ├── api/ # Fastify/Express backend
|
|
52
|
+
│ │ ├── package.json
|
|
53
|
+
│ │ └── tsconfig.json
|
|
54
|
+
│ └── mobile/ # React Native app
|
|
55
|
+
│ └── package.json
|
|
56
|
+
├── packages/
|
|
57
|
+
│ ├── ui/ # Shared React components
|
|
58
|
+
│ │ ├── src/
|
|
59
|
+
│ │ ├── package.json
|
|
60
|
+
│ │ └── tsconfig.json
|
|
61
|
+
│ ├── config/ # Shared ESLint, TypeScript, Prettier configs
|
|
62
|
+
│ │ ├── eslint/
|
|
63
|
+
│ │ ├── typescript/
|
|
64
|
+
│ │ └── package.json
|
|
65
|
+
│ ├── utils/ # Shared pure functions
|
|
66
|
+
│ │ └── package.json
|
|
67
|
+
│ └── db/ # Shared database client + schemas
|
|
68
|
+
│ └── package.json
|
|
69
|
+
├── turbo.json
|
|
70
|
+
├── pnpm-workspace.yaml
|
|
71
|
+
├── package.json # Root — devDependencies only
|
|
72
|
+
└── tsconfig.base.json # Shared TS config extended by all
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## pnpm Workspace Setup
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
# pnpm-workspace.yaml
|
|
81
|
+
packages:
|
|
82
|
+
- "apps/*"
|
|
83
|
+
- "packages/*"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
// Root package.json
|
|
88
|
+
{
|
|
89
|
+
"name": "my-monorepo",
|
|
90
|
+
"private": true,
|
|
91
|
+
"scripts": {
|
|
92
|
+
"dev": "turbo run dev",
|
|
93
|
+
"build": "turbo run build",
|
|
94
|
+
"lint": "turbo run lint",
|
|
95
|
+
"test": "turbo run test",
|
|
96
|
+
"clean": "turbo run clean"
|
|
97
|
+
},
|
|
98
|
+
"devDependencies": {
|
|
99
|
+
"turbo": "^2.0.0"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
// packages/ui/package.json
|
|
106
|
+
{
|
|
107
|
+
"name": "@myorg/ui",
|
|
108
|
+
"version": "0.0.0",
|
|
109
|
+
"private": true,
|
|
110
|
+
"main": "./src/index.ts",
|
|
111
|
+
"types": "./src/index.ts",
|
|
112
|
+
"exports": {
|
|
113
|
+
".": "./src/index.ts",
|
|
114
|
+
"./button": "./src/button.tsx",
|
|
115
|
+
"./card": "./src/card.tsx"
|
|
116
|
+
},
|
|
117
|
+
"peerDependencies": {
|
|
118
|
+
"react": "^19.0.0",
|
|
119
|
+
"react-dom": "^19.0.0"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
// apps/web/package.json — consuming internal package
|
|
126
|
+
{
|
|
127
|
+
"name": "web",
|
|
128
|
+
"dependencies": {
|
|
129
|
+
"@myorg/ui": "workspace:*",
|
|
130
|
+
"@myorg/utils": "workspace:*"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Turborepo Configuration
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
// turbo.json
|
|
141
|
+
{
|
|
142
|
+
"$schema": "https://turbo.build/schema.json",
|
|
143
|
+
"globalDependencies": ["**/.env.*local"],
|
|
144
|
+
"tasks": {
|
|
145
|
+
"build": {
|
|
146
|
+
"dependsOn": ["^build"],
|
|
147
|
+
"outputs": ["dist/**", ".next/**", "!.next/cache/**"]
|
|
148
|
+
},
|
|
149
|
+
"dev": {
|
|
150
|
+
"cache": false,
|
|
151
|
+
"persistent": true
|
|
152
|
+
},
|
|
153
|
+
"lint": {
|
|
154
|
+
"dependsOn": ["^build"]
|
|
155
|
+
},
|
|
156
|
+
"test": {
|
|
157
|
+
"dependsOn": ["^build"],
|
|
158
|
+
"outputs": ["coverage/**"]
|
|
159
|
+
},
|
|
160
|
+
"clean": {
|
|
161
|
+
"cache": false
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
Key concepts:
|
|
169
|
+
"^build" = Run build in dependencies FIRST (topological)
|
|
170
|
+
"dependsOn" = Task ordering — lint waits for build
|
|
171
|
+
"outputs" = What gets cached — skip re-runs if unchanged
|
|
172
|
+
"persistent" = Long-running (dev servers) — never cached
|
|
173
|
+
"cache: false" = Always run, never skip
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Shared TypeScript Configuration
|
|
179
|
+
|
|
180
|
+
```json
|
|
181
|
+
// tsconfig.base.json (root)
|
|
182
|
+
{
|
|
183
|
+
"compilerOptions": {
|
|
184
|
+
"strict": true,
|
|
185
|
+
"target": "ES2022",
|
|
186
|
+
"module": "ESNext",
|
|
187
|
+
"moduleResolution": "bundler",
|
|
188
|
+
"esModuleInterop": true,
|
|
189
|
+
"skipLibCheck": true,
|
|
190
|
+
"forceConsistentCasingInFileNames": true,
|
|
191
|
+
"declaration": true,
|
|
192
|
+
"declarationMap": true,
|
|
193
|
+
"sourceMap": true,
|
|
194
|
+
"isolatedModules": true,
|
|
195
|
+
"resolveJsonModule": true
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
```json
|
|
201
|
+
// apps/web/tsconfig.json
|
|
202
|
+
{
|
|
203
|
+
"extends": "../../tsconfig.base.json",
|
|
204
|
+
"compilerOptions": {
|
|
205
|
+
"jsx": "preserve",
|
|
206
|
+
"lib": ["dom", "dom.iterable", "ES2022"],
|
|
207
|
+
"outDir": "./dist"
|
|
208
|
+
},
|
|
209
|
+
"include": ["src/**/*", "../../packages/*/src/**/*"]
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Change Detection (Only Build What Changed)
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# Turborepo — filter by affected packages
|
|
219
|
+
turbo run build --filter=...[HEAD~1] # packages changed since last commit
|
|
220
|
+
turbo run test --filter=web... # web app + its dependencies
|
|
221
|
+
turbo run lint --filter=@myorg/ui # specific package only
|
|
222
|
+
|
|
223
|
+
# CI: Only run tests for changed packages
|
|
224
|
+
turbo run test --filter="[origin/main...HEAD]"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
```yaml
|
|
228
|
+
# GitHub Actions — with Turborepo cache
|
|
229
|
+
- name: Build & Test (cached)
|
|
230
|
+
run: npx turbo run build test lint --filter="[origin/main...HEAD]"
|
|
231
|
+
env:
|
|
232
|
+
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
233
|
+
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Versioning Strategies
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
242
|
+
│ Fixed (recommended for apps) │
|
|
243
|
+
│ All packages share one version. Simple. One changelog. │
|
|
244
|
+
│ Example: v1.2.3 applies to web, api, ui, utils, db │
|
|
245
|
+
├─────────────────────────────────────────────────────────────┤
|
|
246
|
+
│ Independent (for published libraries) │
|
|
247
|
+
│ Each package has its own version + changelog. │
|
|
248
|
+
│ Example: @myorg/ui@2.1.0, @myorg/utils@1.4.2 │
|
|
249
|
+
│ Tools: Changesets, Lerna │
|
|
250
|
+
├─────────────────────────────────────────────────────────────┤
|
|
251
|
+
│ Recommendation: │
|
|
252
|
+
│ Internal monorepo (1 team) → Fixed versioning │
|
|
253
|
+
│ Open-source multi-package → Independent + Changesets │
|
|
254
|
+
└─────────────────────────────────────────────────────────────┘
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Internal Package Design Rules
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
✅ Internal packages are "private": true — never published to npm
|
|
263
|
+
✅ Use workspace protocol: "@myorg/ui": "workspace:*"
|
|
264
|
+
✅ Export raw TypeScript (src/index.ts) — let the consuming app bundle it
|
|
265
|
+
✅ One package per domain: ui, utils, config, db — NOT one giant "shared"
|
|
266
|
+
✅ Peer dependencies for React/framework — don't bundle the framework
|
|
267
|
+
|
|
268
|
+
❌ Don't create a package for 1-2 functions — inline until it's reused 3+ times
|
|
269
|
+
❌ Don't publish internal packages to npm "just in case"
|
|
270
|
+
❌ Don't share mutable state across packages — each package is a pure module
|
|
271
|
+
❌ Don't put app-specific code in packages/ — only truly shared code
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Anti-Patterns
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
❌ Running all CI checks on every package for every PR — use affected detection
|
|
280
|
+
❌ Circular dependencies between packages — topological ordering must be acyclic
|
|
281
|
+
❌ Mixing CommonJS and ESM in the same monorepo — standardize on ESM
|
|
282
|
+
❌ Installing devDependencies in every package — hoist shared devDeps to root
|
|
283
|
+
❌ No lockfile — pnpm-lock.yaml MUST be committed
|
|
284
|
+
❌ Using relative paths (../../packages/ui) — use workspace:* protocol
|
|
285
|
+
❌ Giant "shared" package — splits into domain-focused packages
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
293
|
+
|
|
294
|
+
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
295
|
+
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
296
|
+
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
297
|
+
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
298
|
+
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
**Slash command: `/review` or `/tribunal-full`**
|
|
303
|
+
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
304
|
+
|
|
305
|
+
### ❌ Forbidden AI Tropes
|
|
335
306
|
|
|
307
|
+
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
308
|
+
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
309
|
+
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
310
|
+
|
|
311
|
+
Review these questions before confirming output:
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
✅ Did I rely ONLY on real, verified tools and methods?
|
|
315
|
+
✅ Is this solution appropriately scoped to the user's constraints?
|
|
316
|
+
✅ Did I handle potential failure modes and edge cases?
|
|
317
|
+
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
321
|
+
|
|
322
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
323
|
+
|
|
324
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
325
|
+
- ✅ **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
|
+
|
|
327
|
+
## Pre-Flight Checklist
|
|
328
|
+
|
|
329
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
330
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
331
|
+
|
|
332
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
333
|
+
|
|
334
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
336
335
|
|
|
337
336
|
---
|
|
338
337
|
|
|
@@ -362,6 +361,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
362
361
|
### ✅ Pre-Flight Self-Audit
|
|
363
362
|
|
|
364
363
|
Review these questions before confirming output:
|
|
364
|
+
|
|
365
365
|
```
|
|
366
366
|
✅ Did I rely ONLY on real, verified tools and methods?
|
|
367
367
|
✅ Is this solution appropriately scoped to the user's constraints?
|
|
@@ -372,5 +372,6 @@ Review these questions before confirming output:
|
|
|
372
372
|
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
373
373
|
|
|
374
374
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
375
|
+
|
|
375
376
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
376
377
|
- ✅ **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.
|