Arquitectura
Disposición del código fuente
Por qué Apothem usa una disposición src/ y cómo está organizado el árbol.
Apothem adoptó la src-layout de PyPA, colocando todo el Python importable bajo src/apothem/.
Por qué la src-layout
- Aislamiento de importación.
import apothemsolo se resuelve cuandosrc/está en la ruta (el motor se ejecuta comoPYTHONPATH=src python -m apothem), lo que evita importaciones accidentales del árbol de trabajo desde un directorio no relacionado. - Entorno de ejecución autónomo. Apothem se ejecuta directamente desde un checkout con sus
dependencias incorporadas bajo
src/apothem/_vendor/— no se requiere ningún paso de instalación. La src-layout mantiene esa superficie importable claramente separada de las herramientas, las pruebas y los scripts del repositorio. - Distribución limpia. La misma disposición produce un sdist y un wheel bien formados
(y una instalación editable opcional con
pip install -e .) cuyo contenido coincide exactamente con lo que se distribuye, sin módulos sueltos de nivel superior filtrándose.
Estructura del árbol
src/apothem/
agents/ persistent agent definitions (*.md)
audit/ inventory and provenance tools
benchmarks/ performance benchmarks
cli/ Click CLI (quickstart, install, update, uninstall, verify, status, diff, rollback, harnesses, profile, doctor, completion)
commands/ slash command definitions (*.md)
conformity/ mechanical gate checkers (*-grep.py)
harnesses/ one sub-package per harness adapter (17 adapters)
hooks/ hook dispatcher + message files
lib/ shared Python library
output-styles/ output-style definitions (*.md)
rules/ behavioral rules (*.md)
schemas/ YAML/JSON schemas
skills/ reusable skill templates (folder/SKILL.md)
statuslines/ status-line config (*.json)
templates/ reusable template artifactsArtefactos importables vs. de configuración
Muchos elementos bajo src/apothem/ son artefactos de configuración en Markdown, no
módulos de Python. La superficie de Python importable es:
src/apothem/cli/(la CLI de Click expuesta como el punto de entradaapothem)src/apothem/harnesses/(los 17 subpaquetes de adaptadores de harness)src/apothem/lib/(biblioteca compartida: perfil, registro, materializador, propagación)src/apothem/hooks/(dispatch.py, lib/)src/apothem/conformity/(scripts de grep mecánicos)src/apothem/audit/(scripts de inventario)src/apothem/benchmarks/(controladores de pruebas de rendimiento)