← Back to Skills Marketplace
ravikadam

Learning Coach

by Ravindra Kadam · GitHub ↗ · v0.3.0
cross-platform ⚠ suspicious
439
Downloads
0
Stars
4
Active Installs
1
Versions
Install in OpenClaw
/install learning-coach
Description
Production learning coach for personalized, multi-subject study planning with proactive reminders, curated resources, LLM-generated quizzes, rubric-based gra...
README (SKILL.md)

Learning Coach

Run a real coaching loop across multiple subjects: Plan by subject → Learn → Practice → Assess → Adapt.

Core principles

  • Keep each subject isolated in planning, quiz history, and scoring.
  • Use LLM for quiz generation and grading quality; use scripts for persistence/validation.
  • Be proactive after one-time user consent for cron jobs.
  • Be transparent: report what was automated and why.

Subject segregation model (mandatory)

Store all learner state under data/subjects/\x3Csubject-slug>/.

Required per-subject files:

  • profile.json — goals, level, weekly hours, exam/project target
  • plan.json — current weekly plan + daily tasks
  • quiz-history.json — generated quizzes + answer keys + rubrics + attempts
  • progress.json — rolling metrics, weak concepts, confidence trend
  • curation.json — recommended links and why selected

Global files:

  • data/coach-config.json — cadence preferences, output style
  • data/cron-consent.json — consent + approved schedules + last update

Never mix metrics from separate subjects unless generating an explicit global dashboard.

LLM-first quiz protocol (mandatory)

Do not rely on static script-generated toy quizzes. Generate quizzes with the model each time unless user asks for a cached quiz.

For each quiz, produce a single JSON object with:

  • metadata (subject, topic, difficulty, blooms_level, time_budget_min)
  • questions[] (mcq/short/explain/case-based)
  • answer_key[]
  • grading_rubric[] with per-question criteria and max points
  • feedback_rules (how to turn mistakes into coaching advice)

Use schema in references/quiz-schema.md.

LLM grading protocol (mandatory)

When user submits answers:

  1. Grade each answer using the provided rubric.
  2. Return strict grading JSON (schema: references/grading-schema.md).
  3. Explain top 3 mistakes and corrective drills.
  4. Update subject progress.json and quiz-history.json.

Use scripts only to validate and persist JSON artifacts.

Proactive automation (cron)

Before setting or changing cron:

  • Inform user of exact schedules and actions.
  • Generate candidate schedules with scripts/subject_cron.py (light/standard/intensive).
  • Ask for explicit approval.
  • Save approval in data/cron-consent.json.

After approval:

  • Run routine reminders and weekly summaries autonomously.
  • Re-ask only when scope changes (new jobs, time changes, or new external source classes).

Use scripts/setup_cron.py for idempotent cron management. See references/cron-templates.md.

Discovery and curation

For each subject:

  • Ingest candidates via scripts/source_ingest.py (YouTube RSS + optional X/web normalized feeds).
  • Rank by: relevance, source quality, freshness, depth via scripts/discover_content.py.
  • Save in subject curation.json with concise rationale and time-to-consume.

Use quality checklist from references/source-quality.md and ingestion contract in references/source-ingestion.md.

Scripts (supporting only)

  • scripts/bootstrap.py — dependency checks/install attempts.
  • scripts/setup_cron.py — apply/remove/show cron jobs.
  • scripts/subject_store.py — create/list/update per-subject state directories.
  • scripts/update_progress.py — update per-subject progress with EMA trend and confidence.
  • scripts/validate_quiz_json.py — validate generated quiz JSON.
  • scripts/validate_grading_json.py — validate grading JSON.
  • scripts/source_ingest.py — normalize YouTube RSS + optional X/web feeds into candidate JSON.
  • scripts/discover_content.py — rank and persist curated links from candidate web/X/YouTube resources.
  • scripts/intervention_rules.py — generate pacing interventions (speed-up/stabilize/slow-down) per subject.
  • scripts/subject_cron.py — generate per-subject cron templates (light/standard/intensive).
  • scripts/weekly_report.py — aggregate subject summaries with trend/confidence output (text + JSON).

Intervention policy

After each graded attempt, generate intervention guidance with scripts/intervention_rules.py.

  • Modes: speed-up, stabilize, slow-down.
  • Explain mode choice with metrics evidence (EMA/confidence/delta).
  • Convert mode into concrete next actions for the subject.

See references/intervention-policy.md.

