CHANGE_PROTOCOL

CHANGE_PROTOCOL.md

Required protocol for safe changes.

Core rule

Pause and check invariants before changing code.

Standard sequence

1. Frame the change

State clearly:

  • what is changing

  • why it is changing

  • what must remain unchanged

2. Find the narrowest responsible layer

Change the lowest correct layer.

Examples:

  • parse bug -> parser or grammar

  • domain rule bug -> model or service layer

  • output wording -> renderer or formatter

  • CLI option issue -> command boundary

Do not patch around a core bug in outer layers.

3. Prefer minimal diffs

Good patches:

  • touch as few files as practical

  • solve one coherent problem

  • are easy to review and revert

  • keep mechanical cleanup separate from behavioural change when possible

4. Tests move with behaviour

Add or update tests for:

  • the bug being fixed

  • the new supported case

  • the invariant being protected

5. Verify honestly

Run targeted checks first, then broader checks as appropriate.

6. Review through a hostile lens

Ask before finalizing:

  • what weird input breaks this

  • what public contract changed

  • what assumption is now implicit

  • what output changed

  • what side effect could happen twice

7. Summarize honestly

Final summaries must state:

  • what changed

  • what did not change

  • what was verified

  • any remaining risk

The Camelia image is copyright 2009 by Larry Wall. "Raku" is a trademark of the Yet Another Society. All rights reserved.

Built with Podlite — the markup and publishing tools behind this site.