Autonomous build → verify → fix loop for any repo, on top of the
agent-skills plugin. Run /spec
and /plan, then one command takes the plan to a green feature branch with no
approval prompts — building, testing, running your CI gates, security-auditing,
and simplifying, looping fixes back into the build until everything passes.
The engine is generic; everything project-specific lives in a small
.featureloop file in the target repo.
/spec → SPEC.md /plan → tasks/plan.md (interactive, first)
feature-loop PROJ-123 add-rollup-metric
├ 1. worktree off origin/<base> → feature/PROJ-123-add-rollup-metric
├ 2. /build (the ONLY writer) ← plan + tasks/failures/*.md
├ 3-5. parallel READ-ONLY gates:
│ • /test → tasks/failures/test.md (if gaps)
│ • $FL_GATES (your CI) → tasks/failures/pipeline.md (if red)
│ • security audit → tasks/failures/security.md (if any)
│ any failures? ─► back to /build (≤ FL_MAX_ITERS)
├ 6. /code-simplify → re-verify gates
└ live state in <worktree>/tasks/STATUS.md
Gates 3–5 are read-only; /build is the only writer. That single-writer invariant
is what makes the parallelism safe.
As a Claude plugin (interactive /auto-feature):
claude plugin marketplace add ecukalla/feature-loop
claude plugin install feature-loop@ecukalla-plugins
# then, in any repo: /auto-feature PROJ-123 add-rollup-metricThe marketplace was renamed from feature-loop to ecukalla-plugins in 0.2.0, so
the install grammar moved from feature-loop@feature-loop to
feature-loop@ecukalla-plugins. An existing 0.1.x install keeps working, but to pick
up the new marketplace name, remove the old one and re-add it:
claude plugin uninstall feature-loop
claude plugin marketplace remove feature-loop
claude plugin marketplace add ecukalla/feature-loop
claude plugin install feature-loop@ecukalla-pluginsHeadless / CLI:
git clone https://github.com/ecukalla/feature-loop ~/tools/feature-loop
export PATH="$HOME/tools/feature-loop/bin:$PATH"
# then, in any repo (bring your own image):
ANTHROPIC_API_KEY=… feature-loop-docker PROJ-123 add-rollup-metric
ANTHROPIC_API_KEY=… feature-loop-docker --image python:3.14-slim PROJ-123 add-rollup-metric
# Use your Claude.ai / Max subscription instead of an API key:
feature-loop-docker --auth oauth PROJ-123 add-rollup-metricBilling — changes 2026-06-15. feature-loop runs entirely on headless
claude -p, which Anthropic counts as programmatic usage. From 2026-06-15,--auth oauthruns draw from your plan's separate monthly Agent SDK credit and then bill at full API rates (theANTHROPIC_API_KEYpath is unchanged). Seedocs/billing-and-auth.md.
Bring your own Docker. You name the base (an image, a Dockerfile, or --image);
feature-loop wraps it with a cached overlay that injects only the Claude CLI, the
agent-skills plugin, and the engine. There is no dependency on any image I publish —
see docs/featureloop-config.md.
Update: claude plugin update feature-loop · git -C ~/tools/feature-loop pull.
Drop a .featureloop in the repo root (see examples/.featureloop
and docs/featureloop-config.md). Minimum:
FL_BASE_BRANCH=main
FL_GATES='make test' # your authoritative CI gateProjects needing extra toolchain point FL_DOCKERFILE (or FL_IMAGE) at a pure
toolchain image — install tools to /usr/local so the non-root runtime user can use
them. feature-loop adds Claude/plugin/engine on top automatically.
On an interactive terminal the engine shows colored ==> headers, a spinner, and a
live in-place display of the parallel gates; piped/headless runs stay plain (zero
escape codes). Set NO_COLOR to drop color or FL_NO_SPINNER=1 to drop the animation
(see docs/featureloop-config.md).
| Path | Role |
|---|---|
bin/feature-loop |
the engine (runs in the container; config-driven) |
bin/feature-loop-docker |
host runner: resolves your base, applies the overlay, runs the loop |
commands/ + .claude-plugin/ |
the /auto-feature command + marketplace manifest |
docker/overlay-bootstrap.sh |
injects claude + agent-skills + engine onto any apt base |
.github/workflows/ci.yml |
lints the scripts + validates the manifest |
make install # pre-commit git hooks
make lint # shellcheck, shfmt, markdownlint, actionlint, gitleaks
make test # bats suiteSee CONTRIBUTING.md for conventions and the release process, and ROADMAP.md for what's planned.