Skip to content
Skills Library
Programming · Automation

loop

/loop

Run one engineering change from contract to a reviewed, observed, human-approved state, with ceremony scaled by size class. Each step ends on command output, never on a claim. Use when the user says take this to PR-ready, fix this issue, implement this, run the full cycle, or resume an interrupted change. Enter at the earliest incomplete step. Do not use for a question or investigation with no code change, or to review someone else's PR (gate).

Repository
skills ↗
Licence
MIT
Last repository change
16.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
3
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 16.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Run one engineering change from contract to a reviewed, observed, human-approved state, with ceremony scaled by size class. Each step ends on command output, never on a claim. Use when the user says take this to PR-ready, fix this issue, implement this, run the full cycle, or resume an interrupted change. Enter at the earliest incomplete step. Do not use for a question or investigation with no code change, or to review someone else's PR (gate).

Original author description

Run one engineering change from contract to a reviewed, observed, human-approved state, with ceremony scaled by size class. Each step ends on command output, never on a claim. Use when the user says take this to PR-ready, fix this issue, implement this, run the full cycle, or resume an interrupted change. Enter at the earliest incomplete step. Do not use for a question or investigation with no code change, or to review someone else's PR (gate).

How it works

  1. 0. Enter
  2. 1. Shape (heavy only)
  3. 2. Implement
  4. 3. Observe
  5. 4. Review
  6. 5. Human promotion
  7. 6. Correct
  8. Negative verdicts
  9. Rules
Original SKILL.md headings · 56 lines, 757 words
SKILL.md preview
---
name: loop
description: "Run one engineering change from contract to a reviewed, observed, human-approved state, with ceremony scaled by size class. Each step ends on command output, never on a claim. Use when the user says take this to PR-ready, fix this issue, implement this, run the full cycle, or resume an interrupted change. Enter at the earliest incomplete step. Do not use for a question or investigation with no code change, or to review someone else's PR (gate)."
compatibility: "Requires a contract (contract skill), a .agents/verify kit (verify-setup), and the gate scripts."
allowed-tools:
  - Skill(contract)
  - Skill(verify-setup)
  - Skill(gate)
  - Skill(correct)
  - Agent
---

# Loop

```text
contract → [shape] → implement → observe → gate → human → deliver → correct
    ↑          ↑__________ contract or shape change __________|
```

Bracketed steps depend on the size class in `.agents/verify/contract.md`.

## 0. Enter

Read the contract. If it is missing, run `contract`. If `.agents/verify/` is missing, run `verify-setup` (use `--local` in a repo you do not own); if it exists, its `scaffold.mjs --check` must pass first. Find the earliest step whose evidence is missing or stale for the current tree. A handoff note or an earlier claim is a lead, not evidence.

## 1. Shape (heavy only)

Write two or three candidate shapes under `## Shapes` in the contract: mechanism, change surface, what each breaks, and the cheapest experiment that separates them. Run the experiments rather than arguing. Show the result to the human and record the chosen shape and one independently mergeable slice. No accepted slice, no implementation.

## 2. Implement

For an unverified bug, run the driver first and see it fail on the reported behavior. If it passes, the bug is not reproduced: stop and say so. Then implement the smallest change that satisfies the contract. For `normal` and `heavy`, delegate implementation to a subagent and keep review in a different context, so the author never grades its own work.

## 3. Observe

Run `bash .agents/verify/check.sh`, then `bash .agents/verify/observe.sh <feature>` for every feature in the contract. Open each screenshot or output and read it. `bash .agents/verify/fresh.sh` must exit 0. A failure returns to step 2 with the evidence, not with a retry of the same thing.

A subagent's PASS is a lead, not evidence. The orchestrator reruns every contract driver itself after the subagent returns. When the change touches timing, processes, sockets, or lifecycle, run each driver repeatedly and report runs and failures: one green run hid a close race in agent-browser #2135.

For heavy visual or behavioral changes, also observe the baseline: run the same driver on the merge base in a separate worktree and keep both evidence directories, so the human sees before and after on one basis.

Two reversals on the same pair of behaviors (fix A breaks B, fix B breaks A) end the run and return to step 1. That is a wrong change surface, not a bug to keep patching.

