chore: auto-commit (129 archivos)

- .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>
This commit is contained in:
2026-06-01 22:23:12 +02:00
parent dbf5b45acd
commit 7913116a8e
129 changed files with 427 additions and 422 deletions
+2 -2
View File
@@ -36,9 +36,9 @@ file_path: "functions/infra/agent_cleanup_worktree.go"
```go
err := infra.AgentCleanupWorktree(
"/home/lucas/fn_registry",
"$HOME/fn_registry",
"auto/0115-worktree-launcher-fn",
"/home/lucas/fn_registry/worktrees/0115-worktree-launcher-fn",
"$HOME/fn_registry/worktrees/0115-worktree-launcher-fn",
12345, // PID devuelto por AgentLaunchWorktree
)
if err != nil {
+3 -3
View File
@@ -31,9 +31,9 @@ file_path: "functions/infra/agent_launch_worktree.go"
```go
res := infra.AgentLaunchWorktree(infra.WorktreeLaunchConfig{
RepoRoot: "/home/lucas/fn_registry",
RepoRoot: "$HOME/fn_registry",
Branch: "auto/0115-worktree-launcher-fn",
WorktreePath: "/home/lucas/fn_registry/worktrees/0115-worktree-launcher-fn",
WorktreePath: "$HOME/fn_registry/worktrees/0115-worktree-launcher-fn",
Prompt: "Implement issue 0115 — worktree launcher Go function",
LogPath: "/tmp/claude-0115.log",
SkipPerms: true,
@@ -44,7 +44,7 @@ if res.Error != "" {
}
fmt.Printf("claude PID=%d branch=%s log=%s\n", res.PID, res.Branch, res.LogPath)
// ... agente trabaja ...
infra.AgentCleanupWorktree(res.WorktreePath, res.Branch, "/home/lucas/fn_registry", res.PID)
infra.AgentCleanupWorktree(res.WorktreePath, res.Branch, "$HOME/fn_registry", res.PID)
```
## Cuando usarla
+1 -1
View File
@@ -29,7 +29,7 @@ file_path: "functions/infra/artefact_doctor.go"
## Ejemplo
```go
checks, err := ArtefactDoctor("/home/lucas/fn_registry")
checks, err := ArtefactDoctor("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
+2 -2
View File
@@ -26,7 +26,7 @@ test_file_path: ""
file_path: "functions/infra/audit_app_drift.go"
params:
- name: registryRoot
desc: "Ruta absoluta a la raiz del fn_registry (ej. /home/lucas/fn_registry). Se buscan modules/*/module.md, apps/*/app.md, projects/*/apps/*/app.md y cpp/build/{linux,windows}/apps/<name>/."
desc: "Ruta absoluta a la raiz del fn_registry (ej. $HOME/fn_registry). Se buscan modules/*/module.md, apps/*/app.md, projects/*/apps/*/app.md y cpp/build/{linux,windows}/apps/<name>/."
- name: windowsDeployRoot
desc: "Ruta absoluta donde se despliegan los .exe de Windows (ej. /mnt/c/Users/lucas/Desktop/apps). Si vacio, se omite la inspeccion del binario desplegado y solo se usan los artefactos bajo cpp/build."
output: "Slice de AppDriftEntry, uno por app C++ encontrada. Status: 'ok' (todas las versiones coinciden), 'drift' (al menos un modulo tiene version distinta), 'no-build' (no se encontro ningun artefacto compilado). Campo Stale lista los nombres de modulos con drift."
@@ -45,7 +45,7 @@ Detecta apps C++ cuyos binarios/artefactos enlazan una version de modulo inferio
## Ejemplo
```go
entries, err := infra.AuditAppDrift("/home/lucas/fn_registry", "/mnt/c/Users/lucas/Desktop/apps")
entries, err := infra.AuditAppDrift("$HOME/fn_registry", "/mnt/c/Users/lucas/Desktop/apps")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -30,7 +30,7 @@ file_path: "functions/infra/audit_app_location.go"
## Ejemplo
```go
violations, err := AuditAppLocation("/home/lucas/fn_registry")
violations, err := AuditAppLocation("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -59,7 +59,7 @@ type CapabilityGroupAudit struct {
## Ejemplo
```go
audits, err := AuditCapabilityGroups("/home/lucas/fn_registry")
audits, err := AuditCapabilityGroups("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -28,7 +28,7 @@ imports:
example: |
import "fn-registry/functions/infra"
entries, err := infra.AuditCopiedCode("/home/lucas/fn_registry")
entries, err := infra.AuditCopiedCode("$HOME/fn_registry")
if err != nil { ... }
for _, e := range entries {
fmt.Printf("%s:%s ~ %s (%s, %.2f)\n",
+1 -1
View File
@@ -27,7 +27,7 @@ file_path: "functions/infra/audit_cpp_apps.go"
## Ejemplo
```go
audits, err := infra.AuditCppApps("/home/lucas/fn_registry")
audits, err := infra.AuditCppApps("$HOME/fn_registry")
if err != nil { log.Fatal(err) }
for _, a := range audits {
if !a.OK {
+1 -1
View File
@@ -29,7 +29,7 @@ output: "Slice de DataTableUsageEntry, uno por app C++ con uses_modules: [data_t
```go
import "fn-registry/functions/infra"
entries, err := infra.AuditDataTableUsage("/home/lucas/fn_registry")
entries, err := infra.AuditDataTableUsage("$HOME/fn_registry")
if err != nil {
panic(err)
}
+2 -2
View File
@@ -36,8 +36,8 @@ file_path: "functions/infra/audit_dod_schema.go"
```go
report, err := infra.AuditDodSchema(
"/home/lucas/fn_registry/dev/issues",
"/home/lucas/fn_registry/dev/flows",
"$HOME/fn_registry/dev/issues",
"$HOME/fn_registry/dev/flows",
)
if err != nil {
log.Fatal(err)
+1 -1
View File
@@ -47,7 +47,7 @@ output: "MlEnvReport con Gpus (puede estar vacio si no hay NVIDIA), Checks con e
## Ejemplo
```go
root := "/home/lucas/fn_registry"
root := "$HOME/fn_registry"
report, err := AuditMlEnv(root)
if err != nil {
log.Fatal(err)
+1 -1
View File
@@ -27,7 +27,7 @@ output: "Slice de ModuleDriftCheck (uno por app C++ con CMakeLists.txt). Apps si
```go
import "fn-registry/functions/infra"
checks, err := infra.AuditModulesDrift("/home/lucas/fn_registry")
checks, err := infra.AuditModulesDrift("$HOME/fn_registry")
if err != nil { panic(err) }
for _, c := range checks {
if !c.OK {
+1 -1
View File
@@ -37,7 +37,7 @@ Reporta apps con tag `service` cuya `service:` block esta incompleta.
## Ejemplo
```go
audits, err := infra.AuditServicesSpec("/home/lucas/fn_registry")
audits, err := infra.AuditServicesSpec("$HOME/fn_registry")
for _, a := range audits {
if !a.OK {
fmt.Println(a.AppID, "issues:", a.Issues)
+1 -1
View File
@@ -30,7 +30,7 @@ file_path: "functions/infra/audit_uses_functions.go"
## Ejemplo
```go
results, err := AuditUsesFunctions("/home/lucas/fn_registry")
results, err := AuditUsesFunctions("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -36,7 +36,7 @@ file_path: "functions/infra/find_unused_functions.go"
## Ejemplo
```go
unused, err := FindUnusedFunctions("/home/lucas/fn_registry")
unused, err := FindUnusedFunctions("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
@@ -28,9 +28,9 @@ imports:
example: |
import "fn-registry/functions/infra"
drafts, err := infra.GenerateProposalsFromTelemetry("/home/lucas/fn_registry")
drafts, err := infra.GenerateProposalsFromTelemetry("$HOME/fn_registry")
if err != nil { ... }
inserted, total, err := infra.PersistProposalDrafts("/home/lucas/fn_registry", drafts)
inserted, total, err := infra.PersistProposalDrafts("$HOME/fn_registry", drafts)
fmt.Printf("%d/%d proposals nuevas\n", inserted, total)
file_path: "functions/infra/generate_proposals_from_telemetry.go"
tested: false
+1 -1
View File
@@ -40,7 +40,7 @@ output: "Slice de LocationDrift con todos los discrepancias encontradas. Vacio s
## Ejemplo
```go
drifts, err := PcLocationsDrift("/home/lucas/fn_registry", "")
drifts, err := PcLocationsDrift("$HOME/fn_registry", "")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -40,7 +40,7 @@ output: "Lista de IDs de proposals creados (formato 'prop_<16hexchars>'). Error
```go
results, _ := infra.E2ERunChecks(checks, "/opt/apps/myapp")
propIDs, err := infra.ProposalFromFailure(
"/home/lucas/fn_registry/registry.db",
"$HOME/fn_registry/registry.db",
"my_app",
results,
"exec_20260509_001",
+1 -1
View File
@@ -31,7 +31,7 @@ file_path: "functions/infra/scan_flows_dir.go"
## Ejemplo
```go
flows, err := infra.ScanFlowsDir("/home/lucas/fn_registry/dev/flows")
flows, err := infra.ScanFlowsDir("$HOME/fn_registry/dev/flows")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -32,7 +32,7 @@ file_path: "functions/infra/scan_issues_dir.go"
## Ejemplo
```go
issues, err := infra.ScanIssuesDir("/home/lucas/fn_registry/dev/issues")
issues, err := infra.ScanIssuesDir("$HOME/fn_registry/dev/issues")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -38,7 +38,7 @@ output: "Slice de ServiceStatus con estado systemd, puerto y pc_id por cada app
## Ejemplo
```go
statuses, err := ServicesStatus("/home/lucas/fn_registry")
statuses, err := ServicesStatus("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -40,7 +40,7 @@ output: "AggregateReport con VaultsProcessed, VaultsSkipped (sin vault_index.db)
## Ejemplo
```go
report, err := infra.VaultAggregateIndex("/home/lucas/fn_registry")
report, err := infra.VaultAggregateIndex("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -51,7 +51,7 @@ output: "Slice de VaultDoctorEntry con Status (ok/warning/error), Issues, DiskFi
## Ejemplo
```go
entries, err := infra.VaultDoctor("/home/lucas/fn_registry")
entries, err := infra.VaultDoctor("$HOME/fn_registry")
for _, e := range entries {
fmt.Printf("%-30s %-8s files=%d issues=%v\n",
e.VaultName, e.Status, e.DiskFiles, e.Issues)
+1 -1
View File
@@ -35,7 +35,7 @@ file_path: "functions/infra/vault_manifest_read.go"
## Ejemplo
```go
entries, err := VaultManifestRead("/home/lucas/fn_registry")
entries, err := VaultManifestRead("$HOME/fn_registry")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -36,7 +36,7 @@ file_path: "functions/infra/watch_dir_fsnotify.go"
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ch, err := infra.WatchDirFsnotify(ctx, "/home/lucas/fn_registry/dev/issues")
ch, err := infra.WatchDirFsnotify(ctx, "$HOME/fn_registry/dev/issues")
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -42,7 +42,7 @@ go run functions/pipelines/init_metabase/main.go \
# Con volume para registry.db (detecta cambios en vivo)
go run functions/pipelines/init_metabase/main.go \
--project fn_registry \
--mb-volumes "/home/lucas/fn_registry/registry.db:/data/registry.db"
--mb-volumes "$HOME/fn_registry/registry.db:/data/registry.db"
```
Salida JSON:
+1 -1
View File
@@ -34,7 +34,7 @@ file_path: "apps/pipeline_launcher/main.go"
## Ejemplo
```bash
FN_REGISTRY_ROOT=/home/lucas/fn_registry go run apps/pipeline_launcher/main.go
FN_REGISTRY_ROOT=$HOME/fn_registry go run apps/pipeline_launcher/main.go
```
## Notas