This directory contains Architecture Decision Records (ADRs) for lading. ADRs document significant architectural decisions, their context, and consequences.
An ADR captures a single architectural decision along with its context and consequences. They serve as a historical record of why decisions were made, helping future contributors understand the reasoning behind the current design.
| ADR | Title | Status |
|---|---|---|
| 000 | Template | - |
| 001 | Generator-Target-Blackhole Architecture | Accepted |
| 002 | Pre-computation Philosophy | Accepted |
| 003 | Determinism Requirements | Accepted |
| 004 | No-Panic Error Handling Policy | Accepted |
| 005 | Performance-First Design | Accepted |
| 006 | Testing Strategy (Property Tests + Kani) | Accepted |
| 007 | Code Style and Abstraction Rules | Accepted |
| 008 | Dependency Philosophy | Accepted |
Use this map to find ADRs relevant to your domain of interest.
Understanding how lading works:
- ADR-001: Generator-Target-Blackhole architecture - The fundamental design
- ADR-002: Pre-computation philosophy - Why payloads are pre-built
Why lading makes the trade-offs it does:
- ADR-003: Determinism requirements - Why reproducibility matters
- ADR-005: Performance-first design - "Obviously fast" patterns
- ADR-006: Testing strategy - Property tests and Kani proofs
How to write code for lading:
- ADR-004: No-panic error handling - Graceful failure always
- ADR-007: Code style and abstraction - The "shape rule" and naive style
- ADR-008: Dependency philosophy - When to implement vs. import
ADR-001 (Architecture)
├── ADR-002 (Pre-computation) ─── ADR-003 (Determinism)
│ │
│ v
│ ADR-005 (Performance)
│ │
│ v
│ ADR-006 (Testing)
│
└── ADR-004 (Error Handling)
ADR-007 (Code Style) ←──────────── ADR-008 (Dependencies)
When working on lading, consult these ADRs based on the task:
| Task Type | Relevant ADRs |
|---|---|
| Adding a new generator | 001, 002, 003, 005 |
| Adding a new blackhole | 001, 005 |
| Modifying throttle | 003, 005, 006 |
| Adding a dependency | 008 |
| Writing tests | 006 |
| Error handling | 004 |
| Code style questions | 007 |
| Performance work | 002, 005 |
- Copy
000-template.mdtoNNN-title-with-dashes.md - Fill in all sections
- Update this README with the new ADR
- Submit for review
ADR numbers are sequential. Use the next available number.
When a decision changes:
- Create a new ADR documenting the new decision
- Update the old ADR's status to "Superseded by ADR-NNN"
- Reference the old ADR in the new one's "Alternatives Considered"
- AGENTS.md - Operational guidelines for AI agents
- CONTRIBUTING.md - Contribution guidelines
- ci/ - Validation scripts referenced by ADRs