tribunal-kit 2.4.6 → 3.1.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 +139 -86
- package/.agent/agents/ai-code-reviewer.md +160 -90
- package/.agent/agents/backend-specialist.md +164 -127
- package/.agent/agents/code-archaeologist.md +115 -73
- package/.agent/agents/database-architect.md +130 -110
- package/.agent/agents/debugger.md +137 -97
- package/.agent/agents/dependency-reviewer.md +78 -30
- package/.agent/agents/devops-engineer.md +161 -118
- package/.agent/agents/documentation-writer.md +151 -87
- package/.agent/agents/explorer-agent.md +117 -99
- package/.agent/agents/frontend-reviewer.md +127 -47
- package/.agent/agents/frontend-specialist.md +169 -109
- package/.agent/agents/game-developer.md +28 -164
- package/.agent/agents/logic-reviewer.md +87 -49
- package/.agent/agents/mobile-developer.md +151 -103
- package/.agent/agents/mobile-reviewer.md +133 -50
- package/.agent/agents/orchestrator.md +121 -110
- package/.agent/agents/penetration-tester.md +103 -77
- package/.agent/agents/performance-optimizer.md +136 -92
- package/.agent/agents/performance-reviewer.md +139 -69
- package/.agent/agents/product-manager.md +104 -70
- package/.agent/agents/product-owner.md +6 -25
- package/.agent/agents/project-planner.md +95 -95
- package/.agent/agents/qa-automation-engineer.md +174 -87
- package/.agent/agents/security-auditor.md +133 -129
- package/.agent/agents/seo-specialist.md +160 -99
- package/.agent/agents/sql-reviewer.md +132 -44
- package/.agent/agents/supervisor-agent.md +137 -109
- 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 +132 -53
- package/.agent/agents/test-engineer.md +0 -21
- package/.agent/agents/type-safety-reviewer.md +143 -33
- 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/__pycache__/auto_preview.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -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/strip_tribunal.py +41 -0
- package/.agent/skills/agent-organizer/SKILL.md +60 -100
- package/.agent/skills/agentic-patterns/SKILL.md +0 -70
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +108 -53
- package/.agent/skills/api-patterns/SKILL.md +197 -257
- package/.agent/skills/api-security-auditor/SKILL.md +125 -57
- package/.agent/skills/app-builder/SKILL.md +326 -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 +71 -98
- package/.agent/skills/architecture/SKILL.md +161 -200
- package/.agent/skills/authentication-best-practices/SKILL.md +121 -54
- package/.agent/skills/bash-linux/SKILL.md +71 -166
- package/.agent/skills/behavioral-modes/SKILL.md +8 -69
- package/.agent/skills/brainstorming/SKILL.md +345 -127
- package/.agent/skills/building-native-ui/SKILL.md +125 -57
- package/.agent/skills/clean-code/SKILL.md +266 -149
- package/.agent/skills/code-review-checklist/SKILL.md +0 -62
- package/.agent/skills/config-validator/SKILL.md +73 -131
- package/.agent/skills/csharp-developer/SKILL.md +434 -73
- package/.agent/skills/database-design/SKILL.md +190 -275
- package/.agent/skills/deployment-procedures/SKILL.md +81 -158
- package/.agent/skills/devops-engineer/SKILL.md +255 -94
- package/.agent/skills/devops-incident-responder/SKILL.md +50 -69
- package/.agent/skills/doc.md +5 -5
- package/.agent/skills/documentation-templates/SKILL.md +19 -63
- package/.agent/skills/edge-computing/SKILL.md +75 -165
- package/.agent/skills/extract-design-system/SKILL.md +84 -58
- package/.agent/skills/framer-motion-expert/SKILL.md +195 -0
- package/.agent/skills/frontend-design/SKILL.md +151 -499
- package/.agent/skills/game-design-expert/SKILL.md +71 -0
- package/.agent/skills/game-engineering-expert/SKILL.md +88 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +52 -178
- package/.agent/skills/github-operations/SKILL.md +197 -272
- package/.agent/skills/gsap-expert/SKILL.md +194 -0
- package/.agent/skills/i18n-localization/SKILL.md +60 -172
- package/.agent/skills/intelligent-routing/SKILL.md +123 -103
- package/.agent/skills/lint-and-validate/SKILL.md +8 -52
- package/.agent/skills/llm-engineering/SKILL.md +281 -195
- package/.agent/skills/local-first/SKILL.md +76 -159
- package/.agent/skills/mcp-builder/SKILL.md +48 -188
- 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 +184 -203
- package/.agent/skills/nodejs-best-practices/SKILL.md +403 -185
- package/.agent/skills/observability/SKILL.md +211 -203
- package/.agent/skills/parallel-agents/SKILL.md +53 -146
- package/.agent/skills/performance-profiling/SKILL.md +171 -151
- package/.agent/skills/plan-writing/SKILL.md +49 -153
- package/.agent/skills/platform-engineer/SKILL.md +57 -103
- package/.agent/skills/playwright-best-practices/SKILL.md +110 -63
- package/.agent/skills/powershell-windows/SKILL.md +61 -179
- package/.agent/skills/python-patterns/SKILL.md +7 -35
- package/.agent/skills/python-pro/SKILL.md +273 -114
- package/.agent/skills/react-specialist/SKILL.md +227 -108
- package/.agent/skills/readme-builder/SKILL.md +15 -85
- package/.agent/skills/realtime-patterns/SKILL.md +216 -243
- package/.agent/skills/red-team-tactics/SKILL.md +10 -51
- package/.agent/skills/rust-pro/SKILL.md +525 -142
- package/.agent/skills/seo-fundamentals/SKILL.md +92 -153
- package/.agent/skills/server-management/SKILL.md +110 -166
- package/.agent/skills/shadcn-ui-expert/SKILL.md +154 -55
- package/.agent/skills/skill-creator/SKILL.md +18 -58
- package/.agent/skills/sql-pro/SKILL.md +543 -68
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
- package/.agent/skills/swiftui-expert/SKILL.md +124 -57
- package/.agent/skills/systematic-debugging/SKILL.md +49 -151
- package/.agent/skills/tailwind-patterns/SKILL.md +433 -149
- package/.agent/skills/tdd-workflow/SKILL.md +63 -169
- package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
- package/.agent/skills/testing-patterns/SKILL.md +437 -130
- package/.agent/skills/trend-researcher/SKILL.md +30 -71
- package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
- package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
- package/.agent/skills/vue-expert/SKILL.md +225 -119
- package/.agent/skills/vulnerability-scanner/SKILL.md +264 -226
- package/.agent/skills/web-accessibility-auditor/SKILL.md +141 -58
- package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
- package/.agent/skills/webapp-testing/SKILL.md +71 -196
- package/.agent/skills/whimsy-injector/SKILL.md +58 -132
- package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
- package/.agent/workflows/api-tester.md +96 -224
- package/.agent/workflows/audit.md +81 -122
- package/.agent/workflows/brainstorm.md +69 -105
- package/.agent/workflows/changelog.md +65 -97
- package/.agent/workflows/create.md +73 -88
- package/.agent/workflows/debug.md +80 -111
- package/.agent/workflows/deploy.md +119 -92
- package/.agent/workflows/enhance.md +80 -91
- package/.agent/workflows/fix.md +68 -97
- package/.agent/workflows/generate.md +165 -164
- package/.agent/workflows/migrate.md +106 -109
- package/.agent/workflows/orchestrate.md +103 -86
- package/.agent/workflows/performance-benchmarker.md +77 -268
- package/.agent/workflows/plan.md +120 -98
- package/.agent/workflows/preview.md +39 -96
- package/.agent/workflows/refactor.md +105 -97
- package/.agent/workflows/review-ai.md +63 -102
- package/.agent/workflows/review.md +71 -110
- package/.agent/workflows/session.md +53 -113
- package/.agent/workflows/status.md +42 -88
- package/.agent/workflows/strengthen-skills.md +90 -51
- package/.agent/workflows/swarm.md +114 -129
- package/.agent/workflows/test.md +125 -102
- package/.agent/workflows/tribunal-backend.md +60 -78
- package/.agent/workflows/tribunal-database.md +62 -100
- package/.agent/workflows/tribunal-frontend.md +62 -82
- package/.agent/workflows/tribunal-full.md +56 -100
- package/.agent/workflows/tribunal-mobile.md +65 -94
- package/.agent/workflows/tribunal-performance.md +62 -105
- package/.agent/workflows/ui-ux-pro-max.md +72 -121
- package/README.md +11 -15
- package/package.json +1 -1
- 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/dotnet-core-expert/SKILL.md +0 -103
- package/.agent/skills/framer-motion-animations/SKILL.md +0 -74
- 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/game-development/2d-games/SKILL.md +0 -119
- package/.agent/skills/game-development/3d-games/SKILL.md +0 -135
- package/.agent/skills/game-development/SKILL.md +0 -236
- package/.agent/skills/game-development/game-art/SKILL.md +0 -185
- package/.agent/skills/game-development/game-audio/SKILL.md +0 -190
- package/.agent/skills/game-development/game-design/SKILL.md +0 -129
- package/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
- package/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
- package/.agent/skills/game-development/pc-games/SKILL.md +0 -144
- package/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
- package/.agent/skills/game-development/web-games/SKILL.md +0 -150
- 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,75 +1,143 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: api-security-auditor
|
|
3
|
-
description: API Security
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version:
|
|
6
|
-
last-updated: 2026-
|
|
7
|
-
applies-to-model: claude-3-7-sonnet
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# API Security Auditor
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
##
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- NEVER assume that an authenticated user is authorized to access a specific resource.
|
|
18
|
-
- For every database query involving an ID, you must explicitly check if the requesting user `ID` matches the resource's `owner_id` or that the user has an `Admin` claim.
|
|
19
|
-
|
|
20
|
-
2. **Input Validation & Sanitization:**
|
|
21
|
-
- Every single API boundary must have a strict schema validation layer (e.g., Zod, Joi, or Pydantic).
|
|
22
|
-
- Reject arbitrary payloads. Do not accept `{ ...request.body }` dynamically into database ORMs. Extract explicitly required fields.
|
|
23
|
-
|
|
24
|
-
3. **Rate Limiting & Abuse Prevention:**
|
|
25
|
-
- Require rate-limit policies on all public, unauthorized endpoints (especially `/login`, `/register`, `/reset-password`).
|
|
26
|
-
- Standardize error responses. Do not leak stack traces or internal database column names via 500 errors. Return generic 400/401/403/404 messages.
|
|
27
|
-
|
|
28
|
-
## Execution
|
|
29
|
-
Whenever you design, write, or review backend API routes, implicitly verify:
|
|
30
|
-
- *"Is this route checking role authorization?"*
|
|
31
|
-
- *"Is the parameter mapped cleanly?"*
|
|
32
|
-
- *"Can this be recursively requested 10,000 times a second?"*
|
|
33
|
-
If any answer leaves the system vulnerable, halt generation and rewrite the code safely.
|
|
1
|
+
---
|
|
2
|
+
name: api-security-auditor
|
|
3
|
+
description: API Security auditing mastery. Rate limiting architecture, API key management, payload validation, IDOR (Insecure Direct Object Reference) prevention, mass assignment flaws, GraphQL security, and server-side mitigations. Use when building external APIs, B2B services, or reviewing endpoint security.
|
|
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
|
+
# API Security Auditor — Endpoint Hardening Mastery
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Insecure Direct Object Reference (IDOR)
|
|
15
|
+
|
|
16
|
+
IDOR occurs when an application provides direct access to objects based on user-supplied input without authorization checks.
|
|
34
17
|
|
|
18
|
+
```typescript
|
|
19
|
+
// ❌ VULNERABLE: Trusting the requested ID blindly
|
|
20
|
+
app.get("/api/receipts/:id", async (req, res) => {
|
|
21
|
+
const receipt = await db.receipts.findById(req.params.id);
|
|
22
|
+
res.json(receipt); // Attack: Increment ID to view others' receipts
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// ✅ SAFE: Verifying ownership
|
|
26
|
+
app.get("/api/receipts/:id", async (req, res) => {
|
|
27
|
+
const receipt = await db.receipts.findById(req.params.id);
|
|
28
|
+
if (!receipt) return res.status(404).send();
|
|
29
|
+
|
|
30
|
+
// Explicit tenancy check
|
|
31
|
+
if (receipt.userId !== req.user.id && req.user.role !== "admin") {
|
|
32
|
+
return res.status(403).json({ error: "Access denied" });
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
res.json(receipt);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// ✅ BEST: Using UUIDv4/CUID/NanoID instead of sequential integers
|
|
39
|
+
// Attackers cannot guess standard UUIDs, heavily mitigating IDOR risks.
|
|
40
|
+
```
|
|
35
41
|
|
|
36
42
|
---
|
|
37
43
|
|
|
38
|
-
##
|
|
44
|
+
## Mass Assignment (Overposting)
|
|
45
|
+
|
|
46
|
+
Occurs when web frameworks automatically bind HTTP request parameters to application models without filtering.
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// ❌ VULNERABLE: Direct object binding
|
|
50
|
+
app.put("/api/users/:id", async (req, res) => {
|
|
51
|
+
// Attack: req.body = { name: "Bob", role: "admin", isPaid: true }
|
|
52
|
+
await db.users.update({ id: req.params.id }, req.body);
|
|
53
|
+
res.send("Updated");
|
|
54
|
+
});
|
|
39
55
|
|
|
40
|
-
|
|
56
|
+
// ✅ SAFE: Explicit property selection (DTOs)
|
|
57
|
+
app.put("/api/users/:id", async (req, res) => {
|
|
58
|
+
// Only extract explicitly allowed fields
|
|
59
|
+
const { name, email, bio } = req.body;
|
|
60
|
+
const safeData = { name, email, bio };
|
|
41
61
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
62
|
+
await db.users.update({ id: req.params.id }, safeData);
|
|
63
|
+
res.send("Updated");
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// ✅ BEST: Validation libraries (Zod, Joi) handling stripping
|
|
67
|
+
const UpdateUserSchema = z.object({
|
|
68
|
+
name: z.string().min(2),
|
|
69
|
+
email: z.string().email(),
|
|
70
|
+
}).strict(); // `.strict()` throws if "role" or "isPaid" is passed
|
|
71
|
+
```
|
|
47
72
|
|
|
48
73
|
---
|
|
49
74
|
|
|
50
|
-
##
|
|
75
|
+
## Rate Limiting Architecture
|
|
51
76
|
|
|
52
|
-
|
|
53
|
-
|
|
77
|
+
```typescript
|
|
78
|
+
// Basic Rate Limiting (Express)
|
|
79
|
+
import rateLimit from "express-rate-limit";
|
|
80
|
+
import RedisStore from "rate-limit-redis";
|
|
54
81
|
|
|
55
|
-
|
|
82
|
+
// Global baseline limit
|
|
83
|
+
export const globalLimiter = rateLimit({
|
|
84
|
+
store: new RedisStore({ client: redisClient }),
|
|
85
|
+
windowMs: 15 * 60 * 1000, // 15 min
|
|
86
|
+
max: 100, // Limit each IP to 100 reqs per window
|
|
87
|
+
standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
|
|
88
|
+
});
|
|
56
89
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
90
|
+
// Aggressive endpoint-specific limit (Login, Password Reset)
|
|
91
|
+
export const authLimiter = rateLimit({
|
|
92
|
+
store: new RedisStore({ client: redisClient }),
|
|
93
|
+
windowMs: 60 * 60 * 1000, // 1 Hour
|
|
94
|
+
max: 5, // 5 login attempts per IP per hour
|
|
95
|
+
message: "Too many login attempts, please try again later"
|
|
96
|
+
});
|
|
60
97
|
|
|
61
|
-
|
|
98
|
+
// ❌ HALLUCINATION TRAP: In-memory rate limiting across multiple server pods
|
|
99
|
+
// If you use basic memory stores in a load-balanced environment (K8s, ECS),
|
|
100
|
+
// an attacker has `limit * num_pods` attempts. Always use a centralized store (Redis).
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## API Key Management
|
|
62
106
|
|
|
63
|
-
Review these questions before confirming output:
|
|
64
107
|
```
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
108
|
+
Best Practices for issuance and storage:
|
|
109
|
+
1. Format: Prefix keys to identify them and allow secret scanners to find them easily.
|
|
110
|
+
- Example: `pk_live_8a9b...` (Stripe pattern).
|
|
111
|
+
2. Storage: NEVER store plaintext API keys in the DB.
|
|
112
|
+
- Hash them using SHA-256 (not bcrypt, because API keys are high entropy/long).
|
|
113
|
+
- Only show the user the plaintext key ONCE upon creation.
|
|
114
|
+
3. Transport: API keys must only be accepted via Headers, never in Query Params.
|
|
115
|
+
- `Authorization: Bearer pk_live_123`
|
|
116
|
+
- Query params are logged in server access logs and browser histories.
|
|
69
117
|
```
|
|
70
118
|
|
|
71
|
-
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## GraphQL Security Vectors
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
// GraphQL introduces unique DoS vectors not found in REST
|
|
125
|
+
|
|
126
|
+
// 1. Query Depth Limiting (Prevent nested joins crushing the DB)
|
|
127
|
+
// User -> Posts -> Comments -> Author -> Posts -> Comments...
|
|
128
|
+
import depthLimit from 'graphql-depth-limit';
|
|
129
|
+
app.use('/graphql', graphqlHTTP({ validationRules: [depthLimit(5)] }));
|
|
130
|
+
|
|
131
|
+
// 2. Query Cost Analysis
|
|
132
|
+
// Prevent attackers from requesting 100,000 items in a single query
|
|
133
|
+
// Implement cursor pagination and enforce `first: 100` limits.
|
|
72
134
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
135
|
+
// 3. Introspection Disabled in Production
|
|
136
|
+
// Introspection allows attackers to download your entire schema.
|
|
137
|
+
const server = new ApolloServer({
|
|
138
|
+
schema,
|
|
139
|
+
introspection: process.env.NODE_ENV !== 'production'
|
|
140
|
+
});
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
@@ -2,16 +2,13 @@
|
|
|
2
2
|
name: app-builder
|
|
3
3
|
description: Main application building orchestrator. Creates full-stack applications from natural language requests. Determines project type, selects tech stack, coordinates agents.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
-
version: 1.0
|
|
6
|
-
last-updated: 2026-
|
|
5
|
+
version: 3.1.0
|
|
6
|
+
last-updated: 2026-04-06
|
|
7
7
|
applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# App Builder — Application Orchestrator
|
|
11
11
|
|
|
12
|
-
> Building a full application is a coordination problem, not a coding problem.
|
|
13
|
-
> Coordinate the experts. Keep the boundaries clean.
|
|
14
|
-
|
|
15
12
|
---
|
|
16
13
|
|
|
17
14
|
## When This Skill Activates
|
|
@@ -53,16 +50,15 @@ Wait for answers. Stack decisions depend on these answers.
|
|
|
53
50
|
|
|
54
51
|
## Phase 2 — Stack Selection
|
|
55
52
|
|
|
56
|
-
|
|
|
57
|
-
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
| Edge-global, latency-critical | Next.js | Hono (Cloudflare Workers) | Turso / Cloudflare KV |
|
|
53
|
+
|App Type|Frontend|Backend|Database|
|
|
54
|
+
|Content / marketing site|Next.js|Next.js API routes|PostgreSQL (if dynamic)|
|
|
55
|
+
|SaaS web app|Next.js|Next.js API routes / Fastify|PostgreSQL + Redis|
|
|
56
|
+
|Mobile app (cross-platform)|React Native (Expo)|Node.js API|PostgreSQL|
|
|
57
|
+
|Internal dashboard / admin|Next.js|Next.js API routes|Existing|
|
|
58
|
+
|Real-time (chat, collaboration)|Next.js|Fastify + WebSockets|PostgreSQL + Redis|
|
|
59
|
+
|Data-heavy API|—|FastAPI (Python)|PostgreSQL|
|
|
60
|
+
|AI assistant / RAG app|Next.js (streaming)|Fastify + LLM SDK|PostgreSQL + pgvector|
|
|
61
|
+
|Edge-global, latency-critical|Next.js|Hono (Cloudflare Workers)|Turso / Cloudflare KV|
|
|
66
62
|
|
|
67
63
|
**If unclear:** Next.js + PostgreSQL covers 80% of use cases and is the safest default for web apps.
|
|
68
64
|
|
|
@@ -181,58 +177,338 @@ Report the URL to the user.
|
|
|
181
177
|
|
|
182
178
|
## Template Index
|
|
183
179
|
|
|
184
|
-
|
|
|
185
|
-
|
|
186
|
-
|
|
|
187
|
-
|
|
|
188
|
-
|
|
180
|
+
|Template|Path|When to Use|
|
|
181
|
+
|Next.js Full-Stack|`templates/nextjs-app/`|Web app with API routes|
|
|
182
|
+
|React Native|`templates/react-native-app/`|Cross-platform mobile|
|
|
183
|
+
|API Only|`templates/api-only/`|Backend service, no UI|
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Agent Coordination
|
|
190
|
+
|
|
191
|
+
How App Builder orchestrates specialist agents.
|
|
192
|
+
|
|
193
|
+
### Agent Pipeline
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
197
|
+
│ APP BUILDER (Orchestrator) │
|
|
198
|
+
└─────────────────────────────────────────────────────────────┘
|
|
199
|
+
│
|
|
200
|
+
▼
|
|
201
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
202
|
+
│ PROJECT PLANNER │
|
|
203
|
+
│ • Task breakdown │
|
|
204
|
+
│ • Dependency graph │
|
|
205
|
+
│ • File structure planning │
|
|
206
|
+
│ • Create {task-slug}.md in project root (MANDATORY) │
|
|
207
|
+
└─────────────────────────────────────────────────────────────┘
|
|
208
|
+
│
|
|
209
|
+
▼
|
|
210
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
211
|
+
│ CHECKPOINT: PLAN VERIFICATION │
|
|
212
|
+
│ 🔴 VERIFY: Does {task-slug}.md exist in project root? │
|
|
213
|
+
│ 🔴 If NO → STOP → Create plan file first │
|
|
214
|
+
│ 🔴 If YES → Proceed to specialist agents │
|
|
215
|
+
└─────────────────────────────────────────────────────────────┘
|
|
216
|
+
│
|
|
217
|
+
┌───────────────────┼───────────────────┐
|
|
218
|
+
▼ ▼ ▼
|
|
219
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
220
|
+
│ DATABASE │ │ BACKEND │ │ FRONTEND │
|
|
221
|
+
│ ARCHITECT │ │ SPECIALIST │ │ SPECIALIST │
|
|
222
|
+
│ │ │ │ │ │
|
|
223
|
+
│ • Schema design │ │ • API routes │ │ • Components │
|
|
224
|
+
│ • Migrations │ │ • Controllers │ │ • Pages │
|
|
225
|
+
│ • Seed data │ │ • Middleware │ │ • Styling │
|
|
226
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
227
|
+
│ │ │
|
|
228
|
+
└───────────────────┼───────────────────┘
|
|
229
|
+
▼
|
|
230
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
231
|
+
│ PARALLEL PHASE (Optional) │
|
|
232
|
+
│ • Security Auditor → Vulnerability check │
|
|
233
|
+
│ • Test Engineer → Unit tests │
|
|
234
|
+
│ • Performance Optimizer → Bundle analysis │
|
|
235
|
+
└─────────────────────────────────────────────────────────────┘
|
|
236
|
+
│
|
|
237
|
+
▼
|
|
238
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
239
|
+
│ DEVOPS ENGINEER │
|
|
240
|
+
│ • Environment setup │
|
|
241
|
+
│ • Preview deployment │
|
|
242
|
+
│ • Health check │
|
|
243
|
+
└─────────────────────────────────────────────────────────────┘
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Execution Order
|
|
247
|
+
|
|
248
|
+
|Phase|Agent(s)|Parallel?|Prerequisite|CHECKPOINT|
|
|
249
|
+
|-------|----------|-----------|--------------|------------|
|
|
250
|
+
|0|Socratic Gate|❌|-|✅ Ask 3 questions|
|
|
251
|
+
|1|Project Planner|❌|Questions answered|✅ **PLAN.md created**|
|
|
252
|
+
|1.5|**PLAN VERIFICATION**|❌|PLAN.md exists|✅ **File exists in root**|
|
|
253
|
+
|2|Database Architect|❌|Plan ready|Schema defined|
|
|
254
|
+
|3|Backend Specialist|❌|Schema ready|API routes created|
|
|
255
|
+
|4|Frontend Specialist|✅|API ready (partial)|UI components ready|
|
|
256
|
+
|5|Security Auditor, Test Engineer|✅|Code ready|Tests & audit pass|
|
|
257
|
+
|6|DevOps Engineer|❌|All code ready|Deployment ready|
|
|
258
|
+
|
|
259
|
+
> 🔴 **CRITICAL:** Phase 1.5 is MANDATORY. No specialist agents proceed without PLAN.md verification.
|
|
189
260
|
|
|
190
261
|
---
|
|
191
262
|
|
|
192
|
-
##
|
|
263
|
+
## Feature Building
|
|
264
|
+
|
|
265
|
+
How to analyze and implement new features.
|
|
266
|
+
|
|
267
|
+
### Feature Analysis
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
Request: "add payment system"
|
|
271
|
+
|
|
272
|
+
Analysis:
|
|
273
|
+
├── Required Changes:
|
|
274
|
+
│ ├── Database: orders, payments tables
|
|
275
|
+
│ ├── Backend: /api/checkout, /api/webhooks/stripe
|
|
276
|
+
│ ├── Frontend: CheckoutForm, PaymentSuccess
|
|
277
|
+
│ └── Config: Stripe API keys
|
|
278
|
+
│
|
|
279
|
+
├── Dependencies:
|
|
280
|
+
│ ├── stripe package
|
|
281
|
+
│ └── Existing user authentication
|
|
282
|
+
│
|
|
283
|
+
└── Estimated Time: 15-20 minutes
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Iterative Enhancement Process
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
1. Analyze existing project
|
|
290
|
+
2. Create change plan
|
|
291
|
+
3. Present plan to user
|
|
292
|
+
4. Get approval
|
|
293
|
+
5. Apply changes
|
|
294
|
+
6. Test
|
|
295
|
+
7. Show preview
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Error Handling
|
|
299
|
+
|
|
300
|
+
|Error Type|Solution Strategy|
|
|
301
|
+
|------------|-------------------|
|
|
302
|
+
|TypeScript Error|Fix type, add missing import|
|
|
303
|
+
|Missing Dependency|Run npm install|
|
|
304
|
+
|Port Conflict|Suggest alternative port|
|
|
305
|
+
|Database Error|Check migration, validate connection|
|
|
306
|
+
|
|
307
|
+
### Recovery Strategy
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
1. Detect error
|
|
311
|
+
2. Try automatic fix
|
|
312
|
+
3. If failed, report to user
|
|
313
|
+
4. Suggest alternative
|
|
314
|
+
5. Rollback if necessary
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
193
318
|
|
|
194
|
-
|
|
319
|
+
## Project Type Detection
|
|
320
|
+
|
|
321
|
+
Analyze user requests to determine project type and template.
|
|
322
|
+
|
|
323
|
+
### Keyword Matrix
|
|
324
|
+
|
|
325
|
+
|Keywords|Project Type|Template|
|
|
326
|
+
|----------|--------------|----------|
|
|
327
|
+
|blog, post, article|Blog|astro-static|
|
|
328
|
+
|e-commerce, product, cart, payment|E-commerce|nextjs-saas|
|
|
329
|
+
|dashboard, panel, management|Admin Dashboard|nextjs-fullstack|
|
|
330
|
+
|api, backend, service, rest|API Service|express-api|
|
|
331
|
+
|python, fastapi, django|Python API|python-fastapi|
|
|
332
|
+
|mobile, android, ios, react native|Mobile App (RN)|react-native-app|
|
|
333
|
+
|flutter, dart|Mobile App (Flutter)|flutter-app|
|
|
334
|
+
|portfolio, personal, cv|Portfolio|nextjs-static|
|
|
335
|
+
|crm, customer, sales|CRM|nextjs-fullstack|
|
|
336
|
+
|saas, subscription, stripe|SaaS|nextjs-saas|
|
|
337
|
+
|landing, promotional, marketing|Landing Page|nextjs-static|
|
|
338
|
+
|docs, documentation|Documentation|astro-static|
|
|
339
|
+
|extension, plugin, chrome|Browser Extension|chrome-extension|
|
|
340
|
+
|desktop, electron|Desktop App|electron-desktop|
|
|
341
|
+
|cli, command line, terminal|CLI Tool|cli-tool|
|
|
342
|
+
|monorepo, workspace|Monorepo|monorepo-turborepo|
|
|
343
|
+
|
|
344
|
+
### Detection Process
|
|
195
345
|
|
|
196
346
|
```
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
─────────────────────────────────────────────────
|
|
203
|
-
Pre-Flight: ✅ All checks passed
|
|
204
|
-
or ❌ [blocking item that must be resolved first]
|
|
347
|
+
1. Tokenize user request
|
|
348
|
+
2. Extract keywords
|
|
349
|
+
3. Determine project type
|
|
350
|
+
4. Detect missing information → forward to conversation-manager
|
|
351
|
+
5. Suggest tech stack
|
|
205
352
|
```
|
|
206
353
|
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Project Scaffolding
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
### Next.js Full-Stack Structure (2025 Optimized)
|
|
361
|
+
|
|
362
|
+
```
|
|
363
|
+
project-name/
|
|
364
|
+
├── src/
|
|
365
|
+
│ ├── app/ # Routes only (thin layer)
|
|
366
|
+
│ │ ├── layout.tsx
|
|
367
|
+
│ │ ├── page.tsx
|
|
368
|
+
│ │ ├── globals.css
|
|
369
|
+
│ │ ├── (auth)/ # Route group - auth pages
|
|
370
|
+
│ │ │ ├── login/page.tsx
|
|
371
|
+
│ │ │ └── register/page.tsx
|
|
372
|
+
│ │ ├── (dashboard)/ # Route group - dashboard layout
|
|
373
|
+
│ │ │ ├── layout.tsx
|
|
374
|
+
│ │ │ └── page.tsx
|
|
375
|
+
│ │ └── api/
|
|
376
|
+
│ │ └── [resource]/route.ts
|
|
377
|
+
│ │
|
|
378
|
+
│ ├── features/ # Feature-based modules
|
|
379
|
+
│ │ ├── auth/
|
|
380
|
+
│ │ │ ├── components/
|
|
381
|
+
│ │ │ ├── hooks/
|
|
382
|
+
│ │ │ ├── actions.ts # Server Actions
|
|
383
|
+
│ │ │ ├── queries.ts # Data fetching
|
|
384
|
+
│ │ │ └── types.ts
|
|
385
|
+
│ │ ├── products/
|
|
386
|
+
│ │ │ ├── components/
|
|
387
|
+
│ │ │ ├── actions.ts
|
|
388
|
+
│ │ │ └── queries.ts
|
|
389
|
+
│ │ └── cart/
|
|
390
|
+
│ │ └── ...
|
|
391
|
+
│ │
|
|
392
|
+
│ ├── shared/ # Shared utilities
|
|
393
|
+
│ │ ├── components/ui/ # Reusable UI components
|
|
394
|
+
│ │ ├── lib/ # Utils, helpers
|
|
395
|
+
│ │ └── hooks/ # Global hooks
|
|
396
|
+
│ │
|
|
397
|
+
│ └── server/ # Server-only code
|
|
398
|
+
│ ├── db/ # Database client (Prisma)
|
|
399
|
+
│ ├── auth/ # Auth config
|
|
400
|
+
│ └── services/ # External API integrations
|
|
401
|
+
│
|
|
402
|
+
├── prisma/
|
|
403
|
+
│ ├── schema.prisma
|
|
404
|
+
│ ├── migrations/
|
|
405
|
+
│ └── seed.ts
|
|
406
|
+
│
|
|
407
|
+
├── public/
|
|
408
|
+
├── .env.example
|
|
409
|
+
├── .env.local
|
|
410
|
+
├── package.json
|
|
411
|
+
├── tailwind.config.ts
|
|
412
|
+
├── tsconfig.json
|
|
413
|
+
└── README.md
|
|
414
|
+
```
|
|
207
415
|
|
|
208
416
|
---
|
|
209
417
|
|
|
210
|
-
|
|
418
|
+
### Structure Principles
|
|
211
419
|
|
|
212
|
-
|
|
213
|
-
|
|
420
|
+
|Principle|Implementation|
|
|
421
|
+
|-----------|----------------|
|
|
422
|
+
|**Feature isolation**|Each feature in `features/` with its own components, hooks, actions|
|
|
423
|
+
|**Server/Client separation**|Server-only code in `server/`, prevents accidental client imports|
|
|
424
|
+
|**Thin routes**|`app/` only for routing, logic lives in `features/`|
|
|
425
|
+
|**Route groups**|`(groupName)/` for layout sharing without URL impact|
|
|
426
|
+
|**Shared code**|`shared/` for truly reusable UI and utilities|
|
|
214
427
|
|
|
215
|
-
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
### Core Files
|
|
216
431
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
432
|
+
|File|Purpose|
|
|
433
|
+
|------|---------|
|
|
434
|
+
|`package.json`|Dependencies|
|
|
435
|
+
|`tsconfig.json`|TypeScript + path aliases (`@/features/*`)|
|
|
436
|
+
|`tailwind.config.ts`|Tailwind config|
|
|
437
|
+
|`.env.example`|Environment template|
|
|
438
|
+
|`README.md`|Project documentation|
|
|
439
|
+
|`.gitignore`|Git ignore rules|
|
|
440
|
+
|`prisma/schema.prisma`|Database schema|
|
|
222
441
|
|
|
223
|
-
|
|
442
|
+
---
|
|
224
443
|
|
|
225
|
-
|
|
444
|
+
### Path Aliases (tsconfig.json)
|
|
445
|
+
|
|
446
|
+
```json
|
|
447
|
+
{
|
|
448
|
+
"compilerOptions": {
|
|
449
|
+
"paths": {
|
|
450
|
+
"@/*": ["./src/*"],
|
|
451
|
+
"@/features/*": ["./src/features/*"],
|
|
452
|
+
"@/shared/*": ["./src/shared/*"],
|
|
453
|
+
"@/server/*": ["./src/server/*"]
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
226
457
|
```
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
### When to Use What
|
|
462
|
+
|
|
463
|
+
|Need|Location|
|
|
464
|
+
|------|----------|
|
|
465
|
+
|New page/route|`app/(group)/page.tsx`|
|
|
466
|
+
|Feature component|`features/[name]/components/`|
|
|
467
|
+
|Server action|`features/[name]/actions.ts`|
|
|
468
|
+
|Data fetching|`features/[name]/queries.ts`|
|
|
469
|
+
|Reusable button/input|`shared/components/ui/`|
|
|
470
|
+
|Database query|`server/db/`|
|
|
471
|
+
|External API call|`server/services/`|
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Tech Stack Selection (2026)
|
|
476
|
+
|
|
477
|
+
Default and alternative technology choices for web applications.
|
|
478
|
+
|
|
479
|
+
### Default Stack (Web App - 2026)
|
|
480
|
+
|
|
481
|
+
```yaml
|
|
482
|
+
Frontend:
|
|
483
|
+
framework: Next.js 16 (Stable)
|
|
484
|
+
language: TypeScript 5.7+
|
|
485
|
+
styling: Tailwind CSS v4
|
|
486
|
+
state: React 19 Actions / Server Components
|
|
487
|
+
bundler: Turbopack (Stable for Dev)
|
|
488
|
+
|
|
489
|
+
Backend:
|
|
490
|
+
runtime: Node.js 23
|
|
491
|
+
framework: Next.js API Routes / Hono (for Edge)
|
|
492
|
+
validation: Zod / TypeBox
|
|
493
|
+
|
|
494
|
+
Database:
|
|
495
|
+
primary: PostgreSQL
|
|
496
|
+
orm: Prisma / Drizzle
|
|
497
|
+
hosting: Supabase / Neon
|
|
498
|
+
|
|
499
|
+
Auth:
|
|
500
|
+
provider: Auth.js (v5) / Clerk
|
|
501
|
+
|
|
502
|
+
Monorepo:
|
|
503
|
+
tool: Turborepo 2.0
|
|
232
504
|
```
|
|
233
505
|
|
|
234
|
-
###
|
|
506
|
+
### Alternative Options
|
|
235
507
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
-
|
|
508
|
+
|Need|Default|Alternative|
|
|
509
|
+
|------|---------|-------------|
|
|
510
|
+
|Real-time|-|Supabase Realtime, Socket.io|
|
|
511
|
+
|File storage|-|Cloudinary, S3|
|
|
512
|
+
|Payment|Stripe|LemonSqueezy, Paddle|
|
|
513
|
+
|Email|-|Resend, SendGrid|
|
|
514
|
+
|Search|-|Algolia, Typesense|
|
|
@@ -6,28 +6,26 @@ allowed-tools: Read, Glob, Grep
|
|
|
6
6
|
|
|
7
7
|
# Project Templates
|
|
8
8
|
|
|
9
|
-
> Quick-start templates for scaffolding new projects.
|
|
10
|
-
|
|
11
9
|
---
|
|
12
10
|
|
|
13
11
|
## 🎯 Selective Reading Rule
|
|
14
12
|
|
|
15
13
|
**Read ONLY the template matching user's project type!**
|
|
16
14
|
|
|
17
|
-
|
|
|
15
|
+
|Template|Tech Stack|When to Use|
|
|
18
16
|
|----------|------------|-------------|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
17
|
+
|[nextjs-fullstack](nextjs-fullstack/TEMPLATE.md)|Next.js + Prisma|Full-stack web app|
|
|
18
|
+
|[nextjs-saas](nextjs-saas/TEMPLATE.md)|Next.js + Stripe|SaaS product|
|
|
19
|
+
|[nextjs-static](nextjs-static/TEMPLATE.md)|Next.js + Framer|Landing page|
|
|
20
|
+
|[express-api](express-api/TEMPLATE.md)|Express + JWT|REST API|
|
|
21
|
+
|[python-fastapi](python-fastapi/TEMPLATE.md)|FastAPI|Python API|
|
|
22
|
+
|[react-native-app](react-native-app/TEMPLATE.md)|Expo + Zustand|Mobile app|
|
|
23
|
+
|[flutter-app](flutter-app/TEMPLATE.md)|Flutter + Riverpod|Cross-platform|
|
|
24
|
+
|[electron-desktop](electron-desktop/TEMPLATE.md)|Electron + React|Desktop app|
|
|
25
|
+
|[chrome-extension](chrome-extension/TEMPLATE.md)|Chrome MV3|Browser extension|
|
|
26
|
+
|[cli-tool](cli-tool/TEMPLATE.md)|Node.js + Commander|CLI app|
|
|
27
|
+
|[monorepo-turborepo](monorepo-turborepo/TEMPLATE.md)|Turborepo + pnpm|Monorepo|
|
|
28
|
+
|[astro-static](astro-static/TEMPLATE.md)|Astro + MDX|Blog / Docs|
|
|
31
29
|
|
|
32
30
|
---
|
|
33
31
|
|