Code Design Rationale Investigator
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
Orchestrator of the loop pipeline for lago-front: sweep → spec → build ↔ review → ship (commit, PR, Linear, CI gate, Slack frontend).
$ npx skills add getlago/lago-front --skill loop-run -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install getlago/lago-front loop-run --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/loop-run .claude/skills/loop-run && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "loop-run" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/loop-run into .claude/skills/loop-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loop-run", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/getlago/lago-front/tree/main/.agents/skills/loop-runType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add getlago/lago-front --skill loop-run -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install getlago/lago-front loop-run --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/loop-run .agents/skills/loop-run && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "loop-run" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/loop-run into .agents/skills/loop-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loop-run", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getlago/lago-front --skill loop-run -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install getlago/lago-front loop-run --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/loop-run .cursor/skills/loop-run && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "loop-run" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/loop-run into .cursor/skills/loop-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loop-run", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/getlago/lago-front.git --path .agents/skills/loop-run--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add getlago/lago-front --skill loop-run -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install getlago/lago-front loop-run --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/loop-run .gemini/skills/loop-run && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "loop-run" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/loop-run into .gemini/skills/loop-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loop-run", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install getlago/lago-front loop-runInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add getlago/lago-front --skill loop-run -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/loop-run .github/skills/loop-run && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "loop-run" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/loop-run into .github/skills/loop-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loop-run", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getlago/lago-front --skill loop-run -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install getlago/lago-front loop-run --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/loop-run .opencode/skills/loop-run && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "loop-run" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/loop-run into .opencode/skills/loop-run/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loop-run", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
loop-runOrchestrator of the loop pipeline for lago-front: sweep → spec → build ↔ review → ship (commit, PR, Linear, CI gate, Slack frontend).
Loop Run is an agent skill from getlago/lago-front. Orchestrator of the loop pipeline for lago-front: sweep → spec → build ↔ review → ship (commit, PR, Linear, CI gate, Slack frontend). Creates a dedicated worktree by default, or runs in the current checkout with --in-place (automatic inside a Conductor workspace). Takes a Linear ticket URL and optionally Notion spec URLs; --confirm-spec pauses once after the spec. Use when user says "/loop-run <linear-url [notion-urls...] [--in-place] [--confirm-spec]" or asks to run the full loop on a ticket.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).
It sits in Development, covering Git worktrees. It works with Notion and Slack. The repository describes itself as: Open Source Metering and Usage Based Billing. The licence is AGPL-3.0.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d4cb9fe. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SLACK_LOOP_BOT_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Loop Run loads about 3.3k tokens when it runs. Until then it costs about 128 tokens; SKILL.md has 1,608 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from getlago/lago-front at commit d4cb9fe, republished under its AGPL-3.0 licence (© getlago). 1,608 words, ~3,275 tokens.
.claude/skills/loop-run/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Input: a Linear ticket URL (required) + optional Notion URLs + optional flags --in-place, --confirm-spec. No Linear URL → ask and stop.
Repo guard: lago-front ONLY. Any other repo: STOP. Humans merge: never merge, approve, bypass a gate or force-push.
Autonomy contract: between the input and the final Slack post the pipeline runs alone. It pauses for the operator ONLY on: --confirm-spec (once, after spec), an exhausted retry budget (3 review or 3 CI cycles), a needs-operator-adjudication STOP, or an unrecoverable external failure.
if [ -n "${CONDUCTOR_WORKSPACE_PATH:-}" ] || [ "<--in-place passed>" = yes ]; then
LAYOUT=in-place; FRONT="$(git rev-parse --show-toplevel)"
else
LAYOUT=worktree; FRONT="$PWD/front"
fi
SCRIPTS="$FRONT/scripts"
[ -x "$SCRIPTS/iter-budget.sh" ] || { echo "not a lago-front checkout"; exit 1; }worktree (default): loop-build creates front-worktrees/<ISSUE-ID>-<slug>/ via lago-worktree; the session stays in the monorepo root and uses git -C. in-place (automatic under Conductor, forced with --in-place): the current checkout IS the worktree and the branch; nothing is created, destroyed or renamed, lago-worktree is never called. Pass the layout to every phase through state.md; never re-derive it.
gh auth, git config user.email, Slack config). Nothing about a person is hardcoded.$LOOP_STATE_DIR/<ISSUE-ID>/ (default ~/.claude/loop-state/<ISSUE-ID>/) — outside the repo, never committed.$SCRIPTS, documented in their headers): iter-budget.sh (retry caps), loop-plan-check.sh (adversarial trigger), loop-restart.sh (container reload), loop-ci-log.sh (CI failure capture), loop-journal.sh (journal row), loop-notify.sh (exit DM). Setup: .agents/skills/loop-run/README.md.Sweep (worktree layout only): invoke loop-clean; the operator confirms or skips, the run continues either way.
Spec: invoke loop-spec with the URL(s); extract <ISSUE-ID>; "$SCRIPTS/iter-budget.sh" <ISSUE-ID> reset. With --confirm-spec: show the operator spec.md's Summary, Premises (every unverified one first) and Files to touch, ask "why does this exist?" for each new file, and wait for a go — the single human checkpoint this flag buys. Amendments go into spec.md before build.
Build ↔ review cycle (max 3 — the cap is MECHANICAL, iter-budget.sh, never counted in your head):
"$SCRIPTS/iter-budget.sh" <ISSUE-ID> review — exit 1 → the 3-FAIL STOP path, whatever you believe the count is.loop-build with <ISSUE-ID> and the layout. First iteration only: claim the ticket on Linear (save_issue: assignee = operator matched by git config user.email, status "Dev in Progress"); a Linear failure warns and continues.<ISSUE-ID> and follow it exactly"). Never inline. Its prompt carries nothing but the ISSUE-ID — spec.md holds the ticket, so no reviewer fetches Linear or Notion."$SCRIPTS/loop-plan-check.sh" <worktree> <state dir>/plan.md. Exit 3 (new files/exports, all declared — the build gate guarantees none is undeclared) or 1 → dispatch a second fresh subagent: "Read .agents/skills/loop-review/adversarial.md and apply it to <ISSUE-ID>". Exit 0 (nothing new) → no second agent. Two review agents is the maximum.review.md (and adversarial.md when dispatched). A file with no Verdict: line is not a verdict — resume that subagent ("continue until the file is written"). Any FAIL is a FAIL: archive each verdict under ## Iteration <N> in review-history.md, record every [review#N] / [gate:…] / [adversarial] tag for the journal, then next iteration (build in fix mode). All PASS → Ship.impediment.md, exit DM, report. No git artifacts exist yet.Restart the app: "$SCRIPTS/loop-restart.sh" <state dir>/state.md (clears the vite cache first; no container → one-line warning, never a blocker).
Ship (after PASS), inside the worktree: path from state.md (in-place: the cwd, drop git -C):
Commit — stage everything, message EXACTLY:
<type>(<context>): <Title>
## Context
<motivation, from the ticket>
## Description
<what changed, in detail>
<!-- Linear link -->
Fixes <ISSUE-ID><type> = feat/fix/refactor/chore implied by the ticket; <Title> sentence-case, imperative.
Push: git push -u origin <branch>. In in-place push the branch as is — never rename it.
PR (ready, not draft): gh pr create --assignee @me, title = commit subject, body = commit body.
Linear: move the issue to "In Review" (save_issue).
CI gate (max 3 fix cycles, iter-budget.sh): gh pr checks <PR> --watch. All green → Announce. Any red → triage the special cases FIRST, they consume no budget:
Run Codegen red with an unmerged companion lago-api PR: CI builds the schema from lago-api main. Qualifies only with BOTH a concrete companion PR (from the ticket/spec, or named by the codegen errors) AND a one-time gh pr view <N> --repo getlago/lago-api --json state,title showing it open, recorded in the state dir. Then skip fix mode, Announce with the plain template, note the pending merge in the journal and the final report. Any other red alongside → real failure.gh api --paginate 'repos/getlago/lago-front/code-scanning/alerts?per_page=100', filter state == "dismissed" yourself (single-value state param). A dismissed alert with the same rule.id, file AND overlapping region is a re-fingerprint no code change clears: fix other reds first; when it is the only red, STOP with outcome needs-operator-adjudication asking the operator to dismiss it referencing the prior one. Same rule elsewhere in the file is a real finding.main base: gh pr checks <base PR> shows the same signature → not this diff's; no cycle charged, both PR URLs in the journal, run ends needs-operator-adjudication unless the operator says otherwise in chat. No Slack post."$SCRIPTS/iter-budget.sh" <ISSUE-ID> ci (exit 1 → STOP path), then "$SCRIPTS/loop-ci-log.sh" <ISSUE-ID> <run-id> <N> — raw log to disk, ≤40 decisive lines back. Write ci-failure.md from those lines (job, matched lines, file:line, raw: <path>, ≤60 lines; the script already archived the previous one), re-enter build in fix mode, commit fix(<context>): address CI failures, push, watch again. Never cat the raw log, never gh run view without the script.impediment.md, exit DM, report with the PR URL and the distilled failure. No Slack channel post while CI is red.Announce (CI fully green — sole carve-out: the verified codegen case). Post to #frontend via the Slack MCP, EXACTLY this, a BLANK line between the three lines (the connector collapses single newlines):
**<type>(<context>): <Title>**
:pr: <PR URL>
:admission_tickets: <Linear issue URL>External feedback: gh api repos/getlago/lago-front/pulls/<PR>/comments + gh pr view <PR> --json comments,reviews. Process feedback from anyone other than the operator (gh api user --jq .login) through loop-revise:
Final report: PR URL, Linear state, CI status, Slack link, replies posted, cycle counts, and the cleanup line — worktree: loop-clean after merge; in-place: nothing here, the operator archives the Conductor workspace.
Happy path and every STOP alike; never ping the operator, never mention in Slack.
Journal: "$SCRIPTS/loop-journal.sh" <ISSUE-ID> <iters N/3> <ci N/3> "<gates red at least once, or none>" <outcome> "<fail-checks, or none>" "<one short phrase>". fail-checks = every tag collected in step 2.5 across iterations (review#5,gate:types,adversarial) — the pruning in loop-flywheel runs on this column. Outcomes: shipped / stopped-review / stopped-ci / needs-operator-adjudication / stopped-error.
Flywheel: for each recurring or avoidable failure (review-history, ci-failure-history, external comments) apply the admission test — would a better instruction have prevented it, AND can I name a second, different plausible occurrence? Both yes → append to $LOOP_STATE_DIR/_flywheel.md:
## <date> — <ISSUE-ID>
- target: <skill or doc>
- evidence: <what happened, no ticket ID in the rule itself>
- proposed edit: <the instruction — as a script or lint rule if it can be one; a check only if it replaces one>Proposals ONLY: never edit skill files, never notify. One yes → append nothing.
impediment.md first (stage / cause / attempted / needed / links / layout / where), then "$SCRIPTS/loop-notify.sh" "<MESSAGE>" — bot DM, mrkdwn, :rotating_light: *loop-run stopped — <ISSUE-ID>* + Reason / Stage / Where / PR / Linear / Next lines. needs-operator-adjudication reads as "complete and green, one decision needed", never as a failure.CH= TS= USER=. For fixable stops (review/CI), poll conversations.history?channel=$CH&oldest=$TS with $SLACK_LOOP_BOT_TOKEN every ~2 min for up to 60 min (background-safe waits only); only messages from $USER count. A reply → :eyes: got it — resuming, route it into the fix cycle like loop-revise feedback. No reply → :hourglass: no reply — stopping here; resume with /loop-revise <ISSUE-ID>.PushNotification + Slack MCP self-DM (blank line between lines), no feedback-wait, note the degradation.in-place: this checkout only). in-place never manages its container or checkout. Never the full jest suite. Review always in a fresh subagent; at most two review agents; no reviewer fetches Linear or Notion.© getlago, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/loop-run of getlago/lago-front.
Open the folder on GitHubat commit d4cb9fe
Loop Run next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Loop Run this skillgetlago/lago-front | 163 | — | ~3.3k | Automated safety check: Pass | AGPL-3.0 | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Dev Instanceyc-software/qm | 15k | — | ~3.7k | Automated safety check: Notes | MIT | |
| Public Repo Guardheptameta/heptabase-cli-skills | 155 | — | ~1.2k | Automated safety check: Warn | MIT | |
| Backport ManagementComfy-Org/ComfyUI_frontend | 2.1k | — | ~5.4k | Automated safety check: Pass | GPL-3.0 | |
| External Electron App Automationcashew-labs/libretto | 904 | — | ~967 | Automated safety check: Pass | MIT |
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
yc-software/qm
Run the current worktree as a production-shaped local dev instance with web, Slack, or both, on a real LLM + Postgres.
heptameta/heptabase-cli-skills
This repo (heptabase-cli-skills) is PUBLIC — everything committed is visible to the world and permanent in git history.
Comfy-Org/ComfyUI_frontend
Manages cherry-pick backports across stable release branches.
cashew-labs/libretto
Drives desktop Electron apps already installed on your machine, such as Slack, Discord or VS Code, by relaunching them with a debugging port and using the Libretto CLI.
ComposioHQ/composio
Route and complete Composio work across Composio For You and Composio Platform.
getlago/lago-front
A skill your agent uses when asked to babysit, monitor, shepherd, or keep working on a GitHub pull request until it is green, review-ready, approved, mergeable, or ready to merge.
getlago/lago-front
Triage a CVE / Dependabot alert in a JS/TS project and recommend the least-invasive fix.
getlago/lago-front
Extract a Formik form section into a TanStack Form drawer with Zod validation, following the plan form migration pattern.
getlago/lago-front
Phase 2 of the loop pipeline for lago-front. An agent skill from getlago/lago-front.
getlago/lago-front
Cleanup phase of the loop pipeline for lago-front, for the worktree layout only.
getlago/lago-front
You are an advanced Docker containerization expert with comprehensive, practical knowledge of container optimization, security hardening, multi-stage builds, orchestration patterns, and production…
Categories
Orchestrator of the loop pipeline for lago-front: sweep → spec → build ↔ review → ship (commit, PR, Linear, CI gate, Slack frontend). Loop Run is an agent skill from getlago/lago-front. Orchestrator of the loop pipeline for lago-front: sweep → spec → build ↔ review → ship (commit, PR, Linear, CI gate, Slack frontend).
Loop Run fits situations like: user says /loop-run <linear-url [notion-urls...] [--in-place] [--confirm-spec]; asks to run the full loop on a ticket.
Run `npx skills add getlago/lago-front --skill loop-run -a claude-code`. Or copy the skill folder (.agents/skills/loop-run in getlago/lago-front) into .claude/skills/loop-run in your project. Claude Code loads it when a task matches its description.
Run `npx skills add getlago/lago-front --skill loop-run -a codex`. Or copy the skill folder (.agents/skills/loop-run in getlago/lago-front) into .agents/skills/loop-run in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add getlago/lago-front --skill loop-run -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/loop-run, .gemini/skills/loop-run, .github/skills/loop-run and .opencode/skills/loop-run in your project.
Going by SKILL.md and its folder, Loop Run needs the command-line tools its instructions call (gh and git) and credentials named SLACK_LOOP_BOT_TOKEN.
SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Loop Run is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Loop Run: Code Design Rationale Investigator (cursor/plugins, 10k stars), Dev Instance (yc-software/qm, 15k stars), Public Repo Guard (heptameta/heptabase-cli-skills, 155 stars) and Backport Management (Comfy-Org/ComfyUI_frontend, 2.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
getlago (a GitHub organization) maintains it in getlago/lago-front, which has 163 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 8, 2026.
Source: getlago/lago-front on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.