## Artefactos: termino colectivo **"Artefacto"** es el termino paraguas para todo lo que vive en el registry pero NO es codigo reutilizable de `functions/` o `types/`. Sirve para no repetir "apps, analysis, vaults, projects, playgrounds, reports" cada vez. Tipos de artefacto: | Tipo | Donde vive | Indexado en registry.db | Repo Gitea propio | |---|---|---|---| | **app** | `apps/`, `cpp/apps/`, `projects/

/apps//` | tabla `apps` | si (`dataforge/`) | | **analysis** | `analysis//`, `projects/

/analysis//` | tabla `analysis` | si (`dataforge/`) | | **vault** | `projects/

/vaults/` (symlink) | tabla `vaults` | no (datos fuera del repo) | | **project** | `projects/

/` | tabla `projects` | no (vive dentro de fn_registry) | | **playground** | `/playground/` | NO se indexa | no (vive dentro del padre) | | **report** | `reports/`, `projects/

/reports/` | NO se indexa | no (local, gitignored, no sube a Gitea — como vaults) | Caracteristicas comunes de los artefactos: - NO son codigo reutilizable. La reutilizacion vive en `functions/`. - Tienen ciclo de vida propio (crear, modificar, archivar, borrar). - `pc_locations` los unifica via `entity_type` (app, analysis, project, vault). - Pueden importar funciones del registry; el registry NUNCA importa de un artefacto. **Reports** son el caso mas ligero: artefacto local (gitignored salvo `reports/.gitkeep`), NO sube a Gitea ni se versiona en el padre (como los vaults), NO se indexa (como los playgrounds). Convencion en [[reports]]. Pueden vivir sueltos en `reports/` o dentro de un proyecto en `projects/

/reports/`. ### Cuando usar el termino Usa "artefacto" cuando hablas de varios tipos a la vez o cuando la afirmacion aplica a todos: - "Cada artefacto declara sus funciones del registry en su `.md`" (vale para apps y analyses). - "Los artefactos no se importan desde `functions/`." - "Esta regla aplica a cualquier artefacto desplegable" (apps + services). Cuando hables de UN tipo concreto, usa el nombre concreto: "esta app...", "este analysis...". No abuses del termino paraguas — es para evitar listas, no para difuminar. ### Que NO es un artefacto - `functions/`, `python/functions/`, `bash/functions/`, `frontend/functions/` — codigo reutilizable. - `types/`, `python/types/`, `frontend/types/` — tipos del registry. - `sources/` — repos externos clonados para extraer funciones (gitignored). - `temp/` — workspace efimero, ni siquiera versionado. - `subrepos/` — espejos de repos externos para referencia. ### Relacion con `pc_locations` Los artefactos con presencia en disco (app, analysis, project, vault) ya estan unificados en `pc_locations` via la columna `entity_type`. Los **playgrounds** NO entran en `pc_locations` porque son hijos de otro artefacto y se mueven con el (no tienen identidad propia entre PCs).