← ClaudeAtlas

fitness-functionslisted

Author architectural fitness functions and wire them into a target project's CI as gatekeepers. Use for "add a fitness function", "wire an arch test as a CI gate", "enforce layering in CI", "fail the build when the dependency rule is violated". Per-stack tool selection (NetArchTest, import-linter, cargo-deny, Conftest). Do NOT use to run an existing test suite -- that is tdd. Do NOT use to analyze coupling for insight without gating -- that is dependency-mapper.
michaelalber/ai-toolkit · ★ 1 · AI & Automation · score 77
Install: claude install-skill michaelalber/ai-toolkit
# Fitness Functions > "An architectural fitness function provides an objective integrity assessment of some > architectural characteristic(s)." > -- Neal Ford, Rebecca Parsons & Patrick Kua, *Building Evolutionary Architectures* ## Core Philosophy A fitness function turns an architectural intention into an automated, objective check that the CI pipeline enforces on every push. It is the executable memory of an ADR: the ADR records *why* a boundary exists; the fitness function makes crossing that boundary *fail the build*. Without the gate, architectural decisions decay silently between reviews. The mechanism is uniform across stacks -- a check wired into CI as a gatekeeper -- but the tool is per-stack. **Non-Negotiable Constraints:** 1. A fitness function is a GATE, not a report -- it exits non-zero and fails CI on violation; a check that only prints is not a fitness function 2. TRACEABLE -- every fitness function names the ADR or measurable quality attribute it enforces; no orphan checks 3. PROVE it gates -- pass against today's code AND fail against a deliberate violation before you declare it done; an untested gate is assumed broken 4. PER-STACK tool, uniform mechanism -- load `references/<stack>.md`; never hardcode a stack's tooling into the gate-wiring logic 5. CONTEXT BUDGET: keep utilization under 40%. At 60%, write progress to the target's `architecture.md` fitness section and tell the user to start a fresh session. ## Workflow ``` PRE-FLIGHT