Skip to content

PROC-DOCOPS-CLOSING-CHECKLIST

Checklist de cierre del Documentation Contract. Toda tarea material termina con este ritual; una tarea que lo omite no esta hecha. Es la contraparte operativa de AGENTS.md regla 8 y del bloque Documentation Impact Assessment de la skill docops (section 11). El canon de este contrato vive aqui (Git SSOT); la skill lo vehicula en la flota.

Cuando aplica

  • Aplica a: cualquier tarea material — arquitectura, contrato, componente, decision, proceso operativo, seguridad, deploy, incidente, o migracion de conocimiento.
  • Salta (con motivo): trabajo puramente efimero (restart de un pod, prueba temporal, cambio sin semantica). En esos casos se documenta el motivo del NONE (ver bloque final).

Principio rector: un documento sirve si responde 3 preguntas — ¿que es? / como se opera? / como se rompe y se arregla? Si el artefacto no responde, o sobran piezas, se corrige antes de cerrar.

La 3 preguntas como compuerta

Antes de cerrar, cada pieza de conocimiento que nacio de la tarea debe poder responder las 3 preguntas. Lo que no las responde va al almacén equivocado: es borrador, evidencia cruda, o no existe todavia. No se fuerza contenido.

Enrutamiento (a donde va cada pieza)

El contrato documental de Wetopi: Raw → S3 · Knowledge → canon (Git) · Contract → Git · Wisdom → Hindsight. Al cerrar, enruta cada artefacto:

Artefacto que produjo la tarea Destino ID
Decision / arquitectura / política decisions/ (canon) ADR-<NNNN>
Componente / servicio nuevo o cambiado ficha en su dominio SVC-<NAME>
Procedimiento operativo repetible operations/runbooks/ (plataforma) o ficha SVC (dia a dia) RUN-<slug>
Conocimiento reutilizable / how-to canon Git (pill: 1 doc = 1 concepto) CON-/REF-/dominio
Hecho puntuable (deploy, migracion, cambio de estado) records/ (canon) REC-<YYYYMMDD>-<slug>
Evidencia cruda pequeña raw/ (controlado, Wiki-LLM) —
Evidencia cruda voluminosa S3/Ceph + puntero en Git ART-<slug>
Experiencia / leccion / learning Hindsight (memoria) —
Relaciones entre piezas frontmatter + wikilinks (graph) —

Reglas de colocacion: 1 ficha = 1 owner. Nunca dos copias del mismo runbook (dia-a-dia en la ficha SVC, plataforma en operations/runbooks/). No reescribir ni renumerar ADRs existentes (inmutabilidad historica). Secreto en ningun almacen: solo el path de Infisical, nunca el valor.

El checklist de cierre (5 items)

Al cerrar cada tarea material, verifica en este orden. Cada item marca hecho / no aplica (con motivo) / deuda registrada:

  1. Ficha actualizada (last_verified). Si la tarea toco un componente existente, su ficha SVC-* refleja el estado live y last_verified esta a fecha (solo se bump cuando los hechos se re-vernifican contra fuentes live, no por un mero edit). Si no existe ficha y toca, se crea. last_verified > 30 dias tras un cambio relevante = stale = incidente (no esconderlo).
  2. ADR si hubo decision. Si la tarea fijo una decision (arquitectura, tecnologia, política, contrato, suplantacion de otra), hay ADR-*. Propuesta != decision: lo no confirmado por el operador se escribe status: proposed, nunca como decidido.
  3. Evidencia a su sitio. Evidencia cruda pequeña → raw/. Voluminosa → S3/Ceph con ART-* + manifest.yaml + resumen en Git (Git lleva el puntero y el resumen, no el dump). El hecho puntuable → records/ con REC-*.
  4. Hecho a Hindsight. La memoria guarda el hecho esencial + timestamp + puntero al documento ("el informe esta en records/REC-..."), nunca el documento entero. Cada retain lleva source_ids/document_ids del registry (convencion T5.1). Apunta, no almacena.
  5. Relaciones al graph. Las piezas nuevas se enlazan: depends_on, related, governed_by, evidence, runbooks, supersedes en el frontmatter, mas wikilinks contextuales. Un documento sin relaciones es una isla.

Compuerta de publicacion (antes del PR)

llm-wiki lint          # enlaces, frontmatter, huecos
mkdocs build --strict  # build de publicacion (el runtime la re-ejecuta al sync)

Frontmatter completo por _schema/frontmatter.md: id, type, title, status, domain, created_at, last_verified, owners. IDs globales e inmutables por _schema/naming.md + _schema/relations.md.

Bloque obligatorio en el cierre de tarea

Cada tarea material termina con este bloque en su summary/handoff. Sin el, la tarea no esta cerrada:

documentation_impact:
  result: NONE | UPDATE | CREATE | ADR | DEPRECATE
  documents: [<IDs afectados, p. ej. SVC-BOOKSTACK, ADR-0010>]
  checklist:
    ficha_last_verified: done | n/a (motivo)
    adr_if_decision: done | n/a (motivo)
    evidence_raw_records: done | n/a (motivo)
    hindsight_pointer: done | n/a (motivo)
    relations_graph: done | n/a (motivo)
  reason: <una linea; el NONE tambien necesita motivo>

NONE exige motivo explicito ("restart de pod temporal, sin cambio semantico"). UPDATE/CREATE/ADR/DEPRECATE enumeran los IDs tocados.

Anti-patrones (cierre mal hecho)

  • Deuda de docs en silencio: "merge ahora, documento luego" es deuda. Excepcion incidente: restaura el servicio primero, luego registra la deuda de docs y cierrala antes de cerrar el incidente.
  • Estados mentirosos: un hecho temporal sin supersede. Todo STATE lleva timestamp y muere por supersede.
  • Doble copia entre canon y skill/almacen (el puente es el link, no la copia). Memoria-hormigon: volcar documentos enteros a Hindsight.
  • Secreto en texto plano en cualquier almacen.
  • Doc rot oculto: last_verified obsoleto sin marcar stale.

Relaccion con la flota (harness)

  • El vehiculo de este contrato en los agentes es la skill docops (canon en ai-hub) / wetopi-docops. Este doc es la referencia SSOT en Git que la skill puntea.
  • Pendiente del operador: consolidacion de docops v1.1.0 + wetopi-docops v0.1.0 en docops v1.2.0 (un solo contrato, con el Knowledge Plane). Este checklist NO cambia mientras no se apruebe esa consolidacion; queda documentado como Status: Proposed.
  • La subdelegacion no delega la responsabilidad documental: un subagente que hace trabajo material hereda este contrato y devuelve su bloque Documentation Impact Assessment al padre, que posee el resultado final.

Evidencia

  • WKP/T5.2 (kanban t_e03a201d); registro del trabajo: ver records/.
  • Fuentes: AGENTS.md (regla 8), _schema/ (frontmatter/naming/relations), records/id-registry.md.