← Back to Skills Marketplace
netanel-abergel

Heleni Self Learning

by Netanel Abergel · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
81
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install heleni-self-learning
Description
Continuous self-improvement through systematic logging, pattern detection, and behavioral updates. Use when: the owner corrects you, a task fails, you discov...
README (SKILL.md)

Self-Learning Skill

Minimum Model

Any model for logging. Use a medium model for writing behavioral rules to SOUL.md.


The Learning Loop

Event happens → Log it immediately → Weekly: find patterns → Promote to config → Verify next week

Part 1 — Log Events (Do Immediately)

When to Log

Trigger File Category
Owner corrects you LEARNINGS.md correction
Task fails ERRORS.md
Better approach found LEARNINGS.md best_practice
Owner asks for missing capability FEATURE_REQUESTS.md
Information was outdated LEARNINGS.md knowledge_gap
Same mistake twice LEARNINGS.md pattern
Owner praises something LEARNINGS.md positive_signal
Acted outside role LEARNINGS.md scope_error
Forgot past context LEARNINGS.md memory_gap

Rule: Log the event before replying to the owner. Don't delay.

Log Format

## [YYYY-MM-DD] | category | short title

**Trigger:** What happened
**Context:** What I was trying to do
**What went wrong / what worked:**
**Root cause:**
**Correct behavior going forward:**
**Applied to:** [SOUL.md / AGENTS.md / TOOLS.md / none yet]

Quick Log Script

#!/bin/bash
set -e

LEARNINGS_DIR="$HOME/.openclaw/workspace/.learnings"
mkdir -p "$LEARNINGS_DIR"

LOG_FILE="$LEARNINGS_DIR/LEARNINGS.md"
DATE=$(date +%Y-%m-%d)

# First arg: category (default: correction)
CATEGORY="${1:-correction}"

# Second arg: short title
TITLE="${2:-Short description}"

# Append a new entry to the log
cat >> "$LOG_FILE" \x3C\x3C EOF

## [$DATE] | $CATEGORY | $TITLE

**Trigger:**
**Context:**
**What went wrong:**
**Root cause:**
**Correct behavior:**
**Applied to:** none yet
EOF

echo "Logged to $LOG_FILE"

Usage:

./quick-log.sh "correction" "Sent message without confirming with owner"

Part 2 — Weekly Reflection

Run every 7 days. Find patterns across log entries.

Pattern Detection Script

#!/bin/bash
set -e

LEARNINGS_FILE="$HOME/.openclaw/workspace/.learnings/LEARNINGS.md"

# Exit cleanly if no file yet
if [ ! -f "$LEARNINGS_FILE" ]; then
  echo "No learnings file at $LEARNINGS_FILE"
  exit 0
fi

echo "=== Corrections (most common) ==="
grep "correction" "$LEARNINGS_FILE" \
  | sed 's/.*| //' \
  | sort \
  | uniq -c \
  | sort -rn \
  | head -10

echo ""
echo "=== All Categories ==="
grep -oP '\| \K\w+(?= \|)' "$LEARNINGS_FILE" \
  | sort \
  | uniq -c \
  | sort -rn

Weekly Reflection Template

# Weekly Reflection — YYYY-MM-DD

## Stats
- Corrections logged: X
- Errors logged: X
- Best practices logged: X

## Top Patterns (appeared 2+ times)
1.
2.

## Priority Fixes Applied This Week
- [ ] Updated SOUL.md:
- [ ] Updated AGENTS.md:
- [ ] Updated TOOLS.md:

## Positive Signals (do more of this)
-

Part 3 — Promote Learnings to Config

After identifying a pattern, update the right config file.

Where to Promote

Learning Type Promote To
Communication rule SOUL.md → Communication section
Behavior pattern SOUL.md → Execution rules
Workspace convention AGENTS.md
Tool-specific note TOOLS.md
Contact / credentials MEMORY.md
Recurring task improvement HEARTBEAT.md

Rule: If the same mistake appears 2+ times → promote it. Once is a log; twice is a rule.

Promote Script

#!/bin/bash
set -e

SOUL_FILE="$HOME/.openclaw/workspace/SOUL.md"
LEARNINGS_FILE="$HOME/.openclaw/workspace/.learnings/LEARNINGS.md"
DATE=$(date +%Y-%m-%d)

# Replace this placeholder with the actual rule text before running
RULE="[Replace this with the actual rule text]"

# Verify SOUL.md exists
if [ ! -f "$SOUL_FILE" ]; then
  echo "ERROR: SOUL.md not found at $SOUL_FILE"
  exit 1
fi

# Append the new learned rule to SOUL.md
printf "\
## Learned Rule — %s\
- %s\
" "$DATE" "$RULE" >> "$SOUL_FILE"
echo "Added rule to SOUL.md"

