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,182 +1,180 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: local-first
|
|
3
|
-
description: Local-first software architecture mastery. CRDTs (Conflict-free Replicated Data Types), IndexedDB synchronization, sync engines (ElectricSQL, Replicache, PowerSync), offline-capable data fetching, optimistic UI, and SQLite in the browser (WASM). Use when building PWA offline capabilities, rapid UIs, or multiplayer collaborative tools.
|
|
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
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
//
|
|
79
|
-
yarray.
|
|
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
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
136
|
-
|
|
137
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
138
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
139
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
140
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
141
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
148
|
-
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
149
|
-
|
|
150
|
-
### ❌ Forbidden AI Tropes
|
|
151
|
-
|
|
152
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
153
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
154
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
Review these questions before confirming output:
|
|
159
|
-
```
|
|
160
|
-
✅ Did I rely ONLY on real, verified tools and methods?
|
|
161
|
-
✅ Is this solution appropriately scoped to the user's constraints?
|
|
162
|
-
✅ Did I handle potential failure modes and edge cases?
|
|
163
|
-
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
167
|
-
|
|
168
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
169
|
-
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
170
|
-
- ✅ **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.
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
## Pre-Flight Checklist
|
|
174
|
-
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
175
|
-
- [ ] Have I checked the environment for relevant existing implementations?
|
|
176
|
-
|
|
177
|
-
## VBC Protocol (Verification-Before-Completion)
|
|
178
|
-
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
1
|
+
---
|
|
2
|
+
name: local-first
|
|
3
|
+
description: Local-first software architecture mastery. CRDTs (Conflict-free Replicated Data Types), IndexedDB synchronization, sync engines (ElectricSQL, Replicache, PowerSync), offline-capable data fetching, optimistic UI, and SQLite in the browser (WASM). Use when building PWA offline capabilities, rapid UIs, or multiplayer collaborative tools.
|
|
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
|
+
routing:
|
|
9
|
+
domain: general
|
|
10
|
+
tier: basic
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Hallucination Traps (Read First)
|
|
14
|
+
|
|
15
|
+
- ❌ Assuming server data is always newer than local data -> ✅ Conflicts are inevitable; design merge strategy (LWW, CRDTs) before writing code
|
|
16
|
+
- ❌ Using localStorage for anything beyond 5MB -> ✅ Use IndexedDB (via Dexie or idb) for structured local storage; localStorage is synchronous and tiny
|
|
17
|
+
- ❌ Syncing entire datasets on every connection -> ✅ Use incremental sync with watermarks/timestamps to minimize bandwidth
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Local-First Architecture — Offline-capable Mastery
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. Core Principles of Local-First
|
|
26
|
+
|
|
27
|
+
In a Cloud-First app (REST/GraphQL), the UI waits for the server.
|
|
28
|
+
In a Local-First app, the UI talks _only_ to a local database. A background engine syncs that database to the cloud when online.
|
|
29
|
+
|
|
30
|
+
1. **Fast by default**: Zero network latency because reads/writes happen locally.
|
|
31
|
+
2. **Offline works flawlessly**: The app bounds to a local store (SQLite via WASM, IndexedDB).
|
|
32
|
+
3. **Multi-device Sync**: Conflict resolution is handled natively (usually via CRDTs or central conflict ledgers).
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 2. Sync Engines vs traditional fetching
|
|
37
|
+
|
|
38
|
+
Do not use React Query / SWR to build local-first. They are HTTP caching mechanisms.
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
// ❌ CLOUD-FIRST (React Query / Fetch)
|
|
42
|
+
// Fails when offline. Subject to UI latency.
|
|
43
|
+
const { data, isLoading } = useQuery({
|
|
44
|
+
queryKey: ["todos"],
|
|
45
|
+
queryFn: () => fetch("/api/todos").then((res) => res.json()),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// ✅ LOCAL-FIRST (e.g. PowerSync / ElectricSQL / WatermelonDB)
|
|
49
|
+
// Resolves instantly. Data lives locally. Syncs silently in background.
|
|
50
|
+
import { useQuery } from "@powersync/react";
|
|
51
|
+
|
|
52
|
+
const { data, isLoading } = useQuery("SELECT * FROM todos ORDER BY created_at DESC");
|
|
53
|
+
|
|
54
|
+
// Writes are also local First
|
|
55
|
+
const addTodo = async (text: string) => {
|
|
56
|
+
// Written to the local SQLite WASM database instantly.
|
|
57
|
+
await localDb.execute("INSERT INTO todos (id, text) VALUES (uuid(), ?)", [text]);
|
|
58
|
+
// Background worker syncs to Postgres later.
|
|
59
|
+
};
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 3. Conflict Resolution (CRDTs)
|
|
65
|
+
|
|
66
|
+
When two users edit the exact same document offline and then reconnect, how is it resolved?
|
|
67
|
+
|
|
68
|
+
**Conflict-free Replicated Data Types (CRDTs)** automatically merge data without requiring a central server to decide the "winner."
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// Yjs - The leading CRDT library for collaborative text/state
|
|
72
|
+
import * as Y from "yjs";
|
|
73
|
+
import { WebsocketProvider } from "y-websocket";
|
|
74
|
+
|
|
75
|
+
const ydoc = new Y.Doc();
|
|
76
|
+
const provider = new WebsocketProvider("wss://sync.example.com", "room-1", ydoc);
|
|
77
|
+
|
|
78
|
+
// Shared state array
|
|
79
|
+
const yarray = ydoc.getArray("todos");
|
|
80
|
+
|
|
81
|
+
// Observe changes (Fires locally and when peers sync)
|
|
82
|
+
yarray.observe((event) => {
|
|
83
|
+
console.log("State updated natively without conflict:", yarray.toArray());
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Insert data (Instantly merges cleanly with remote peers)
|
|
87
|
+
yarray.insert(0, ["Buy milk"]);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. In-Browser Databases
|
|
93
|
+
|
|
94
|
+
Storing megabytes of relational data in `localStorage` will crash the browser.
|
|
95
|
+
|
|
96
|
+
| Technology | Use Case | Pros | Cons |
|
|
97
|
+
| :--------------------- | :------------ | :---------------------------------- | :-------------------------------------------- |
|
|
98
|
+
| **IndexedDB** | Key-Value | Native to browser | Hideous callback API, weak querying |
|
|
99
|
+
| **Dexie.js** | Key-Value | Wraps IndexedDB with clean Promises | Not relational |
|
|
100
|
+
| **SQLite WASM (OPFS)** | Relational | True SQL in browser | Setup complexity (Origin Private File System) |
|
|
101
|
+
| **RxDB** | NoSQL Offline | Reactive UI out-of-the-box | Requires learning RxJS/Observables |
|
|
102
|
+
| **WatermelonDB** | Relational | Built for React Native & Web | Requires native module setup on mobile |
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
// Clean IndexedDB Wrapper Example (Dexie)
|
|
106
|
+
import Dexie, { type EntityTable } from "dexie";
|
|
107
|
+
|
|
108
|
+
interface Friend {
|
|
109
|
+
id: number;
|
|
110
|
+
name: string;
|
|
111
|
+
age: number;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const db = new Dexie("FriendsDatabase") as Dexie & {
|
|
115
|
+
friends: EntityTable<Friend, "id">;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
// Schema configuration
|
|
119
|
+
db.version(1).stores({
|
|
120
|
+
friends: "++id, name, age", // Primary key and indexed props
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// Write to DB instantly
|
|
124
|
+
await db.friends.add({ name: "Alice", age: 25 });
|
|
125
|
+
|
|
126
|
+
// Live query natively drives React state without network calls
|
|
127
|
+
import { useLiveQuery } from "dexie-react-hooks";
|
|
128
|
+
const friends = useLiveQuery(() => db.friends.where("age").above(21).toArray());
|
|
129
|
+
```
|
|
179
130
|
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
136
|
+
|
|
137
|
+
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
138
|
+
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
139
|
+
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
140
|
+
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
141
|
+
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
**Slash command: `/review` or `/tribunal-full`**
|
|
146
|
+
**Active reviewers: `logic-reviewer` · `security-auditor`**
|
|
147
|
+
|
|
148
|
+
### ❌ Forbidden AI Tropes
|
|
149
|
+
|
|
150
|
+
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
151
|
+
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
152
|
+
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
153
|
+
|
|
154
|
+
Review these questions before confirming output:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
✅ Did I rely ONLY on real, verified tools and methods?
|
|
158
|
+
✅ Is this solution appropriately scoped to the user's constraints?
|
|
159
|
+
✅ Did I handle potential failure modes and edge cases?
|
|
160
|
+
✅ Have I avoided generic boilerplate that doesn't add value?
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
164
|
+
|
|
165
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
166
|
+
|
|
167
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
168
|
+
- ✅ **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.
|
|
169
|
+
|
|
170
|
+
## Pre-Flight Checklist
|
|
171
|
+
|
|
172
|
+
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
173
|
+
- [ ] Have I checked the environment for relevant existing implementations?
|
|
174
|
+
|
|
175
|
+
## VBC Protocol (Verification-Before-Completion)
|
|
176
|
+
|
|
177
|
+
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
180
178
|
|
|
181
179
|
---
|
|
182
180
|
|
|
@@ -206,6 +204,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
|
|
|
206
204
|
### ✅ Pre-Flight Self-Audit
|
|
207
205
|
|
|
208
206
|
Review these questions before confirming output:
|
|
207
|
+
|
|
209
208
|
```
|
|
210
209
|
✅ Did I rely ONLY on real, verified tools and methods?
|
|
211
210
|
✅ Is this solution appropriately scoped to the user's constraints?
|
|
@@ -216,5 +215,6 @@ Review these questions before confirming output:
|
|
|
216
215
|
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
217
216
|
|
|
218
217
|
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
218
|
+
|
|
219
219
|
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
220
220
|
- ✅ **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.
|