Skip to content

docs(fork): start the fork log - #3

Merged
NCHILLC merged 4 commits into
mainfrom
docs/fork-log
Sep 7, 2026
Merged

NCHILLC merged 4 commits into
mainfrom
docs/fork-log

Conversation

@NCHILLC

@NCHILLC NCHILLC commented Sep 7, 2026

Copy link
Copy Markdown
Owner

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

Merge base f1198ffa, 2026-08-29 (upstream PR #324)
Upstream-only commits 254
Fork-only commits 47
Contributed back 0

Nine days of divergence, 254 upstream commits in that window.

Two findings worth having before the next merge

  • statutory is 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/editor is 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, auth take; 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 git commands in the file are the whole refresh procedure.

Placement

Linked from CLAUDE.md, not docs/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

  • Documentation only

Test plan

  • Pre-commit gates green (20/20 selected)
  • verify reports on this PR

Per the maintainer note in the PR template: merge, do not squash — git cherry in the refresh procedure depends on it.

🤖 Generated with Claude Code

NCHILLC and others added 4 commits September 7, 2026 08:11
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>
@NCHILLC
NCHILLC merged commit c61b8ab into main Sep 7, 2026
17 checks passed
@NCHILLC
NCHILLC deleted the docs/fork-log branch September 7, 2026 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant