Have your coding agents teach you how to code while they work. Learn while you vibe.
DevLearn is a curriculum of fat agent skills for Cursor, Claude Code, Codex, OpenCode, and other Agent Skills–compatible tools. They explain what, why, and how as the agent builds, fixes, ships, and connects your project — tuned for vibe coders and seasoned developers alike.
Multi-agent install: ./install.sh (interactive wizard) or ./install.sh --harnesses cursor,codex,opencode. See shared/agent-compatibility.md.
- Personas —
viber(feel-first lessons) vsseasoned(decision / alternatives / risk, quiet by default) - One-command install —
scripts/install.shlinks skills andshared/ /devlearn-onboard— 60-second setup writesDEVLEARN.md+.devlearn/- Session memory —
.devlearn/progress.md,.devlearn/decisions.md(ADR-lite) - Stack-aware routing — React / Next detected from
package.json - New skills — recap, before-you-ship, lesson-review, debugging, react, next
- Ship lifecycle — pre-ship, security, devops, post-ship (+ ship-lifecycle.md)
- Example project — examples/todo-app/ with stepped snapshots + LESSONS.md
flowchart LR
Onboard["/devlearn-onboard"]
DEVLEARN["DEVLEARN.md"]
Meta["teach-while-coding"]
Viber["Lesson block"]
Seasoned["Decision block"]
Deep["explain-diff, recap, topics..."]
Onboard --> DEVLEARN
DEVLEARN --> Meta
Meta --> Viber
Meta --> Seasoned
Viber --> Deep
Seasoned --> Deep
- Install —
./scripts/install.sh - Onboard —
/devlearn-onboardor copyDEVLEARN.md - Ambient — lesson or decision blocks after substantive edits
- Explicit —
/devlearn-explain-diff,/devlearn-recap, topic skills, lifecycle skills, etc.
flowchart LR
Plan["before-you-ship"]
Pre["pre-ship"]
Sec["security"]
Dep["deploy"]
Post["post-ship"]
DevOps["devops"]
Plan --> Pre
Pre --> Sec
Sec --> Dep
Dep --> Post
DevOps --> Pre
| Stage | Skill | When |
|---|---|---|
| Plan before coding | /devlearn-before-you-ship |
Large refactor planned |
| Pre-release checklist | /devlearn-pre-ship |
PR ready, before merge/deploy |
| Security pass | /devlearn-security |
Auth, secrets, user input |
| CI/CD | /devlearn-devops |
GitHub Actions, Docker |
| Go live | /devlearn-deploy |
Public URL |
| Verify prod | /devlearn-post-ship |
After deploy |
Details: shared/ship-lifecycle.md
Copy-paste release day:
/devlearn-pre-ship → /devlearn-security → /devlearn-deploy → /devlearn-post-ship
From a clone:
git clone https://github.com/mrdulasolutions/DevLearn.git
cd DevLearn
./install.shThe installer is a 6-step wizard that saves settings to ~/.devlearn/install.conf for upgrades and repair:
- Welcome — upgrade, change settings, uninstall, or fresh install if config exists
- Locate or clone — finds a valid repo or clones to
~/DevLearn(pipedcurl | bashalways clones) - Harnesses — pick one or many: Cursor, Claude, Codex, OpenCode, Factory, Kiro
- Project setup — optional
DEVLEARN.md, Cursor rule, CodexAGENTS.md, repo-local.agents/skills - Review plan — shows repo, targets, and symlink paths
- Install + verify — links skills +
shared/, validates frontmatter spec
Non-interactive examples:
# Piped install (clones to ~/DevLearn, installs Cursor)
curl -fsSL https://raw.githubusercontent.com/mrdulasolutions/DevLearn/main/install.sh | bash -s -- --no-prompt --harnesses cursor --verify
# Multiple harnesses from a local clone
./install.sh --no-prompt --method local --harnesses cursor,codex,opencode --verify
# Team project (Codex + Cursor)
./install.sh --project ~/code/my-app --copy-rule --copy-agents --project-skills --verify
# After git pull — relink skills (no config required if run from clone)
cd ~/DevLearn && git pull && ./install.sh --repair
# Change saved harnesses / project without full reinstall
./install.sh --settingsNo local clone? The curl command clones DevLearn to ~/DevLearn and symlinks skills automatically.
| Flag | Purpose |
|---|---|
--harnesses LIST |
Comma-separated: cursor, claude, codex, opencode, factory, kiro, or all |
--agent TARGET |
Legacy alias for --harnesses (all, auto, cursor, codex, …) |
--method auto|local|git |
Auto-detect repo, use script directory, or clone/update |
--git-dir ~/DevLearn |
Clone destination (default ~/DevLearn) |
--project ~/code/my-app |
Copy DEVLEARN.md into a project |
--copy-rule |
Cursor rule → .cursor/rules/devlearn.mdc |
--copy-agents |
Codex AGENTS.md from template |
--project-skills |
Link skills → project/.agents/skills |
--settings |
Interactive settings menu (uses saved config) |
--repair / --upgrade |
Re-link skills after git pull (uses config, symlinks, or local clone) |
--uninstall |
Remove symlinks only (keeps config) |
--reset |
Delete config and run fresh wizard |
--verify |
Post-install + spec validation |
--no-prompt |
Non-interactive |
--dry-run |
Show plan only |
--help |
Full usage |
Saved config: ~/.devlearn/install.conf
Platform details: shared/agent-compatibility.md
./install.sh --harnesses cursor --verify
# or legacy path:
./scripts/install.sh --no-prompt --harnesses claude| Persona | You are | Agent emits |
|---|---|---|
| viber | New / vibe coding | What / Why / How + term |
| seasoned | Experienced dev | Decision / Alternatives / Risk (whitelist only) |
| autodetect | Either | Inferred from how you talk |
| Depth | Effect |
|---|---|
| vibe | Short; ship first |
| curious | + try-it-yourself + tradeoff |
| deep | + multi-file flow + skill links |
Configure in DEVLEARN.md:
persona: autodetect
depth: curious
seasoned_lessons_on: [architecture, security, breaking, deps, perf]Say anytime: "just ship", "more detail", "explain like PR review".
| Skill | Invoke when |
|---|---|
| devlearn-onboard | First-time setup |
| devlearn-teach-while-coding | Ambient teaching (DEVLEARN.md) |
| devlearn-recap | "What did I learn?" |
| devlearn-before-you-ship | Plan before big multi-file code changes |
| devlearn-lesson-review | Last explanation too long/basic |
| devlearn-explain-diff | Walk through git diff |
| devlearn-glossary | Session vocabulary |
| devlearn-curriculum-router | What to learn next |
| devlearn-analyze-website | Paste a URL — learn how the page was built |
| devlearn-debugging | Errors & stack traces |
| devlearn-git | Commits, branches, PRs |
| devlearn-html-css | Pages & layout |
| devlearn-javascript | DOM, events, state |
| devlearn-react | Components & hooks |
| devlearn-next | App Router, server/client |
| devlearn-apis | REST, env, CORS |
| devlearn-deploy | Go live |
| devlearn-pre-ship | Release checklist before merge/deploy |
| devlearn-security | Secrets, auth, OWASP-lite |
| devlearn-devops | CI/CD, Docker, pipelines |
| devlearn-post-ship | Smoke tests, monitoring, rollback |
Full walkthrough: examples/todo-app/
| Step | Ask | Skills |
|---|---|---|
| 1–2 | "Build todo page + style it" | html-css |
| 3 | "Add and delete todos" | javascript |
| 4 | "Save across refresh" | apis |
| 5 | "Commit and explain git" | git, explain-diff |
| 6 | "Deploy shareable URL" | deploy → post-ship |
| 7 | "Add CI + pre-ship before next release" | devops, pre-ship, security |
| Wrap | /devlearn-recap |
recap, router |
Example lesson blocks: examples/todo-app/LESSONS.md.
| File | When |
|---|---|
DEVLEARN.md |
Config (persona, depth, stack) |
DEVLEARN_GLOSSARY.md |
Terms (glossary: true) |
.devlearn/progress.md |
Session memory (progress: true) |
.devlearn/decisions.md |
ADR-lite (decisions: true, seasoned) |
.devlearn/pre-ship-checklist.md |
Release checklist (pre-ship skill) |
.devlearn/post-ship-log.md |
Post-deploy verification log |
Templates: .devlearn/
| File | Purpose |
|---|---|
| shared/voice.md | Teaching tone |
| shared/lesson-block.md | Viber template |
| shared/decision-block.md | Seasoned template |
| shared/lesson-rubric.md | Quality checklist |
| shared/depth-levels.md | Persona × depth |
| shared/session-recap.md | Recap format |
| shared/completion-protocol.md | Status footers |
| shared/ship-lifecycle.md | Pre → ship → post flow |
Add a skill: devlearn-<name>/SKILL.md following shared/skill-skeleton.md. Register in this README and curriculum-map.md. Keep shared voice in shared/.
MIT — LICENSE