# learnmax

Research sources. Build lessons. Check what stuck — in one loop.

```
/learn "memory layout"    → research sources, build lessons
/quiz  "memory layout"    → self-check
/test  "memory layout"    → spaced review, scores, feeds weak spots back
```

`/learn` builds everything in one call. `/quiz` and `/test` run separately, whenever you want to check yourself.

## Install

```bash
pi install npm:@xaccefy/learnmax
```

Then from any directory you want to use as a learning workspace:

```bash
/learn "memory layout"
/quiz  "memory layout"
/test  "memory layout"
```

## How it works

Three commands, one loop:

| Command | What it does |
| ------- | ------------ |
| `/learn` | Researches validated sources, builds Markdown lessons, glossary, and literature review under `<topic>/`. Picks up the weak-item backlog first if it exists. |
| `/quiz` | Self-check over lessons and glossary. Immediate feedback, writes nothing. |
| `/test` | Spaced retrieval review. Scores `known` / `shaky` / `unknown`, writes `relearn/`, and rewrites the weak-item backlog. |

### The weak-item loop

`/test` rewrites `relearn/weak-items.md` every run. Items that stay weak reset their streak. Items you recall move through 1/3/7-day spacing intervals. Recalled three times in a row = retired.

Next `/learn` grabs the backlog first — weak spots drive new lessons automatically, and mastered items leave the loop instead of being re-taught forever.

## Workspace layout

Workspace root:

```
TOPICS.md                       # registry of which topics exist
relearn/                        # /test output (gitignored)
  <date>.md                     # recall scores from /test
  weak-items.md                 # backlog — /learn reads this first

<topic>/                        # one directory per topic
  MISSION.md                    # why you're learning this
  GLOSSARY.md                   # canonical terms, linked to their lesson
  literature/                   # source maps — consensus, tensions, gaps
  lessons/
    NNNN-slug.md                # one lesson per file, Obsidian-ready
```

Commit everything under `<topic>/`. `relearn/` is temporary — `/learn` ignores it.

## Format specs

All artifact formats are defined in [`skills/learn/FORMATS.md`](skills/learn/FORMATS.md).

## Validation

After building, `/learn` runs `learnmax-validate` — checks every topic dir against the format specs and fails on format drift. Run it manually with:

```bash
node <pkg>/scripts/validate-artifacts.mjs
```

## License

MIT.