# Mark the entry as applied in LEARNINGS.md (Linux and macOS compatible)
if [ -f "$LEARNINGS_FILE" ]; then
  if sed --version 2>/dev/null | grep -q GNU; then
    # Linux (GNU sed)
    sed -i "s/Applied to: none yet/Applied to: SOUL.md ($DATE)/" "$LEARNINGS_FILE"
  else
    # macOS (BSD sed)
    sed -i '' "s/Applied to: none yet/Applied to: SOUL.md ($DATE)/" "$LEARNINGS_FILE"
  fi
  echo "Marked as applied in LEARNINGS.md"
fi

Part 4 — Verify (Next Week)

Check: did the behavior actually change?

## Verification Check — YYYY-MM-DD

| Learning | Applied? | Behavior Changed? | Notes |
|---|---|---|---|
| [Title] | ✅ | ✅ | Working |
| [Title] | ✅ | ❌ | Needs a stronger rule |

If behavior didn't change → revise the rule with more explicit wording and re-apply.


Monthly Combined Report

#!/bin/bash
LEARNINGS_DIR="$HOME/.openclaw/workspace/.learnings"

echo "=== Monthly Learning Report ==="

LEARNINGS_FILE="$LEARNINGS_DIR/LEARNINGS.md"
ERRORS_FILE="$LEARNINGS_DIR/ERRORS.md"
FEATURES_FILE="$LEARNINGS_DIR/FEATURE_REQUESTS.md"

# Helper: count matching lines (returns 0 if file missing)
count_matches() {
  local file="$1"
  local pattern="$2"
  grep -c "$pattern" "$file" 2>/dev/null || echo 0
}

# Print counts per file
if [ -f "$LEARNINGS_FILE" ]; then
  echo "Corrections: $(count_matches "$LEARNINGS_FILE" 'correction')"
  echo "Positive signals: $(count_matches "$LEARNINGS_FILE" 'positive_signal')"
fi

if [ -f "$ERRORS_FILE" ]; then
  echo "Error entries: $(wc -l \x3C "$ERRORS_FILE")"
fi

if [ -f "$FEATURES_FILE" ]; then
  echo "Feature requests: $(count_matches "$FEATURES_FILE" '^##')"
fi

Cost Tips

  • Cheap: Logging a single correction — very few tokens.
  • Expensive: Writing nuanced behavioral rules — use a medium model for this step.
  • Batch: Review all weekly logs at once during the monthly reflection, not one by one.
  • Small model OK: Pattern detection is mostly grep — no model needed for that step.

Phase 2: Reflection (Merged from self-reflection skill)

When the owner wants to improve how you operate, follow this structured process. Goal: turn vague dissatisfaction into specific, technical changes.

Reflection Process

1. Understand the Problem (2–3 questions max) Ask focused questions to pin down:

  • What specifically is wrong? (Get a concrete example)
  • What would "good" look like? (Expected vs actual behavior)
  • How important is this? (Tweak vs fundamental change)

If the complaint is clear enough, skip to step 2.

2. Deep System Scan Read ALL relevant parts before changing anything:

  • Core identity: SOUL.md, AGENTS.md, USER.md, MEMORY.md, TOOLS.md
  • All active skills (custom + bundled + workspace)
  • Configuration (model, tools, channels, heartbeat, cron jobs)

Read broadly, change surgically.

3. Diagnose & Propose Present findings:

  1. Root cause — what causes the unwanted behavior
  2. Proposed changes — specific files and edits
  3. Side effects — anything else affected
  4. Alternatives — if multiple approaches exist

4. Implement (after approval)

  • Edit workspace files (persona, memory, etc.)
  • Edit/create/modify skills
  • Update config and cron jobs
  • Every change must be technically concrete. "I'll be more careful" is NOT a valid change.

5. Verify & Document

  • Test the change if possible
  • Document what changed and why
  • Commit workspace changes

Key principles:

  • Scan everything, change only what's needed
  • No fake fixes — if no technical change is possible, say so
  • Compound improvements — each reflection makes the system permanently better

Part 4 — HOT.md (Rules You Keep Breaking)

Inspired by Jarvis.

What It Is

HOT.md is a short file (≤20 lines) read before every reply. It contains only rules you've broken 2+ times. Not documentation — active behavioral correction.

When to Create / Update

  • A rule appears in Part 1 logs twice or more → promote to HOT.md
  • HOT.md grows beyond 20 lines → you have a discipline problem, not a documentation problem. Fix the behavior, don't add more lines.
  • A rule stays unbroken for 30+ days → move it to SOUL.md permanently, remove from HOT.md

Format

# HOT.md — Rules I Keep Breaking
_Read before every reply. Max 20 lines. If it's not here, it doesn't count._

- [Rule 1 — short, imperative] (broken N times)
- [Rule 2] (broken N times)

Promotion Flow

