# Simpx Loopat Loopat

> promote — share a loop's context

- Skill: `tomevault-io/simpx-loopat-loopat` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/simpx-loopat-loopat`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/simpx-loopat-loopat/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/simpx-loopat-loopat

---


# 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:

```sh
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 add` the resolved files, then `git commit` to finish the merge.
- (`git merge --abort` backs out cleanly.)

Then land it — how depends on the layer:

```sh
# 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` / `personal` push straight to `main`. `knowledge` is gated: commit
  and stop — never push knowledge `main`; 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: `origin` is just a loopat-hosted local repo — same commands.

---
> Source: [simpx/loopat](https://github.com/simpx/loopat) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-29 -->

