Skip to content

v1.1.0: Hardened autonomous loop

Latest

Choose a tag to compare

@kyleboddy kyleboddy released this 05 Jul 05:27
66ca4f5

Hardened autonomous loop (plugin 1.1.0)

This release makes the autoresearch loop actually hard to stop and hard to game. It reworks the four hooks into a real loop engine, enforces noise-floor rigor on keep/discard decisions, and locks the eval harness so an experimenting agent can't rewrite its own scorer.

The loop's spine — four hooks

  • Stop hook is now a loop engine + budget valve — continuation uses JSON decision:block (never exit 2, which is broken for plugin hooks per anthropics/claude-code#10412), so the loop genuinely resists stopping until the budget is spent or the .autoresearch-off sentinel is set.
  • PreCompact + SessionStart hooks survive compaction — state is snapshotted before compaction and rehydrated on resume, so a long run isn't lost when context is summarized.
  • UserPromptSubmit hook carries mid-run steers into the loop as context.
  • All four hooks honor the .autoresearch-off kill switch and keep stdout clean (JSON-only where parsed; diagnostics to stderr).

Rigor & safety

  • Noise-floor keep/discard — experiments are kept or discarded against the measured noise floor, not raw metric deltas, so run-to-run variance can't masquerade as improvement.
  • Locked eval harnessautoresearch.sh and metric-emitting code are off-limits to experiments; an agent can't edit its own scorer to inflate results.
  • ar-log.sh appends valid-JSON result lines (jq with a Python fallback) so a stray quote/apostrophe in a description can't corrupt the JSONL state file.

Also

  • Reworked install.sh / uninstall.sh, expanded SKILL.md and README.md, added docs/diagram-prompts.md and a project banner.

Full changelog: v0.2-beta...v1.1.0

Note: git tags jump from v0.2-beta to v1.1.0 to align with the plugin's semver (plugin.json), which advanced 1.0.0 → 1.1.0 in this release.