Skip to content
This repository was archived by the owner on Oct 2, 2026. It is now read-only.

Releases: ph3on1x/adveloop

v2.0.0 — per-round artifact filenames

Choose a tag to compare

@ph3on1x ph3on1x released this 19 Apr 10:36

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>.md
  • gen-result-<R>.md
  • eval-task-<R>.md
  • eval-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

Choose a tag to compare

@ph3on1x ph3on1x released this 18 Apr 08:16

Highlights

  • Plugin converted to a native Claude Code skill. /adveloop now lives at skills/adveloop/SKILL.md with proper SKILL.md frontmatter (name, trigger-oriented description, 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. WebSearch and 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 build and review modes.
  • 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. /adveloop now 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

Choose a tag to compare

@ph3on1x ph3on1x released this 17 Apr 21:08

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 Mode field in deliverables.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 into eval-task.md so the Evaluator prompt branches unambiguously.
  • Mode-aware resume classification: review deliverables without gen-result.md resume 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>-0 with no matching gen-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

Choose a tag to compare

@ph3on1x ph3on1x released this 17 Apr 20:43

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_PATH must be set).
  • claude-cmux-skill installed — 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 /adveloop classifies 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.