Bibliotecario-Lint automatizado (Supercontexto Fase 5)
Bibliotecario-Lint automatizado · Supercontexto Fase 5
Qué es
El Bibliotecario-Lint es la capa de mantenimiento pasivo y activo de la wiki Supercontexto de CreaRack Pro. Introducida en la Fase 5 del Supercontexto (2026-04-22), detecta automáticamente problemas de calidad en las páginas wiki sin intervención humana:
| Problema | Detección | Coste LLM |
|---|---|---|
Stale — página sin last_verified reciente (> N días) | Query D1 sobre last_verified | 0 |
| Orphan — página sin backlinks ni referencias de código | Query D1 sobre related + bib_edges | 0 |
Broken sources — archivo code referenciado que ya no existe en GitHub | GitHub Contents API | 0 |
| Contradicción semántica — dos páginas de la misma community dicen cosas incompatibles | Haiku (Claude 3 Haiku) por par | ~$0.002/par |
Componentes
Tools MCP nuevos
wiki_lint_bulk— escaneo pasivo (0 LLM). Ver →entity--mcp--tool--wiki-lint-bulkwiki_lint_contradictions— detección semántica con Haiku. Ver →entity--mcp--tool--wiki-lint-contradictions
GitHub Actions
| Workflow | Fichero | Frecuencia | Objetivo |
|---|---|---|---|
| Bibliotecario-Lint (diario) | .github/workflows/wiki-lint.yml | cron: "30 4 * * *" | lint_bulk + contradictions incremental |
| Bibliotecario-Lint Consolidación (semanal) | .github/workflows/wiki-lint-consolidation.yml | cron: "0 3 * * 0" | contradictions full pairwise, todos los pares de cada community |
Ambos workflows operan en dry_run por defecto — solo reportan. Para aplicar cambios se lanza workflow_dispatch con apply=true.
Skill de Claude
.claude/skills/wiki-lint-review/SKILL.md — skill conversacional activable con /wiki-lint-review o frases como “¿qué tal está la wiki?”. Orquesta wiki_lint_bulk + wiki_lint_contradictions en dry_run y presenta una tabla de resultados al usuario.
Arquitectura de detección de contradicciones
bib_wiki_pages (active, community_id NOT NULL)
│
▼ agrupar por community_id
[community A] [community B] ...
│
▼ generar pares (N×N-1/2)
incremental → solo pares con ≥1 page reciente (<recent_days)
full → todos los pares
│
▼ fetchSnippet (GH Contents API, cache en memoria)
fragmento ≤2000 chars por page
│
▼ Haiku prompt
verdict: "contradict" | "complementary" | "unrelated"
│
▼ si contradict + dry_run=false
INSERT bib_wiki_contradictions (idempotente por pair_ordenado + subject)
Idempotencia: el par se ordena alfabéticamente ([a.slug, b.slug].sort()) antes de insertar, evitando duplicados al cambiar el orden de iteración.
Tabla D1: bib_wiki_contradictions
| Campo | Tipo | Descripción |
|---|---|---|
page_a_slug | TEXT | Slug de la primera página (ordenado asc) |
page_b_slug | TEXT | Slug de la segunda página |
claim_a | TEXT | Cita literal de A (≤500 chars) |
claim_b | TEXT | Cita literal de B (≤500 chars) |
subject | TEXT | Tema sobre el que se contradicen (≤200 chars) |
status | TEXT | open | resolved |
Configuración y límites de coste
| Parámetro | Default diario | Default semanal | Propósito |
|---|---|---|---|
stale_days | 60 | — | Umbral de staleness |
limit | 200 | — | Max pages a escanear en bulk |
recent_days | 7 | — | Ventana incremental |
max_pairs_per_community | 10 (diario) | 20 (semanal) | Protege coste Haiku |
max_total_pairs | 40 (diario) | 200 (semanal) | Hard cap global |
Coste estimado lint diario (incremental, 40 pares): ~$0.08. Lint semanal (full, 200 pares): ~$0.40.
Artefactos de ejecución
Los workflows suben artifacts a GitHub Actions:
lint-report-{run_id}— ficheroslint-bulk.json+lint-contradictions.json(retención 30 días)lint-consolidation-{run_id}— ficherolint-consolidation.json(retención 60 días)
Relación con otras fases del Supercontexto
| Fase | Nombre | Relación |
|---|---|---|
| Fase 1-4 | Bibliotecario-Ingest, Curator, etc. | Producen las pages que Lint monitoriza |
| Fase 5 | Bibliotecario-Lint | Esta feature |
| Futura | wiki_resolve_contradiction | Tool aún no implementado para resolver contradicciones |
Véase también
- [[entity—mcp—tool—wiki-lint-bulk]]
- [[entity—mcp—tool—wiki-lint-contradictions]]