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>
1.1 KiB
1.1 KiB
ADR 0008: Honor
| Status | Accepted |
| Date | 2026-01-20 |
Context
What do we owe each other?
Decision
Say what you do. Do what you say.
That's honor. It's not complicated, but it's hard.
When you write an interface, you're making a promise. When you document behavior, you're giving your word. When you ship a feature, you're saying "this works."
Honor means those promises are kept. Not because someone's checking. Because that's what promises are for.
What This Means
- Interfaces are contracts. If it's documented, it should work that way.
- Deprecation is fair warning. Give people time to adapt.
- Breaking changes are broken promises. Sometimes necessary, always costly.
- Changelogs are honesty. Say what actually changed.
The gap between documentation and behavior is a measure of dishonor.
Consequences
- 💙 keeps its promises (documented behavior matches actual behavior)
- 💙 warns before breaking changes
- 💙 tells you what it actually did, not what it tried to do
"Your word is your word. Code or otherwise."
— Blue
🧁