Files
fn_registry/.claude/rules/project_commands.md
T
egutierrez dce725e69f feat(infra): auto-commit con 8 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:38:16 +02:00

2.8 KiB

Slash commands por project (namespaced)

Cada projects/<p>/ puede tener su propio .claude/commands/*.md. Para invocarlos desde la raiz de fn_registry sin que pisen los comandos globales, se exponen via symlink namespaced en fn_registry/.claude/commands/<project>/.

Patron canonico

projects/aurgi/.claude/commands/foo.md         # archivo real (viaja con el sub-repo del project)
fn_registry/.claude/commands/aurgi  -> symlink -> ../../projects/aurgi/.claude/commands

Resultado:

cwd Invocacion
cd projects/aurgi && claude /foo (sin namespace)
cd fn_registry && claude /aurgi:foo (namespaced, no colisiona con /foo global)

Subdirs dentro de .claude/commands/ se exponen como namespace en el slash command. Por eso aurgi/foo.md -> /aurgi:foo.

Como anadir un project nuevo

  1. mkdir -p projects/<p>/.claude/commands/.
  2. Crear <comando>.md con frontmatter description: + cuerpo.
  3. Symlink: ln -sf ../../projects/<p>/.claude/commands /home/egutierrez/fn_registry/.claude/commands/<p>.
  4. Versionar el .claude/commands/ del project en su propio sub-repo (NO en fn_registry — projects estan gitignored).
  5. Versionar SOLO el symlink en fn_registry (git add .claude/commands/<p>).

Reglas

  • Cada project mantiene autonomia: sus commands viajan con el sub-repo y funcionan tanto en cd projects/<p> como desde la raiz.
  • El symlink en fn_registry da acceso global con namespace — sin colision con commands del registry.
  • NO duplicar contenido: archivo real solo en projects/<p>/.claude/commands/. fn_registry solo guarda el symlink.
  • Si el project se mueve/elimina, borrar el symlink en fn_registry.

Listado actual

Project Symlink Commands disponibles desde fn_registry
aurgi .claude/commands/aurgi /aurgi:aumentar_task, /aurgi:contexto_aurgi, /aurgi:anadir_contexto_aurgi

Anadir filas aqui al introducir un project nuevo con commands.

Catalogo dinamico

Para listado en tiempo real (sin tener que actualizar esta tabla a mano): /commands escanea .claude/commands/ recursivo y agrupa por namespace. Filtros: /commands <substring>, /commands --ns <ns>, /commands --json.

Gotchas

  • Claude Code lista los commands disponibles al inicio de sesion. Si un symlink apunta a un directorio inexistente, los commands no aparecen — verificar con ls -L .claude/commands/<project>/.
  • El namespace usa el nombre del subdirectorio (aurgi/), no del project en projects/. Mantenerlos iguales para evitar confusion.
  • Los commands del project se ejecutan con el cwd de la sesion actual. Un /aurgi:aumentar_task invocado desde fn_registry/ corre con cwd fn_registry/ — paths relativos en el .md deben asumir esto (siempre usar paths relativos al repo, ej. projects/aurgi/vaults/...).