claudient 0.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 (283) hide show
  1. package/.claude-plugin/plugin.json +42 -0
  2. package/CONTEXT.md +58 -0
  3. package/README.md +165 -0
  4. package/agents/build-resolvers/de/python-resolver.md +64 -0
  5. package/agents/build-resolvers/de/typescript-resolver.md +65 -0
  6. package/agents/build-resolvers/es/python-resolver.md +64 -0
  7. package/agents/build-resolvers/es/typescript-resolver.md +65 -0
  8. package/agents/build-resolvers/fr/python-resolver.md +64 -0
  9. package/agents/build-resolvers/fr/typescript-resolver.md +65 -0
  10. package/agents/build-resolvers/nl/python-resolver.md +64 -0
  11. package/agents/build-resolvers/nl/typescript-resolver.md +65 -0
  12. package/agents/build-resolvers/python-resolver.md +62 -0
  13. package/agents/build-resolvers/typescript-resolver.md +63 -0
  14. package/agents/core/architect.md +64 -0
  15. package/agents/core/code-reviewer.md +78 -0
  16. package/agents/core/de/architect.md +66 -0
  17. package/agents/core/de/code-reviewer.md +80 -0
  18. package/agents/core/de/planner.md +63 -0
  19. package/agents/core/de/security-reviewer.md +93 -0
  20. package/agents/core/es/architect.md +66 -0
  21. package/agents/core/es/code-reviewer.md +80 -0
  22. package/agents/core/es/planner.md +63 -0
  23. package/agents/core/es/security-reviewer.md +93 -0
  24. package/agents/core/fr/architect.md +66 -0
  25. package/agents/core/fr/code-reviewer.md +80 -0
  26. package/agents/core/fr/planner.md +63 -0
  27. package/agents/core/fr/security-reviewer.md +93 -0
  28. package/agents/core/nl/architect.md +66 -0
  29. package/agents/core/nl/code-reviewer.md +80 -0
  30. package/agents/core/nl/planner.md +63 -0
  31. package/agents/core/nl/security-reviewer.md +93 -0
  32. package/agents/core/planner.md +61 -0
  33. package/agents/core/security-reviewer.md +91 -0
  34. package/guides/agent-orchestration.md +231 -0
  35. package/guides/de/agent-orchestration.md +174 -0
  36. package/guides/de/getting-started.md +164 -0
  37. package/guides/de/hooks-cookbook.md +160 -0
  38. package/guides/de/memory-management.md +153 -0
  39. package/guides/de/security.md +180 -0
  40. package/guides/de/skill-authoring.md +214 -0
  41. package/guides/de/token-optimization.md +156 -0
  42. package/guides/es/agent-orchestration.md +174 -0
  43. package/guides/es/getting-started.md +164 -0
  44. package/guides/es/hooks-cookbook.md +160 -0
  45. package/guides/es/memory-management.md +153 -0
  46. package/guides/es/security.md +180 -0
  47. package/guides/es/skill-authoring.md +214 -0
  48. package/guides/es/token-optimization.md +156 -0
  49. package/guides/fr/agent-orchestration.md +174 -0
  50. package/guides/fr/getting-started.md +164 -0
  51. package/guides/fr/hooks-cookbook.md +227 -0
  52. package/guides/fr/memory-management.md +169 -0
  53. package/guides/fr/security.md +180 -0
  54. package/guides/fr/skill-authoring.md +214 -0
  55. package/guides/fr/token-optimization.md +158 -0
  56. package/guides/getting-started.md +164 -0
  57. package/guides/hooks-cookbook.md +423 -0
  58. package/guides/memory-management.md +192 -0
  59. package/guides/nl/agent-orchestration.md +174 -0
  60. package/guides/nl/getting-started.md +164 -0
  61. package/guides/nl/hooks-cookbook.md +160 -0
  62. package/guides/nl/memory-management.md +153 -0
  63. package/guides/nl/security.md +180 -0
  64. package/guides/nl/skill-authoring.md +214 -0
  65. package/guides/nl/token-optimization.md +156 -0
  66. package/guides/security.md +229 -0
  67. package/guides/skill-authoring.md +226 -0
  68. package/guides/token-optimization.md +169 -0
  69. package/hooks/lifecycle/cost-tracker.md +49 -0
  70. package/hooks/lifecycle/cost-tracker.sh +59 -0
  71. package/hooks/lifecycle/pre-compact-save.md +56 -0
  72. package/hooks/lifecycle/pre-compact-save.sh +37 -0
  73. package/hooks/lifecycle/session-start.md +50 -0
  74. package/hooks/lifecycle/session-start.sh +47 -0
  75. package/hooks/post-tool-use/audit-log.md +53 -0
  76. package/hooks/post-tool-use/audit-log.sh +53 -0
  77. package/hooks/post-tool-use/prettier.md +53 -0
  78. package/hooks/post-tool-use/prettier.sh +49 -0
  79. package/hooks/pre-tool-use/block-dangerous.md +48 -0
  80. package/hooks/pre-tool-use/block-dangerous.sh +76 -0
  81. package/hooks/pre-tool-use/git-push-confirm.md +46 -0
  82. package/hooks/pre-tool-use/git-push-confirm.sh +36 -0
  83. package/mcp/configs/github.json +11 -0
  84. package/mcp/configs/postgres.json +11 -0
  85. package/mcp/de/recommended-servers.md +170 -0
  86. package/mcp/es/recommended-servers.md +170 -0
  87. package/mcp/fr/recommended-servers.md +170 -0
  88. package/mcp/nl/recommended-servers.md +170 -0
  89. package/mcp/recommended-servers.md +168 -0
  90. package/package.json +45 -0
  91. package/prompts/project-starters/de/fastapi-project.md +62 -0
  92. package/prompts/project-starters/de/nextjs-project.md +82 -0
  93. package/prompts/project-starters/es/fastapi-project.md +62 -0
  94. package/prompts/project-starters/es/nextjs-project.md +82 -0
  95. package/prompts/project-starters/fastapi-project.md +60 -0
  96. package/prompts/project-starters/fr/fastapi-project.md +62 -0
  97. package/prompts/project-starters/fr/nextjs-project.md +82 -0
  98. package/prompts/project-starters/nextjs-project.md +80 -0
  99. package/prompts/project-starters/nl/fastapi-project.md +62 -0
  100. package/prompts/project-starters/nl/nextjs-project.md +82 -0
  101. package/prompts/system-prompts/ai-product.md +80 -0
  102. package/prompts/system-prompts/data-pipeline.md +76 -0
  103. package/prompts/system-prompts/de/ai-product.md +82 -0
  104. package/prompts/system-prompts/de/data-pipeline.md +78 -0
  105. package/prompts/system-prompts/de/saas-backend.md +71 -0
  106. package/prompts/system-prompts/es/ai-product.md +82 -0
  107. package/prompts/system-prompts/es/data-pipeline.md +78 -0
  108. package/prompts/system-prompts/es/saas-backend.md +71 -0
  109. package/prompts/system-prompts/fr/ai-product.md +82 -0
  110. package/prompts/system-prompts/fr/data-pipeline.md +78 -0
  111. package/prompts/system-prompts/fr/saas-backend.md +71 -0
  112. package/prompts/system-prompts/nl/ai-product.md +82 -0
  113. package/prompts/system-prompts/nl/data-pipeline.md +78 -0
  114. package/prompts/system-prompts/nl/saas-backend.md +71 -0
  115. package/prompts/system-prompts/saas-backend.md +69 -0
  116. package/prompts/task-specific/changelog.md +81 -0
  117. package/prompts/task-specific/de/changelog.md +83 -0
  118. package/prompts/task-specific/de/debugging.md +78 -0
  119. package/prompts/task-specific/de/pr-description.md +69 -0
  120. package/prompts/task-specific/debugging.md +76 -0
  121. package/prompts/task-specific/es/changelog.md +83 -0
  122. package/prompts/task-specific/es/debugging.md +78 -0
  123. package/prompts/task-specific/es/pr-description.md +69 -0
  124. package/prompts/task-specific/fr/changelog.md +83 -0
  125. package/prompts/task-specific/fr/debugging.md +78 -0
  126. package/prompts/task-specific/fr/pr-description.md +69 -0
  127. package/prompts/task-specific/nl/changelog.md +83 -0
  128. package/prompts/task-specific/nl/debugging.md +78 -0
  129. package/prompts/task-specific/nl/pr-description.md +69 -0
  130. package/prompts/task-specific/pr-description.md +67 -0
  131. package/rules/common/coding-style.md +45 -0
  132. package/rules/common/de/coding-style.md +47 -0
  133. package/rules/common/de/git.md +48 -0
  134. package/rules/common/de/performance.md +40 -0
  135. package/rules/common/de/security.md +45 -0
  136. package/rules/common/de/testing.md +45 -0
  137. package/rules/common/es/coding-style.md +47 -0
  138. package/rules/common/es/git.md +48 -0
  139. package/rules/common/es/performance.md +40 -0
  140. package/rules/common/es/security.md +45 -0
  141. package/rules/common/es/testing.md +45 -0
  142. package/rules/common/fr/coding-style.md +47 -0
  143. package/rules/common/fr/git.md +48 -0
  144. package/rules/common/fr/performance.md +40 -0
  145. package/rules/common/fr/security.md +45 -0
  146. package/rules/common/fr/testing.md +45 -0
  147. package/rules/common/git.md +46 -0
  148. package/rules/common/nl/coding-style.md +47 -0
  149. package/rules/common/nl/git.md +48 -0
  150. package/rules/common/nl/performance.md +40 -0
  151. package/rules/common/nl/security.md +45 -0
  152. package/rules/common/nl/testing.md +45 -0
  153. package/rules/common/performance.md +38 -0
  154. package/rules/common/security.md +43 -0
  155. package/rules/common/testing.md +43 -0
  156. package/rules/language-specific/de/go.md +48 -0
  157. package/rules/language-specific/de/python.md +38 -0
  158. package/rules/language-specific/de/typescript.md +51 -0
  159. package/rules/language-specific/es/go.md +48 -0
  160. package/rules/language-specific/es/python.md +38 -0
  161. package/rules/language-specific/es/typescript.md +51 -0
  162. package/rules/language-specific/fr/go.md +48 -0
  163. package/rules/language-specific/fr/python.md +38 -0
  164. package/rules/language-specific/fr/typescript.md +51 -0
  165. package/rules/language-specific/go.md +46 -0
  166. package/rules/language-specific/nl/go.md +48 -0
  167. package/rules/language-specific/nl/python.md +38 -0
  168. package/rules/language-specific/nl/typescript.md +51 -0
  169. package/rules/language-specific/python.md +36 -0
  170. package/rules/language-specific/typescript.md +49 -0
  171. package/scripts/cli.js +161 -0
  172. package/scripts/link-skills.sh +35 -0
  173. package/scripts/list-skills.sh +34 -0
  174. package/skills/ai-engineering/agent-construction.md +285 -0
  175. package/skills/ai-engineering/claude-api.md +248 -0
  176. package/skills/ai-engineering/de/agent-construction.md +287 -0
  177. package/skills/ai-engineering/de/claude-api.md +250 -0
  178. package/skills/ai-engineering/es/agent-construction.md +287 -0
  179. package/skills/ai-engineering/es/claude-api.md +250 -0
  180. package/skills/ai-engineering/fr/agent-construction.md +287 -0
  181. package/skills/ai-engineering/fr/claude-api.md +250 -0
  182. package/skills/ai-engineering/nl/agent-construction.md +287 -0
  183. package/skills/ai-engineering/nl/claude-api.md +250 -0
  184. package/skills/backend/dotnet/csharp.md +304 -0
  185. package/skills/backend/dotnet/de/csharp.md +306 -0
  186. package/skills/backend/dotnet/es/csharp.md +306 -0
  187. package/skills/backend/dotnet/fr/csharp.md +306 -0
  188. package/skills/backend/dotnet/nl/csharp.md +306 -0
  189. package/skills/backend/go/de/go.md +307 -0
  190. package/skills/backend/go/es/go.md +307 -0
  191. package/skills/backend/go/fr/go.md +307 -0
  192. package/skills/backend/go/go.md +305 -0
  193. package/skills/backend/go/nl/go.md +307 -0
  194. package/skills/backend/nodejs/de/nestjs.md +274 -0
  195. package/skills/backend/nodejs/de/nextjs.md +222 -0
  196. package/skills/backend/nodejs/es/nestjs.md +274 -0
  197. package/skills/backend/nodejs/es/nextjs.md +222 -0
  198. package/skills/backend/nodejs/fr/nestjs.md +274 -0
  199. package/skills/backend/nodejs/fr/nextjs.md +222 -0
  200. package/skills/backend/nodejs/nestjs.md +272 -0
  201. package/skills/backend/nodejs/nextjs.md +220 -0
  202. package/skills/backend/nodejs/nl/nestjs.md +274 -0
  203. package/skills/backend/nodejs/nl/nextjs.md +222 -0
  204. package/skills/backend/python/de/django.md +285 -0
  205. package/skills/backend/python/de/fastapi.md +244 -0
  206. package/skills/backend/python/django.md +283 -0
  207. package/skills/backend/python/es/django.md +285 -0
  208. package/skills/backend/python/es/fastapi.md +244 -0
  209. package/skills/backend/python/fastapi.md +242 -0
  210. package/skills/backend/python/fr/django.md +285 -0
  211. package/skills/backend/python/fr/fastapi.md +244 -0
  212. package/skills/backend/python/nl/django.md +285 -0
  213. package/skills/backend/python/nl/fastapi.md +244 -0
  214. package/skills/data-ml/dbt-data-pipelines.md +155 -0
  215. package/skills/data-ml/de/dbt-data-pipelines.md +157 -0
  216. package/skills/data-ml/de/pandas-polars.md +147 -0
  217. package/skills/data-ml/de/pytorch-tensorflow.md +171 -0
  218. package/skills/data-ml/es/dbt-data-pipelines.md +157 -0
  219. package/skills/data-ml/es/pandas-polars.md +147 -0
  220. package/skills/data-ml/es/pytorch-tensorflow.md +171 -0
  221. package/skills/data-ml/fr/dbt-data-pipelines.md +157 -0
  222. package/skills/data-ml/fr/pandas-polars.md +147 -0
  223. package/skills/data-ml/fr/pytorch-tensorflow.md +171 -0
  224. package/skills/data-ml/nl/dbt-data-pipelines.md +157 -0
  225. package/skills/data-ml/nl/pandas-polars.md +147 -0
  226. package/skills/data-ml/nl/pytorch-tensorflow.md +171 -0
  227. package/skills/data-ml/pandas-polars.md +145 -0
  228. package/skills/data-ml/pytorch-tensorflow.md +169 -0
  229. package/skills/database/de/graphql.md +181 -0
  230. package/skills/database/es/graphql.md +181 -0
  231. package/skills/database/fr/graphql.md +181 -0
  232. package/skills/database/graphql.md +179 -0
  233. package/skills/database/nl/graphql.md +181 -0
  234. package/skills/devops-infra/de/docker.md +133 -0
  235. package/skills/devops-infra/de/github-actions.md +179 -0
  236. package/skills/devops-infra/de/kubernetes.md +129 -0
  237. package/skills/devops-infra/de/terraform.md +130 -0
  238. package/skills/devops-infra/docker.md +131 -0
  239. package/skills/devops-infra/es/docker.md +133 -0
  240. package/skills/devops-infra/es/github-actions.md +179 -0
  241. package/skills/devops-infra/es/kubernetes.md +129 -0
  242. package/skills/devops-infra/es/terraform.md +130 -0
  243. package/skills/devops-infra/fr/docker.md +133 -0
  244. package/skills/devops-infra/fr/github-actions.md +179 -0
  245. package/skills/devops-infra/fr/kubernetes.md +129 -0
  246. package/skills/devops-infra/fr/terraform.md +130 -0
  247. package/skills/devops-infra/github-actions.md +177 -0
  248. package/skills/devops-infra/kubernetes.md +127 -0
  249. package/skills/devops-infra/nl/docker.md +133 -0
  250. package/skills/devops-infra/nl/github-actions.md +179 -0
  251. package/skills/devops-infra/nl/kubernetes.md +129 -0
  252. package/skills/devops-infra/nl/terraform.md +130 -0
  253. package/skills/devops-infra/terraform.md +128 -0
  254. package/skills/finance-payments/de/stripe.md +187 -0
  255. package/skills/finance-payments/es/stripe.md +187 -0
  256. package/skills/finance-payments/fr/stripe.md +187 -0
  257. package/skills/finance-payments/nl/stripe.md +187 -0
  258. package/skills/finance-payments/stripe.md +185 -0
  259. package/workflows/code-review.md +151 -0
  260. package/workflows/de/code-review.md +153 -0
  261. package/workflows/de/debugging-session.md +146 -0
  262. package/workflows/de/feature-development.md +155 -0
  263. package/workflows/de/new-project-bootstrap.md +175 -0
  264. package/workflows/de/refactor-safely.md +150 -0
  265. package/workflows/debugging-session.md +144 -0
  266. package/workflows/es/code-review.md +153 -0
  267. package/workflows/es/debugging-session.md +146 -0
  268. package/workflows/es/feature-development.md +155 -0
  269. package/workflows/es/new-project-bootstrap.md +175 -0
  270. package/workflows/es/refactor-safely.md +150 -0
  271. package/workflows/feature-development.md +153 -0
  272. package/workflows/fr/code-review.md +153 -0
  273. package/workflows/fr/debugging-session.md +146 -0
  274. package/workflows/fr/feature-development.md +155 -0
  275. package/workflows/fr/new-project-bootstrap.md +175 -0
  276. package/workflows/fr/refactor-safely.md +150 -0
  277. package/workflows/new-project-bootstrap.md +173 -0
  278. package/workflows/nl/code-review.md +153 -0
  279. package/workflows/nl/debugging-session.md +146 -0
  280. package/workflows/nl/feature-development.md +155 -0
  281. package/workflows/nl/new-project-bootstrap.md +175 -0
  282. package/workflows/nl/refactor-safely.md +150 -0
  283. package/workflows/refactor-safely.md +148 -0
