Tool Structure
El layout estándar para una herramienta CLI. Los ficheros, los directorios, las convenciones y los requisitos de documentación.
Propósito
Esta página documenta el layout estándar para una herramienta CLI en el lab. Cada herramienta CLI sigue la misma estructura para que sea fácil de encontrar, leer, testear e integrar.
La estructura la impone la CLI Python tool template. Una herramienta nueva se crea copiando la plantilla y renombrando los ficheros relevantes.
Directory layout
La estructura es una generalización de las herramientas reales del lab (p. ej., torrent-finder, subtitle-finder).
Ficheros requeridos
Cada herramienta debe tener:
main.py— el CLI entry point.requirements.txt— las dependencias Python.pyproject.toml— la config del proyecto Python.package.json— el contexto AutoSkills.README.md— la documentación de usuario.TOOL.md— la especificación técnica.SKILL.md— el fichero de activación.AGENTS.md— las instrucciones para el coding sub-agent.tests/— los tests unitarios.
Una herramienta sin estos ficheros está incompleta.
Ficheros opcionales
Una herramienta puede tener:
lib.py— el core logic, separado del pegamento CLI.cli.py— los comandos Click, separados demain.py..env.example— variables de entorno de ejemplo.src/— módulos adicionales.skills/— skills relacionados.docs/— documentación adicional.examples/— ejemplos de uso.
Los ficheros opcionales se añaden cuando la herramienta crece. Una herramienta pequeña no los necesita.
Contenido de los ficheros
main.py
El CLI entry point. Estructura típica:
El main.py debe ser pequeño. El core logic debe estar en lib.py.
lib.py
El core logic. Estructura típica:
El lib.py es lógica pura. No depende de argparse ni de ningún framework CLI.
requirements.txt
Las dependencias Python. Una por línea:
Pinea la versión mayor. Pinea la versión menor cuando la API es inestable.
pyproject.toml
La config del proyecto Python. Típico:
package.json (AutoSkills)
El contexto AutoSkills. Es un pequeño fichero JSON que el coding sub-agent usa para entender el proyecto:
El campo skills es la lista de skills que el sub-agent debe activar. El campo tags es la lista de tags que el Coordinator usa para encontrar la herramienta.
README.md
La documentación de usuario. Secciones típicas:
- Título y descripción corta.
- Instalación.
- Uso (con ejemplos).
- Configuración.
- Limitaciones.
- Licencia.
TOOL.md
La especificación técnica. El formato está documentado en Tool Spec.
SKILL.md
El fichero de activación. El formato está documentado en Tool Spec.
AGENTS.md
Las instrucciones para el coding sub-agent. Secciones típicas:
- Project overview.
- Convenciones.
- Estructura de ficheros.
- Cómo añadir un comando nuevo.
- Cómo añadir una dependencia nueva.
- Cómo correr los tests.
Tests
El directorio tests/ contiene los tests unitarios. El lab usa pytest para herramientas Python. Los tests se organizan por módulo:
tests/test_main.py— tests para el CLI entry point.tests/test_lib.py— tests para el core logic.tests/test_<module>.py— tests para módulos adicionales.
Los tests siguen las convenciones de Tool Spec → Tests.
Skills
Una herramienta puede tener uno o más skills asociados. Un skill es un fichero markdown que el Coordinator activa cuando la request del usuario coincide con las frases disparadoras del skill.
Los skills viven en skills/<skill-name>/SKILL.md. El formato está documentado en Tool Spec → SKILL.md.
Examples
El directorio examples/ contiene ejemplos de uso. Los ejemplos son ficheros markdown que muestran cómo usar la herramienta en un escenario específico.
El formato es: