Saltar a contenido

Extensibilidad

RaiSE está diseñado para ser extendido. Hay cuatro puntos de extensión, cada uno con un propósito diferente.

Adaptadores

Los adaptadores conectan RaiSE a servicios externos — herramientas de gestión de proyectos, plataformas de documentación y backends de knowledge graph. Siguen contratos Python Protocol con descubrimiento por entry points.

RaiSE incluye adaptadores para Jira y Confluence. Puedes agregar los tuyos para cualquier servicio.

Grupos de entry points: - rai.adapters.pm — gestión de proyectos (issues, sprints, backlog) - rai.docs.targets — publicación de documentación (páginas, búsqueda) - rai.governance.schemas — definiciones de tipos de artifacts de gobernanza - rai.governance.parsers — parsers de artifacts de gobernanza - rai.graph.backends — almacenamiento del knowledge graph

Crear un adaptador personalizado

Skills

Los skills son instrucciones estructuradas que guían a tu asistente de IA a través de flujos de trabajo repetibles. Son archivos SKILL.md con frontmatter YAML y secciones paso a paso.

RaiSE incluye skills de ciclo de vida (sesión, epic, story) y skills utilitarios (debug, research). Puedes crear skills específicos para los flujos de trabajo de tu equipo.

Crear un skill personalizado

Servidores MCP

Los servidores MCP (Model Context Protocol) dan a tu asistente de IA acceso a herramientas externas — consultas de documentación, escáneres de seguridad, operaciones de repositorio. RaiSE gestiona el registro y la verificación de salud de servidores MCP.

Registrar un servidor MCP

Hooks de Ciclo de Vida

Los hooks son comandos de shell que se ejecutan en eventos de Claude Code — antes del uso de herramientas, después del uso de herramientas, o antes de la compactación de contexto. Permiten efectos secundarios como el registro en diario sin bloquear el flujo principal.

Conectar un hook de ciclo de vida

Extensiones de CLI

Los paquetes externos pueden registrar nuevos comandos de nivel superior en el CLI rai. Las extensiones se descubren al inicio mediante Python entry points.

Grupo de Entry Points

Registra tu comando bajo el grupo de entry points rai.cli.commands en el pyproject.toml de tu paquete:

[project.entry-points."rai.cli.commands"]
knowledge = "my_package.cli:app"

El nombre del entry point se convierte en el nombre del comando. Con el ejemplo anterior, rai knowledge validate ./nodes/ funciona cuando tu paquete está instalado junto a raise-cli.

Convención

Cada extensión debe exponer una app typer.Typer. Si el objeto cargado no es una instancia Typer, se omite con una advertencia.

# my_package/cli.py
import typer

app = typer.Typer(help="Utilidades de knowledge graph.")

@app.command()
def validate(path: str) -> None:
    """Valida nodos del knowledge graph."""
    ...

Protección

El cargador de extensiones incluye dos verificaciones de seguridad:

  • Detección de colisión con built-ins — Las extensiones no pueden sobreescribir comandos built-in (session, pattern, graph, etc.). Si se detecta una colisión, la extensión se omite con una advertencia.
  • Detección de extensiones duplicadas — Si dos paquetes registran el mismo nombre de comando, el primero en cargarse gana y el segundo se omite con una advertencia.

Ambos casos se registran en el log para que puedas diagnosticar problemas de registro.

Verificación

Una vez instalado tu paquete, la extensión aparece en rai --help. También puedes verificar el estado de carga de extensiones mediante logging de debug:

RAI_LOG_LEVEL=DEBUG rai --help

Validación

Tras extender RaiSE, verifica tu configuración:

# Verificar registro de adaptadores y cumplimiento del Protocol
rai adapter check

# Validar config de adaptador declarativo
rai adapter validate .raise/adapters/my-adapter.yaml

# Verificar estructura del skill
rai skill validate my-skill

# Verificar salud del servidor MCP
rai mcp health my-server