Execution policy

  • Prefer concise output to user: what changed, what’s next, when next reminder happens.
  • Never claim a cron/job/source fetch ran if not actually run.
  • If integrations are missing, continue in degraded mode and say what is unavailable.

References

  • references/learning-methods.md
  • references/scoring-rubric.md
  • references/source-quality.md
  • references/source-ingestion.md
  • references/progress-model.md
  • references/report-schema.md
  • references/cron-templates.md
  • references/intervention-policy.md
  • references/quiz-schema.md
  • references/grading-schema.md
Usage Guidance
This package appears to do what it advertises: create per-subject state, generate/validate quizzes and grades (LLM-driven), curate resources, and optionally manage reminders via cron. Before installing or running: (1) Decide and confirm explicit consent if you want scheduled cron jobs — review the candidate cron lines (scripts/subject_cron.py and scripts/setup_cron.py) and the workspace path they reference. (2) Be aware source_ingest.py will fetch arbitrary URLs/feeds you provide — avoid giving it internal or sensitive endpoints. (3) Do not run bootstrap with --install unless you trust installing a global npm package (clawhub) on your machine. (4) Confirm where data/subjects will be stored (default 'data' or agent workspace) because the skill will persist quiz history, progress, and curated links there. If you want stricter controls, require the agent to show the exact cron jobs and ask for confirmation before any call to setup_cron.py or any network fetch.
Capability Analysis
Type: OpenClaw Skill Name: learning-coach Version: 0.3.0 The skill bundle implements high-risk capabilities including automated persistence via crontab modification (setup_cron.py) and global software installation using 'npm install -g' (bootstrap.py). While these actions are aligned with the stated purpose of an autonomous 'Learning Coach' and include instructions for user consent, they provide a significant footprint for potential abuse. Additionally, source_ingest.py performs unvalidated network requests via urllib.request, which could be exploited for SSRF if the agent is directed to malicious RSS feeds.
Capability Assessment
Purpose & Capability
The name/description (personalized learning coach with quizzes, grading, curation, reminders) matches the included scripts and files: quiz/grade validation, progress tracking, source ingestion, ranking, cron templates, and reporting. There are no unrelated credentials or surprising binaries requested.
Instruction Scope
SKILL.md instructs the agent to generate quizzes with an LLM, persist per-subject state under data/subjects/<slug>/, run optional curated ingestion of YouTube/X/web feeds, and only set cron jobs after explicit consent. The scripts implement these behaviors. Pay attention to source_ingest.py which will fetch arbitrary URLs (via urllib) provided as inputs — fetching arbitrary URLs can reach internal hosts if not constrained. Also setup_cron.py directly writes the user's crontab when run; SKILL.md requires asking first, but the code will perform the change if called.
Install Mechanism
No install spec in registry (instruction-only). The included bootstrap script can optionally invoke npm to install a global 'clawhub' binary if run with --install; that is an explicit action initiated by the bootstrap script and is not automatic. No remote archive downloads or obscure URLs are present in the package itself.
Credentials
The skill declares no required environment variables, no credentials, and no config path requirements beyond its own data/ directory. Scripts use local file reads/writes and subprocesses (crontab, python3), which are proportionate to the stated functionality.
Persistence & Privilege
The skill does modify persistent user state: it writes files under data/subjects/<subject>/ and includes a script that will add/remove lines in the user's crontab. always:false (not force-included) is appropriate. Because the agent can be invoked autonomously, ensure the agent enforces the SKILL.md requirement to obtain explicit cron consent before running setup_cron.py — otherwise cron modification could happen without the user's clear approval.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install learning-coach
  3. After installation, invoke the skill by name or use /learning-coach
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.3.0
v0.3: source ingestion adapters (YouTube RSS + optional X/web feeds), per-subject cron templates, intervention rules, and stronger reporting/progress workflows.
Metadata
Slug learning-coach
Version 0.3.0
License
All-time Installs 4
Active Installs 4
Total Versions 1
Frequently Asked Questions

What is Learning Coach?

Production learning coach for personalized, multi-subject study planning with proactive reminders, curated resources, LLM-generated quizzes, rubric-based gra... It is an AI Agent Skill for Claude Code / OpenClaw, with 439 downloads so far.

How do I install Learning Coach?

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

Is Learning Coach free?

Yes, Learning Coach is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Learning Coach support?

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

Who created Learning Coach?

It is built and maintained by Ravindra Kadam (@ravikadam); the current version is v0.3.0.

💬 Comments