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,175 @@
1
+ > 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../new-project-bootstrap.md).
2
+
3
+ # New Project Bootstrap Workflow
4
+
5
+ Hoe je een nieuw project opzet met Claude Code — gestructureerd, opinieus en klaar om op te bouwen vanaf dag één.
6
+
7
+ ---
8
+
9
+ ## Wanneer deze workflow te gebruiken
10
+ - Een nieuwe applicatie van scratch starten
11
+ - Een nieuwe service opzetten in een bestaand systeem
12
+ - Een nieuwe repository aanmaken voor een zijproject of klantbetrokkenheid
13
+
14
+ ---
15
+
16
+ ## Stap 1 — Definieer wat je bouwt
17
+
18
+ Beantwoord deze vragen duidelijk voor je code of configuratie aanraakt.
19
+
20
+ **Vraag Claude:**
21
+ ```
22
+ I am starting a new project. Help me define it clearly before we write any code.
23
+
24
+ What I want to build: [describe in 2–3 sentences]
25
+
26
+ Ask me the following questions one at a time and wait for my answer before asking the next:
27
+ 1. Who are the users and what is the primary thing they do?
28
+ 2. What is the expected scale at launch? (users, requests/sec, data volume)
29
+ 3. What are the hard constraints? (budget, timeline, team size, existing tech stack)
30
+ 4. What does "done" look like for v1?
31
+ 5. What is explicitly out of scope for v1?
32
+
33
+ After I answer all five, summarize what we're building and confirm with me before proceeding.
34
+ ```
35
+
36
+ Ga niet door totdat de reikwijdte schriftelijk is bevestigd.
37
+
38
+ ---
39
+
40
+ ## Stap 2 — Kies de stack
41
+
42
+ **Vraag Claude:**
43
+ ```
44
+ Based on what we're building:
45
+ - [paste summary from Step 1]
46
+
47
+ Recommend a specific stack. For each component (backend, frontend, database, auth, deployment), recommend:
48
+ - Your recommended choice and why it fits our constraints
49
+ - What we'd be giving up vs the next-best alternative
50
+ - No more than 2 options per component — I need a decision, not a menu
51
+
52
+ Be opinionated. I will push back if I disagree.
53
+ ```
54
+
55
+ Vergrendel de stack voor je code schrijft. Registreer beslissingen in `docs/adr/` als ze niet vanzelfsprekend zijn.
56
+
57
+ ---
58
+
59
+ ## Stap 3 — Bootstrap de projectstructuur
60
+
61
+ **Vraag Claude:**
62
+ ```
63
+ Set up the initial project structure for: [stack from Step 2]
64
+
65
+ Create:
66
+ 1. The directory structure (show as a tree before creating anything)
67
+ 2. Package/dependency files with pinned versions
68
+ 3. Configuration files (TypeScript, ESLint, Prettier, etc.)
69
+ 4. .gitignore appropriate for this stack
70
+ 5. A minimal working "hello world" that proves the stack runs
71
+
72
+ Do not add features yet. The goal is a running skeleton.
73
+ ```
74
+
75
+ Verifieer dat het draait voor je doorgaat.
76
+
77
+ ---
78
+
79
+ ## Stap 4 — Stel CLAUDE.md in
80
+
81
+ **Vraag Claude:**
82
+ ```
83
+ Create a CLAUDE.md for this project.
84
+
85
+ Include:
86
+ 1. What this project is (one paragraph)
87
+ 2. Stack summary (language, framework, key libraries, DB)
88
+ 3. Directory structure with purpose of each directory
89
+ 4. Coding conventions specific to this stack
90
+ 5. Commands to run (dev server, tests, build, lint)
91
+ 6. Decisions already made (from Steps 1–3) that should not be revisited
92
+ 7. What NOT to do in this project
93
+
94
+ Make it dense and useful — not a tutorial. A senior developer should be able to start contributing after reading it.
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Stap 5 — Stel de ontwikkelomgeving in
100
+
101
+ **Vraag Claude:**
102
+ ```
103
+ Set up the development environment:
104
+
105
+ 1. Docker Compose file for local dependencies (database, cache, queues)
106
+ 2. Environment variable template (.env.example with all required vars, no real values)
107
+ 3. Database migrations setup (initial schema if applicable)
108
+ 4. Test setup (test runner config, example test, CI-ready)
109
+ 5. A Makefile or scripts/ directory with common commands:
110
+ - make dev (start local environment)
111
+ - make test (run tests)
112
+ - make build (production build)
113
+ - make lint (lint and format check)
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Stap 6 — Stel CI in
119
+
120
+ **Vraag Claude:**
121
+ ```
122
+ Set up a GitHub Actions CI pipeline:
123
+
124
+ On every PR:
125
+ - Install dependencies (with cache)
126
+ - Run lint
127
+ - Run tests
128
+ - Build (if applicable)
129
+
130
+ Use the github-actions skill for best practices:
131
+ - Pin action versions
132
+ - Explicit permissions
133
+ - Dependency caching
134
+ - Fail fast on test failures
135
+
136
+ The pipeline must pass on the current skeleton before we add features.
137
+ ```
138
+
139
+ Verifieer dat CI slaagt op de initiële commit voor je naar featureontwikkeling gaat.
140
+
141
+ ---
142
+
143
+ ## Stap 7 — Eerste feature-planning
144
+
145
+ Zodra het skelet draait en CI groen is:
146
+
147
+ **Vraag Claude:**
148
+ ```
149
+ The project is bootstrapped. Now plan the first feature:
150
+
151
+ Feature: [describe the first user-facing capability]
152
+
153
+ Use the feature-development workflow to plan and implement it.
154
+ Start with Step 1 of that workflow.
155
+ ```
156
+
157
+ Zie `workflows/feature-development.md`.
158
+
159
+ ---
160
+
161
+ ## Bootstrap-checklist
162
+
163
+ - [ ] Reikwijdte gedefinieerd en schriftelijk bevestigd
164
+ - [ ] Stack besloten met gedocumenteerde redenering
165
+ - [ ] Projectstructuur aangemaakt en draaiend ("hello world" werkt)
166
+ - [ ] CLAUDE.md geschreven en gecommit
167
+ - [ ] Docker Compose / lokale afhankelijkheden draaien
168
+ - [ ] .env.example gecommit met alle vereiste variabelen
169
+ - [ ] Tests geconfigureerd en minimaal één slaagt
170
+ - [ ] CI-pipeline groen op eerste push
171
+ - [ ] `docs/adr/` aangemaakt met initiële architectuurbeslissingen
172
+
173
+ ---
174
+
175
+ > **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/)
@@ -0,0 +1,150 @@
1
+ > 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../refactor-safely.md).
2
+
3
+ # Refactor Safely Workflow
4
+
5
+ Hoe je code refactort met Claude Code zonder gedrag te breken — met tests als veiligheidsnet gedurende het hele proces.
6
+
7
+ ---
8
+
9
+ ## Wanneer deze workflow te gebruiken
10
+ - Functies extraheren uit een grote methode
11
+ - Modules hernoemen en reorganiseren
12
+ - Een patroon vervangen door een beter patroon over meerdere bestanden
13
+ - Duplicatie verminderen over de codebase
14
+ - De structuur van een module verbeteren zonder het externe gedrag te wijzigen
15
+
16
+ ---
17
+
18
+ ## De gouden regel
19
+
20
+ **Refactor en wijzig nooit gedrag in dezelfde commit.** Een refactor behoudt extern gedrag. Als tests breken, heb je ofwel gedrag gewijzigd of de tests testten implementatiedetails (ook een probleem).
21
+
22
+ ---
23
+
24
+ ## Stap 1 — Stel een testbasislijn vast
25
+
26
+ Bevestig dat je adequate testdekking hebt voor je iets wijzigt.
27
+
28
+ **Vraag Claude:**
29
+ ```
30
+ I want to refactor: [describe what you're refactoring and why]
31
+
32
+ First, assess the current test coverage:
33
+ 1. Read the relevant files: [list files]
34
+ 2. What behaviors are currently tested?
35
+ 3. What behaviors are NOT tested that could break during refactoring?
36
+ 4. Write any missing tests now, before we touch production code
37
+
38
+ Do not change production code yet. Tests only.
39
+ ```
40
+
41
+ **Commit de testtoevoegingen voor de refactoring.** Dit maakt duidelijk welke tests bestonden voor vs. zijn toegevoegd als onderdeel van de refactor.
42
+
43
+ ---
44
+
45
+ ## Stap 2 — Definieer de refactorreikwijdte
46
+
47
+ **Vraag Claude:**
48
+ ```
49
+ Here is what I want to refactor: [describe the goal]
50
+
51
+ Read the relevant files: [list files]
52
+
53
+ Define the scope:
54
+ 1. What will change structurally? (function signatures, file locations, module boundaries)
55
+ 2. What will NOT change? (external behavior, API contracts, database schema)
56
+ 3. What are the riskiest parts of this refactor?
57
+ 4. What is the smallest first step that makes progress without risk?
58
+
59
+ Do not start the refactor yet.
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Stap 3 — Refactor in kleine, testbare stappen
65
+
66
+ Splits de refactoring op in stappen die klein genoeg zijn dat tests elk kunnen verifiëren.
67
+
68
+ **Voor elke stap:**
69
+ ```
70
+ Refactor step [N]: [describe the specific structural change]
71
+
72
+ Rules:
73
+ - Change only what's needed for this step
74
+ - Do not change any behavior
75
+ - After this change, all existing tests must still pass
76
+ - Tell me what to verify after this step
77
+ ```
78
+
79
+ **Na elke stap:**
80
+ ```bash
81
+ # Voer tests uit — moeten groen zijn voor volgende stap
82
+ npm test # of pytest, go test, etc.
83
+ ```
84
+
85
+ Als tests mislukken na een pure structuurwijziging: stop, begrijp waarom, herstel voor doorgaan. Een falende test na een refactoring betekent ofwel dat de refactoring gedrag heeft gewijzigd of dat de test implementatie testte (beide zijn problemen om nu op te lossen).
86
+
87
+ ---
88
+
89
+ ## Stap 4 — Verifieer dat extern gedrag ongewijzigd is
90
+
91
+ Na alle stappen:
92
+
93
+ **Vraag Claude:**
94
+ ```
95
+ The refactor is structurally complete. Verify that external behavior is unchanged:
96
+
97
+ 1. Run the full test suite
98
+ 2. Check that all public APIs/interfaces are identical to before (same inputs, same outputs)
99
+ 3. Check that database queries produce identical results
100
+ 4. Check that error cases still produce the same errors
101
+ 5. If there are integration tests or end-to-end tests, run them
102
+
103
+ Report any behavioral differences — even small ones.
104
+ ```
105
+
106
+ ---
107
+
108
+ ## Stap 5 — Ruim op
109
+
110
+ **Vraag Claude:**
111
+ ```
112
+ Before committing, clean up:
113
+
114
+ 1. Remove any debugging code or temporary comments added during refactoring
115
+ 2. Remove any dead code that the refactor made unreachable
116
+ 3. Update any documentation or comments that referenced the old structure
117
+ 4. Check that import paths are clean (no unused imports)
118
+
119
+ Do not introduce new logic in this step.
120
+ ```
121
+
122
+ ---
123
+
124
+ ## Stap 6 — Commit met een duidelijk bericht
125
+
126
+ Structureer de refactor-commit(s) om een duidelijk verhaal te vertellen:
127
+
128
+ ```
129
+ refactor: extract payment processing into PaymentService
130
+
131
+ Moves payment logic out of OrderController into a dedicated service.
132
+ No behavior change — all existing tests pass.
133
+ Motivation: OrderController was 600 lines; this makes both units testable in isolation.
134
+ ```
135
+
136
+ Meng een refactorcommit nooit met een feature- of bugfix-commit. Houd ze gescheiden.
137
+
138
+ ---
139
+
140
+ ## Refactoringantipatronen
141
+
142
+ - **"Terwijl ik hier toch ben..."** — een refactoring en een feature tegelijk doen. Stop. Voltooi de refactoring eerst.
143
+ - **Refactoring zonder tests** — je breekt iets en weet het niet
144
+ - **Big-bang refactoring** — alles tegelijk wijzigen. Doe het stapsgewijs.
145
+ - **Hernoemen als laatste stap** — hernoem eerst (mechanisch, laag risico), dan herstructureer
146
+ - **De basislijn overslaan** — aannemen dat tests adequaat zijn zonder het te controleren
147
+
148
+ ---
149
+
150
+ > **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/)
@@ -0,0 +1,148 @@
1
+ # Refactor Safely Workflow
2
+
3
+ How to refactor code with Claude Code without breaking behavior — using tests as a safety net throughout.
4
+
5
+ ---
6
+
7
+ ## When to use this workflow
8
+ - Extracting functions from a large method
9
+ - Renaming and reorganizing modules
10
+ - Replacing a pattern with a better one across multiple files
11
+ - Reducing duplication across the codebase
12
+ - Improving a module's structure without changing its external behavior
13
+
14
+ ---
15
+
16
+ ## The golden rule
17
+
18
+ **Never refactor and change behavior in the same commit.** A refactor preserves external behavior. If tests break, you either changed behavior or the tests were testing implementation details (also a problem).
19
+
20
+ ---
21
+
22
+ ## Step 1 — Establish a test baseline
23
+
24
+ Before changing anything, confirm you have adequate test coverage.
25
+
26
+ **Prompt Claude:**
27
+ ```
28
+ I want to refactor: [describe what you're refactoring and why]
29
+
30
+ First, assess the current test coverage:
31
+ 1. Read the relevant files: [list files]
32
+ 2. What behaviors are currently tested?
33
+ 3. What behaviors are NOT tested that could break during refactoring?
34
+ 4. Write any missing tests now, before we touch production code
35
+
36
+ Do not change production code yet. Tests only.
37
+ ```
38
+
39
+ **Commit the test additions before refactoring.** This makes it clear which tests existed before vs. were added as part of the refactor.
40
+
41
+ ---
42
+
43
+ ## Step 2 — Define the refactor scope
44
+
45
+ **Prompt Claude:**
46
+ ```
47
+ Here is what I want to refactor: [describe the goal]
48
+
49
+ Read the relevant files: [list files]
50
+
51
+ Define the scope:
52
+ 1. What will change structurally? (function signatures, file locations, module boundaries)
53
+ 2. What will NOT change? (external behavior, API contracts, database schema)
54
+ 3. What are the riskiest parts of this refactor?
55
+ 4. What is the smallest first step that makes progress without risk?
56
+
57
+ Do not start the refactor yet.
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Step 3 — Refactor in small, testable increments
63
+
64
+ Break the refactor into steps small enough that tests can verify each one.
65
+
66
+ **For each increment:**
67
+ ```
68
+ Refactor step [N]: [describe the specific structural change]
69
+
70
+ Rules:
71
+ - Change only what's needed for this step
72
+ - Do not change any behavior
73
+ - After this change, all existing tests must still pass
74
+ - Tell me what to verify after this step
75
+ ```
76
+
77
+ **After each increment:**
78
+ ```bash
79
+ # Run tests — must be green before next step
80
+ npm test # or pytest, go test, etc.
81
+ ```
82
+
83
+ If tests fail after a pure structural change: stop, understand why, fix before continuing. A failing test after a refactor means either the refactor changed behavior or the test was testing implementation (both are problems to fix now).
84
+
85
+ ---
86
+
87
+ ## Step 4 — Verify external behavior unchanged
88
+
89
+ After all increments:
90
+
91
+ **Prompt Claude:**
92
+ ```
93
+ The refactor is structurally complete. Verify that external behavior is unchanged:
94
+
95
+ 1. Run the full test suite
96
+ 2. Check that all public APIs/interfaces are identical to before (same inputs, same outputs)
97
+ 3. Check that database queries produce identical results
98
+ 4. Check that error cases still produce the same errors
99
+ 5. If there are integration tests or end-to-end tests, run them
100
+
101
+ Report any behavioral differences — even small ones.
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Step 5 — Clean up
107
+
108
+ **Prompt Claude:**
109
+ ```
110
+ Before committing, clean up:
111
+
112
+ 1. Remove any debugging code or temporary comments added during refactoring
113
+ 2. Remove any dead code that the refactor made unreachable
114
+ 3. Update any documentation or comments that referenced the old structure
115
+ 4. Check that import paths are clean (no unused imports)
116
+
117
+ Do not introduce new logic in this step.
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Step 6 — Commit with a clear message
123
+
124
+ Structure the refactor commit(s) to tell a clear story:
125
+
126
+ ```
127
+ refactor: extract payment processing into PaymentService
128
+
129
+ Moves payment logic out of OrderController into a dedicated service.
130
+ No behavior change — all existing tests pass.
131
+ Motivation: OrderController was 600 lines; this makes both units testable in isolation.
132
+ ```
133
+
134
+ Never mix a refactor commit with a feature or bug fix commit. Keep them separate.
135
+
136
+ ---
137
+
138
+ ## Refactoring anti-patterns
139
+
140
+ - **"While I'm in here..."** — doing a refactor and a feature at the same time. Stop. Finish the refactor first.
141
+ - **Refactoring without tests** — you will break something and not know it
142
+ - **Big-bang refactor** — changing everything at once. Do it incrementally.
143
+ - **Renaming as the last step** — rename first (mechanical, low risk), then restructure
144
+ - **Skipping the baseline** — assuming tests are adequate without checking first
145
+
146
+ ---
147
+
148
+ > **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/)