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.
Files changed (250) hide show
  1. package/.agent/ARCHITECTURE.md +99 -99
  2. package/.agent/GEMINI.md +52 -52
  3. package/.agent/agents/accessibility-reviewer.md +139 -86
  4. package/.agent/agents/ai-code-reviewer.md +160 -90
  5. package/.agent/agents/backend-specialist.md +164 -127
  6. package/.agent/agents/code-archaeologist.md +115 -73
  7. package/.agent/agents/database-architect.md +130 -110
  8. package/.agent/agents/debugger.md +137 -97
  9. package/.agent/agents/dependency-reviewer.md +78 -30
  10. package/.agent/agents/devops-engineer.md +161 -118
  11. package/.agent/agents/documentation-writer.md +151 -87
  12. package/.agent/agents/explorer-agent.md +117 -99
  13. package/.agent/agents/frontend-reviewer.md +127 -47
  14. package/.agent/agents/frontend-specialist.md +169 -109
  15. package/.agent/agents/game-developer.md +28 -164
  16. package/.agent/agents/logic-reviewer.md +87 -49
  17. package/.agent/agents/mobile-developer.md +151 -103
  18. package/.agent/agents/mobile-reviewer.md +133 -50
  19. package/.agent/agents/orchestrator.md +121 -110
  20. package/.agent/agents/penetration-tester.md +103 -77
  21. package/.agent/agents/performance-optimizer.md +136 -92
  22. package/.agent/agents/performance-reviewer.md +139 -69
  23. package/.agent/agents/product-manager.md +104 -70
  24. package/.agent/agents/product-owner.md +6 -25
  25. package/.agent/agents/project-planner.md +95 -95
  26. package/.agent/agents/qa-automation-engineer.md +174 -87
  27. package/.agent/agents/security-auditor.md +133 -129
  28. package/.agent/agents/seo-specialist.md +160 -99
  29. package/.agent/agents/sql-reviewer.md +132 -44
  30. package/.agent/agents/supervisor-agent.md +137 -109
  31. package/.agent/agents/swarm-worker-contracts.md +17 -17
  32. package/.agent/agents/swarm-worker-registry.md +46 -46
  33. package/.agent/agents/test-coverage-reviewer.md +132 -53
  34. package/.agent/agents/test-engineer.md +0 -21
  35. package/.agent/agents/type-safety-reviewer.md +143 -33
  36. package/.agent/patterns/generator.md +9 -9
  37. package/.agent/patterns/inversion.md +12 -12
  38. package/.agent/patterns/pipeline.md +9 -9
  39. package/.agent/patterns/reviewer.md +13 -13
  40. package/.agent/patterns/tool-wrapper.md +9 -9
  41. package/.agent/rules/GEMINI.md +63 -63
  42. package/.agent/scripts/__pycache__/auto_preview.cpython-311.pyc +0 -0
  43. package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
  44. package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
  45. package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
  46. package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  47. package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
  48. package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
  49. package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
  50. package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  51. package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
  52. package/.agent/scripts/compress_skills.py +167 -0
  53. package/.agent/scripts/consolidate_skills.py +173 -0
  54. package/.agent/scripts/deep_compress.py +202 -0
  55. package/.agent/scripts/minify_context.py +80 -0
  56. package/.agent/scripts/security_scan.py +1 -1
  57. package/.agent/scripts/strip_tribunal.py +41 -0
  58. package/.agent/skills/agent-organizer/SKILL.md +60 -100
  59. package/.agent/skills/agentic-patterns/SKILL.md +0 -70
  60. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +108 -53
  61. package/.agent/skills/api-patterns/SKILL.md +197 -257
  62. package/.agent/skills/api-security-auditor/SKILL.md +125 -57
  63. package/.agent/skills/app-builder/SKILL.md +326 -50
  64. package/.agent/skills/app-builder/templates/SKILL.md +13 -15
  65. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
  66. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
  67. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
  68. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
  69. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
  70. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
  71. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
  72. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
  73. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
  74. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
  75. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
  76. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
  77. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
  78. package/.agent/skills/appflow-wireframe/SKILL.md +71 -98
  79. package/.agent/skills/architecture/SKILL.md +161 -200
  80. package/.agent/skills/authentication-best-practices/SKILL.md +121 -54
  81. package/.agent/skills/bash-linux/SKILL.md +71 -166
  82. package/.agent/skills/behavioral-modes/SKILL.md +8 -69
  83. package/.agent/skills/brainstorming/SKILL.md +345 -127
  84. package/.agent/skills/building-native-ui/SKILL.md +125 -57
  85. package/.agent/skills/clean-code/SKILL.md +266 -149
  86. package/.agent/skills/code-review-checklist/SKILL.md +0 -62
  87. package/.agent/skills/config-validator/SKILL.md +73 -131
  88. package/.agent/skills/csharp-developer/SKILL.md +434 -73
  89. package/.agent/skills/database-design/SKILL.md +190 -275
  90. package/.agent/skills/deployment-procedures/SKILL.md +81 -158
  91. package/.agent/skills/devops-engineer/SKILL.md +255 -94
  92. package/.agent/skills/devops-incident-responder/SKILL.md +50 -69
  93. package/.agent/skills/doc.md +5 -5
  94. package/.agent/skills/documentation-templates/SKILL.md +19 -63
  95. package/.agent/skills/edge-computing/SKILL.md +75 -165
  96. package/.agent/skills/extract-design-system/SKILL.md +84 -58
  97. package/.agent/skills/framer-motion-expert/SKILL.md +195 -0
  98. package/.agent/skills/frontend-design/SKILL.md +151 -499
  99. package/.agent/skills/game-design-expert/SKILL.md +71 -0
  100. package/.agent/skills/game-engineering-expert/SKILL.md +88 -0
  101. package/.agent/skills/geo-fundamentals/SKILL.md +52 -178
  102. package/.agent/skills/github-operations/SKILL.md +197 -272
  103. package/.agent/skills/gsap-expert/SKILL.md +194 -0
  104. package/.agent/skills/i18n-localization/SKILL.md +60 -172
  105. package/.agent/skills/intelligent-routing/SKILL.md +123 -103
  106. package/.agent/skills/lint-and-validate/SKILL.md +8 -52
  107. package/.agent/skills/llm-engineering/SKILL.md +281 -195
  108. package/.agent/skills/local-first/SKILL.md +76 -159
  109. package/.agent/skills/mcp-builder/SKILL.md +48 -188
  110. package/.agent/skills/mobile-design/SKILL.md +213 -219
  111. package/.agent/skills/motion-engineering/SKILL.md +184 -0
  112. package/.agent/skills/nextjs-react-expert/SKILL.md +184 -203
  113. package/.agent/skills/nodejs-best-practices/SKILL.md +403 -185
  114. package/.agent/skills/observability/SKILL.md +211 -203
  115. package/.agent/skills/parallel-agents/SKILL.md +53 -146
  116. package/.agent/skills/performance-profiling/SKILL.md +171 -151
  117. package/.agent/skills/plan-writing/SKILL.md +49 -153
  118. package/.agent/skills/platform-engineer/SKILL.md +57 -103
  119. package/.agent/skills/playwright-best-practices/SKILL.md +110 -63
  120. package/.agent/skills/powershell-windows/SKILL.md +61 -179
  121. package/.agent/skills/python-patterns/SKILL.md +7 -35
  122. package/.agent/skills/python-pro/SKILL.md +273 -114
  123. package/.agent/skills/react-specialist/SKILL.md +227 -108
  124. package/.agent/skills/readme-builder/SKILL.md +15 -85
  125. package/.agent/skills/realtime-patterns/SKILL.md +216 -243
  126. package/.agent/skills/red-team-tactics/SKILL.md +10 -51
  127. package/.agent/skills/rust-pro/SKILL.md +525 -142
  128. package/.agent/skills/seo-fundamentals/SKILL.md +92 -153
  129. package/.agent/skills/server-management/SKILL.md +110 -166
  130. package/.agent/skills/shadcn-ui-expert/SKILL.md +154 -55
  131. package/.agent/skills/skill-creator/SKILL.md +18 -58
  132. package/.agent/skills/sql-pro/SKILL.md +543 -68
  133. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
  134. package/.agent/skills/swiftui-expert/SKILL.md +124 -57
  135. package/.agent/skills/systematic-debugging/SKILL.md +49 -151
  136. package/.agent/skills/tailwind-patterns/SKILL.md +433 -149
  137. package/.agent/skills/tdd-workflow/SKILL.md +63 -169
  138. package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
  139. package/.agent/skills/testing-patterns/SKILL.md +437 -130
  140. package/.agent/skills/trend-researcher/SKILL.md +30 -71
  141. package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
  142. package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
  143. package/.agent/skills/vue-expert/SKILL.md +225 -119
  144. package/.agent/skills/vulnerability-scanner/SKILL.md +264 -226
  145. package/.agent/skills/web-accessibility-auditor/SKILL.md +141 -58
  146. package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
  147. package/.agent/skills/webapp-testing/SKILL.md +71 -196
  148. package/.agent/skills/whimsy-injector/SKILL.md +58 -132
  149. package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
  150. package/.agent/workflows/api-tester.md +96 -224
  151. package/.agent/workflows/audit.md +81 -122
  152. package/.agent/workflows/brainstorm.md +69 -105
  153. package/.agent/workflows/changelog.md +65 -97
  154. package/.agent/workflows/create.md +73 -88
  155. package/.agent/workflows/debug.md +80 -111
  156. package/.agent/workflows/deploy.md +119 -92
  157. package/.agent/workflows/enhance.md +80 -91
  158. package/.agent/workflows/fix.md +68 -97
  159. package/.agent/workflows/generate.md +165 -164
  160. package/.agent/workflows/migrate.md +106 -109
  161. package/.agent/workflows/orchestrate.md +103 -86
  162. package/.agent/workflows/performance-benchmarker.md +77 -268
  163. package/.agent/workflows/plan.md +120 -98
  164. package/.agent/workflows/preview.md +39 -96
  165. package/.agent/workflows/refactor.md +105 -97
  166. package/.agent/workflows/review-ai.md +63 -102
  167. package/.agent/workflows/review.md +71 -110
  168. package/.agent/workflows/session.md +53 -113
  169. package/.agent/workflows/status.md +42 -88
  170. package/.agent/workflows/strengthen-skills.md +90 -51
  171. package/.agent/workflows/swarm.md +114 -129
  172. package/.agent/workflows/test.md +125 -102
  173. package/.agent/workflows/tribunal-backend.md +60 -78
  174. package/.agent/workflows/tribunal-database.md +62 -100
  175. package/.agent/workflows/tribunal-frontend.md +62 -82
  176. package/.agent/workflows/tribunal-full.md +56 -100
  177. package/.agent/workflows/tribunal-mobile.md +65 -94
  178. package/.agent/workflows/tribunal-performance.md +62 -105
  179. package/.agent/workflows/ui-ux-pro-max.md +72 -121
  180. package/README.md +11 -15
  181. package/package.json +1 -1
  182. package/.agent/skills/api-patterns/api-style.md +0 -42
  183. package/.agent/skills/api-patterns/auth.md +0 -24
  184. package/.agent/skills/api-patterns/documentation.md +0 -26
  185. package/.agent/skills/api-patterns/graphql.md +0 -41
  186. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  187. package/.agent/skills/api-patterns/response.md +0 -37
  188. package/.agent/skills/api-patterns/rest.md +0 -40
  189. package/.agent/skills/api-patterns/security-testing.md +0 -122
  190. package/.agent/skills/api-patterns/trpc.md +0 -41
  191. package/.agent/skills/api-patterns/versioning.md +0 -22
  192. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  193. package/.agent/skills/app-builder/feature-building.md +0 -53
  194. package/.agent/skills/app-builder/project-detection.md +0 -34
  195. package/.agent/skills/app-builder/scaffolding.md +0 -118
  196. package/.agent/skills/app-builder/tech-stack.md +0 -40
  197. package/.agent/skills/architecture/context-discovery.md +0 -43
  198. package/.agent/skills/architecture/examples.md +0 -94
  199. package/.agent/skills/architecture/pattern-selection.md +0 -68
  200. package/.agent/skills/architecture/patterns-reference.md +0 -50
  201. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  202. package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
  203. package/.agent/skills/database-design/database-selection.md +0 -43
  204. package/.agent/skills/database-design/indexing.md +0 -39
  205. package/.agent/skills/database-design/migrations.md +0 -48
  206. package/.agent/skills/database-design/optimization.md +0 -36
  207. package/.agent/skills/database-design/orm-selection.md +0 -30
  208. package/.agent/skills/database-design/schema-design.md +0 -56
  209. package/.agent/skills/dotnet-core-expert/SKILL.md +0 -103
  210. package/.agent/skills/framer-motion-animations/SKILL.md +0 -74
  211. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  212. package/.agent/skills/frontend-design/color-system.md +0 -329
  213. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  214. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  215. package/.agent/skills/frontend-design/typography-system.md +0 -363
  216. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  217. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  218. package/.agent/skills/game-development/2d-games/SKILL.md +0 -119
  219. package/.agent/skills/game-development/3d-games/SKILL.md +0 -135
  220. package/.agent/skills/game-development/SKILL.md +0 -236
  221. package/.agent/skills/game-development/game-art/SKILL.md +0 -185
  222. package/.agent/skills/game-development/game-audio/SKILL.md +0 -190
  223. package/.agent/skills/game-development/game-design/SKILL.md +0 -129
  224. package/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
  225. package/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
  226. package/.agent/skills/game-development/pc-games/SKILL.md +0 -144
  227. package/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
  228. package/.agent/skills/game-development/web-games/SKILL.md +0 -150
  229. package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
  230. package/.agent/skills/mobile-design/decision-trees.md +0 -516
  231. package/.agent/skills/mobile-design/mobile-backend.md +0 -491
  232. package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
  233. package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
  234. package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
  235. package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
  236. package/.agent/skills/mobile-design/mobile-performance.md +0 -767
  237. package/.agent/skills/mobile-design/mobile-testing.md +0 -356
  238. package/.agent/skills/mobile-design/mobile-typography.md +0 -433
  239. package/.agent/skills/mobile-design/platform-android.md +0 -666
  240. package/.agent/skills/mobile-design/platform-ios.md +0 -561
  241. package/.agent/skills/mobile-design/touch-psychology.md +0 -537
  242. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
  243. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
  244. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
  245. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
  246. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
  247. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
  248. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
  249. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
  250. package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
