Refactoring Project and Carry-Forward
Project: a reviewable compatibility migration
Budget 16–22 hours; reuse the five labs rather than inventing a new application.
- Freeze the invoice and grid baseline; write public observations and failure cases.
- Refactor the invoice through checked intermediate snapshots. Keep a generator failure, rounding boundary and clock trace. Explain one candidate you rejected.
- Change the internal Grid representation while preserving old and new APIs on the same state. Include mixed-version sequences and unchanged-state failures.
- Submit a migration note covering supported consumers, authority, recovery and alias retirement. Use the uncertain-write experiment as a counterexample to automatic fallback; no live service or deployment is required.
- In a separate implementation or private branch, change invoice rounding to aggregate rounding. Record exact before/after expectations and label this as a policy change. Do not modify the frozen preservation baseline.
Deliver a fresh-run README, contracts, actual intermediate diffs and check logs, three experiment records, a short design decision, and an assistance declaration. The supplied reference is calibration, not a substitute for your own process.
A reviewer should trace an unseen mixed-client sequence and a failure between an effect and its acknowledgement. If no reviewer is available, label the result self-assessed and independent review pending. All ten competency gates, core behavior and the changed-case defense are required; line counts and speed add no credit by themselves.
Carry the public contracts and migration record into Module 3: Behavioral Patterns. This module does not complete the semester's separate accessibility and usability strand. Retain that evidence requirement at semester integration.