learn-session
Run one learning session under the learn-harness doctrine.
npx skills
npx skills add joshuaoliphant/claude-plugins --skill learn-session
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 session
Goal
Move the learner's understanding, availability or judgment on one goal, and leave the records updated so the next session starts where this one ended.
Hard rules
- One question per turn, then end the turn. The answer decides the next question.
- Never build on a step the learner hasn't demonstrated. A miss means repair first.
- Commit before you ask. Every graded question, problem and Field rubric has its answer written to the session log before the learner sees the question.
- Never put a graded question on a card or picker that marks a recommended option.
- Close out every session, including abandoned ones.
Workflow
- Find the learn root.
/mnt/project-files/learn/in a Claude project, elselearn/in the working directory. No learn root: offerlearn-harness:learn-setupand stop. - Read the doctrine. Prefer the project's
HARNESS.md(it may carry local edits); fall back toreferences/doctrine.md. Read all of it. - Read the records: profile, frontier, session-feedback and curriculum (memory or files, per
the doctrine's Records paragraph), plus the
graph/files relevant to the goal. - Pick the session type from the request: Lesson, Practice or Field (doctrine section 1). Ambiguous: start a Lesson and say so.
- Open the session log from
assets/session-log-template.mdatsessions/<YYYY-MM-DD>-<slug>.md. Keep it current every turn. - Run the session per the doctrine: Lesson section 3, Practice section 4, Field section 5, with section 2 governing every question and section 6 the voice.
- Close out per doctrine section 7: log, graph, ledger, frontier. Re-read each shared file right before writing it. Attach or link the session log in the closing message.
Answer format to ask for
answer / confidence % / thinking. Thinking is the primary data, often dictated: read it
leniently for transcription noise and fully for the model it reveals.