A field guide to how complex systems fail (safely).
Real failure → FM (prove) → FP (explain) → GR (mitigate).
How?
This is an engineering experiment
- Because bugs disappear
- Failure patterns repeat forever
Pipeline: “Real failure → Minimal reproduction → Mechanism → Guardrail → Atlas update”
flowchart TD
A[failure]
A --> B[FM - minimal reproduction]
B --> C[FP - failure pattern]
C --> D[GR - guardrail pattern]
D --> E[Atlas]
FM proves. FP explains. GR mitigates.
- Real failure domain: Tool Authority Escalation via Prompt Injection
- Failure Mode:
FM_008_tool_authority_escalation - Failure Pattern:
FP_008_tool_authority_escalation_via_prompt_injection - Guardrail:
GR_008_explicit_tool_authorization_boundary - Postmortem:
PM_008_tool_authority_escalation
Explain the failure domain.
Artifacts:
FP_XXX_name.mdentries with YAML metadata- hidden assumption / trigger / mechanism / detection
- links to FM reproductions and GR guardrails
Prove the failure exists.
Artifacts:
FM_XXX_*bundles (spec.md,scenario.py, tests)- deterministic reproduction (happy/repro/prevent, recover when needed)
- explicit invariant references (
INV_XXX)
Prove the failure can be prevented or contained.
Artifacts:
GR_XXX_name.mdentries with YAML metadata- invariant-enforcing design pattern
- tradeoffs and links back to FP/FM
make testruns the full lab test suite inlab/(includes happy-path coverage)make test-001runs only Experiment 01 tests (happy path + FM_001 bundle)
- Do not create/edit
docs/*.htmlmanually. - Markdown is the source of truth:
atlas/FP_XXX_*.mdguardrails/GR_XXX_*.mdlab/postmortems/PM_XXX_*.mdlab/failure_modes/FM_XXX_*/spec.md(orREADME.mdfallback)
- Regenerate the static docs with:
make site(orpython site/build.py)
- The GitHub Pages deployment workflow builds the site from Markdown on every push to
main. - That means contributors should focus on source artifacts (FP/FM/GR/PM markdown + tests), not hand-maintained HTML.
- Local rebuild (
make site) is still useful for preview/review before pushing.