class-notes
Skill1 starsChanged 28 days agoMITView on GitHub
Use when Dan pastes a Plaud share link (web.plaud.ai/s/…) for a class session inside a course repository, or asks to add a lecture, lab, office hours or other session from a recording, to regenerate class notes after the course prompt changed, to compare prompt variants or models on class notes, or to set up a new course repository for class notes. Fetches the transcript and Plaud's own note into a dated session folder, then generates notes with the course's prompt-notes.md.
In this repository10 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- capture-conversationSkill
- capture-learning-momentSkill
- catch-upSkill
- clothing-inventorySkill
- creating-ultra-crew-guidesSkill
- email-digestSkill
- external-app-reviewSkill
- ootdSkill
- product-searchSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 1 is distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Run it from the course repo (or pass --repo).
- Very specific: line 44
Follow the course's existing folder names: if they carry suffixes (-lecture, -lab), always pass --suffix, taking it from what Dan says …
- Very specific: line 50
Prefer --suffix to --folder: with --suffix the date still comes from Plaud.
- Very specific: line 61
When Dan names course readings the class worked from (a textbook chapter, say), write them to materials.md: their text and code from the …
- Distinctive: line 69
Don't commit or push.
- Very specific: line 93
Follow references/init.md.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Class Notes
Overview
A course repository holds what students see and edit: prompt-notes.md (the prompt and
nothing else: every word is sent), README-prompt.md (how it works and how to change it)
and one folder per class session. Everything else lives here, in one script — call it
through python3:
S=<this skill's base directory>/scripts/class_notes.py # e.g. ~/.claude/skills/class-notes/…
python3 $S fetch <share link> # Plaud -> session folder
python3 $S generate # prompt x model -> notes
python3 $S payload --only <folder> # the exact message, for any other tool
python3 $S tidy --check # notes whose Markdown won't render properlyRun it from the course repo (or pass --repo). <command> --help lists every option.
Session folder
| File | Written by |
plaud.md | fetch: the share link, as <https://web.plaud.ai/s/…> |
transcript-plaud.md | fetch: Plaud's polished transcript |
notes-plaud.md | fetch: Plaud's own AI note |
history.txt / history.R | Dan, by hand (optional): shell or R command history |
terminal.txt / *console*.txt | Dan, by hand (optional): terminal or R console capture |
materials.md | by hand (optional): the course readings the session used, sent as <course-materials> |
notes-class-<variant>--<model>.md | generate: one per prompt variant × the model that actually ran |
Add a session from a share link
- Go to the course repo root (
git rev-parse --show-toplevel). Noprompt-notes.mdthere means the course isn't set up: offer Set up a course. python3 $S fetch <url> [--suffix <lecture|lab|…>].- The folder is
<session parent>/<the lecture's local date>[-<suffix>]. The date comes from Plaud's start time, not from today. - Follow the course's existing folder names: if they carry suffixes (
-lecture,-lab), always pass--suffix, taking it from what Dan says ("the lab"). - The session type comes from Dan, never from Plaud. Plaud's auto-generated title almost always says "Lecture", whether the recording is a lecture, a lab, office hours or anything else around the course. A title that disagrees with what Dan said is not a conflict: don't flag it or ask about it.
- Prefer
--suffixto--folder: with--suffixthe date still comes from Plaud. Use--folder <name or path>only when Dan names a folder outright. - An existing folder without
plaud.md(Dan often creates it in class, with the logs) is reused. - It stops without writing when the link matches no single recording, when the folder holds a different share link, or when that date already has suffixed folders. Relay the message and ask Dan for a suffix. Never choose a recording yourself: the Plaud account also holds recordings that are not classes.
- Exit code 2 means Plaud hasn't finished processing. Tell Dan and stop. To finish
later, run
python3 $S fetch --folder <that folder>: it reads the link fromplaud.md, so the original flags aren't needed.
- The folder is
- When Dan names course readings the class worked from (a textbook chapter, say), write
them to
materials.md: their text and code from the source, each heading linked to its published section. The model uses them only if the course prompt describes<course-materials>. python3 $S generate --only <folder>in the background (main×opus, a few minutes). Add--promptor--modelonly when Dan asks.- Report each file written, and each notes file's name, line count and model. Suggest a
commit message such as
2026-09-17 lecture: transcript, Plaud notes, class notes. Don't commit or push.
Regenerate and compare
generate runs prompt main (prompt-notes.md) with model opus unless told otherwise.
--prompt and --model each replace that default and can be repeated; every
combination runs.
| Situation | Command |
| Sessions with no notes yet | generate |
| The prompt was edited | generate --force, or --force --only <folder> for one session |
| A log was added to a session later | generate --force --only <folder> |
A variant prompt-notes-<name>.md | generate --prompt <name>; --prompt all for every variant |
| Other models too | --model opus --model sonnet. Non-Claude names go to the local backend, a placeholder until the DGX Spark is reachable |
| Check first | --dry-run |
| Notes render as one run-on block | tidy --check lists them; tidy fixes them. fetch and generate already tidy what they write |
A plain run never overwrites: it lists stale notes (older prompt text, or fewer inputs
than the folder now holds) and suggests --force. Notes from an older model stay beside
the new ones, because the filename carries the model that ran.
Set up a course
Follow references/init.md. It writes prompt-notes.md and
README-prompt.md from the boilerplate in templates/, and adds the templates/Makefile
targets.
Common mistakes
- Pulling the transcript through the Plaud MCP and writing it out yourself. Use
fetch: it reproduces the web export byte for byte, and retyping is slow and lossy. - Naming the folder after today. A recording processed days later belongs to the
lecture's date, which
fetchreads from Plaud. - Adding
--refetchcasually. It replaces an existing transcript and Plaud note, which Dan may have edited (for example, to remove a name). Use it only when asked. generate --forcewithout--onlyfor one new session. That rebuilds every session of the term.
References
- references/plaud.md: how
fetchresolves a link, the formats, failure modes, and checking after a Plaud CLI upgrade. - references/init.md: setting up a course repository.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

