Skip to content

Land on-call-rota, three more migrations, and the writ#19 follow-up on main - #14

Merged
sajonaro merged 4 commits into
mainfrom
db-migration-problems-2
Oct 3, 2026
Merged

sajonaro merged 4 commits into
mainfrom
db-migration-problems-2

Conversation

@sajonaro

@sajonaro sajonaro commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Lands the stack on main. #12 and #13 were merged into their stacked bases (on-call-rota and db-migration-problems-2), and #11 never merged, so none of them reached main. This branch holds all three:

main needs this for writ-lang/writ#19's downstream check, which runs writ-problems main against the patched writ. The same pairing passed in writ run 37143489048 (problems_ref=follow-writ-gaps). Supersedes #11.

🤖 Generated with Claude Code

sajonaro and others added 4 commits October 3, 2026 20:52
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>
…w, NOT VALID declined

Assertions and READMEs that recorded the old behaviour now record the new:
- agent-guardrails: the cheat that deletes `out` makes check exit 1 (was 0);
- compare reports a law declared in both and broken in the new model as LOST
  with its route (rename-a-column's "the verb that does NOT catch it", drop,
  add-required, expense-approval, entitlement-problems, git-compare's
  one-capture); the migration READMEs no longer say compare is the wrong gate;
- add-a-foreign-key: writ sql declines NOT VALID (exit 1 under --strict) and
  VALIDATE CONSTRAINT, each with its reason.

Needs writ with branch writ-gaps; 306 checks against it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
follow writ#19: n/a is a finding, compare loses a broken law, NOT VALID declined
@sajonaro
sajonaro merged commit 84bbf69 into main Oct 3, 2026
1 check passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant