chore: auto-commit (6 archivos)

- CONVENTIONS.md
- tools/dedup_persons.py
- tools/extract_entities.py
- tools/migrate_external_orgs.py
- tools/normalize_person_frontmatter.py
- tools/person_datapoints.py

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-11 00:16:47 +02:00
parent 186ce83856
commit f771c9b883
6 changed files with 508 additions and 0 deletions
+32
View File
@@ -70,6 +70,38 @@ Body, secciones en este orden (omitir las vacías):
Texto libre de investigación.
```
## 3b. Esquema canónico del frontmatter de persona
Todas las fichas `personas/<slug>.md` comparten el mismo conjunto de campos, en este orden.
Campos sin valor se dejan como `null` (o `[]` para listas) — nunca se omiten, para que el
cálculo de datapoints y el score de completitud sean consistentes.
```yaml
tipo: persona
nombre: "Nombre Apellidos"
slug: nombre-apellidos
aliases: [] # otros nombres por los que aparece
sexo: null # hombre | mujer | null
fecha_nacimiento: null # ISO YYYY-MM-DD | null
dni: null
telefono: null
email: null
direccion: null # texto plano
pais: null
relaciones: [] # ["[[slug]] — parentesco/rol"]
contexto: null # familia | aurgiobsidian | ... (origen/circulo)
fuente: "" # nota/vault de procedencia
tags: [persona, osint]
```
Campos extra heredados (p.ej. `horoscopo`) se conservan al final del frontmatter.
**Datapoints y score de fiabilidad.** Los campos de identidad que cuentan para el score de
completitud son: `sexo, fecha_nacimiento, dni, telefono, email, direccion, pais` (7). El score
de una ficha es `campos_identidad_presentes / 7 * 100`. Una ficha por debajo del 100% tiene
datapoints faltantes. El total de datapoints de una persona suma además sus documentos,
attachments y relaciones. Lo calcula `projects/osint/tools/person_datapoints.py`.
## 4. Nota-documento — `personas/<slug>/<doc-slug>.md`
Una nota-documento agrupa los attachments de un tipo de documento de la persona.