dce725e69f
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.8 KiB
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
mkdir -p projects/<p>/.claude/commands/.- Crear
<comando>.mdcon frontmatterdescription:+ cuerpo. - Symlink:
ln -sf ../../projects/<p>/.claude/commands /home/egutierrez/fn_registry/.claude/commands/<p>. - Versionar el
.claude/commands/del project en su propio sub-repo (NO en fn_registry — projects estan gitignored). - 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 enprojects/. Mantenerlos iguales para evitar confusion. - Los commands del project se ejecutan con el cwd de la sesion actual. Un
/aurgi:aumentar_taskinvocado desdefn_registry/corre con cwdfn_registry/— paths relativos en el.mddeben asumir esto (siempre usar paths relativos al repo, ej.projects/aurgi/vaults/...).