Conversation
Six weeks, four people, leave, a new joiner, at most two weeks each — the cap carried by a scale whose top has no `up`, so a third week is absent. A rota exists and the witness is the rota; ten in all, read out by derive as rows. Handing over straight into one's own leave is a gap: the policy is silent. Giving Cat week 1 strands the planner at that gap. One more rule (not the week you come back) and no rota exists unless the gap is answered yes. Cross-check 55 -> 57 properties (55 compared); 280 checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d a foreign key change-an-enum: widening the CHECK is instant; the first WRITE of the new value is the migration, and the shortcut writes it while r1 still reads. split-a-table: dual write and backfill; the shortcut switches reads once the backfill has started — five steps, the longest route in the collection. add-a-foreign-key: NOT VALID spares the old rows, not the running code; adding it mid-rollout makes the old release's deletes fail, in two steps. writ sql reads CHECK … IN as an enum and REFERENCES as an arrow, as planned; it reads NOT VALID as a plain foreign key (identical output, --strict accepts it) while declining VALIDATE CONSTRAINT — asserted as found. The parent README's "the shortcut is always shorter" is now what was measured: shorter in two of six, never longer. Cross-check 57 -> 63 properties (61 compared); 305 checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
db-migration-problems: change an enum, split a table, add a foreign key
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
on-call-rota/on top of the pruned main (#10).Six weeks of on-call from a team of four: nobody two weeks running, at most two weeks each, leave respected, and a new joiner only in their second month. The cap is a scale
l0 → l1 → l2whose top has noup, so a third week is absent rather than refused.derive rotareads them out as rows.comparegivesrota-exists LOST, with no witness to print.Differences from the plan: no shared
libraries/rota.lib.writ(one user). The plan's predicted trap shows up only through the gaps, and the README says so.Cross-check: 55 → 57 properties (55 compared).
./run-tests.sh all: 280 checks, 0 failed.🤖 Generated with Claude Code