Saltar a contenido

Personalizar Pipelines

Los pipelines de RaiSE son datos, no código. Cuando inicias un pipeline, la IA carga una definición YAML de pipeline y orquesta cada fase usando skills y herramientas MCP. Personalizas los pipelines editando esos archivos YAML — no se requiere programación.

Cómo se Ejecutan los Pipelines

Nunca ejecutas pipelines directamente. En su lugar, pídele a Rai dentro de Claude Code:

Lo que dices Definición de Pipeline Qué Hace
"Inicia el pipeline de story para RAISE-123" story.yaml Ciclo de vida completo de story: start, design, plan, implement, review, close
"Inicia el pipeline de bugfix para RAISE-456" bugfix.yaml Pipeline de bugfix de 7 fases con 3 gates HITL
"Inicia el pipeline de epic para RAISE-789" epic.yaml Ciclo de vida de epic con gates de delegación

Detrás de escena, Rai usa herramientas MCP (pipeline_start, pipeline_advance, pipeline_status) para cargar la definición YAML, ejecutar cada fase y aplicar gates. La IA gestiona la orquestación — tú revisas y apruebas en los checkpoints de gate.

Nota: Los slash commands legacy /rai-story-run, /rai-bugfix-run y /rai-epic-run fueron eliminados en 3.0. Ver Migrando desde 2.x.

Jerarquía de Carga

El cargador de pipelines verifica tres ubicaciones en orden:

Prioridad Ubicación Caso de uso
1 (más alta) ~/.rai/pipelines/ Overrides personales
2 .raise/pipelines/ Pipelines específicos del proyecto
3 (más baja) Built-in (pipelines_base/) Defaults incluidos

Un pipeline de mayor prioridad reemplaza uno con el mismo nombre de menor prioridad. Esto significa que puedes reemplazar story.yaml para tu proyecto sin modificar el built-in.

Puntos de Personalización

Editar Definiciones de Pipeline

Para personalizar el pipeline de story para tu proyecto, crea tu propio override:

mkdir -p .raise/pipelines

Luego crea .raise/pipelines/story.yaml. Tu versión tiene precedencia sobre el built-in. La próxima vez que inicies el pipeline de story, la IA carga tu definición personalizada.

Agregar o Eliminar Fases

Cada pipeline es una secuencia de fases. Agrega, elimina o reordénalas:

name: story
description: "Pipeline de story mínimo de 4 fases"
issue_types:
  - story

phases:
  - id: start
    type: llm
    skill: rai-story-start

  - id: design
    type: llm
    skill: rai-story-design
    gate:
      type: hitl
      level: REVIEW

  - id: implement
    type: llm
    skill: rai-story-implement
    gate:
      type: hitl
      level: REVIEW

  - id: close
    type: llm
    skill: rai-story-close

Este pipeline reducido omite las fases de plan y review — útil para proyectos pequeños donde el overhead no está justificado.

Personalizar Qué Skills se Ejecutan

Cada fase llm referencia un skill por nombre. Intercambia por tu propio skill para cambiar qué hace la IA en esa fase:

- id: design
  type: llm
  skill: my-custom-design    # Tu skill en .claude/skills/
  context:
    graph:
      - types: [pattern]
        limit: 5

Agregar y Eliminar Gates

Los gates controlan cuándo el pipeline pausa para revisión o ejecuta verificaciones automatizadas.

Gates HITL pausan para revisión humana:

gate:
  type: hitl
  level: REVIEW        # REVIEW, NOTIFY, o AUTO
  mandatory: true      # No puede ser reemplazado por nivel de delegación

Gates determinísticos ejecutan verificaciones automatizadas — pasan/fallan según el código de salida:

gate:
  type: deterministic
  command: "uv run pytest --tb=no -q"

Elimina un gate para que la IA proceda sin detenerse. Agrega gates a las fases donde quieras un checkpoint.

Fases Condicionales con when

Omite fases basándose en metadatos:

- id: architecture-review
  type: llm
  skill: rai-architecture-review
  when: "story_type == 'code'"    # Omitido para stories de docs/análisis

Las variables disponibles en expresiones when vienen de defaults y los metadatos del tipo de story.

Tipos de Fase

llm — Fases Dirigidas por IA

Carga un skill y delega a Claude:

- id: design
  type: llm
  skill: rai-story-design
  context:
    graph:
      - types: [pattern]
        limit: 5

deterministic — Fases de Comandos de Shell

Ejecuta comandos secuencialmente. Falla en el primer exit no-cero:

- id: lint
  type: deterministic
  commands:
    - "uv run ruff check src/"
    - "uv run pyright src/"

Validación de Artifacts

Requiere que archivos específicos existan tras completar una fase:

validates:
  - pattern: "**/*-design.md"
    description: "Documento de diseño de story"
  - pattern: "**/*-plan.md"
    description: "Documento de plan de story"

El motor bloquea la progresión si falta algún artifact requerido.

Inyección de Contexto

Inyecta contexto del knowledge graph en fases LLM:

context:
  graph:
    - types: [pattern]
      limit: 5
    - types: [module, decision]
      limit: 3

Tipos disponibles: pattern, module, decision, principle, guardrail, epic, story.

Modos de Revisión

Para fases de revisión, habilita plantillas de revisión adversarial:

- id: quality-review
  type: llm
  skill: rai-quality-review
  review_mode: adversarial
  review_template: adversarial-qr

Crear un Nuevo Pipeline

Crea .raise/pipelines/deploy.yaml para un pipeline personalizado:

name: deploy
description: "Pipeline de despliegue de 3 fases"
issue_types:
  - task

phases:
  - id: validate
    type: deterministic
    commands:
      - "rai release check"
      - "rai gate check --all"

  - id: build
    type: deterministic
    commands:
      - "uv build --out-dir dist"
      - "twine check dist/*"
    gate:
      type: hitl
      level: REVIEW

  - id: publish
    type: deterministic
    commands:
      - "twine upload dist/*"

Una vez definido, un slash command correspondiente o una llamada a herramienta MCP puede referenciarlo por nombre.

Acceso CLI Directo

Para depuración o scripting fuera de Claude Code, el CLI de pipeline está disponible:

# Listar pipelines disponibles y sus fases
rai pipeline list

# Iniciar una ejecución de pipeline directamente
rai pipeline run deploy

# Verificar estado de un pipeline en ejecución
rai pipeline status

La mayoría de desarrolladores no necesitarán el CLI — los slash commands y herramientas MCP gestionan la orquestación automáticamente.

Próximos Pasos