Repository navigation
docs(fork): start the fork log - #3
Merged
Merged
Conversation
Upstream moved 254 commits in the nine days since the merge base (`f1198ffa`, 2026-08-29) while this fork moved 47, and none of the 47 have been contributed back. Without a record, an upstream fix gets re-derived here and a deliberate deviation gets "corrected" back by someone who read it as drift. Triage is by scope rather than by commit — 254 individual decisions is not a thing anyone finishes. The decisions themselves are left open; what this commit adds is the shape, the snapshot, and the two findings worth having before the next merge: `statutory` is 74 commits of a subsystem this fork has no requirement for, and `app/components/editor` is the collision zone, where the fork's 20 phone-capture commits meet upstream's 14 statutory-driven ones. Linked from CLAUDE.md rather than docs/README.md: that map is upstream's file, and a fork-only row in it would conflict on every merge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`upstream-track` on origin holds exactly `upstream/main` — all 254 of upstream's commits, none of this fork's — so upstream can be run, deployed and diffed without touching the working line. Never commit to it; fast-forward only. It tracks origin rather than upstream on purpose. Tracking upstream would make `git pull` a convenient refresh and `git push` an attempt to write to somebody else's repository, and the second one is not worth the first. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ming CI is unreadable Two rules, both earned the same day. Upstream is 250+ commits ahead and moving fast, so a failure here has often already been diagnosed and fixed there. Re-deriving costs more than the three-command lookup. Today's eslint timeout was investigated locally before anyone asked whether upstream had already hit it — it had not, but that was luck, not method. The second rule is narrower: the connector's Checks 403 is real, but it was asserted from a note rather than tested, and repeated several times as though verified. `gh` is installed and authenticated and reads CI fine. Check the tool before reporting the limitation. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Adds
docs/develop/fork-log.md— a record of what this fork has taken from upstream, skipped, and deliberately diverged on. Documentation only.Without it, an upstream fix gets re-derived here, and a deviation this fork chose gets "corrected" back to upstream's behaviour by someone who read it as drift.
Snapshot it records
f1198ffa, 2026-08-29 (upstream PR #324)Nine days of divergence, 254 upstream commits in that window.
Two findings worth having before the next merge
statutoryis 74 of the 254 — a whole subsystem (form definitions, readiness checks, publishing, an editor surface, the first statutory E2E) that nothing in this fork requires. Taking it means carrying it; skipping it means every future merge conflicts against an editor that assumes it exists. That is the largest single open decision.app/components/editoris the collision zone — the fork's 20 phone-capture commits (camera, offline photo queueing, shutter gestures, mobile layout) against upstream's 14 statutory-driven ones (statutory slots, item nesting, sub-item CRUD). Same directory, different concerns, so most conflicts should be textual. Two upstream commits are called out as possible real overlaps.What is deliberately not in here
The decisions themselves. Triage is by scope rather than by commit — 254 individual judgements is not a thing anyone finishes — and the scopes are left marked undecided rather than pre-answered, apart from four recommendations (
gates,perf,authtake; the rest case by case). A decision log with invented decisions in it is worse than an empty one.No tooling, no script, no automation. Four
gitcommands in the file are the whole refresh procedure.Placement
Linked from
CLAUDE.md, notdocs/README.md. That map is upstream's file and a fork-only row in it would conflict on every merge; CLAUDE.md is already fork-diverged and is what gets read at the start of a session.Type of change
Test plan
verifyreports on this PRPer the maintainer note in the PR template: merge, do not squash —
git cherryin the refresh procedure depends on it.🤖 Generated with Claude Code