Slash commands vs skills: context fork, allowed-tools whitelist y argument-hint; convenciones permanentes van en CLAUDE.md.
Corrección de hechos (oficial). [DOC] Esta kata describe
allowed-toolscomo una "whitelist que limita operaciones destructivas". Es inexacto:allowed-toolspre-aprueba (evita prompts) las tools listadas pero NO cierra las demás — para limitar/quitar tools usadisallowed-toolsopermissions.deny. Además, los slash commands están fusionados en skills (.claude/commands/x.md≡.claude/skills/x/SKILL.md). Vercustom-tooling-extensionyclaude-command-authoringpara el detalle corregido.
Claude Code extiende la sesión con dos mecanismos de extensión distintos. Los slash commands viven en .claude/commands/X.md y se disparan explícitamente escribiendo /X. Las skills viven en .claude/skills/X/SKILL.md y se activan on-demand cuando el modelo detecta que la metadata del frontmatter encaja con la tarea. El frontmatter de una skill declara su contrato operativo: context: fork aísla la ejecución en un sub-agente, allowed-tools define la whitelist de herramientas permitidas, y argument-hint documenta los argumentos esperados.
Un command guardado en ~/.claude/commands/ no se replica al equipo: solo existe en la máquina personal de quien lo creó, así que el resto del equipo nunca lo recibe vía git. Una skill sin context: fork contamina la sesión principal con output verbose (un análisis exploratorio puede inyectar unos 5000 tokens de ruido en el contexto activo). Y una skill que no declara disallowed-tools (ni permissions.deny) deja abiertas operaciones destructivas: recuerda que allowed-tools solo pre-aprueba, no cierra las demás tools.
.claude/) viaja con git y llega a todo el equipo; user scope (~/.claude/) es personal y no se comparte.context: fork aísla la skill en un sub-agente → economía de contexto: el output verbose no contamina la sesión principal.allowed-tools pre-aprueba las tools listadas (evita prompts) pero NO cierra las demás; para impedir Write/Bash usa disallowed-tools o permissions.deny.# .claude/skills/codebase-analysis/SKILL.md
---
name: codebase-analysis
description: "Mapea estructura y dependencias de un módulo o feature."
context: fork
allowed-tools: ["Read", "Grep", "Glob"]
argument-hint: "<dir-or-feature>"
---
# El body hace Glob -> Grep -> devuelve un resumen tipado.
# context:fork aísla los ~5000 tokens de exploración en un sub-agente.
# allowed-tools sin Write ni Bash impide mutaciones por accidente.# ~/.claude/skills/codebase-analysis/SKILL.md (user scope: NO replica al equipo)
---
name: codebase-analysis
# sin context: fork -> 5000 tokens contaminan la sesión principal
# sin allowed-tools -> puede Write/Bash y borrar por accidente
---context, allowed-tools y argument-hint.context: fork con la economía de contexto (sub-agente aislado).context: fork, allowed-tools, argument-hint).katas-context-dilution-mitigationkatas-prefix-cachingkatas-session-resume-forkCapas del packet, cargables bajo demanda (disciplina ICM: una capa por vez, nunca todas juntas): knowledge/ cuerpo de conocimiento · prompts/ prompts listos · examples/ salida de ejemplo · agents/ subagentes del packet · templates/ plantilla de output.
e8f986b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.