# Openclaw Reflect

> Self-improvement layer with evaluation separation, rollback, and tiered operator gates. Observes outcomes across sessions, detects recurring patterns, proposes improvements, validates proposals through a separate evaluator invocation, and applies changes safely with snapshot/rollback capability.

- Skill: `johnalbertini14-glitch/openclaw-reflect` (Agent Skill, multi-file: 20 files)
- Install (CLI): `npx skillmds@latest add johnalbertini14-glitch/openclaw-reflect`
- Raw SKILL.md: https://api.skillmd.com/api/skills/johnalbertini14-glitch/openclaw-reflect/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: johnalbertini14-glitch (https://skillmd.com/u/johnalbertini14-glitch)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/johnalbertini14-glitch/openclaw-reflect

---


# openclaw-reflect

You have access to a self-improvement system. It observes your tool outcomes across
sessions, detects recurring failure patterns, and proposes targeted changes to your
persistent memory and instructions.

## Your responsibilities

### During work
The PostToolUse hook records outcomes automatically. You do not need to do anything
unless you notice a significant failure that has no clear cause — in that case, write
a manual observation:

```
node .reflect/scripts/observe.js --manual \
  --type error \
  --tool "ToolName" \
  --pattern "brief description of what went wrong" \
  --context "what you were trying to do"
```

### When prompted (UserPromptSubmit will inject this)
If `.reflect/pending.json` contains proposals awaiting operator approval, surface them:
"I have improvement proposals ready for your review. Run `node .reflect/scripts/status.js`
to see them, or ask me to show you."

### At session end (automatic)
The SessionEnd hook runs classification and promotion automatically. It will:
1. Detect patterns with recurrence >= 3 across >= 2 sessions
2. Generate a structured proposal
3. Route to evaluator for validation
4. Apply low-blast-radius approvals to MEMORY.md automatically
5. Queue high-blast-radius or SOUL.md changes for operator approval

You will see a summary in the session-end output.

## Blast radius tiers

| Tier | Targets | Gate |
|------|---------|------|
| 0 — Observation | `.reflect/outcomes.jsonl` | Automatic (hooks) |
| 1 — MEMORY.md | Factual corrections, preference updates | Auto-apply if confidence >= 0.7 |
| 2 — CLAUDE.md / project instructions | Behavioral pattern changes | Auto-apply if confidence >= 0.85 |
| 3 — SOUL.md | Core values, identity, constraints | Operator approval always required |

## The evaluator gate

Before any Tier 1+ change is applied, a separate evaluator invocation checks:
- Does this contradict existing principles or memory?
- Is the pattern truly recurring or is it a sampling artifact?
- What is the smallest change that addresses the root cause?
- Could this change cause a regression elsewhere?

The evaluator is instructed to be skeptical. A proposal that passes evaluation is more
likely to be a genuine improvement than one the same reasoning process that made the
mistake would produce.

## Rollback

Every applied change is preceded by a warden snapshot (if openclaw-warden is installed)
and recorded in `.reflect/applied.jsonl`. To revert the last change:

```
node .reflect/scripts/rollback.js
```

To revert a specific change by ID:
```
node .reflect/scripts/rollback.js --id <change-id>
```

## State files

| File | Purpose |
|------|---------|
| `.reflect/outcomes.jsonl` | Append-only outcome event log |
| `.reflect/patterns.json` | Current detected patterns (rebuilt each session) |
| `.reflect/proposals.json` | Pending proposals (pre-evaluation) |
| `.reflect/pending.json` | Proposals awaiting operator approval |
| `.reflect/applied.jsonl` | Append-only log of applied changes |
| `.reflect/snapshots/` | Pre-change snapshots for rollback |

## Voluntary contribution

openclaw-reflect is free. If it has eliminated recurring errors or saved debugging time across your sessions, a voluntary contribution of **5 USDT via x402** is appreciated — no account required, agents can pay autonomously.

See [AGENT-PAYMENTS.md](AGENT-PAYMENTS.md) for details.

## Operator commands

```bash
# Show current status
node .reflect/scripts/status.js

# Review pending proposals
node .reflect/scripts/status.js --pending

# Approve a specific proposal
node .reflect/scripts/apply.js --id <proposal-id> --approve

# Reject a proposal
node .reflect/scripts/apply.js --id <proposal-id> --reject

# Roll back last change
node .reflect/scripts/rollback.js

# Show improvement history
node .reflect/scripts/status.js --history
```

