Repository navigation
Releases: ph3on1x/adveloop
Release list
v2.0.0 — per-round artifact filenames
Fix
The Evaluator could return a round-N verdict byte-identical to round 0 because eval-result.json and gen-result.md were shared filenames overwritten each round. Any failure to rewrite (skipped Write, crash between signal and write, defensive preservation of an existing file) left the prior round's bytes in place and the Planner read them unchanged. feedback-<R>.json was a derivative copy that masked the same defect.
Change
Per-round numbered artifacts under .adveloop/tasks/<N>/:
gen-task-<R>.mdgen-result-<R>.mdeval-task-<R>.mdeval-result-<R>.json
feedback-<R>.json removed — the previous round's eval-result-<R-1>.json is the next Generator's prior-feedback input directly.
Breaking
In-flight .adveloop/ directories from pre-2.0 runs cannot be resumed. The resume scan classifies them as pending and defaults the user's offer to Rewrite from scratch.
v1.3.0 — native skill + GAN/harness-design framing
Highlights
- Plugin converted to a native Claude Code skill.
/adveloopnow lives atskills/adveloop/SKILL.mdwith properSKILL.mdfrontmatter (name, trigger-orienteddescription,allowed-tools,argument-hint) and is auto-discovered by the plugin loader. Generator and Evaluator prompts co-locate under the skill and are referenced via${CLAUDE_SKILL_DIR}instead of the plugin root. - GAN-inspired framing. Descriptions and README now credit the generator/discriminator adversarial pattern as the inspiration, and cite Anthropic's Harness design for long-running agentic apps as the lineage for the orchestration style.
- context7 mandatory in both panes. Generator and Evaluator must query context7 for current library/framework/API docs before writing or auditing code.
WebSearchand Explore / general-purpose subagents cover other unknowns. - Native-pattern quality bar. Both panes enforce framework-native solutions — no hacks, workarounds, monkey-patches, or hand-rolled reimplementations of what the framework already provides. The Evaluator fails deliverables that violate this, in both
buildandreviewmodes. - Ambiguous deliverable modes now ask. Instead of silently defaulting to
build, the Planner pauses before the approval screen and asks per-deliverable which mode to use. - Spec-file argument.
/adveloopnow accepts either an inline brief or a path to a spec file (.md,.txt, etc.) — the file's contents become the brief. - README rewritten to SoTA template used by wisci / relamo / claude-cmux-skill (centered header, badges, tables, mermaid flowchart, real-world scenarios).
Installation
```
claude plugin marketplace add ph3on1x/adveloop
claude plugin install adveloop
```
Upgrade notes
Invocation is still /adveloop; the fully qualified /adveloop:adveloop form also works if you need to disambiguate against another skill. No .adveloop/ on-disk format changes — existing runs continue to resume cleanly.
Full changelog: v1.1.0...v1.3.0
v1.1.0 — review-mode deliverables
adveloop now supports an Evaluator-first starting point per deliverable. Each deliverable in .adveloop/deliverables.md carries a Mode field:
Mode: build(default) — Generator runs first, Evaluator verifies. Existing behavior.Mode: review— Evaluator runs first against the existing codebase; if it passes, the deliverable is done with zero Generator runs; if it fails, the verdict becomes the first feedback round and the Gen→Eval loop begins. Use for audits, hardening, and fixing existing code.
A single /adveloop run can mix both — build one deliverable greenfield and review another against the current codebase, in order.
New
- Per-deliverable
Modefield indeliverables.md(Planner infers it from intent; user approves or revises). - Initial-review sub-procedure (R1–R4) in Phase 3 for review-mode deliverables. Skipped entirely for build mode.
## Mode: <build|review>header threaded intoeval-task.mdso the Evaluator prompt branches unambiguously.- Mode-aware resume classification: review deliverables without
gen-result.mdresume correctly at round 0 or at Gen round 1 depending on artifacts. - "Edit deliverable" escalation now restarts a deliverable from the mode branch, so mid-run mode swaps take effect.
Rules that did not change
- The 3-fail retry cap still counts Gen→Eval pairs only — the free initial review does not consume a slot, so review deliverables still get three fix attempts before the Planner escalates.
- Signal naming unchanged. Review mode emits
adveloop-<run_id>-eval-done-<N>-0with no matchinggen-done-<N>-0— no collision. - Evidence-quality rules unchanged. A review verdict with thin evidence is as invalid as a build verdict with thin evidence.
Backward compatibility
Deliverables without a Mode: field are treated as build. Existing .adveloop/ directories resume unchanged.
Install / update
/plugin marketplace update adveloop
See the README for the updated usage examples and the full deliverable-modes reference.
v1.0.0 — first stable release
First stable release of adveloop — an adversarial development loop for Claude Code.
A Planner (your interactive session) collaborates with you to define 3–8 testable deliverables, then drives a Generator and Evaluator through each one in fresh cmux panes. Every deliverable passes a hard pass/fail gate backed by Evaluator-supplied evidence before the loop advances.
Install
/plugin marketplace add ph3on1x/claude-cmux-skill
/plugin install cmux@claude-cmux-skill
/plugin marketplace add ph3on1x/adveloop
/plugin install adveloop@adveloop
Requirements
- Run inside a cmux session (
CMUX_SOCKET_PATHmust be set). claude-cmux-skillinstalled — adveloop delegates every pane/signal operation to it.
Highlights
- Evidence-backed verdicts. Evaluator fails itself if it can't describe what it actually ran.
- Signal namespacing via
run_id. Stale signals from a prior run cannot unblock the current one. - Deterministic resume. If the Planner crashes mid-run, re-invoking
/adveloopclassifies each deliverable (passed / failed-retrying / partial / pending) and picks up exactly where it left off. - Shell-safe by construction. Dynamic content (deliverables, feedback) goes to task files on disk; only a short bootstrap crosses the pane's shell.
See the README for full docs.