Communitygithub.com

TheColliery/CoalLedger

Suite de pruebas de salud documental para agentes de codificación con IA: Doc-Rot. 6+1 canarios, con detección de estructura de documentos mediante un motor AST CommonMark+GFM sin dependencias; severidad contextual, correcciones con opción, nunca automáticas. También avisa discretamente cuando los docs cambian pero MEMORY.md no.

¿Qué es CoalLedger?

CoalLedger, y en particular su canario Doc-Rot, es una herramienta especializada para que agentes de codificación con IA (como Claude Code, Cursor o Codex) mantengan la salud de la documentación. Su objetivo es detectar contenido documental que ha quedado desactualizado por el paso del tiempo. El canario identifica marcadores de edad como cadenas de versión, sellos de fecha, tareas muertas (TODO/FIXME) o insignias obsoletas, los clasifica como SOSPECHOSOS, y solo los eleva a CONFIRMADO cuando puede verificar que el estado actual contradice al documento. La severidad se determina por contexto, no por un mapeo fijo, y las correcciones son siempre optativas: el agente debe presentar un menú de opciones y nunca aplicar cambios automáticamente en documentos vivos. Esta skill es parte del ecosistema CoalMine de TheColliery, diseñado para robustecer la fiabilidad de la documentación que los agentes leen y generan.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add TheColliery/CoalLedger

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Doc-Rot

Responde en el IDIOMA del USUARIO; mantén los términos técnicos, comandos, rutas y códigos de verificación textuales.

Encuentra contenido de documentación que el tiempo ha invalidado. Reporta podredumbre CONFIRMADA; aparca lo meramente antiguo como SOSPECHOSO.

Parámetros

  • ALCANCE: archivos nombrados (por defecto cuando se dan) | archivos de documentación tocados en esta sesión | toda la documentación del repositorio — .md/.mdx/.markdown/.rst/.txt/.adoc/.asciidoc/.org (confirma primero si hay más de 20 archivos).
  • NIVEL: Rápido = solo marcadores mecánicos de antigüedad (~gratuito) · Completo = juicio semántico de obsolescencia (pago). Por defecto desde .coalledger.json quickVsFull; Completo siempre requiere consentimiento separado.

Marcadores de antigüedad (capa mecánica — detección determinista)

marcadorseñal
cadena de versiónel documento nombra una versión más antigua que la versión actual del proyecto (comparar contra la fuente de verdad de la versión, ej. el manifiesto)
sello de fechauna fecha de "última actualización" / revalidar antes / verificado en muy pasada o ya vencida
marcador de tarea muertaTODO / FIXME / "próximamente" / "aún no" sin señales de actividad
insignia obsoletauna insignia de estado/versión hardcodeada que contradice el estado actual del repositorio

La detección es determinista; si un marcador significa o no PODRIDO no lo es — una fecha antigua en un archivo está bien, en una guía de instalación no.

Método

  1. Rápido: recopila marcadores de antigüedad según la tabla. Viejo ≠ podrido: un marcador solo aterriza en SOSPECHOSO.
  2. Completo: juzga cada marcador en contexto, y busca PODRIDO sin fecha — instrucciones para una superficie que ha cambiado, afirmaciones de que un documento posterior lo ha reemplazado (la contradicción pura entre documentos vivos pertenece a consistencia documental; podredumbre es el eje temporal).
  3. Confirmar antes de CONFIRMADO: un hallazgo es CONFIRMADO solo cuando el estado actual contradice el documento (la fuente de la versión nombra una versión más nueva; la superficie referenciada ha desaparecido). Cualquier inferencia se mantiene como SOSPECHOSO.
  4. Severidad por CONTEXTO (nunca un mapeo fijo), luego honrar severityFloor: pasos de instalación/seguridad podridos que los lectores siguen = ALTA-CRÍTICA; una insignia obsoleta o mención de versión = MEDIA; una fecha antigua en un documento archivado = BAJA.

Límite de escalada

Si una afirmación fue alguna vez CIERTA es trabajo de la capa de fundamentación documental; la verificación formal de una afirmación de alto riesgo escala a CoalBoard (/coalboard) si esa skill está instalada. Este canario solo responde "¿el tiempo la rompió?".

Salida

| # | ruta:línea | marcador | evidencia (estado actual) | severidad | corrección |

Solo tabla CONFIRMADO; SOSPECHOSO (antiguo pero no probado) como lista separada, nunca la tabla principal.

Informe: llama a ReportFindings cuando sea invocable — archivo/línea DEBE ser la línea propia del marcador, nunca una paráfrasis; una línea no resoluble reporta tu mejor estimación, nombrada como imprecisa en el resumen final, nunca omitida. Severidad prefijada en summary (ej. [ALTA] …) según la regla de severidad por contexto anterior, ordenado de más severo a menos, SOSPECHOSO (antiguo pero no probado) como verdict: PLAUSIBLE; el chat lleva solo la línea de resumen (conteos · lista SOSPECHOSO · desbordamiento más allá de 32) + el menú de correcciones, nunca una repetición. No invocable → la tabla anterior, sin cambios. Un clic en Aplicar correcciones = consentimiento a la clase Aplicar correcciones seguras a continuación (solo actualizaciones de valor actual inequívocas), componiendo con — nunca evitando — el modo de corrección. Después de cualquier ronda de correcciones, vuelve a informar los mismos hallazgos con outcome: fixed/skipped/no_change_needed.

Modo de corrección (con opción)

Después de cualquier informe en una sesión interactiva DEBES presentar este menú mediante tu herramienta de pregunta (salta solo cuando los hallazgos son cero o no hay usuario presente). NUNCA corregir automáticamente un documento vivo.

  • Aplicar correcciones seguras: solo actualizaciones cuyo valor actual sea inequívoco (subir una cadena de versión a la del manifiesto, refrescar una fecha que el usuario confirma, borrar un TODO que el usuario confirma muerto). Cada corrección: punto de control (git stash/commit en un repositorio git; si no, copiar el archivo aparte — nunca asumir que git existe) -> aplicar -> releer las líneas cambiadas.
  • Déjame elegir: lista los hallazgos; el usuario selecciona.
  • Solo informe: salir sin cambios.

NUNCA corregir automáticamente: reescribir instrucciones reemplazadas (una decisión de contenido), eliminar secciones, nada cuya verdad actual no hayas verificado.

Multilingüe

Los marcadores de antigüedad son independientes del idioma (versiones, fechas e insignias se ven igual en cualquier idioma de prosa; los FORMATOS de fecha varían — analizar por estructura, no por un nombre de mes en inglés). El juicio semántico se degrada a banderas de baja confianza en un idioma mal manejado, nunca a falsas alarmas.

Reporte de problemas

Si este canario se comporta mal, OFRECE reportarlo en https://github.com/TheColliery/CoalLedger/issues con un resumen revisado por el usuario — nunca autoenviar.

Skills relacionados