docs(repo): #415 Phase-2 .git reduction proposal — ~1.55 GB strippable, defer to post-tag - #628
Conversation
…tion) Interprets the Phase-1 audit (#621, git-weight-audit.py). Quantifies the reduction: ~1.55 GB of fully-regenerable build artifacts in history (Published/ .NET builds 1.2 GB + DNN Downloads zips 205 MB + .resources 150 MB) -> repo 2.05 GiB to ~0.45-0.5 GiB (~75%). Includes a costed git filter-repo plan + 6 explicit risks (force-push to master, 8 open PRs break, tag/release integrity, SHA-shift cascades, filter-repo remote-removal foot-gun, mindmap SVG provenance). Recommendation: DEFER to post-v0.9.0-tag (rewrite during the freeze with 8 open PRs + pending tag = max risk, zero release benefit). Go/no-go = jsboige. Flags design sources (Packaging 97 MB, Sketch 45 MB) as preserve/LFS, out of scope. PROPOSAL ONLY — no clone, no force-push, no history mutation. Reproducible via python tools/git-weight-audit.py. Co-Authored-By: Claude-Code <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw]
Verifié firsthand (1 doc docs/repo/415-phase2-proposal.md, base 33b1c0bc) — proposition read-only de très bonne facture, LGTM. Arithmétique entièrement réconciliée :
- Zones strippables : Published 1.2 GB + DNN-zips 205,5 + .resources 151,5 = 1557 MB ≈ 1,52 GB (claim « ~1,55–1,6 GB » ✓).
- Réduction : 2,05 GiB − 1,52 GB ≈ 0,53 GiB (claim « → 0,45–0,5 GiB » ✓), soit 76 % (claim « ~75 % » ✓).
- Top blobs cohérents (Print&Play.zip = DNN zone, les 3 osx/linux-x64 = Published zone).
No-execution vérifié : single-file PR (0 script commité, 0 mutation git). Les commandes git clone/pip install git-filter-repo/git push --force sont toutes dans le bloc fenced ## Plan (if green-lit) — c'est un plan proposé, rien n'a tourné. Build sur le Phase-1 audit #621 (reproduit via tools/git-weight-audit.py, pas une 2e mesure).
Recommandation DEFER-to-post-tag = la bonne : 8 PRs open + tag v0.9.0 pendant le freeze → un rewrite history maintenant maximise le risque pour ~0 bénéfice release (la taille du clone n'impacte pas les artefacts livrés). La section Risques (6 items : force-push master, PRs cassés, tag/release integrity, SHA shift cascade, filter-repo drop origin, Mindmap SVGs conservativement laissés hors) est exceptionnellement honnête — notamment le point 3 (tag invalide après rewrite) et le flag Mindmap conservé par prudence.
Concern mineur (non bloquant) : le chiffre « 8 PRs currently open » liste #627, #603, #596, #597, #599, #600, #601, #627-area — #627 apparaît 2× et « #627-area » est flou ; l'inventaire exact pré-rewrite devra être re-vérifié au moment du go (les PRs ouverts changent vite). À jour au moment du gate, pas maintenant.
…shed pack (#663) Tertiaire dispatch kp26j6. Refines the #415 Phase-2 proposal (PR #628, read-only, no execution). Re-measured on current master 9c19e51 (was 33b1c0b at proposal time). Two findings that sharpen the plan: 1. Mindmapper gap (186.7 MB) — the proposed git filter-repo --path prefixes are exact-prefix matches and MISS two sibling build-output trees: - .../AssetConverter/Mindmapper/Published/ (129.2 MB) - Cartes/Generation/Mindmap/Mindmapper/Published/ (57.5 MB) These are regenerable dotnet-publish output (.csproj/.sln committed in history, binaries deleted at HEAD, .REMOVED.git-id sentinels alongside). Corrected strip target = ~1.8 GB (proposal said ~1.557 GB). The --path set is updated to close the gap; they were misclassified into the "other" zone by the audit path regex. 2. Pack grew 2.05 -> 2.08 GiB (+3868 objects) but the growth is text/code only (other zone 882.8 -> 946.7 MB); regenerable binary zones byte-for-byte unchanged. Bloat source is NOT recurring — no new build artifacts committed. Risk #2 currency update: open PRs 8 -> 3 (#596/#661/#662), lowering rewrite risk. READ-ONLY per DoD: 0 history mutation, 0 force-push, 0 clone, 0 Cards/ write. Reproducible via python tools/git-weight-audit.py + scratchpad 415_mindmapper_gap.py. Go/no-go = jsboige. Recommendation (DEFER post-tag) unchanged. Co-authored-by: Your <your.email@example.com> Co-authored-by: Claude-Code <noreply@anthropic.com>
What
Deep-queue #4 dispatch (ai-01, SECONDAIRE). Read-only proposal for reducing the
.gitweight, building on the Phase-1 audit (#621). No execution — surfaces the go/no-go + a costed plan for jsboige.The opportunity (measured)
.gitpack = 2.05 GiB. Of that, ~1.55 GB is fully-regenerable build artifact history:Published/.NET buildsdotnet publishoutput; 0 at HEADDNNPlatform/.../Downloads/*.zipDNNPlatform/.../*.resources→ 2.05 GiB → ~0.45–0.5 GiB (~75 % reduction) via
git filter-repo.Design sources (Packaging 97 MB, Sketch 45 MB) are flagged preserve / LFS — out of scope for stripping.
The plan (if green-lit)
git filter-repoon a fresh clone, stripping the 3 regenerable paths, coordinated force-push toorigin. Full command in the doc.Risks (6, explicit)
master→ all clones (ai-01/po-2023/po-2024) invalidated, coordinated re-clone required.v0.9.0tagged on old history would be invalidated.filter-reporemovesoriginby design (foot-gun).Recommendation
DEFER to post-v0.9.0-tag. Rewriting during the freeze (8 open PRs + pending tag) is max risk for zero release benefit. Execute in a coordinated post-tag window. Go/no-go = jsboige.
Scope / safety
docs/repo/only. 0Cards/write.python tools/git-weight-audit.py(Phase-1 tool, docs(repo): #415 git-weight audit — Phase 1 already closed (#416), Phase 2 jsboige-gated #621).Relates to #415, #621, #565.