What We Learned
Naming failure modes before writing code changes the entire implementation trajectory. The STRATT TAD defines 8 failure modes (FM-01 through FM-08) with explicit triggers, detection points, and recovery steps. When the dependency graph package was implemented, each failure mode mapped directly to a CI check function, a test case, and a row in the blast radius report. This is the opposite of “add error handling later.” The failure modes are the specification.Why Naming Matters
An unnamed failure is a surprise. A named failure is a gate. The difference:- FM-03 (circular dependency) produces a Kahn’s algorithm check, prints the exact cycle path as strat:// URIs, and blocks the PR. Without a name, this would be “import resolution hangs” or “stack overflow in production.”
- FM-05 (gate removed without major bump) compares the current chain’s composition against the previous version. Without an explicit mode, gate removal would be invisible until an autonomous agent skips a human checkpoint in production.
- FM-04 (protected agent absent) enforces that compliance-critical reviewers cannot be silently removed from chains. Without it, a single edit to a chain file removes the guardrail.