33 battle-tested skills + minimal .claude harness for any coding agent (Claude Code, Cursor, Codex, Gemini CLI).
> /plugin marketplace add Archive228/loopkit> /plugin install loopkit@loopkit-marketplace
▄█ ▄██████▄ ▄██████▄ ▄███████▄ ▄█ ▄█▄ ▄█ ███
███ ███ ███ ███ ███ ███ ███ ███ ▄███▀ ███ ▀█████████▄
███ ███ ███ ███ ███ ███ ███ ███▐██▀ ███▌ ▀███▀▀██
███ ███ ███ ███ ███ ███ ███ ▄█████▀ ███▌ ███ ▀
███ ███ ███ ███ ███ ▀█████████▀ ▀▀█████▄ ███▌ ███
███ ███ ███ ███ ███ ███ ███▐██▄ ███ ███
███▌ ▄ ███ ███ ███ ███ ███ ███ ▀███▄███ ███
█████▄▄██ ▀██████▀ ▀██████▀ ▄████▀ ███ ▀█▀ █▀ ▄████▀
A drop-in .claude/ harness + 49 battle-tested skills for coding agents.
Plan → Act → Verify, enforced by files on disk. Ships the floor, keeps out of your way.
# 1. drop the harness into your project (safe: skips existing files)
curl -fsSL https://raw.githubusercontent.com/Archive228/loopkit/main/install.sh | bash
# 2. open Claude Code / Cursor / Codex in the same directory
claude
# 3. write a one-line spec, then let the loop drive
echo "STATUS: not-started" > IMPLEMENTATION_PLAN.md
./run.sh
That's it. Skills load only when a task triggers them. The verifier subagent closes the loop.
Existing files are kept by default. Pass
FORCE=1to overwrite, orBACKUP=1to snapshot your current.claude/to.claude.bak-<timestamp>/before writing.
Prefer one skill over the whole floor?
npx -p claude-loopkit loopkit-add adversarial-verify
Installs only that skill into ./.claude/skills/. Pass --force to overwrite an existing copy. Browse the catalog at skills/.
Straight from my own .claude/ directory. This is the loadout I actually reach for — not a methodology, not a lifecycle, not a framework.
loopkit is:
loopkit isn't:
run.sh is 8 lines.Every skill fires inside this shape. The harness enforces it.
PLAN ──▶ ACT ──▶ VERIFY
▲ │
└────── revise ──────┘
spec-first, context-budget, tool-restraint, planner-spec-expand, sprint-contract load here.adversarial-verify + evaluator-calibration + the verifier subagent close the loop before anything ships.Full theory: Loop and Harness engineering: 7 files, 5 steps.
your-project/
├── .claude/
│ ├── CLAUDE.md # 60-line standing context (edit for your stack)
│ ├── settings.json # permission allowlist + format-on-write hook
│ ├── agents/
│ │ └── verifier.md # adversarial verifier subagent (Haiku, JSON-out)
│ ├── hooks/ # session-start bootstrap
│ └── skills/ # 49 skills, symlinked or copied
├── .mcp.json # MCP server wiring (github, context7)
├── MEMORY.md # cross-session memory index (keep terse)
└── run.sh # Plan → Act → Verify loop runner
Every file below is opinionated on purpose. Change what doesn't fit; the loop still works.
.claude/CLAUDE.md — standing context60 lines, no more. The tax on every turn. Stack, layout, commands, conventions, the three things the agent must never do. Prune weekly.
.claude/settings.json — permissions + hooksAllowlist for read-only Bash and Read; deny-list for rm -rf and force-push. PostToolUse hook runs Prettier on every Edit/Write so the diff stays reviewable.
.claude/agents/verifier.md — the adversarial subagentRuns on Haiku. Reads the diff assuming it's broken. Checks the 11 "fake done" shortcuts (see skills/adversarial-verify). Returns JSON. Does not propose fixes, does not run code, does not be polite. This is the load-bearing piece.
.claude/hooks/ — session-start bootstrapFires when the agent opens the project. Reminds it of the loop shape and points at CLAUDE.md. Zero runtime cost.
.claude/skills/ — the 49-skill libraryEach skill: YAML frontmatter with name + description, a short body, no runtime dependencies. Loads only when its trigger fires. See the full list below.
.mcp.json — MCP wiringGitHub + Context7 by default. Add your own; the harness doesn't care.
MEMORY.md — cross-session indexPreferences, decisions, feedback you keep re-applying. Prune every session or it becomes rot.
run.sh — the loop runner8 lines. Reads PROMPT.md + IMPLEMENTATION_PLAN.md, does one step, verifies, loops until STATUS: done. Fresh context each turn; state lives on disk.
49 skills across 10 tracks. Each one: name → what it does → when it fires.
passes:false, editable-passes-only → multi-session buildsinit.sh + test.sh/stop.sh/reset.sh siblings, under 120s → setting up a repo for multi-session agent workSkills stay short. When one needs a longer reference, it points here:
Three commands ship in .claude/commands/. Each loads a small set of skills and drives a fixed protocol — no hidden state.
/spec — write PROMPT.md and IMPLEMENTATION_PLAN.md before the agent touches code./verify — assume the diff is broken; run the 11-shortcut checklist and dispatch the verifier subagent./polish — batch quality pass over the current diff (simplify → reduce-nesting → kill-dead-code → a11y-pass → loading-empty-error-states → readme-audit).Pick one. All three drop the same files into your current project.
# via curl (no Node required, recommended)
curl -fsSL https://raw.githubusercontent.com/Archive228/loopkit/main/install.sh | bash
# via skills.sh (works with any agent that reads SKILL.md)
npx skills add Archive228/loopkit
# via git (if you want to fork first)
git clone https://github.com/Archive228/loopkit
cp -r loopkit/.claude your-project/
Options for the curl installer:
| Env var | Effect |
|---|---|
FORCE=1 | Overwrite existing files instead of skipping |
BACKUP=1 | Snapshot existing .claude/ to .claude.bak-<timestamp>/ before writing |
DEST=/path | Install into a specific directory instead of $PWD |
LOOPKIT_REF=<branch> | Install from a specific branch/tag (default main) |
The installer prints every write, verifies the claude CLI is on your PATH afterward, and exits non-zero if anything critical failed.
loopkit is a Claude Code plugin with 53 hand-picked skills, indexed on Flowy in the Agent Orchestration category. Install it with the command on its page. It includes a11y-pass, active-memory-reminder, adversarial-verify. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it