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

  1. 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 is learn/ and the records are files in it. Check for an existing learn root first.
  2. 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.
  3. Draft the subject layer.
  4. 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.
  5. 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.
  6. Instructions header from assets/instructions-template.md.
  7. Write the learn root: create graph/, sessions/ and an empty ledger.jsonl, and put the doctrine at HARNESS.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 upload doctrine.md as learn/HARNESS.md (or paste it in), or run this setup once from Claude Code against the project's files.
  8. Write the records from assets/records-template.md: profile, curriculum, frontier (seeded with the first session), session-feedback.
  9. 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.

← learn-harness