Arquitetura
Layout do código-fonte
Por que o Apothem usa um layout src/ e como a árvore é organizada.
O Apothem adotou o src-layout da PyPA, colocando todo o Python importável sob src/apothem/.
Por que o src-layout
- Isolamento de importação.
import apothemsó é resolvido quandosrc/está no path (o motor é executado comoPYTHONPATH=src python -m apothem), o que evita importações acidentais da árvore de trabalho a partir de um diretório não relacionado. - Runtime autocontido. O Apothem é executado diretamente a partir de um
checkout com suas dependências internalizadas sob
src/apothem/_vendor/— nenhuma etapa de instalação é necessária. O src-layout mantém essa superfície importável claramente separada das ferramentas, dos testes e dos scripts do repositório. - Distribuição limpa. O mesmo layout produz um sdist e um wheel bem formados
(e uma instalação editável opcional
pip install -e .) cujo conteúdo corresponde exatamente ao que é distribuído, sem módulos avulsos de nível superior infiltrados.
Estrutura da árvore
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 artifactsComandos da CLI
A lista abaixo é gerada a partir da árvore de comandos do 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
Artefatos importáveis vs. artefatos de configuração
Muitos itens sob src/apothem/ são artefatos de configuração em Markdown, não
módulos Python. A superfície Python importável é:
src/apothem/cli/(a CLI do Click exposta como o ponto de entradaapothem)src/apothem/harnesses/(os 17 subpacotes de adaptadores de harness)src/apothem/lib/(biblioteca compartilhada: perfil, registro, materializador, propagação)src/apothem/hooks/(dispatch.py, lib/)src/apothem/conformity/(scripts de grep mecânicos)src/apothem/audit/(scripts de inventário)src/apothem/benchmarks/(drivers de benchmarks de desempenho)