Record the linear history as ADR-0070 and align the documentation - #415
Merged
Conversation
Records the switch to GitHub's rebase-merge strategy and the one-time rewrite that removes the 401 merge commits from main, together with the pinning method and the verification that content is preserved.
AGENTS.md, CLAUDE.md, CONTRIBUTING.md and the /tidy-history command all justified pre-merge history hygiene by the merge commit that preserved a branch. Name the mechanism that actually lands the commits, as proposed by ADR-0070.
Reefact
force-pushed
the
claude/linear-repo-history-8776pd
branch
from
August 10, 2026 19:15
c463ebc to
6d5fb06
Compare
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
main's history was rewritten linear and the repository now lands pull requests by rebase. This records that decision as ADR-0070 — including why it is done now, before 1.0.0, and why it is not a precedent — and updates the four places whose text still justified history hygiene by the merge commit that no longer exists.Type of change
Changes
Status: Proposed, and index it. It records:lib-v0.1.0-preview.1, nothing published pins a commit identifier. That is the entire window in which rewritingmainis cheap, and it closes at 1.0.0: once a stable version ships, SourceLink, release notes and consumers' pinned references makemain's identifiers part of what the project promises;mainis append-only, and a later rewrite would need its own ADR;AGENTS.md— "Tidying history before a pull request";CLAUDE.md— the same rule, inlined;CONTRIBUTING.md— "A branch is disposable", and "Pull request titles", which claimed the title is read in theMerge pull request #NNcommit GitHub no longer writes;.claude/commands/tidy-history.md— the/tidy-historypreamble.The reasoning in those passages is unchanged and, if anything, stronger under rebase: every commit a branch carries still lands in
main, with no merge commit to mark the boundary.Testing
Documentation-only change; no code is touched, so the build and test commands were not run for this branch. What was verified instead:
tools/commit-lint/lint-commit-message.sh --ci;The verification behind the ADR's table — final tree identical, 362/362 first-parent trees identical, 965/965 commits and messages preserved, 974 tests passing — was run against the rewritten history before it was pushed, not on this branch.
Documentation
doc/updated.md(canonical) and.fr.mdArchitecture decisions
Proposed: ADR-0070Drafted as
Proposedand left there: the rewrite was carried out on your instruction, but accepting an ADR is yours alone.One point is deliberately not settled by this ADR and is called out in its Consequences:
CONTRIBUTING.md("Branches") still offers mergingorigin/maininto a branch others may have based work on, which produces exactly theMerge branch 'main' into …commits the decision removes. That rule protects a collaborator's pulled work — a different concern from history shape — so it is flagged rather than rewritten.Related issues
None.
🤖 Generated with Claude Code
https://claude.ai/code/session_01JLxWJd3puHgDCdQoSiCgZC