Use this guide when a protected official code branch gets delayed or batched merges, while richer onboarding has accumulated on another branch (a personal workbench, a feature branch, or a branch handled in a reconciliation pass).
c-11-memory-carryover-from-branch is not a Git merge. It is a selective
memory reconciliation: it proves which source-branch code changes have actually
landed on the official branch, then carries only the corresponding onboarding
into an open external-memory recovery leaf and refreshes its verification metadata to the official
code commit. The recovery leaf closes and integrates through the normal code/memory lifecycle.
If the code did not land on official, its memory is not carried — that is the whole point.
Start a recovery leaf from the landed code/memory source pair. Run the plan against its contract and review the candidate report; only then apply under the applicable approval.
memory_carryover_plan(repo_id="<repo-id>", contract_path="<open-recovery-leaf-contract>", source_memory="<source-memory-repo>",
official_code_ref="<official-ref>", source_code_ref="<source-ref>", old_base="<base-ref-or-sha>")
memory_carryover_apply(repo_id="<repo-id>", contract_path="<open-recovery-leaf-contract>", source_memory="<source-memory-repo>",
official_code_ref="<official-ref>", source_code_ref="<source-ref>", old_base="<base-ref-or-sha>",
intent_note="<developer intent>")
apply mutates only the recovery leaf’s ordinary memory worktree. It does not move code or
protected memory refs, and it refreshes carried onboarding to the official code commit.
Close and integrate the recovery leaf normally to land those changes.
Each candidate onboarding file is classified by how strongly its code is proven to have landed:
| Tier | Meaning | Auto-carry? |
|---|---|---|
exact-landed-commit |
a source commit that touched the path is an ancestor of official | yes |
patch-id-match |
the old-base→source patch matches the old-base→official patch | yes |
final-content-match |
source-ref content equals official-ref content for the path | yes |
same-path-changed |
both branches changed the path, but equivalence not proven | review-required |
not-landed |
changed on source but not on official | skipped |
Only proven tiers auto-carry. same-path-changed is review-required by default —
another developer may have changed the same file independently.
would-carryover — dry-run plan with candidate decisionscarried-over — a recovery-leaf memory-content commit was created with Code-Commit attributionnothing-to-carryover — no selected candidate changed recovery-leaf memoryblocked — apply requested without approval, an open recovery-leaf contract, a clean exact
landed code base, or required candidate dataThe ignored memory.md consumer cache is regenerated from memory commit trailers, without staging
or committing it. Missing, stale, or malformed cache data does not block carryover. When content
does not change, the actual memory commit is retained; a new official code SHA does not trigger a
mapping-only commit. Historical attribution rewrites remain explicit deployment work.
same-path-changed evidence.c-02-memory-quality-control skill remains the branch-accuracy drift detector; carryover only imports memory
whose code validity is proven or explicitly approved.Related: Adopt Existing Memory (the c-10-adopt-memory-baseline skill) creates the
accepted memory baseline; carryover (the c-11-memory-carryover-from-branch skill) keeps existing official memory
enriched as branch work lands.