tribunal-kit 3.0.0 → 4.0.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/ARCHITECTURE.md +99 -99
- package/.agent/GEMINI.md +52 -52
- package/.agent/agents/accessibility-reviewer.md +187 -220
- package/.agent/agents/ai-code-reviewer.md +199 -233
- package/.agent/agents/backend-specialist.md +215 -238
- package/.agent/agents/code-archaeologist.md +161 -181
- package/.agent/agents/database-architect.md +184 -207
- package/.agent/agents/debugger.md +191 -218
- package/.agent/agents/dependency-reviewer.md +103 -136
- package/.agent/agents/devops-engineer.md +218 -238
- package/.agent/agents/documentation-writer.md +201 -221
- package/.agent/agents/explorer-agent.md +160 -180
- package/.agent/agents/frontend-reviewer.md +160 -194
- package/.agent/agents/frontend-specialist.md +248 -237
- package/.agent/agents/game-developer.md +48 -52
- package/.agent/agents/logic-reviewer.md +116 -149
- package/.agent/agents/mobile-developer.md +200 -223
- package/.agent/agents/mobile-reviewer.md +162 -195
- package/.agent/agents/orchestrator.md +181 -211
- package/.agent/agents/penetration-tester.md +157 -174
- package/.agent/agents/performance-optimizer.md +183 -203
- package/.agent/agents/performance-reviewer.md +178 -211
- package/.agent/agents/precedence-reviewer.md +213 -0
- package/.agent/agents/product-manager.md +142 -162
- package/.agent/agents/product-owner.md +6 -25
- package/.agent/agents/project-planner.md +142 -162
- package/.agent/agents/qa-automation-engineer.md +225 -242
- package/.agent/agents/security-auditor.md +174 -194
- package/.agent/agents/seo-specialist.md +193 -213
- package/.agent/agents/sql-reviewer.md +161 -194
- package/.agent/agents/supervisor-agent.md +184 -203
- package/.agent/agents/swarm-worker-contracts.md +17 -17
- package/.agent/agents/swarm-worker-registry.md +46 -46
- package/.agent/agents/test-coverage-reviewer.md +160 -193
- package/.agent/agents/test-engineer.md +0 -21
- package/.agent/agents/type-safety-reviewer.md +175 -208
- package/.agent/patterns/generator.md +9 -9
- package/.agent/patterns/inversion.md +12 -12
- package/.agent/patterns/pipeline.md +9 -9
- package/.agent/patterns/reviewer.md +13 -13
- package/.agent/patterns/tool-wrapper.md +9 -9
- package/.agent/rules/GEMINI.md +63 -63
- package/.agent/scripts/append_flow.js +72 -0
- package/.agent/scripts/case_law_manager.py +525 -0
- package/.agent/scripts/compress_skills.py +167 -0
- package/.agent/scripts/consolidate_skills.py +173 -0
- package/.agent/scripts/deep_compress.py +202 -0
- package/.agent/scripts/minify_context.py +80 -0
- package/.agent/scripts/security_scan.py +1 -1
- package/.agent/scripts/skill_evolution.py +563 -0
- package/.agent/scripts/strip_tribunal.py +41 -0
- package/.agent/skills/agent-organizer/SKILL.md +100 -126
- package/.agent/skills/agentic-patterns/SKILL.md +0 -70
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +134 -160
- package/.agent/skills/api-patterns/SKILL.md +123 -215
- package/.agent/skills/api-security-auditor/SKILL.md +143 -177
- package/.agent/skills/app-builder/SKILL.md +334 -50
- package/.agent/skills/app-builder/templates/SKILL.md +13 -15
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
- package/.agent/skills/appflow-wireframe/SKILL.md +95 -121
- package/.agent/skills/architecture/SKILL.md +169 -331
- package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
- package/.agent/skills/bash-linux/SKILL.md +129 -154
- package/.agent/skills/behavioral-modes/SKILL.md +8 -69
- package/.agent/skills/brainstorming/SKILL.md +436 -104
- package/.agent/skills/building-native-ui/SKILL.md +152 -174
- package/.agent/skills/clean-code/SKILL.md +331 -360
- package/.agent/skills/code-review-checklist/SKILL.md +0 -62
- package/.agent/skills/config-validator/SKILL.md +115 -141
- package/.agent/skills/csharp-developer/SKILL.md +468 -528
- package/.agent/skills/database-design/SKILL.md +104 -369
- package/.agent/skills/deployment-procedures/SKILL.md +119 -145
- package/.agent/skills/devops-engineer/SKILL.md +295 -332
- package/.agent/skills/devops-incident-responder/SKILL.md +87 -113
- package/.agent/skills/doc.md +5 -5
- package/.agent/skills/documentation-templates/SKILL.md +27 -63
- package/.agent/skills/edge-computing/SKILL.md +131 -157
- package/.agent/skills/extract-design-system/SKILL.md +108 -134
- package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
- package/.agent/skills/frontend-design/SKILL.md +151 -499
- package/.agent/skills/game-design-expert/SKILL.md +79 -105
- package/.agent/skills/game-engineering-expert/SKILL.md +96 -122
- package/.agent/skills/geo-fundamentals/SKILL.md +97 -124
- package/.agent/skills/github-operations/SKILL.md +279 -314
- package/.agent/skills/gsap-expert/SKILL.md +119 -826
- package/.agent/skills/i18n-localization/SKILL.md +113 -138
- package/.agent/skills/intelligent-routing/SKILL.md +167 -127
- package/.agent/skills/lint-and-validate/SKILL.md +16 -52
- package/.agent/skills/llm-engineering/SKILL.md +344 -357
- package/.agent/skills/local-first/SKILL.md +128 -154
- package/.agent/skills/mcp-builder/SKILL.md +92 -118
- package/.agent/skills/mobile-design/SKILL.md +213 -219
- package/.agent/skills/motion-engineering/SKILL.md +184 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
- package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
- package/.agent/skills/observability/SKILL.md +293 -330
- package/.agent/skills/parallel-agents/SKILL.md +96 -122
- package/.agent/skills/performance-profiling/SKILL.md +217 -254
- package/.agent/skills/plan-writing/SKILL.md +92 -118
- package/.agent/skills/platform-engineer/SKILL.md +97 -123
- package/.agent/skills/playwright-best-practices/SKILL.md +137 -162
- package/.agent/skills/powershell-windows/SKILL.md +112 -146
- package/.agent/skills/project-idioms/SKILL.md +87 -0
- package/.agent/skills/python-patterns/SKILL.md +15 -35
- package/.agent/skills/python-pro/SKILL.md +148 -754
- package/.agent/skills/react-specialist/SKILL.md +123 -827
- package/.agent/skills/readme-builder/SKILL.md +23 -85
- package/.agent/skills/realtime-patterns/SKILL.md +269 -304
- package/.agent/skills/red-team-tactics/SKILL.md +18 -51
- package/.agent/skills/rust-pro/SKILL.md +623 -701
- package/.agent/skills/seo-fundamentals/SKILL.md +129 -154
- package/.agent/skills/server-management/SKILL.md +164 -190
- package/.agent/skills/shadcn-ui-expert/SKILL.md +181 -206
- package/.agent/skills/skill-creator/SKILL.md +24 -56
- package/.agent/skills/sql-pro/SKILL.md +579 -633
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +35 -66
- package/.agent/skills/swiftui-expert/SKILL.md +151 -176
- package/.agent/skills/systematic-debugging/SKILL.md +92 -118
- package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
- package/.agent/skills/tdd-workflow/SKILL.md +111 -137
- package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
- package/.agent/skills/testing-patterns/SKILL.md +512 -573
- package/.agent/skills/trend-researcher/SKILL.md +30 -71
- package/.agent/skills/ui-ux-pro-max/SKILL.md +8 -41
- package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
- package/.agent/skills/vue-expert/SKILL.md +127 -866
- package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
- package/.agent/skills/web-accessibility-auditor/SKILL.md +168 -193
- package/.agent/skills/web-design-guidelines/SKILL.md +25 -61
- package/.agent/skills/webapp-testing/SKILL.md +119 -145
- package/.agent/skills/whimsy-injector/SKILL.md +58 -132
- package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
- package/.agent/workflows/api-tester.md +151 -151
- package/.agent/workflows/audit.md +127 -138
- package/.agent/workflows/brainstorm.md +110 -110
- package/.agent/workflows/changelog.md +112 -112
- package/.agent/workflows/create.md +124 -124
- package/.agent/workflows/debug.md +165 -189
- package/.agent/workflows/deploy.md +180 -189
- package/.agent/workflows/enhance.md +128 -151
- package/.agent/workflows/fix.md +114 -135
- package/.agent/workflows/generate.md +13 -4
- package/.agent/workflows/migrate.md +160 -160
- package/.agent/workflows/orchestrate.md +168 -168
- package/.agent/workflows/performance-benchmarker.md +114 -123
- package/.agent/workflows/plan.md +173 -173
- package/.agent/workflows/preview.md +80 -80
- package/.agent/workflows/refactor.md +161 -183
- package/.agent/workflows/review-ai.md +101 -129
- package/.agent/workflows/review.md +116 -116
- package/.agent/workflows/session.md +94 -94
- package/.agent/workflows/status.md +79 -79
- package/.agent/workflows/strengthen-skills.md +138 -139
- package/.agent/workflows/swarm.md +179 -179
- package/.agent/workflows/test.md +189 -211
- package/.agent/workflows/tribunal-backend.md +94 -113
- package/.agent/workflows/tribunal-database.md +95 -115
- package/.agent/workflows/tribunal-frontend.md +96 -118
- package/.agent/workflows/tribunal-full.md +93 -133
- package/.agent/workflows/tribunal-mobile.md +95 -119
- package/.agent/workflows/tribunal-performance.md +110 -133
- package/.agent/workflows/ui-ux-pro-max.md +122 -143
- package/README.md +30 -1
- package/bin/tribunal-kit.js +175 -12
- package/package.json +25 -4
- package/.agent/skills/api-patterns/api-style.md +0 -42
- package/.agent/skills/api-patterns/auth.md +0 -24
- package/.agent/skills/api-patterns/documentation.md +0 -26
- package/.agent/skills/api-patterns/graphql.md +0 -41
- package/.agent/skills/api-patterns/rate-limiting.md +0 -31
- package/.agent/skills/api-patterns/response.md +0 -37
- package/.agent/skills/api-patterns/rest.md +0 -40
- package/.agent/skills/api-patterns/security-testing.md +0 -122
- package/.agent/skills/api-patterns/trpc.md +0 -41
- package/.agent/skills/api-patterns/versioning.md +0 -22
- package/.agent/skills/app-builder/agent-coordination.md +0 -71
- package/.agent/skills/app-builder/feature-building.md +0 -53
- package/.agent/skills/app-builder/project-detection.md +0 -34
- package/.agent/skills/app-builder/scaffolding.md +0 -118
- package/.agent/skills/app-builder/tech-stack.md +0 -40
- package/.agent/skills/architecture/context-discovery.md +0 -43
- package/.agent/skills/architecture/examples.md +0 -94
- package/.agent/skills/architecture/pattern-selection.md +0 -68
- package/.agent/skills/architecture/patterns-reference.md +0 -50
- package/.agent/skills/architecture/trade-off-analysis.md +0 -77
- package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
- package/.agent/skills/database-design/database-selection.md +0 -43
- package/.agent/skills/database-design/indexing.md +0 -39
- package/.agent/skills/database-design/migrations.md +0 -48
- package/.agent/skills/database-design/optimization.md +0 -36
- package/.agent/skills/database-design/orm-selection.md +0 -30
- package/.agent/skills/database-design/schema-design.md +0 -56
- package/.agent/skills/frontend-design/animation-guide.md +0 -331
- package/.agent/skills/frontend-design/color-system.md +0 -329
- package/.agent/skills/frontend-design/decision-trees.md +0 -418
- package/.agent/skills/frontend-design/motion-graphics.md +0 -306
- package/.agent/skills/frontend-design/typography-system.md +0 -363
- package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
- package/.agent/skills/frontend-design/visual-effects.md +0 -383
- package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
- package/.agent/skills/mobile-design/decision-trees.md +0 -516
- package/.agent/skills/mobile-design/mobile-backend.md +0 -491
- package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
- package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
- package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
- package/.agent/skills/mobile-design/mobile-performance.md +0 -767
- package/.agent/skills/mobile-design/mobile-testing.md +0 -356
- package/.agent/skills/mobile-design/mobile-typography.md +0 -433
- package/.agent/skills/mobile-design/platform-android.md +0 -666
- package/.agent/skills/mobile-design/platform-ios.md +0 -561
- package/.agent/skills/mobile-design/touch-psychology.md +0 -537
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
|
@@ -1,157 +1,131 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: edge-computing
|
|
3
|
-
description: Edge computing mastery. Cloudflare Workers, Vercel Edge Functions, Durable Objects, edge-compatible data patterns, cold start elimination, caching policies (Stale-While-Revalidate), and global data locality. Use when designing globally distributed, extreme low-latency applications architectures.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version: 2.0.0
|
|
6
|
-
last-updated: 2026-04-02
|
|
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
|
-
1.
|
|
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
|
-
response =
|
|
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
|
-
const
|
|
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
|
-
3. **TCP Database Connections:** Generating `const client = new Client({ connectionString: "postgres://..." })` inside an Edge runtime. The edge requires HTTP/WebSocket driven database architectures, or a managed connection pooler to prevent TCP exhaustion.
|
|
133
|
-
4. **State Fallacy:** Designing a global variable `let activeUsers = 0` inside an edge script and assuming it will sync. V8 Isolates boot and die globally in milliseconds. They share no memory.
|
|
134
|
-
5. **Ignoring `ctx.waitUntil`:** Mutating databases or logging metrics synchronously before returning the web response, slowing down the user. All side-effects on the Edge must be deferred via `ctx.waitUntil(promise)`.
|
|
135
|
-
6. **Non-Web Crypto:** Trying to use Node's `crypto` module. Standardize on the universally browser-compatible `crypto.subtle` Web Crypto API.
|
|
136
|
-
7. **Environment Variable Bleed:** Using `process.env.SECRET` instead of passing the standard `env` injection parameter into the V8 fetch handler.
|
|
137
|
-
8. **Missing CORS Origins:** Forgetting to dynamically append heavy CORS allow headers on the outgoing Edge proxy response manipulation.
|
|
138
|
-
9. **Synchronous Loops:** Designing a large `forEach` data map inside the worker request block, tripping the strict 50ms CPU execution limits resulting in generic 1102 Worker Errors.
|
|
139
|
-
10. **WebSocket Orphanages:** Opening a WebSocket inside a standard Edge function without bridging it into a Durable Object, causing the WS connection to terminate immediately when the isolate tears down.
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## 🏛️ Tribunal Integration
|
|
144
|
-
|
|
145
|
-
### ✅ Pre-Flight Self-Audit
|
|
146
|
-
```
|
|
147
|
-
✅ Have I completely avoided using native Node.js core modules (`fs`, `path`, `crypto`)?
|
|
148
|
-
✅ Am I leveraging standard Web APIs (Fetch, Streams, Web Crypto)?
|
|
149
|
-
✅ Have database interactions utilized HTTP clients (or connection poolers) instead of direct TCP?
|
|
150
|
-
✅ Has `ctx.waitUntil()` been used for all background analytics/caching updates?
|
|
151
|
-
✅ Are environment variables injected via `env.VAR` rather than `process.env`?
|
|
152
|
-
✅ Is localized global state (chat rooms, live editing) explicitly deferred to Durable Objects?
|
|
153
|
-
✅ Did I define strict `s-maxage` and `stale-while-revalidate` directives for caching performance?
|
|
154
|
-
✅ Are third-party library imports audited for their V8 isolate compatibility footprint?
|
|
155
|
-
✅ Is JSON parsing happening inside `try/catch` to avoid 500ing early isolates?
|
|
156
|
-
✅ Did I avoid deploying massive >1MB bundle payloads to the Edge routing layer?
|
|
157
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: edge-computing
|
|
3
|
+
description: Edge computing mastery. Cloudflare Workers, Vercel Edge Functions, Durable Objects, edge-compatible data patterns, cold start elimination, caching policies (Stale-While-Revalidate), and global data locality. Use when designing globally distributed, extreme low-latency applications architectures.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
last-updated: 2026-04-02
|
|
7
|
+
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Hallucination Traps (Read First)
|
|
11
|
+
- ❌ Importing Node.js-only APIs (fs, net, child_process) in edge functions -> ✅ Edge runtime has NO Node.js APIs; use Web APIs only
|
|
12
|
+
- ❌ Using `global` or module-level mutable state in edge -> ✅ Edge functions are stateless across requests; use KV/Durable Objects for state
|
|
13
|
+
- ❌ Assuming edge functions have unlimited execution time -> ✅ Cloudflare Workers: 30s, Vercel Edge: 25s; design for millisecond responses
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Edge Computing — Global Latency Mastery
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1. The Edge Model (V8 Isolates vs Node.js)
|
|
23
|
+
|
|
24
|
+
Edge functions (Cloudflare Workers, Vercel Edge) run on V8 Isolates, NOT standard Node.js environments.
|
|
25
|
+
|
|
26
|
+
**What This Means:**
|
|
27
|
+
1. Extremely fast cold starts (< 5ms) because there is no underlying OS process bootup.
|
|
28
|
+
2. Hard memory/time limits per request (e.g., 50ms CPU time max).
|
|
29
|
+
3. **NO NATIVE NODE MODULES.** You cannot use `fs`, `child_process`, or heavy native C++ binaries (e.g., standard `bcrypt`, `sharp`).
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
// ❌ BAD: Attempting to use Node native core modules
|
|
33
|
+
import fs from "fs";
|
|
34
|
+
import bcrypt from "bcrypt"; // Has C++ bindings, will instantly crash on V8 edge
|
|
35
|
+
|
|
36
|
+
// ✅ GOOD: Utilizing standard Web APIs (Fetch, CryptoKey)
|
|
37
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password));
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 2. Advanced Route Caching (Stale-While-Revalidate)
|
|
43
|
+
|
|
44
|
+
The highest value proposition of the edge is intercepting requests *before* they cross the ocean.
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
// Standard Edge Proxy request handling
|
|
48
|
+
export default {
|
|
49
|
+
async fetch(request, env, ctx) {
|
|
50
|
+
const url = new URL(request.url);
|
|
51
|
+
|
|
52
|
+
// 1. Cache API responses at the edge
|
|
53
|
+
const cache = caches.default;
|
|
54
|
+
let response = await cache.match(request);
|
|
55
|
+
|
|
56
|
+
if (!response) {
|
|
57
|
+
// 2. Fetch Origin (The real server in Virginia)
|
|
58
|
+
response = await fetch(request);
|
|
59
|
+
|
|
60
|
+
// 3. Mutate Headers for SWR (Stale-While-Revalidate)
|
|
61
|
+
// Instructs the Edge CDN: Serve the stale version instantly to the user,
|
|
62
|
+
// but fire an async request in the background to update the cache for the next user.
|
|
63
|
+
response = new Response(response.body, response);
|
|
64
|
+
response.headers.set('Cache-Control', 's-maxage=60, stale-while-revalidate=86400');
|
|
65
|
+
|
|
66
|
+
// 4. Store in Cache asynchronously (do not block the user response)
|
|
67
|
+
ctx.waitUntil(cache.put(request, response.clone()));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return response;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 3. Edge Data Locality (The Database Problem)
|
|
78
|
+
|
|
79
|
+
Running logic globally while querying a monolithic database in `us-east-1` is counter-productive. The latency of establishing a connection across the Atlantic will negate any Edge benefits.
|
|
80
|
+
|
|
81
|
+
### Solutions:
|
|
82
|
+
1. **Edge KV Stores**: (Cloudflare KV, Vercel KV) Eventually consistent, highly localized read-latency configs suitable for configuration routing, user sessions, or feature flags.
|
|
83
|
+
2. **Distributed SQLite**: (Cloudflare D1, Turso) Replicas distributed to edge nodes automatically.
|
|
84
|
+
3. **Connection Pooling**: Use an HTTP/Connection Pool proxy strictly (e.g., Prisma Accelerate, Supabase Edge Pooler). You cannot establish TCP `pg://` connections directly from millions of spinning V8 isolates, you will OOM crash the database.
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
// ✅ Turso / LibSQL (Distributed Edge DB) usage:
|
|
88
|
+
import { createClient } from "@libsql/client/web";
|
|
89
|
+
|
|
90
|
+
const client = createClient({
|
|
91
|
+
url: env.TURSO_DATABASE_URL,
|
|
92
|
+
authToken: env.TURSO_AUTH_TOKEN,
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const result = await client.execute("SELECT * FROM users WHERE id = ?", [userId]);
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 4. WebSockets at the Edge (Durable Objects)
|
|
101
|
+
|
|
102
|
+
Standard Edge functions are stateless. To hold persistent state (like a live multiplayer gaming room, or a chat room's WebSocket connections across multiple users), you must funnel those connections into a single point of state: a Durable Object.
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
// A Durable Object serves as a single source of truth that users globally connect into
|
|
106
|
+
export class ChatRoom {
|
|
107
|
+
constructor(state, env) {
|
|
108
|
+
this.state = state;
|
|
109
|
+
this.sessions = [];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
async fetch(request) {
|
|
113
|
+
// Upgrade standard HTTP to WebSocket
|
|
114
|
+
const pair = new WebSocketPair();
|
|
115
|
+
|
|
116
|
+
// Accept connection, store it globally
|
|
117
|
+
this.sessions.push(pair.server);
|
|
118
|
+
pair.server.accept();
|
|
119
|
+
|
|
120
|
+
// Handle incoming Chat messages
|
|
121
|
+
pair.server.addEventListener("message", msg => {
|
|
122
|
+
// Broadcast to all other connected edge users
|
|
123
|
+
this.sessions.forEach(session => session.send(msg.data));
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
return new Response(null, { status: 101, webSocket: pair.client });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
@@ -1,134 +1,108 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: extract-design-system
|
|
3
|
-
description: Design system extraction and tokenization mastery. Identifying repeated HTML/CSS patterns, extracting CSS variables, generating design tokens (colors, spacing, typography), building reusable component schemas, and standardizing ad-hoc styles into cohesive global systems. Use when refactoring messy CSS into a unified design system.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version: 2.0.0
|
|
6
|
-
last-updated: 2026-04-02
|
|
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
|
-
2.
|
|
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
|
-
3. **Re-inventing Tailwind:** Extracting 400 CSS utility classes manually into a custom CSS file instead of properly mapping the design tokens into the existing Tailwind `@theme` engine.
|
|
110
|
-
4. **Prop Drilling Hell:** Converting a button to a component, but exposing 15 individual CSS class props (`textColor`, `paddingSize`, `borderR`) instead of grouping them logically into a `Variant` CVA scale.
|
|
111
|
-
5. **Dark Mode Blindness:** Extracting a beautiful Light Mode system and failing to invert the HSL lightness scale for the dark mode `:root` selector, resulting in invisible text.
|
|
112
|
-
6. **Rgb Hex Hardcoding:** Extracting hex codes (`#FFFFFF`) directly instead of defining them as `H S L` variable channels, destroying the ability to inject dynamic `opacity` (e.g., `bg-primary/50`).
|
|
113
|
-
7. **One-Off Snowflake Classes:** Creating a unique component explicitly for one page (e.g., `<CheckoutSubmitButton>`) instead of designing a generic `<Button intent="checkout">`.
|
|
114
|
-
8. **Font Sizing vs Line Height:** Extracting `font-size` tokens, but ignoring the paired `line-height` standardizations, causing typography block rendering to collapse vertically.
|
|
115
|
-
9. **Hover-State Void:** Extracting the static appearance of elements perfectly but entirely ignoring the `hover:`, `focus:`, and `active:` micro-interaction states that defined the original UX.
|
|
116
|
-
10. **The Component Dump:** Scanning a 2,000 line page and trying to extract 15 components simultaneously inside a single LLM response. The extraction must be phased iteratively Component by Component.
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## 🏛️ Tribunal Integration
|
|
121
|
-
|
|
122
|
-
### ✅ Pre-Flight Self-Audit
|
|
123
|
-
```
|
|
124
|
-
✅ Are magic numbers strictly eradicated and mapped to a geometric mathematical scale (e.g., 4px grids)?
|
|
125
|
-
✅ Are color tokens named semantically (`--primary`, `--danger`) rather than literally (`--blue`)?
|
|
126
|
-
✅ Have hex codes been transformed to HSL structures to support dynamic opacity modification?
|
|
127
|
-
✅ Is the `[data-theme='dark']` inversion matrix properly established alongside the root tokens?
|
|
128
|
-
✅ Has `class-variance-authority` (cva) been used to cleanly manage component intent states?
|
|
129
|
-
✅ Did I mathematically normalize inconsistent padding (e.g., fixing 11px and 13px both into 12px)?
|
|
130
|
-
✅ Are global focus rings standardized to ensure accessibility consistency across interactive points?
|
|
131
|
-
✅ Did I define the paired line-height geometries alongside the core typography font sizing tokens?
|
|
132
|
-
✅ Have hover and transition states been deeply captured and centralized?
|
|
133
|
-
✅ Did I phase the extraction process component-by-component to avoid hallucinating massive context blocks?
|
|
134
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: extract-design-system
|
|
3
|
+
description: Design system extraction and tokenization mastery. Identifying repeated HTML/CSS patterns, extracting CSS variables, generating design tokens (colors, spacing, typography), building reusable component schemas, and standardizing ad-hoc styles into cohesive global systems. Use when refactoring messy CSS into a unified design system.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
version: 2.0.0
|
|
6
|
+
last-updated: 2026-04-02
|
|
7
|
+
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Hallucination Traps (Read First)
|
|
11
|
+
- ❌ Creating CSS variables for every possible value -> ✅ Only tokenize values that appear 3+ times across components
|
|
12
|
+
- ❌ Extracting a design system before the UI is stable -> ✅ Wait until patterns are proven by real usage before standardizing
|
|
13
|
+
- ❌ Naming tokens by appearance (`--blue-500`) instead of purpose (`--color-primary`) -> ✅ Semantic names survive theme changes
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Extract Design System — Tokenization Mastery
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1. The Token Extraction Protocol
|
|
23
|
+
|
|
24
|
+
When reviewing a messy, legacy UI file (`<div style="background: #e23e2a; border-radius: 6px; padding: 12px">`), the agent must extract these hardcoded values into Global Tokens.
|
|
25
|
+
|
|
26
|
+
### Tier 1: Core Design Tokens (The Foundation)
|
|
27
|
+
Tokens should be semantic, not literal. `color-brand` > `color-red`.
|
|
28
|
+
|
|
29
|
+
```css
|
|
30
|
+
:root {
|
|
31
|
+
/* Colors (HSL is preferred for programmatic manipulation) */
|
|
32
|
+
--brand-primary: 360, 76%, 53%; /* The specific red */
|
|
33
|
+
--surface-default: 0, 0%, 100%;
|
|
34
|
+
--surface-muted: 210, 40%, 96%;
|
|
35
|
+
|
|
36
|
+
/* Typography */
|
|
37
|
+
--font-sans: 'Inter', system-ui, sans-serif;
|
|
38
|
+
|
|
39
|
+
/* Space / Geometry (8px grid scale) */
|
|
40
|
+
--space-1: 0.25rem; /* 4px */
|
|
41
|
+
--space-2: 0.5rem; /* 8px */
|
|
42
|
+
--space-3: 0.75rem; /* 12px */
|
|
43
|
+
--space-4: 1rem; /* 16px */
|
|
44
|
+
|
|
45
|
+
/* Radaii */
|
|
46
|
+
--radius-sm: 4px;
|
|
47
|
+
--radius-md: 6px; /* Extracted from the 6px legacy element */
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Tier 2: The Refactor
|
|
52
|
+
(Using Tailwind v4 CSS-First as the standard delivery mechanism)
|
|
53
|
+
|
|
54
|
+
```css
|
|
55
|
+
@theme {
|
|
56
|
+
--color-primary: hsl(var(--brand-primary));
|
|
57
|
+
--spacing-3: var(--space-3);
|
|
58
|
+
--radius-md: var(--radius-md);
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 2. Standardizing the 3 "C" Configurations
|
|
65
|
+
|
|
66
|
+
If building a design system inside React/Next.js, standardize the system through 3 primary mechanisms.
|
|
67
|
+
|
|
68
|
+
1. **Colors (Dark Mode First):** Every single color extracted must have an inverse defined for `[data-theme='dark']`.
|
|
69
|
+
2. **Container Queries:** Media queries (`@media (min-width)`) define the *device*. Container queries (`@container (min-width)`) define the *component context*. Always extract component sizing to rely on container-driven layouts for ultimate reusability.
|
|
70
|
+
3. **Compound Variants (CVA):** Group extracted CSS classes into logical component states rather than passing 10 boolean props.
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
// ✅ Efficient Extracted Component Architecture
|
|
74
|
+
import { cva } from "class-variance-authority";
|
|
75
|
+
|
|
76
|
+
const buttonStyles = cva(
|
|
77
|
+
"inline-flex items-center justify-center rounded-md font-medium transition-colors", // Base
|
|
78
|
+
{
|
|
79
|
+
variants: {
|
|
80
|
+
intent: {
|
|
81
|
+
primary: "bg-primary text-white hover:bg-primary/90",
|
|
82
|
+
destructive: "bg-red-500 text-white hover:bg-red-600",
|
|
83
|
+
outline: "border border-input hover:bg-accent",
|
|
84
|
+
},
|
|
85
|
+
size: {
|
|
86
|
+
sm: "h-9 px-3 text-sm",
|
|
87
|
+
default: "h-10 px-4 py-2", // Extracted standard size
|
|
88
|
+
lg: "h-11 px-8",
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
defaultVariants: {
|
|
92
|
+
intent: "primary",
|
|
93
|
+
size: "default",
|
|
94
|
+
},
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 3. Auditing the Accessibility Baseline
|
|
102
|
+
|
|
103
|
+
A Design System must mandate accessibility at the token level, preventing developers from manually breaking contrast ratios later.
|
|
104
|
+
|
|
105
|
+
1. Extracted primary text colors must hit a **4.5:1 contrast ratio** against the extracted background surfaces.
|
|
106
|
+
2. Focus rings must be decoupled and standardized globally (`ring-2 ring-primary ring-offset-2`).
|
|
107
|
+
|
|
108
|
+
---
|