Session

plan/slp-session

Entry point of a study session. Validates the sessions recorded since the last one, surveys every topic, asks what you want to do today and hands off to the right skill. It also ends a session and marks a unit done.

usage
/slp-session
output
http-basics: the 24/09 practice session was closed by the hook at 19:30;
the last change was your attempt at 18:00. Fixed. Wiki updated: idempotency.

http-basics   01 · 1 attempt pending · 3 cards due · 1 unsure card
01 — methods and status codes
- [x] cards: 6, 2 due → 3 cards tab
- [ ] exercise → slp-exercises        ← next
- [ ] exam → slp-exam
# what do you want to do today?
triggers
"let's start", "what do I study today", "what's pending", "I'm done for today", "I finished chapter X"
reads
progress/sessions.jsonl, the files changed in each session, topic.json, status.md, log.md, pending attempts, cards/
writes
end and correct lines in sessions.jsonl, the ## Reading table of log.md, status.md when a unit is done, the wiki from notes you changed, and whatever you accept in step 3

Steps

  1. validate the recorded sessions
  2. survey, without asking
  3. complete topic.json or add a teacher persona, if needed
  4. ask what to do today
  5. hand off

Validate

The app records sessions on its own: any activity in a topic opens one, 30 idle minutes close it, and the statusline has a start/stop control. uv run slp sessions closes idle sessions and prints the open ones.

For each closed session not yet validated, the real end is the latest file changed or activity logged before the next session. It appends a correct line with that end and the files produced. The recorded end gets fixed when it is 30+ minutes after the real one, a file changed after it, or it lists no outputs while files changed. Notes you changed feed the wiki: the concepts they cover get upserted and the session is added to their studied. Open sessions are left alone.

Format: progress/.

Survey

pending attempts
attempts/<date>.<ext> without <date>.feedback.md. A draft.json is not pending
due cards
per topic, by the Leitner rule
unsure cards
the ones you flagged in the cards tab
finished units
with something missing: the checklist below
quiz due
the last one is 30+ days old, or 2+ units were finished since
incomplete topic.json
empty goals or reason
no teacher persona
and topic.json has no "teacher": false

Hand-offs

option goes to
read on my own nothing: the app records the reading as you take notes
summarize material slp-summarize
get taught something slp-teach
make flashcards from my notes slp-cards
study my cards the cards tab
go over my unsure cards itself: teaches each flagged card, then clears the flag
do an applied exercise slp-exercises
sit an exam an unsat exam for the unit in the app, otherwise slp-exam
check my level slp-quiz
grade a pending attempt slp-grade

End of a unit

When you say a unit is finished, it adds a ## Reading row to log.md, moves status.md to the next unit and shows the unit's checklist, in this order, with the first unchecked item as next:

item done when otherwise
cards a card has a note under the unit's note slp-cards
exercise an exercise for the unit has an attempt slp-exercises, or submit it, or slp-grade
exam an exam for the unit has a graded attempt slp-exam, or sit it, or slp-grade

A quiz due goes on one extra line: quiz: last one 34 days ago → slp-quiz.

Markdown formats

The documentation is also available in llms.txt formats:

  • llms.txt lists every documentation page.
  • llms-full.txt contains the complete documentation in one file and may exceed some context windows.

Append .md to any documentation URL to retrieve that page as Markdown. For example, this page is available at https://selflearningplatform.github.io/docs/slp-session.md. You can also copy the current page as Markdown by pressing Cmd+C or Ctrl+C.