λambda map builder (schema: 1)
The map is what separates λambda from a generic AI tutor: every MCQ a
session asks traces to a real assessed problem and the marks it carries.
This skill builds that map from the learner's own course materials —
the map derives from their institution's copyrighted content, so it lives
in their private vault and is never redistributed.
Usage
/lambda-map <course-name> <path> [more paths...]
Paths may be folders or files: lecture PDFs, tutorial/problem-set PDFs,
past exam papers, quiz exports, notebooks, lecture transcripts
(.txt/.md/.vtt dumps of what was actually said).
Transcripts are an emphasis signal, not a question source: past papers
show what an earlier offering examined, but the transcript shows what
this offering's lecturer stressed, skipped, or hinted at ("this will be
on the exam", "we won't cover the proof"). When transcripts are present,
weight the map's marks-bound routing toward the current offering's
emphasis and note explicit verbal exam hints in the relevant map rows.
File transcripts in the ## Sources ledger like any other input.
Sparse sources (school-shaped courses)
Not every course arrives university-shaped. A school student may have
only a scope & sequence, a textbook, and a couple of practice tests — no
outline, no tutorial sets, no marks schedule. The map builds anyway, by
substitution:
- Scope & sequence / syllabus → units. Its rows become the map's
## sections; the textbook's chapter structure is the fallback when
even that is missing.
- Textbook exercises → drills. Chapter exercise sets fill the Drill
column (
Ch 11 Ex 11C Q4–9 is a perfectly good drill pointer).
- Practice tests / past papers → assessed targets. However few; a
single practice test still anchors marks-bound ordering.
- No marks data at all? Leave the marks empty and order sections by
the scope & sequence — routing degrades to curriculum order, and the
map upgrades in place the day a practice paper arrives (weekly-update
path below).
Never fabricate marks or assessment weights. A sparse map that says
less is better than a confident map that lies.
Procedure
Inventory and classify. List candidate files; classify each as
questions or solutions (*solution*, *answers*, *marking*, keys).
The learner's own submitted work (assignments, graded quizzes, past
answers) may be indexed for ROUTING — what the course asks, where the
marks sit — but is NEVER mastery evidence: it may be AI-assisted or
otherwise not the learner's own, and the map must not seed or imply
any mastery state from it. Beliefs about the learner update only on
what λ observes in its own sessions.
Solutions are grounding, not content: read them to confirm marks,
intended method, and concept labels — never copy solution text, steps,
or final answers into the map. The map must read cleanly as if built
from questions alone.
Index per assessment surface. For each question file, extract a
per-question index: question number, marks (if stated), one line on
what it asks (the task, not the topic label), and the concept(s) it
exercises. For large collections, fan out subagents per file/folder and
merge.
2b. Extract the notation register. While indexing, record the course's
own symbol conventions: what each recurring symbol denotes in this
course's materials (e.g. which letter the course uses for a parameter,
an ordering, a message, a mean), and any known clash with common
textbook conventions. The map gains a ## Notation section:
## Notation (course register — teach and quiz in THIS)
| Symbol | Course meaning | Clash warning |
|---|---|---|
| $\mu$ | Poisson mean (this course) | many texts write $\lambda$ |
Only record symbols actually observed in the materials — never infer a
convention from a textbook. Weekly updates extend this table as new
sheets introduce symbols.
Reverse-index by concept. For each lecture/chapter-level concept,
list every drill (tutorial/problem-set question) and every assessed
target (exam/quiz question with marks) that exercises it.
Weight it. Open the map with a > [!important] Marks at stake
callout: which concepts carry the most assessed marks, which appear in
the most recent / most format-relevant papers, and any concept that
appears in exactly one exemplar (flag it — thin coverage means the
drills are precious).
Write courses/<course-name>/map.md in the vault. Open it with a
skills: frontmatter block declaring the skills a /lambda session on this
course must load — this is the course's composition manifest, read in the
session protocol's Step 0. Every course gets lambda-core (default) and,
if quantitative, lambda-notation (the $/LaTeX rules) and lambda-draw
(figures); add lambda-math for arithmetic-heavy courses (simplest-form
discipline), and the field skill for the subject as it arrives
(lambda-science, lambda-english, lambda-humanities):
---
skills: [lambda-core, lambda-notation, lambda-draw, lambda-math]
---
# <course> routing map (schema: 1)
Built <date> from question files only; no solutions opened.
Source roots: <paths>
> [!important] Marks at stake
> <the weighting summary>
## <Unit / lecture / chapter>
| Concept | Drill | Assessed target |
|---|---|---|
| <concept> | <Tut X Qy — one-line task> | <Exam year Qz [marks]> |
End the map with a ## Sources ledger: one line per indexed file with
the date it was indexed. This is what makes weekly updates cheap.
If the syllabus states prerequisites, open the map with an
assumes: <slug>, <slug> line naming substrate atoms (SPEC "The
substrate") — declared dependencies, NOT map rows: they carry no
drills or marks, and sessions re-verify them by fast lane at need.
Never probe them at map-build time; the register also grows lazily
from descent events, so an empty or absent line is fine.
- Report: units mapped, questions indexed, the top-3 marks
concentrations, and any blind spots (concepts with no drill or no
assessed exemplar).
Weekly updates — courses arrive incrementally
A real student does not hold the full term's corpus on day one; tutorial
sheets and solutions land week by week. Design for that:
- Re-running the command is the update mechanism. If
courses/<name>/map.md already exists, read it and its ## Sources
ledger first; index only files not in the ledger; append the new
questions to the right unit tables; recompute the marks-at-stake
callout; add the new files to the ledger. Never rebuild from scratch —
existing rows and their wording stay put.
- Thin early-term coverage degrades gracefully. When few or no
assessed surfaces exist yet, weight rows by lecture emphasis instead of
marks and tag them
no assessed exemplar yet — sessions then anchor to
drills alone, and the tags disappear as past papers and quizzes enter
the ledger.
- In the update report, call out which previous blind spots the new week's
material just covered.
Conventions
- Marks in brackets everywhere:
Q3 [5].
- One-line descriptions state the task ("derive the conditional of a
bivariate Gaussian given evidence"), not a topic label.
- Callout hygiene: every callout line, including the
[!type] line,
starts with > .
- If the vault is a git repo, commit:
λ-map: <course> — <n> questions.
1---2name: lambda-map3description: Build or incrementally update a λambda course map — the marks-bound routing table that makes /lambda sessions target assessed problems. Use as "/lambda-map <course-name> <folder(s)>" when materials first arrive and again each week as new sheets drop. Indexes question files (solutions are consulted as grounding only, never copied) and writes courses/<name>/map.md into the vault.4---56# λambda map builder (schema: 1)78The map is what separates λambda from a generic AI tutor: every MCQ a9session asks traces to a real assessed problem and the marks it carries.10This skill builds that map from the learner's **own** course materials —11the map derives from their institution's copyrighted content, so it lives12in their private vault and is never redistributed.1314## Usage1516`/lambda-map <course-name> <path> [more paths...]`1718Paths may be folders or files: lecture PDFs, tutorial/problem-set PDFs,19past exam papers, quiz exports, notebooks, **lecture transcripts**20(`.txt`/`.md`/`.vtt` dumps of what was actually said).2122Transcripts are an emphasis signal, not a question source: past papers23show what an earlier offering examined, but the transcript shows what24*this* offering's lecturer stressed, skipped, or hinted at ("this will be25on the exam", "we won't cover the proof"). When transcripts are present,26weight the map's marks-bound routing toward the current offering's27emphasis and note explicit verbal exam hints in the relevant map rows.28File transcripts in the `## Sources` ledger like any other input.2930## Sparse sources (school-shaped courses)3132Not every course arrives university-shaped. A school student may have33only a scope & sequence, a textbook, and a couple of practice tests — no34outline, no tutorial sets, no marks schedule. The map builds anyway, by35substitution:3637- **Scope & sequence / syllabus → units.** Its rows become the map's38 `##` sections; the textbook's chapter structure is the fallback when39 even that is missing.40- **Textbook exercises → drills.** Chapter exercise sets fill the Drill41 column (`Ch 11 Ex 11C Q4–9` is a perfectly good drill pointer).42- **Practice tests / past papers → assessed targets.** However few; a43 single practice test still anchors marks-bound ordering.44- **No marks data at all?** Leave the marks empty and order sections by45 the scope & sequence — routing degrades to curriculum order, and the46 map upgrades in place the day a practice paper arrives (weekly-update47 path below).4849Never fabricate marks or assessment weights. A sparse map that says50less is better than a confident map that lies.5152## Procedure53541. **Inventory and classify.** List candidate files; classify each as55 questions or solutions (`*solution*`, `*answers*`, `*marking*`, keys).56 The learner's own submitted work (assignments, graded quizzes, past57 answers) may be indexed for ROUTING — what the course asks, where the58 marks sit — but is NEVER mastery evidence: it may be AI-assisted or59 otherwise not the learner's own, and the map must not seed or imply60 any mastery state from it. Beliefs about the learner update only on61 what λ observes in its own sessions.62 Solutions are **grounding, not content**: read them to confirm marks,63 intended method, and concept labels — never copy solution text, steps,64 or final answers into the map. The map must read cleanly as if built65 from questions alone.662. **Index per assessment surface.** For each question file, extract a67 per-question index: question number, marks (if stated), one line on68 what it asks (the task, not the topic label), and the concept(s) it69 exercises. For large collections, fan out subagents per file/folder and70 merge.712b. **Extract the notation register.** While indexing, record the course's72 own symbol conventions: what each recurring symbol denotes *in this73 course's materials* (e.g. which letter the course uses for a parameter,74 an ordering, a message, a mean), and any known clash with common75 textbook conventions. The map gains a `## Notation` section:7677 ```markdown78 ## Notation (course register — teach and quiz in THIS)7980 | Symbol | Course meaning | Clash warning |81 |---|---|---|82 | $\mu$ | Poisson mean (this course) | many texts write $\lambda$ |83 ```8485 Only record symbols actually observed in the materials — never infer a86 convention from a textbook. Weekly updates extend this table as new87 sheets introduce symbols.88893. **Reverse-index by concept.** For each lecture/chapter-level concept,90 list every drill (tutorial/problem-set question) and every assessed91 target (exam/quiz question with marks) that exercises it.924. **Weight it.** Open the map with a `> [!important] Marks at stake`93 callout: which concepts carry the most assessed marks, which appear in94 the most recent / most format-relevant papers, and any concept that95 appears in exactly one exemplar (flag it — thin coverage means the96 drills are precious).975. **Write `courses/<course-name>/map.md`** in the vault. Open it with a98 `skills:` frontmatter block declaring the skills a `/lambda` session on this99 course must load — this is the course's composition manifest, read in the100 session protocol's Step 0. Every course gets `lambda-core` (default) and,101 if quantitative, `lambda-notation` (the `$`/LaTeX rules) and `lambda-draw`102 (figures); add `lambda-math` for arithmetic-heavy courses (simplest-form103 discipline), and the field skill for the subject as it arrives104 (`lambda-science`, `lambda-english`, `lambda-humanities`):105106```markdown107---108skills: [lambda-core, lambda-notation, lambda-draw, lambda-math]109---110111# <course> routing map (schema: 1)112113Built <date> from question files only; no solutions opened.114Source roots: <paths>115116> [!important] Marks at stake117> <the weighting summary>118119## <Unit / lecture / chapter>120121| Concept | Drill | Assessed target |122|---|---|---|123| <concept> | <Tut X Qy — one-line task> | <Exam year Qz [marks]> |124```125126 End the map with a `## Sources` ledger: one line per indexed file with127 the date it was indexed. This is what makes weekly updates cheap.128129 If the syllabus states prerequisites, open the map with an130 `assumes: <slug>, <slug>` line naming substrate atoms (SPEC "The131 substrate") — declared dependencies, NOT map rows: they carry no132 drills or marks, and sessions re-verify them by fast lane at need.133 Never probe them at map-build time; the register also grows lazily134 from descent events, so an empty or absent line is fine.1351366. Report: units mapped, questions indexed, the top-3 marks137 concentrations, and any blind spots (concepts with no drill or no138 assessed exemplar).139140## Weekly updates — courses arrive incrementally141142A real student does not hold the full term's corpus on day one; tutorial143sheets and solutions land week by week. Design for that:144145- **Re-running the command is the update mechanism.** If146 `courses/<name>/map.md` already exists, read it and its `## Sources`147 ledger first; index only files not in the ledger; append the new148 questions to the right unit tables; recompute the marks-at-stake149 callout; add the new files to the ledger. Never rebuild from scratch —150 existing rows and their wording stay put.151- **Thin early-term coverage degrades gracefully.** When few or no152 assessed surfaces exist yet, weight rows by lecture emphasis instead of153 marks and tag them `no assessed exemplar yet` — sessions then anchor to154 drills alone, and the tags disappear as past papers and quizzes enter155 the ledger.156- In the update report, call out which previous blind spots the new week's157 material just covered.158159## Conventions160161- Marks in brackets everywhere: `Q3 [5]`.162- One-line descriptions state the *task* ("derive the conditional of a163 bivariate Gaussian given evidence"), not a topic label.164- Callout hygiene: every callout line, including the `[!type]` line,165 starts with `> `.166- If the vault is a git repo, commit: `λ-map: <course> — <n> questions`.