learn-setup
Bootstrap a learning harness for one subject.
npx skills
npx skills add joshuaoliphant/claude-plugins --skill learn-setup
Works for Codex, Cursor and other harnesses. Use -a <agent> to target one, e.g. -a codex.
Claude Code
/plugin marketplace add joshuaoliphant/claude-plugins
/plugin install learn-harness@oliphant-plugins
Learn setup
Goal
A project (or folder) where learn <goal>, practice and field <scenario> work from the first
message, with the subject layer kept separate from the subject-neutral doctrine.
Hard rules
- Never overwrite an existing learn root, ledger, graph file or record. Report what exists and stop or merge with the user's OK.
- The doctrine stays subject-neutral. Subject content goes in the curriculum record and the instructions header only.
- Propose, then write. Show the user the drafted curriculum and instructions header before writing records, unless they already approved the shape.
Workflow
- Locate the host. In a Claude project the learn root is
/mnt/project-files/learn/and the four records go in project memory. Elsewhere the learn root islearn/and the records are files in it. Check for an existing learn root first. - Pin the subject, one question per turn: the subject, why the user wants it (a talk, a role, a project), and any sources that inspired it. Fetch and read those sources; cite them.
- Draft the subject layer.
- Curriculum: 5 to 9 strands, each with a slug (its
graph/<slug>.md), the source it comes from, and a rough goal state. Mark which strands are your additions. Mark the whole map a hypothesis until the first probe. - Profile: background to bridge from, answer format, voice rules, timing. Ask only what you can't find in what the user or host already says about them.
- Instructions header from
assets/instructions-template.md. - Write the learn root: create
graph/,sessions/and an emptyledger.jsonl, and put the doctrine atHARNESS.md. In Claude Code, copy it from${CLAUDE_PLUGIN_ROOT}/skills/learn-session/references/doctrine.md. A Claude project has no plugin root: have the user uploaddoctrine.mdaslearn/HARNESS.md(or paste it in), or run this setup once from Claude Code against the project's files. - Write the records from
assets/records-template.md: profile, curriculum, frontier (seeded with the first session), session-feedback. - Hand over the instructions header for the user to paste into project settings (or a CLAUDE.md for a folder), and propose the first session: a probe-only Lesson that brackets every strand and writes the first frontier. Optionally propose a twice-weekly Practice routine at a time the user picks.