diff --git a/.claude/rules/INDEX.md b/.claude/rules/INDEX.md index 2b5e1477..bde8f0ed 100644 --- a/.claude/rules/INDEX.md +++ b/.claude/rules/INDEX.md @@ -11,7 +11,7 @@ Reglas operativas del proyecto. Cada archivo es una regla independiente. | 05 | [stubs.md](stubs.md) | Stubs impuros para dependencias externas | | 06 | [assertions.md](assertions.md) | Kinds de assertions son texto libre | | 07 | [proposals.md](proposals.md) | Quien crea proposals y cuando | -| 08 | [tag_launcher.md](tag_launcher.md) | Tag launcher para Pipeline Launcher TUI | +| 08 | [function_tags.md](function_tags.md) | Tags con significado especial: launcher, service | | 09 | [go_packages.md](go_packages.md) | Nombre de paquete Go = nombre del directorio | | 10 | [apps_vs_functions.md](apps_vs_functions.md) | Codigo reutilizable en functions/, no reutilizable en apps/ | | 11 | [sources.md](sources.md) | Extraccion de funciones desde repos externos | diff --git a/.claude/rules/function_tags.md b/.claude/rules/function_tags.md new file mode 100644 index 00000000..58be06f4 --- /dev/null +++ b/.claude/rules/function_tags.md @@ -0,0 +1,30 @@ +Los pipelines con tag `launcher` aparecen en el Pipeline Launcher TUI (`apps/pipeline_launcher`). + +Sin el tag, el pipeline no es lanzable desde la TUI. Añadir `launcher` al array `tags` del .md al crear un pipeline ejecutable desde el launcher. + +Pipelines interactivos (TUIs) o que no son subprocesos NO deben llevar este tag. + +## Tag `service` + +Las apps con tag `service` son procesos de larga duracion: APIs, daemons, watchers, servers. + +Diferencia con una app normal: +- Una **app** se ejecuta, hace su trabajo, y termina (CLI, TUI, script) +- Un **service** se lanza y queda corriendo indefinidamente (API server, scheduler, watcher) + +Añadir `service` al array `tags` del `app.md` cuando la app esta diseñada para correr como proceso persistente. + +Un service sigue siendo una app — vive en `apps/`, tiene `app.md`, se indexa igual. El tag es solo metadata para filtrar: + +```sql +-- Listar services +SELECT id, name, description FROM apps WHERE tags LIKE '%service%'; + +-- Listar apps que NO son services +SELECT id, name, description FROM apps WHERE tags NOT LIKE '%service%'; +``` + +Documentar en el `app.md` del service: +- El puerto que usa (si expone HTTP/gRPC) +- Como lanzarlo y pararlo +- Como comprobar que esta vivo (health check) diff --git a/.claude/rules/tag_launcher.md b/.claude/rules/tag_launcher.md deleted file mode 100644 index d027e5e6..00000000 --- a/.claude/rules/tag_launcher.md +++ /dev/null @@ -1,5 +0,0 @@ -Los pipelines con tag `launcher` aparecen en el Pipeline Launcher TUI (`apps/pipeline_launcher`). - -Sin el tag, el pipeline no es lanzable desde la TUI. Añadir `launcher` al array `tags` del .md al crear un pipeline ejecutable desde el launcher. - -Pipelines interactivos (TUIs) o que no son subprocesos NO deben llevar este tag.