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:
- Ficha actualizada (last_verified). Si la tarea toco un componente
existente, su ficha
SVC-*refleja el estado live ylast_verifiedesta 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). - 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 escribestatus: proposed, nunca como decidido. - Evidencia a su sitio. Evidencia cruda pequeña →
raw/. Voluminosa → S3/Ceph conART-*+manifest.yaml+ resumen en Git (Git lleva el puntero y el resumen, no el dump). El hecho puntuable →records/conREC-*. - 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 llevasource_ids/document_idsdel registry (convencion T5.1). Apunta, no almacena. - Relaciones al graph. Las piezas nuevas se enlazan:
depends_on,related,governed_by,evidence,runbooks,supersedesen 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_verifiedobsoleto sin marcarstale.
Relaccion con la flota (harness)¶
- El vehiculo de este contrato en los agentes es la skill
docops(canon enai-hub) /wetopi-docops. Este doc es la referencia SSOT en Git que la skill puntea. - Pendiente del operador: consolidacion de
docopsv1.1.0 +wetopi-docopsv0.1.0 endocopsv1.2.0 (un solo contrato, con el Knowledge Plane). Este checklist NO cambia mientras no se apruebe esa consolidacion; queda documentado comoStatus: 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: verrecords/. - Fuentes:
AGENTS.md(regla 8),_schema/(frontmatter/naming/relations),records/id-registry.md.