Hyrum’s Law¶
With enough users, every observable behavior will be depended on by somebody.
Canonical interpretation¶
Treat observable behavior as potential compatibility surface while still distinguishing intentional guarantees from accidental behavior.
Purpose¶
With enough users, every observable behavior will be depended on by somebody.
Apply when¶
- Consumers cannot be updated atomically with the implementation.
- Observable behavior or data formats form an external contract.
This does not mean¶
- Do not conclude that change is impossible.
- Do not promise all incidental timing or formatting forever.
Trade-offs¶
- Compatibility limits refactoring freedom.
- Preserving accidental behavior can accumulate long-term complexity.
Conflicts with canonical entries¶
semantic-versioning
Broader policy tensions¶
refactoring-freedom
Reinforces canonical entries¶
backward-compatibilityprinciple-of-least-astonishment
Supports broader concerns¶
- None recorded.
Core Skill ownership¶
Primary owner: engineering-review-lenses
Positive example¶
Measure ecosystem usage and stage a compatibility-sensitive change.
Counterexample¶
Assume an undocumented response ordering has no consumers in a mature API.
Guidance for AI models¶
- Apply this guidance only after considering the active project profile, constraints, and architecture authority.
- State the concrete design consequence instead of citing the principle name as sufficient justification.
Editorial note¶
This page is generated from the canonical YAML entry. Edit principles/entries/hyrums-law.yaml and regenerate the compendium instead of editing this file directly.