chore(sc-43976): design + runbook to move git history to archive repo#69
Open
yodem wants to merge 2 commits into
Open
chore(sc-43976): design + runbook to move git history to archive repo#69yodem wants to merge 2 commits into
yodem wants to merge 2 commits into
Conversation
Adds the design doc and one-shot migration runbooks for splitting Sefaria-Export into a lean main repo + Sefaria-Export-Archive holding the full historical commit graph. Also adds a 'Cloning' section to the README pointing users at --depth 1 and the (forthcoming) archive repo, and ignores local .mcp.json (contains an API token; ships as .mcp.json.example instead). This PR does not perform the destructive force-push. Phase 1 and Phase 2 scripts are run by a maintainer with admin rights, after PR review. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📊 Code Quality Score: 18/100
Scored by GitVelocity · How are scores calculated? |
…esence, audit non-master refs, fix README tense - 02_orphan_master.sh now ABORTs if pre-migration-master tag is missing from the archive (no Phase 2 without a recovery path). - 02_orphan_master.sh audits non-master heads/tags on origin and prompts to delete them after the force-push; otherwise the size goal silently fails because default clones still pull all reachable history. - README "Cloning" section: future tense; archive link no longer points at a 404 between merge and migration. - migration/README.md: documents Phase 1 resume path (set WORKDIR=) and the workflow-pause prerequisite for Phase 2's --force-with-lease. - design doc: scope assumptions (no LFS / Pages / submodules / signed-commit requirement) recorded; Phase 2 prereqs and ref-audit step formalised. Co-Authored-By: Claude Opus 4.7 (1M context) <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
Sefaria-Exportinto a lean main repo + a newSefaria-Export-Archiveholding the full historical commit graph (resolves sc-43976).--depth 1and the (forthcoming) archive repo..mcp.json.example(real.mcp.jsonis gitignored — contains an API token).This PR does not perform the destructive force-push. Phase 1 and Phase 2 scripts in
scripts/migration/are run by a maintainer with admin rights on the Sefaria org, after this PR is reviewed and merged.What's in here
docs/superpowers/specs/2026-05-06-archive-git-history-design.md— full design: two-repo split, alternatives considered, 4-phase migration plan, risks, verification, recovery procedure.scripts/migration/01_create_archive.sh— mirror-clone source repo to archive (non-destructive). Tagspre-migration-masterfor recovery.scripts/migration/02_orphan_master.sh— replacemasterwith single orphan commit. Verifies the new tree hash matches the pre-migration tree before pushing. Two confirm prompts. Uses--force-with-lease.scripts/migration/README.md— runbook overview, ordering, prerequisites, recovery.README.md— new "Cloning" section..gitignore/.mcp.json.example— keep the Shortcut API token out of the public repo.Test plan
🤖 Generated with Claude Code