promote

A workflow for sharing useful work from a separate Git worktree, which is another working folder linked to the same Git project, into the shared main branch.

In plain words
What is it for?
It helps promote notes, knowledge, personal work, or repository changes by committing them, merging the latest main branch, resolving conflicts, and pushing the result according to the worktree's rules.
Why use it?
It explains when and how to save, merge, resolve conflicts, and publish work without losing information from either side.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/simpx/loopat/promote
Any agent
npx skills add simpx/loopat --skill promote
Clone the repo
git clone --depth 1 https://github.com/simpx/loopat

Made for: Claude Code, Codex.

Per session 133 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 687 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00133 $0.00687
Opus 5 $0.00067 $0.00344
Sonnet 5 $0.00027 $0.00137
Haiku 4.5 $0.00013 $0.00069

Measured yesterday against content hash d67b50f6eead, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

promote scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

server/templates/plugins/loopat/skills/promote/SKILL.md · 59 lines

How it starts

The opening of the file, as written. The whole thing — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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

# 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-forwardmain 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.

Read the full file on GitHub · 59 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 59 lines · 0 tokens per session scan A d67b50f6eead

Subscribe to this mod's changes

promote is a skill published in the GitHub repository simpx/loopat (81 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 133 tokens to every session and 687 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.