# Dl Scaffold

> Templates reutilisables pour scaffold rapide (crawler, route, schema, job). Copier+adapter > generer.

- Skill: `thewatcher01/dl-scaffold` (Agent Skill)
- Install (CLI): `npx skillmds@latest add thewatcher01/dl-scaffold`
- Raw SKILL.md: https://api.skillmd.com/api/skills/thewatcher01/dl-scaffold/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: TheWatcher01 (https://skillmd.com/u/thewatcher01)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/thewatcher01/dl-scaffold

---


# Scaffold rapide — Copier + Adapter

## Principe : NE PAS generer from scratch. Copier un template existant et l'adapter.

## Templates disponibles

### Nouveau crawler
1. Lire un crawler existant comme template : `src/adapters/crawlers/sirene.ts`
2. Copier la structure (AsyncGenerator + TokenBucket + withRetry)
3. Adapter : URL API, schema Zod de reponse, mapping vers DatalakeEntity
4. Patterns resilience dans `src/lib/` : token-bucket.ts, retry.ts, circuit-breaker.ts

### Nouvelle route API
1. Lire une route existante : `src/api/routes/entities.ts`
2. Copier la structure (Hono handler + Zod validation + cache headers)
3. Adapter : path, query params, service call
4. Validation schemas dans `src/api/validation.ts`

### Nouveau schema Zod
1. Lire les schemas existants : `src/core/entities/entity-cards.schema.ts`
2. Copier le pattern (export const XxxSchema = z.object({...}); export type Xxx = z.infer<typeof XxxSchema>)
3. Job types existants : `src/core/entities/job-types.ts` (25+ exemples)

### Nouveau data contract
1. Lire un contrat existant : `src/config/data-contracts/dl-entities-dqc.yml`
2. Copier la structure YAML (source, tier, SLA, dimensions qualite)
3. Source registry : `src/config/data-contracts/source-registry.yml`

### Nouveau job type
1. Lire job-types.ts : `src/core/entities/job-types.ts`
2. Ajouter le type au discriminated union
3. Ajouter le handler dans `src/worker/handlers/`

## Utilitaires reutilisables (src/lib/)
- `TokenBucket` — rate limiting
- `withRetry` — exponential backoff + jitter
- `CircuitBreaker` — fail-fast + auto-recovery
- `createLogger` — structured logging
- `isValidSiren/isValidSiret` — validation SIREN/SIRET
- `signPayload/verifySignature` — HMAC-SHA256
- `cleanMojibake` — nettoyage encodage UTF-8

