D-18 — Branch Audit & Prioritization (2026-11-09)
Scope: every local branch vs main — which carry unmerged work, whether it's still applicable or already absorbed, and what to do first. Method: git log --oneline main..BRANCH + git diff --stat main...BRANCH + git cherry main BRANCH (patch-equivalence) + subject searches for equivalents on main (read-only; snapshot at merge 0fe9f8874/57bf9e9d0). Status: audited, NOT acted on (deletions/merges require operator rhythm — see the playbook below). Blueprint sources: git tree (50 local branches), docs/commercialization/30_CONSOLIDATED_PROGRAM_BACKLOG.md (for lanes), docs/commercialization/28_VERTICAL_FABRIC_BACKLOG.md (VF status), docs/commercialization/41_WEEK_IN_REVIEW_2026-11-08.md + D-17 — Backlog Validation (platform-map recommendations) (this session's verdicts).
How to read this
mainAhead in divergence counts is noise (cumulative since the shared base) — what matters is the commit list of main..BRANCH and patch-equivalence. 31 of 50 branches have 0 commits ahead — their work is already absorbed or long-superseded; they just need pruning.
The map (19 branches with unmerged commits)
| Branch | Ahead | Closed | Newest activity | Verdict | |
|---|---|---|---|---|---|
ai-chat-design-implementation | 105 | partial/subsuming xishang-… | 2026-11-06 | PARTIAL — has features absent on main (FSM removal suite, AI-chat design suite, finance ledger, FIN 09/12–14, org-svc) but its shared-file churn (index.js, governance-interceptor.js) conflicts with main; xishang is a strict ancestor (work already inside ai-chat) → cherry-pick only, never merge wholesale; do not also merge xishang* | |
xishang-execution-carrier-implementation | 43 | partial (ancestor of ai-chat) | 2026-11-06 | PARTIAL (redundant) — LCAI-TEST, sourcing carrier, compliance-gate sse/trigger/version, FIN-09/12/13/14 | merge only if ai-chat doesn't ship first; prefer a single carrier branch |
platform-docs-deploy | 14 | docs only | 2026-11-04 | DONE 2026-11-09 — docs-only slice recovered (docs/platform-docs/ via branch-tip overlay, tip commit itself empty); branch retained for the fate call later; the tree commit changed zero collisions | |
configuration_v1 | 10 | small fixes | 2026-08-21 | DONE 2026-11-09 (reconciled) — root Dokku Dockerfile added verbatim + orphan everything-claude-code gitlink removed (04fdc49e5 + follow-up); the branch blanket .dockerignore was NOT taken (would break other root builds; main's prune already makes the explicit COPY build-correct); CommunityHierarchyTree.tsx change skipped (superseded on main) | |
docs/kujenga-benben-synapse-integration-plan | 3 | partial | 2026-09-24 | DEFERRED 2026-11-09 — cherry-pick hit a conflict in the concurrent agent's live plane (benben/stubs/ui-api/server.js) → aborted clean; needs a dedicated resolution session | |
opencode/cosmic-circuit | 7 | partial | 2026-05-08 | PARTIAL — AAG lien subsystem (no main equivalent) but AGENTS-DIRECTIVE deprecates this worktree; claim paths reworked on main — selective cherry-pick after rebase + test run only | |
unified-design-implementation | 1 | partial | 2026-11-04 | DONE 2026-11-09 — hook file cherry-picked onto main (e1f5f7907); backlog portion hand-regenerated later (stale vs main) | |
cursor/docker-disk-space-fix-0f18 | 1 | stale | 2026-09-07 | STALE — patch-equivalent on main → prune | |
feat/fwb-63-seed-library-ops | 1 | stale | 2026-09-08 | STALE — merged as #12 on main → prune | |
feat/workflows-seed-library | 1 | stale | 2026-09-08 | STALE — merged as #11 → prune | |
fix/workflows-designer-tools | 1 | stale | 2026-09-08 | STALE — merged as #13 → prune | |
lifecycle-mesh-test-renames | 1 | stale | 2026-05-25 | STALE — rename end-state reached on main — verify first, then prune | |
edge | 1 (huge) | stale | 2026-03-09 | STALE — root vendoring dump; paths reworked 285× since → prune | |
pr/community-01-schema-test | 3 (huge) | stale | 2026-06-16 | STALE — accidental snapshot with .env/caches/build output → never merge; prune | |
pr/community-08-console-ui | 1 | stale | 2026-06-16 | STALE — hub reworked on main → prune | |
pr/community-09-mobile-web | 1 | stale | 2026-06-16 | STALE — subject covered by ccf9260d6 → prune | |
pr/community-10-ops-docs | 1 | stale | 2026-06-16 | STALE — gateboard covered → prune | |
truth-bff-path-evaluator | 1 | stale | 2026-05-25 | STALE — patch-equivalent on main (55d3e8228) → prune |
(Commits not in main for one of the above are still substantive feature work; "stale" means main got there differently or earlier, not that the idea is wrong.)
Prioritized action playbook
| Priority | Action | How (copy-pastable) |
|---|---|---|
| P0 | Ship platform-docs-deploy's docs-only slice | git checkout main → git cherry-pick -n e0a7746e0 (or overlay docs/platform-docs/), then re-run doc parity tests |
| P0 | Ops-check: prune 0-commit redundancy | git branch -d for every branch with git log --oneline main..BRANCH empty (31 branches) |
| P1 | Recover Dokku deploy fixes from configuration_v1 | rebase onto main, keep Dockerfile + .dockerignore + gitlink removal, re-apply the hierarchy component against main's newer file |
| P1 | Slim the absorbed pile | spikes/pr branches (pr/community-*, edge, opencode/cosmic-circuit when its AAG selection is done) — delete locally after git branch -d succeeds (fully merged) |
| P2 | Rebase-evaluate ai-chat-design-implementation's distinctive pieces | extract FSM-01…07 removal + chat-ai-*.test.js + compliance-gate-{sse,trigger,version}.js as a targeted migration, NOT the 105-commit whale |
| P2 | Extract configuration_v1's CommunityHierarchyTree.tsx fix and unified's hook file | cherry-pick individual commits |
| P3 | Cosmic-circuit AAG (T001–T093) | only if the lien subsystem is wanted — its tests are the acceptance criteria; leave the deprecated worktree alone otherwise |
Hygiene recommendation
Every absorbed branch gets deleted in the same session that merges it (fully-merged after git branch -d, never -D on the main line). This audit exists because that never happened: 50 local branches, 31 of them already absorbed — the next 180 days should end with 30 fewer branches, not 30 more.