loop-close
Closes a slice or a session - adversarial audit of the diff, ledger entry, selective commit, honest report, and the handoff for…
Runs this project's verification contract and decides honestly whether something is verified, a gap, or a lie. Use before calling anything done, and whenever a report says "should work".
Claude Code
$ npx -y skills add cbdreamer11/CB-loop-kit-claude-plugin --skill loop-verify --agent claude-code
Codex
$ npx skills add cbdreamer11/CB-loop-kit-claude-plugin --skill loop-verify -a codex -y
Cursor
$ npx skills add cbdreamer11/CB-loop-kit-claude-plugin --skill loop-verify -a cursor -y
Gemini CLI
$ npx skills add cbdreamer11/CB-loop-kit-claude-plugin --skill loop-verify -a gemini-cli -y
GitHub Copilot
$ npx skills add cbdreamer11/CB-loop-kit-claude-plugin --skill loop-verify -a github-copilot -y
OpenCode
$ npx skills add cbdreamer11/CB-loop-kit-claude-plugin --skill loop-verify -a opencode -y
Windsurf
$ npx skills add cbdreamer11/CB-loop-kit-claude-plugin --skill loop-verify -a windsurf -y
name: loop-verify description: Runs this project's verification contract and decides honestly whether something is verified, a gap, or a lie. Use before calling anything done, and whenever a report says "should work".
Read `.loop/VERIFY.md` and run the slots that apply to what changed. Then write down what you observed, in the words of what you saw — not in the words of what you hoped.
1. **A green build.** It proves the code compiles. Nothing else. 2. **"I read the code and it looks right."** The bug you are looking for is exactly the one that looks right. 3. **"It should work."** Then it is not verified. Say that instead.
Add two more that fool people constantly:
4. **An exit code of 0** — a command can succeed while doing nothing. 5. **An HTTP 200** — many servers answer 200 for a page that does not exist. Verify by finding a **string that only exists in the new behaviour**, not by status code.
Each slot must produce an artifact or a direct observation:
with a clean console and a real interaction (click, type, navigate); a CLI run with its real output; an endpoint returning the new field. A screenshot or captured output is the artifact.
changed, the wrong value is refused.
state changed for real. Never test with live money.
If the project has a test database or a seeded environment, use it: set up, run, tear down. **That is the default.** Working against a live system is an exception that must be declared in `.loop/VERIFY.md`, and when it is unavoidable: wrap in a transaction and roll back, or restore the fixtures afterwards and confirm nothing was left behind.
Two traps worth naming: your own tooling may run with more privileges than a real user, which hides permission bugs — check with the actual role. And a check that passes for you may fail for a signed-out visitor — check both.
For each slot: **VERIFIED** (with the one line of what you observed), **GAP** (with the reason it cannot be checked here — a missing access, no browser, no test environment), or **FAILED** (go back to building). A slot may not be silently skipped. If a required slot is a GAP, the item is not done — it is delivered with a declared gap, and it says so in `.loop/STATE.md`.
A working method for building real software with coding agents, across many sessions.
Closes a slice or a session - adversarial audit of the diff, ledger entry, selective commit, honest report, and the handoff for…
Sends an open design question to several independent voices in parallel and returns a decision with its evidence. Use before…
Checks that the loop is actually installed and working in this project - files present, role profiles valid, connections alive,…
The planning session. Turns a goal into an ordered list of thin complete slices, decides which role and model runs each following…
Session 0. Sets up the loop in this project - detects the stack, checks which connections actually work (git, database, browser,…
The build loop - locate yourself, investigate the real code, build one slice completely, verify it for real, fix and re-verify,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.