Install
openclaw skills install @jose-compu/self-improving-metaImproves the agent infrastructure itself — core prompt files (AGENTS.md, SOUL.md, TOOLS.md, CLAUDE.md), skill definitions, hooks, rules, extensions, and memory management. Use when: (1) An agent misinterprets a prompt file instruction, (2) A hook fails or doesn't trigger, (3) A skill is not activating correctly, (4) Rules conflict across files, (5) Context window is bloated by verbose prompt files, (6) Memory entries are stale or degrading quality, (7) A skill template is missing sections or unclear.
openclaw skills install @jose-compu/self-improving-metaLog infrastructure learnings, meta issues, and feature requests to markdown files for continuous improvement of the agent system itself. Captures prompt drift, rule conflicts, skill gaps, hook failures, context bloat, and instruction ambiguity. Important learnings may be promoted into the files they govern — prompt files, hook code, rule files, skill templates, and memory policies — after explicit human review.
This is the skill that improves skills. Its learnings influence infrastructure that all other skills depend on, so changes should be reviewed conservatively.
Before logging anything, ensure the .learnings/ directory and files exist in the project or workspace root. If any are missing, create them:
mkdir -p .learnings
[ -f .learnings/LEARNINGS.md ] || printf "# Meta Learnings\n\nPrompt drift, rule conflicts, skill gaps, hook failures, context bloat, and instruction ambiguity.\n\n**Categories**: prompt_drift | rule_conflict | skill_gap | hook_failure | context_bloat | instruction_ambiguity\n**Areas**: agent_config | skill_authoring | hook_scripts | prompt_files | rule_files | memory_management | extension_api\n\n---\n" > .learnings/LEARNINGS.md
[ -f .learnings/META_ISSUES.md ] || printf "# Meta Issues Log\n\nInfrastructure failures: hook crashes, skill activation problems, prompt file errors, memory corruption, extension breakage.\n\n---\n" > .learnings/META_ISSUES.md
[ -f .learnings/FEATURE_REQUESTS.md ] || printf "# Feature Requests\n\nCapabilities needed for agent infrastructure, skill authoring, hook development, and prompt management.\n\n---\n" > .learnings/FEATURE_REQUESTS.md
Never overwrite existing files. This is a no-op if .learnings/ is already initialised.
Do not log secrets, tokens, private keys, or environment variables. Prefer short summaries or redacted excerpts over raw file contents.
Use a manual-first workflow by default. If you want reminders, use the opt-in hook workflow described in Hook Integration.
AGENTS.md, SOUL.md, TOOLS.md, MEMORY.md) without explicit user approval.| Situation | Action |
|---|---|
| Agent misreads AGENTS.md instruction | Log to .learnings/LEARNINGS.md with instruction_ambiguity |
| Hook script fails silently | Log to .learnings/META_ISSUES.md |
| Skill doesn't activate when expected | Log to .learnings/META_ISSUES.md |
| Two rules contradict each other | Log to .learnings/LEARNINGS.md with rule_conflict |
| Prompt file too verbose, wasting context | Log to .learnings/LEARNINGS.md with context_bloat |
| Stale memory entry causes wrong behavior | Log to .learnings/LEARNINGS.md with prompt_drift |
| Skill template missing required section | Log to .learnings/META_ISSUES.md |
| New extension capability needed | Log to .learnings/FEATURE_REQUESTS.md |
| Recurring misinterpretation across sessions | Link entries, bump priority, consider promotion |
| Broadly applicable infrastructure fix | Promote directly to the affected file |
OpenClaw is the primary platform for this skill. It uses workspace-based prompt injection with automatic skill loading.
Via ClawdHub (recommended):
clawdhub install self-improving-meta
Manual:
git clone https://github.com/jose-compu/self-improving-meta.git ~/.openclaw/skills/self-improving-meta
OpenClaw injects these files into every session:
~/.openclaw/workspace/
├── AGENTS.md # Multi-agent workflows, delegation patterns
├── SOUL.md # Behavioral guidelines, personality, principles
├── TOOLS.md # Tool capabilities, integration gotchas
├── MEMORY.md # Long-term memory (main session only)
├── memory/ # Daily memory files
│ └── YYYY-MM-DD.md
└── .learnings/ # This skill's log files
├── LEARNINGS.md
├── META_ISSUES.md
└── FEATURE_REQUESTS.md
mkdir -p ~/.openclaw/workspace/.learnings
Then create the log files (or copy from assets/):
LEARNINGS.md — prompt drift, rule conflicts, skill gaps, context bloat, instruction ambiguityMETA_ISSUES.md — hook crashes, skill activation failures, prompt file errors, memory corruptionFEATURE_REQUESTS.md — infrastructure capabilities, tooling, automationWhen meta-learnings prove broadly applicable, promote them to the files they govern with explicit user approval:
| Learning Type | Promote To | Example |
|---|---|---|
| Agent behavior corrections | SOUL.md | "Be concise" repeated 6 ways → single directive |
| Workflow/delegation improvements | AGENTS.md | Vague "long tasks" → explicit threshold |
| Tool integration fixes | TOOLS.md | Missing timeout guidance → add retry config |
| Memory management patterns | MEMORY.md | Stale entries → 30-day rotation policy |
For automatic reminders at session start:
cp -r hooks/openclaw ~/.openclaw/hooks/self-improving-meta
openclaw hooks enable self-improving-meta
See references/openclaw-integration.md for complete details.
For Claude Code, Codex, Copilot, or other agents, create .learnings/ in the project or workspace root:
mkdir -p .learnings
Create the files inline using the headers shown above.
Add to AGENTS.md, CLAUDE.md, or .github/copilot-instructions.md:
When agent infrastructure issues are discovered:
.learnings/META_ISSUES.md, LEARNINGS.md, or FEATURE_REQUESTS.mdSOUL.md — behavioral correctionsAGENTS.md — workflow and delegation improvementsTOOLS.md — tool integration fixesMEMORY.md — memory management policies.cursor/rules/, AGENTS.md rulesAppend to .learnings/LEARNINGS.md:
## [LRN-YYYYMMDD-XXX] category
**Logged**: ISO-8601 timestamp
**Priority**: low | medium | high | critical
**Status**: pending
**Area**: agent_config | skill_authoring | hook_scripts | prompt_files | rule_files | memory_management | extension_api
### Summary
One-line description of the infrastructure insight
### Details
Full context: what prompt file instruction was ambiguous, which rules conflict,
why context is bloated, how memory drifted. Include the relevant file paths and
line numbers. Quote the problematic instruction verbatim.
### Suggested Action
Specific fix: rewrite the instruction, compress the file, consolidate the rules,
update the hook code, prune the memory entries.
### Metadata
- Source: agent_behavior_observation | hook_output_inspection | context_window_analysis | learnings_review | prompt_audit
- Affected Files: AGENTS.md, SOUL.md, etc.
- Tags: tag1, tag2
- See Also: LRN-20250110-001 (if related to existing entry)
- Pattern-Key: rule_conflict.package_manager (optional)
- Recurrence-Count: 1 (optional)
- First-Seen: 2025-01-15 (optional)
- Last-Seen: 2025-01-15 (optional)
---
Categories for learnings:
| Category | Use When |
|---|---|
prompt_drift | Prompt file content no longer matches actual practices or references deleted files |
rule_conflict | Two or more files give contradictory instructions on the same topic |
skill_gap | No skill exists for a recurring pattern with enough learnings to extract |
hook_failure | Hook script fails, produces wrong output, or doesn't trigger when expected |
context_bloat | Prompt file is too verbose, duplicative, or includes stale content wasting tokens |
instruction_ambiguity | Prompt file instruction is vague, causing inconsistent agent behavior |
Append to .learnings/META_ISSUES.md:
## [META-YYYYMMDD-XXX] issue_type
**Logged**: ISO-8601 timestamp
**Priority**: high
**Status**: pending
**Area**: agent_config | skill_authoring | hook_scripts | prompt_files | rule_files | memory_management | extension_api
### Summary
Brief description of the infrastructure failure
### Error Output
\`\`\`
Actual error message, hook output, or observed misbehavior
\`\`\`
### Root Cause
What in the infrastructure caused this failure. Include the affected file and section.
### Suggested Fix
How to resolve: update hook code, fix skill frontmatter, correct prompt file, prune memory.
### Metadata
- Source: hook_output_inspection | skill_activation_failure | prompt_injection_error | memory_corruption | extension_api_breakage
- Affected Files: path/to/file
- Reproducible: yes | no | unknown
- See Also: META-20250110-001 (if recurring)
---
Append to .learnings/FEATURE_REQUESTS.md:
## [FEAT-YYYYMMDD-XXX] capability_name
**Logged**: ISO-8601 timestamp
**Priority**: medium
**Status**: pending
**Area**: agent_config | skill_authoring | hook_scripts | prompt_files | rule_files | memory_management | extension_api
### Requested Capability
What infrastructure tool, automation, or capability is needed
### User Context
Why it's needed, what workflow it improves, what infrastructure problem it solves
### Complexity Estimate
simple | medium | complex
### Suggested Implementation
How this could be built: hook script, skill template, audit script, linting tool
### Metadata
- Frequency: first_time | recurring
- Related Features: existing_tool_or_feature
---
Format: TYPE-YYYYMMDD-XXX
LRN (learning), META (meta/infrastructure issue), FEAT (feature request)001, A7B)Examples: LRN-20250415-001, META-20250415-A3F, FEAT-20250415-002
When an issue is fixed, update the entry:
**Status**: pending → **Status**: resolved### Resolution
- **Resolved**: 2025-01-16T09:00:00Z
- **Fix Applied To**: AGENTS.md / SOUL.md / hook code / skill template
- **Notes**: Rewrote delegation instruction / compressed SOUL.md / fixed hook path
Other status values:
in_progress — Actively investigating or fixingwont_fix — Decided not to address (add reason in Resolution notes)promoted — Elevated directly to a prompt file, rule, hook, or configurationpromoted_to_skill — Extracted as a reusable meta-skillMeta-learnings are special: they can affect shared infrastructure. When you improve a prompt file, that improvement affects future sessions. When you fix a hook, that fix can propagate to all bootstraps. Use review gates.
| Pattern | Action | Target |
|---|---|---|
| Ambiguous instruction | Rewrite with explicit criteria | AGENTS.md / SOUL.md / TOOLS.md |
| Verbose prompt file | Compress and distill | The file itself |
| Conflicting rules | Consolidate into single authoritative source | Primary file; remove from secondary |
| Hook failure pattern | Update hook code or documentation | handler.ts/js, HOOK.md |
| Skill gap | Create new skill or update existing | New SKILL.md or existing one |
| Memory management insight | Update rotation/pruning policy | MEMORY.md |
**Status**: pending → **Status**: promoted**Promoted**: AGENTS.md (delegation section rewrite) (or equivalent)If logging something similar to an existing entry:
grep -r "keyword" .learnings/**See Also**: LRN-20250110-001 in MetadataIngest recurring infrastructure patterns from simplify-and-harden into prompt file fixes and hook improvements.
pattern_key as the dedupe key..learnings/LEARNINGS.md for existing entry: grep -n "Pattern-Key: <key>" .learnings/LEARNINGS.mdRecurrence-Count, update Last-Seen, add See Also links.LRN-... entry with Source: simplify-and-harden.Promotion threshold: Recurrence-Count >= 3, seen in 2+ sessions, within 30-day window.
Meta-specific actions:
Review .learnings/ at natural breakpoints:
# Count pending meta issues
grep -h "Status\*\*: pending" .learnings/*.md | wc -l
# List pending high-priority infrastructure issues
grep -B5 "Priority\*\*: high" .learnings/META_ISSUES.md | grep "^## \["
# Find learnings for a specific area
grep -l "Area\*\*: hook_scripts" .learnings/*.md
# Find all rule conflicts
grep -B2 "rule_conflict" .learnings/LEARNINGS.md | grep "^## \["
Automatically log when you encounter:
Instruction Problems (→ learning with instruction_ambiguity):
Configuration Conflicts (→ learning with rule_conflict):
Context Issues (→ learning with context_bloat):
Memory Problems (→ learning with prompt_drift):
Hook Failures (→ meta issue):
Skill Problems (→ meta issue):
| Priority | When to Use | Meta Examples |
|---|---|---|
critical | Agent actively doing wrong thing due to bad prompt file | Rule conflict causing harmful output, corrupted memory overriding safety rules |
high | Hook failure affecting multiple sessions | Skill not activating, context bloat degrading performance, silent hook failure for 2+ weeks |
medium | Instruction could be clearer | Memory needs pruning, template improvement, prompt compression opportunity |
low | Documentation or style consistency | Minor template tweak, naming convention, comment formatting |
Use to filter learnings by infrastructure domain:
| Area | Scope |
|---|---|
agent_config | AGENTS.md, SOUL.md, TOOLS.md, MEMORY.md, CLAUDE.md, copilot-instructions.md |
skill_authoring | SKILL.md files, skill templates, skill extraction, naming conventions |
hook_scripts | activator.sh, error-detector.sh, handler.ts/js, hook configuration |
prompt_files | Any file injected into agent context (workspace files, rules, instructions) |
rule_files | .cursor/rules/, AGENTS.md rules, coding standards files |
memory_management | MEMORY.md, daily memory files, memory rotation, staleness detection |
extension_api | OpenClaw extensions, tool integrations, MCP servers, ClawdHub |
Enable reminders through agent hooks only when needed. This is opt-in.
UserPromptSubmit with scripts/activator.sh only.PostToolUse (scripts/error-detector.sh) only in trusted environments when you explicitly want command-output pattern checks.Create .claude/settings.json in your project:
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/self-improving-meta/scripts/activator.sh"
}]
}]
}
}
This injects an infrastructure-focused learning evaluation reminder after each prompt (~50-100 tokens overhead).
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/self-improving-meta/scripts/activator.sh"
}]
}],
"PostToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "./skills/self-improving-meta/scripts/error-detector.sh"
}]
}]
}
}
Enable PostToolUse only if you want the hook to inspect command output for infrastructure-related error terms (hook, skill, AGENTS.md, frontmatter, truncated, etc.).
| Script | Hook Type | Purpose |
|---|---|---|
scripts/activator.sh | UserPromptSubmit | Reminds to evaluate infrastructure learnings after tasks |
scripts/error-detector.sh | PostToolUse (Bash) | Triggers on infrastructure error terms in command output |
See references/hooks-setup.md for detailed configuration and troubleshooting.
When a meta-learning is valuable enough to become a reusable skill, extract it. Meta-skills extracting from meta-learnings is recursive improvement — the system improving itself.
| Criterion | Description |
|---|---|
| Recurring | Same infrastructure pattern in 2+ sessions or projects |
| Verified | Status is resolved with working fix tested in fresh session |
| Non-obvious | Required actual investigation or multiple attempts |
| Broadly applicable | Not specific to one prompt file; useful across agent setups |
| User-flagged | User says "save this as a skill" or similar |
./skills/self-improving-meta/scripts/extract-skill.sh skill-name --dry-run
./skills/self-improving-meta/scripts/extract-skill.sh skill-name
promoted_to_skill, add Skill-PathIn conversation: "This keeps happening", "Save this infrastructure fix as a skill", "Every project has this prompt file issue", "This hook pattern should be standard".
In entries: Multiple See Also links, high priority + resolved, rule_conflict or context_bloat with broad applicability, same Pattern-Key across projects.
This skill is unique: its learnings directly modify the infrastructure that all other skills depend on. This creates a feedback loop:
.learnings/When you improve a prompt file, that improvement affects all future sessions. When you fix a hook, that fix propagates to all bootstraps. When you update a skill template, all future skill extractions benefit.
The meta skill is the only skill whose learnings directly modify the infrastructure that all other skills depend on. Handle with care — test before applying.
| Agent | Activation | Detection |
|---|---|---|
| Claude Code | Hooks (UserPromptSubmit, PostToolUse) | Automatic via error-detector.sh |
| Codex CLI | Hooks (same pattern) | Automatic via hook scripts |
| GitHub Copilot | Manual (.github/copilot-instructions.md) | Manual review |
| OpenClaw | Workspace injection + inter-agent messaging | Via session tools |
Keep learnings local (per-developer):
.learnings/
Track learnings in repo (team-wide): Don't add to .gitignore — learnings become shared knowledge.
Hybrid (track templates, ignore entries):
.learnings/*.md
!.learnings/.gitkeep
This skill is standalone-compatible and stackable with other self-improving skills.
.learnings/meta/.learnings/INDEX.mdEvery new entry must include:
**Skill**: meta
event + matcher + file + 5m_window; max 1 reminder per skill every 5 minutes.Only trigger this skill automatically for meta orchestration signals such as:
cross-skill conflict|routing ambiguity|policy overlap|dedupelearning loop quality|stackability issue|prompt governanceWhen guidance conflicts, apply:
securityengineeringcodingaimeta as tie-breaker.learnings/meta/ in stackable mode.