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,174 @@
|
|
|
1
|
+
# Guide d'orchestration des agents
|
|
2
|
+
|
|
3
|
+
Comment déléguer, paralléliser et spécialiser le travail avec le système de sous-agents de Claude Code.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Ce que sont les sous-agents
|
|
8
|
+
|
|
9
|
+
Un sous-agent est une instance Claude séparée lancée par la session parente pour gérer une tâche spécifique et délimitée. Il obtient :
|
|
10
|
+
- Une fenêtre de contexte fraîche (pas d'historique de session)
|
|
11
|
+
- Un sous-ensemble d'outils spécifique (si configuré)
|
|
12
|
+
- Une sélection de modèle (peut différer du parent)
|
|
13
|
+
- Un prompt que vous écrivez explicitement
|
|
14
|
+
|
|
15
|
+
Les sous-agents ne sont pas magiques — ce sont des outils spécifiques pour des problèmes spécifiques.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Quand utiliser un sous-agent
|
|
20
|
+
|
|
21
|
+
Utilisez un sous-agent quand la tâche a des **entrées claires** et des **sorties claires** et est **indépendante de l'état de session actuel**.
|
|
22
|
+
|
|
23
|
+
**Bons candidats :**
|
|
24
|
+
- Réviser 10 fichiers pour des problèmes de sécurité
|
|
25
|
+
- Effectuer une recherche spécifique dans le code pour localiser un pattern
|
|
26
|
+
- Générer du code standard pour un nouveau module selon une spécification
|
|
27
|
+
- Analyser un fichier journal et retourner un résumé
|
|
28
|
+
|
|
29
|
+
**Mauvais candidats :**
|
|
30
|
+
- Tâches nécessitant le contexte complet de la session
|
|
31
|
+
- Tâches nécessitant des échanges — les sous-agents sont en une seule passe
|
|
32
|
+
- Tâches où le coût de lancement dépasse le travail lui-même
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 1. Pattern de délégation
|
|
37
|
+
|
|
38
|
+
La session parente identifie une tâche délimitée et la confie au sous-agent.
|
|
39
|
+
|
|
40
|
+
**Règle clé :** Le prompt du sous-agent doit être autonome. Il n'a pas accès à ce que la session parente a fait. Briefez-le comme un collègue qui vient d'entrer dans la pièce.
|
|
41
|
+
|
|
42
|
+
**Ce qu'il faut inclure dans le prompt du sous-agent :**
|
|
43
|
+
- Ce que vous essayez d'accomplir et pourquoi
|
|
44
|
+
- Les fichiers ou répertoires spécifiques à examiner
|
|
45
|
+
- Le format de résultat souhaité
|
|
46
|
+
- Les contraintes ou décisions déjà prises
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 2. Pattern de parallélisation
|
|
51
|
+
|
|
52
|
+
Plusieurs sous-agents s'exécutant simultanément sur des tâches indépendantes.
|
|
53
|
+
|
|
54
|
+
**Quand paralléliser :**
|
|
55
|
+
- La même opération doit être appliquée à de nombreux fichiers/modules
|
|
56
|
+
- Deux tâches genuinement indépendantes doivent toutes deux être complétées
|
|
57
|
+
- Des tâches de recherche couvrant différentes zones simultanément
|
|
58
|
+
|
|
59
|
+
**Utiliser git worktrees pour des modifications de code parallèles :**
|
|
60
|
+
```bash
|
|
61
|
+
git worktree add ../feature-branch-a feature-a
|
|
62
|
+
git worktree add ../feature-branch-b feature-b
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Anti-patterns de parallélisation :**
|
|
66
|
+
- Paralléliser des tâches qui partagent l'état (conflit d'écriture)
|
|
67
|
+
- Tâches parallèles où l'une dépend de la sortie de l'autre
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 3. Pattern de spécialisation (cavecrew)
|
|
72
|
+
|
|
73
|
+
Adaptez le modèle et les outils du sous-agent à la nature de la tâche. Inspiré du pattern **cavecrew** (source : [JuliusBrussee/caveman](https://github.com/JuliusBrussee/caveman)) — économise ~60% de tokens par rapport à l'utilisation d'Opus pour chaque sous-agent.
|
|
74
|
+
|
|
75
|
+
| Rôle | Modèle | Outils | Utiliser quand |
|
|
76
|
+
|---|---|---|---|
|
|
77
|
+
| Investigateur | Haiku 4.5 | Read, Bash (grep/find seulement) | Localiser des choses dans le code — lecture seule, rapide |
|
|
78
|
+
| Constructeur | Sonnet 4.6 | Read, Edit, Write, Bash | Modifications chirurgicales 1–2 fichiers |
|
|
79
|
+
| Réviseur | Haiku 4.5 | Read | Réviser un diff ou un ensemble de fichiers |
|
|
80
|
+
| Orchestrateur | Opus 4.7 | Tous | Coordination multi-étapes complexe, décisions d'architecture |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 4. Pattern de transfert de contexte
|
|
85
|
+
|
|
86
|
+
Quand une session a accumulé un contexte significatif et que vous devez transférer le travail à un nouvel agent.
|
|
87
|
+
|
|
88
|
+
**Structure du prompt de transfert :**
|
|
89
|
+
```
|
|
90
|
+
## Context
|
|
91
|
+
[Ce que fait ce projet, brièvement]
|
|
92
|
+
[Sur quoi nous travaillions]
|
|
93
|
+
[Décisions prises pendant cette session]
|
|
94
|
+
|
|
95
|
+
## Files modified
|
|
96
|
+
[Liste avec la raison de chaque modification]
|
|
97
|
+
|
|
98
|
+
## Current state
|
|
99
|
+
[Ce qui est fait, pas fait, ce qui bloque]
|
|
100
|
+
|
|
101
|
+
## Your task
|
|
102
|
+
[Tâche spécifique et délimitée pour le nouvel agent]
|
|
103
|
+
|
|
104
|
+
## Constraints
|
|
105
|
+
[Décisions prises qui ne doivent pas être remises en question]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 5. Dépendances fortes vs faibles
|
|
111
|
+
|
|
112
|
+
**Dépendance forte :** La tâche échoue explicitement sans la configuration en amont.
|
|
113
|
+
- Signalez cela explicitement : "Cette compétence nécessite une configuration — exécutez `/setup` d'abord."
|
|
114
|
+
|
|
115
|
+
**Dépendance faible :** La tâche fonctionne mais produit une sortie de moindre qualité sans la configuration.
|
|
116
|
+
- Ne bloquez pas. Dégradez gracieusement et notez l'écart.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 6. Contrôle de portée pour les sous-agents
|
|
121
|
+
|
|
122
|
+
Chaque sous-agent doit avoir une limite de portée explicite.
|
|
123
|
+
|
|
124
|
+
**À inclure dans chaque prompt de sous-agent :**
|
|
125
|
+
```
|
|
126
|
+
## Scope
|
|
127
|
+
- Read: yes
|
|
128
|
+
- Write/Edit: [fichiers spécifiques seulement OU non]
|
|
129
|
+
- Shell commands: [commandes spécifiques autorisées OU aucune]
|
|
130
|
+
- Network: [oui/non]
|
|
131
|
+
|
|
132
|
+
## Do not
|
|
133
|
+
- Do not modify files outside [directory]
|
|
134
|
+
- Do not make git commits
|
|
135
|
+
- Do not install packages
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 7. Retourner les résultats des sous-agents
|
|
141
|
+
|
|
142
|
+
**Préférez les fichiers pour :**
|
|
143
|
+
- Listes de résultats sur lesquelles le parent va itérer
|
|
144
|
+
- Code généré que le parent va réviser
|
|
145
|
+
- Rapports référencés plusieurs fois
|
|
146
|
+
|
|
147
|
+
**Préférez les messages de retour pour :**
|
|
148
|
+
- Réponses oui/non simples
|
|
149
|
+
- Données structurées courtes
|
|
150
|
+
- Rapports de statut
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Référence rapide
|
|
155
|
+
|
|
156
|
+
| Objectif | Pattern |
|
|
157
|
+
|---|---|
|
|
158
|
+
| Tâche délimitée et autonome | Délégation |
|
|
159
|
+
| Même tâche sur plusieurs fichiers | Parallélisation |
|
|
160
|
+
| Recherche/localisation lecture seule | Investigateur (Haiku) |
|
|
161
|
+
| Modification de code chirurgicale | Constructeur (Sonnet) |
|
|
162
|
+
| Révision de diff/fichier | Réviseur (Haiku) |
|
|
163
|
+
| Coordination multi-étapes complexe | Orchestrateur (Opus) |
|
|
164
|
+
| Transfert de session | Pattern de transfert de contexte |
|
|
165
|
+
| Grande sortie de sous-agent | Écrire dans un fichier, le parent le lit |
|
|
166
|
+
| Résultat structuré court | Message de retour |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Travaillez avec nous
|
|
171
|
+
|
|
172
|
+
Claudient est soutenu par [Uitbreiden](https://uitbreiden.com/) — nous construisons des produits IA avec des communautés de développeurs et livrons des solutions IA B2B. Si vous concevez des systèmes multi-agents, des workflows autonomes ou une orchestration Claude Code de qualité production — nous l'avons construit en production et pouvons vous aider.
|
|
173
|
+
|
|
174
|
+
**[uitbreiden.com](https://uitbreiden.com/)**
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Premiers pas avec Claudient
|
|
2
|
+
|
|
3
|
+
Ce guide vous amène de zéro à un environnement Claude Code fonctionnel avec votre première compétence, votre premier agent et votre premier hook — en moins de 10 minutes.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prérequis
|
|
8
|
+
|
|
9
|
+
- [Claude Code](https://claude.ai/code) installé et authentifié
|
|
10
|
+
- Un répertoire de projet sur lequel vous travaillez activement
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Étape 1 — Cloner Claudient
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
git clone https://github.com/Claudient/Claudient.git ~/Claudient
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Vous disposez maintenant de la bibliothèque complète en local. Rien ne s'exécute automatiquement — vous choisissez ce dont vous avez besoin.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Étape 2 — Configurer le répertoire `.claude/` de votre projet
|
|
25
|
+
|
|
26
|
+
Claude Code recherche la configuration dans `.claude/` à la racine de votre projet.
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
mkdir -p your-project/.claude/skills
|
|
30
|
+
mkdir -p your-project/.claude/hooks
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
La structure de votre projet devrait ressembler à ceci :
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
your-project/
|
|
37
|
+
├── .claude/
|
|
38
|
+
│ ├── skills/ ← les compétences vont ici (standard actuel)
|
|
39
|
+
│ ├── hooks/ ← les scripts de hooks vont ici
|
|
40
|
+
│ └── settings.json ← la configuration des hooks va ici
|
|
41
|
+
├── CLAUDE.md ← les règles vont ici
|
|
42
|
+
└── src/
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Étape 3 — Ajouter votre première compétence
|
|
48
|
+
|
|
49
|
+
Les compétences sont des commandes slash. Copiez n'importe quel fichier `.md` depuis `skills/` dans `.claude/skills/` :
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Exemple : ajouter la compétence FastAPI
|
|
53
|
+
cp ~/Claudient/skills/backend/python/fastapi.md your-project/.claude/skills/
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Ouvrez maintenant Claude Code dans votre projet et tapez `/fastapi` — la compétence s'active.
|
|
57
|
+
|
|
58
|
+
> **Note :** `.claude/commands/` fonctionne toujours (chemin hérité) mais `.claude/skills/` est le standard actuel. Quand les deux existent, les compétences ont la priorité.
|
|
59
|
+
|
|
60
|
+
**Comment choisir une compétence :**
|
|
61
|
+
- Parcourez `skills/` par catégorie
|
|
62
|
+
- Lisez la section "When to activate" en haut de chaque fichier
|
|
63
|
+
- Si elle correspond à votre tâche actuelle, copiez-la
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Étape 4 — Ajouter une règle
|
|
68
|
+
|
|
69
|
+
Les règles se trouvent dans `CLAUDE.md` à la racine de votre projet. Claude lit ce fichier au début de chaque session.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Copier un ensemble de règles communes dans le CLAUDE.md de votre projet
|
|
73
|
+
cat ~/Claudient/rules/common/coding-style.md >> your-project/CLAUDE.md
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Ou ouvrez `rules/common/` et copiez manuellement les sections pertinentes pour votre projet.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Étape 5 — Ajouter votre premier hook
|
|
81
|
+
|
|
82
|
+
Les hooks s'exécutent automatiquement sur les événements Claude Code. Ils résident dans `.claude/settings.json`.
|
|
83
|
+
|
|
84
|
+
Créez ou ouvrez `.claude/settings.json` dans votre projet :
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"hooks": {}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Copiez un hook depuis `hooks/` — chaque fichier hook contient le JSON exact à coller. Par exemple, le hook de suivi des coûts :
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"hooks": {
|
|
97
|
+
"PostToolUse": [
|
|
98
|
+
{
|
|
99
|
+
"matcher": "",
|
|
100
|
+
"hooks": [
|
|
101
|
+
{
|
|
102
|
+
"type": "command",
|
|
103
|
+
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/cost-tracker.sh"
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Puis copiez le script correspondant :
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
cp ~/Claudient/hooks/lifecycle/cost-tracker.sh your-project/.claude/hooks/
|
|
116
|
+
chmod +x your-project/.claude/hooks/cost-tracker.sh
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Étape 6 — (Optionnel) Ajouter un agent
|
|
122
|
+
|
|
123
|
+
Les agents sont des définitions de sous-agents que vous référencez dans vos sessions Claude. Ils ne nécessitent pas de copie de fichier — vous les appelez par `subagent_type` dans un appel à l'outil Agent.
|
|
124
|
+
|
|
125
|
+
Parcourez `agents/` pour comprendre ce qui est disponible. Quand vous souhaitez que Claude délègue une tâche à un spécialiste (par exemple, un réviseur de sécurité, un spécialiste base de données), référencez la définition de l'agent pour comprendre ce qu'il attend et ce qu'il retourne.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Que faire ensuite
|
|
130
|
+
|
|
131
|
+
| Objectif | Où chercher |
|
|
132
|
+
|---|---|
|
|
133
|
+
| Écrire votre propre compétence | [guides/skill-authoring.md](skill-authoring.md) |
|
|
134
|
+
| Réduire les coûts en tokens | [guides/token-optimization.md](token-optimization.md) |
|
|
135
|
+
| Comprendre la mémoire et l'état de session | [guides/memory-management.md](memory-management.md) |
|
|
136
|
+
| Sécuriser votre configuration Claude Code | [guides/security.md](security.md) |
|
|
137
|
+
| Construire des workflows automatisés multi-étapes | [guides/agent-orchestration.md](agent-orchestration.md) |
|
|
138
|
+
| Automatiser la qualité avec les hooks | [guides/hooks-cookbook.md](hooks-cookbook.md) |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Dépannage
|
|
143
|
+
|
|
144
|
+
**La compétence n'apparaît pas comme commande slash**
|
|
145
|
+
— Vérifiez que le fichier est dans `.claude/skills/` (ou `.claude/commands/` pour l'ancien chemin)
|
|
146
|
+
— Vérifiez que l'extension du fichier est `.md`
|
|
147
|
+
— Redémarrez Claude Code
|
|
148
|
+
|
|
149
|
+
**Le hook ne se déclenche pas**
|
|
150
|
+
— Vérifiez que le nom de l'événement correspond exactement : `PreToolUse`, `PostToolUse`, `PreCompact`, `Notification`
|
|
151
|
+
— Vérifiez que le chemin du script est relatif à la racine du projet
|
|
152
|
+
— Vérifiez que le script est exécutable (`chmod +x`)
|
|
153
|
+
|
|
154
|
+
**CLAUDE.md n'est pas lu**
|
|
155
|
+
— Il doit se trouver à la racine du projet (au même niveau que `src/`, `package.json`, etc.)
|
|
156
|
+
— Redémarrez la session Claude Code après l'avoir modifié
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Travaillez avec nous
|
|
161
|
+
|
|
162
|
+
Claudient est soutenu par [Uitbreiden](https://uitbreiden.com/) — nous construisons des produits IA avec des communautés de développeurs et livrons des solutions IA B2B. Si vous construisez quelque chose de sérieux avec Claude Code et souhaitez une aide experte, un partenaire technique, ou simplement faire partie de la communauté — venez nous trouver.
|
|
163
|
+
|
|
164
|
+
**[uitbreiden.com](https://uitbreiden.com/)**
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Livre de recettes des hooks
|
|
2
|
+
|
|
3
|
+
Patterns de hooks réels et prêts à l'emploi pour automatiser la qualité, la sécurité et l'observabilité dans Claude Code.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Fondamentaux des hooks
|
|
8
|
+
|
|
9
|
+
Les hooks sont des scripts shell ou des commandes que Claude Code exécute automatiquement en réponse à des événements. Ils s'exécutent en dehors du contexte de Claude — ce sont de vrais processus shell, pas des instructions Claude.
|
|
10
|
+
|
|
11
|
+
**Événements de hook :**
|
|
12
|
+
| Événement | Quand il se déclenche |
|
|
13
|
+
|---|---|
|
|
14
|
+
| `SessionStart` | Quand une session Claude Code commence |
|
|
15
|
+
| `PreToolUse` | Avant l'exécution de tout appel d'outil |
|
|
16
|
+
| `PostToolUse` | Après la fin d'un appel d'outil |
|
|
17
|
+
| `PreCompact` | Avant le déclenchement de la compaction de contexte |
|
|
18
|
+
| `PostCompact` | Après la compaction de contexte |
|
|
19
|
+
| `Stop` | Quand Claude finit de répondre |
|
|
20
|
+
| `Notification` | Quand Claude envoie une notification bureau |
|
|
21
|
+
|
|
22
|
+
**Structure de base d'un hook :**
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"hooks": {
|
|
26
|
+
"EventName": [
|
|
27
|
+
{
|
|
28
|
+
"matcher": "ToolName",
|
|
29
|
+
"hooks": [
|
|
30
|
+
{
|
|
31
|
+
"type": "command",
|
|
32
|
+
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/votre-script.sh",
|
|
33
|
+
"timeout": 30
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Codes de sortie :** `0` = autoriser, `1` = avertir (Claude voit la sortie mais continue), `2` = bloquer (l'appel d'outil est annulé).
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Recette 1 — Auto-formatage Prettier à l'écriture
|
|
47
|
+
|
|
48
|
+
Formate automatiquement les fichiers après que Claude les écrit ou les modifie.
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"hooks": {
|
|
53
|
+
"PostToolUse": [
|
|
54
|
+
{
|
|
55
|
+
"matcher": "Write|Edit",
|
|
56
|
+
"hooks": [
|
|
57
|
+
{
|
|
58
|
+
"type": "command",
|
|
59
|
+
"command": "npx prettier --write ${tool_input.file_path}",
|
|
60
|
+
"async": true
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Recette 2 — Bloquer les commandes shell dangereuses
|
|
72
|
+
|
|
73
|
+
**.claude/hooks/block-dangerous.sh :**
|
|
74
|
+
```bash
|
|
75
|
+
#!/usr/bin/env bash
|
|
76
|
+
INPUT=$(cat)
|
|
77
|
+
COMMAND=$(echo "$INPUT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('command',''))")
|
|
78
|
+
|
|
79
|
+
BLOCKED_PATTERNS=("rm -rf" "sudo " "| bash" "| sh" "git push --force" "git reset --hard")
|
|
80
|
+
|
|
81
|
+
for pattern in "${BLOCKED_PATTERNS[@]}"; do
|
|
82
|
+
if echo "$COMMAND" | grep -qi "$pattern"; then
|
|
83
|
+
echo "BLOQUÉ : la commande correspond au pattern dangereux '$pattern'" >&2
|
|
84
|
+
exit 2
|
|
85
|
+
fi
|
|
86
|
+
done
|
|
87
|
+
|
|
88
|
+
exit 0
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"hooks": {
|
|
94
|
+
"PreToolUse": [
|
|
95
|
+
{
|
|
96
|
+
"matcher": "Bash",
|
|
97
|
+
"hooks": [{ "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-dangerous.sh", "timeout": 5 }]
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Recette 3 — Journal d'audit pour chaque appel d'outil
|
|
107
|
+
|
|
108
|
+
**.claude/hooks/audit-log.sh :**
|
|
109
|
+
```bash
|
|
110
|
+
#!/usr/bin/env bash
|
|
111
|
+
INPUT=$(cat)
|
|
112
|
+
TOOL_NAME=$(echo "$INPUT" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('tool_name','unknown'))" 2>/dev/null)
|
|
113
|
+
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
114
|
+
LOG_FILE="${CLAUDE_PROJECT_DIR}/.claude/logs/audit.log"
|
|
115
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
116
|
+
echo "${TIMESTAMP} | ${TOOL_NAME}" >> "$LOG_FILE"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"hooks": {
|
|
122
|
+
"PostToolUse": [
|
|
123
|
+
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/audit-log.sh", "async": true }] }
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Recette 4 — Sauvegarde de session avant compaction
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"hooks": {
|
|
136
|
+
"PreCompact": [
|
|
137
|
+
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/pre-compact-save.sh" }] }
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Associez avec une instruction CLAUDE.md : "Quand PreCompact se déclenche, résumez : tâche actuelle, fichiers modifiés, décisions ouvertes, prochaines étapes — ajoutez à `.claude/memory/session-state.md`."
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Recette 5 — Suivi des coûts
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"hooks": {
|
|
152
|
+
"PostToolUse": [
|
|
153
|
+
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/cost-tracker.sh", "async": true }] }
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Recette 6 — Vérification de types TypeScript à l'édition
|
|
162
|
+
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"hooks": {
|
|
166
|
+
"PostToolUse": [
|
|
167
|
+
{
|
|
168
|
+
"matcher": "Write|Edit",
|
|
169
|
+
"hooks": [{ "type": "command", "command": "bash -c 'echo \"${tool_input.file_path}\" | grep -q \"\\.tsx\\?$\" && npx tsc --noEmit 2>&1 | head -20 || true'", "async": false, "timeout": 30 }]
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Définissez `async: false` pour que Claude voie les erreurs de types et puisse les corriger immédiatement.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Recette 7 — Rappel avant git push
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
#!/usr/bin/env bash
|
|
184
|
+
INPUT=$(cat)
|
|
185
|
+
COMMAND=$(echo "$INPUT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('command',''))" 2>/dev/null)
|
|
186
|
+
if echo "$COMMAND" | grep -q "git push"; then
|
|
187
|
+
echo "⚠️ Sur le point de pousser vers le distant. Confirmez que c'est intentionnel." >&2
|
|
188
|
+
exit 1
|
|
189
|
+
fi
|
|
190
|
+
exit 0
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Recette 8 — Chargeur de contexte au démarrage de session
|
|
196
|
+
|
|
197
|
+
```json
|
|
198
|
+
{
|
|
199
|
+
"hooks": {
|
|
200
|
+
"SessionStart": [
|
|
201
|
+
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/session-start.sh" }] }
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Dépannage des hooks
|
|
210
|
+
|
|
211
|
+
**Le hook ne se déclenche pas :**
|
|
212
|
+
- Vérifiez que le nom de l'événement est exact : `PreToolUse`, `PostToolUse`, `SessionStart`, `PreCompact`
|
|
213
|
+
- Vérifiez que le script est exécutable : `chmod +x .claude/hooks/votre-script.sh`
|
|
214
|
+
- Vérifiez que le chemin utilise correctement `${CLAUDE_PROJECT_DIR}`
|
|
215
|
+
|
|
216
|
+
**Tester un hook manuellement :**
|
|
217
|
+
```bash
|
|
218
|
+
echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | bash .claude/hooks/votre-script.sh
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Travaillez avec nous
|
|
224
|
+
|
|
225
|
+
Claudient est soutenu par [Uitbreiden](https://uitbreiden.com/) — nous construisons des produits IA avec des communautés de développeurs et livrons des solutions IA B2B. Si vous avez besoin de systèmes de hooks personnalisés, de portes qualité automatisées ou d'automatisation Claude Code de qualité production pour votre équipe — nous le construisons pour des clients.
|
|
226
|
+
|
|
227
|
+
**[uitbreiden.com](https://uitbreiden.com/)**
|