Architecture
Disposition des sources
Pourquoi Apothem utilise une disposition src/ et comment l'arborescence est organisée.
Apothem a adopté la src-layout de PyPA, en plaçant tout le Python importable sous src/apothem/.
Pourquoi la src-layout
- Isolation des importations.
import apothemne se résout que lorsquesrc/est sur le chemin (le moteur s'exécute viaPYTHONPATH=src python -m apothem), ce qui empêche les importations accidentelles de l'arbre de travail depuis un répertoire sans rapport. - Runtime autonome. Apothem s'exécute directement depuis un checkout, avec ses
dépendances internalisées sous
src/apothem/_vendor/— aucune étape d'installation n'est requise. La src-layout garde cette surface importable proprement séparée de l'outillage, des tests et des scripts du dépôt. - Distribution propre. La même disposition produit un sdist et un wheel bien formés
(ainsi qu'une installation modifiable optionnelle
pip install -e .) dont le contenu correspond exactement à ce qui est livré, sans qu'aucun module parasite de premier niveau ne s'y glisse.
Structure de l'arborescence
src/apothem/
agents/ persistent agent definitions (*.md)
audit/ inventory and provenance tools
benchmarks/ performance benchmarks
cli/ Click CLI (top-level commands listed below the tree)
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 artifactsCommandes de la CLI
La liste ci-dessous est générée à partir de l'arbre de commandes Click.
The cli/ package registers 14 top-level commands:
apothem backupsapothem completionapothem diffapothem doctorapothem harnessesapothem installapothem migrate-workspaceapothem profileapothem quickstartapothem rollbackapothem statusapothem uninstallapothem updateapothem verify
Artefacts importables vs. artefacts de configuration
De nombreux éléments sous src/apothem/ sont des artefacts de configuration en Markdown, et non
des modules Python. La surface Python importable est :
src/apothem/cli/(la CLI Click exposée comme point d'entréeapothem)src/apothem/harnesses/(les 17 sous-paquets d'adaptateurs d'environnement)src/apothem/lib/(bibliothèque partagée : profil, registre, materializer, propagation)src/apothem/hooks/(dispatch.py, lib/)src/apothem/conformity/(scripts grep mécaniques)src/apothem/audit/(scripts d'inventaire)src/apothem/benchmarks/(pilotes de benchmarks de performance)