---
name: workflow-dev-prompts
description: |
  Génération de prompts Claude Code pour le développement, organisés par feature.
  Les prompts s'appuient sur les dev skills installés (starter-kit) pour éviter la redondance.
  Chaque feature backend inclut les prompts pour les tests E2E.

  ⚠️ IMPORTANT : Tous les prompts sont rédigés EN ANGLAIS (Claude Code fonctionne mieux en anglais).

  TRIGGERS :
  - "Génère les prompts dev", "prompts Claude Code", "prompts de développement"
  - Après workflow-cdc et workflow-architecture
  - CDC-*.md et Architecture-*.md disponibles

  ENTRÉES : CDC + Architecture
  SORTIES :
  - Un fichier Prompts-[Feature].md par feature
  - specs/[feature].md par feature (vue dev pour le suivi)

  CONTENU PAR FEATURE :
  - Prompt backend (implémentation)
  - Prompt tests E2E
  - Prompt frontend (pages, composants)

  PRÉREQUIS : Les dev skills doivent être installés dans le projet (~/.claude/skills/) :
  typescript-strict, nestjs-stack, nextjs-stack, ui-design, dev-workflow,
  ci-deploy, env-vars, prisma-migrations, testing-patterns, project-init
---

# Workflow Dev Prompts

Génère des prompts structurés pour Claude Code, un fichier par feature.
**Les prompts activent les dev skills au lieu de ré-expliquer les conventions.**

**⚠️ LANGUE : Tous les prompts doivent être rédigés EN ANGLAIS.**

## Prérequis

Les **dev skills** (starter-kit) doivent être installés dans `~/.claude/skills/` :

| Skill | Rôle dans les prompts |
|-------|----------------------|
| `typescript-strict` | Conventions TS — activé automatiquement |
| `nestjs-stack` | Architecture backend — activé quand prompt backend |
| `nextjs-stack` | Architecture frontend — activé quand prompt frontend |
| `ui-design` | Design system — activé quand prompt UI |
| `prisma-migrations` | Schema et migrations — activé quand prompt DB |
| `testing-patterns` | Tests E2E — activé quand prompt tests |
| `dev-workflow` | Workflow tâches — toujours actif |
| `env-vars` | Variables env — si nouvelle config |
| `ci-deploy` | Déploiement — dernière feature |

**Si les skills sont installés, NE PAS inclure le bloc contexte détaillé dans les prompts.** Claude Code les chargera automatiquement.

## Workflow

1. **Lire CDC + Architecture**
2. **Vérifier** que les dev skills sont installés (sinon prévenir)
3. **Identifier les features** depuis les modules du CDC
4. **Pour chaque feature** :
   - Générer prompt backend
   - Générer prompt tests E2E
   - Générer prompt frontend
   - Générer `specs/[feature].md` (vue dev pour suivi)
5. **Créer** `prompts/Prompts-[Feature].md` par feature

## Output

```
[projet]/
├── prompts/
│   ├── Prompts-Auth.md
│   ├── Prompts-[Feature1].md
│   └── Prompts-[Feature2].md
│
└── specs/
    ├── auth.md                 ← Vue dev (suivi TASK-XXX)
    ├── [feature1].md
    └── [feature2].md
```

## Bloc contexte (version allégée)

Puisque les skills portent les conventions, le contexte se réduit à ce qui est **spécifique au projet** :

```
Project: [Name]
CDC: CDC-[Project].md
Architecture: Architecture-[Project].md

Dev skills installed: typescript-strict, nestjs-stack, nextjs-stack,
ui-design, prisma-migrations, testing-patterns, dev-workflow

Design: [Primary color] ([hex]) — see tailwind.config.ts
i18n: FR + EN (see nestjs-stack / nextjs-stack skills for patterns)
```

Ce bloc est inclus **une seule fois** en haut du fichier, pas dans chaque prompt.

## Structure d'un fichier prompts

