← Back to Skills Marketplace
sagarmainkar

Learning Loop - GEARS System

by Sagar · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
303
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install learning-loop-skill
Description
Autonomous structured learning for mastering complex topics through cron-based 5-session feedback loops. Use when user wants to deeply learn a subject (e.g.,...
README (SKILL.md)

Learning Loop — The GEARS System

Master complex topics through autonomous cron-based learning using the GEARS feedback loop:

Phase Session What Happens
Gather S1 Research concepts, create test questions
Execute S2 Take the test blind, document failures
Analyze S3 Diagnose why you failed, research solutions
Retry S4 Apply fixes, measure improvement
Synthesize S5 Validate mastery, adjust schedule

The agent sets up a learning pipeline during an interactive session; isolated cron agents execute the 5 GEARS sessions autonomously using a pre-generated playbook.

Architecture

When the user says "learn X", the agent:

  1. Parses topic, researches it, breaks into a curriculum (15-20 subtopics ordered by prerequisites)
  2. Generates a self-contained playbook.md — complete instructions for ALL sessions
  3. Creates state.json — progress tracker and baton between sessions
  4. Shows schedule to user, gets confirmation
  5. Creates cron jobs for S1-S4 (S4 creates S5 when it finishes)
  6. Done. Cron agents take over.

Critical design: Isolated cron agents have NO skill context. They read ONLY playbook.md + state.json. The playbook must be completely self-contained.

Setup Flow

Step 1: Parse Topic

Extract topic from user input and slugify:

  • "learn machine learning" -> machine-learning
  • "teach me database design" -> database-design
  • "master Docker" -> docker

Slugify: lowercase, hyphens for spaces, strip special chars.

Step 2: Research & Build Curriculum

Use available search tools (web search, Tavily, SerpAPI — try what's available, fall back gracefully) to research the topic. Break into 15-20 subtopics ordered by prerequisites.

Write curriculum to curriculum.md with:

  • Subtopic name
  • Why it matters
  • Prerequisites (which earlier subtopics are needed)
  • Estimated difficulty (1-3)

Step 3: Generate Playbook

Generate playbook.md from the template in references/playbook-template.md. This is the most important file — customize it for the specific topic but keep the session execution instructions generic and self-contained.

Target: under 200 lines so isolated agents don't hit token limits.

Step 4: Initialize State

Create the folder structure and initial state.json by running the pipeline creation script. The script is located in this skill's scripts/ directory:

bash \x3Cskill-dir>/scripts/create_pipeline.sh \x3Ctopic-slug> "\x3CTopic Display Name>"

Where \x3Cskill-dir> is the directory containing this SKILL.md file. The script respects the OPENCLAW_WORKSPACE env var (defaults to ~/.openclaw/workspace). See references/state-schema.md for all state fields.

Step 5: Show Schedule & Confirm

Display to user:

Learning Pipeline: [Topic]

Curriculum: [N] subtopics starting with "[first subtopic]"
Sessions per day: S1 (research) -> S2 (test) -> S3 (analyze gaps) -> S4 (retry) -> S5 (synthesize)

Timing:
  S1: +30 min from now (research + create test questions)
  S2: +4 hours (blind test from memory)
  S3: +8 hours (diagnose failures + research gaps)
  S4: +12 hours (retry with new understanding)
  S5: created by S4 on completion (synthesize + decide next)

Notifications: You'll get updates at S2 (initial score), S4 (retry score), and S5 (summary + next steps).

Confirm to start, or adjust timing/notification preferences.

Step 6: Create Cron Jobs

After user confirms, read ~/.openclaw/cron/jobs.json, append 4 cron jobs (S1-S4) to the jobs array, and write back. The file format is { "version": 1, "jobs": [...] } — always preserve existing jobs. S5 is NOT pre-created — S4 creates it when it completes.

Each cron job entry uses this format:

{
  "id": "learning-[topic]-s[N]-day[DD]",
  "agentId": "main",
  "name": "Learning [Topic] S[N] Day [DD]",
  "enabled": true,
  "createdAtMs": \x3Ctimestamp>,
  "updatedAtMs": \x3Ctimestamp>,
  "schedule": {
    "kind": "once",
    "atMs": \x3Ccalculated_timestamp>
  },
  "sessionTarget": "isolated",
  "wakeMode": "now",
  "payload": {
    "kind": "agentTurn",
    "message": "You are a learning agent. Read this file for complete instructions: memory/learning/[topic-slug]/playbook.md\
\
Then read state.json in the same folder for current session and subtopic.\
\
Your session: S[N]\
\
Execute the session per playbook instructions. Write outputs, update state.json, handle notifications and follow-up crons as specified."
  },
  "delivery": {
    "mode": "announce",
    "channel": "telegram",
    "to": "\x3Cuser-configured>"
  }
}

Important: Calculate atMs timestamps based on user-confirmed timing. Default spacing: S1 +30min, S2 +4h, S3 +8h, S4 +12h from setup time.

If the user has notification preferences configured (Telegram, etc.), set delivery accordingly. Otherwise omit delivery and the playbook instructs agents to write notifications to a file.

Session Summary (GEARS)

GEARS Session What Key Output
Gather S1 Research subtopic, create 10-15 test questions WITH answers s1-research.md
Execute S2 Answer questions blind (no peeking), score objectively s2-test.md, s2-failures.md
Analyze S3 Diagnose each failure, research gaps specifically s3-analysis.md
Retry S4 Re-answer using new understanding, compare scores s4-retry.md + creates S5 cron
Synthesize S5 Synthesize, update validated knowledge, decide next subtopic s5-synthesis.md

For full session details, see references/methodology.md.

For the playbook template that gets customized per topic, see references/playbook-template.md.

For the state.json schema, see references/state-schema.md.

Folder Structure (Per Topic)

memory/learning/[topic-slug]/
├── playbook.md           \x3C- Self-contained instructions for cron agents
├── state.json            \x3C- Dynamic progress tracker (baton between sessions)
├── curriculum.md         \x3C- Topic breakdown with subtopics
├── sessions/
│   └── day-NN/
│       ├── s1-research.md
│       ├── s2-test.md
│       ├── s2-failures.md
│       ├── s3-analysis.md
│       ├── s4-retry.md
│       └── s5-synthesis.md
└── knowledge/
    └── validated.md      \x3C- Accumulated mastered knowledge

Scoring & Progression

S4 Score Action
>= 85% Mark subtopic mastered, advance to next in curriculum
50-84% Retry same subtopic tomorrow, focus on remaining gaps
\x3C 50% Flag for user intervention — topic may need prerequisite work

Curriculum Expansion

When S5 detects currentSubtopicIndex >= curriculum.length - 2:

  1. Research advanced topics beyond what's been mastered
  2. Write curriculum-preview.md
  3. Notify user: "2 topics remaining. Previewing next phase: [topics]. Continue?"
  4. On confirmation (or 24h default): append to curriculum, continue

Scripts

  • scripts/create_pipeline.sh \x3Ctopic-slug> — Create folder structure + initial state.json
  • scripts/check_progress.sh [topic-slug] — Show status of active learning topics

Pause, Resume & Intervention

Pause: User says "pause learning [topic]" → set status to "paused" in state.json, disable pending cron jobs for that topic in jobs.json.

Resume: User says "resume learning [topic]" → set status to "in_progress", read currentSession from state, create cron jobs from the current session onward.

Intervention (score \x3C 50%): When S5 sets status to "needs_intervention":

  1. No further crons are created automatically
  2. User is notified with the specific subtopic and score
  3. User can: adjust curriculum (remove/reorder subtopics), add prerequisite subtopics, or manually set status back to "in_progress" and currentSession to "S1" to retry

When NOT to Use

  • Quick overview or summary needed (just answer directly)
  • Simple factual question (no learning loop needed)
  • User only wants information, not mastery
  • Topic too broad without focus (e.g., "learn everything")
  • Topic has no clear right/wrong answers (subjective topics don't self-assess well)
Usage Guidance
What to check before installing: - Review and backup ~/.openclaw/cron/jobs.json and your OpenClaw workspace; the skill will append cron jobs there. Confirm you are comfortable with scheduled autonomous runs it will create. - Inspect the generated playbook.md and state.json before allowing the skill to create cron jobs — cron payloads point at those files and will make isolated agents execute them. - Note the scripts assume a POSIX shell and python3 (check_progress.sh uses python3). The skill metadata lists no required binaries; consider adding/ensuring python3 is available or test scripts manually first. - Ensure your platform's notification/delivery tools (Telegram, etc.) won’t cause unintended external notifications or reveal credentials — this skill can add 'delivery' entries if your state.json enables notifications. - Prefer running create_pipeline.sh manually (or in a sandbox) for a single topic first to observe what files and cron entries are created. If possible, inspect the cron job entries after creation and before the system processes them. - If you do not fully trust the skill source, avoid granting it ability to write the cron jobs file; instead let it produce playbook and state files and create scheduled runs manually. If you want, I can list the exact files/lines that modify ~/.openclaw/cron/jobs.json and highlight where to intercept or validate them before they run.
Capability Analysis
Type: OpenClaw Skill Name: learning-loop-skill Version: 1.0.0 The skill implements an autonomous learning system that requires the agent to programmatically modify its own execution schedule by reading and writing to the OpenClaw cron configuration file (~/.openclaw/cron/jobs.json). While this supports the stated goal of multi-session automation, it creates a high-risk RCE surface via indirect prompt injection. Since the agent is instructed to fetch external web content during the 'Gather' phase (S1) and store it in files that dictate the behavior of subsequent automated sessions, a malicious website could potentially influence the agent to inject unauthorized or harmful tasks into the cron scheduler. These instructions are primarily found in SKILL.md and references/playbook-template.md.
Capability Assessment
Purpose & Capability
The skill's stated goal (set up cron-driven GEARS learning pipelines) aligns with the code and SKILL.md: it creates a workspace folder, playbook, state.json, and appends cron jobs. However metadata declares no required binaries/env but the shipped scripts assume a POSIX shell and python3; also the skill writes to a global scheduler file (~/.openclaw/cron/jobs.json), which is high-privilege but consistent with scheduling behavior.
Instruction Scope
The instructions tell the agent and cron workers to read/write files under the OpenClaw workspace and to read/append ~/.openclaw/cron/jobs.json. They also instruct the use of external search tools (web, Tavily, SerpAPI) and to use the platform's delivery/messaging tool if notifications are enabled. Reading/writing the cron jobs file and creating autonomous isolated agent jobs is expected for this skill but expands scope to platform scheduling; the SKILL.md does not explicitly require or document the need for python3 or a shell environment even though scripts rely on them.
Install Mechanism
No install spec (instruction-only with bundled scripts). No remote downloads or package installs are present. This is low risk from an installer perspective, but the skill will write files into the user's OpenClaw workspace and into ~/.openclaw/cron — so the installation is not 'no-impact.'
Credentials
The skill declares no required environment variables or credentials, which matches that it doesn't directly call external APIs requiring keys. It does honor OPENCLAW_WORKSPACE if present. It also references external search tools (Tavily, SerpAPI) but treats them as optional fallbacks; absence of API keys is handled by falling back to training knowledge. No secrets are requested directly—this is proportionate—but you should confirm that your platform's delivery tools (Telegram, etc.) don't expose tokens via the skill at runtime.
Persistence & Privilege
The skill will append jobs to ~/.openclaw/cron/jobs.json, creating autonomous scheduled agent runs. While this is the skill's stated purpose, granting any skill the ability to schedule future isolated agent runs is a meaningful privilege. The skill is not marked always:true, so it won't be forced into every agent, but once installed and run it persists state and schedules further autonomous runs. You should be comfortable with that level of persistence and verify cron job contents before they are written.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install learning-loop-skill
  3. After installation, invoke the skill by name or use /learning-loop-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of the learning-loop-skill: autonomous, structured mastery of complex topics using the GEARS feedback loop. - Enables multi-day, cron-driven learning with five-session loops: Gather, Execute, Analyze, Retry, Synthesize. - Automatically builds a prerequisite-ordered curriculum (15–20 subtopics) per user request. - Generates a fully self-contained playbook, dynamic state management, and session output files for each topic. - Sets up and manages isolated cron jobs for every learning session, including notification support. - Includes built-in commands for pause, resume, and user intervention when progress stalls. - Designed for topics with clear right/wrong answers, not quick overviews or opinion-based learning.
Metadata
Slug learning-loop-skill
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Learning Loop - GEARS System?

Autonomous structured learning for mastering complex topics through cron-based 5-session feedback loops. Use when user wants to deeply learn a subject (e.g.,... It is an AI Agent Skill for Claude Code / OpenClaw, with 303 downloads so far.

How do I install Learning Loop - GEARS System?

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

Is Learning Loop - GEARS System free?

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

Which platforms does Learning Loop - GEARS System support?

Learning Loop - GEARS System is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Learning Loop - GEARS System?

It is built and maintained by Sagar (@sagarmainkar); the current version is v1.0.0.

💬 Comments