Skip to content

RSI: how it learns

Recursive self-improvement watches how sessions actually go, turns repeated corrections into rules, and turns evidence into evaluated skill patches. Every change passes a gate first.

Updated

The loop

  1. Observe. Hooks log bounded, redacted user requests, corrections, “still broken” moments and which skills fired. Feedback is classified as behaviour, requirement, preference or environment. Task identity and explicit skill references guide attribution; ambiguous feedback stays uncertain rather than blaming every recent skill.
  2. Reflect. After a session with signal, a small model — Haiku via Claude (about $0.002), otherwise Codex — proposes evidence-backed WHEN → THEN rules.
  3. Curate. A rule goes live once two sessions back it. It goes stale after 30 days and is archived after 90.
  4. Apply. Review mode queues changes for /rsi review. Autonomous mode applies supported changes after validation.

Tiers

TierChangesWho decides
0Learned rules in each session's brief (≤1.5 KB)Automatic
1Instruction edits and known toolkit repairs, with backupsYou, or autonomous RSI
2Skill patches and new skills that pass regression evaluationsYou, or autonomous RSI
3Enforced guards (≤1% false positives on replay)You, or autonomous RSI

Commands

CommandUse when
/rsi autonomy on · off · statusEnable, disable or inspect automatic application.
/rsi publish on · off · status · runPublish suggestions as issues and validated skill changes as PRs.
/rsi improveRun a due improvement pass and apply eligible proposals.
/rsi statusCheck it's running and what's queued.
/rsi reviewClaude's status line shows rsi:N — decide on proposals.
/rsi coachAn evidence-based report on what's improving or repeating.
/rsi bootstrapFresh install: seed rules from your existing agent memories.
/rsi why <id> · forget <id>Inspect a rule, or reject it for good.

In Codex, use $rsi … instead of /rsi …. A weekly job also checks upstream toolkits and surfaces only changes that match friction you actually had.

Autonomous mode

honey rsi autonomy on    # persists in ~/.honey/config.json
honey rsi autonomy off   # back to manual review

With autonomy on, session-end and startup catch-up jobs apply up to 20 pending proposals per pass and attempt one evidence-backed skill improvement every 24 hours. There is no background daemon — a session triggers due work. Failures rotate behind other eligible work, so one blocked patch doesn't freeze unrelated skills.

How skill patches are earned

Skill diagnoses route to the patcher using verified user quotes. A brand-new skill needs actual requests from at least two sessions and positive and negative trigger evaluations. Keyword-only suggestions stay pending.

Each evaluation arm includes generated cases, existing name-matched cases and independently maintained behaviour cases for read-only preservation, scoped edits and failed verification. Fixture hashes and exact candidate content are checked before anything applies. Evaluator errors and incomplete results never count as passing.

Safety and reversibility

Instruction edits have conflict-checked honey rsi revert <id> snapshots; toolkit repairs keep installer undo records. Guards stay inspectable with honey rsi guards. RSI never executes a proposal's free-form fix text, and automatic decisions never count as user feedback.

Edited patch targets, runtime drift and diverged branches block application. Run honey sync from the source checkout once to refresh Codex and record the editable source; the plugin cache is never treated as editable.

Next: how improvements are published.

Source of truth: the honey-stack guides. Spotted a gap? Open an issue.