adr-distilled.md — Architectural Directives¶
Auto-generated from the project's ADRs by the adr-distiller. Do not edit directly — edit the source ADRs and re-run
/zolletta-metaskill adr-distilleror/zolletta-metaskill review. Each directive links to its source ADR for full context. Only Accepted decisions are included.
- ADR-0001 We use a single meta-skill with subcommand dispatch.
- ADR-0002 Setup writes a single .zolletta-metaskill/settings.json file containing all project-wide configuration.
- ADR-0003 We adopt the Diátaxis framework for the project's documentation.
- ADR-0004 All scanning scripts use Python 3.12+ standard library only.
- ADR-0005 The review skill launches one subagent per command, all in parallel as background subagents.
- ADR-0006 Every subcommand runs a setup guard: if settings.json is missing, run full setup first; if pyproject.toml/composer.json changed, re-extract only the tool config.
- ADR-0007 We introduce a LanguageEngine protocol with a ModuleInfo data model.
- ADR-0008 All subfolders containing a sub-skill are grouped under a skills/ directory.
- ADR-0009 Inline shell detection commands in setup are replaced by standalone, testable Python scripts under src/zolletta_metaskill/setup/ (stdlib only, JSON output, unit-tested).
- ADR-0010 An ADR distiller extracts Accepted ADRs into adr-distilled.md (one-line directives with source links), kept in sync via an mtime cache, and read by review subagents as architectural context.
- ADR-0011 We do not integrate an external dependency inspector tool into Zolletta-metaskill.
- ADR-0012 We do not add a property-based testing sensor to Zolletta-metaskill.
- ADR-0013 We do not add a fuzz testing sensor to Zolletta-metaskill.
- ADR-0014 We add a conditional mutation-testing sensor: setup detects mutmut (Python) / Infection (PHP) availability; the testing-style skills run it on the
changedscope when installed, opted-in, and the coverage run is green, with deterministic survived-mutant extraction by mutmut_survived_reporter.py - ADR-0015 All review scripts share one CLI contract: --json only; scan roots, toggles, and thresholds come from .zolletta-metaskill/settings.json via ProjectConfig.
- ADR-0017 Adopt the Balanced Coupling model in the patterns review as deterministic triage (integration_graph_scanner.py emits internal edges) plus a judgment pass that flags only unbalanced-and-volatile integrations.