promote — share a loop's context
Promote moves what's worth keeping from this loop into shared main. It is
deliberate — do it when the work is genuinely worth sharing, not on every
turn. You run plain git; if the merge conflicts, you resolve it yourself (you
are the merge agent — no other agent, no script).
Steps
cd into the worktree you want to promote — /loopat/context/notes,
/loopat/context/knowledge, /loopat/context/personal, or a repo workdir —
then capture your work and merge the latest consensus:
git add -A && git commit -m "<what you're sharing>"
git fetch origin
git merge origin/main
If the merge conflicts, resolve it now, here:
- Edit each conflicted file; reconcile the
<<<<<<< ======= >>>>>>>markers by keeping both sides' meaning — this is notes/knowledge, so merge the information, don't drop a side. git addthe resolved files, thengit committo finish the merge.- (
git merge --abortbacks out cleanly.)
Then land it — how depends on the layer:
# ungated — notes · personal — straight into main:
git push origin HEAD:main
# gated — knowledge — commit and STOP. Do NOT push anywhere:
# your commits wait on this loop's local `loop/<id>` ref as a PROPOSAL;
# the driver reviews & merges them in the Context UI.
# repos — follow the team's flow for that repo (PR, or direct push):
git push origin HEAD
gh pr create --base main --head "$(git symbolic-ref --short HEAD)" --fill
If git push is rejected (non-fast-forward — main moved while you
worked), re-run git merge origin/main, resolve again, push again. It converges.
Rules
- Always merge, never rebase — both parents survive, so a bad merge is revertible.
- Resolve conflicts here, yourself — never hand off to another agent.
notes/personalpush straight tomain.knowledgeis gated: commit and stop — never push knowledgemain; the proposal is reviewed in the Context UI. Repos follow the team's flow (PR or direct push).- Trunk is
main(your runtime context block names it if it ever differs). - Solo works the same:
originis just a loopat-hosted local repo — same commands.
Source: simpx/loopat — distributed by TomeVault.