chore: auto-commit (286 archivos)

- .claude/agents/fn-orquestador/SKILL.md
- .claude/commands/fn_claude.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- .claude/rules/ids_naming.md
- CHANGELOG.md
- apps/dag_engine/README.md
- apps/dag_engine/api.go
- apps/dag_engine/dags_migrated/example.yaml
- apps/dag_engine/dags_migrated/example_lineage_tracking.yaml
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-16 16:33:22 +02:00
parent 0b9af8f1bb
commit a03675113a
281 changed files with 12596 additions and 19526 deletions
@@ -0,0 +1,56 @@
---
name: fn_sync_with_pass
kind: pipeline
lang: bash
domain: pipelines
version: "1.0.0"
purity: impure
signature: "fn_sync_with_pass [status|locations|<args>...]"
description: "Wrapper de fn sync que lee credenciales del password-store pass y exporta FN_REGISTRY_API y REGISTRY_API_TOKEN antes de invocar el CLI. Evita persistir secretos en ~/.zshrc."
tags: [sync, registry, pass, gpg, launcher]
uses_functions:
- pass_get_bash_infra
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: []
params:
- name: "registry/basicauth-user"
desc: "Entry de pass con el usuario para basicAuth del registry API (linea 1)"
- name: "registry/basicauth-pass"
desc: "Entry de pass con la contraseña para basicAuth del registry API (linea 1)"
- name: "registry/api-token"
desc: "Entry de pass con el REGISTRY_API_TOKEN (linea 1)"
- name: "args"
desc: "Argumentos opcionales forwarded a fn sync: status, locations, o nada para push+pull completo"
output: "Mismo output que ./fn sync (stdin/stdout/stderr heredados). Exit code del subproceso fn sync."
tested: false
tests: []
test_file_path: ""
file_path: "bash/functions/pipelines/fn_sync_with_pass.sh"
---
## Ejemplo
```bash
# Sync simple (push+pull completo)
./fn run fn_sync_with_pass_bash_pipelines
# Ver estado local: PC, API, conteos
./fn run fn_sync_with_pass_bash_pipelines status
# Mapa de ubicaciones cross-PC
./fn run fn_sync_with_pass_bash_pipelines locations
```
## Cuando usarla
Cuando necesites ejecutar `fn sync` sin tener las credenciales exportadas en el entorno. Sustituye al bloque de `export FN_REGISTRY_API=...` que de otro modo habria que poner en `~/.zshrc`.
## Gotchas
- Si GPG no tiene la clave desbloqueada, `pass show` abre el prompt del agente gpg. Dejarlo pasar — no capturar stderr para no interferir con el pinentry.
- Requiere que el password-store este inicializado (`pass init`). Si no existe, `pass show` falla con error claro.
- `FN_REGISTRY_ROOT` debe apuntar a la raiz del registry donde vive el binario `./fn`. Si no esta seteado, se resuelve via `git rev-parse --show-toplevel`.
- Los tres entries de pass deben tener el valor en la **linea 1** (convencion estandar de pass). Metadata adicional en lineas siguientes es ignorada.