Persistencia Local
RaiSE incluye adaptadores respaldados por sistema de archivos para gestión de backlog y publicación de documentación. Estos son los predeterminados cuando no hay servicios externos configurados (Jira, Confluence) — no requieren configuración.
Cuándo Usar Adaptadores de Sistema de Archivos¶
| Escenario | Backlog | Docs |
|---|---|---|
| Comenzar — explorar RaiSE antes de conectar Jira/Confluence | filesystem | filesystem |
| Trabajo offline — sin acceso a red | filesystem | filesystem |
| Proyectos open-source — sin licencia Atlassian | filesystem | filesystem |
| Equipo con Atlassian — conectado a Jira y Confluence | jira | confluence o composite |
| Doble seguridad — backup local + publicación remota | jira | composite (ambos) |
Backlog de Sistema de Archivos (FilesystemPMAdapter)¶
Almacenamiento¶
Cada issue es un archivo YAML en .raise/backlog/items/{KEY}.yaml:
.raise/backlog/items/
├── E1.yaml # Epic
├── S1.1.yaml # Story bajo E1
├── S1.2.yaml # Story bajo E1
├── E2.yaml # Otro epic
└── S2.1.yaml # Story bajo E2
Esquema de Issue¶
key: E1
summary: "Implementar autenticación de usuario"
issue_type: Epic
status: in-progress
description: "Flujo OAuth2 + PKCE para clientes web y CLI"
labels:
- security
- v1.0
priority: high
assignee: [email protected]
parent: null
created: "2026-04-01T09:00:00+00:00"
updated: "2026-04-03T14:30:00+00:00"
comments:
- id: E1-1
body: "Decidido PKCE sobre flujo implícito"
author: rai
created: "2026-04-02T10:00:00+00:00"
links:
- target: E2
link_type: blocks
Generación de Keys¶
Las keys se generan automáticamente según el tipo de issue:
- Epics:
E1,E2,E3, ... - Stories:
S{num_epic}.1,S{num_epic}.2, ... (requiereparent_keyen metadatos) - Tasks: Igual que epics (
E{N})
Uso del CLI¶
Todos los comandos rai backlog funcionan transparentemente con el adaptador de sistema de archivos:
# Crear un epic
rai backlog create "Implementar auth" -p LOCAL -t Epic
# Crear una story bajo él
rai backlog create "Flujo OAuth2" -p LOCAL -t Story --parent E1
# Buscar
rai backlog search "auth"
rai backlog search "status = in-progress"
# Transicionar
rai backlog transition E1 done
# Comentar
rai backlog comment E1 "Implementación OAuth2 completada"
# Obtener detalles
rai backlog get E1
Selección de Adaptador¶
Cuando solo hay un adaptador registrado, se selecciona automáticamente. Cuando hay múltiples adaptadores disponibles (filesystem + jira), especifica cuál usar:
rai backlog search "auth" -a filesystem # Forzar filesystem
rai backlog search "auth" -a jira # Forzar Jira
Target de Documentación de Sistema de Archivos (FilesystemDocsTarget)¶
Qué Hace¶
Escribe documentación en archivos markdown locales. Es la contrapartida de solo-escritura de Confluence — guarda archivos localmente pero no soporta búsqueda o recuperación (usa tu editor o grep para eso).
Uso¶
# Publicar desde convención de gobernanza (governance/roadmap.md)
rai docs publish roadmap --title "Roadmap Q2"
# Publicar desde cualquier archivo
rai docs publish adr --title "ADR-045" --file dev/decisions/adr-045.md
# Publicar desde stdin
echo "# Mi Doc" | rai docs publish notes --title "Notas de Sesión" --path docs/notes.md --stdin
Dónde Van los Archivos¶
El flag --path (o metadata["path"]) determina la ubicación de salida. Cuando se publica desde un archivo existente, la ruta toma como default la ubicación de ese archivo.
Validación de Frontmatter¶
El target de sistema de archivos valida el frontmatter YAML antes de escribir:
- Campos requeridos:
title,status - Docs a nivel epic: también requieren
epic_id - Docs a nivel story: también requieren
story_idyepic_id
Target Composite (Escritura Dual)¶
El CompositeDocTarget publica tanto en sistema de archivos como en Confluence en una sola llamada:
- Sistema de archivos primero (garantía de durabilidad — tu archivo siempre se guarda)
- Confluence segundo (retorna la URL remota)
- Si Confluence falla pero el sistema de archivos tiene éxito: retorna éxito con advertencia "sync pending"
Este es el comportamiento predeterminado cuando ambos targets están registrados. No se necesita configuración.
# Esto escribe localmente Y publica en Confluence
rai docs publish adr --title "ADR-045"
# Output:
# Published: adr → https://yoursite.atlassian.net/wiki/spaces/SPACE/pages/12345
Si Confluence no está disponible:
# Published: adr → docs/governance/adr-045.md
# Warning: Remote publish failed (sync pending) — retry with rai docs publish
Migrar a Jira/Confluence Después¶
El adaptador de sistema de archivos es un punto de partida, no un callejón sin salida. Cuando estés listo para conectar servicios externos:
- Sigue la guía Configurar Jira y Confluence
- Tu backlog de sistema de archivos se mantiene tal cual — no entra en conflicto con Jira
- Usa el flag
-apara elegir qué adaptador usar por comando
No hay migración automática de YAML de sistema de archivos a issues de Jira. El enfoque recomendado es crear nuevos issues en Jira y referenciar las keys de sistema de archivos en descripciones o comentarios para trazabilidad.
Almacenamiento SQLite¶
RaiSE almacena todos los datos internos — sesiones, señales, patrones, ejecuciones de pipeline, artifacts y entradas de diario — en una única base de datos SQLite.
Ubicación de la Base de Datos¶
Hay una base de datos global compartida entre todos tus proyectos RaiSE. Los datos por proyecto se aíslan internamente via una columna project_id — el CLI lo gestiona automáticamente, nunca necesitas filtrar por proyecto tú mismo.
Qué se Almacena¶
| Tabla | Contenido |
|---|---|
sessions |
Registros de sesión (ID, inicio/fin, resumen) |
signals |
Eventos de ciclo de vida de trabajo (inicio/completado de story, transiciones de fase) |
patterns |
Patrones del knowledge graph acumulados entre sesiones |
pipeline_runs |
Estado de ejecución de pipeline para todas las ejecuciones de story/epic/bugfix |
artifacts |
Artifacts estructurados de diseño, plan y revisión |
journal_entries |
Entradas de diario y diario de sesión |
pending_sync |
Operaciones de backlog en cola para sincronización remota |
Archivos de Modo WAL¶
Cuando RaiSE está en ejecución, puedes ver dos archivos extra junto a la base de datos:
~/.rai/raise.db
~/.rai/raise.db-wal ← Write-Ahead Log (transacciones activas)
~/.rai/raise.db-shm ← Índice de memoria compartida
Estos son archivos normales de modo WAL de SQLite — no son corrupción. Desaparecen cuando ningún proceso de RaiSE tiene la base de datos abierta. Si persisten tras el cierre de todos los procesos de RaiSE, se incorporan de forma segura a la DB principal en la próxima apertura.
Comandos Clave¶
Verificar salud de la base de datos:
RaiSE DB: /home/alice/.rai/raise.db (8,988 KB)
Schema version: 24
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ Tabla ┃ Filas ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ sessions │ 543 │
│ signals │ 1,204 │
│ patterns │ 1,713 │
│ pipeline_runs │ 1,539 │
│ artifacts │ 7 │
└────────────────────────┴───────┘
Exportar para backup:
Exporta todas las tablas como archivos JSONL a un directorio con timestamp:
Cada tabla se convierte en un archivo .jsonl (p.ej. sessions.jsonl, signals.jsonl). Ejecuta esto antes de actualizar RaiSE o antes de una migración de máquina.
Migrar desde RaiSE 2.x:
Si estás actualizando desde 2.x (donde los datos se almacenaban en archivos .raise/rai/personal/*.jsonl), ejecuta la migración de una sola vez:
Esto importa tus datos JSONL/YAML legacy a SQLite. Los archivos antiguos se renombran a *.migrated (no se eliminan). Consulta la Guía de Migración para el procedimiento completo de actualización.
Verificar integridad del esquema:
Verifica que .raise/schema.sum coincide con los hashes de migración actuales. Ejecuta esto tras actualizar RaiSE para confirmar que el esquema es consistente.
Regenerar el archivo de integridad (tras actualizaciones de raise-cli que agregan nuevas migraciones):
Reescribe .raise/schema.sum con los hashes de migración actuales. Haz commit del resultado junto con cualquier cambio de migración de esquema. Si check reporta obsoleto, ejecuta update y vuelve a ejecutar check.