Catálogo de Diagnósticos RAPIDxxx
Cuando ejecutas rapid validate, rapid scan, o comandos de gobernanza, RAPID OS emite diagnósticos deterministas identificados por códigos únicos. Esta guía documenta el significado de cada código y cómo resolverlo.
1. Configuración de Proyecto y Plantillas (RAPID100–RAPID110)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID100 | INFO | Configuración del proyecto válida y cargada. | Informativo. |
RAPID101 | ERROR | Archivo .rapid-os/config.json no encontrado. | Ejecutar rapid init para inicializar el proyecto. |
RAPID102 | ERROR | Error de sintaxis JSON en .rapid-os/config.json. | Corregir la sintaxis JSON o restaurar desde el archivo de backup .bak. |
RAPID103 | ERROR | Versión de esquema incompatible o inválida. | Verificar que schema_version coincida con la versión soportada. |
RAPID104 | ERROR | Campos requeridos ausentes en config.json. | Regenerar la configuración con rapid init. |
RAPID105 | ERROR | Una carpeta de plantillas obligatoria (stacks o topologies) no tiene ninguna plantilla Markdown. | Reinstalar Rapid OS o restaurar la carpeta templates/. |
RAPID106 | ERROR | Un archivo de plantilla no es UTF-8 válido. | Guardarlo como UTF-8 o restaurar la plantilla original. |
RAPID107 | ERROR | Un archivo de plantilla no se pudo leer (permisos o error de disco). | Revisar los permisos de templates/ o reinstalar Rapid OS. |
RAPID108 | WARNING | Un archivo de plantilla está vacío. | Restaurar la plantilla o eliminar el archivo. |
RAPID109 | ERROR | Una plantilla .json no es JSON válido. | Corregir la sintaxis indicada en el mensaje o restaurar la plantilla. |
RAPID110 | WARNING | Una plantilla contiene marcadores sin resolver ({{...}}, TODO, REPLACE_ME...). | Sustituir los marcadores; solo importa si editaste las plantillas. |
2. Fase 1 — Project Intelligence (RAPID600–RAPID604)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID600 | INFO | Snapshot .rapid-os/project.json válido. | Informativo. |
RAPID601 | ERROR | Sintaxis JSON corrupta en project.json. | Ejecutar rapid scan --write para regenerar el snapshot. |
RAPID602 | ERROR | Permisos de lectura insuficientes en project.json. | Ajustar los permisos del sistema de archivos. |
RAPID603 | ERROR | Versión de esquema de snapshot no soportada. | Ejecutar rapid scan --write para actualizar al schema version 1. |
RAPID604 | ERROR | Hecho (ProjectFact) o evidencia corrupta en snapshot. | Regenerar el snapshot con rapid scan --write. |
3. Fase 2 — Context Compiler (RAPID700–RAPID705)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID700 | INFO | Compilación de contexto exitosa. | Informativo. |
RAPID701 | ERROR | Fuente de contexto requerida no encontrada. | Comprobar que los estándares (.rapid-os/standards/) existan o inicializarlos con rapid init. |
RAPID702 | ERROR | El presupuesto de tokens/caracteres fue excedido por fuentes obligatorias. | Aumentar el límite con --max-chars <n> o reducir las fuentes requeridas en .rapid-os/config.json. |
RAPID703 | WARNING | Conflicto detectado entre fuentes de contexto seleccionadas. | Revisar el manifest con rapid context --manifest y resolver reglas contradictorias. |
RAPID704 | ERROR | Snapshot o fuente inválida para el compilador. | Ejecutar rapid scan --write y verificar integridad de archivos. |
RAPID705 | ERROR | Petición de contexto inválida (harness o modo no reconocido). | Verificar que el modo sea {feature,bugfix,refactor,hardening,research,general} y el ID de harness válido. |
4. Fase 3 — Spec Registry (RAPID800–RAPID809)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID800 | INFO | Registro de especificaciones íntegro. | Informativo. |
RAPID801 | ERROR | Archivo spec.json con esquema o contenido inválido. | Revisar la estructura en .rapid-os/specs/<id>/spec.json. |
RAPID802 | ERROR | Historial de revisiones ausente o discontinuo. | Verificar que existan las carpetas rev_0001, rev_0002 de forma secuencial. |
RAPID803 | ERROR | Archivo revision.json corrupto. | Restaurar o regenerar la revisión de la spec con rapid spec revise. |
RAPID804 | WARNING | Drift detectado entre markdown de spec y metadatos JSON. | Sincronizar el contenido o reexportar con rapid spec export-legacy. |
RAPID805 | ERROR | Transición de ciclo de vida inválida en spec. | Las specs solo pueden transicionar entre draft, ready y archived. |
RAPID806 | ERROR | Conflicto o formato inválido en identificador de spec. | Usar IDs alfanuméricos con guiones (^[a-z0-9][a-z0-9-]{0,62}$). |
RAPID807 | ERROR | Spec referenciada no encontrada en el registro. | Verificar con rapid spec list que la spec exista antes de crear un run. |
RAPID808 | ERROR | Ruta insegura detectada (path traversal intentado). | Mantener todas las operaciones dentro del árbol de trabajo del proyecto. |
RAPID809 | WARNING | Revisión huérfana no enlazada en el historial. | Verificar el array revisions en spec.json. |
5. Fase 4 — Execution Policy y Runs (RAPID1000–RAPID1014)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID1000 | INFO | Registro de runs y contratos íntegros. | Informativo. |
RAPID1001 | ERROR | Archivo run.json corrupto o con schema inválido. | Revisar .rapid-os/runs/<id>/run.json. |
RAPID1002 | ERROR | Archivo contract.json corrupto o digest alterado. | No modificar contract.json manualmente; es inmutable. |
RAPID1003 | ERROR | Discrepancia entre la spec del contrato y la spec registrada. | Regenerar el run asegurando que la spec esté en estado ready. |
RAPID1004 | ERROR | Discrepancia en el digest del snapshot de contexto. | Volver a compilar contexto consistente antes de iniciar el run. |
RAPID1005 | ERROR | Archivo .rapid-os/policy.json inválido o duplicado en policy init. | Corregir la sintaxis de la política o remover el archivo antes de inicializar uno nuevo. |
RAPID1006 | ERROR | Violación de política o intento no autorizado de degradar riesgo. | Respetar la evaluación calculada por la política según las rutas y tags. |
RAPID1007 | ERROR | Identificador de run no encontrado o duplicado. | Usar identificadores únicos con rapid run list. |
RAPID1008 | ERROR | Ruta de run insegura fuera del directorio raíz. | Corregir rutas relativas. |
RAPID1009 | ERROR | Transición de estado de run inválida. | Respetar el ciclo de vida: prepared → active → finished / failed / cancelled. |
RAPID1010 | ERROR | Transición de tarea del contrato inválida. | Las tareas solo admiten: in_progress, done, blocked, skipped. |
RAPID1011 | WARNING | Hueco en el historial secuencial de estados de run. | Comprobar que los archivos state_0001.json sigan secuencia numérica continua. |
RAPID1012 | ERROR | Archivo RunState corrupto o digest discrepante. | Verificar la integridad de los estados en .rapid-os/runs/<id>/states/. |
RAPID1013 | ERROR | Intento de eximir (waive) una compuerta que no está en waivable_gates. | Modificar la política en policy.json o satisfacer la compuerta con evidencia. |
RAPID1014 | ERROR | Fallo en precondiciones de límite de fase al transicionar el run. | Completar las tareas requeridas antes de marcar el run como finished. |
6. Fase 5 — Harness Capability Registry (RAPID1100–RAPID1112)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID1100 | INFO | Perfiles de harness y lock íntegros. | Informativo. |
RAPID1101 | ERROR | Identificador de capability no canónico o inválido. | Usar IDs canónicos (ej. shell.execute, repository.write). |
RAPID1102 | ERROR | Perfil de harness (HarnessProfile) inválido. | Corregir .rapid-os/harnesses/<id>.json según el schema v1. |
RAPID1103 | ERROR | Perfil de harness no encontrado. | Inicializar el perfil con rapid harness init <id> o usar uno integrado. |
RAPID1104 | ERROR | Formato de harness ID inválido. | Usar nombres alfanuméricos en minúsculas con guiones. |
RAPID1105 | ERROR | Ruta insegura o ilegible en el registro de harnesses o en .rapid-os/capabilities.lock: es un symlink, escapa de la raíz del proyecto o no es un directorio o archivo regular. | Reemplazarla por un directorio o archivo real dentro del proyecto (.rapid-os/harnesses/, .rapid-os/capabilities.lock); rapid harness lock regenera el lock. |
RAPID1106 | ERROR | Nivel de soporte inválido en perfil. | Usar supported, unsupported, o unknown. |
RAPID1107 | ERROR | Requerimiento de capability malformado en contrato. | Verificar la especificación de capacidades del contrato. |
RAPID1108 | ERROR | Objeto CapabilityResolution inválido. | Ejecutar nuevamente rapid harness resolve --run <id>. |
RAPID1109 | ERROR | Discrepancia en el digest de resolución. | Asegurarse de que el perfil y el contrato no hayan cambiado. |
RAPID1110 | ERROR | Harness incompatible o no resuelto bajo --require-compatible. | Seleccionar un harness compatible o ajustar los requerimientos del contrato. |
RAPID1111 | ERROR | Archivo .rapid-os/capabilities.lock ausente o corrupto bajo --locked. | Ejecutar rapid harness lock para generar el lock file. |
RAPID1112 | WARNING | El archivo lock está desactualizado respecto a los perfiles actuales. | Regenerar el lock con rapid harness lock. |
7. Fase 6 — Evidence Engine (RAPID1200–RAPID1211)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID1200 | INFO | Registros de evidencia íntegros y continuos. | Informativo. |
RAPID1201 | ERROR | ID de evidencia inválido. | El Evidence Engine gestiona IDs canónicos como E001, E002. |
RAPID1202 | ERROR | Schema de RunEvidence o content_digest inválido. | No alterar los archivos JSON de evidencia manualmente. |
RAPID1203 | ERROR | Desalineación en el binding del contrato, estado o productor. | Asegurarse de que la evidencia corresponda al run y estado activo. |
RAPID1204 | ERROR | Ruta insegura de evidencia fuera de .rapid-os/evidence/. | Mantener la estructura canónica. |
RAPID1205 | ERROR | Artefacto copiado faltante o con hash SHA-256 / tamaño discrepante. | Verificar que el artefacto no haya sido modificado tras su registro. |
RAPID1206 | ERROR | Payload JSON no satisface los campos mínimos para el EvidenceKind. | Consultar el Cookbook de Evidencias para el schema requerido. |
RAPID1207 | ERROR | La evidencia referencia una tarea, compuerta o capability inexistente. | Verificar que el task_id o gate_id esté en el contrato. |
RAPID1208 | ERROR | Hueco en la secuencia numérica de evidencias (ej. falta E002 entre E001 y E003). | Restaurar la secuencia inmutable. |
RAPID1209 | WARNING | Directorio huérfano de artefactos detectado tras una interrupción. | Ejecutar rapid evidence verify para auditar inconsistencias. |
RAPID1210 | ERROR | Archivo de evidencia referenciado no encontrado en disco. | Verificar la existencia de los archivos en .rapid-os/evidence/<run-id>/. |
RAPID1211 | ERROR | Intento de sobreescritura de un archivo de evidencia existente. | La evidencia es append-only; nuevos registros deben usar el siguiente ordinal. |
8. Fase 6 — Behavioral Evals (RAPID1220–RAPID1229)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID1220 | INFO | Reportes de evaluación de comportamiento íntegros. | Informativo. |
RAPID1221 | ERROR | Esquema de EvaluationReport inválido. | Regenerar el reporte con rapid eval run --write. |
RAPID1222 | ERROR | Discrepancia en el hash SHA-256 del reporte de evaluación. | No editar manualmente los archivos en .rapid-os/evals/. |
RAPID1223 | ERROR | Fallo en repetición semántica (replay mismatch). | El reporte almacenado difiere del cómputo determinista sobre la evidencia real. |
RAPID1224 | ERROR | Ruta de reporte insegura. | Mantener los reportes en .rapid-os/evals/<run-id>/reports/. |
RAPID1225 | ERROR | Veredicto UNVERIFIED bajo la bandera --require-pass. | Registrar evidencia observable para todas las compuertas reconocidas. |
RAPID1226 | ERROR | Veredicto FAIL bajo la bandera --require-pass. | Corregir las pruebas o requerimientos fallidos antes de evaluar. |
RAPID1227 | WARNING | El reporte almacenado precede al estado o evidencias más recientes. | Ejecutar rapid eval run --write para generar una nueva revisión de reporte. |
RAPID1228 | ERROR | Reporte de evaluación referenciado no encontrado. | Ejecutar rapid eval run --write para crearlo. |
RAPID1229 | ERROR | Intento de sobreescribir una revisión existente de reporte. | Las revisiones son append-only (eval_report_0001.json, eval_report_0002.json). |
9. Capa de Intención y Configuración (RAPID1300–RAPID1339)
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID1300 | WARNING | No se especificó ni detectó un harness en el entorno/configuración. Se aplicó fallback a cursor. | Especificar --harness <id>, fijar RAPID_HARNESS=<id>, configurar "default_harness" o dejar un solo harness soportado en "tools" de .rapid-os/config.json (con varios, el aviso los lista). |
RAPID1301 | WARNING | Comando de prueba (test_command) ausente o vacío en .rapid-os/config.json. | Configurar "test_command": ["python", "-m", "pytest"] (como lista argv) en .rapid-os/config.json o inicializar con rapid init --test-command "<cmd>". |
RAPID1302 | ERROR | Entrada interactiva requerida en rapid init pero stdin no es una terminal (o finalizó con EOF). | Ejecutar con flag -y / --yes (modo desatendido con defaults) o proveer flags complementarios (--stack, --topology, --agents, --test-command). |
RAPID1303 | ERROR | Playbook o plantilla de modo no encontrada, corrupta o sin instrucciones para la acción requerida. | Verificar que el archivo de plantilla .json bajo templates/modes/<mode>.json exista y sea sintácticamente válido. |
RAPID1304 | ERROR | Sesión activa (.rapid-os/session.json) inválida o referencia un run_id inexistente en RunRegistry. | Verificar el run referenciado o reiniciar la sesión creando un nuevo run con rapid run create. |
RAPID1305 | WARNING | El run activo en .rapid-os/session.json alcanzó un estado terminal (finished, failed, cancelled). | Iniciar un nuevo run de especificación o limpiar la sesión. |
RAPID1306 | ERROR | Transición de tarea inválida, ambigua (múltiples en progreso sin ID explícito) o sin tareas pendientes. | Especificar explícitamente el task_id (ej. T001) o la razón obligatoria para skip. |
RAPID1307 | ERROR | No existe una sesión activa (.rapid-os/session.json) para ejecutar comandos dependientes del run actual. | Crear o activar un run primero mediante rapid run create --spec <spec-id> o rapid start. |
RAPID1308 | ERROR | Intento de iniciar un nuevo run (rapid start) cuando ya existe un run activo no terminal en sesión. | Continuar con rapid next, abortar el run existente con rapid abort o usar la bandera --resume. |
RAPID1309 | ERROR | Proyecto no inicializado (directorio .rapid-os/standards/ ausente al ejecutar rapid start). | Ejecutar rapid init para inicializar los estándares y la configuración del proyecto. |
RAPID1310 | ERROR | Aprobación de compuerta humana (rapid approve) invocada sin terminal interactiva (TTY) o desde una sesión de agente (CLAUDE_CODE_CHILD_SESSION == 1), o bajo un proceso ancestro que es un harness de agente (hoy claude). La confirmación por TTY se puede emular (script/pty) y actúa como defensa en capas, no una garantía absoluta (reforzada en PRs 2.1 y 3.2). | Ejecutar rapid approve <gate-id> directamente por una persona en su propia terminal interactiva para confirmar la aprobación escribiendo aprobar <gate-id>. Las mismas comprobaciones se aplican a rapid finish --accept-test-command (RAPID1435). |
RAPID1311 | ERROR | Harness no soportado para shortcuts (rapid shortcuts --harness <id>). | Usar uno de claude, codex, antigravity, cursor o vscode. |
RAPID1312 | ERROR | No hay harness seleccionado: falta --harness y .rapid-os/config.json no existe o no lista ningún harness soportado en tools. | Pasar --harness <id> o ejecutar rapid init --agents <lista>. |
RAPID1313 | ERROR | Plantilla de shortcut ausente o inválida bajo templates/shortcuts/<nombre>.md (frontmatter, descripción o cuerpo). | Restaurar la plantilla desde la instalación de Rapid OS o reinstalar el paquete. |
RAPID1314 | ERROR | No se pudo leer, escribir o eliminar un archivo de shortcut: ruta insegura, enlace simbólico, error del sistema de archivos o contenido distinto renderizado por dos harnesses para la misma ruta. | Revisar permisos y que la ruta no sea un enlace simbólico; reintentar. |
RAPID1315 | WARNING | Shortcut de modo omitido: no existe el playbook templates/modes/<modo>.json. | Esperado hasta que el modo tenga playbook; al agregarlo, ejecutar rapid shortcuts install de nuevo. |
RAPID1316 | WARNING | Un archivo de shortcut existente no tiene el marcador generated by rapid shortcuts y será reemplazado. | La versión anterior queda como .bak; revisarla antes de continuar o usar otro nombre para el skill propio. |
RAPID1317 | WARNING | rapid shortcuts remove omitió un archivo sin el marcador generated by rapid shortcuts. | Eliminarlo manualmente si realmente se desea; Rapid OS solo borra archivos que generó. |
RAPID1318 | ERROR | rapid shortcuts se invocó sin subcomando. | Usar install, list o remove. |
RAPID1319 | WARNING / INFO | rapid doctor: no se pudo leer la cadena de procesos padre (WARNING; rapid approve no puede buscar un harness de agente entre sus ancestros y solo aplica las comprobaciones de TTY y CLAUDE_CODE_CHILD_SESSION), o doctor se ejecuta bajo un harness de agente (INFO; allí rapid approve se rechaza con RAPID1310). | En el caso WARNING, comprobar permisos de /proc, la disponibilidad de ps o el soporte de la plataforma; en el caso INFO, ejecutar rapid approve en tu propia terminal. |
RAPID1320 | ERROR | rapid check --expect fail ligado a una compuerta (--gate) o invocado sin una tarea válida (requiere --task <id> o exactamente una tarea in_progress). | Especificar --task <task_id> o verificar que haya exactamente una tarea in_progress en la sesión activa. No se permite ligar fallas esperadas a compuertas. |
RAPID1321 | WARNING | rapid shortcuts install, list y rapid init --shortcuts: la selección de harnesses deja el mismo /rapid-* en dos carpetas que una misma herramienta lee (cursor o vscode junto con claude, codex o antigravity). Es solo un aviso: no cambia el exit code ni lo que se escribe, y la documentación oficial de Cursor y de VS Code no especifica cómo muestran skills del mismo nombre en carpetas distintas. | Instalar solo la combinación recomendada en el aviso (la herramienta ya lee esas carpetas); ver «Si combinas harnesses» en la guía de shortcuts. |
RAPID1322 | ERROR | rapid start <modo> --spec-file: ya existe una spec con la misma identidad (id o título) y contenido distinto (o está archivada). Con el mismo contenido se reutiliza sin error. | Reutilizar la spec existente con rapid start <modo> --spec <id>, o cambiar el título/id del archivo de spec. |
RAPID1330 | ERROR | rapid approve con opciones incompatibles: --reject y --waive juntos, o cualquiera de los dos sin <gate-id>. | Usar una sola acción y pasar el gate (rapid approve lista los pendientes). |
RAPID1331 | ERROR | No se pudo determinar el revisor: no se pasó --reviewer, git config user.name no está definido y no se indicó un nombre en la terminal. | Pasar --reviewer <nombre> o ejecutar git config user.name "<nombre>". |
RAPID1332 | ERROR | El gate no existe, no es un gate humano, ya no está pendiente, o fue rechazado (changes_requested) y permanece en FAIL durante el run. | Verificar el id con rapid approve; si fue rechazado, ejecutar rapid abort e iniciar un run nuevo. Para deshacer una decisión: rapid abort antes de rapid finish; después de rapid finish, git revert y un run nuevo (Deshacer una aprobación). |
RAPID1333 | ERROR | Falta --reason en --reject/--waive, el gate no es dispensable según el contrato, o el run no está en un estado que permita modificar el gate (debe estar active y con todas las tareas terminales). | Indicar --reason, dispensar solo gates waivable (p. ej. gate.review) y completar las tareas antes de aprobar. |
RAPID1334 | ERROR | No se pudo crear el worktree aislado de rapid start --worktree (no es un repositorio git, no hay commits, la ruta ../<repo>-<run-id> ya existe o git worktree add falló). | Confirmar un repositorio git con al menos un commit, liberar la ruta y reintentar rapid start --resume --worktree. En un repositorio sin commits, rapid start ya no lo produce por una política que pide aislamiento: el run va en el espacio actual con isolation_waived: "no_commits" y las puertas humanas intactas; --worktree explícito sin commits sigue siendo este error. |
RAPID1335 | ERROR | El worktree registrado en workspace_path de session.json ya no existe. | Restaurarlo con git worktree add en esa ruta o cancelar el run con rapid abort. |
RAPID1336 | ERROR | rapid attach falló: sin --label, archivo inexistente, fuera del proyecto y del workspace, bajo .rapid-os/, o tarea inexistente. | Corregir la ruta, indicar --label y, si aplica, un --task válido. |
RAPID1337 | ERROR | rapid shortcuts install --hooks / remove --hooks (o rapid init --hooks, donde se reporta como aviso) sin el harness claude seleccionado. | Seleccionar claude (--harness claude o tools en .rapid-os/config.json) o quitar --hooks. |
RAPID1338 | ERROR | .claude/settings.json no se puede fusionar: JSON inválido, raíz que no es un objeto, hooks o hooks.<Evento> con un tipo inesperado, o error al escribirlo. El archivo no se modifica. | Corregir el archivo a mano (o restaurar el .bak) y repetir el comando. |
RAPID1339 | WARNING | rapid doctor: hay hooks de Claude Code instalados pero rapid no se resuelve en el PATH; Claude Code trata el fallo como error no bloqueante y el run deja de reforzarse. | Instalar Rapid OS donde lo vea Claude Code (p. ej. pipx install git+https://github.com/alyconr/Rapid-OS.git) o añadir su directorio de scripts al PATH. |
10. Catálogo de stacks, onboarding, arquitectura, seguridad e integridad de la evidencia (RAPID1400–RAPID1439)
| Código | Nivel | Significado | Acción |
|---|---|---|---|
RAPID1400 | INFO | .rapid-os/setup.json existe y es válido ("Setup válido"). Lo emite rapid validate. | Ninguna. |
RAPID1401 | ERROR | Sidecar de catálogo inválido bajo templates/stacks/, templates/topologies/ o templates/setup/: JSON ilegible, schema_version distinto de 1, campo faltante o vacío, id distinto del nombre del archivo, topología desconocida en compatible_topologies, default_topology fuera de compatible_topologies, o banco de preguntas mal formado. En un stack de templates/stacks/<componente>/: componente distinto de su carpeta, covers sin su componente, factors o sources incompletos (los once factores y al menos una URL https de cada uno), hosting_fit fuera de serverless, containers y PaaS, supported_services con un motor que no está en templates/services/, o un id repetido. Una topología sin components. rapid init aborta con este código en lugar de un traceback. | Corregir o restaurar el archivo indicado desde la instalación de Rapid OS, o reinstalar el paquete. |
RAPID1402 | ERROR | rapid setup set topology <id> con una topología incompatible con el stack ya elegido (según compatible_topologies del catálogo; un stack fuera del catálogo acepta todas menos doc-site), o rapid setup set services con un motor que el stack no soporta (service_roles del stack). No se escribe nada. Al cambiar el stack con set stack, una topología que ya no encaja no es error: queda sin decidir. | Elegir una topología de la lista que muestra el mensaje o rapid setup next. También una topología que no encaja con alguno de los stacks ya elegidos (uno por componente), y rapid setup set services con un motor que el stack del backend no declara en supported_services (el mensaje lista los que sí). |
RAPID1406 | ERROR | .rapid-os/setup.json es inválido: JSON ilegible, schema_version distinto de 1, o un campo con tipo o valor no permitido (stack, docs.<id>.status, etc.). rapid setup next y show salen con 1 sin traceback y no modifican el archivo. | Corregir el archivo según el mensaje, o moverlo para que el estado se derive del disco. |
RAPID1403 | WARNING / ERROR | Un documento del onboarding redactado por el agente (source: drafted) no tiene una sección requerida de su banco: falta un encabezado ## que coincida con cualquiera de sus títulos (es/en, sin distinguir mayúsculas). No se evalúa para source: provided. Doble uso: en rapid validate es un WARNING sobre un documento ya escrito; en rapid setup doc <id> --source drafted es un rechazo (ERROR, exit 1) y no se escribe nada. | Añadir la sección o rehacer el documento. Las secciones condicionales (Base de datos local de DATA_MODEL.md con un servicio database) cuentan mientras se cumple su condición. |
RAPID1404 | WARNING / ERROR | Un documento del onboarding redactado por el agente supera max_chars de su banco. No se evalúa para source: provided. Mismo doble uso que RAPID1403: WARNING en rapid validate, rechazo (exit 1, nada escrito) en rapid setup doc ... --source drafted. | Acortar el documento. |
RAPID1405 | ERROR | rapid setup doc <id> --source drafted sobre un documento que una persona aportó (source: provided) o sobre un archivo escrito a mano: el borrador lo reemplazaría. No se escribe nada. | Repetir con --replace si se quiere reemplazar (queda un .bak), o dejar el documento como está. |
RAPID1407 | ERROR | rapid setup finish mientras queda una decisión abierta (stack, topología, arquetipo, agentes, comando de test un documento pending o la revisión de borradores, review_drafts, sin cerrar). No se escribe nada. | Ejecutar el comando que indica el mensaje (el command de rapid setup next) y repetir finish. |
RAPID1408 | WARNING | Un documento del onboarding redactado por el agente sigue sin confirmar por una persona; llega al agente como supuesto. | Que una persona lo revise y lo confirme. |
RAPID1409 | ERROR | rapid setup stack --custom recibió un tech-stack.md sin alguna de las secciones Runtime, Framework o Testing (un encabezado ## o una línea - **Nombre:**). No se escribe nada. | Añadir las secciones que nombra el mensaje y repetir el comando. |
RAPID1410 | WARNING | standards/business.md y docs/BUSINESS_RULES.md existen y sus cuerpos difieren (sin frontmatter y con espacios normalizados). Gana docs/BUSINESS_RULES.md; el estándar queda fuera del contexto. | Unificar el contenido o eliminar standards/business.md. |
RAPID1412 | WARNING | Una plantilla de stack o topología (.md) no tiene su sidecar .json. La plantilla sigue siendo utilizable y se trata como compatible con todas las topologías excepto doc-site. | Añadir templates/<stacks|topologies>/<id>.json para declarar compatible_topologies y default_topology; no es obligatorio. |
RAPID1413 | ERROR | Subcomando, clave o valor de rapid setup inválido: clave de set desconocida, stack/topología/arquetipo/agente inexistente, --file ilegible o vacío, documento desconocido, rol o motor de services desconocido o pareja rol-motor incompatible (rapid setup set services <rol>:<motor>, con @now o @later opcional), plataforma desconocida en rapid deploy --target (Plataforma desconocida), --component con una clave que no es stack, un componente desconocido o que el stack no puede llenar (rapid setup set stack go --component frontend), combinación de modos de doc (--skip, --confirm, --reopen, --from-legacy, --source), nada que confirmar o importar, --skip de un documento ya escrito, o rapid setup sin subcomando, rapid setup review sin --done; también rapid init --business-file con una ruta vacía, un directorio o un archivo ilegible, y `rapid start bugfix | refactor |
RAPID1414 | WARNING | rapid init instaló shortcuts o hooks, o rapid doctor los encontró, y rapid no se resuelve en el PATH: se ejecutan desde el shell del agente. No cambia el exit code (0). | Instalar Rapid OS con el instalador o con pipx install git+https://github.com/alyconr/Rapid-OS.git, o añadir su directorio de scripts al PATH. |
RAPID1415 | ERROR / WARNING | El cuerpo de un documento del onboarding tiene un ? entre dos letras o al inicio de una palabra (vac?os, Decisi?n, ?xito): lo que deja una tubería que no es UTF-8 (la de Windows PowerShell 5.1 hacia programas nativos usa ASCII) de los acentos y la ñ. Se ignoran los bloques de código, el código en línea y las URL. En rapid setup doc <id> --source drafted es un rechazo (exit 1, no se escribe nada); con --source provided es un WARNING y el texto se guarda tal cual, porque Rapid OS no reescribe lo que pega la persona. | Escribir el documento en un archivo UTF-8 y enviarlo con --file <ruta>. En Windows PowerShell: Set-Content -Encoding utf8 $env:TEMP\rapid-<id>.md y rapid setup doc <id> --source drafted --file $env:TEMP\rapid-<id>.md. |
RAPID1416 | ERROR | rapid start en una carpeta que no es un repositorio git, sin git instalado, o en un repositorio en el que git no confía. Rapid OS observa los cambios del run con git y el run nunca podría pasar. Se comprueba antes de crear el run y antes del rechazo de repositorio vacío (RAPID1413): no se escribe nada en .rapid-os/runs ni en session.json. | Ejecutar git init, o rapid setup finish, que crea el repositorio (sin commits) si falta; instalar git si no está. Carpeta en la que git no confía (detected dubious ownership, habitual en Windows en otra unidad o en carpetas creadas por otro usuario): el mismo código, otro texto (RAPID1416 git no confía en esta carpeta (dubious ownership) ...); git init no lo arregla, hay que ejecutar git config --global --add safe.directory <ruta> con la ruta que imprime el mensaje. rapid setup finish no ejecuta git init en ese caso: avisa con el mismo comando. Rapid OS ejecuta todos sus comandos git con -c safe.directory=<raíz del proyecto>, así que untrusted solo ocurre si git no respeta ese ajuste (versiones anteriores a 2.38) o si el repositorio está en una carpeta superior a la raíz del proyecto. El caso habitual del sandbox de Codex en Windows (otro usuario) ya no bloquea a Rapid OS: lo único pendiente es la excepción para el git de la persona, que llega como person_actions (git-safe-directory) en rapid setup finish, rapid setup next --json y rapid doctor. Ver Windows: sandbox y git. |
RAPID1417 | ERROR | Un comando que escribe estado (rapid setup set, init, start, finish, check...) se ejecutó desde la carpeta home, donde .rapid-os es la instalación de Rapid OS (~/.rapid-os) y no un proyecto. No se escribió nada. | Entra en la carpeta de tu proyecto y vuelve a ejecutarlo. rapid doctor ahí dice «No estás en un proyecto» en lugar de dar errores falsos. |
RAPID1420 | ERROR | rapid arch check encontró un import que rompe la regla de arquitectura de .rapid-os/standards/architecture.json; se emite una por violación, con archivo, línea, import y regla: layer (una capa importa una capa que no le toca), cross_module (un módulo importa de otro algo distinto de su punto público), shared (shared importa un módulo), init_reexport (el __init__.py de un módulo de Python importa algo distinto de su propio public.py) o domain_forbidden_import (domain importa fastapi, sqlalchemy, react, @prisma/client... según el stack). También se usa para un architecture.json ilegible o inválido y para un run cuyo contrato incluye gate.architecture cuando no hay architecture.json en el directorio actual ni en el proyecto principal de la sesión (el run exige gate.architecture y no hay architecture.json). En un run, hace fallar rapid check --gate gate.architecture y rapid finish no da PASS. | Cambiar el código para respetar la regla (importar solo el punto público del otro módulo, mover la lógica a la capa que toca, quitar la librería del domain). Nunca desactives ni edites architecture.json para que pase: pide a la persona que cambie la regla. En un proyecto con Ruby on Rails la regla delega en bin/packwerk check: si packwerk no está (RAPID1420 packwerk no está disponible...) el check termina con 1 y el gate no se da por satisfecho; instálalo con bundle add packwerk --group development && bundle binstub packwerk. Con un architecture.json de varias reglas (rules) se juzga cada una en su carpeta. |
RAPID1421 | WARNING | rapid doctor encontró .rapid-os/standards/security.md y no menciona OWASP ASVS: el proyecto se inicializó antes de la base de seguridad (OWASP Top 10:2025, ASVS 5.0.0, SSDF, SLSA). No cambia el exit code. | Ejecutar rapid setup set archetype <el actual> --refresh (el aviso lo escribe con el arquetipo del proyecto): regenera security.md y coding-rules.md y deja las copias anteriores en .rapid-os/backups/. |
RAPID1422 | ERROR | rapid finish volvió a ejecutar gate.architecture sobre el estado final del código y encontró una violación que no estaba cuando el gate pasó (o la regla ya no existe). Imprime las violaciones (RAPID1420), sale con 1 y deja el run abierto sin veredicto. Corrige el código y ejecuta rapid finish otra vez. | |
RAPID1423 | ERROR | rapid approve o rapid finish encontraron el árbol de trabajo distinto del que vio el último check de gate.tests (un archivo editado, un test borrado); rapid next devuelve verify con el mismo mensaje. Nada verificó esos cambios. | Ejecuta de nuevo rapid check --gate gate.tests -- <comando de test> y repite el comando; el mensaje nombra los archivos que cambiaron. |
RAPID1424 | ERROR | El texto que llega a rapid start --spec-file, rapid setup doc --file o rapid setup stack --custom --file (por stdin o desde un archivo) no es UTF-8 válido. No se guardó nada. | Guarda el contenido como UTF-8 y envíalo otra vez. Rapid OS lee la entrada como bytes y la decodifica como UTF-8 (un BOM no importa), así que la página de códigos de la consola da igual. |
RAPID1425 | WARNING | rapid doctor encontró á, é, ó, ñ... en una spec guardada o en un documento del onboarding: texto UTF-8 leído como cp1252 (versiones anteriores en Windows). Las specs guardadas no se reescriben (el registro tiene huellas). Una revisión corrige el texto pero no el id: si el id también salió alterado, hace falta una spec nueva. | Crea una revisión nueva de la spec con el texto correcto (rapid spec revise); reescribe un documento con rapid setup doc <id> --source drafted --replace --file <ruta>. |
RAPID1426 | WARNING | El test_command de .rapid-os/config.json no se puede ejecutar: su primer elemento no está en el PATH (en Windows cuentan .cmd y .exe) ni es un archivo del proyecto. rapid doctor y rapid start lo dicen antes de que la baseline falle con «comando no encontrado». | Ejecuta rapid setup set test-command --recommended: aplica el comando que el catálogo propone para los stacks decididos (el mensaje lista el comando de cada componente para leerlos). Con el onboarding terminado ya escribe config.json. Sin propuesta del catálogo, rapid setup set test-command '<cmd>'. |
RAPID1427 | WARNING | rapid setup va a regenerar un archivo de agente (CLAUDE.md, AGENTS.md, INSTRUCTIONS.md...) que difiere de lo que Rapid OS escribió la última vez: se editó a mano. El archivo se reescribe y la copia anterior va a .rapid-os/backups/. Un cambio de finales de línea por sí solo (CRLF/LF) no cuenta como edición. | Pasa lo que quieras conservar a .rapid-os/standards/ (la fuente de esos archivos) y regenera; o recupéralo de la copia. |
RAPID1430 | ERROR | rapid evidence add con evidencia que solo escribe Rapid OS: un productor rapid:* (rapid:check, rapid:start, rapid:finish, rapid:attach...), un review con producer user, o un review con los campos via, tree o accepts. Esa evidencia solo la escribe el comando que la observa (rapid check, start, finish, attach, approve). No se registró nada. El registro sigue leyendo esa evidencia cuando la escribieron esos comandos. | Ejecuta el comando en lugar de declarar su resultado: rapid check -- <test_command> para los tests, rapid approve <gate> en la terminal de la persona para un gate humano. evidence add registra evidencia de fuera de Rapid OS (harness:<id>, ci:<nombre>, external:<nombre>), que en el ruleset 3 nunca satisface un gate de tests ni uno humano. |
RAPID1431 | ERROR | rapid run gate sobre un gate humano (peer_review, security_review, migration_review, manual_approval, final_verification, como gate.final-verification o gate.review). El gate no cambia. | Una persona lo aprueba con rapid approve <gate> en su propia terminal (o --waive --reason TEXTO / --reject --reason TEXTO). |
RAPID1432 | WARNING | Un gate de tests (gate.tests, gate.baseline) no tiene una ejecución de tests de la que Rapid OS pueda responder (ruleset 3): la salida del check no tenía resumen de tests (pytest, unittest, vitest, jest, cargo test, go test -v) y su comando no es test_command, no ejecutó ningún test, no guardó tree, o la evidencia la escribió rapid evidence add. rapid check --kind test con un comando así lo dice y registra un command_result; rapid next devuelve verify con el motivo; la aserción del gate queda unverified, nunca pass. | Ejecuta el comando que da rapid next (rapid check --gate gate.tests -- <test_command>). |
RAPID1433 | ERROR | rapid finish (ruleset 3) encontró el árbol de trabajo distinto del que una persona aprobó con rapid approve, o una aprobación sin árbol legible; nombra los archivos y deja el run abierto sin veredicto. rapid next devuelve await_human_approval con el mismo mensaje. | Vuelve a ejecutar el check de tests (rapid next lo da); la persona aprueba otra vez con rapid approve <gate> (un gate reconocido cuyo código cambió se puede volver a aprobar) y se repite rapid finish. |
RAPID1434 | ERROR | En un run de ruleset 3, la última evidencia de tests de gate.tests no dice qué árbol de trabajo verificó (sin tree, por ejemplo evidencia escrita con rapid evidence add, o su snapshot en .rapid-os/scratch/trees/ no se puede leer): cuenta como código no verificado. rapid next devuelve verify; rapid approve y rapid finish se niegan. Los runs creados antes del ruleset 3 conservan el comportamiento anterior (no se juzgan). | Vuelve a ejecutar rapid check --gate gate.tests -- <test_command> y repite el comando. |
RAPID1435 | ERROR | rapid finish (ruleset 3): el último check de tests usó otro comando que la baseline, así que sus conteos no son comparables (el otro comando puede ejecutar menos tests). El run queda abierto sin veredicto. En runs anteriores al ruleset 3 es solo un aviso. | Repite el check con el comando de la baseline (rapid next lo da); o la persona acepta la diferencia en su propia terminal con rapid finish --accept-test-command "MOTIVO", escribiendo aceptar comando de tests (desde un agente es RAPID1310). La aceptación queda como evidencia review (accepts: test_command_mismatch) con el motivo. |
11. Validación del proyecto: estándares, configuración, stack y contexto (RAPID200–RAPID502)
Los emiten rapid validate y rapid doctor sobre .rapid-os/.
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID200 | ERROR | Falta la carpeta .rapid-os/ del proyecto. | Ejecutar rapid init (o rapid setup next) en la raíz del proyecto. |
RAPID201 | ERROR | Falta .rapid-os/standards/. | Ejecutar rapid init para regenerar los estándares. |
RAPID202 | ERROR | Falta un estándar obligatorio (tech-stack.md o topology.md). | Ejecutar rapid setup finish o rapid init para generarlo. |
RAPID203 | WARNING | Falta un estándar opcional (security.md, business.md o coding-rules.md). | Informativo; rapid setup finish escribe security.md y coding-rules.md. |
RAPID204 | ERROR | Un estándar no es UTF-8 válido. | Guardarlo como UTF-8 o regenerarlo. |
RAPID205 | ERROR | Un estándar no se pudo leer. | Revisar permisos y existencia del archivo. |
RAPID206 | ERROR | Un estándar obligatorio está vacío. | Regenerarlo con rapid init o rapid setup finish. |
RAPID207 | WARNING | Un estándar opcional está vacío. | Completarlo o eliminarlo. |
RAPID208 | WARNING | Un estándar contiene marcadores sin resolver ({{...}}, TODO, REPLACE_ME...). | Sustituirlos por el contenido real. |
RAPID300 | WARNING | Falta .rapid-os/config.json; se usan las herramientas por defecto. | Ejecutar rapid init o rapid setup set agents <ids>. |
RAPID301 | ERROR | config.json no es JSON válido. | Corregir la sintaxis o restaurar el archivo desde .rapid-os/backups/ o su .bak. |
RAPID302 | ERROR | config.json no se pudo leer. | Revisar permisos del archivo. |
RAPID303 | ERROR | El esquema de config.json es inválido (por ejemplo tools no es una lista). | Corregir el campo que indica el mensaje. |
RAPID304 | WARNING | No hay herramientas seleccionadas en config.json. | Elegirlas con rapid setup set agents <ids>. |
RAPID305 | ERROR | Los ids de tools en config.json deben ser cadenas. | Dejar solo ids de texto en tools. |
RAPID306 | INFO | Se seleccionó una herramienta de investigación conocida (context7, firecrawl). | Informativo. |
RAPID307 | ERROR | Referencia a una herramienta desconocida en config.json. | Usar un agente registrado o una herramienta de investigación conocida (el aviso las lista). |
RAPID308 | ERROR | El agente seleccionado no tiene adaptador registrado. | Elegir un agente de la lista soportada. |
RAPID309 | ERROR | El adaptador falló al renderizar el contexto de validación. | Reinstalar Rapid OS; si persiste, abrir un issue con el mensaje. |
RAPID310 | ERROR | El adaptador no renderizó una de las salidas que declara. | Reinstalar Rapid OS; es un defecto del adaptador. |
RAPID311 | ERROR | El adaptador declara una ruta de salida insegura (absoluta o con ..). | Reinstalar Rapid OS; es un defecto del adaptador. |
RAPID400 | INFO | Stack detectado en tech-stack.md. | Informativo. |
RAPID401 | INFO | Topología detectada en topology.md. | Informativo. |
RAPID402 | ERROR | El stack solo admite la topología doc-site. | Cambiar la topología con rapid setup set topology doc-site o elegir otro stack. |
RAPID403 | ERROR | La topología doc-site debe usar el stack docs-modern. | rapid setup set stack docs-modern o cambiar de topología. |
RAPID404 | ERROR | El stack no es compatible con la topología elegida (el mensaje lista las compatibles). | Elegir una topología compatible o cambiar el stack. |
RAPID405 | WARNING | fullstack-baas con python-ai: la topología está pensada para aplicaciones web integradas. | Confirmar que la combinación es intencional. |
RAPID500 | ERROR | El contexto ensamblado del proyecto está vacío. | Regenerar los estándares con rapid init o rapid setup finish. |
RAPID501 | INFO | Longitud del contexto ensamblado. | Informativo. |
RAPID502 | WARNING | El contexto ensamblado contiene marcadores sin resolver. | Sustituir los marcadores en los estándares que los contengan. |
12. Entorno de rapid validate (RAPID900–RAPID909)
rapid validate abre su informe con el entorno que usó; son informativos salvo RAPID906.
| Código | Severidad | Causa común | Acción de remediación |
|---|---|---|---|
RAPID900 | INFO | Directorio actual. | Informativo. |
RAPID901 | INFO | Directorio de Rapid OS (RAPID_HOME). | Informativo. |
RAPID902 | INFO | Directorio del script. | Informativo. |
RAPID903 | INFO | Directorio de plantillas en uso. | Informativo. |
RAPID904 | INFO | Directorio .rapid-os/ del proyecto. | Informativo. |
RAPID905 | INFO | Archivo de configuración en uso. | Informativo. |
RAPID906 | WARNING | Node.js/npx no está disponible: los skills remotos y algunos flujos MCP no funcionarán. | Instalar Node.js si usas esos flujos. |
RAPID907 | INFO | No hay un proyecto Rapid OS en el directorio actual. | Ejecutar rapid init o entrar a la raíz del proyecto. |
RAPID908 | INFO | Harness por defecto de config.json. | Informativo. |
RAPID909 | INFO | Comando de test de config.json. | Informativo; se cambia con rapid setup set test-command <cmd>. |