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

1.4 KiB

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


🧁