Skip to content

v0.2.0 — Slim + Pluggable (BREAKING)

Latest

Choose a tag to compare

@coolsocket coolsocket released this 24 Jun 07:43
· 3 commits to main since this release

RePERS v0.2.0 — Slim + Pluggable (BREAKING)

The first breaking release in the v0.2 line. Turns RePERS from a 30+-verb
harness with hardcoded logic into a 6-verb pipeline with one plugin slot
per stage
plus a deterministic per-task router that decides which
slice fires.

Why this is a major release

v0.1.x was right about the philosophy (Research → Plan → Execute → Review
→ Ship) but wrong about the surface — too many META verbs that only the
maintainers of RePERS itself ever called. v0.2 cuts that surface and makes
the remaining one substitution-friendly: any stage's implementation can
be swapped without forking the harness.

What changed

New — slim + pluggable architecture

  • .repers/contracts/ — 7 versioned JSON Schemas, one per pipeline
    stage. The stable shapes that flow between R-P-E-R-S stages.
  • .repers/plugins/ — convention plugins/<verb>/<name>.py. Ships
    with default.py for each verb (wrapping the existing implementation).
    Select alternates via REPERS_PLUGIN_<VERB>=<name> env var.
  • .repers/scripts/plugin_loader.py — discovers + imports plugin
    module by (verb, name). Legacy fallback when no plugin folder exists.
  • All 6 pipeline verbs (route, preflight, plan, dispatch, review,
    shipping) resolve via the plugin loader.

Breaking — 4 CLI verbs removed

Removed verb Removed script
objective-audit objective_audit.py
continue continuation_runner.py
snapshot-freshness snapshot_freshness.py
open-source-benchmark open_source_benchmark.py

These were specific to RePERS's own v0.1 publication objective and had no
value to receivers.

Breaking — state slimmed

  • Removed state.objective.{complete,blocking_incomplete} and state.next.* fields
  • Removed --deep and --objective CLI flags
  • Output is now git / package / capabilities only

Breaking — registry trimmed 25 → 20

Removed: objective-audit, continuation-runner, state-report (meta
entry), snapshot-freshness, open-source-benchmark.

Breaking — release-pack artifact set trimmed

REQUIRED_RELEASE_PACK_ARTIFACTS no longer includes
open_source_benchmark_json / objective_audit / continuation_markdown.

Migration for receivers

If your CI / scripts call removed verbs:

Was Do this
repers.py objective-audit drop — no replacement, was internal
repers.py continue drop
repers.py snapshot-freshness drop, use git status dist/
repers.py open-source-benchmark drop
repers.py state --deep --objective "..." repers.py state --json (slim only)
reads of state.objective.complete gone — write a plugins/state/<name>.py if you need a richer signal

Substitution path (the new product)

# write a custom router (LLM-based) in 1 file:
cat > .repers/plugins/route/llm.py <<'EOF'
NAME = "llm"
def route(task, repo_root, est_files=None, **kw):
    # call your LLM, return a repers.router.v1-conforming dict
    ...
def format_human(payload): return payload["recommendation"]
EOF

# select it:
REPERS_PLUGIN_ROUTE=llm python3 .repers/scripts/repers.py route --task "..." --json

Same pattern for preflight, plan, dispatch, review, ship.

Stats

  • Capabilities: 25 → 20
  • Installed files: 59 → 55
  • Scripts: 25 → 21 (4 META deleted)
  • CLI verbs: 32 → 28
  • Plugin slots: 0 → 6
  • Stage contracts as files: 0 → 7

Assets

  • repers-0.2.0.zip — installable runtime archive (775 KB)
  • repers-release-pack.zip — transferable evidence bundle (781 KB)
  • repers-verify-all.json — local-gate evidence

What's next (v0.3)

See ROADMAP.md. Headline items: .repers/config.yaml for pinning
plugins per repo, agent-fixture proving non-Claude vendors plug in
end-to-end, optional jsonschema validation of plugin outputs.