Skip to content
Back to skills

Context Dome

ASecurity

Genera CONTEXT_DOME.md para modulos con Bus Factor bajo. Captura conocimiento tacito: proposito, decisiones no obvias, dependencias, runbook minimo, knowledge owners y plan de distribucion.

  • 50 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentspythongobashdockergitdocumentation

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add gonzalezpazmonica/savia --skill context-dome --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Context Dome?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Context Dome
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gonzalezpazmonica-context-dome/badge)](https://www.skillsdirectory.com/skills/gonzalezpazmonica-context-dome)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
layer: peripheral
name: context-dome
description: >
  Genera CONTEXT_DOME.md para modulos con Bus Factor bajo. Captura
  conocimiento tacito: proposito, decisiones no obvias, dependencias,
  runbook minimo, knowledge owners y plan de distribucion.
metadata:
  # --- metadata.savia.* (SE-333) ---
  savia.category: knowledge-management
  savia.maturity: beta
  savia.context: L2
  savia.se: SE-252
  savia.summary: Skill de documentacion automatica de conocimiento tacito por modulo. Complemento natural del bus-factor-analysis skill.
  savia.tags: "context-dome, bus-factor, documentation, knowledge-transfer, resilience"
---

# Context Dome

## Descripcion

Una cupula de contexto es un artefacto de documentacion que captura el
conocimiento tacito de un modulo: lo que no esta en el codigo pero
que cualquier dev necesita para trabajar con el.

Se genera automaticamente a partir del historial git y la estructura
del proyecto, y se almacena como `CONTEXT_DOME.md` en el directorio
del modulo.

## Ruta critica

- Script:    `scripts/context-dome-generate.sh`
- Hook scan: `.claude/hooks/bus-factor-warn.sh`
- DOMAIN:    `.claude/skills/context-dome/DOMAIN.md`

## Uso

```bash
# Generar cupulas para modulos con riesgo HIGH o superior (default HIGH)
bash scripts/context-dome-generate.sh --project <path> --min-risk HIGH

# Solo un modulo especifico (name o path del scan)
bash scripts/context-dome-generate.sh --project <path> --module src/payments

# Preview sin escribir
bash scripts/context-dome-generate.sh --project <path> --dry-run

# Repo publico: owners sin dominio de email
bash scripts/context-dome-generate.sh --project <path> --redact-owners

# Regenerar aunque la cupula se haya editado a mano (pierde la edicion)
bash scripts/context-dome-generate.sh --project <path> --force
```

Requiere un scan previo (`scripts/bus-factor-scan.sh`) en `BF_OUTPUT_DIR`
(default `output/bus-factor/`).

## Exit codes

| Codigo | Caso |
|--------|------|
| 0 | Cupulas generadas, sin cambios, nada que generar, o modulos saltados con `WARN` (directorio ausente, ruta insegura, symlink, edicion manual) |
| 1 | Uso invalido: falta `--project` o su valor, `--min-risk` desconocido, proyecto que no es directorio, sin scan del proyecto, scan con `project` de otro proyecto |
| 2 | Scan JSON ilegible (corrupto o sin lista `modules`) |

## Estructura del CONTEXT_DOME.md generado

```markdown
---
module: "<path del modulo>"
bus_factor: <N>
risk_level: CRITICAL|HIGH|MEDIUM|LOW
knowledge_owners:
  - "<dev1>"
generated_at: <ISO8601>
spec: SE-252
warnings: [...]
runbook_confidence: low|medium|high
dome_hash: <huella del contenido>
---

# Context Dome -- <path>
## Proposito
## Decisiones no obvias
## Dependencias criticas
## Runbook minimo
## Knowledge owners actuales
## Plan de distribucion sugerido
## Historial de cambios relevantes
```

Los valores de texto del frontmatter van entre comillas JSON: un owner o
una ruta con `:`, `#`, `*`, espacios o unicode no rompen el YAML. Sin
owners, `knowledge_owners: []`. La cupula se escribe en `<path>/` del
modulo (campo `path` del scan); rutas absolutas, con `..` o directorios
symlink que salen del proyecto se rechazan.

## Idempotencia

- Regenerar sin cambios en las fuentes no toca el fichero (`UNCHANGED`).
- Si el scan o el historial cambian, se reescribe entera; nunca duplica.
- Los commits que solo tocan `CONTEXT_DOME.md` no cuentan como historial
  ni como decisiones: commitear la cupula no la hace cambiar.
- Huella y edicion en python3 (sin `sha256sum` ni `sed -i` GNU): portable a macOS.
- `dome_hash` detecta ediciones manuales: si la cupula se edito tras
  generarse (o no tiene huella, como las de versiones anteriores), no
  se pisa sin `--force`.

## Confidencialidad

- Aislamiento N4: solo se aceptan `<proyecto>.json` o
  `<proyecto>-<YYYYMMDD>T<HHMMSS>Z.json` (el mas reciente), y su campo
  `project` debe coincidir. Nunca otro proyecto ni prefijos parecidos.
- Decisiones e historial salen de `HEAD`: commits de ramas sin integrar
  no acaban en la cupula.
- Los owners son emails git (dato personal). En repos publicos usar
  `--redact-owners`. Ver `DOMAIN.md` (Consideraciones de PII).

## Fuentes de datos

| Seccion | Fuentes |
|---------|---------|
| Proposito | CONTEXT.md, README.md, comentarios cabecera |
| Decisiones | git log -E --grep en HEAD (why:, because, NOTE:, HACK:, FIXME:, decision:, tradeoff:, SE-, SPEC-) |
| Dependencias | imports por extension (.py, .ts, .go, .cs) |
| Runbook | Makefile, package.json scripts, README ## Usage, Dockerfile CMD |
| Owners | JSON del bus-factor-scan |
| Historial | git log en HEAD --no-merges excluyendo chore/format/typo/style |

## runbook_confidence

| Nivel | Condicion | Accion |
|-------|-----------|--------|
| low | Sin fuentes detectadas | Documentar manualmente |
| medium | 1 fuente encontrada | Revisar y completar |
| high | 2+ fuentes encontradas | Verificar actualizacion |

Files in this skill

  • DOMAIN.md3.4 KB
  • SKILL.md2.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…