7913116a8e
- .claude/agents/fn-analizador/SKILL.md - .claude/agents/fn-constructor/SKILL.md - .claude/agents/fn-executor/SKILL.md - .claude/agents/fn-mejorador/SKILL.md - .claude/agents/fn-orquestador/SKILL.md - .claude/agents/fn-recopilador/SKILL.md - .claude/commands/app.md - .claude/commands/compile.md - .claude/commands/cpp-app.md - .claude/commands/create_functions.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
91 lines
3.5 KiB
Markdown
91 lines
3.5 KiB
Markdown
---
|
|
name: vault_audit
|
|
kind: pipeline
|
|
lang: bash
|
|
domain: pipelines
|
|
version: "1.0.0"
|
|
purity: impure
|
|
signature: "vault_audit(<vault_name> | --all) [--skip-profilers] [--dry-run-layout] -> void"
|
|
description: "Pipeline completo de auditoria para uno o todos los vaults declarados: layout-ensure, index, profile (csv/pdf/md), dedupe, aggregate y doctor. Produce tabla resumen con estado por vault y codigo de salida 4 si hay warnings."
|
|
tags: [vault, audit, pipeline, launcher, infra, bash]
|
|
uses_functions:
|
|
- vault_layout_ensure_go_infra
|
|
- vault_inventory_scan_go_infra
|
|
- vault_index_open_go_infra
|
|
- vault_index_write_go_infra
|
|
- vault_csv_profile_py_datascience
|
|
- vault_pdf_extract_py_datascience
|
|
- vault_knowledge_parse_py_infra
|
|
- vault_dedupe_report_py_infra
|
|
- vault_aggregate_index_go_infra
|
|
- vault_doctor_go_infra
|
|
uses_types: []
|
|
returns: []
|
|
returns_optional: false
|
|
error_type: "error_go_core"
|
|
imports: []
|
|
params:
|
|
- name: vault_name
|
|
desc: "Nombre del vault a auditar (como aparece en registry.db tabla vaults). Usar --all para todos."
|
|
- name: --all
|
|
desc: "Audita todos los vaults declarados en registry.db. Mutuamente excluyente con vault_name."
|
|
- name: --skip-profilers
|
|
desc: "Omite el paso de profiling CSV/PDF/MD. Util para auditorias rapidas de inventario."
|
|
- name: --dry-run-layout
|
|
desc: "Pasa --dry-run a vault layout-ensure: calcula cambios sin tocar el disco."
|
|
output: "Tabla de resumen por vault con status ok/warn. Codigo de salida 0=exito, 1=root no localizable, 4=uno o mas vaults con warnings."
|
|
tested: false
|
|
tests: []
|
|
test_file_path: ""
|
|
file_path: "bash/functions/pipelines/vault_audit.sh"
|
|
---
|
|
|
|
## Ejemplo
|
|
|
|
```bash
|
|
# Auditar un vault especifico
|
|
FN_REGISTRY_ROOT=$HOME/fn_registry \
|
|
bash bash/functions/pipelines/vault_audit.sh turismo_spain
|
|
|
|
# Auditar todos los vaults
|
|
FN_REGISTRY_ROOT=$HOME/fn_registry \
|
|
bash bash/functions/pipelines/vault_audit.sh --all
|
|
|
|
# Solo layout + index + aggregate (sin profilers, mas rapido)
|
|
bash bash/functions/pipelines/vault_audit.sh turismo_spain --skip-profilers
|
|
|
|
# Ver que haria layout-ensure sin tocar disco
|
|
bash bash/functions/pipelines/vault_audit.sh turismo_spain --dry-run-layout
|
|
|
|
# Equivalente via fn run (desde la raiz del registry)
|
|
./fn run vault_audit_bash_pipelines turismo_spain
|
|
```
|
|
|
|
## Pasos del pipeline
|
|
|
|
1. **layout-ensure** — `fn vault layout-ensure <name>` asegura `data/{raw,processed,exports}` y `knowledge/{...}`.
|
|
2. **index** — `fn vault index <name>` escanea archivos y persiste en `vault_index.db`.
|
|
3. **profile** — `fn vault profile <name>` llama `vault_profile_dispatch.py` para CSV/PDF/MD.
|
|
4. **dedupe** — `fn vault dedupe <name>` detecta duplicados por sha256 (informacional, no fatal).
|
|
5. **aggregate** — `fn vault aggregate` copia todo a `registry.db` tabla `vault_files` (una sola vez al final).
|
|
6. **doctor** — `fn vault doctor` muestra estado de salud de todos los vaults.
|
|
|
|
## Codigos de salida
|
|
|
|
| Codigo | Significado |
|
|
|--------|-------------|
|
|
| 0 | Todos los vaults procesados sin errores |
|
|
| 1 | FN_REGISTRY_ROOT no localizable o fn binary no encontrado |
|
|
| 4 | Uno o mas vaults con warnings (layout o index fallaron) |
|
|
|
|
## Variables de entorno
|
|
|
|
- `FN_REGISTRY_ROOT` — raiz del registry (auto-detectada si no esta seteada).
|
|
- `FN_BIN` — path al binario `fn` (default: `$FN_REGISTRY_ROOT/fn`).
|
|
|
|
## Notas
|
|
|
|
Requiere `sqlite3` en PATH para resolver la lista de vaults con `--all`.
|
|
El paso de profile es non-fatal: errores en profilers individuales se reportan como warnings.
|
|
El paso de dedupe es siempre informacional (no borra archivos).
|