@@ -0,0 +1,71 @@
1
+ > 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../saas-backend.md).
2
+
3
+ # CLAUDE.md Starter — SaaS Backend
4
+
5
+ Dies in die `CLAUDE.md` des Projekts einfügen und die Abschnitte in eckigen Klammern ausfüllen.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Projektname] — Claude Code Anweisungen
11
+
12
+ ## Was das ist
13
+ [Ein Absatz: was das Produkt tut, wer es verwendet, welches Problem es löst]
14
+
15
+ ## Stack
16
+ - Sprache: [TypeScript / Python / Go]
17
+ - Framework: [Express / FastAPI / Gin / NestJS]
18
+ - Datenbank: [PostgreSQL via Prisma / raw pg / SQLAlchemy]
19
+ - Auth: [JWT mit 15-min Access Tokens + 7-Tage Refresh Tokens / Clerk / Auth0]
20
+ - Cache: [Redis]
21
+ - Queue: [BullMQ / SQS / Celery]
22
+ - Deployment: [AWS ECS / Fly.io / Railway]
23
+
24
+ ## Projektstruktur
25
+ src/
26
+ ├── api/ ← Route-Handler — dünn, delegieren an Services
27
+ ├── services/ ← Business-Logik — keine HTTP-Belange
28
+ ├── db/ ← Datenbankabfragen — keine Business-Logik
29
+ ├── middleware/ ← Auth, Rate Limiting, Fehlerbehandlung
30
+ ├── models/ ← Typdefinitionen und Schemas
31
+ └── utils/ ← Reine Funktionen, keine Nebeneffekte
32
+
33
+ ## Konventionen
34
+ - Route-Handler sind dünn: Eingabe validieren, Service aufrufen, Antwort zurückgeben
35
+ - Services enthalten alle Business-Logik: sie kennen kein HTTP
36
+ - DB-Layer enthält nur Abfragen: keine Business-Logik, keine HTTP-Belange
37
+ - Alle Datenbankzugriffe gehen durch den db/-Layer — niemals ORM direkt aus Services aufrufen
38
+ - Fehler propagieren nach oben mit Kontext — niemals stillschweigend schlucken
39
+ - Alle API-Routes zurückgeben: 200 (Erfolg), 201 (erstellt), 204 (kein Inhalt), 400 (schlechte Eingabe), 401 (unauth), 403 (verboten), 404 (nicht gefunden), 409 (Konflikt), 422 (Validierung), 500 (unerwartet)
40
+
41
+ ## Entscheidungen (nicht neu diskutieren)
42
+ - [Auth-Mechanismus entschieden: JWT, keine Sessions]
43
+ - [ORM-Wahl: Prisma — kein rohes SQL außer für komplexe Analytics-Abfragen]
44
+ - [Fehlerformat: { error: string, code: string } — Form niemals ändern]
45
+ - [Keine Barrel-Dateien — direkt aus der Quelle importieren]
46
+
47
+ ## Tests
48
+ - Integrationstests treffen eine echte Test-Datenbank — keine DB-Mocks
49
+ - Unit-Tests für reine Business-Logik in services/
50
+ - Testdatei: [dateiname].test.ts neben der Quelldatei
51
+ - Ausführen: npm test
52
+
53
+ ## Befehle
54
+ - npm run dev — Entwicklungsserver mit Hot Reload starten
55
+ - npm test — alle Tests ausführen
56
+ - npm run build — Produktions-Build
57
+ - npm run lint — ESLint + Prettier-Prüfung
58
+ - npm run db:migrate — ausstehende Migrationen ausführen
59
+ - npm run db:seed — Entwicklungsdaten seeden
60
+
61
+ ## Niemals tun
62
+ - Niemals Business-Logik in Route-Handlern
63
+ - Niemals die Datenbank direkt aus Route-Handlern aufrufen
64
+ - Niemals rohe Datenbankfehler an Clients zurückgeben
65
+ - Niemals .env-Dateien committen
66
+ - Niemals `any`-Typ in TypeScript verwenden
67
+ ```
68
+
69
+ ---
70
+
71
+ > **Mit uns arbeiten:** Claudient wird von [Uitbreiden](https://uitbreiden.com/) unterstützt — wir bauen KI-Produkte und B2B-Lösungen mit Entwickler-Communities. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,82 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../ai-product.md).
2
+
3
+ # CLAUDE.md Starter — Producto de IA
4
+
5
+ Copia esto en el `CLAUDE.md` de tu proyecto y completa las secciones entre corchetes.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Nombre del Proyecto] — Instrucciones para Claude Code
11
+
12
+ ## Qué es esto
13
+ [Un párrafo: qué hace el producto de IA, qué modelo usa, quiénes son los usuarios]
14
+
15
+ ## Stack
16
+ - Lenguaje: [TypeScript / Python]
17
+ - Framework: [Next.js / FastAPI]
18
+ - IA: [Claude API via Anthropic SDK / OpenAI / Gemini]
19
+ - Modelo: [claude-sonnet-4-6 / claude-opus-4-7 / claude-haiku-4-5]
20
+ - Base de datos: [PostgreSQL / Supabase]
21
+ - BD Vectorial: [Pinecone / pgvector / Weaviate] (si aplica)
22
+ - Despliegue: [Vercel / AWS / Railway]
23
+
24
+ ## Estructura del proyecto
25
+ src/
26
+ ├── app/ ← Rutas del router de Next.js / FastAPI
27
+ ├── ai/ ← Todo el código relacionado con IA: prompts, chains, herramientas
28
+ │ ├── prompts/ ← Prompts de sistema y plantillas de prompts
29
+ │ ├── tools/ ← Definiciones de herramientas para function calling
30
+ │ └── agents/ ← Definiciones de agentes y orquestación
31
+ ├── db/ ← Consultas a la base de datos y migraciones
32
+ ├── services/ ← Lógica de negocio
33
+ └── utils/ ← Utilidades puras
34
+
35
+ ## Convenciones de IA
36
+ - Todos los prompts de sistema viven en src/ai/prompts/ — nunca inline en los route handlers
37
+ - Siempre fija la versión del modelo — nunca uses el alias "latest"
38
+ - Siempre habilita el caché de prompts en los prompts de sistema (cache_control: ephemeral)
39
+ - Registra el uso de tokens por solicitud para seguimiento de costos
40
+ - Respuestas con streaming: usa SSE para respuestas > 1000 tokens
41
+ - Nunca pases PII del usuario al modelo a menos que la funcionalidad lo requiera explícitamente
42
+ - Las definiciones de herramientas viven en src/ai/tools/ — un archivo por herramienta
43
+
44
+ ## Configuración de caché de prompts
45
+ - Los prompts de sistema deben usar cache_control para habilitar el caché
46
+ - Lectura de caché = $0.30/MTok vs sin caché = $3/MTok — siempre cachea
47
+ - Invalida el caché cuando el prompt de sistema cambia (automático al cambiar el contenido)
48
+
49
+ ## Controles de costo
50
+ - Modelo por defecto: [claude-haiku-4-5] para tareas simples, [claude-sonnet-4-6] para complejas
51
+ - Tokens máximos: establece max_tokens explícito en cada solicitud — nunca ilimitado
52
+ - Límite de tasa: [X] solicitudes por usuario por minuto
53
+ - Alerta de presupuesto: registra cuando una sesión individual supera $[X]
54
+
55
+ ## Decisiones (no re-discutir)
56
+ - [Justificación de la selección del modelo]
57
+ - [Por qué streaming vs. no-streaming]
58
+ - [Estrategia de ventana de contexto: resumir en N tokens]
59
+ - [Tool calling vs. generación directa para salida estructurada]
60
+
61
+ ## Testing
62
+ - Pruebas unitarias para construcción de prompts y parseo de salida
63
+ - Pruebas de integración con respuestas de API grabadas (VCR / fixtures)
64
+ - Nunca hagas llamadas reales a la API en pruebas — cuesta dinero y es lento
65
+ - Prueba entradas adversariales: inyección de prompts, intentos de jailbreak, casos límite
66
+
67
+ ## Comandos
68
+ - [comando de desarrollo]
69
+ - [comando de pruebas]
70
+ - [comando de despliegue]
71
+
72
+ ## Nunca hacer
73
+ - Nunca pongas prompts de sistema inline en los route handlers
74
+ - Nunca hagas llamadas de IA sin límite sin max_tokens
75
+ - Nunca registres respuestas completas de IA en producción (pueden contener PII del usuario)
76
+ - Nunca hardcodees claves de API — usa variables de entorno
77
+ - Nunca llames al modelo de IA directamente desde componentes de UI
78
+ ```
79
+
80
+ ---
81
+
82
+ > **Trabaja con nosotros:** Claudient está respaldado por [Uitbreiden](https://uitbreiden.com/) — construimos productos de IA y soluciones B2B con comunidades de desarrolladores. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,78 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../data-pipeline.md).
2
+
3
+ # CLAUDE.md Starter — Proyecto de Pipeline de Datos
4
+
5
+ Copia esto en el `CLAUDE.md` de tu proyecto y completa las secciones entre corchetes.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Nombre del Proyecto] — Instrucciones para Claude Code
11
+
12
+ ## Qué es esto
13
+ [Un párrafo: qué datos procesa este pipeline, sistemas fuente, destino, propósito de negocio]
14
+
15
+ ## Stack
16
+ - Orquestador: [Airflow / Prefect / Dagster / dbt Cloud]
17
+ - Transformación: [dbt / PySpark / Pandas / Polars]
18
+ - Warehouse: [BigQuery / Snowflake / Redshift / DuckDB]
19
+ - Ingesta: [Fivetran / Airbyte / personalizado]
20
+ - Lenguaje: [Python / SQL]
21
+ - Infraestructura: [Terraform en AWS / GCP / Azure]
22
+
23
+ ## Estructura del proyecto
24
+ dbt/ (si se usa dbt)
25
+ ├── models/
26
+ │ ├── staging/ ← 1:1 con tablas fuente, solo limpieza ligera
27
+ │ ├── intermediate/ ← Lógica de negocio, joins
28
+ │ └── marts/ ← Entidades de negocio finales (prefijos fct_, dim_)
29
+ ├── macros/ ← Macros SQL reutilizables
30
+ ├── seeds/ ← Datos de referencia estáticos
31
+ └── tests/ ← Tests singulares personalizados
32
+
33
+ pipelines/ (si se usa Airflow/Prefect/Dagster)
34
+ ├── dags/ / flows/ ← Definiciones de pipelines
35
+ ├── operators/ ← Operadores/tareas personalizados
36
+ └── utils/ ← Utilidades compartidas
37
+
38
+ ## Convenciones de datos
39
+ - Modelos de staging: renombrar a snake_case, castear tipos, sin joins, sin lógica de negocio
40
+ - Tablas de hechos: prefijo fct_, una fila por evento/transacción
41
+ - Tablas de dimensiones: prefijo dim_, una fila por entidad
42
+ - Nunca uses SELECT * en consultas de producción
43
+ - Todos los modelos mart deben tener tests unique + not_null en la clave primaria
44
+ - Se requieren verificaciones de frescura de fuente en todas las fuentes
45
+
46
+ ## Decisiones (no re-discutir)
47
+ - [Estrategia incremental vs. full-refresh para tablas de hechos]
48
+ - [Zona horaria: todos los timestamps en UTC]
49
+ - [Granularidad: qué representa una fila en cada tabla mart]
50
+ - [Estrategia de manejo de datos tardíos]
51
+
52
+ ## Requisitos de testing
53
+ - Cada modelo de staging: not_null en la clave primaria
54
+ - Cada modelo mart: unique + not_null en la clave primaria, relationships en claves foráneas
55
+ - Frescura de fuente: advertir a las [X] horas, error a las [Y] horas
56
+
57
+ ## Reglas de rendimiento
58
+ - Particiona las tablas grandes por fecha — siempre filtra en la columna de partición
59
+ - Usa modelos incrementales para tablas > [X] filas
60
+ - Nunca ejecutes full refreshes en producción sin aprobación
61
+ - Claves de cluster/sort: [especificar si se usa Snowflake/Redshift]
62
+
63
+ ## Comandos
64
+ - dbt run --select staging — ejecutar la capa de staging
65
+ - dbt test — ejecutar todas las pruebas
66
+ - dbt docs generate && dbt docs serve — previsualizar documentación
67
+ - dbt source freshness — verificar la frescura de los datos fuente
68
+
69
+ ## Nunca hacer
70
+ - Nunca pongas lógica de negocio en los modelos de staging
71
+ - Nunca hardcodees fechas — usa variables dbt o macros
72
+ - Nunca hagas commit de credenciales reales — usa variables de entorno o gestor de secretos
73
+ - Nunca ejecutes dbt run en producción sin que dbt test pase primero
74
+ ```
75
+
76
+ ---
77
+
78
+ > **Trabaja con nosotros:** Claudient está respaldado por [Uitbreiden](https://uitbreiden.com/) — construimos productos de IA y soluciones B2B con comunidades de desarrolladores. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,71 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../saas-backend.md).
2
+
3
+ # CLAUDE.md Starter — Backend SaaS
4
+
5
+ Copia esto en el `CLAUDE.md` de tu proyecto y completa las secciones entre corchetes.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Nombre del Proyecto] — Instrucciones para Claude Code
11
+
12
+ ## Qué es esto
13
+ [Un párrafo: qué hace el producto, quién lo usa, qué problema resuelve]
14
+
15
+ ## Stack
16
+ - Lenguaje: [TypeScript / Python / Go]
17
+ - Framework: [Express / FastAPI / Gin / NestJS]
18
+ - Base de datos: [PostgreSQL via Prisma / raw pg / SQLAlchemy]
19
+ - Autenticación: [JWT con tokens de acceso de 15 min + tokens de refresco de 7 días / Clerk / Auth0]
20
+ - Caché: [Redis]
21
+ - Cola: [BullMQ / SQS / Celery]
22
+ - Despliegue: [AWS ECS / Fly.io / Railway]
23
+
24
+ ## Estructura del proyecto
25
+ src/
26
+ ├── api/ ← Manejadores de rutas — ligeros, delegan a servicios
27
+ ├── services/ ← Lógica de negocio — sin preocupaciones HTTP
28
+ ├── db/ ← Consultas a la base de datos — sin lógica de negocio
29
+ ├── middleware/ ← Autenticación, limitación de tasa, manejo de errores
30
+ ├── models/ ← Definiciones de tipos y esquemas
31
+ └── utils/ ← Funciones puras, sin efectos secundarios
32
+
33
+ ## Convenciones
34
+ - Los manejadores de rutas son ligeros: valida la entrada, llama al servicio, devuelve respuesta
35
+ - Los servicios contienen toda la lógica de negocio: no conocen HTTP
36
+ - La capa de BD contiene solo consultas: sin lógica de negocio, sin preocupaciones HTTP
37
+ - Todo el acceso a la base de datos pasa por la capa db/ — nunca llames al ORM directamente desde los servicios
38
+ - Los errores se propagan hacia arriba con contexto — nunca los ignores silenciosamente
39
+ - Todas las rutas de API devuelven: 200 (éxito), 201 (creado), 204 (sin contenido), 400 (entrada inválida), 401 (no autenticado), 403 (prohibido), 404 (no encontrado), 409 (conflicto), 422 (validación), 500 (inesperado)
40
+
41
+ ## Decisiones (no re-discutir)
42
+ - [Mecanismo de autenticación decidido: JWT, sin sesiones]
43
+ - [Elección de ORM: Prisma — sin SQL crudo excepto para consultas de analítica complejas]
44
+ - [Formato de error: { error: string, code: string } — nunca cambiar la forma]
45
+ - [Sin archivos barrel — importa directamente desde el código fuente]
46
+
47
+ ## Testing
48
+ - Las pruebas de integración usan una base de datos de prueba real — sin mocks de BD
49
+ - Pruebas unitarias para lógica de negocio pura en services/
50
+ - Archivo de prueba: [filename].test.ts junto al archivo fuente
51
+ - Ejecutar: npm test
52
+
53
+ ## Comandos
54
+ - npm run dev — iniciar servidor de desarrollo con hot reload
55
+ - npm test — ejecutar todas las pruebas
56
+ - npm run build — build de producción
57
+ - npm run lint — verificación de ESLint + Prettier
58
+ - npm run db:migrate — ejecutar migraciones pendientes
59
+ - npm run db:seed — sembrar datos de desarrollo
60
+
61
+ ## Nunca hacer
62
+ - Nunca pongas lógica de negocio en los manejadores de rutas
63
+ - Nunca llames a la base de datos directamente desde los manejadores de rutas
64
+ - Nunca devuelvas errores brutos de la base de datos a los clientes
65
+ - Nunca hagas commit de archivos .env
66
+ - Nunca uses el tipo `any` en TypeScript
67
+ ```
68
+
69
+ ---
70
+
71
+ > **Trabaja con nosotros:** Claudient está respaldado por [Uitbreiden](https://uitbreiden.com/) — construimos productos de IA y soluciones B2B con comunidades de desarrolladores. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,82 @@
1
+ > 🇫🇷 This is the French translation. [English version](../ai-product.md).
2
+
3
+ # Starter CLAUDE.md — Produit IA
4
+
5
+ Déposez ceci dans le `CLAUDE.md` de votre projet et remplissez les sections entre crochets.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Nom du Projet] — Instructions Claude Code
11
+
12
+ ## Ce que c'est
13
+ [Un paragraphe : ce que fait le produit IA, quel modèle il utilise, qui sont les utilisateurs]
14
+
15
+ ## Stack
16
+ - Langage : [TypeScript / Python]
17
+ - Framework : [Next.js / FastAPI]
18
+ - IA : [API Claude via Anthropic SDK / OpenAI / Gemini]
19
+ - Modèle : [claude-sonnet-4-6 / claude-opus-4-7 / claude-haiku-4-5]
20
+ - Base de données : [PostgreSQL / Supabase]
21
+ - Vector DB : [Pinecone / pgvector / Weaviate] (si applicable)
22
+ - Déploiement : [Vercel / AWS / Railway]
23
+
24
+ ## Structure du projet
25
+ src/
26
+ ├── app/ ← App router Next.js / routes FastAPI
27
+ ├── ai/ ← Tout le code lié à l'IA : prompts, chains, outils
28
+ │ ├── prompts/ ← System prompts et templates de prompts
29
+ │ ├── tools/ ← Définitions d'outils pour le function calling
30
+ │ └── agents/ ← Définitions d'agents et orchestration
31
+ ├── db/ ← Requêtes de base de données et migrations
32
+ ├── services/ ← Logique métier
33
+ └── utils/ ← Utilitaires purs
34
+
35
+ ## Conventions IA
36
+ - Tous les system prompts vivent dans src/ai/prompts/ — jamais inline dans les route handlers
37
+ - Toujours épingler la version du modèle — ne jamais utiliser l'alias "latest"
38
+ - Toujours activer le prompt caching sur les system prompts (cache_control: ephemeral)
39
+ - Logger l'utilisation des tokens par requête pour le suivi des coûts
40
+ - Réponses en streaming : utiliser SSE pour les réponses > 1000 tokens
41
+ - Ne jamais passer les PII utilisateur au modèle sauf si la fonctionnalité le requiert explicitement
42
+ - Les définitions d'outils vivent dans src/ai/tools/ — un fichier par outil
43
+
44
+ ## Configuration du prompt caching
45
+ - Les system prompts doivent utiliser cache_control pour activer le caching
46
+ - Cache read = $0.30/MTok vs non caché = $3/MTok — toujours mettre en cache
47
+ - Invalider le cache quand le system prompt change (automatique au changement de contenu)
48
+
49
+ ## Contrôles de coût
50
+ - Modèle par défaut : [claude-haiku-4-5] pour les tâches simples, [claude-sonnet-4-6] pour les complexes
51
+ - Max tokens : définir max_tokens explicite sur chaque requête — jamais illimité
52
+ - Rate limit : [X] requêtes par utilisateur par minute
53
+ - Alerte budget : logger quand une seule session dépasse $[X]
54
+
55
+ ## Décisions (ne pas re-discuter)
56
+ - [Justification de la sélection du modèle]
57
+ - [Pourquoi streaming vs. non-streaming]
58
+ - [Stratégie de fenêtre de contexte : résumer à N tokens]
59
+ - [Tool calling vs. génération directe pour la sortie structurée]
60
+
61
+ ## Tests
62
+ - Tests unitaires pour la construction des prompts et le parsing des sorties
63
+ - Tests d'intégration avec des réponses API enregistrées (VCR / fixtures)
64
+ - Ne jamais faire de vrais appels API dans les tests — coûte de l'argent et est lent
65
+ - Tester les entrées adversariales : injection de prompt, tentatives de jailbreak, cas limites
66
+
67
+ ## Commandes
68
+ - [commande dev]
69
+ - [commande test]
70
+ - [commande déploiement]
71
+
72
+ ## Ne jamais faire
73
+ - Ne jamais inline les system prompts dans les route handlers
74
+ - Ne jamais faire des appels IA non bornés sans max_tokens
75
+ - Ne jamais logger les réponses IA complètes en production (peut contenir des PII utilisateur)
76
+ - Ne jamais coder en dur des clés API — utiliser des variables d'environnement
77
+ - Ne jamais appeler le modèle IA directement depuis les composants UI
78
+ ```
79
+
80
+ ---
81
+
82
+ > **Travaillez avec nous :** Claudient est soutenu par [Uitbreiden](https://uitbreiden.com/) — nous construisons des produits IA et des solutions B2B avec des communautés de développeurs. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,78 @@
1
+ > 🇫🇷 This is the French translation. [English version](../data-pipeline.md).
2
+
3
+ # Starter CLAUDE.md — Projet de Pipeline de Données
4
+
5
+ Déposez ceci dans le `CLAUDE.md` de votre projet et remplissez les sections entre crochets.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Nom du Projet] — Instructions Claude Code
11
+
12
+ ## Ce que c'est
13
+ [Un paragraphe : quelles données ce pipeline traite, les systèmes sources, la destination, l'objectif métier]
14
+
15
+ ## Stack
16
+ - Orchestrateur : [Airflow / Prefect / Dagster / dbt Cloud]
17
+ - Transformation : [dbt / PySpark / Pandas / Polars]
18
+ - Entrepôt : [BigQuery / Snowflake / Redshift / DuckDB]
19
+ - Ingestion : [Fivetran / Airbyte / personnalisé]
20
+ - Langage : [Python / SQL]
21
+ - Infra : [Terraform sur AWS / GCP / Azure]
22
+
23
+ ## Structure du projet
24
+ dbt/ (si utilisant dbt)
25
+ ├── models/
26
+ │ ├── staging/ ← 1:1 avec les tables sources, nettoyage léger seulement
27
+ │ ├── intermediate/ ← Logique métier, jointures
28
+ │ └── marts/ ← Entités métier finales (préfixes fct_, dim_)
29
+ ├── macros/ ← Macros SQL réutilisables
30
+ ├── seeds/ ← Données de référence statiques
31
+ └── tests/ ← Tests singuliers personnalisés
32
+
33
+ pipelines/ (si utilisant Airflow/Prefect/Dagster)
34
+ ├── dags/ / flows/ ← Définitions de pipeline
35
+ ├── operators/ ← Opérateurs/tâches personnalisés
36
+ └── utils/ ← Utilitaires partagés
37
+
38
+ ## Conventions de données
39
+ - Modèles staging : renommer en snake_case, caster les types, pas de jointures, pas de logique métier
40
+ - Tables de faits : préfixe fct_, une ligne par événement/transaction
41
+ - Tables de dimensions : préfixe dim_, une ligne par entité
42
+ - Ne jamais utiliser SELECT * dans les requêtes de production
43
+ - Tous les modèles mart doivent avoir des tests unique + not_null sur la clé primaire
44
+ - Contrôles de fraîcheur de source requis sur toutes les sources
45
+
46
+ ## Décisions (ne pas re-discuter)
47
+ - [Stratégie incrémentale vs. rafraîchissement complet pour les tables de faits]
48
+ - [Fuseau horaire : tous les timestamps en UTC]
49
+ - [Grain : ce que représente une ligne dans chaque table mart]
50
+ - [Stratégie de gestion des données en retard]
51
+
52
+ ## Exigences de tests
53
+ - Chaque modèle staging : not_null sur la clé primaire
54
+ - Chaque modèle mart : unique + not_null sur la clé primaire, relationships sur les clés étrangères
55
+ - Fraîcheur des sources : avertir à [X] heures, erreur à [Y] heures
56
+
57
+ ## Règles de performance
58
+ - Partitionner les grandes tables par date — toujours filtrer sur la colonne de partition
59
+ - Utiliser des modèles incrémentaux pour les tables > [X] lignes
60
+ - Ne jamais exécuter des rafraîchissements complets en production sans approbation
61
+ - Clés cluster/tri : [spécifier si utilisant Snowflake/Redshift]
62
+
63
+ ## Commandes
64
+ - dbt run --select staging — exécuter la couche staging
65
+ - dbt test — exécuter tous les tests
66
+ - dbt docs generate && dbt docs serve — prévisualiser la documentation
67
+ - dbt source freshness — vérifier la fraîcheur des données sources
68
+
69
+ ## Ne jamais faire
70
+ - Ne jamais mettre de logique métier dans les modèles staging
71
+ - Ne jamais coder en dur des dates — utiliser des variables ou des macros dbt
72
+ - Ne jamais committer de vrais credentials — utiliser des variables d'environnement ou un gestionnaire de secrets
73
+ - Ne jamais exécuter dbt run en production sans que dbt test passe d'abord
74
+ ```
75
+
76
+ ---
77
+
78
+ > **Travaillez avec nous :** Claudient est soutenu par [Uitbreiden](https://uitbreiden.com/) — nous construisons des produits IA et des solutions B2B avec des communautés de développeurs. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,71 @@
1
+ > 🇫🇷 This is the French translation. [English version](../saas-backend.md).
2
+
3
+ # Starter CLAUDE.md — Backend SaaS
4
+
5
+ Déposez ceci dans le `CLAUDE.md` de votre projet et remplissez les sections entre crochets.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Nom du Projet] — Instructions Claude Code
11
+
12
+ ## Ce que c'est
13
+ [Un paragraphe : ce que fait le produit, qui l'utilise, quel problème il résout]
14
+
15
+ ## Stack
16
+ - Langage : [TypeScript / Python / Go]
17
+ - Framework : [Express / FastAPI / Gin / NestJS]
18
+ - Base de données : [PostgreSQL via Prisma / raw pg / SQLAlchemy]
19
+ - Auth : [JWT avec tokens d'accès 15 min + tokens de rafraîchissement 7 jours / Clerk / Auth0]
20
+ - Cache : [Redis]
21
+ - Queue : [BullMQ / SQS / Celery]
22
+ - Déploiement : [AWS ECS / Fly.io / Railway]
23
+
24
+ ## Structure du projet
25
+ src/
26
+ ├── api/ ← Route handlers — minces, délèguent aux services
27
+ ├── services/ ← Logique métier — pas de préoccupations HTTP
28
+ ├── db/ ← Requêtes de base de données — pas de logique métier
29
+ ├── middleware/ ← Auth, rate limiting, gestion des erreurs
30
+ ├── models/ ← Définitions de types et schémas
31
+ └── utils/ ← Fonctions pures, pas d'effets secondaires
32
+
33
+ ## Conventions
34
+ - Les route handlers sont minces : valider l'entrée, appeler le service, retourner la réponse
35
+ - Les services contiennent toute la logique métier : ils ne connaissent pas HTTP
36
+ - La couche DB contient uniquement des requêtes : pas de logique métier, pas de préoccupations HTTP
37
+ - Tous les accès à la base de données passent par la couche db/ — ne jamais appeler l'ORM directement depuis les services
38
+ - Les erreurs se propagent vers le haut avec du contexte — ne jamais avaler silencieusement
39
+ - Toutes les routes API retournent : 200 (succès), 201 (créé), 204 (pas de contenu), 400 (mauvaise entrée), 401 (non auth), 403 (interdit), 404 (non trouvé), 409 (conflit), 422 (validation), 500 (inattendu)
40
+
41
+ ## Décisions (ne pas re-discuter)
42
+ - [Mécanisme d'auth décidé : JWT, pas de sessions]
43
+ - [Choix ORM : Prisma — pas de SQL brut sauf pour les requêtes d'analytique complexes]
44
+ - [Format d'erreur : { error: string, code: string } — ne jamais changer la forme]
45
+ - [Pas de fichiers barrel — importer directement depuis la source]
46
+
47
+ ## Tests
48
+ - Les tests d'intégration touchent une vraie base de données de test — pas de mocks DB
49
+ - Tests unitaires pour la logique métier pure dans services/
50
+ - Fichier de test : [filename].test.ts à côté du fichier source
51
+ - Exécuter : npm test
52
+
53
+ ## Commandes
54
+ - npm run dev — démarrer le serveur de développement avec rechargement à chaud
55
+ - npm test — exécuter tous les tests
56
+ - npm run build — build de production
57
+ - npm run lint — vérification ESLint + Prettier
58
+ - npm run db:migrate — exécuter les migrations en attente
59
+ - npm run db:seed — seeder les données de développement
60
+
61
+ ## Ne jamais faire
62
+ - Ne jamais mettre de logique métier dans les route handlers
63
+ - Ne jamais appeler la base de données directement depuis les route handlers
64
+ - Ne jamais retourner les erreurs brutes de la base de données aux clients
65
+ - Ne jamais committer des fichiers .env
66
+ - Ne jamais utiliser le type `any` en TypeScript
67
+ ```
68
+
69
+ ---
70
+
71
+ > **Travaillez avec nous :** Claudient est soutenu par [Uitbreiden](https://uitbreiden.com/) — nous construisons des produits IA et des solutions B2B avec des communautés de développeurs. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,82 @@
1
+ > 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../ai-product.md).
2
+
3
+ # CLAUDE.md Starter — AI-product
4
+
5
+ Zet dit in de `CLAUDE.md` van je project en vul de secties tussen haakjes in.
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # [Projectnaam] — Claude Code Instructies
11
+
12
+ ## Wat dit is
13
+ [Eén alinea: wat het AI-product doet, welk model het gebruikt, wie de gebruikers zijn]
14
+
15
+ ## Stack
16
+ - Taal: [TypeScript / Python]
17
+ - Framework: [Next.js / FastAPI]
18
+ - AI: [Claude API via Anthropic SDK / OpenAI / Gemini]
19
+ - Model: [claude-sonnet-4-6 / claude-opus-4-7 / claude-haiku-4-5]
20
+ - Database: [PostgreSQL / Supabase]
21
+ - Vector DB: [Pinecone / pgvector / Weaviate] (indien van toepassing)
22
+ - Deployment: [Vercel / AWS / Railway]
23
+
24
+ ## Projectstructuur
25
+ src/
26
+ ├── app/ ← Next.js app router / FastAPI routes
27
+ ├── ai/ ← Alle AI-gerelateerde code: prompts, ketens, tools
28
+ │ ├── prompts/ ← Systeemprompts en promptsjablonen
29
+ │ ├── tools/ ← Tooldefinities voor function calling
30
+ │ └── agents/ ← Agentdefinities en orkestratie
31
+ ├── db/ ← Databasequeries en migraties
32
+ ├── services/ ← Bedrijfslogica
33
+ └── utils/ ← Pure hulpprogramma's
34
+
35
+ ## AI-conventies
36
+ - Alle systeemprompts staan in src/ai/prompts/ — nooit inline in route-handlers
37
+ - Pin altijd de modelversie — gebruik nooit de alias "latest"
38
+ - Schakel altijd prompt-caching in op systeemprompts (cache_control: ephemeral)
39
+ - Log tokengebruik per verzoek voor kostentracking
40
+ - Streamingantwoorden: gebruik SSE voor antwoorden > 1000 tokens
41
+ - Geef nooit gebruikers-PII door aan het model tenzij de feature dit expliciet vereist
42
+ - Tooldefinities staan in src/ai/tools/ — één bestand per tool
43
+
44
+ ## Prompt-caching instelling
45
+ - Systeemprompts moeten cache_control gebruiken om caching in te schakelen
46
+ - Cache-lezen = $0.30/MTok vs niet gecachet = $3/MTok — cache altijd
47
+ - Invalideer cache wanneer systeemprompt verandert (automatisch bij inhoudswijziging)
48
+
49
+ ## Kostencontroles
50
+ - Standaardmodel: [claude-haiku-4-5] voor eenvoudige taken, [claude-sonnet-4-6] voor complex
51
+ - Max tokens: stel expliciete max_tokens in op elk verzoek — nooit onbeperkt
52
+ - Rate limit: [X] verzoeken per gebruiker per minuut
53
+ - Budgetalert: log wanneer een enkele sessie $[X] overschrijdt
54
+
55
+ ## Beslissingen (niet opnieuw bespreken)
56
+ - [Modelkeuze-redenering]
57
+ - [Waarom streaming vs. niet-streaming]
58
+ - [Contextvenster-strategie: samenvatten bij N tokens]
59
+ - [Tool calling vs. directe generatie voor gestructureerde output]
60
+
61
+ ## Testen
62
+ - Unittests voor promptconstructie en outputparsing
63
+ - Integratietests met opgenomen API-antwoorden (VCR / fixtures)
64
+ - Doe nooit echte API-aanroepen in tests — kost geld en is traag
65
+ - Test vijandige invoer: prompt-injectie, jailbreak-pogingen, randgevallen
66
+
67
+ ## Commando's
68
+ - [dev commando]
69
+ - [test commando]
70
+ - [deploy commando]
71
+
72
+ ## Nooit doen
73
+ - Nooit systeemprompts inline in route-handlers plaatsen
74
+ - Nooit onbegrensde AI-aanroepen doen zonder max_tokens
75
+ - Nooit volledige AI-antwoorden loggen in productie (kan gebruikers-PII bevatten)
76
+ - Nooit API-sleutels hardcoderen — gebruik omgevingsvariabelen
77
+ - Nooit het AI-model direct aanroepen vanuit UI-componenten
78
+ ```
79
+
80
+ ---
81
+
82
+ > **Werk met ons:** Claudient wordt ondersteund door [Uitbreiden](https://uitbreiden.com/) — we bouwen AI-producten en B2B-oplossingen met ontwikkelaarsgemeenschappen. [uitbreiden.com](https://uitbreiden.com/)