```markdown
# Dev Prompts: [Feature]

**Project**: [Name]
**CDC**: §X.X
**Architecture**: §X.X
**Dev skills**: installed ✅

---

## 1. Backend: [Sub-feature]

### 1.1 Implementation

> Read CDC §X.X for full specifications and wireframes.
> Follow skill `nestjs-stack` for module structure.

**Task**: Implement [description] in the [module] module.

**Prisma Model** (from Architecture §X.X):
[Copy ONLY the model — not the conventions, the skill handles that]

**Business Rules**:
- RM-XXX-001: [Rule]
- RM-XXX-002: [Rule]

**Endpoints**:
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | /v1/xxx | [Desc] |

**Acceptance Criteria**:
- [ ] CA-XXX-001: [Criterion]
- [ ] CA-XXX-002: [Criterion]

### 1.2 Tests

> Follow skill `testing-patterns` for test structure, fixtures, and scenarios.

**Task**: Write E2E tests for the [module] module.

**Endpoints to Test**:
| Method | Endpoint | Success | Errors |
|--------|----------|---------|--------|
| POST | /v1/xxx | 201 | 400, 401, 409 |
| GET | /v1/xxx | 200 | 401 |

**Key Scenarios**:
1. ✅ [Happy path]
2. ❌ [Error case — specific to this feature]

**Fixtures needed**: [What test data]

---

## 2. Frontend: [Page/Component]

> Read CDC §X.X for wireframes and UX specs.
> Follow skill `nextjs-stack` for page/container structure.
> Follow skill `ui-design` for components and colors.

**Task**: Create [page/component].

**Route**: `/app/[feature]/[route]`

**Wireframe** (from CDC):
[Copy ASCII wireframe]

**Data**:
- Endpoint: GET /v1/xxx
- React Query key: ['xxx', filters]

**Form** (if applicable):
- Fields: [list from CDC]
- Validation: [business rules]

**Acceptance Criteria**:
- [ ] CA-XXX-003: [Criterion]
- [ ] Navigation link added in sidebar
- [ ] i18n FR + EN
```

## Génération des specs/[feature].md

En plus des prompts, générer une **vue dev** pour le suivi des tâches :

```markdown
# FEATURE: [Nom]

> [Description]

**Source CDC**: CDC-[Projet].md §X.X
**Source Archi**: Architecture-[Projet].md §X.X
**Prompts**: prompts/Prompts-[Feature].md

## Dépendances
- [x] FEATURE: Auth
- [ ] FEATURE: [Autre]

---

## TASK-001: [Backend — Module + CRUD]
**Type**: API
**Statut**: TODO
**Refs CDC**: RM-XXX-001..003, EP-XXX-001..005
**Critères**: CA-XXX-001..003

### Checklist
- [ ] Module créé (skill nestjs-stack)
- [ ] Prisma model + migration (skill prisma-migrations)
- [ ] Endpoints implémentés
- [ ] Erreurs i18n (fr + en)
- [ ] `yarn build` passe

## TASK-002: [Tests E2E]
**Type**: API
**Statut**: TODO
**Refs CDC**: EP-XXX-001..005

### Checklist
- [ ] Tests E2E (skill testing-patterns)
- [ ] Tous les scénarios couverts
- [ ] `yarn test` passe

## TASK-003: [Frontend — Pages]
**Type**: UI
**Statut**: TODO
**Refs CDC**: §X.X (wireframes)
**Critères**: CA-XXX-004..006

### Checklist
- [ ] Pages créées (skill nextjs-stack)
- [ ] Composants (skill ui-design)
- [ ] Navigation ajoutée
- [ ] i18n FR + EN
- [ ] `yarn build` passe
```

## Règles

### DO
- Référencer les skills par nom (`Follow skill nestjs-stack`)
- Référencer les sections du CDC (§X.X) et les codes RM/CA
- Copier les wireframes ASCII du CDC (la seule chose à copier)
- Copier le modèle Prisma de l'Architecture (info spécifique au projet)
- Générer les specs dev en parallèle des prompts
- Lister les scénarios d'erreur spécifiques à la feature

### DON'T
- ❌ Ré-expliquer la structure des modules NestJS (c'est dans le skill)
- ❌ Ré-expliquer comment tester (c'est dans le skill)
- ❌ Ré-expliquer les conventions TypeScript (c'est dans le skill)
- ❌ Inclure un bloc contexte de 20 lignes dans chaque prompt
- ❌ Dépasser 30 lignes par prompt (hors wireframes et modèles Prisma)
- ❌ Mélanger backend et frontend dans un prompt

### Granularité
- 1 prompt backend = 1 module/feature
- 1 prompt tests = 1 module (tous les endpoints)
- 1 prompt frontend = 1 page OU 1-3 composants liés
- 1 spec dev = 1 feature (avec toutes les tâches)

## Migration depuis l'ancien format

Si des prompts existent déjà dans l'ancien format (avec bloc contexte complet) :
1. Supprimer le bloc contexte détaillé
2. Ajouter les références aux skills
3. Garder uniquement les infos spécifiques au projet (Prisma model, wireframes, RM/CA codes)
4. Générer les specs dev correspondantes
