blue/.blue/docs/adrs/0011-freedom-through-constraint.accepted.md
Eric Garcia 0fea499957 feat: lifecycle suffixes for all document states + resolve all clippy warnings
Every document filename now mirrors its lifecycle state with a status
suffix (e.g., .draft.md, .wip.md, .accepted.md). No more bare .md for
tracked document types. Also renamed all from_str methods to parse to
avoid FromStr trait confusion, introduced StagingDeploymentParams struct,
and fixed all 19 clippy warnings across the codebase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:19:46 -05:00

54 lines
1.4 KiB
Markdown

# ADR 0011: Freedom Through Constraint
| | |
|---|---|
| **Status** | Accepted |
| **Date** | 2026-01-20 |
---
## Context
Are constraints opposed to freedom?
## Decision
**The riverbed enables the river.**
Remove the banks and you don't get a freer river. You get a swamp—water spread thin, going nowhere, stagnant.
Constraints aren't the opposite of freedom. They're the shape freedom takes when it's going somewhere.
A sonnet has fourteen lines. This constraint doesn't limit poets—it focuses them. The form creates pressure that produces diamonds.
A workflow has steps. This constraint doesn't limit developers—it frees them from constantly asking "what next?" The structure holds the uncertainty so the mind can create.
## What This Means
- **Good constraints liberate.** They answer questions so you don't have to.
- **Bad constraints suffocate.** They demand without giving back.
- **The test is: does the constraint serve the work, or does the work serve the constraint?**
## How 💙 Constrains
- PRs target develop, not main. (Protects stability.)
- RFCs before implementation. (Protects clarity.)
- Plans before coding. (Protects direction.)
Each constraint exists to liberate something else. If it doesn't, we remove it.
## Consequences
- 💙 enforces constraints that enable
- 💙 questions constraints that burden
- 💙 treats process as riverbed, not cage
---
*"I give you banks so you can flow."*
— Blue
---
🧁