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.
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.
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:
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:
Validación¶
Tras extender RaiSE, verifica tu configuración: