Synthèse automatique
Guide la création d'une nouvelle phase de pipeline, de la définition du contrat Pydantic jusqu'à la commande et l'intégration dans l'orchestrateur.
Points forts
- Ordonne les étapes avec des points d'arrêt explicites et des commandes de vérification.
- Sépare clairement contrat, logique déterministe, script, expertise LLM et commande.
- Couvre les modes LLM none/external/bedrock ainsi que la finalisation typée via Pydantic.
- Rappelle la mise à jour de l'orchestrateur et la validation globale des skills.
Limites
- Suppose une structure de dépôt précise (src/contracts, src/agents, scripts, uv) sans l'adapter.
- Très centré sur les commandes Claude Code (.claude/commands) et un orchestrateur /modernize existant.
- Ne détaille ni la conception métier du contrat ni les critères de qualité des tests.
À utiliser lorsqu'on ajoute une phase à un pipeline existant structuré autour de contrats Pydantic et de commandes Claude Code.
À éviter pour créer un skill générique ou travailler dans un dépôt qui ne suit pas cette architecture de phases.
Analyse de sécurité
PrudenceThis is a meta-skill that guides an agent through scaffolding a new pipeline phase and running it. It uses bash, Python, and pytest, but only against the project's own code and artifacts; there is no destructive command, no network exfiltration, no obfuscated payload, and no attempt to disable safety controls. The instructions are internally consistent and even include STOP gates and mandatory validation, so the risk is limited to ordinary code-execution risk inherent to any dev-workflow skill — hence caution rather than risky.
- •Instructs the agent to create and execute project scripts via `uv run python scripts/...` and `uv run pytest`, meaning arbitrary newly-written code is run — legitimate for the workflow but non-trivial execution risk
- •Writes/modifies multiple files across src/, tests/, scripts/, and .claude/commands/, and edits an existing orchestrator command; no backup or review step beyond the STOP gates
- •References external expertise files and artifact paths whose contents are not validated by this skill itself
- •No allowed-tools declared, yet the workflow instructs the agent to run shell commands (`uv run python`, `uv run pytest`, `uv run python scripts/validate_skills.py`); the manifest should declare `Bash` so the capabilities are explicit rather than implicit.
- •Placeholder paths such as `artifacts/{database_name}/{job_id}/...` and `--db test` are used without any guard against path traversal; a caller-supplied `job_id`/`database_name` containing `../` could read/write outside the repo. Low severity, since it is upstream project code that would do the resolution.
Exemples
/add-modernizer-skill Add a phase called cost-estimate that estimates warehouse cost from the mapped schema. It needs LLM judgment, reads the mapping contract, and outputs a cost estimate contract.Use the add-modernizer-skill workflow to create a deterministic validate-schema phase in this repo. It should read the DDL contract and output validation results with errors.I need to add a migrate-ddl phase that uses external LLM mode and writes a .claude command. Walk me through the contract first and stop for approval./add-modernizer-skill
Guides creation of a new pipeline phase. Follows strict priority order — each step must be complete before the next begins.
Required Input
Ask the user for:
- Phase name: e.g.
migrate-ddl,validate-schema,cost-estimate - Purpose: What this phase does in one sentence
- Needs LLM?: Whether this phase requires LLM judgment (yes/no)
- Input: What artifacts from previous phases it reads
- Output: What it produces
Phase 1: Contract (MUST complete first)
-
Create
src/contracts/{phase_name}_output.py -
Define the output Pydantic model with:
- Clear field descriptions
- Appropriate types and constraints
- Validators where needed
-
If LLM is needed, define the LLM output model separately (keep it minimal — only what requires judgment)
-
Verify:
uv run python -c "from src.contracts.{phase_name}_output import *; print('OK')"
STOP: Do not proceed until the contract compiles and the user approves the field design.
Phase 2: Deterministic Logic
-
Create
src/agents/{phase_name}/handler.py -
Implement
run_{phase_name}_deterministic(input) -> contract -
If LLM is needed, implement:
prepare_{phase_name}_llm_input(contract, input) -> dictapply_{phase_name}_llm_output(contract, llm_typed) -> updated_contract
-
Write tests in
tests/agents/test_{phase_name}.py -
Verify:
uv run pytest tests/agents/test_{phase_name}.py -v
STOP: Do not proceed until tests pass.
Phase 3: Script
-
Create
scripts/run_{phase_name}.py -
Must support:
--job-id,--db,--llm-mode(none/external/bedrock),--finalize,--artifact-root -
In external mode, inject
output_schema:llm_request["output_schema"] = LlmModel.model_json_schema() -
In finalize mode, deserialize through Pydantic:
llm_typed = LlmModel.model_validate(llm_response) updated = apply_llm_output(contract, llm_typed) -
Output JSON to stdout:
{"status": "complete"}or{"status": "awaiting_llm", "llm_request": "..."}or{"status": "validation_failed", "errors": [...]} -
Verify deterministic mode works:
uv run python scripts/run_{phase_name}.py --job-id test --db test --llm-mode none
STOP: Do not proceed until the script runs successfully.
Phase 4: Domain Expertise (if LLM phase exists)
- Create
src/skills/{phase_name}-expertise.md - Write the domain knowledge the LLM needs to make good decisions
- Keep it focused — principles and anti-patterns, not implementation details
Phase 5: Command
- Create
.claude/commands/{phase_name}.md - No frontmatter. Follow this exact template, matching the other shipped commands:
# /{phase_name}
{Brief description.}
## Prerequisites
- {What must be true}
## Steps
1. **Run phase**
```bash
uv run python scripts/run_{phase_name}.py --job-id {job_id} --db {database_name} --llm-mode external
-
If status is
awaiting_llm: a. Read:artifacts/{database_name}/{job_id}/llm_requests/{phase_name}.json- Contains context data and
output_schemab. Read:src/skills/{phase_name}-expertise.mdc. Produce JSON conforming tooutput_schemad. Write to:artifacts/{database_name}/{job_id}/llm_responses/{phase_name}.jsone. Finalize:
uv run python scripts/run_{phase_name}.py --job-id {job_id} --db {database_name} --finalizeIf validation fails, fix errors and retry up to 3 times.
- Contains context data and
-
Update state Set
phase_status.{phase_name}= "complete"
3. Validate:
```bash
uv run python scripts/validate_skills.py
Phase 6: Integration
-
Add the new phase to the
/modernizeorchestrator skill if it belongs in the main pipeline -
Update
.claude/commands/modernize.mdwith the new step in the correct position -
Run the pre-commit hook to verify everything links up:
uv run python scripts/validate_skills.py
Rules
- NEVER skip a phase. Each phase depends on the previous.
- NEVER put contract details in the skill. The script injects
output_schema. - NEVER reference Python source files from skills.
- Keep LLM output contracts minimal. If logic can be deterministic, it MUST be.
- The script is the source of truth for validation — the skill just runs it.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/create-a-modernizer-pipeline-phase-mvda88r9/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/create-a-modernizer-pipeline-phase-mvda88r9' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/create-a-modernizer-pipeline-phase-mvda88r9/download' --output '.skill-downloads/create-a-modernizer-pipeline-phase-mvda88r9/SKILL.md.part' && mv '.skill-downloads/create-a-modernizer-pipeline-phase-mvda88r9/SKILL.md.part' '.skill-downloads/create-a-modernizer-pipeline-phase-mvda88r9/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.
Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/create-a-modernizer-pipeline-phase-mvda88r9/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.