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.
- package/.claude-plugin/plugin.json +42 -0
- package/CONTEXT.md +58 -0
- package/README.md +165 -0
- package/agents/build-resolvers/de/python-resolver.md +64 -0
- package/agents/build-resolvers/de/typescript-resolver.md +65 -0
- package/agents/build-resolvers/es/python-resolver.md +64 -0
- package/agents/build-resolvers/es/typescript-resolver.md +65 -0
- package/agents/build-resolvers/fr/python-resolver.md +64 -0
- package/agents/build-resolvers/fr/typescript-resolver.md +65 -0
- package/agents/build-resolvers/nl/python-resolver.md +64 -0
- package/agents/build-resolvers/nl/typescript-resolver.md +65 -0
- package/agents/build-resolvers/python-resolver.md +62 -0
- package/agents/build-resolvers/typescript-resolver.md +63 -0
- package/agents/core/architect.md +64 -0
- package/agents/core/code-reviewer.md +78 -0
- package/agents/core/de/architect.md +66 -0
- package/agents/core/de/code-reviewer.md +80 -0
- package/agents/core/de/planner.md +63 -0
- package/agents/core/de/security-reviewer.md +93 -0
- package/agents/core/es/architect.md +66 -0
- package/agents/core/es/code-reviewer.md +80 -0
- package/agents/core/es/planner.md +63 -0
- package/agents/core/es/security-reviewer.md +93 -0
- package/agents/core/fr/architect.md +66 -0
- package/agents/core/fr/code-reviewer.md +80 -0
- package/agents/core/fr/planner.md +63 -0
- package/agents/core/fr/security-reviewer.md +93 -0
- package/agents/core/nl/architect.md +66 -0
- package/agents/core/nl/code-reviewer.md +80 -0
- package/agents/core/nl/planner.md +63 -0
- package/agents/core/nl/security-reviewer.md +93 -0
- package/agents/core/planner.md +61 -0
- package/agents/core/security-reviewer.md +91 -0
- package/guides/agent-orchestration.md +231 -0
- package/guides/de/agent-orchestration.md +174 -0
- package/guides/de/getting-started.md +164 -0
- package/guides/de/hooks-cookbook.md +160 -0
- package/guides/de/memory-management.md +153 -0
- package/guides/de/security.md +180 -0
- package/guides/de/skill-authoring.md +214 -0
- package/guides/de/token-optimization.md +156 -0
- package/guides/es/agent-orchestration.md +174 -0
- package/guides/es/getting-started.md +164 -0
- package/guides/es/hooks-cookbook.md +160 -0
- package/guides/es/memory-management.md +153 -0
- package/guides/es/security.md +180 -0
- package/guides/es/skill-authoring.md +214 -0
- package/guides/es/token-optimization.md +156 -0
- package/guides/fr/agent-orchestration.md +174 -0
- package/guides/fr/getting-started.md +164 -0
- package/guides/fr/hooks-cookbook.md +227 -0
- package/guides/fr/memory-management.md +169 -0
- package/guides/fr/security.md +180 -0
- package/guides/fr/skill-authoring.md +214 -0
- package/guides/fr/token-optimization.md +158 -0
- package/guides/getting-started.md +164 -0
- package/guides/hooks-cookbook.md +423 -0
- package/guides/memory-management.md +192 -0
- package/guides/nl/agent-orchestration.md +174 -0
- package/guides/nl/getting-started.md +164 -0
- package/guides/nl/hooks-cookbook.md +160 -0
- package/guides/nl/memory-management.md +153 -0
- package/guides/nl/security.md +180 -0
- package/guides/nl/skill-authoring.md +214 -0
- package/guides/nl/token-optimization.md +156 -0
- package/guides/security.md +229 -0
- package/guides/skill-authoring.md +226 -0
- package/guides/token-optimization.md +169 -0
- package/hooks/lifecycle/cost-tracker.md +49 -0
- package/hooks/lifecycle/cost-tracker.sh +59 -0
- package/hooks/lifecycle/pre-compact-save.md +56 -0
- package/hooks/lifecycle/pre-compact-save.sh +37 -0
- package/hooks/lifecycle/session-start.md +50 -0
- package/hooks/lifecycle/session-start.sh +47 -0
- package/hooks/post-tool-use/audit-log.md +53 -0
- package/hooks/post-tool-use/audit-log.sh +53 -0
- package/hooks/post-tool-use/prettier.md +53 -0
- package/hooks/post-tool-use/prettier.sh +49 -0
- package/hooks/pre-tool-use/block-dangerous.md +48 -0
- package/hooks/pre-tool-use/block-dangerous.sh +76 -0
- package/hooks/pre-tool-use/git-push-confirm.md +46 -0
- package/hooks/pre-tool-use/git-push-confirm.sh +36 -0
- package/mcp/configs/github.json +11 -0
- package/mcp/configs/postgres.json +11 -0
- package/mcp/de/recommended-servers.md +170 -0
- package/mcp/es/recommended-servers.md +170 -0
- package/mcp/fr/recommended-servers.md +170 -0
- package/mcp/nl/recommended-servers.md +170 -0
- package/mcp/recommended-servers.md +168 -0
- package/package.json +45 -0
- package/prompts/project-starters/de/fastapi-project.md +62 -0
- package/prompts/project-starters/de/nextjs-project.md +82 -0
- package/prompts/project-starters/es/fastapi-project.md +62 -0
- package/prompts/project-starters/es/nextjs-project.md +82 -0
- package/prompts/project-starters/fastapi-project.md +60 -0
- package/prompts/project-starters/fr/fastapi-project.md +62 -0
- package/prompts/project-starters/fr/nextjs-project.md +82 -0
- package/prompts/project-starters/nextjs-project.md +80 -0
- package/prompts/project-starters/nl/fastapi-project.md +62 -0
- package/prompts/project-starters/nl/nextjs-project.md +82 -0
- package/prompts/system-prompts/ai-product.md +80 -0
- package/prompts/system-prompts/data-pipeline.md +76 -0
- package/prompts/system-prompts/de/ai-product.md +82 -0
- package/prompts/system-prompts/de/data-pipeline.md +78 -0
- package/prompts/system-prompts/de/saas-backend.md +71 -0
- package/prompts/system-prompts/es/ai-product.md +82 -0
- package/prompts/system-prompts/es/data-pipeline.md +78 -0
- package/prompts/system-prompts/es/saas-backend.md +71 -0
- package/prompts/system-prompts/fr/ai-product.md +82 -0
- package/prompts/system-prompts/fr/data-pipeline.md +78 -0
- package/prompts/system-prompts/fr/saas-backend.md +71 -0
- package/prompts/system-prompts/nl/ai-product.md +82 -0
- package/prompts/system-prompts/nl/data-pipeline.md +78 -0
- package/prompts/system-prompts/nl/saas-backend.md +71 -0
- package/prompts/system-prompts/saas-backend.md +69 -0
- package/prompts/task-specific/changelog.md +81 -0
- package/prompts/task-specific/de/changelog.md +83 -0
- package/prompts/task-specific/de/debugging.md +78 -0
- package/prompts/task-specific/de/pr-description.md +69 -0
- package/prompts/task-specific/debugging.md +76 -0
- package/prompts/task-specific/es/changelog.md +83 -0
- package/prompts/task-specific/es/debugging.md +78 -0
- package/prompts/task-specific/es/pr-description.md +69 -0
- package/prompts/task-specific/fr/changelog.md +83 -0
- package/prompts/task-specific/fr/debugging.md +78 -0
- package/prompts/task-specific/fr/pr-description.md +69 -0
- package/prompts/task-specific/nl/changelog.md +83 -0
- package/prompts/task-specific/nl/debugging.md +78 -0
- package/prompts/task-specific/nl/pr-description.md +69 -0
- package/prompts/task-specific/pr-description.md +67 -0
- package/rules/common/coding-style.md +45 -0
- package/rules/common/de/coding-style.md +47 -0
- package/rules/common/de/git.md +48 -0
- package/rules/common/de/performance.md +40 -0
- package/rules/common/de/security.md +45 -0
- package/rules/common/de/testing.md +45 -0
- package/rules/common/es/coding-style.md +47 -0
- package/rules/common/es/git.md +48 -0
- package/rules/common/es/performance.md +40 -0
- package/rules/common/es/security.md +45 -0
- package/rules/common/es/testing.md +45 -0
- package/rules/common/fr/coding-style.md +47 -0
- package/rules/common/fr/git.md +48 -0
- package/rules/common/fr/performance.md +40 -0
- package/rules/common/fr/security.md +45 -0
- package/rules/common/fr/testing.md +45 -0
- package/rules/common/git.md +46 -0
- package/rules/common/nl/coding-style.md +47 -0
- package/rules/common/nl/git.md +48 -0
- package/rules/common/nl/performance.md +40 -0
- package/rules/common/nl/security.md +45 -0
- package/rules/common/nl/testing.md +45 -0
- package/rules/common/performance.md +38 -0
- package/rules/common/security.md +43 -0
- package/rules/common/testing.md +43 -0
- package/rules/language-specific/de/go.md +48 -0
- package/rules/language-specific/de/python.md +38 -0
- package/rules/language-specific/de/typescript.md +51 -0
- package/rules/language-specific/es/go.md +48 -0
- package/rules/language-specific/es/python.md +38 -0
- package/rules/language-specific/es/typescript.md +51 -0
- package/rules/language-specific/fr/go.md +48 -0
- package/rules/language-specific/fr/python.md +38 -0
- package/rules/language-specific/fr/typescript.md +51 -0
- package/rules/language-specific/go.md +46 -0
- package/rules/language-specific/nl/go.md +48 -0
- package/rules/language-specific/nl/python.md +38 -0
- package/rules/language-specific/nl/typescript.md +51 -0
- package/rules/language-specific/python.md +36 -0
- package/rules/language-specific/typescript.md +49 -0
- package/scripts/cli.js +161 -0
- package/scripts/link-skills.sh +35 -0
- package/scripts/list-skills.sh +34 -0
- package/skills/ai-engineering/agent-construction.md +285 -0
- package/skills/ai-engineering/claude-api.md +248 -0
- package/skills/ai-engineering/de/agent-construction.md +287 -0
- package/skills/ai-engineering/de/claude-api.md +250 -0
- package/skills/ai-engineering/es/agent-construction.md +287 -0
- package/skills/ai-engineering/es/claude-api.md +250 -0
- package/skills/ai-engineering/fr/agent-construction.md +287 -0
- package/skills/ai-engineering/fr/claude-api.md +250 -0
- package/skills/ai-engineering/nl/agent-construction.md +287 -0
- package/skills/ai-engineering/nl/claude-api.md +250 -0
- package/skills/backend/dotnet/csharp.md +304 -0
- package/skills/backend/dotnet/de/csharp.md +306 -0
- package/skills/backend/dotnet/es/csharp.md +306 -0
- package/skills/backend/dotnet/fr/csharp.md +306 -0
- package/skills/backend/dotnet/nl/csharp.md +306 -0
- package/skills/backend/go/de/go.md +307 -0
- package/skills/backend/go/es/go.md +307 -0
- package/skills/backend/go/fr/go.md +307 -0
- package/skills/backend/go/go.md +305 -0
- package/skills/backend/go/nl/go.md +307 -0
- package/skills/backend/nodejs/de/nestjs.md +274 -0
- package/skills/backend/nodejs/de/nextjs.md +222 -0
- package/skills/backend/nodejs/es/nestjs.md +274 -0
- package/skills/backend/nodejs/es/nextjs.md +222 -0
- package/skills/backend/nodejs/fr/nestjs.md +274 -0
- package/skills/backend/nodejs/fr/nextjs.md +222 -0
- package/skills/backend/nodejs/nestjs.md +272 -0
- package/skills/backend/nodejs/nextjs.md +220 -0
- package/skills/backend/nodejs/nl/nestjs.md +274 -0
- package/skills/backend/nodejs/nl/nextjs.md +222 -0
- package/skills/backend/python/de/django.md +285 -0
- package/skills/backend/python/de/fastapi.md +244 -0
- package/skills/backend/python/django.md +283 -0
- package/skills/backend/python/es/django.md +285 -0
- package/skills/backend/python/es/fastapi.md +244 -0
- package/skills/backend/python/fastapi.md +242 -0
- package/skills/backend/python/fr/django.md +285 -0
- package/skills/backend/python/fr/fastapi.md +244 -0
- package/skills/backend/python/nl/django.md +285 -0
- package/skills/backend/python/nl/fastapi.md +244 -0
- package/skills/data-ml/dbt-data-pipelines.md +155 -0
- package/skills/data-ml/de/dbt-data-pipelines.md +157 -0
- package/skills/data-ml/de/pandas-polars.md +147 -0
- package/skills/data-ml/de/pytorch-tensorflow.md +171 -0
- package/skills/data-ml/es/dbt-data-pipelines.md +157 -0
- package/skills/data-ml/es/pandas-polars.md +147 -0
- package/skills/data-ml/es/pytorch-tensorflow.md +171 -0
- package/skills/data-ml/fr/dbt-data-pipelines.md +157 -0
- package/skills/data-ml/fr/pandas-polars.md +147 -0
- package/skills/data-ml/fr/pytorch-tensorflow.md +171 -0
- package/skills/data-ml/nl/dbt-data-pipelines.md +157 -0
- package/skills/data-ml/nl/pandas-polars.md +147 -0
- package/skills/data-ml/nl/pytorch-tensorflow.md +171 -0
- package/skills/data-ml/pandas-polars.md +145 -0
- package/skills/data-ml/pytorch-tensorflow.md +169 -0
- package/skills/database/de/graphql.md +181 -0
- package/skills/database/es/graphql.md +181 -0
- package/skills/database/fr/graphql.md +181 -0
- package/skills/database/graphql.md +179 -0
- package/skills/database/nl/graphql.md +181 -0
- package/skills/devops-infra/de/docker.md +133 -0
- package/skills/devops-infra/de/github-actions.md +179 -0
- package/skills/devops-infra/de/kubernetes.md +129 -0
- package/skills/devops-infra/de/terraform.md +130 -0
- package/skills/devops-infra/docker.md +131 -0
- package/skills/devops-infra/es/docker.md +133 -0
- package/skills/devops-infra/es/github-actions.md +179 -0
- package/skills/devops-infra/es/kubernetes.md +129 -0
- package/skills/devops-infra/es/terraform.md +130 -0
- package/skills/devops-infra/fr/docker.md +133 -0
- package/skills/devops-infra/fr/github-actions.md +179 -0
- package/skills/devops-infra/fr/kubernetes.md +129 -0
- package/skills/devops-infra/fr/terraform.md +130 -0
- package/skills/devops-infra/github-actions.md +177 -0
- package/skills/devops-infra/kubernetes.md +127 -0
- package/skills/devops-infra/nl/docker.md +133 -0
- package/skills/devops-infra/nl/github-actions.md +179 -0
- package/skills/devops-infra/nl/kubernetes.md +129 -0
- package/skills/devops-infra/nl/terraform.md +130 -0
- package/skills/devops-infra/terraform.md +128 -0
- package/skills/finance-payments/de/stripe.md +187 -0
- package/skills/finance-payments/es/stripe.md +187 -0
- package/skills/finance-payments/fr/stripe.md +187 -0
- package/skills/finance-payments/nl/stripe.md +187 -0
- package/skills/finance-payments/stripe.md +185 -0
- package/workflows/code-review.md +151 -0
- package/workflows/de/code-review.md +153 -0
- package/workflows/de/debugging-session.md +146 -0
- package/workflows/de/feature-development.md +155 -0
- package/workflows/de/new-project-bootstrap.md +175 -0
- package/workflows/de/refactor-safely.md +150 -0
- package/workflows/debugging-session.md +144 -0
- package/workflows/es/code-review.md +153 -0
- package/workflows/es/debugging-session.md +146 -0
- package/workflows/es/feature-development.md +155 -0
- package/workflows/es/new-project-bootstrap.md +175 -0
- package/workflows/es/refactor-safely.md +150 -0
- package/workflows/feature-development.md +153 -0
- package/workflows/fr/code-review.md +153 -0
- package/workflows/fr/debugging-session.md +146 -0
- package/workflows/fr/feature-development.md +155 -0
- package/workflows/fr/new-project-bootstrap.md +175 -0
- package/workflows/fr/refactor-safely.md +150 -0
- package/workflows/new-project-bootstrap.md +173 -0
- package/workflows/nl/code-review.md +153 -0
- package/workflows/nl/debugging-session.md +146 -0
- package/workflows/nl/feature-development.md +155 -0
- package/workflows/nl/new-project-bootstrap.md +175 -0
- package/workflows/nl/refactor-safely.md +150 -0
- package/workflows/refactor-safely.md +148 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# New Project Bootstrap Workflow
|
|
2
|
+
|
|
3
|
+
How to spin up a new project with Claude Code — structured, opinionated, and ready to build on from day one.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## When to use this workflow
|
|
8
|
+
- Starting a new application from scratch
|
|
9
|
+
- Setting up a new service in an existing system
|
|
10
|
+
- Creating a new repository for a side project or client engagement
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Step 1 — Define what you're building
|
|
15
|
+
|
|
16
|
+
Before touching any code or config, answer these questions clearly.
|
|
17
|
+
|
|
18
|
+
**Prompt Claude:**
|
|
19
|
+
```
|
|
20
|
+
I am starting a new project. Help me define it clearly before we write any code.
|
|
21
|
+
|
|
22
|
+
What I want to build: [describe in 2–3 sentences]
|
|
23
|
+
|
|
24
|
+
Ask me the following questions one at a time and wait for my answer before asking the next:
|
|
25
|
+
1. Who are the users and what is the primary thing they do?
|
|
26
|
+
2. What is the expected scale at launch? (users, requests/sec, data volume)
|
|
27
|
+
3. What are the hard constraints? (budget, timeline, team size, existing tech stack)
|
|
28
|
+
4. What does "done" look like for v1?
|
|
29
|
+
5. What is explicitly out of scope for v1?
|
|
30
|
+
|
|
31
|
+
After I answer all five, summarize what we're building and confirm with me before proceeding.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Do not proceed until the scope is confirmed in writing.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Step 2 — Choose the stack
|
|
39
|
+
|
|
40
|
+
**Prompt Claude:**
|
|
41
|
+
```
|
|
42
|
+
Based on what we're building:
|
|
43
|
+
- [paste summary from Step 1]
|
|
44
|
+
|
|
45
|
+
Recommend a specific stack. For each component (backend, frontend, database, auth, deployment), recommend:
|
|
46
|
+
- Your recommended choice and why it fits our constraints
|
|
47
|
+
- What we'd be giving up vs the next-best alternative
|
|
48
|
+
- No more than 2 options per component — I need a decision, not a menu
|
|
49
|
+
|
|
50
|
+
Be opinionated. I will push back if I disagree.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Lock in the stack before writing any code. Record decisions in `docs/adr/` if they're non-obvious.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 3 — Bootstrap the project structure
|
|
58
|
+
|
|
59
|
+
**Prompt Claude:**
|
|
60
|
+
```
|
|
61
|
+
Set up the initial project structure for: [stack from Step 2]
|
|
62
|
+
|
|
63
|
+
Create:
|
|
64
|
+
1. The directory structure (show as a tree before creating anything)
|
|
65
|
+
2. Package/dependency files with pinned versions
|
|
66
|
+
3. Configuration files (TypeScript, ESLint, Prettier, etc.)
|
|
67
|
+
4. .gitignore appropriate for this stack
|
|
68
|
+
5. A minimal working "hello world" that proves the stack runs
|
|
69
|
+
|
|
70
|
+
Do not add features yet. The goal is a running skeleton.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Verify it runs before continuing.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Step 4 — Set up CLAUDE.md
|
|
78
|
+
|
|
79
|
+
**Prompt Claude:**
|
|
80
|
+
```
|
|
81
|
+
Create a CLAUDE.md for this project.
|
|
82
|
+
|
|
83
|
+
Include:
|
|
84
|
+
1. What this project is (one paragraph)
|
|
85
|
+
2. Stack summary (language, framework, key libraries, DB)
|
|
86
|
+
3. Directory structure with purpose of each directory
|
|
87
|
+
4. Coding conventions specific to this stack
|
|
88
|
+
5. Commands to run (dev server, tests, build, lint)
|
|
89
|
+
6. Decisions already made (from Steps 1–3) that should not be revisited
|
|
90
|
+
7. What NOT to do in this project
|
|
91
|
+
|
|
92
|
+
Make it dense and useful — not a tutorial. A senior developer should be able to start contributing after reading it.
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Step 5 — Set up the development environment
|
|
98
|
+
|
|
99
|
+
**Prompt Claude:**
|
|
100
|
+
```
|
|
101
|
+
Set up the development environment:
|
|
102
|
+
|
|
103
|
+
1. Docker Compose file for local dependencies (database, cache, queues)
|
|
104
|
+
2. Environment variable template (.env.example with all required vars, no real values)
|
|
105
|
+
3. Database migrations setup (initial schema if applicable)
|
|
106
|
+
4. Test setup (test runner config, example test, CI-ready)
|
|
107
|
+
5. A Makefile or scripts/ directory with common commands:
|
|
108
|
+
- make dev (start local environment)
|
|
109
|
+
- make test (run tests)
|
|
110
|
+
- make build (production build)
|
|
111
|
+
- make lint (lint and format check)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Step 6 — Set up CI
|
|
117
|
+
|
|
118
|
+
**Prompt Claude:**
|
|
119
|
+
```
|
|
120
|
+
Set up a GitHub Actions CI pipeline:
|
|
121
|
+
|
|
122
|
+
On every PR:
|
|
123
|
+
- Install dependencies (with cache)
|
|
124
|
+
- Run lint
|
|
125
|
+
- Run tests
|
|
126
|
+
- Build (if applicable)
|
|
127
|
+
|
|
128
|
+
Use the github-actions skill for best practices:
|
|
129
|
+
- Pin action versions
|
|
130
|
+
- Explicit permissions
|
|
131
|
+
- Dependency caching
|
|
132
|
+
- Fail fast on test failures
|
|
133
|
+
|
|
134
|
+
The pipeline must pass on the current skeleton before we add features.
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Verify CI passes on the initial commit before moving to feature development.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Step 7 — First feature planning
|
|
142
|
+
|
|
143
|
+
Once the skeleton is running and CI is green:
|
|
144
|
+
|
|
145
|
+
**Prompt Claude:**
|
|
146
|
+
```
|
|
147
|
+
The project is bootstrapped. Now plan the first feature:
|
|
148
|
+
|
|
149
|
+
Feature: [describe the first user-facing capability]
|
|
150
|
+
|
|
151
|
+
Use the feature-development workflow to plan and implement it.
|
|
152
|
+
Start with Step 1 of that workflow.
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
See `workflows/feature-development.md`.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Bootstrap checklist
|
|
160
|
+
|
|
161
|
+
- [ ] Scope defined and confirmed in writing
|
|
162
|
+
- [ ] Stack decided with documented reasoning
|
|
163
|
+
- [ ] Project structure created and running ("hello world" works)
|
|
164
|
+
- [ ] CLAUDE.md written and committed
|
|
165
|
+
- [ ] Docker Compose / local dependencies running
|
|
166
|
+
- [ ] .env.example committed with all required vars
|
|
167
|
+
- [ ] Tests configured and at least one passing
|
|
168
|
+
- [ ] CI pipeline green on first push
|
|
169
|
+
- [ ] `docs/adr/` created with initial architectural decisions
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
> **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,153 @@
|
|
|
1
|
+
> 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../code-review.md).
|
|
2
|
+
|
|
3
|
+
# Code Review Workflow
|
|
4
|
+
|
|
5
|
+
Hoe je een gestructureerde, geautomatiseerde code-review uitvoert met Claude Code voor of naast menselijke review.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Wanneer deze workflow te gebruiken
|
|
10
|
+
- Je eigen wijzigingen zelfreviewen voor pushen
|
|
11
|
+
- Een PR pre-screenen voor het aanvragen van menselijke review
|
|
12
|
+
- AI-gegenereerde code beoordelen voor acceptatie
|
|
13
|
+
- Onboarding-review: begrijpen wat er is gewijzigd in een onbekende PR
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Stap 1 — Bereid context voor
|
|
18
|
+
|
|
19
|
+
Geef Claude alles wat het nodig heeft om zinvol te beoordelen.
|
|
20
|
+
|
|
21
|
+
**Vraag Claude:**
|
|
22
|
+
```
|
|
23
|
+
I need you to review the following changes.
|
|
24
|
+
|
|
25
|
+
Project context:
|
|
26
|
+
- Stack: [language, framework, key libraries]
|
|
27
|
+
- Testing approach: [unit/integration, mocking policy]
|
|
28
|
+
- Key conventions: [paste relevant CLAUDE.md sections]
|
|
29
|
+
|
|
30
|
+
Changed files:
|
|
31
|
+
[paste git diff output OR list files and ask Claude to read them]
|
|
32
|
+
|
|
33
|
+
This PR: [one sentence on what it's supposed to do]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Stap 2 — Correctheidsreview
|
|
39
|
+
|
|
40
|
+
**Vraag Claude:**
|
|
41
|
+
```
|
|
42
|
+
Review these changes for correctness only.
|
|
43
|
+
|
|
44
|
+
Check:
|
|
45
|
+
1. Does the code do what the PR description says it does?
|
|
46
|
+
2. Are there edge cases not handled? (null inputs, empty collections, concurrent access, large inputs)
|
|
47
|
+
3. Are there off-by-one errors, wrong comparisons, or logic inversions?
|
|
48
|
+
4. Are error paths handled — can this panic, throw, or silently fail?
|
|
49
|
+
5. Are there race conditions if this code runs concurrently?
|
|
50
|
+
|
|
51
|
+
Format: [FILE:LINE] — [issue description] — [suggested fix]
|
|
52
|
+
Only report real issues. Do not nitpick style.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Stap 3 — Beveiligingsreview
|
|
58
|
+
|
|
59
|
+
**Vraag Claude:**
|
|
60
|
+
```
|
|
61
|
+
Review these changes for security issues.
|
|
62
|
+
|
|
63
|
+
Check:
|
|
64
|
+
1. Is any user input used in SQL, shell commands, file paths, or HTML without sanitization?
|
|
65
|
+
2. Are there missing authentication or authorization checks?
|
|
66
|
+
3. Are secrets, tokens, or credentials exposed in logs, errors, or responses?
|
|
67
|
+
4. Are there insecure direct object references (IDOR)?
|
|
68
|
+
5. Are there missing rate limits on sensitive endpoints?
|
|
69
|
+
|
|
70
|
+
Severity: CRITICAL / HIGH / MEDIUM / LOW
|
|
71
|
+
Format: [SEVERITY] [FILE:LINE] — [vulnerability] — [fix]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Stap 4 — Testdekking controleren
|
|
77
|
+
|
|
78
|
+
**Vraag Claude:**
|
|
79
|
+
```
|
|
80
|
+
Review the test coverage for these changes.
|
|
81
|
+
|
|
82
|
+
Check:
|
|
83
|
+
1. Is every new function or method covered by at least one test?
|
|
84
|
+
2. Is the happy path tested?
|
|
85
|
+
3. Is at least one error/edge case tested?
|
|
86
|
+
4. Do the tests actually assert meaningful behavior, or just that the function runs?
|
|
87
|
+
5. Are there behaviors changed by this PR that existing tests don't cover?
|
|
88
|
+
|
|
89
|
+
List: [what is tested] and [what is missing]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Stap 5 — Onderhoudbaarheidsreview
|
|
95
|
+
|
|
96
|
+
**Vraag Claude:**
|
|
97
|
+
```
|
|
98
|
+
Review these changes for maintainability.
|
|
99
|
+
|
|
100
|
+
Check:
|
|
101
|
+
1. Will a developer unfamiliar with this code understand it in 6 months?
|
|
102
|
+
2. Are function names and variable names clear and accurate?
|
|
103
|
+
3. Is there duplicated logic that should be extracted?
|
|
104
|
+
4. Are there magic numbers or strings that should be named constants?
|
|
105
|
+
5. Does this introduce unnecessary coupling between modules?
|
|
106
|
+
|
|
107
|
+
Only flag real maintainability issues — not style preferences.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Stap 6 — Consolideer bevindingen
|
|
113
|
+
|
|
114
|
+
**Vraag Claude:**
|
|
115
|
+
```
|
|
116
|
+
Consolidate all findings from the review into a final report.
|
|
117
|
+
|
|
118
|
+
Format:
|
|
119
|
+
## CRITICAL (must fix before merge)
|
|
120
|
+
[list]
|
|
121
|
+
|
|
122
|
+
## HIGH (strongly recommended)
|
|
123
|
+
[list]
|
|
124
|
+
|
|
125
|
+
## SUGGESTED (worth doing)
|
|
126
|
+
[list]
|
|
127
|
+
|
|
128
|
+
## NITPICK (optional)
|
|
129
|
+
[list]
|
|
130
|
+
|
|
131
|
+
## VERDICT
|
|
132
|
+
[ ] Approved — no blockers
|
|
133
|
+
[ ] Approved with suggestions — merge after addressing CRITICAL
|
|
134
|
+
[ ] Changes requested — must address before merge
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## De Code Reviewer agent gebruiken
|
|
140
|
+
|
|
141
|
+
Voor grotere PR's, delegeer naar de Code Reviewer agent in plaats van inline te draaien:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
Spawn a Code Reviewer agent (Sonnet 4.6) to review [list of files].
|
|
145
|
+
Give it the project context from CLAUDE.md and the PR description.
|
|
146
|
+
Have it return a structured CRITICAL/SUGGESTED/NITPICK report.
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Zie `agents/core/code-reviewer.md` voor de volledige agentdefinitie.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
> **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,146 @@
|
|
|
1
|
+
> 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../debugging-session.md).
|
|
2
|
+
|
|
3
|
+
# Debugging Session Workflow
|
|
4
|
+
|
|
5
|
+
Systematische workflow voor het diagnosticeren en oplossen van bugs met Claude Code — zonder symptomen na te jagen.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Wanneer deze workflow te gebruiken
|
|
10
|
+
- Een bug die niet direct duidelijk is bij het lezen van de code
|
|
11
|
+
- Een falende test waarbij de oorzaak niet duidelijk is
|
|
12
|
+
- Een productiefout die je lokaal niet kunt reproduceren
|
|
13
|
+
- Intermitterende fouten
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Stap 1 — Bouw eerst een feedbacklus
|
|
18
|
+
|
|
19
|
+
Maak een manier om de bug betrouwbaar te reproduceren voor je onderzoekt. Sla deze stap niet over.
|
|
20
|
+
|
|
21
|
+
**Vraag Claude:**
|
|
22
|
+
```
|
|
23
|
+
I have a bug: [describe the symptom exactly — error message, unexpected behavior, what you expected]
|
|
24
|
+
|
|
25
|
+
Before we investigate, help me build a reliable way to reproduce it.
|
|
26
|
+
|
|
27
|
+
Options to consider:
|
|
28
|
+
- A failing test that captures the bug
|
|
29
|
+
- A curl command or script that triggers it
|
|
30
|
+
- A minimal code snippet that demonstrates it
|
|
31
|
+
- Steps to reproduce via the UI
|
|
32
|
+
|
|
33
|
+
Which is most appropriate here, and write it now.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Ga niet door totdat je een betrouwbare reproductie hebt.** Debuggen zonder reproductie is raden.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Stap 2 — Isoleer de blaststraal
|
|
41
|
+
|
|
42
|
+
Begrijp waar de bug mogelijk kan leven voor je code leest.
|
|
43
|
+
|
|
44
|
+
**Vraag Claude:**
|
|
45
|
+
```
|
|
46
|
+
Here is the reproduction: [paste the reproduction from Step 1]
|
|
47
|
+
|
|
48
|
+
Without looking at code yet, answer:
|
|
49
|
+
1. What is the earliest point in the call stack where this could go wrong?
|
|
50
|
+
2. What external systems are involved (DB, cache, third-party API, queue)?
|
|
51
|
+
3. What changed recently that could have introduced this? (check git log)
|
|
52
|
+
4. What is the smallest unit of code that, if wrong, would cause this symptom?
|
|
53
|
+
|
|
54
|
+
List the files most likely to contain the bug, ranked by probability.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Stap 3 — Genereer hypothesen
|
|
60
|
+
|
|
61
|
+
**Vraag Claude:**
|
|
62
|
+
```
|
|
63
|
+
Based on the reproduction and the candidate files, generate 3–5 falsifiable hypotheses.
|
|
64
|
+
|
|
65
|
+
For each hypothesis:
|
|
66
|
+
- State it as a specific claim: "The bug occurs because [X] when [Y]"
|
|
67
|
+
- Describe how to test it: what would we observe if this hypothesis is true?
|
|
68
|
+
- Describe how to disprove it: what would we observe if it's false?
|
|
69
|
+
|
|
70
|
+
Do not start testing yet. List all hypotheses first.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Bekijk de hypothesen. Voeg toe welke je zelf mist die Claude miste. Rangschik ze op waarschijnlijkheid.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Stap 4 — Test hypothesen, hoogste waarschijnlijkheid eerst
|
|
78
|
+
|
|
79
|
+
**Voor elke hypothese:**
|
|
80
|
+
```
|
|
81
|
+
Test hypothesis [N]: "[paste the hypothesis]"
|
|
82
|
+
|
|
83
|
+
Add the minimal instrumentation needed to confirm or rule this out:
|
|
84
|
+
- A log statement at the right point
|
|
85
|
+
- A debug assertion
|
|
86
|
+
- A targeted test with a specific input
|
|
87
|
+
|
|
88
|
+
Do not add instrumentation for other hypotheses yet.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Na elke test:
|
|
92
|
+
- Als bevestigd: ga naar Stap 5
|
|
93
|
+
- Als uitgesloten: ga naar de volgende hypothese
|
|
94
|
+
- Als niet-concludent: verfijn de hypothese en hertest
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Stap 5 — Repareer en verifieer
|
|
99
|
+
|
|
100
|
+
Zodra de hoofdoorzaak is bevestigd:
|
|
101
|
+
|
|
102
|
+
**Vraag Claude:**
|
|
103
|
+
```
|
|
104
|
+
Root cause confirmed: [describe what you found]
|
|
105
|
+
|
|
106
|
+
Now:
|
|
107
|
+
1. Apply the minimal fix — change only what's needed to fix this specific bug
|
|
108
|
+
2. Do not refactor surrounding code
|
|
109
|
+
3. Update the reproduction from Step 1 to be a regression test
|
|
110
|
+
4. Run the full test suite — confirm nothing else broke
|
|
111
|
+
|
|
112
|
+
Explain in one sentence why this fix works.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Stap 6 — Postmortem (voor ernstige bugs)
|
|
118
|
+
|
|
119
|
+
Voor bugs die gebruikersinvloed hadden, dataverlies veroorzaakten, of meer dan 2 uur duurden om te vinden:
|
|
120
|
+
|
|
121
|
+
**Vraag Claude:**
|
|
122
|
+
```
|
|
123
|
+
Write a brief post-mortem for this bug:
|
|
124
|
+
|
|
125
|
+
1. What was the bug? (one sentence)
|
|
126
|
+
2. What was the root cause?
|
|
127
|
+
3. How long did it take to find and why?
|
|
128
|
+
4. What would have caught this earlier? (missing test, missing monitoring, code review gap)
|
|
129
|
+
5. What should we add/change to prevent this class of bug?
|
|
130
|
+
|
|
131
|
+
Keep it under 200 words. No blame, no fluff.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Te vermijden antipatronen
|
|
137
|
+
|
|
138
|
+
- **Het symptoom repareren, niet de oorzaak** — als je niet begrijpt waarom, heb je het niet gerepareerd
|
|
139
|
+
- **Meerdere dingen tegelijk wijzigen** — je weet niet welke wijziging het heeft gerepareerd
|
|
140
|
+
- **Debuggen zonder reproductie** — je raadt
|
|
141
|
+
- **Instrumentatie overal toevoegen** — richt je op specifieke hypothesen
|
|
142
|
+
- **De regressietest overslaan** — de bug komt terug
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
> **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,155 @@
|
|
|
1
|
+
> 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../feature-development.md).
|
|
2
|
+
|
|
3
|
+
# Feature Development Workflow
|
|
4
|
+
|
|
5
|
+
End-to-end workflow voor het nemen van een feature van idee tot samengevoegde PR met Claude Code.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Wanneer deze workflow te gebruiken
|
|
10
|
+
- Een nieuwe feature bouwen die meer dan één bestand aanraakt
|
|
11
|
+
- Een spec of ticket implementeren dat opgesplitst moet worden voor het coderen
|
|
12
|
+
- Elke feature waarbij je een gestructureerd, beoordeelbaar proces wilt
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Stap 1 — Definieer en valideer reikwijdte
|
|
17
|
+
|
|
18
|
+
Stel exact vast wat je bouwt voordat je code schrijft.
|
|
19
|
+
|
|
20
|
+
**Vraag Claude:**
|
|
21
|
+
```
|
|
22
|
+
I need to build: [describe the feature in one paragraph]
|
|
23
|
+
|
|
24
|
+
Read the relevant files first:
|
|
25
|
+
- [list key files: routes, models, services]
|
|
26
|
+
- CLAUDE.md and CONTEXT.md if present
|
|
27
|
+
|
|
28
|
+
Then tell me:
|
|
29
|
+
1. What files will need to change?
|
|
30
|
+
2. What new files will be created?
|
|
31
|
+
3. What are the edge cases I should handle?
|
|
32
|
+
4. What decisions do I need to make before we start?
|
|
33
|
+
5. Are there any risks or dependencies I'm missing?
|
|
34
|
+
|
|
35
|
+
Do not write code yet.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Waar op te letten in het antwoord:**
|
|
39
|
+
- Bestanden die je niet had overwogen
|
|
40
|
+
- Randgevallen die bugs zouden veroorzaken als ze worden gemist
|
|
41
|
+
- Beslissingen die in CLAUDE.md moeten zodra ze zijn genomen
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Stap 2 — Plan de implementatie
|
|
46
|
+
|
|
47
|
+
Zodra de reikwijdte duidelijk is, krijg je een gesequentieerd plan.
|
|
48
|
+
|
|
49
|
+
**Vraag Claude:**
|
|
50
|
+
```
|
|
51
|
+
Based on the scope we just defined, create a numbered implementation plan.
|
|
52
|
+
|
|
53
|
+
Each step must be:
|
|
54
|
+
- A concrete, bounded action (not "implement auth" — "add JWT validation middleware to src/middleware/auth.ts")
|
|
55
|
+
- Completable in a single session
|
|
56
|
+
- Independently testable
|
|
57
|
+
|
|
58
|
+
Include which files change in each step. Note dependencies between steps.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Bekijk het plan. Als een stap te groot is, vraag Claude om het verder op te splitsen. Vergrendel het plan voor je code aanraakt.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Stap 3 — Implementeer stap voor stap
|
|
66
|
+
|
|
67
|
+
Voer één planstap tegelijk uit. Sla niet vooruit.
|
|
68
|
+
|
|
69
|
+
**Voor elke stap:**
|
|
70
|
+
```
|
|
71
|
+
Implement step [N]: [paste the step description]
|
|
72
|
+
|
|
73
|
+
Rules:
|
|
74
|
+
- Only change what's needed for this step
|
|
75
|
+
- Write or update tests for this step's behavior
|
|
76
|
+
- Do not refactor code outside the scope of this step
|
|
77
|
+
- Tell me when this step is complete and what to verify
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Na elke stap:**
|
|
81
|
+
- Voer tests uit: bevestig groen voor de volgende stap
|
|
82
|
+
- Bekijk de diff zelf: is dit wat je bedoelde?
|
|
83
|
+
- Als een stap nieuwe complexiteit onthult, werk het plan bij voor te doorgaan
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Stap 4 — Integratiecontrole
|
|
88
|
+
|
|
89
|
+
Zodra alle stappen zijn voltooid, verifieer dat de volledige feature end-to-end werkt.
|
|
90
|
+
|
|
91
|
+
**Vraag Claude:**
|
|
92
|
+
```
|
|
93
|
+
All implementation steps are complete. Now:
|
|
94
|
+
|
|
95
|
+
1. Run the full test suite — report any failures
|
|
96
|
+
2. Check that all edge cases from Step 1 are handled — list each one and confirm
|
|
97
|
+
3. Check for any TODOs or incomplete error handling introduced during implementation
|
|
98
|
+
4. Verify the feature works with [specific test scenario relevant to this feature]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Los eventuele gevonden problemen op voor je doorgaat.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Stap 5 — Zelfreview
|
|
106
|
+
|
|
107
|
+
Bekijk je eigen wijzigingen voor het aanmaken van een PR.
|
|
108
|
+
|
|
109
|
+
**Vraag Claude:**
|
|
110
|
+
```
|
|
111
|
+
Review the changes on this branch against main.
|
|
112
|
+
|
|
113
|
+
Focus on:
|
|
114
|
+
1. CRITICAL issues (bugs, security, data loss risks)
|
|
115
|
+
2. Missing tests for changed behavior
|
|
116
|
+
3. Convention violations vs this project's CLAUDE.md
|
|
117
|
+
4. Anything that would confuse a reader in 6 months
|
|
118
|
+
|
|
119
|
+
Format: CRITICAL / SUGGESTED / NITPICK
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Los alle CRITICAL-problemen op. Gebruik oordeel voor SUGGESTED-items.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Stap 6 — PR-beschrijving
|
|
127
|
+
|
|
128
|
+
**Vraag Claude:**
|
|
129
|
+
```
|
|
130
|
+
Write a PR description for these changes.
|
|
131
|
+
|
|
132
|
+
Include:
|
|
133
|
+
- What this PR does (one paragraph)
|
|
134
|
+
- Why it's needed (the problem it solves)
|
|
135
|
+
- How to test it (specific steps a reviewer can follow)
|
|
136
|
+
- Any decisions made and why (reference CLAUDE.md or ADRs if relevant)
|
|
137
|
+
- Screenshots or output if applicable
|
|
138
|
+
|
|
139
|
+
Do not include a list of files changed — the diff covers that.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Checklist voor samenvoegen
|
|
145
|
+
|
|
146
|
+
- [ ] Alle tests slagen
|
|
147
|
+
- [ ] Zelfreview voltooid, geen CRITICAL-problemen
|
|
148
|
+
- [ ] Randgevallen uit Stap 1 zijn allemaal afgehandeld
|
|
149
|
+
- [ ] PR-beschrijving geschreven
|
|
150
|
+
- [ ] CLAUDE.md bijgewerkt als nieuwe beslissingen zijn genomen
|
|
151
|
+
- [ ] CONTEXT.md bijgewerkt als nieuwe domaintermen zijn geïntroduceerd
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
> **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/)
|