@@ -1,75 +1,143 @@
1
- ---
2
- name: api-security-auditor
3
- description: API Security Expert focusing on REST, GraphQL, and RPC layers. Detects and prevents BOLA/IDOR, enforces rate limiting, and guarantees input sanitization.
4
- allowed-tools: Read, Write, Edit, Glob, Grep
5
- version: 1.0.0
6
- last-updated: 2026-03-30
7
- applies-to-model: claude-3-7-sonnet, gemini-2.5-pro
8
- ---
9
-
10
- # API Security Auditor
11
-
12
- You are a strict API Security Auditor acting purely in the defense of the backend architecture. Your job is to prevent vulnerabilities before they are merged into the application.
13
-
14
- ## Core Directives
15
-
16
- 1. **Authorization at the Object Level (BOLA/IDOR):**
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
- ## 🤖 LLM-Specific Traps
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
- AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
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
- 1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
43
- 2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
44
- 3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
45
- 4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
46
- 5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
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
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
75
+ ## Rate Limiting Architecture
51
76
 
52
- **Slash command: `/review` or `/tribunal-full`**
53
- **Active reviewers: `logic-reviewer` · `security-auditor`**
77
+ ```typescript
78
+ // Basic Rate Limiting (Express)
79
+ import rateLimit from "express-rate-limit";
80
+ import RedisStore from "rate-limit-redis";
54
81
 
55
- ### Forbidden AI Tropes
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
- 1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
58
- 2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
59
- 3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
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
- ### Pre-Flight Self-Audit
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
- Did I rely ONLY on real, verified tools and methods?
66
- Is this solution appropriately scoped to the user's constraints?
67
- Did I handle potential failure modes and edge cases?
68
- Have I avoided generic boilerplate that doesn't add value?
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
- ### 🛑 Verification-Before-Completion (VBC) Protocol
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
- **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
74
- - **Forbidden:** Declaring a task complete because the output "looks correct."
75
- - **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.
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.0
6
- last-updated: 2026-03-12
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
- | App Type | Frontend | Backend | Database |
57
- |---|---|---|---|
58
- | Content / marketing site | Next.js | Next.js API routes | PostgreSQL (if dynamic) |
59
- | SaaS web app | Next.js | Next.js API routes / Fastify | PostgreSQL + Redis |
60
- | Mobile app (cross-platform) | React Native (Expo) | Node.js API | PostgreSQL |
61
- | Internal dashboard / admin | Next.js | Next.js API routes | Existing |
62
- | Real-time (chat, collaboration) | Next.js | Fastify + WebSockets | PostgreSQL + Redis |
63
- | Data-heavy API | | FastAPI (Python) | PostgreSQL |
64
- | AI assistant / RAG app | Next.js (streaming) | Fastify + LLM SDK | PostgreSQL + pgvector |
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
- | Template | Path | When to Use |
185
- |---|---|---|
186
- | Next.js Full-Stack | `templates/nextjs-app/` | Web app with API routes |
187
- | React Native | `templates/react-native-app/` | Cross-platform mobile |
188
- | API Only | `templates/api-only/` | Backend service, no UI |
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
- ## Output Format
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
- When this skill produces a recommendation or design decision, structure your output as:
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
- ━━━ App Builder Recommendation ━━━━━━━━━━━━━━━━
198
- Decision: [what was chosen / proposed]
199
- Rationale: [why one concise line]
200
- Trade-offs: [what is consciously accepted]
201
- Next action: [concrete next step for the user]
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
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
418
+ ### Structure Principles
211
419
 
212
- **Slash command: `/create`**
213
- **Active reviewers: `orchestrator` · `project-planner`**
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
- ### ❌ Forbidden AI Tropes in App Building
428
+ ---
429
+
430
+ ### Core Files
216
431
 
217
- 1. **Skipping Constraints** — immediately starting to generate code without asking the user about their constraints and audience.
218
- 2. **Building the Whole App at Once** — attempting to generate 50 files in a single turn.
219
- 3. **Out-of-Order Execution** — writing frontend components before the API or DB schema is actually designed.
220
- 4. **Magic Dependencies** assuming packages are installed without updating `package.json`.
221
- 5. **Ignoring Boundaries** — mismatching the API response format between the server and the frontend client.
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
- ### ✅ Pre-Flight Self-Audit
442
+ ---
224
443
 
225
- Review these questions before orchestrating a full app build:
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
- ✅ Did I ask the clarifying questions regarding constraints and target audience?
228
- ✅ Is my generated plan broken into modular, sequenced steps (DB -> API -> UI)?
229
- ✅ Have I explicitly defined the API contracts so the frontend and backend match?
230
- Did I correctly track which dependencies need to be installed?
231
- ✅ Am I verifying integration at each boundary before moving to the next layer?
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
- ### 🛑 Verification-Before-Completion (VBC) Protocol
506
+ ### Alternative Options
235
507
 
236
- **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
237
- - ❌ **Forbidden:** Declaring an application architecture or full-stack integration complete without verifying the seams.
238
- - ✅ **Required:** You are explicitly forbidden from completing an app build or integration phase without providing **concrete terminal evidence** (e.g., successful local dev server start logs, passing build logs, or successful API local test results).
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
- | Template | Tech Stack | When to Use |
15
+ |Template|Tech Stack|When to Use|
18
16
  |----------|------------|-------------|
19
- | [nextjs-fullstack](nextjs-fullstack/TEMPLATE.md) | Next.js + Prisma | Full-stack web app |
20
- | [nextjs-saas](nextjs-saas/TEMPLATE.md) | Next.js + Stripe | SaaS product |
21
- | [nextjs-static](nextjs-static/TEMPLATE.md) | Next.js + Framer | Landing page |
22
- | [express-api](express-api/TEMPLATE.md) | Express + JWT | REST API |
23
- | [python-fastapi](python-fastapi/TEMPLATE.md) | FastAPI | Python API |
24
- | [react-native-app](react-native-app/TEMPLATE.md) | Expo + Zustand | Mobile app |
25
- | [flutter-app](flutter-app/TEMPLATE.md) | Flutter + Riverpod | Cross-platform |
26
- | [electron-desktop](electron-desktop/TEMPLATE.md) | Electron + React | Desktop app |
27
- | [chrome-extension](chrome-extension/TEMPLATE.md) | Chrome MV3 | Browser extension |
28
- | [cli-tool](cli-tool/TEMPLATE.md) | Node.js + Commander | CLI app |
29
- | [monorepo-turborepo](monorepo-turborepo/TEMPLATE.md) | Turborepo + pnpm | Monorepo |
30
- | [astro-static](astro-static/TEMPLATE.md) | Astro + MDX | Blog / Docs |
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