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,82 @@
|
|
|
1
|
+
> 🇫🇷 This is the French translation. [English version](../nextjs-project.md).
|
|
2
|
+
|
|
3
|
+
# Starter de Projet : Next.js
|
|
4
|
+
|
|
5
|
+
Utilisez ce prompt pour lancer un nouveau projet Next.js avec Claude Code.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Prompt de démarrage
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Bootstrap a new Next.js 15 project with production-ready defaults.
|
|
13
|
+
|
|
14
|
+
Project: [name and one-sentence description]
|
|
15
|
+
Stack: Next.js 15 (App Router), TypeScript, Tailwind CSS, shadcn/ui
|
|
16
|
+
Database: PostgreSQL with Prisma
|
|
17
|
+
Auth: [Clerk / NextAuth.js / custom JWT]
|
|
18
|
+
Testing: Vitest + React Testing Library
|
|
19
|
+
|
|
20
|
+
Create the following structure:
|
|
21
|
+
src/
|
|
22
|
+
├── app/
|
|
23
|
+
│ ├── (auth)/ ← Auth routes (sign-in, sign-up)
|
|
24
|
+
│ ├── (dashboard)/ ← Protected routes
|
|
25
|
+
│ ├── api/ ← API route handlers
|
|
26
|
+
│ ├── layout.tsx ← Root layout
|
|
27
|
+
│ └── page.tsx ← Landing page
|
|
28
|
+
├── components/
|
|
29
|
+
│ ├── ui/ ← shadcn/ui components (auto-generated)
|
|
30
|
+
│ └── [feature]/ ← Feature-specific components
|
|
31
|
+
├── lib/
|
|
32
|
+
│ ├── db.ts ← Prisma client singleton
|
|
33
|
+
│ ├── auth.ts ← Auth utilities
|
|
34
|
+
│ └── utils.ts ← cn() and shared utilities
|
|
35
|
+
├── server/ ← Server-only code (no client imports)
|
|
36
|
+
│ └── actions/ ← Server actions
|
|
37
|
+
└── types/ ← Shared TypeScript types
|
|
38
|
+
|
|
39
|
+
prisma/
|
|
40
|
+
├── schema.prisma
|
|
41
|
+
└── migrations/
|
|
42
|
+
|
|
43
|
+
Start with:
|
|
44
|
+
1. Show the full directory structure
|
|
45
|
+
2. package.json with pinned versions
|
|
46
|
+
3. tsconfig.json and tailwind.config.ts
|
|
47
|
+
4. Root layout.tsx and a working landing page
|
|
48
|
+
5. Prisma schema with a User model
|
|
49
|
+
6. Verify it runs: npm run dev
|
|
50
|
+
|
|
51
|
+
Do not add features yet — skeleton only.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Conventions clés à appliquer
|
|
57
|
+
|
|
58
|
+
À ajouter dans CLAUDE.md après le bootstrap :
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## Conventions Next.js
|
|
62
|
+
- Server Components par défaut — ajouter 'use client' uniquement quand nécessaire (gestionnaires d'événements, hooks, APIs navigateur)
|
|
63
|
+
- Server Actions pour les mutations — ne jamais appeler les routes API depuis les Server Components
|
|
64
|
+
- Ne jamais importer du code server-only dans les Client Components (utiliser la frontière du répertoire server/)
|
|
65
|
+
- Routes API uniquement pour : webhooks, callbacks OAuth, réponses en streaming
|
|
66
|
+
- Client Prisma : singleton dans lib/db.ts — ne jamais instancier inline
|
|
67
|
+
- Tous les accès à la base de données dans server/ — jamais dans les Client Components
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Que faire ensuite
|
|
73
|
+
|
|
74
|
+
Une fois le squelette en cours d'exécution :
|
|
75
|
+
|
|
76
|
+
1. Configurer l'auth : "Configure [Clerk/NextAuth] with the auth routes we set up"
|
|
77
|
+
2. Ajouter la première page : "Create a dashboard page showing [resource] with a data table"
|
|
78
|
+
3. Ajouter la première mutation : "Add a server action to create [resource] with form validation"
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
> **Travaillez avec nous :** Claudient est soutenu par [Uitbreiden](https://uitbreiden.com/) — nous construisons des produits IA et des solutions B2B avec des communautés de développeurs. [uitbreiden.com](https://uitbreiden.com/)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Project Starter: Next.js
|
|
2
|
+
|
|
3
|
+
Use this prompt to kick off a new Next.js project with Claude Code.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Kickoff prompt
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Bootstrap a new Next.js 15 project with production-ready defaults.
|
|
11
|
+
|
|
12
|
+
Project: [name and one-sentence description]
|
|
13
|
+
Stack: Next.js 15 (App Router), TypeScript, Tailwind CSS, shadcn/ui
|
|
14
|
+
Database: PostgreSQL with Prisma
|
|
15
|
+
Auth: [Clerk / NextAuth.js / custom JWT]
|
|
16
|
+
Testing: Vitest + React Testing Library
|
|
17
|
+
|
|
18
|
+
Create the following structure:
|
|
19
|
+
src/
|
|
20
|
+
├── app/
|
|
21
|
+
│ ├── (auth)/ ← Auth routes (sign-in, sign-up)
|
|
22
|
+
│ ├── (dashboard)/ ← Protected routes
|
|
23
|
+
│ ├── api/ ← API route handlers
|
|
24
|
+
│ ├── layout.tsx ← Root layout
|
|
25
|
+
│ └── page.tsx ← Landing page
|
|
26
|
+
├── components/
|
|
27
|
+
│ ├── ui/ ← shadcn/ui components (auto-generated)
|
|
28
|
+
│ └── [feature]/ ← Feature-specific components
|
|
29
|
+
├── lib/
|
|
30
|
+
│ ├── db.ts ← Prisma client singleton
|
|
31
|
+
│ ├── auth.ts ← Auth utilities
|
|
32
|
+
│ └── utils.ts ← cn() and shared utilities
|
|
33
|
+
├── server/ ← Server-only code (no client imports)
|
|
34
|
+
│ └── actions/ ← Server actions
|
|
35
|
+
└── types/ ← Shared TypeScript types
|
|
36
|
+
|
|
37
|
+
prisma/
|
|
38
|
+
├── schema.prisma
|
|
39
|
+
└── migrations/
|
|
40
|
+
|
|
41
|
+
Start with:
|
|
42
|
+
1. Show the full directory structure
|
|
43
|
+
2. package.json with pinned versions
|
|
44
|
+
3. tsconfig.json and tailwind.config.ts
|
|
45
|
+
4. Root layout.tsx and a working landing page
|
|
46
|
+
5. Prisma schema with a User model
|
|
47
|
+
6. Verify it runs: npm run dev
|
|
48
|
+
|
|
49
|
+
Do not add features yet — skeleton only.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Key conventions to enforce
|
|
55
|
+
|
|
56
|
+
Add to CLAUDE.md after bootstrap:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
## Next.js conventions
|
|
60
|
+
- Server Components by default — add 'use client' only when needed (event handlers, hooks, browser APIs)
|
|
61
|
+
- Server Actions for mutations — never call API routes from Server Components
|
|
62
|
+
- Never import server-only code in Client Components (use server/ directory boundary)
|
|
63
|
+
- API routes only for: webhooks, OAuth callbacks, streaming responses
|
|
64
|
+
- Prisma client: singleton in lib/db.ts — never instantiate inline
|
|
65
|
+
- All database access in server/ — never in Client Components
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## What to do next
|
|
71
|
+
|
|
72
|
+
After the skeleton runs:
|
|
73
|
+
|
|
74
|
+
1. Set up auth: "Configure [Clerk/NextAuth] with the auth routes we set up"
|
|
75
|
+
2. Add first page: "Create a dashboard page showing [resource] with a data table"
|
|
76
|
+
3. Add first mutation: "Add a server action to create [resource] with form validation"
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
> **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,62 @@
|
|
|
1
|
+
> 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../fastapi-project.md).
|
|
2
|
+
|
|
3
|
+
# Project Starter: FastAPI
|
|
4
|
+
|
|
5
|
+
Gebruik deze prompt om een nieuw FastAPI-project op te starten met Claude Code.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Opstartprompt
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Bootstrap a new FastAPI project with production-ready defaults.
|
|
13
|
+
|
|
14
|
+
Project: [name and one-sentence description]
|
|
15
|
+
Database: PostgreSQL with SQLAlchemy async + Alembic migrations
|
|
16
|
+
Auth: JWT (python-jose) with refresh tokens
|
|
17
|
+
Testing: pytest + httpx async client
|
|
18
|
+
|
|
19
|
+
Create the following structure:
|
|
20
|
+
app/
|
|
21
|
+
├── api/
|
|
22
|
+
│ └── v1/
|
|
23
|
+
│ ├── routes/ ← One file per resource (users.py, items.py, etc.)
|
|
24
|
+
│ └── deps.py ← Shared dependencies (get_db, get_current_user)
|
|
25
|
+
├── core/
|
|
26
|
+
│ ├── config.py ← Settings via pydantic-settings
|
|
27
|
+
│ ├── security.py ← JWT creation and validation
|
|
28
|
+
│ └── database.py ← Async engine and session factory
|
|
29
|
+
├── models/ ← SQLAlchemy ORM models
|
|
30
|
+
├── schemas/ ← Pydantic request/response schemas
|
|
31
|
+
├── services/ ← Business logic (no HTTP, no ORM)
|
|
32
|
+
├── tests/
|
|
33
|
+
│ ├── conftest.py ← Test database, async client, fixtures
|
|
34
|
+
│ └── test_[resource].py
|
|
35
|
+
├── alembic/ ← Migration files
|
|
36
|
+
├── main.py ← App factory
|
|
37
|
+
└── requirements.txt ← Pinned versions
|
|
38
|
+
|
|
39
|
+
Start with:
|
|
40
|
+
1. Show the full directory structure
|
|
41
|
+
2. Create requirements.txt with pinned versions
|
|
42
|
+
3. Create main.py with app factory pattern
|
|
43
|
+
4. Create core/config.py with Settings class
|
|
44
|
+
5. Create core/database.py with async session
|
|
45
|
+
6. Verify it starts with: uvicorn main:app --reload
|
|
46
|
+
|
|
47
|
+
Do not add business logic yet — skeleton only.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Wat hierna te doen
|
|
53
|
+
|
|
54
|
+
Nadat het skelet draait:
|
|
55
|
+
|
|
56
|
+
1. Voeg je eerste resource toe: "Voeg een User-model toe, CRUD-endpoints (GET /users, POST /users, GET /users/{id}) en tests"
|
|
57
|
+
2. Voeg auth toe: "Implementeer JWT-login en refresh token-endpoints met de security.py die we hebben ingesteld"
|
|
58
|
+
3. Voeg de eerste bedrijfsfunctie toe met de feature-development workflow
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
> **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,82 @@
|
|
|
1
|
+
> 🇳🇱 Dit is de Nederlandse vertaling. [Engelse versie](../nextjs-project.md).
|
|
2
|
+
|
|
3
|
+
# Project Starter: Next.js
|
|
4
|
+
|
|
5
|
+
Gebruik deze prompt om een nieuw Next.js-project op te starten met Claude Code.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Opstartprompt
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Bootstrap a new Next.js 15 project with production-ready defaults.
|
|
13
|
+
|
|
14
|
+
Project: [name and one-sentence description]
|
|
15
|
+
Stack: Next.js 15 (App Router), TypeScript, Tailwind CSS, shadcn/ui
|
|
16
|
+
Database: PostgreSQL with Prisma
|
|
17
|
+
Auth: [Clerk / NextAuth.js / custom JWT]
|
|
18
|
+
Testing: Vitest + React Testing Library
|
|
19
|
+
|
|
20
|
+
Create the following structure:
|
|
21
|
+
src/
|
|
22
|
+
├── app/
|
|
23
|
+
│ ├── (auth)/ ← Auth routes (sign-in, sign-up)
|
|
24
|
+
│ ├── (dashboard)/ ← Protected routes
|
|
25
|
+
│ ├── api/ ← API route handlers
|
|
26
|
+
│ ├── layout.tsx ← Root layout
|
|
27
|
+
│ └── page.tsx ← Landing page
|
|
28
|
+
├── components/
|
|
29
|
+
│ ├── ui/ ← shadcn/ui components (auto-generated)
|
|
30
|
+
│ └── [feature]/ ← Feature-specific components
|
|
31
|
+
├── lib/
|
|
32
|
+
│ ├── db.ts ← Prisma client singleton
|
|
33
|
+
│ ├── auth.ts ← Auth utilities
|
|
34
|
+
│ └── utils.ts ← cn() and shared utilities
|
|
35
|
+
├── server/ ← Server-only code (no client imports)
|
|
36
|
+
│ └── actions/ ← Server actions
|
|
37
|
+
└── types/ ← Shared TypeScript types
|
|
38
|
+
|
|
39
|
+
prisma/
|
|
40
|
+
├── schema.prisma
|
|
41
|
+
└── migrations/
|
|
42
|
+
|
|
43
|
+
Start with:
|
|
44
|
+
1. Show the full directory structure
|
|
45
|
+
2. package.json with pinned versions
|
|
46
|
+
3. tsconfig.json and tailwind.config.ts
|
|
47
|
+
4. Root layout.tsx and a working landing page
|
|
48
|
+
5. Prisma schema with a User model
|
|
49
|
+
6. Verify it runs: npm run dev
|
|
50
|
+
|
|
51
|
+
Do not add features yet — skeleton only.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Toe te passen conventies
|
|
57
|
+
|
|
58
|
+
Voeg toe aan CLAUDE.md na bootstrap:
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## Next.js conventies
|
|
62
|
+
- Server Components standaard — voeg 'use client' alleen toe wanneer nodig (event handlers, hooks, browser API's)
|
|
63
|
+
- Server Actions voor mutaties — roep API-routes nooit aan vanuit Server Components
|
|
64
|
+
- Importeer nooit alleen-server-code in Client Components (gebruik server/-directory-grens)
|
|
65
|
+
- API-routes alleen voor: webhooks, OAuth callbacks, streamingantwoorden
|
|
66
|
+
- Prisma client: singleton in lib/db.ts — nooit inline instantiëren
|
|
67
|
+
- Alle databasetoegang in server/ — nooit in Client Components
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Wat hierna te doen
|
|
73
|
+
|
|
74
|
+
Nadat het skelet draait:
|
|
75
|
+
|
|
76
|
+
1. Auth instellen: "Configureer [Clerk/NextAuth] met de auth-routes die we hebben ingesteld"
|
|
77
|
+
2. Eerste pagina toevoegen: "Maak een dashboardpagina die [resource] toont met een datatabella"
|
|
78
|
+
3. Eerste mutatie toevoegen: "Voeg een server action toe om [resource] aan te maken met formuliervalidatie"
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
> **Werk met ons:** Claudient wordt ondersteund door [Uitbreiden](https://uitbreiden.com/) — we bouwen AI-producten en B2B-oplossingen met ontwikkelaarsgemeenschappen. [uitbreiden.com](https://uitbreiden.com/)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# CLAUDE.md Starter — AI Product
|
|
2
|
+
|
|
3
|
+
Drop this into your project's `CLAUDE.md` and fill in the bracketed sections.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# [Project Name] — Claude Code Instructions
|
|
9
|
+
|
|
10
|
+
## What this is
|
|
11
|
+
[One paragraph: what the AI product does, what model it uses, who the users are]
|
|
12
|
+
|
|
13
|
+
## Stack
|
|
14
|
+
- Language: [TypeScript / Python]
|
|
15
|
+
- Framework: [Next.js / FastAPI]
|
|
16
|
+
- AI: [Claude API via Anthropic SDK / OpenAI / Gemini]
|
|
17
|
+
- Model: [claude-sonnet-4-6 / claude-opus-4-7 / claude-haiku-4-5]
|
|
18
|
+
- Database: [PostgreSQL / Supabase]
|
|
19
|
+
- Vector DB: [Pinecone / pgvector / Weaviate] (if applicable)
|
|
20
|
+
- Deployment: [Vercel / AWS / Railway]
|
|
21
|
+
|
|
22
|
+
## Project structure
|
|
23
|
+
src/
|
|
24
|
+
├── app/ ← Next.js app router / FastAPI routes
|
|
25
|
+
├── ai/ ← All AI-related code: prompts, chains, tools
|
|
26
|
+
│ ├── prompts/ ← System prompts and prompt templates
|
|
27
|
+
│ ├── tools/ ← Tool definitions for function calling
|
|
28
|
+
│ └── agents/ ← Agent definitions and orchestration
|
|
29
|
+
├── db/ ← Database queries and migrations
|
|
30
|
+
├── services/ ← Business logic
|
|
31
|
+
└── utils/ ← Pure utilities
|
|
32
|
+
|
|
33
|
+
## AI conventions
|
|
34
|
+
- All system prompts live in src/ai/prompts/ — never inline in route handlers
|
|
35
|
+
- Always pin the model version — never use "latest" alias
|
|
36
|
+
- Always enable prompt caching on system prompts (cache_control: ephemeral)
|
|
37
|
+
- Log token usage per request for cost tracking
|
|
38
|
+
- Streaming responses: use SSE for responses > 1000 tokens
|
|
39
|
+
- Never pass user PII to the model unless the feature explicitly requires it
|
|
40
|
+
- Tool definitions live in src/ai/tools/ — one file per tool
|
|
41
|
+
|
|
42
|
+
## Prompt caching setup
|
|
43
|
+
- System prompts must use cache_control to enable caching
|
|
44
|
+
- Cache read = $0.30/MTok vs uncached = $3/MTok — always cache
|
|
45
|
+
- Invalidate cache when system prompt changes (automatic on content change)
|
|
46
|
+
|
|
47
|
+
## Cost controls
|
|
48
|
+
- Default model: [claude-haiku-4-5] for simple tasks, [claude-sonnet-4-6] for complex
|
|
49
|
+
- Max tokens: set explicit max_tokens on every request — never unlimited
|
|
50
|
+
- Rate limit: [X] requests per user per minute
|
|
51
|
+
- Budget alert: log when a single session exceeds $[X]
|
|
52
|
+
|
|
53
|
+
## Decisions (do not re-discuss)
|
|
54
|
+
- [Model selection rationale]
|
|
55
|
+
- [Why streaming vs. non-streaming]
|
|
56
|
+
- [Context window strategy: summarize at N tokens]
|
|
57
|
+
- [Tool calling vs. direct generation for structured output]
|
|
58
|
+
|
|
59
|
+
## Testing
|
|
60
|
+
- Unit tests for prompt construction and output parsing
|
|
61
|
+
- Integration tests with recorded API responses (VCR / fixtures)
|
|
62
|
+
- Never make real API calls in tests — costs money and is slow
|
|
63
|
+
- Test adversarial inputs: prompt injection, jailbreak attempts, edge cases
|
|
64
|
+
|
|
65
|
+
## Commands
|
|
66
|
+
- [dev command]
|
|
67
|
+
- [test command]
|
|
68
|
+
- [deploy command]
|
|
69
|
+
|
|
70
|
+
## Never do
|
|
71
|
+
- Never inline system prompts in route handlers
|
|
72
|
+
- Never make unbounded AI calls without max_tokens
|
|
73
|
+
- Never log full AI responses in production (may contain user PII)
|
|
74
|
+
- Never hardcode API keys — use environment variables
|
|
75
|
+
- Never call the AI model directly from UI components
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
> **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,76 @@
|
|
|
1
|
+
# CLAUDE.md Starter — Data Pipeline Project
|
|
2
|
+
|
|
3
|
+
Drop this into your project's `CLAUDE.md` and fill in the bracketed sections.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# [Project Name] — Claude Code Instructions
|
|
9
|
+
|
|
10
|
+
## What this is
|
|
11
|
+
[One paragraph: what data this pipeline processes, source systems, destination, business purpose]
|
|
12
|
+
|
|
13
|
+
## Stack
|
|
14
|
+
- Orchestrator: [Airflow / Prefect / Dagster / dbt Cloud]
|
|
15
|
+
- Transformation: [dbt / PySpark / Pandas / Polars]
|
|
16
|
+
- Warehouse: [BigQuery / Snowflake / Redshift / DuckDB]
|
|
17
|
+
- Ingestion: [Fivetran / Airbyte / custom]
|
|
18
|
+
- Language: [Python / SQL]
|
|
19
|
+
- Infra: [Terraform on AWS / GCP / Azure]
|
|
20
|
+
|
|
21
|
+
## Project structure
|
|
22
|
+
dbt/ (if using dbt)
|
|
23
|
+
├── models/
|
|
24
|
+
│ ├── staging/ ← 1:1 with source tables, light cleaning only
|
|
25
|
+
│ ├── intermediate/ ← Business logic, joins
|
|
26
|
+
│ └── marts/ ← Final business entities (fct_, dim_ prefixes)
|
|
27
|
+
├── macros/ ← Reusable SQL macros
|
|
28
|
+
├── seeds/ ← Static reference data
|
|
29
|
+
└── tests/ ← Custom singular tests
|
|
30
|
+
|
|
31
|
+
pipelines/ (if using Airflow/Prefect/Dagster)
|
|
32
|
+
├── dags/ / flows/ ← Pipeline definitions
|
|
33
|
+
├── operators/ ← Custom operators/tasks
|
|
34
|
+
└── utils/ ← Shared utilities
|
|
35
|
+
|
|
36
|
+
## Data conventions
|
|
37
|
+
- Staging models: rename to snake_case, cast types, no joins, no business logic
|
|
38
|
+
- Fact tables: fct_ prefix, one row per event/transaction
|
|
39
|
+
- Dimension tables: dim_ prefix, one row per entity
|
|
40
|
+
- Never use SELECT * in production queries
|
|
41
|
+
- All mart models must have unique + not_null tests on primary key
|
|
42
|
+
- Source freshness checks required on all sources
|
|
43
|
+
|
|
44
|
+
## Decisions (do not re-discuss)
|
|
45
|
+
- [Incremental vs full-refresh strategy for fact tables]
|
|
46
|
+
- [Timezone: all timestamps in UTC]
|
|
47
|
+
- [Grain: what one row in each mart table represents]
|
|
48
|
+
- [Late-arriving data handling strategy]
|
|
49
|
+
|
|
50
|
+
## Testing requirements
|
|
51
|
+
- Every staging model: not_null on primary key
|
|
52
|
+
- Every mart model: unique + not_null on primary key, relationships on foreign keys
|
|
53
|
+
- Source freshness: warn at [X] hours, error at [Y] hours
|
|
54
|
+
|
|
55
|
+
## Performance rules
|
|
56
|
+
- Partition large tables by date — always filter on partition column
|
|
57
|
+
- Use incremental models for tables > [X] rows
|
|
58
|
+
- Never run full refreshes in production without approval
|
|
59
|
+
- Cluster/sort keys: [specify if using Snowflake/Redshift]
|
|
60
|
+
|
|
61
|
+
## Commands
|
|
62
|
+
- dbt run --select staging — run staging layer
|
|
63
|
+
- dbt test — run all tests
|
|
64
|
+
- dbt docs generate && dbt docs serve — preview documentation
|
|
65
|
+
- dbt source freshness — check source data freshness
|
|
66
|
+
|
|
67
|
+
## Never do
|
|
68
|
+
- Never put business logic in staging models
|
|
69
|
+
- Never hardcode dates — use dbt variables or macros
|
|
70
|
+
- Never commit real credentials — use environment variables or secrets manager
|
|
71
|
+
- Never run dbt run in production without dbt test passing first
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
> **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,82 @@
|
|
|
1
|
+
> 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../ai-product.md).
|
|
2
|
+
|
|
3
|
+
# CLAUDE.md Starter — KI-Produkt
|
|
4
|
+
|
|
5
|
+
Dies in die `CLAUDE.md` des Projekts einfügen und die Abschnitte in eckigen Klammern ausfüllen.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# [Projektname] — Claude Code Anweisungen
|
|
11
|
+
|
|
12
|
+
## Was das ist
|
|
13
|
+
[Ein Absatz: was das KI-Produkt tut, welches Modell es verwendet, wer die Benutzer sind]
|
|
14
|
+
|
|
15
|
+
## Stack
|
|
16
|
+
- Sprache: [TypeScript / Python]
|
|
17
|
+
- Framework: [Next.js / FastAPI]
|
|
18
|
+
- KI: [Claude API via Anthropic SDK / OpenAI / Gemini]
|
|
19
|
+
- Modell: [claude-sonnet-4-6 / claude-opus-4-7 / claude-haiku-4-5]
|
|
20
|
+
- Datenbank: [PostgreSQL / Supabase]
|
|
21
|
+
- Vektor-DB: [Pinecone / pgvector / Weaviate] (falls zutreffend)
|
|
22
|
+
- Deployment: [Vercel / AWS / Railway]
|
|
23
|
+
|
|
24
|
+
## Projektstruktur
|
|
25
|
+
src/
|
|
26
|
+
├── app/ ← Next.js App Router / FastAPI Routes
|
|
27
|
+
├── ai/ ← Gesamter KI-bezogener Code: Prompts, Chains, Tools
|
|
28
|
+
│ ├── prompts/ ← System-Prompts und Prompt-Templates
|
|
29
|
+
│ ├── tools/ ← Tool-Definitionen für Function Calling
|
|
30
|
+
│ └── agents/ ← Agentendefinitionen und Orchestrierung
|
|
31
|
+
├── db/ ← Datenbankabfragen und Migrationen
|
|
32
|
+
├── services/ ← Business-Logik
|
|
33
|
+
└── utils/ ← Reine Utilities
|
|
34
|
+
|
|
35
|
+
## KI-Konventionen
|
|
36
|
+
- Alle System-Prompts befinden sich in src/ai/prompts/ — niemals inline in Route-Handlern
|
|
37
|
+
- Immer die Modellversion pinnen — niemals "latest"-Alias verwenden
|
|
38
|
+
- Prompt Caching auf System-Prompts immer aktivieren (cache_control: ephemeral)
|
|
39
|
+
- Token-Nutzung pro Anfrage für Kostenverfolgung protokollieren
|
|
40
|
+
- Streaming-Antworten: SSE für Antworten > 1000 Tokens verwenden
|
|
41
|
+
- Niemals Benutzer-PII an das Modell übergeben, außer das Feature erfordert es explizit
|
|
42
|
+
- Tool-Definitionen befinden sich in src/ai/tools/ — eine Datei pro Tool
|
|
43
|
+
|
|
44
|
+
## Prompt Caching Setup
|
|
45
|
+
- System-Prompts müssen cache_control verwenden, um Caching zu aktivieren
|
|
46
|
+
- Cache-Lesen = $0.30/MTok vs. ungespeichert = $3/MTok — immer cachen
|
|
47
|
+
- Cache ungültig machen, wenn sich der System-Prompt ändert (automatisch bei Inhaltsänderung)
|
|
48
|
+
|
|
49
|
+
## Kostenkontrolle
|
|
50
|
+
- Standardmodell: [claude-haiku-4-5] für einfache Aufgaben, [claude-sonnet-4-6] für komplexe
|
|
51
|
+
- Max Tokens: explizites max_tokens bei jeder Anfrage setzen — niemals unbegrenzt
|
|
52
|
+
- Rate Limit: [X] Anfragen pro Benutzer pro Minute
|
|
53
|
+
- Budget-Alert: protokollieren, wenn eine einzelne Sitzung $[X] überschreitet
|
|
54
|
+
|
|
55
|
+
## Entscheidungen (nicht neu diskutieren)
|
|
56
|
+
- [Modellauswahl-Begründung]
|
|
57
|
+
- [Warum Streaming vs. Nicht-Streaming]
|
|
58
|
+
- [Kontextfenster-Strategie: Zusammenfassen bei N Tokens]
|
|
59
|
+
- [Tool Calling vs. direkte Generierung für strukturierte Ausgabe]
|
|
60
|
+
|
|
61
|
+
## Tests
|
|
62
|
+
- Unit-Tests für Prompt-Konstruktion und Ausgabe-Parsing
|
|
63
|
+
- Integrationstests mit aufgezeichneten API-Antworten (VCR / Fixtures)
|
|
64
|
+
- Niemals echte API-Aufrufe in Tests machen — kostet Geld und ist langsam
|
|
65
|
+
- Gegnerische Eingaben testen: Prompt Injection, Jailbreak-Versuche, Edge Cases
|
|
66
|
+
|
|
67
|
+
## Befehle
|
|
68
|
+
- [Dev-Befehl]
|
|
69
|
+
- [Test-Befehl]
|
|
70
|
+
- [Deploy-Befehl]
|
|
71
|
+
|
|
72
|
+
## Niemals tun
|
|
73
|
+
- Niemals System-Prompts inline in Route-Handlern
|
|
74
|
+
- Niemals ungebundene KI-Aufrufe ohne max_tokens
|
|
75
|
+
- Niemals vollständige KI-Antworten in der Produktion protokollieren (kann Benutzer-PII enthalten)
|
|
76
|
+
- Niemals API-Keys hardcoden — Umgebungsvariablen verwenden
|
|
77
|
+
- Niemals das KI-Modell direkt aus UI-Komponenten aufrufen
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
> **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,78 @@
|
|
|
1
|
+
> 🇩🇪 Dies ist die deutsche Übersetzung. [Englische Version](../data-pipeline.md).
|
|
2
|
+
|
|
3
|
+
# CLAUDE.md Starter — Data Pipeline Projekt
|
|
4
|
+
|
|
5
|
+
Dies in die `CLAUDE.md` des Projekts einfügen und die Abschnitte in eckigen Klammern ausfüllen.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# [Projektname] — Claude Code Anweisungen
|
|
11
|
+
|
|
12
|
+
## Was das ist
|
|
13
|
+
[Ein Absatz: welche Daten diese Pipeline verarbeitet, Quellsysteme, Ziel, geschäftlicher Zweck]
|
|
14
|
+
|
|
15
|
+
## Stack
|
|
16
|
+
- Orchestrator: [Airflow / Prefect / Dagster / dbt Cloud]
|
|
17
|
+
- Transformation: [dbt / PySpark / Pandas / Polars]
|
|
18
|
+
- Warehouse: [BigQuery / Snowflake / Redshift / DuckDB]
|
|
19
|
+
- Ingestion: [Fivetran / Airbyte / custom]
|
|
20
|
+
- Sprache: [Python / SQL]
|
|
21
|
+
- Infra: [Terraform auf AWS / GCP / Azure]
|
|
22
|
+
|
|
23
|
+
## Projektstruktur
|
|
24
|
+
dbt/ (falls dbt verwendet wird)
|
|
25
|
+
├── models/
|
|
26
|
+
│ ├── staging/ ← 1:1 mit Quelltabellen, nur leichte Bereinigung
|
|
27
|
+
│ ├── intermediate/ ← Business-Logik, Joins
|
|
28
|
+
│ └── marts/ ← Finale Business-Entitäten (fct_, dim_-Präfixe)
|
|
29
|
+
├── macros/ ← Wiederverwendbare SQL-Makros
|
|
30
|
+
├── seeds/ ← Statische Referenzdaten
|
|
31
|
+
└── tests/ ← Benutzerdefinierte singuläre Tests
|
|
32
|
+
|
|
33
|
+
pipelines/ (falls Airflow/Prefect/Dagster verwendet wird)
|
|
34
|
+
├── dags/ / flows/ ← Pipeline-Definitionen
|
|
35
|
+
├── operators/ ← Benutzerdefinierte Operatoren/Tasks
|
|
36
|
+
└── utils/ ← Gemeinsame Utilities
|
|
37
|
+
|
|
38
|
+
## Datenkonventionen
|
|
39
|
+
- Staging-Modelle: in snake_case umbenennen, Typen casten, keine Joins, keine Business-Logik
|
|
40
|
+
- Faktentabellen: fct_-Präfix, eine Zeile pro Ereignis/Transaktion
|
|
41
|
+
- Dimensionstabellen: dim_-Präfix, eine Zeile pro Entität
|
|
42
|
+
- Niemals SELECT * in Produktionsabfragen verwenden
|
|
43
|
+
- Alle Mart-Modelle müssen unique + not_null-Tests auf dem Primärschlüssel haben
|
|
44
|
+
- Frische-Prüfungen für alle Sources erforderlich
|
|
45
|
+
|
|
46
|
+
## Entscheidungen (nicht neu diskutieren)
|
|
47
|
+
- [Incremental vs. Full-Refresh-Strategie für Faktentabellen]
|
|
48
|
+
- [Zeitzone: alle Timestamps in UTC]
|
|
49
|
+
- [Granularität: was eine Zeile in jeder Mart-Tabelle repräsentiert]
|
|
50
|
+
- [Strategie zur Behandlung verspäteter Daten]
|
|
51
|
+
|
|
52
|
+
## Testanforderungen
|
|
53
|
+
- Jedes Staging-Modell: not_null auf Primärschlüssel
|
|
54
|
+
- Jedes Mart-Modell: unique + not_null auf Primärschlüssel, Beziehungen auf Fremdschlüssel
|
|
55
|
+
- Source-Frische: Warnung nach [X] Stunden, Fehler nach [Y] Stunden
|
|
56
|
+
|
|
57
|
+
## Performance-Regeln
|
|
58
|
+
- Große Tabellen nach Datum partitionieren — immer nach Partitionsspalte filtern
|
|
59
|
+
- Inkrementelle Modelle für Tabellen > [X] Zeilen verwenden
|
|
60
|
+
- Niemals vollständige Refreshes in der Produktion ohne Genehmigung ausführen
|
|
61
|
+
- Cluster/Sort-Keys: [angeben, wenn Snowflake/Redshift verwendet wird]
|
|
62
|
+
|
|
63
|
+
## Befehle
|
|
64
|
+
- dbt run --select staging — Staging-Layer ausführen
|
|
65
|
+
- dbt test — alle Tests ausführen
|
|
66
|
+
- dbt docs generate && dbt docs serve — Dokumentation vorschauen
|
|
67
|
+
- dbt source freshness — Frische der Quelldaten prüfen
|
|
68
|
+
|
|
69
|
+
## Niemals tun
|
|
70
|
+
- Niemals Business-Logik in Staging-Modellen
|
|
71
|
+
- Niemals Daten hardcoden — dbt-Variablen oder Makros verwenden
|
|
72
|
+
- Niemals echte Anmeldedaten committen — Umgebungsvariablen oder Secrets Manager verwenden
|
|
73
|
+
- Niemals dbt run in der Produktion ohne bestandenes dbt test ausführen
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
> **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/)
|