Création de phase de pipeline

VérifiéSûr

Guide la création d'une nouvelle phase de pipeline avec un ordre strict : contrat, logique déterministe, script, expertise de domaine et compétence.

Spar Skills Guide Bot
DeveloppementAvancé
22/07/2026
Claude Code
#skill-authoring#pipeline-scaffolding#pydantic-contracts#llm-workflow#code-generation

Recommandé pour

Synthèse automatique

Guide la création d'une nouvelle phase du pipeline modernizer, de la définition du contrat Pydantic jusqu'à la documentation du skill et l'intégration à l'orchestrateur.

Points forts

  • Impose un ordre strict avec des points d'arrêt et des commandes de vérification à chaque étape.
  • Sépare clairement le contrat, la logique déterministe et le traitement LLM.
  • Exige des tests pour le handler et une validation du script en mode déterministe.
  • Fournit un modèle précis de SKILL.md pour la nouvelle phase.

Limites

  • Très lié à l'arborescence et aux conventions d'un dépôt spécifique (src/contracts, scripts, .artifacts).
  • Présuppose une stack Python avec uv et Pydantic.
  • Ne traite pas de la création de skills autonomes hors du pipeline modernizer.
Quand l'utiliser

À utiliser lorsqu'il faut ajouter une nouvelle phase au pipeline modernizer en respectant ses conventions existantes.

Quand l'éviter

À éviter pour créer un skill indépendant hors de ce dépôt ou pour un pipeline qui n'utilise pas Python/Pydantic.

Analyse de sécurité

Sûr
Score qualité84/100

This is a scaffolding/meta-skill that instructs the agent to create Pydantic contracts, handler modules, test files, a CLI script, and SKILL.md documentation for a new pipeline phase. The only commands are local `uv run python`/`uv run pytest` invocations of the project's own tooling and a validator script; there are no destructive operations (no rm -rf, no overwrites of system paths), no network calls, no `curl | sh`, no credential/secret handling, no obfuscated payloads, and no attempts to disable safety controls. The generated templates reference `.artifacts/` paths and local script execution, which is ordinary developer-workflow behavior with no meaningful execution risk of its own.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Add a deterministic DDL phase
Create a new pipeline phase called migrate-ddl that reads the schema contract from the previous phase and emits DDL migration steps. It does not need LLM judgment.
Add an LLM-backed cost phase
Add a cost-estimate phase to the modernizer pipeline. It should read the inventory output and use LLM judgment to estimate migration cost, with a separate LLM output model and domain expertise file.
Scaffold a validation phase end-to-end
I need a validate-schema phase scaffolded following the add-modernizer-skill workflow, including the Pydantic contract, deterministic handler, tests, script, expertise file, and SKILL.md.

/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)

  1. Create src/contracts/{phase_name}_output.py

  2. Define the output Pydantic model with:

    • Clear field descriptions
    • Appropriate types and constraints
    • Validators where needed
  3. If LLM is needed, define the LLM output model separately (keep it minimal — only what requires judgment)

  4. 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

  1. Create src/agents/{phase_name}/handler.py

  2. Implement run_{phase_name}_deterministic(input) -> contract

  3. If LLM is needed, implement:

    • prepare_{phase_name}_llm_input(contract, input) -> dict
    • apply_{phase_name}_llm_output(contract, llm_typed) -> updated_contract
  4. Write tests in tests/agents/test_{phase_name}.py

  5. Verify:

    uv run pytest tests/agents/test_{phase_name}.py -v
    

STOP: Do not proceed until tests pass.

Phase 3: Script

  1. Create scripts/run_{phase_name}.py

  2. Must support: --job-id, --db, --llm-mode (none/external/bedrock), --finalize, --artifact-root

  3. In external mode, inject output_schema:

    llm_request["output_schema"] = LlmModel.model_json_schema()
    
  4. In finalize mode, deserialize through Pydantic:

    llm_typed = LlmModel.model_validate(llm_response)
    updated = apply_llm_output(contract, llm_typed)
    
  5. Output JSON to stdout: {"status": "complete"} or {"status": "awaiting_llm", "llm_request": "..."} or {"status": "validation_failed", "errors": [...]}

  6. 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)

  1. Create src/skills/{phase_name}-expertise.md
  2. Write the domain knowledge the LLM needs to make good decisions
  3. Keep it focused — principles and anti-patterns, not implementation details

Phase 5: Skill

  1. Create .claude/skills/{phase_name}/SKILL.md
  2. Follow this exact template:
---
name: {phase_name}
description: {one-line purpose}
---

# /{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
  1. If status is awaiting_llm: a. Read: .artifacts/{database_name}/{job_id}/llm_requests/{phase_name}.json

    • Contains context data and output_schema b. Read: src/skills/{phase_name}-expertise.md c. Produce JSON conforming to output_schema d. Write to: .artifacts/{database_name}/{job_id}/llm_responses/{phase_name}.json e. Finalize:
    uv run python scripts/run_{phase_name}.py --job-id {job_id} --db {database_name} --finalize
    

    If validation fails, fix errors and retry up to 3 times.

  2. Update state Set phase_status.{phase_name} = "complete"


3. Validate:

   ```bash
   uv run python scripts/validate_skills.py

Phase 6: Integration

  1. Add the new phase to the /modernize orchestrator skill if it belongs in the main pipeline

  2. Update .claude/skills/modernize/SKILL.md with the new step in the correct position

  3. 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 annexes

Ce 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.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/pipeline-phase-creator-mrwakdwo/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/pipeline-phase-creator-mrwakdwo' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/pipeline-phase-creator-mrwakdwo/download' --output '.skill-downloads/pipeline-phase-creator-mrwakdwo/SKILL.md.part' && mv '.skill-downloads/pipeline-phase-creator-mrwakdwo/SKILL.md.part' '.skill-downloads/pipeline-phase-creator-mrwakdwo/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/pipeline-phase-creator-mrwakdwo/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.

Skills similaires