Log (Part 1) → Pattern 2x (Part 3 weekly) → HOT.md → 30 days clean → SOUL.md permanent

Key Rule

If it should apply to EVERY interaction → SOUL.md.
If you keep forgetting it → HOT.md first, SOUL.md after 30 clean days.

This is also why dynamic-temperature and proactive-pa were merged into SOUL.md — rules for every interaction don't belong in skills.

Usage Guidance
This skill is intended to log events and turn recurring mistakes into persistent rules by editing files under ~/.openclaw/workspace (LEARNINGS.md, SOUL.md, etc.). Before installing or enabling it: - Understand persistence: the skill's scripts append rules to SOUL.md, so learnings can permanently change agent behaviour. Decide whether you want automatic promotion or manual review. - Protect secrets: the skill explicitly says to promote 'Contact / credentials' to MEMORY.md. Do NOT store passwords, API keys, or other secrets in plaintext files. Use a secure secret store instead, or remove that advice. - Review file writes: inspect or run the provided scripts in a sandbox to confirm they do only what you expect. Keep backups of SOUL.md and other config files so you can revert unwanted changes. - Autonomy controls: if the agent can invoke skills autonomously, consider restricting this skill from auto-promoting rules or require owner approval for changes to SOUL.md. - Compatibility note: some commands (e.g., grep -P, GNU sed flags) may not behave the same on all systems; test on your environment. If you want a lower-risk setup: use the logging portion (write logs) but require manual promotion into SOUL.md, and never store credentials in workspace files. If you can provide more metadata (who published this skill, a homepage, or an explicit declaration of the config paths it will modify), I can raise or lower my confidence.
Capability Analysis
Type: OpenClaw Skill Name: heleni-self-learning Version: 1.0.0 The skill provides a framework for an agent to modify its own core configuration and identity files (e.g., SOUL.md, AGENTS.md, TOOLS.md) based on 'learnings' and 'reflections'. It includes bash scripts in SKILL.md to automate logging and file modification. While these capabilities are aligned with the stated goal of self-improvement, the power to persistently alter its own behavioral rules, identity, and potentially system tasks (mention of cron jobs) represents a significant attack surface for prompt injection and unintended behavioral shifts.
Capability Assessment
Purpose & Capability
The skill's stated purpose (self-improvement via logs → rules) matches the scripts and workflows in SKILL.md: it creates a .learnings folder, appends log entries, finds patterns, and appends learned rules to SOUL.md. Minor mismatch: the registry metadata lists no required config paths, yet the instructions target $HOME/.openclaw/workspace and files within it (LEARNINGS.md, SOUL.md, AGENTS.md, TOOLS.md, MEMORY.md, HEARTBEAT.md). This should have been declared but is explainable as an oversight.
Instruction Scope
The instructions direct the agent (or the user) to create, read, and modify files under $HOME/.openclaw/workspace and to append learned rules to SOUL.md. They also advise promoting 'Contact / credentials' into MEMORY.md. These actions change persistent agent configuration and encourage storing potentially sensitive information in plaintext files. The instructions are specific enough to perform these modifications automatically (via provided scripts), giving the skill the ability to alter future agent behaviour without further checks.
Install Mechanism
Instruction-only skill with no install spec and no code files — lowest install risk. All runtime actions are shell scripts the SKILL.md shows; nothing is downloaded or installed by the skill itself.
Credentials
The skill requests no environment variables or external credentials, which is proportionate. However, it explicitly recommends promoting 'Contact / credentials' into MEMORY.md (a file under the workspace). Encouraging storage of credentials/contacts in a workspace file is disproportionate and risky because it may lead to plaintext credential storage and accidental exposure. The SKILL.md also implicitly assumes access to $HOME and to create/modify files there.
Persistence & Privilege
The skill's workflow includes appending 'learned' rules into SOUL.md and marking entries as applied in LEARNINGS.md, which gives it the capacity to permanently change agent behaviour. That capability is coherent with a self-learning skill but is high-impact: if the agent executes promotions autonomously, the changes persist across runs. The skill is not 'always:true' and does not request other skills' configs, which lowers concern but warrants caution.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install heleni-self-learning
  3. After installation, invoke the skill by name or use /heleni-self-learning
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial publish
Metadata
Slug heleni-self-learning
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Heleni Self Learning?

Continuous self-improvement through systematic logging, pattern detection, and behavioral updates. Use when: the owner corrects you, a task fails, you discov... It is an AI Agent Skill for Claude Code / OpenClaw, with 81 downloads so far.

How do I install Heleni Self Learning?

Run "/install heleni-self-learning" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Heleni Self Learning free?

Yes, Heleni Self Learning is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Heleni Self Learning support?

Heleni Self Learning is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Heleni Self Learning?

It is built and maintained by Netanel Abergel (@netanel-abergel); the current version is v1.0.0.

💬 Comments