Self-Improvement Omni
Tracks improvement signals (+1/-1) and directive hints for a named cron job, based on OpenClaw-RL research (arxiv.org/abs/2603.10165).
Scope (important)
- This skill only ever acts on the one job you name via
--job. - It is invoked explicitly — it does not scan, intercept, or evaluate every conversation. It never runs on its own from unrelated messages.
- It captures feedback only for a job where you pass
--feedback. - It never modifies your prompt, system config, or any file outside its own feedback store. All improvements are suggestions for you to approve.
What It Does
- Capture: Turn an explicit
--feedbackresponse into a score (+1/-1) and a hint - Analyze: Find recurring hints for a job
- Suggest: Generate actionable improvement suggestions (pending your approval)
Security & Privacy
Read before use.
- Opt-in only. Feedback is captured only when you run
SKILL:self-improvement-omni --job <name> --feedback "..."for that specific job. There is no background/interactive listener. - Raw feedback is NOT stored. Your response text is discarded after
evaluation. Only the derived score and a sanitised, secret-redacted hint
are persisted to
memory/learning/agent-feedback.json. Do not assume your exact words are kept — they are not. - Redaction. Things that look like tokens, API keys, private-key blocks,
long hex/base64 blobs, or
user:pass@URIs are replaced with[REDACTED]before anything is stored or printed. - Retention. Stored data is bounded per job: the last 40 evaluations and last 20 suggestions are kept. Entries older than that are pruned.
- No exfiltration. Aggregated stats and suggestions contain only scores and sanitised hints — never raw user text. Do not forward stored content outside this machine without a full review, because hints are derived from your responses and may preserve fragments of them.
- No autonomous changes. The script never edits your prompt or behaviour. It only writes a suggestion list. Applying any suggestion is your decision.
- Consent. Because your responses are retained (in reduced, sanitised form)
and reused across time for suggestions, using this skill implies consent to
that. If you prefer, stop using
--feedback, or deletememory/learning/agent-feedback.json.
Usage
Capture Feedback (explicit)
SKILL:self-improvement-omni --job daily-report --feedback "Great!"
SKILL:self-improvement-omni --job daily-report --feedback "Add more stats"
Get Stats
SKILL:self-improvement-omni --job daily-report --stats
Generate Improvement Suggestions
SKILL:self-improvement-omni --job daily-report --improve
Arguments
| Arg | Description | Example |
|---|---|---|
--job |
Task/job name | daily-digest, weekly-recap |
--feedback |
User response (opt-in capture) | "Thanks!", "Add more X" |
--score |
Manual score override | 1, 0, -1 |
--stats |
Show aggregated stats | daily-digest |
--improve |
Generate suggestion list | daily-digest |
--weekly |
Weekly summary | (flag) |
Storage
sanitised shape in memory/learning/agent-feedback.json (no raw feedback):
{
"jobs": {
"daily-digest": {
"evaluations": [
{ "date": "2026-03-14", "score": 1, "hint": null },
{ "date": "2026-03-13", "score": -1, "hint": "add weekly star comparison" }
],
"improvements": [
{ "date": "2026-03-14", "suggestion": "Add weekly star delta",
"from_hint": "add weekly star comparison", "implemented": false,
"requires_approval": true }
]
}
}
}
Cron Integration
Daily: Ask for feedback (9:30 AM)
This step prompts the user for feedback about the job — it does not fabricate or auto-capture anything:
{
"id": "feedback-ask",
"schedule": "30 9 * * *",
"message": "How was yesterday's daily-digest? Reply with feedback or 'no change'.",
"deliver": "origin"
}
Only a reply that includes --feedback against the job is stored. A plain
"no change" or unrelated reply must not be persisted.
Daily: Generate Suggestions (10 AM)
Suggestions go back to the origin chat for approval, never silently:
{
"id": "improvement-suggestions",
"schedule": "0 10 * * *",
"message": "SKILL:self-improvement-omni --job daily-digest --improve",
"deliver": "origin"
}
The output contains only scores and sanitised hints. Review it before acting on any suggestion.
Weekly: Summary (Saturday 9 AM)
{
"id": "weekly-summary",
"schedule": "0 9 * * 6",
"message": "SKILL:self-improvement-omni --improve all --weekly",
"deliver": "origin"
}
Example Workflow
- User receives daily digest
- User replies: "Good! But can you show star trends?"
- Feedback captured (opt-in): score=1, hint="show star trends" — raw reply not stored
- Next day, suggestions generated:
- "Add star trend comparison (last 7 days)"
- "User satisfaction: 75%"
- Agent presents suggestions for approval — only you apply them; nothing is auto-updated
Improvement Suggestion Format
Improvement Suggestions - {job}
Stats: 8 evaluations, avg score: 0.75
Top Hints:
1. "add weekly star changes" (2x)
2. "use table format" (1x)
Suggested Actions (pending your approval):
- Add 7-day star delta to GitHub section
- Use table-image-generator for stats
Status: 1 suggestion pending
Manual Evaluation
If you prefer not to use automatic capture, you can evaluate manually:
Evaluate yesterday's output as: good/bad
Related Skills
- openclaw-continuous-learning: Internal session analysis (works alongside this skill)
- compound-engineering: Deep session analysis
