_template_python — Template de skill Python-backed (SE-347 lección PMA)
Copia este directorio a
.claude/skills/<nombre-skill>/cuando el skill deba exponer código reutilizable invocable (no solo instrucciones). El patrón Python-backed viene de Prime Agent (docs/skills.md): SKILL.md + paquete Python instalable + callablerun()con contrato tipado.Para skills solo-instructivos usa
.claude/skills/_template/.
Estructura
<nombre-skill>/
├── SKILL.md # metadata + instrucciones (igual que markdown skill)
├── pyproject.toml # marca el skill como python-backed
├── DOMAIN.md # (opcional, pm-workspace) contexto de dominio
└── src/
└── <import_name>/ # nombre con guiones → guiones bajos
└── __init__.py # debe definir `run(...)` (async opcional)
Contrato (convención adoptada de PMA)
SKILL.mdes obligatorio y sigue el estándar Agent Skills (agentskills.io).pyproject.tomldeclara el paquete; el nombre de import es el nombre del skill con-→_.src/<import_name>/__init__.pydefinerun(...)— el punto de entrada que el agente llama con contrato tipado (args con nombres y defaults).- El callable se invoca desde el runtime de python del proyecto (venv local, CRIT-001: nada sale a cloud).
- CLI opcional: declarar
[project.scripts]enpyproject.tomlpara invocar desde shell.
Ejemplo de __init__.py
"""Ejemplo: skill python-backed 'release-audit'."""
async def run(repository: str, target_version: str) -> str:
"""Audita un release: devuelve resumen tabular local."""
# implementación local (sin red / infra propia)
return f"audit {repository}@{target_version} OK"
Reglas pm-workspace
- CRIT-001: el código del skill se ejecuta en infraestructura propia; no se añaden dependencias sin aprobación (autonomous-safety).
- El SKILL.md debe documentar el contrato
run(...)en## Usage. - Verificar con
bash scripts/skill-catalog-auditor.sh --skill <nombre>.