Skip to content

Repository files navigation

my-syllabus

CI codecov Python License: MIT

The learn-loop's decompose step. Point it at a course program or syllabus and it produces an ordered list of masterable topics — the study sequence my-professor quizzes on and myprofessor due ranks.

It reads the program via the MyThingsLab mythings.corpus seam and emits mythings.mastery.Topics, so the whole study cluster shares one notion of "a topic".

Usage

# Decompose a program into a machine-readable topic list (TOML)
mysyllabus decompose --program ~/Desktop/ul-course-program.pdf --engine claude \
  --out .mythings/topics.toml

# Or a human-readable outline grouped by module
mysyllabus decompose --program ~/Desktop/ul-course-program.pdf --engine claude --format md

--engine noop (default) makes zero Engine calls and returns no topics (a soft failure, exit 1) — use --engine claude for a real decomposition. --program is repeatable and accepts files or directories (.pdf, .md, .txt, .rst, .tex); --cache memoises PDF text extraction; --max-topics caps the list.

How it works

One Engine call: "decompose this program into an ordered list of masterable topics, prerequisites first, using only what the program names." The program is read whole (not shortlisted — decomposition needs the entire document). The reply is parsed deterministically into order-preserving, slug-deduped Topics; topics are never invented beyond what the program states. A decompose writes only to stdout or a local --out file — never a repo PR. (Publishing the topic list to the shared study repo is a deliberate follow-up.)

The TOML output is the durable, human-editable topic list the rest of the cluster reads the study set from; the markdown output is for reading.

Install (development)

python -m venv .venv && source .venv/bin/activate
pip install -e ../my-things-core -e ".[dev]"
pytest

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages