Autoridad: fuente de verdad conceptual y estratégica del harness. Corte documental: v2.29.1, 2026-07-16. Estado local conocido: O4+O5 en implementación; no se consideran entregados hasta su verificación y archivo. Alcance de esta reconciliación: unifica los análisis históricos de
analisis-fino/. El estado del código no ha sido auditado de nuevo en este documento; las capacidades entregadas se basan en el historial y los criterios registrados por el propio proyecto. Ejecución: el orden, estado y criterios de terminado viven exclusivamente en../roadmaps/harness-evolution.md.
ospec-workflow es un harness Spec-Driven Development, multi-target y LLM-first para desarrollar cambios trazables con un modelo que actúa como un senior que acompaña:
- explicita intención, restricciones y decisiones materiales;
- recomienda con racional, consecuencias y reversibilidad;
- no sustituye decisiones de producto o arquitectura que requieren aprobación humana;
- conserva trazabilidad desde requisitos hasta implementación y evidencia;
- adapta la profundidad del proceso al riesgo real del cambio;
- utiliza código determinista para validación, estado, seguridad y operaciones mecánicas;
- explota las capacidades nativas de cada host sin romper el canon común.
La promesa no es «generar más documentación». Es aplicar el grado correcto de especificación, diseño, verificación y revisión para cada cambio, dejando evidencia auditable.
La documentación activa se divide por responsabilidad:
| Documento | Responde a | No debe contener |
|---|---|---|
| Este análisis | Qué se construye, por qué, principios, arquitectura objetivo y problemas abiertos | Checkboxes operativos, puntero de siguiente tarea, crónica de sesiones |
docs/roadmaps/harness-evolution.md |
Qué se implementa ahora, dependencias, orden y done criteria | Nuevas decisiones arquitectónicas sin reflejarlas aquí |
docs/roadmaps/targets/*.md |
Cómo aprovechar un host concreto | Prioridad transversal independiente del roadmap general |
analisis-fino/archive/** |
Evidencia histórica y origen de decisiones | Estado vigente o trabajo nuevo |
Una fuente de verdad activa debe estar versionada. Por eso los documentos normativos salen de analisis-fino/, que estaba gitignoreado, y pasan a docs/.
- Aprobación humana para decisiones materiales. Ningún modo, incluido CI, auto-aprueba un gate. La degradación no interactiva es
haltcon reporte. - OpenSpec y Git son el estado canónico. No se introduce una base de datos o servicio como autoridad paralela.
- Separación semántica, no burocracia física. Proposal, comportamiento, diseño y tareas conservan responsabilidades distintas; no exigen necesariamente cuatro invocaciones ni cuatro archivos extensos.
- El modelo produce semántica; el runtime comprueba estructura. Validaciones predecibles, transacciones de filesystem, fingerprints y evidencia mecánica pertenecen a código determinista.
- Fail-closed selectivo. Seguridad, integridad contractual y operaciones destructivas fallan cerradas. Telemetría y ayudas puramente advisory pueden degradar de forma explícita.
- Adaptación continua. La clasificación inicial es una hipótesis, no una sentencia. El perfil se recalcula al aparecer spec, diseño, diff y evidencia de verify.
- Degradación por target declarada. Una garantía solo se anuncia cuando el host puede ejecutarla o existe una mitigación verificable.
- Runtime ligero y portable. Se conserva la dirección CommonJS/Go, sin frameworks ni una cadena de build obligatoria para instalar el target.
- Una iniciativa, una autoridad. Los roadmaps de target no duplican el backlog transversal; lo especializan.
Según el historial documental, el harness ya dispone de:
- orquestador coordinador y agentes de fase con contrato de resultado y
question_gate; - routing declarativo, persistencia por change y recuperación desde filesystem;
- assumption ledger, aprobación, intent restatement, mentor mode y ADRs integrados;
- ownership, detección de colisiones, presets de escala y trazabilidad REQ → task → commit → test;
- resúmenes de fase, compact rules, envelope JSON validable y telemetría de costes;
- multi-target con perfiles y routing de modelos por tiers;
- strict TDD con degradación en entornos sin runner;
- 4R existente, todavía pendiente de selectividad completa mientras O4+O5 no cierre;
- brownfield/reconcile, baseline por dominios y federación de lectura;
- contratos Go/JavaScript, prompt evals y lints transversales;
- correcciones históricas de seguridad, portabilidad, cache de skills, coherencia tools-vs-skill y movimientos de archive;
- target Codex fase inicial entregado; roadmaps específicos para Claude, VS Code y Codex.
Esta lista es una calibración de planificación, no una certificación independiente del repositorio actual.
- O4 — revisión selectiva por dimensiones. Determinar qué revisiones son obligatorias, candidatas o innecesarias a partir de señales deterministas, diseño, diff y verify.
- O5 — revisor generalista. Evaluar el cambio una vez y escalar a especialistas solo cuando exista señal, sin reemplazar triggers duros de seguridad o integridad.
O4+O5 son el primer caso real del modelo adaptativo: la revisión deja de ser una secuencia fija y pasa a ajustar profundidad durante el cambio.
- Las rutas siguen mezclando intención, topología y nivel de rigor.
sdd-planestá concebido como una ruta optimizada, no como ejecutor parametrizado por profundidad.- El perfil de riesgo aparece demasiado tarde en el orden antiguo y no gobierna todavía planning, modelo, verify y review de forma unificada.
- Archive conserva una operación mecánica compleja delegada parcialmente al modelo.
- La evidencia sigue demasiado ligada a Markdown escrito por agentes.
- Las garantías varían entre targets y no todas están implementadas o verificadas en runtime.
- Foundation y OpenWiki tienen consumo y ciclo de vida incompletos.
- La escritura coordinada multi-repo sigue pendiente.
Petición
↓
Comprender intención y contexto
↓
Construir perfil adaptativo
↓
Planificar con profundidad necesaria
↓
Aplicar
↓
Verificar
↓
Recalcular riesgo y revisión
↓
Revisar selectivamente
↓
Archivar mediante runtime determinista
No existen cuatro programas conceptualmente distintos. Existe un flujo canónico con diferentes mínimos de garantía y distintas profundidades.
La clasificación deja de ser una etiqueta única:
change_profile:
intent: bugfix # feature | bugfix | refactor | docs | migration | maintenance
topology: single-repo # foundation | brownfield | epic | federated
preset: standard # micro | lite | standard | strict
risk:
public_contract: 0
security: 0
persistent_data: 0
privileged_io: 1
cross_module: 1
ambiguity: 0
rollback_cost: 0
test_gap: 0
depth:
intent: compact
behavior: full
design: compact
decomposition: standard
verification: behavioral
review: targeted
memory: change- Intent describe qué clase de trabajo se realiza.
- Topología describe dónde y con qué coordinación se realiza.
- Preset define mínimos de garantía y presupuesto inicial.
- Risk registra señales justificadas.
- Depth decide cuánto trabajo cognitivo y documental necesita cada dimensión.
| Preset | Significado | Regla principal |
|---|---|---|
micro |
Operación mecánica, reversible y sin comportamiento nuevo | Cualquier señal material escala |
lite |
Cambio pequeño con contratos compactos | Ninguna dimensión se omite; algunas se materializan de forma ultraligera |
standard |
Perfil adaptativo habitual | Profundidad gobernada por señales y evidencia |
strict |
Máximo control | Define mínimos no reducibles de comportamiento, diseño, verify y review |
Los presets no son rutas inmutables. bugfix, refactor, foundation o federated tampoco compiten con ellos: pertenecen a otros ejes.
El control plane recalcula el perfil en puntos explícitos:
- Entrada: intención, alcance, proyecto, baseline y señales de riesgo.
- Después del contrato: ambigüedad residual, contrato público, datos y reversibilidad.
- Después del diseño: dependencias, privilegios, migraciones, blast radius y rollback.
- Después de apply: diff real, archivos inesperados, desviaciones y nuevos riesgos.
- Después de verify: fallos, gaps de tests, warnings y evidencia insuficiente.
Cada recalculo puede:
- aumentar profundidad;
- activar un gate;
- seleccionar especialistas;
- elevar el tier del modelo;
- solicitar una decisión humana;
- reducir prosa o reviewers no justificados;
- detener el flujo cuando el preset inicial dejó de ser seguro.
La desescalada solo reduce coste y presentación; nunca elimina evidencia o garantías ya exigidas por una señal material.
sdd-plan sigue siendo una inversión válida, pero no debe significar «genera siempre cuatro documentos en una llamada». Su contrato objetivo es:
planning_request:
profile_ref: state.yaml#change_profile
required_outputs:
proposal: compact
behavior: full
design: compact
tasks: standardResponsabilidades internas:
- Scope.
- Behavioral contract.
- Architecture.
- Reconciliation.
- Decomposition.
La unidad de ejecución puede ser una sola invocación, pero mantiene checkpoints internos, cobertura cruzada y validadores deterministas.
- Las responsabilidades semánticas siempre existen.
standardystrictmaterializan normalmente proposal/spec/design/tasks por separado.microylitepueden usar secciones estructuradas o artefactos compactos cuando no se pierde trazabilidad.- La evidencia mecánica vive en JSON/JSONL y el Markdown es una vista renderizada.
- Ningún archivo se genera solo para satisfacer una ruta si no añade contrato, trazabilidad o comprensión humana.
| Plano semántico — modelo | Plano determinista — runtime |
|---|---|
| Interpretar intención | Normalizar y persistir perfil |
| Redactar contratos y diseño | Validar schemas, IDs, cobertura y referencias |
| Explicar opciones y trade-offs | Aplicar policy y triggers duros |
| Proponer tareas | Comprobar trazabilidad y estados |
| Evaluar calidad no reducible a reglas | Ejecutar tests, capturar exit codes y fingerprints |
| Recomendar especialistas | Resolver reviewers obligatorios y permisos |
| Decidir readiness con evidencia | Archivar de forma atómica, verificable y reversible |
O4+O5 deben converger en un review_plan, no solo en booleanos:
review_plan:
risk:
mode: required # required | candidate | skip
sources: [privileged_io, external_process]
reason: "Writes global configuration and executes an external command."
reliability:
mode: candidate
sources: [generalist]
reason: "Touches fallback and recovery logic."
resilience:
mode: skip
sources: [diff]
reason: "No runtime or failure-path changes."La autoridad final combina:
triggers deterministas
+ evaluación generalista
+ riesgos del diseño
+ diff real
+ resultado de verify
= plan final de revisión
Reglas:
- auth, permisos, pagos, secretos, migraciones destructivas y operaciones privilegiadas pueden imponer reviewers;
- high-risk puede ir directamente a 4R sin pagar además un generalista redundante;
- el generalista tiene alta sensibilidad, pero no sustituye una revisión especializada;
- toda activación o exclusión registra motivo y fuente en
state.yaml.
La evolución del núcleo debe tender a:
- Archive transaccional y determinista.
- Validadores de proposal, spec, diseño, tasks, envelopes y evidencia.
- Captura estructurada de tareas, tests, reviews y trazabilidad.
- Markdown renderizado desde evidencia canónica.
- Phase capsules compiladas y fingerprinted.
- Subconjunto headless con exit codes y gates que degradan a
halt.
Esto reduce tokens, evita éxitos parciales y convierte el harness en una base utilizable por CI y por todos los targets.
El canon común define comportamiento y garantías; cada target implementa un adapter de capacidades.
target_capabilities:
structured_questions: native | chat-fallback
subagents: parallel | sequential | unavailable
hooks: enforced | partial | instructional
test_evidence: structured | process-output
tool_permissions: structural | instructional
plan_mode: native | emulatedEl roadmap transversal solo contiene contratos compartidos. Las optimizaciones de Claude, VS Code y Codex viven en sus subroadmaps y se ejecutan cuando sus dependencias del núcleo están maduras.
Antes de implementar un change de target se debe revalidar la documentación del host; esos roadmaps son snapshots fechados, no estándares permanentes.
Foundation y OpenWiki deben formar un solo modelo sin duplicación:
- Foundation: qué queremos, por qué, alcance, principios y baseline previsto.
- OpenWiki: qué existe y cómo funciona el repositorio actual.
- Ambas capas se referencian, se consumen desde las fases y tienen staleness + refresh.
- Archive puede actualizar estado de roadmap/capabilities y sugerir refresh; nunca reescribir decisiones de producto automáticamente.
La progresión correcta es:
- Epic intra-repo con
sub_changes[], DAG y coordinación de colisiones. - Change coordinador multi-repo.
- Contratos compartidos versionados.
- Apply provider → consumers.
- Verify federado y compatibilidad contractual.
No se crea una ruta epic; la topología se expresa como metadata y el perfil de cada hijo se calcula de forma independiente.
- porcentaje de fases/reviewers ejecutados con motivo registrado;
- escaladas y desescaladas por punto de reevaluación;
- decisiones materiales asumidas sin aprobación: objetivo 0;
- preguntas evitables frente a preguntas justificadas, sin cuota fija por route.
- tokens de entrada/salida por dimensión, fase y change;
- invocaciones y relecturas evitadas;
- tiempo hasta primera implementación y hasta verdict;
- relanzamientos completos frente a reparaciones dirigidas.
- REQs con task, commit y test vinculados;
- defectos encontrados antes y después de verify;
- warnings aceptados con aprobación explícita;
- operaciones deterministas completadas o revertidas sin pérdida de inventario.
- garantías reales por target;
- degradaciones activadas;
- paridad de fixtures y validadores;
- coste añadido por adapters específicos.
- No convertir el harness a TypeScript ni introducir frameworks como requisito del runtime.
- No mover el estado canónico fuera de OpenSpec/Git.
- No auto-aprobar gates.
- No importar catálogos masivos de skills sin resolución compacta y necesidad demostrada.
- No convertir cada intención, riesgo o topología en una ruta nueva.
- No mantener análisis activos dentro de una carpeta gitignoreada.
Los documentos anteriores quedan archivados como evidencia:
- auditoría de agentes, skills, infraestructura y 4R;
- análisis de coherencia de rutas y propuesta de validación;
- análisis por ejes de evolución;
- análisis de optimización del flujo SDD.
Sus hallazgos entregados no desaparecen: se resumen en el estado consolidado. Sus propuestas pendientes se han reconciliado en esta arquitectura y en el roadmap operativo.