## 4. Review

Run `gate` with the profile matching the class (`trivial` = mechanical, `normal` = standard, `heavy` = high-risk). It runs `gate.sh verify` and the deep lenses the diff triggers (test strength, resilience, security, simplify). Any lens that edits code sends the run back to step 3. Record the patch-id it reviewed: `git diff $(git merge-base origin/main HEAD) HEAD | git patch-id --stable`.

## 5. Human promotion

Show the contract result per item, the evidence paths, the review verdict, gaps, and the exact action proposed (commit, push, PR). Wait for explicit approval. Before acting, `gate.sh drift <reviewed-patch-id>` must pass; any drift goes back to step 4. Stage explicit paths, never `git add -A`, and `gate.sh scope` must pass. A PR body is written to a file first and `gate.sh prbody <file>` must pass: `## Problem`, `## Changes`, `## Visual proof` with a screenshot or video, uploaded with `gh pr create|edit --body-file <file> --attach <image>`. PRs target the default branch, never another feature branch. Authority for one action never implies another.

## 6. Correct

Run `correct`: it records the case, and every mistake that escaped a step becomes a check that fails on it, plus a row in `ENFORCERS.md`. If no check is possible, it writes why.

When the cycle ends open, append `## Handoff` to the contract: the current step, the exact tree (HEAD and `fresh.sh` result), what is unverified, and the next command. The next session enters at step 0 from that note.

## Negative verdicts

A finding that something does not exist, is unused, is unreachable, or can be removed is a claim about everything you did not look at. Write it with its preconditions: what you observed and from where (anonymous or authenticated, which surface, which consumers). Before writing it, look at the user-visible surface directly (screenshot or page text), not only traffic or source. If a precondition you could not observe would change the verdict, the verdict is `needs-human: <what was not observed and how to observe it>`, not a conclusion.

## Rules

- A step ends when its command says so.
- A changed contract resets every later step.
- Never invent a threshold, retry count, or stage the repo cannot run. Missing tools are named gaps.
Files in this package (3)
  • SKILL.md 5 KB
  • evals/evals.json 1 KB
  • evals/triggers.json 1 KB

Versions

RepositoryScoreLicence
This page · railly/skills100MIT
mickeyyaya/evolve-loop100Apache-2.0
relai-ai/agent-eval-loop100Apache-2.0
SethGammon/Citadel100MIT
alirezarezvani/claude-skills100MIT
x-cmd/x-cmd100Apache-2.0
in-the-loop-labs/pair-review100Apache-2.0
slogsdon/loop-and-gate-foundation100MIT
Mineru98/skills-store100MIT

Database snapshot: 13.11.2026 · package version dba118c64071 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 95loop-it
    Automated issue loop with checkpoint/resume: fetch open GitHub issues → dependency-aware topological sort → implement each issue end-to-end → review with /review-it → ship with /ship-it → repeat. Persists state to .loop-state.json for crash recovery. Triggers on: loop-it, loop…
  • 85new-issue-loop
    Use when the user asks to file a GitHub issue and then autonomously drive it all the way to a reviewed PR in one shot — "new-issue-loop", "create the issue and run it to completion", "file this and fully automate it". Runs new-issue to create a fully-specified issue, then hands…
  • 90om-auto-create-pr-loop
    Use for long, multi-step tasks needing strict tracking and resumability, e.g. 'implement this spec step by step'. Create a run folder, commit each Step, verify checkpoints with integration tests and UI screenshots, then run the full gate and open a ready labeled PR. Resume via…
  • 100engineering-loop
    Use this skill when the user asks to \"implement this change\", \"fix this issue\", \"add this feature\", \"make this change properly\", \"ship this\", or for any ordinary single-PR development task: one issue, one branch, one pull request. For multi-phase features use epic-dev;…
  • 100ds-review-loop
    Pause the work, run ONE fresh-context review subagent on the current change, wait for its verdict, fix or push back, then continue the task. At most four rounds, one subagent at a time. Use before reporting a nontrivial change as done, before filing a PR, when the user says…
  • 90implement
    Implement a single planned issue, optionally inside a bounded autonomous loop. Use to execute one unit of an approved plan.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.