Entropy Review
Objective
Review whether a software design, implementation plan, or implemented change introduces software
entropy proportionate to the problem it solves.
Do not optimize for the fewest lines of code, and do not reject architecture, testing, or
defensive design. Distinguish between:
- Essential complexity inherent in the problem and its hard constraints.
- Accidental complexity introduced by implementation, technology, or representation choices rather
than by the problem itself. Pay particular attention to speculation, a drive for completeness,
premature planning, and mechanism-first thinking.
Protect working software, fast feedback, reversible evolution, and long-term comprehensibility.
Treat software entropy as the tendency of accumulated concepts, structures, state, and rules to
make a system increasingly difficult to understand, verify, and change.
Seek the minimum sufficient complexity for the current goal. Preserve necessary structure without
letting completeness or robustness become reasons for unrelated mechanisms.
Workflow
1. Pin the Current Goal
Establish:
- What specific problem must be solved now?
- What facts prove that the problem exists?
- What observable outcome proves that the problem is solved?
- Which hard constraints must not be violated?
- Which adjacent problems are explicitly out of scope?
Mark judgments without evidence as assumptions. Do not use assumptions as reasons to expand the
solution.
2. Describe the Minimum Sufficient Solution
Describe the smallest end-to-end solution that satisfies the current goal:
- Cover only currently specified behavior.
- Reuse existing concepts, structures, and paths where possible.
- Produce observable and verifiable results early.
- Preserve hard constraints.
- Do not require one change to solve future stages.
Use this solution as a comparison baseline, not as a predetermined final answer.
3. Inventory New Obligations
Identify every concept, layer, state, rule, exception, process, and maintenance duty introduced by
the design, plan, or change.
Ask for each one:
- Which current goal does it directly serve?
- What current evidence shows that it is needed now?
- Which specified behavior or constraint would break if it were removed?
- Is there a smaller, more direct, or more reversible alternative?
- Can it be deferred until more feedback is available?
- Does it exist only to support another newly introduced mechanism?
- What ongoing understanding, synchronization, and maintenance costs does it create?
Do not retain mechanisms by default when these questions cannot be answered.
4. Identify Sources of Entropy
Check:
- Scope creep: Does the change solve problems outside the current acceptance scope?
- Concept proliferation: Do new terms or abstractions add more cognitive cost than value?
- Needless indirection: Do added layers exceed what the problem requires?
- Duplicated state: Must multiple representations of one fact remain synchronized?
- Special cases: Do a few exceptions impose broad, persistent rules?
- Change amplification: Does a simple change require disproportionate knowledge, steps, or
coordination?
- Speculative generality: Are certain costs paid now for benefits that depend on unverified
future assumptions?
Use these dimensions to find problems. Do not turn them into a mechanical score.
5. Distinguish Essential from Accidental Complexity
Keep complexity that:
- Directly supports behavior that must be delivered now.
- Protects a hard constraint.
- Prevents a significant loss demonstrated by current evidence.
- Remains necessary after a smaller solution has been shown to be insufficient.
- Reduces overall duplication, divergence, or long-term maintenance burden despite being locally
complex.
Simplify, defer, or remove complexity that:
- Is justified mainly by “we may need it later.”
- Treats completeness, sophistication, or convention as evidence.
- Builds general capability for one concrete use case.
- Creates more defenses to explain, verify, or maintain a defense.
- Solves adjacent problems instead of the current goal.
- Plans future stages before the first working result exists.
6. Run the Agility Check
Check whether the design, plan, or change:
- Can deliver observable results in small increments.
- Obtains feedback about use, operation, or maintenance early.
- Allows local modification, reversal, or replacement.
- Makes decisions from current learning instead of trying to enumerate the future in advance.
- Focuses effort on working results, not support structures or out-of-scope work.
If testing the core judgment requires a long investment, split the work into smaller increments or
run an experiment first.
7. Decide What to Do
Choose one primary action for each mechanism:
- Keep: Keep mechanisms that are currently necessary and whose evidence is proportionate to
their cost.
- Simplify: Simplify mechanisms whose goals are valid but whose implementation creates
unnecessary obligations.
- Reuse: Reuse existing capabilities when the need is valid and current capabilities are
sufficient.
- Defer: Defer decisions that may have value but lack current evidence.
- Remove: Remove mechanisms that drift from the goal or cost substantially more to maintain than
their current value.
- Experiment: Test the key assumption cheaply before deciding whether to build the mechanism.
Do not merely label something “overdesigned.” Provide a smaller alternative that still satisfies
the current goal.
8. Order the Lean Implementation
Organize the work in this order:
- Remove content that drifts from the current goal.
- Define the minimum verifiable outcome.
- Reuse existing capabilities.
- Deliver the smallest end-to-end slice.
- Obtain feedback and test key assumptions.
- Add the next layer of complexity only after evidence appears.
Stop expanding when the current goal is satisfied and the next step is driven only by future
assumptions.
Output Contract
Provide:
- Verdict: Choose Keep, Simplify, or Remove. Explain the primary basis in one
paragraph.
- Current goal and minimum sufficient solution: State the problem, observable completion
outcome, hard constraints, and minimum sufficient solution.
- Review findings: For each actionable finding, state the mechanism, goal relationship,
evidence, entropy cost, action, and a smaller alternative that preserves the same goal.
- Essential complexity: Identify what must remain and why.
- Lean implementation order: Provide independently verifiable steps with fast feedback.
- Assumptions to test: List unsupported assumptions and the cheapest way to test each one.
Report only findings that can change a decision or implementation approach. If no substantive issue
exists, return Keep and stop; do not manufacture findings to fill the format.
Boundaries
- Preserve essential complexity and required checks. To simplify either one, first reduce or
postpone what the design is expected to do.
- Treat architecture findings as advice. Leave approval, next steps, and changes to the agreed
design to the designated human decision owner.
- When reviewing architecture, first clarify what the design must do and how it will be checked.
Then compare its cost with simpler options.
- Do not use agility as a reason to ignore known risks, safety, integrity, or hard constraints.
- Do not require extra artifacts merely to prove that the review occurred.
- Do not expand this into a comprehensive correctness, security, or style review, or redesign the
whole system unless the current goal requires it.
- Do not let the review cost exceed the scale of the decision being reviewed.
1---2name: entropy-review3description: Review software designs, implementation plans, and implemented changes from an agile perspective to determine whether their software entropy is proportionate to current goals. Identify scope creep, overengineering, excessive defensive design, premature generalization, and hard-to-maintain mechanisms whose costs outweigh their value; provide smaller, more reversible alternatives with faster feedback. Use when the user asks for an entropy review, design simplification, complexity control, an overengineering review, or whether a mechanism is worth introducing, retaining, or expanding.4---56# Entropy Review78## Objective910Review whether a software design, implementation plan, or implemented change introduces software11entropy proportionate to the problem it solves.1213Do not optimize for the fewest lines of code, and do not reject architecture, testing, or14defensive design. Distinguish between:1516- Essential complexity inherent in the problem and its hard constraints.17- Accidental complexity introduced by implementation, technology, or representation choices rather18 than by the problem itself. Pay particular attention to speculation, a drive for completeness,19 premature planning, and mechanism-first thinking.2021Protect working software, fast feedback, reversible evolution, and long-term comprehensibility.2223Treat software entropy as the tendency of accumulated concepts, structures, state, and rules to24make a system increasingly difficult to understand, verify, and change.2526Seek the minimum sufficient complexity for the current goal. Preserve necessary structure without27letting completeness or robustness become reasons for unrelated mechanisms.2829## Workflow3031### 1. Pin the Current Goal3233Establish:3435- What specific problem must be solved now?36- What facts prove that the problem exists?37- What observable outcome proves that the problem is solved?38- Which hard constraints must not be violated?39- Which adjacent problems are explicitly out of scope?4041Mark judgments without evidence as assumptions. Do not use assumptions as reasons to expand the42solution.4344### 2. Describe the Minimum Sufficient Solution4546Describe the smallest end-to-end solution that satisfies the current goal:4748- Cover only currently specified behavior.49- Reuse existing concepts, structures, and paths where possible.50- Produce observable and verifiable results early.51- Preserve hard constraints.52- Do not require one change to solve future stages.5354Use this solution as a comparison baseline, not as a predetermined final answer.5556### 3. Inventory New Obligations5758Identify every concept, layer, state, rule, exception, process, and maintenance duty introduced by59the design, plan, or change.6061Ask for each one:62631. Which current goal does it directly serve?642. What current evidence shows that it is needed now?653. Which specified behavior or constraint would break if it were removed?664. Is there a smaller, more direct, or more reversible alternative?675. Can it be deferred until more feedback is available?686. Does it exist only to support another newly introduced mechanism?697. What ongoing understanding, synchronization, and maintenance costs does it create?7071Do not retain mechanisms by default when these questions cannot be answered.7273### 4. Identify Sources of Entropy7475Check:7677- **Scope creep**: Does the change solve problems outside the current acceptance scope?78- **Concept proliferation**: Do new terms or abstractions add more cognitive cost than value?79- **Needless indirection**: Do added layers exceed what the problem requires?80- **Duplicated state**: Must multiple representations of one fact remain synchronized?81- **Special cases**: Do a few exceptions impose broad, persistent rules?82- **Change amplification**: Does a simple change require disproportionate knowledge, steps, or83 coordination?84- **Speculative generality**: Are certain costs paid now for benefits that depend on unverified85 future assumptions?8687Use these dimensions to find problems. Do not turn them into a mechanical score.8889### 5. Distinguish Essential from Accidental Complexity9091Keep complexity that:9293- Directly supports behavior that must be delivered now.94- Protects a hard constraint.95- Prevents a significant loss demonstrated by current evidence.96- Remains necessary after a smaller solution has been shown to be insufficient.97- Reduces overall duplication, divergence, or long-term maintenance burden despite being locally98 complex.99100Simplify, defer, or remove complexity that:101102- Is justified mainly by “we may need it later.”103- Treats completeness, sophistication, or convention as evidence.104- Builds general capability for one concrete use case.105- Creates more defenses to explain, verify, or maintain a defense.106- Solves adjacent problems instead of the current goal.107- Plans future stages before the first working result exists.108109### 6. Run the Agility Check110111Check whether the design, plan, or change:112113- Can deliver observable results in small increments.114- Obtains feedback about use, operation, or maintenance early.115- Allows local modification, reversal, or replacement.116- Makes decisions from current learning instead of trying to enumerate the future in advance.117- Focuses effort on working results, not support structures or out-of-scope work.118119If testing the core judgment requires a long investment, split the work into smaller increments or120run an experiment first.121122### 7. Decide What to Do123124Choose one primary action for each mechanism:125126- **Keep**: Keep mechanisms that are currently necessary and whose evidence is proportionate to127 their cost.128- **Simplify**: Simplify mechanisms whose goals are valid but whose implementation creates129 unnecessary obligations.130- **Reuse**: Reuse existing capabilities when the need is valid and current capabilities are131 sufficient.132- **Defer**: Defer decisions that may have value but lack current evidence.133- **Remove**: Remove mechanisms that drift from the goal or cost substantially more to maintain than134 their current value.135- **Experiment**: Test the key assumption cheaply before deciding whether to build the mechanism.136137Do not merely label something “overdesigned.” Provide a smaller alternative that still satisfies138the current goal.139140### 8. Order the Lean Implementation141142Organize the work in this order:1431441. Remove content that drifts from the current goal.1452. Define the minimum verifiable outcome.1463. Reuse existing capabilities.1474. Deliver the smallest end-to-end slice.1485. Obtain feedback and test key assumptions.1496. Add the next layer of complexity only after evidence appears.150151Stop expanding when the current goal is satisfied and the next step is driven only by future152assumptions.153154## Output Contract155156Provide:1571581. **Verdict**: Choose **Keep**, **Simplify**, or **Remove**. Explain the primary basis in one159 paragraph.1602. **Current goal and minimum sufficient solution**: State the problem, observable completion161 outcome, hard constraints, and minimum sufficient solution.1623. **Review findings**: For each actionable finding, state the mechanism, goal relationship,163 evidence, entropy cost, action, and a smaller alternative that preserves the same goal.1644. **Essential complexity**: Identify what must remain and why.1655. **Lean implementation order**: Provide independently verifiable steps with fast feedback.1666. **Assumptions to test**: List unsupported assumptions and the cheapest way to test each one.167168Report only findings that can change a decision or implementation approach. If no substantive issue169exists, return **Keep** and stop; do not manufacture findings to fill the format.170171## Boundaries172173- Preserve essential complexity and required checks. To simplify either one, first reduce or174 postpone what the design is expected to do.175- Treat architecture findings as advice. Leave approval, next steps, and changes to the agreed176 design to the designated human decision owner.177- When reviewing architecture, first clarify what the design must do and how it will be checked.178 Then compare its cost with simpler options.179- Do not use agility as a reason to ignore known risks, safety, integrity, or hard constraints.180- Do not require extra artifacts merely to prove that the review occurred.181- Do not expand this into a comprehensive correctness, security, or style review, or redesign the182 whole system unless the current goal requires it.183- Do not let the review cost exceed the scale of the decision being reviewed.