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,45 @@
1
+ # Coding Style Rules
2
+
3
+ Copy the relevant sections into your project's `CLAUDE.md`.
4
+
5
+ ---
6
+
7
+ ## Naming
8
+
9
+ - Variables and functions: `camelCase` (JS/TS), `snake_case` (Python, Go, Rust)
10
+ - Classes and types: `PascalCase` in all languages
11
+ - Constants: `SCREAMING_SNAKE_CASE` only for true constants that never change
12
+ - Boolean variables: prefix with `is`, `has`, `can`, `should` — `isActive`, `hasPermission`
13
+ - Do not abbreviate names unless the abbreviation is universally known (`id`, `url`, `db`, `ctx`)
14
+
15
+ ## Functions
16
+
17
+ - One responsibility per function — if you need "and" in the description, split it
18
+ - Maximum 40 lines per function; if longer, extract sub-functions
19
+ - No boolean parameters — use an options object or two separate functions
20
+ - Return early for guard clauses — don't nest the happy path inside conditionals
21
+
22
+ ## Comments
23
+
24
+ - Write no comments unless the WHY is non-obvious
25
+ - Never write comments that describe what the code does (the code already does that)
26
+ - Write a comment when: there is a hidden constraint, a workaround for a specific bug, or behavior that would surprise a reader
27
+ - Never write TODO comments — create a tracked issue instead
28
+
29
+ ## Error handling
30
+
31
+ - Never swallow errors silently (`catch (e) {}` is always wrong)
32
+ - Always handle errors at the boundary where you can take action
33
+ - Propagate errors upward with context — wrap with the relevant ID or operation name
34
+ - Do not use `console.error` in production code — use the project's logger
35
+
36
+ ## File organization
37
+
38
+ - One primary export per file
39
+ - File names match their primary export: `UserService.ts` exports `UserService`
40
+ - No barrel files (`index.ts` re-exports) — import directly from the source file
41
+ - Group imports: external packages first, then internal modules, then relative imports
42
+
43
+ ---
44
+
45
+ > **Work with us:** Claudient is backed by [Uitbreiden](https://uitbreiden.com/) — we build AI products and B2B solutions with developer communities. [uitbreiden.com](https://uitbreiden.com/)
@@ -0,0 +1,47 @@
1
+ > 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../coding-style.md).
2
+
3
+ # Coding Style Regeln
4
+
5
+ Relevante Abschnitte in die `CLAUDE.md` des Projekts kopieren.
6
+
7
+ ---
8
+
9
+ ## Benennung
10
+
11
+ - Variablen und Funktionen: `camelCase` (JS/TS), `snake_case` (Python, Go, Rust)
12
+ - Klassen und Typen: `PascalCase` in allen Sprachen
13
+ - Konstanten: `SCREAMING_SNAKE_CASE` nur für echte Konstanten, die sich nie ändern
14
+ - Boolesche Variablen: Präfix mit `is`, `has`, `can`, `should` — `isActive`, `hasPermission`
15
+ - Namen nicht abkürzen, außer die Abkürzung ist allgemein bekannt (`id`, `url`, `db`, `ctx`)
16
+
17
+ ## Funktionen
18
+
19
+ - Eine Verantwortlichkeit pro Funktion — wenn "und" in der Beschreibung benötigt wird, aufteilen
20
+ - Maximal 40 Zeilen pro Funktion; bei längeren Unterfunktionen extrahieren
21
+ - Keine booleschen Parameter — ein Options-Objekt oder zwei separate Funktionen verwenden
22
+ - Frühzeitig bei Guard-Klauseln zurückkehren — den Happy Path nicht innerhalb von Bedingungen verschachteln
23
+
24
+ ## Kommentare
25
+
26
+ - Keine Kommentare schreiben, außer das WARUM ist nicht offensichtlich
27
+ - Niemals Kommentare schreiben, die beschreiben, was der Code tut (das macht der Code bereits)
28
+ - Kommentar schreiben wenn: eine versteckte Einschränkung vorhanden ist, ein Workaround für einen bestimmten Bug, oder Verhalten, das einen Leser überraschen würde
29
+ - Niemals TODO-Kommentare schreiben — stattdessen ein nachverfolgbares Issue erstellen
30
+
31
+ ## Fehlerbehandlung
32
+
33
+ - Fehler niemals stillschweigend schlucken (`catch (e) {}` ist immer falsch)
34
+ - Fehler immer an der Grenze behandeln, wo eine Aktion möglich ist
35
+ - Fehler nach oben propagieren mit Kontext — mit der relevanten ID oder dem Operationsnamen umschließen
36
+ - Kein `console.error` in Produktionscode verwenden — den Logger des Projekts verwenden
37
+
38
+ ## Dateiorganisation
39
+
40
+ - Ein primärer Export pro Datei
41
+ - Dateinamen passen zu ihrem primären Export: `UserService.ts` exportiert `UserService`
42
+ - Keine Barrel-Dateien (`index.ts`-Re-Exports) — direkt aus der Quelldatei importieren
43
+ - Imports gruppieren: zuerst externe Pakete, dann interne Module, dann relative Imports
44
+
45
+ ---
46
+
47
+ > **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,48 @@
1
+ > 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../git.md).
2
+
3
+ # Git Regeln
4
+
5
+ Relevante Abschnitte in die `CLAUDE.md` des Projekts kopieren.
6
+
7
+ ---
8
+
9
+ ## Commit-Nachrichten
10
+
11
+ - Format: `type: kurze Beschreibung` (Imperativ-Modus, ≤ 72 Zeichen)
12
+ - Typen: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `perf`
13
+ - Beispiele: `feat: add webhook signature verification`, `fix: handle null user in auth middleware`
14
+ - Keine generischen Nachrichten: "update", "changes", "fix bug", "wip" sind nicht akzeptabel
15
+ - Body (optional): WARUM erklären, nicht was. Das Diff zeigt was.
16
+
17
+ ## Branches
18
+
19
+ - Feature-Branches: `feat/kurze-beschreibung`
20
+ - Bugfixes: `fix/kurze-beschreibung`
21
+ - Niemals direkt in `main` oder `master` committen
22
+ - Branches nach dem Merge löschen
23
+
24
+ ## Was niemals committen
25
+
26
+ - `.env`-Dateien oder jede Datei, die Secrets enthält
27
+ - `node_modules/`, `__pycache__/`, Build-Artefakte
28
+ - Persönliche Editor-Einstellungen (`.idea/`, `.vscode/settings.json`)
29
+ - Dateien > 10MB (git-lfs oder externen Speicher verwenden)
30
+ - Generierte Dateien, die aus dem Quellcode reproduziert werden können
31
+
32
+ ## Vor dem Pushen
33
+
34
+ - Tests lokal ausführen — niemals rot pushen
35
+ - Eigenes Diff vor jedem Push überprüfen: `git diff origin/main...HEAD`
36
+ - WIP-Commits squashen, bevor zu einem geteilten Branch gepusht wird
37
+ - Niemals `force-push` auf `main` oder einem geteilten Branch
38
+
39
+ ## Gefährliche Befehle — immer bestätigen vor der Ausführung
40
+
41
+ - `git reset --hard` — zerstört uncommittete Änderungen dauerhaft
42
+ - `git clean -f` — löscht nicht verfolgte Dateien dauerhaft
43
+ - `git push --force` — überschreibt die Remote-Historie
44
+ - `git stash drop` — verwirft gespeicherte Änderungen dauerhaft
45
+
46
+ ---
47
+
48
+ > **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,40 @@
1
+ > 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../performance.md).
2
+
3
+ # Performance-Regeln
4
+
5
+ Relevante Abschnitte in die `CLAUDE.md` des Projekts kopieren.
6
+
7
+ ---
8
+
9
+ ## Datenbank
10
+
11
+ - Niemals Abfragen in Schleifen ausführen — mit `IN (...)` batch-verarbeiten oder einen Join verwenden
12
+ - Abfragen, die unbegrenzte Ergebnisse zurückgeben können, immer paginieren — kein `SELECT *` ohne `LIMIT`
13
+ - Indizes hinzufügen, bevor die Abfrage in der Produktion langsam wird, nicht danach — Abfrage-Pläne während der Entwicklung analysieren
14
+ - Nur die benötigten Spalten auswählen — `SELECT *` ruft ungenutzte Daten ab und verhindert Index-Only-Scans
15
+ - Aggregation auf Datenbankebene verwenden (`COUNT`, `SUM`, `GROUP BY`) — keine Zeilen in den Speicher laden, um sie zu zählen
16
+
17
+ ## API und Netzwerk
18
+
19
+ - Antworten cachen, die aufwändig zu berechnen sind und sich selten ändern — explizite TTLs setzen
20
+ - Listen-Endpunkte paginieren — maximal N Elemente pro Anfrage mit einem Cursor oder Offset zurückgeben
21
+ - Keine N+1-Abfragen — verwandte Daten mit DataLoader, `include` oder einem Join batchen
22
+ - Synchrone Aufrufe zu externen Diensten in Request-Handlern vermeiden — Queues für nicht-kritische Arbeit verwenden
23
+ - Timeouts für alle externen HTTP-Aufrufe setzen — niemals eine langsame Abhängigkeit den Server hängen lassen
24
+
25
+ ## Speicher
26
+
27
+ - Keine großen Datensätze in den Speicher laden, um sie zu verarbeiten — streamen oder paginieren
28
+ - Referenzen freigeben, wenn fertig — versehentliche Closures vermeiden, die Garbage Collection verhindern
29
+ - Generatoren/Iteratoren für große Sequenzen verwenden, anstatt vollständige Listen im Speicher aufzubauen
30
+
31
+ ## Messung
32
+
33
+ - Vor der Optimierung profilieren — niemals raten, wo der Engpass liegt
34
+ - Unter produktionsähnlichen Bedingungen messen — lokale Benchmarks sind irreführend
35
+ - Baseline vor Änderungen festlegen — ohne Baseline kann keine Verbesserung bestätigt werden
36
+ - Performance-Tests gehören in CI — Regressionen, die Code-Review bestehen, aber das Performance-Budget verletzen, müssen automatisch erkannt werden
37
+
38
+ ---
39
+
40
+ > **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,45 @@
1
+ > 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../security.md).
2
+
3
+ # Sicherheitsregeln
4
+
5
+ Relevante Abschnitte in die `CLAUDE.md` des Projekts kopieren.
6
+
7
+ ---
8
+
9
+ ## Secrets
10
+
11
+ - Niemals Secrets im Quellcode — nicht in Kommentaren, nicht in Testdateien, nicht in Beispielkonfigurationen
12
+ - Niemals Secrets protokollieren — prüfen, dass Logger-Aufrufe keine `password`-, `token`-, `key`-, `secret`- oder `credential`-Felder enthalten
13
+ - Umgebungsvariablen für alle Secrets verwenden; beim Start lesen und ihre Existenz validieren
14
+ - Secrets rotieren, die versehentlich committet wurden — jeden committeten Secret als kompromittiert behandeln
15
+
16
+ ## Eingabevalidierung
17
+
18
+ - Alle Eingaben an Systemgrenzen validieren: API-Parameter, Query-Strings, Request-Bodies, Datei-Uploads, Umgebungsvariablen
19
+ - Typ, Format, Länge und Bereich validieren — nicht nur Vorhandensein
20
+ - Eine Allowlist (gültige Werte) anstelle einer Denylist (blockierte Werte) verwenden, wo möglich
21
+ - Niemals Benutzereingaben direkt in SQL-Abfragen, Shell-Befehlen, Dateipfaden oder HTML ohne Bereinigung verwenden
22
+
23
+ ## Authentifizierung und Autorisierung
24
+
25
+ - Authentifizierung bei jeder Anfrage prüfen, die sie erfordert — niemals auf Frontend-Routing verlassen
26
+ - Autorisierung (Benutzer kann DIESE Aktion durchführen) separat von Authentifizierung (Benutzer ist angemeldet) prüfen
27
+ - Autorisierungsprüfungen müssen den authentifizierten Benutzer aus dem Anfrage-Kontext referenzieren — niemals aus einem Query-Parameter
28
+ - Token-Ablauf muss serverseitig erzwungen werden — niemals client-seitig bereitgestellte Token-Zeitstempel vertrauen
29
+
30
+ ## Datenbanken
31
+
32
+ - Parametrisierte Abfragen oder ORM verwenden — niemals SQL durch String-Verkettung erstellen
33
+ - Datenbankbenutzer müssen Mindestberechtigungen haben — App-Benutzer sollte keinen DDL-Zugriff haben
34
+ - Interne Datenbankfehler niemals an Clients weitergeben — serverseitig protokollieren, generischen Fehler an den Client zurückgeben
35
+
36
+ ## Abhängigkeiten
37
+
38
+ - Abhängigkeitsversionen pinnen — niemals `*` oder `latest` in der Produktion verwenden
39
+ - `npm audit` / `pip-audit` / `govulncheck` vor jedem Release ausführen
40
+ - Nicht verwendete Abhängigkeiten entfernen — jede Abhängigkeit ist eine potenzielle Angriffsfläche
41
+ - Quellcode neuer Abhängigkeiten prüfen, bevor sie hinzugefügt werden
42
+
43
+ ---
44
+
45
+ > **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,45 @@
1
+ > 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../testing.md).
2
+
3
+ # Test-Regeln
4
+
5
+ Relevante Abschnitte in die `CLAUDE.md` des Projekts kopieren.
6
+
7
+ ---
8
+
9
+ ## Was testen
10
+
11
+ - Verhalten über öffentliche APIs testen — nicht interne Implementierungsdetails
12
+ - Tests müssen Refactoring überleben: wenn das Umbenennen einer privaten Funktion Tests bricht, sind die Tests falsch
13
+ - Edge Cases testen: null/leere Eingaben, Grenzwerte, Fehlerpfade
14
+ - Framework-Code oder Sprach-Builtins nicht testen
15
+
16
+ ## Test-Struktur
17
+
18
+ - Eine logische Assertion pro Test — wenn ein Test mehrere nicht zusammenhängende Dinge prüft, aufteilen
19
+ - Testnamen beschreiben WAS das System tut, nicht WIE: `"returns 404 when user not found"` nicht `"test findUser"`
20
+ - Arrange → Act → Assert — je ein Block, kein Durchmischen
21
+ - Keine Bedingungslogik in Tests — wenn ein `if` benötigt wird, zwei Tests schreiben
22
+
23
+ ## Mocking
24
+
25
+ - Interne Module nicht mocken — nur an Systemgrenzen mocken (externe APIs, Datenbanken, Dateisystem)
26
+ - Die Klasse/das Modul, das getestet wird, niemals mocken
27
+ - Integrationstests müssen die echte Datenbank treffen — Test-Datenbank verwenden, keine Mocks
28
+ - Wenn ein Unit-Test 5+ Mocks benötigt, ist der Code wahrscheinlich nicht gut strukturiert
29
+
30
+ ## Abdeckung
31
+
32
+ - Abdeckung ist ein Minimum, kein Ziel — 80% Abdeckung mit schlechten Tests ist schlechter als 60% mit guten Tests
33
+ - Jedes neue Feature benötigt mindestens einen Happy-Path-Test und einen Error-Path-Test
34
+ - Jeder Bugfix benötigt einen Regressionstest, der den Bug erkannt hätte
35
+
36
+ ## Testdaten
37
+
38
+ - Factories oder Fixtures verwenden — niemals User-IDs, E-Mails oder UUIDs in Tests hardcoden
39
+ - Tests müssen isoliert sein — kein gemeinsamer veränderbarer State zwischen Tests
40
+ - Tests müssen deterministisch sein — keine Zufallsdaten, keine zeitabhängigen Assertions ohne Mockierung der Uhr
41
+ - Nach jedem Test bereinigen — Tabellen abschneiden, Mocks zurücksetzen, erstellte Dateien löschen
42
+
43
+ ---
44
+
45
+ > **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,47 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../coding-style.md).
2
+
3
+ # Reglas de Estilo de Código
4
+
5
+ Copia las secciones relevantes en el `CLAUDE.md` de tu proyecto.
6
+
7
+ ---
8
+
9
+ ## Nomenclatura
10
+
11
+ - Variables y funciones: `camelCase` (JS/TS), `snake_case` (Python, Go, Rust)
12
+ - Clases y tipos: `PascalCase` en todos los lenguajes
13
+ - Constantes: `SCREAMING_SNAKE_CASE` solo para constantes verdaderas que nunca cambian
14
+ - Variables booleanas: prefijo con `is`, `has`, `can`, `should` — `isActive`, `hasPermission`
15
+ - No abrevies nombres a menos que la abreviatura sea universalmente conocida (`id`, `url`, `db`, `ctx`)
16
+
17
+ ## Funciones
18
+
19
+ - Una responsabilidad por función — si necesitas "y" en la descripción, divídela
20
+ - Máximo 40 líneas por función; si es más larga, extrae sub-funciones
21
+ - Sin parámetros booleanos — usa un objeto de opciones o dos funciones separadas
22
+ - Retorno anticipado para cláusulas de guarda — no anides el camino feliz dentro de condicionales
23
+
24
+ ## Comentarios
25
+
26
+ - No escribas comentarios a menos que el POR QUÉ no sea obvio
27
+ - Nunca escribas comentarios que describan lo que hace el código (el código ya lo hace)
28
+ - Escribe un comentario cuando: hay una restricción oculta, una solución para un bug específico, o comportamiento que sorprendería al lector
29
+ - Nunca escribas comentarios TODO — crea un issue rastreado en su lugar
30
+
31
+ ## Manejo de errores
32
+
33
+ - Nunca ignores errores silenciosamente (`catch (e) {}` siempre está mal)
34
+ - Siempre maneja los errores en el límite donde puedas tomar acción
35
+ - Propaga los errores hacia arriba con contexto — envuelve con el ID o nombre de operación relevante
36
+ - No uses `console.error` en código de producción — usa el logger del proyecto
37
+
38
+ ## Organización de archivos
39
+
40
+ - Una exportación primaria por archivo
41
+ - Los nombres de archivo coinciden con su exportación primaria: `UserService.ts` exporta `UserService`
42
+ - Sin archivos barrel (`index.ts` re-exportaciones) — importa directamente desde el archivo fuente
43
+ - Agrupa las importaciones: paquetes externos primero, luego módulos internos, luego importaciones relativas
44
+
45
+ ---
46
+
47
+ > **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,48 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../git.md).
2
+
3
+ # Reglas de Git
4
+
5
+ Copia las secciones relevantes en el `CLAUDE.md` de tu proyecto.
6
+
7
+ ---
8
+
9
+ ## Mensajes de commit
10
+
11
+ - Formato: `tipo: descripción corta` (modo imperativo, ≤ 72 caracteres)
12
+ - Tipos: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `perf`
13
+ - Ejemplos: `feat: add webhook signature verification`, `fix: handle null user in auth middleware`
14
+ - Sin mensajes genéricos: "update", "changes", "fix bug", "wip" no son aceptables
15
+ - Cuerpo (opcional): explica el POR QUÉ, no el qué. El diff muestra el qué.
16
+
17
+ ## Ramas
18
+
19
+ - Ramas de funcionalidades: `feat/descripción-corta`
20
+ - Correcciones de bugs: `fix/descripción-corta`
21
+ - Nunca hagas commit directamente en `main` o `master`
22
+ - Elimina las ramas después de hacer merge
23
+
24
+ ## Qué nunca hacer commit
25
+
26
+ - Archivos `.env` o cualquier archivo que contenga secretos
27
+ - `node_modules/`, `__pycache__/`, artefactos de build
28
+ - Configuraciones personales del editor (`.idea/`, `.vscode/settings.json`)
29
+ - Archivos > 10MB (usa git-lfs o almacenamiento externo)
30
+ - Archivos generados que pueden reproducirse desde el código fuente
31
+
32
+ ## Antes de hacer push
33
+
34
+ - Ejecuta las pruebas localmente — nunca hagas push en rojo
35
+ - Revisa tu propio diff antes de cada push: `git diff origin/main...HEAD`
36
+ - Aplasta los commits WIP antes de hacer push a una rama compartida
37
+ - Nunca hagas force-push en `main` ni en ninguna rama compartida
38
+
39
+ ## Comandos peligrosos — siempre confirmar antes de ejecutar
40
+
41
+ - `git reset --hard` — destruye los cambios sin commit permanentemente
42
+ - `git clean -f` — elimina archivos sin rastrear permanentemente
43
+ - `git push --force` — reescribe el historial remoto
44
+ - `git stash drop` — descarta permanentemente los cambios guardados en stash
45
+
46
+ ---
47
+
48
+ > **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,40 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../performance.md).
2
+
3
+ # Reglas de Rendimiento
4
+
5
+ Copia las secciones relevantes en el `CLAUDE.md` de tu proyecto.
6
+
7
+ ---
8
+
9
+ ## Base de datos
10
+
11
+ - Nunca ejecutes consultas dentro de bucles — agrupa con `IN (...)` o usa un join
12
+ - Siempre pagina las consultas que pueden devolver resultados ilimitados — sin `SELECT *` sin `LIMIT`
13
+ - Agrega índices antes de que la consulta sea lenta en producción, no después — analiza los planes de consulta durante el desarrollo
14
+ - Selecciona solo las columnas que necesitas — `SELECT *` obtiene datos no usados e impide escaneos solo de índice
15
+ - Usa agregación a nivel de base de datos (`COUNT`, `SUM`, `GROUP BY`) — no cargues filas en memoria para contarlas
16
+
17
+ ## API y red
18
+
19
+ - Cachea las respuestas que son costosas de calcular y cambian poco — establece TTLs explícitos
20
+ - Pagina los endpoints de lista — devuelve un máximo de N elementos por solicitud con un cursor u offset
21
+ - No hagas consultas N+1 — agrupa los datos relacionados con DataLoader, `include` o un join
22
+ - Evita llamadas síncronas a servicios externos en los manejadores de solicitudes — usa colas para el trabajo no crítico
23
+ - Establece timeouts en todas las llamadas HTTP externas — nunca dejes que una dependencia lenta bloquee tu servidor
24
+
25
+ ## Memoria
26
+
27
+ - No cargues grandes conjuntos de datos en memoria para procesarlos — usa streaming o paginación
28
+ - Libera las referencias cuando termines — evita closures accidentales que impidan la recolección de basura
29
+ - Usa generadores/iteradores para secuencias grandes en lugar de construir listas completas en memoria
30
+
31
+ ## Medición
32
+
33
+ - Perfila antes de optimizar — nunca adivines dónde está el cuello de botella
34
+ - Mide en condiciones similares a producción — los benchmarks locales son engañosos
35
+ - Establece una línea base antes de hacer cambios — sin una línea base, no puedes confirmar la mejora
36
+ - Las pruebas de rendimiento pertenecen al CI — las regresiones que pasan la revisión de código pero fallan el presupuesto de rendimiento deben detectarse automáticamente
37
+
38
+ ---
39
+
40
+ > **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,45 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../security.md).
2
+
3
+ # Reglas de Seguridad
4
+
5
+ Copia las secciones relevantes en el `CLAUDE.md` de tu proyecto.
6
+
7
+ ---
8
+
9
+ ## Secretos
10
+
11
+ - Nunca pongas secretos en el código fuente — ni en comentarios, ni en archivos de test, ni en configs de ejemplo
12
+ - Nunca registres secretos — verifica que las llamadas al logger no incluyan campos `password`, `token`, `key`, `secret` o `credential`
13
+ - Usa variables de entorno para todos los secretos; léelos al inicio, valida que existen
14
+ - Rota los secretos que hayan sido accidentalmente comprometidos — trata cualquier secreto comprometido como comprometido
15
+
16
+ ## Validación de entradas
17
+
18
+ - Valida todas las entradas en los límites del sistema: parámetros de API, query strings, cuerpos de solicitudes, cargas de archivos, variables de entorno
19
+ - Valida el tipo, formato, longitud y rango — no solo la presencia
20
+ - Usa una lista de permitidos (valores válidos) no una lista de bloqueados (valores bloqueados) donde sea posible
21
+ - Nunca uses la entrada del usuario directamente en consultas SQL, comandos de shell, rutas de archivo o HTML sin saneamiento
22
+
23
+ ## Autenticación y autorización
24
+
25
+ - Verifica la autenticación en cada solicitud que lo requiera — nunca confíes en el enrutamiento del frontend
26
+ - Verifica la autorización (el usuario puede hacer ESTA acción) separadamente de la autenticación (el usuario ha iniciado sesión)
27
+ - Las verificaciones de autorización deben referenciar al usuario autenticado desde el contexto de la solicitud — nunca desde un parámetro de consulta
28
+ - La expiración del token debe ser forzada en el servidor — nunca confíes en las marcas de tiempo de token proporcionadas por el cliente
29
+
30
+ ## Bases de datos
31
+
32
+ - Usa consultas parametrizadas u ORM — nunca concatenes cadenas SQL
33
+ - Los usuarios de la base de datos deben tener los permisos mínimos requeridos — el usuario de la app no debe tener acceso DDL
34
+ - Nunca expongas errores internos de la base de datos a los clientes — registra en el servidor, devuelve un error genérico al cliente
35
+
36
+ ## Dependencias
37
+
38
+ - Fija las versiones de las dependencias — nunca uses `*` o `latest` en producción
39
+ - Ejecuta `npm audit` / `pip-audit` / `govulncheck` antes de cada lanzamiento
40
+ - Elimina las dependencias no utilizadas — cada dependencia es una superficie de ataque potencial
41
+ - Revisa el código fuente de las nuevas dependencias antes de agregarlas
42
+
43
+ ---
44
+
45
+ > **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,45 @@
1
+ > 🇪🇸 Esta es la traducción en español. [Versión en inglés](../testing.md).
2
+
3
+ # Reglas de Testing
4
+
5
+ Copia las secciones relevantes en el `CLAUDE.md` de tu proyecto.
6
+
7
+ ---
8
+
9
+ ## Qué probar
10
+
11
+ - Prueba el comportamiento a través de APIs públicas — no los detalles de implementación interna
12
+ - Las pruebas deben sobrevivir al refactoring: si renombrar una función privada rompe las pruebas, las pruebas están mal
13
+ - Prueba los casos límite: entradas nulas/vacías, valores de frontera, rutas de error
14
+ - No pruebes el código del framework ni los builtins del lenguaje
15
+
16
+ ## Estructura de las pruebas
17
+
18
+ - Una aserción lógica por prueba — si una prueba verifica múltiples cosas no relacionadas, divídela
19
+ - Los nombres de las pruebas describen LO QUE hace el sistema, no CÓMO: `"returns 404 when user not found"` no `"test findUser"`
20
+ - Preparar → Actuar → Asegurar — un bloque cada uno, sin entrelazar
21
+ - Sin lógica condicional en las pruebas — si necesitas un `if`, escribe dos pruebas
22
+
23
+ ## Mocking
24
+
25
+ - No hagas mock de módulos internos — solo haz mock en los límites del sistema (APIs externas, bases de datos, sistema de archivos)
26
+ - Nunca hagas mock de la clase/módulo bajo prueba
27
+ - Las pruebas de integración deben usar la base de datos real — usa una base de datos de prueba, no mocks
28
+ - Si una prueba unitaria requiere 5+ mocks, el código probablemente no está bien estructurado
29
+
30
+ ## Cobertura
31
+
32
+ - La cobertura es un suelo, no un objetivo — 80% de cobertura con malas pruebas es peor que 60% con buenas pruebas
33
+ - Cada nueva funcionalidad necesita al menos una prueba del camino feliz y una del camino de error
34
+ - Cada corrección de bug necesita una prueba de regresión que habría detectado el bug
35
+
36
+ ## Datos de prueba
37
+
38
+ - Usa factories o fixtures — nunca hardcodees IDs de usuario, emails o UUIDs en las pruebas
39
+ - Las pruebas deben estar aisladas — sin estado mutable compartido entre pruebas
40
+ - Las pruebas deben ser deterministas — sin datos aleatorios, sin aserciones dependientes del tiempo sin mockear el reloj
41
+ - Limpia después de cada prueba — trunca las tablas, reinicia los mocks, elimina los archivos creados
42
+
43
+ ---
44
+
45
+ > **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,47 @@
1
+ > 🇫🇷 This is the French translation. [English version](../coding-style.md).
2
+
3
+ # Règles de Style de Code
4
+
5
+ Copiez les sections pertinentes dans le `CLAUDE.md` de votre projet.
6
+
7
+ ---
8
+
9
+ ## Nommage
10
+
11
+ - Variables et fonctions : `camelCase` (JS/TS), `snake_case` (Python, Go, Rust)
12
+ - Classes et types : `PascalCase` dans tous les langages
13
+ - Constantes : `SCREAMING_SNAKE_CASE` uniquement pour les vraies constantes qui ne changent jamais
14
+ - Variables booléennes : préfixer avec `is`, `has`, `can`, `should` — `isActive`, `hasPermission`
15
+ - Ne pas abréger les noms sauf si l'abréviation est universellement connue (`id`, `url`, `db`, `ctx`)
16
+
17
+ ## Fonctions
18
+
19
+ - Une responsabilité par fonction — si vous avez besoin de "et" dans la description, séparez-la
20
+ - Maximum 40 lignes par fonction ; si plus long, extraire des sous-fonctions
21
+ - Pas de paramètres booléens — utiliser un objet d'options ou deux fonctions séparées
22
+ - Retourner tôt pour les clauses de garde — ne pas imbriquer le chemin heureux dans des conditionnels
23
+
24
+ ## Commentaires
25
+
26
+ - N'écrire aucun commentaire sauf si le POURQUOI n'est pas évident
27
+ - Ne jamais écrire des commentaires qui décrivent ce que fait le code (le code le fait déjà)
28
+ - Écrire un commentaire quand : il y a une contrainte cachée, un contournement pour un bug spécifique, ou un comportement qui surprendrait un lecteur
29
+ - Ne jamais écrire des commentaires TODO — créer un problème suivi à la place
30
+
31
+ ## Gestion des erreurs
32
+
33
+ - Ne jamais avaler silencieusement les erreurs (`catch (e) {}` est toujours faux)
34
+ - Toujours gérer les erreurs à la limite où vous pouvez agir
35
+ - Propager les erreurs vers le haut avec du contexte — envelopper avec l'ID ou le nom d'opération pertinent
36
+ - Ne pas utiliser `console.error` dans le code de production — utiliser le logger du projet
37
+
38
+ ## Organisation des fichiers
39
+
40
+ - Un export primaire par fichier
41
+ - Les noms de fichiers correspondent à leur export primaire : `UserService.ts` exporte `UserService`
42
+ - Pas de fichiers barrel (`index.ts` qui réexporte) — importer directement depuis le fichier source
43
+ - Grouper les imports : packages externes d'abord, puis modules internes, puis imports relatifs
44
+
45
+ ---
46
+
47
+ > **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,48 @@
1
+ > 🇫🇷 This is the French translation. [English version](../git.md).
2
+
3
+ # Règles Git
4
+
5
+ Copiez les sections pertinentes dans le `CLAUDE.md` de votre projet.
6
+
7
+ ---
8
+
9
+ ## Messages de commit
10
+
11
+ - Format : `type: courte description` (mode impératif, ≤ 72 caractères)
12
+ - Types : `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `perf`
13
+ - Exemples : `feat: add webhook signature verification`, `fix: handle null user in auth middleware`
14
+ - Pas de messages génériques : "update", "changes", "fix bug", "wip" ne sont pas acceptables
15
+ - Corps (optionnel) : expliquer le POURQUOI, pas le quoi. Le diff montre le quoi.
16
+
17
+ ## Branches
18
+
19
+ - Branches de fonctionnalités : `feat/short-description`
20
+ - Corrections de bugs : `fix/short-description`
21
+ - Ne jamais committer directement sur `main` ou `master`
22
+ - Supprimer les branches après fusion
23
+
24
+ ## Ce qu'il ne faut jamais committer
25
+
26
+ - Fichiers `.env` ou tout fichier contenant des secrets
27
+ - `node_modules/`, `__pycache__/`, artefacts de build
28
+ - Paramètres d'éditeur personnels (`.idea/`, `.vscode/settings.json`)
29
+ - Fichiers > 10 Mo (utiliser git-lfs ou un stockage externe)
30
+ - Fichiers générés qui peuvent être reproduits depuis la source
31
+
32
+ ## Avant de pousser
33
+
34
+ - Exécuter les tests localement — ne jamais pousser en rouge
35
+ - Relire votre propre diff avant chaque push : `git diff origin/main...HEAD`
36
+ - Squasher les commits WIP avant de pousser sur une branche partagée
37
+ - Ne jamais force-pousser sur `main` ou toute branche partagée
38
+
39
+ ## Commandes dangereuses — toujours confirmer avant d'exécuter
40
+
41
+ - `git reset --hard` — détruit les modifications non committées de façon permanente
42
+ - `git clean -f` — supprime les fichiers non suivis de façon permanente
43
+ - `git push --force` — réécrit l'historique distant
44
+ - `git stash drop` — supprime définitivement les modifications mises en attente
45
+
46
+ ---
47
+
48
+ > **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,40 @@
1
+ > 🇫🇷 This is the French translation. [English version](../performance.md).
2
+
3
+ # Règles de Performance
4
+
5
+ Copiez les sections pertinentes dans le `CLAUDE.md` de votre projet.
6
+
7
+ ---
8
+
9
+ ## Base de données
10
+
11
+ - Ne jamais exécuter des requêtes dans des boucles — regrouper avec `IN (...)` ou utiliser une jointure
12
+ - Toujours paginer les requêtes qui peuvent retourner des résultats non bornés — pas de `SELECT *` sans `LIMIT`
13
+ - Ajouter des index avant que la requête soit lente en production, pas après — analyser les plans de requête pendant le développement
14
+ - Sélectionner uniquement les colonnes dont vous avez besoin — `SELECT *` récupère des données inutilisées et empêche les scans index-only
15
+ - Utiliser l'agrégation au niveau base de données (`COUNT`, `SUM`, `GROUP BY`) — ne pas charger des lignes en mémoire pour les compter
16
+
17
+ ## API et réseau
18
+
19
+ - Mettre en cache les réponses coûteuses à calculer et qui changent peu — définir des TTLs explicites
20
+ - Paginer les endpoints de liste — retourner un maximum de N éléments par requête avec un curseur ou un offset
21
+ - Ne pas faire de requêtes N+1 — regrouper les données liées avec DataLoader, `include`, ou une jointure
22
+ - Éviter les appels synchrones vers des services externes dans les gestionnaires de requêtes — utiliser des queues pour les tâches non critiques
23
+ - Définir des timeouts sur tous les appels HTTP externes — ne jamais laisser une dépendance lente bloquer votre serveur
24
+
25
+ ## Mémoire
26
+
27
+ - Ne pas charger de grands jeux de données en mémoire pour les traiter — streamer ou paginer
28
+ - Libérer les références quand c'est terminé — éviter les fermetures accidentelles qui empêchent le garbage collection
29
+ - Utiliser des générateurs/itérateurs pour les grandes séquences plutôt que de construire des listes complètes en mémoire
30
+
31
+ ## Mesure
32
+
33
+ - Profiler avant d'optimiser — ne jamais deviner où est le goulot d'étranglement
34
+ - Mesurer dans des conditions similaires à la production — les benchmarks locaux sont trompeurs
35
+ - Établir une baseline avant de faire des changements — sans baseline, vous ne pouvez pas confirmer l'amélioration
36
+ - Les tests de performance appartiennent à la CI — une régression qui passe la revue de code mais échoue le budget de performance doit être détectée automatiquement
37
+
38
+ ---
39
+
40
+ > **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/)