2.7 KiB
Course Repositories
Didactopus can ingest a checked-out course repository as a local source bundle.
Recommended default
Use one repository per course-derived source set.
That keeps:
- license scope clear
sources.yamlcourse-specific- attribution and compliance artifacts isolated
- Git history focused on one source set
- removal or relicensing easier if a source needs to be withdrawn
Recommended repository shape
didactopus-mit-ocw-6-050j/
didactopus-course.yaml
course/
course-home.md
syllabus.md
unit-sequence.md
sources.yaml
README.md
Manifest file
The root manifest is didactopus-course.yaml.
Example:
course_id: mit-ocw-information-entropy
display_name: MIT OCW Information and Entropy
source_dir: course
source_inventory: sources.yaml
license_family: CC BY-NC-SA 4.0
generated_pack_dir: ../../domain-packs/mit-ocw-information-entropy
generated_run_dir: ../../examples/ocw-information-entropy-run
generated_skill_dir: ../../skills/ocw-information-entropy-agent
How Didactopus uses it
Didactopus treats the repo as a normal local source directory. The manifest only resolves which paths to use.
Run:
python -m didactopus.ocw_information_entropy_demo \
--course-repo /path/to/didactopus-mit-ocw-6-050j
That command resolves:
- the source directory
- the source inventory
- the generated pack directory
- the generated run directory
- the generated skill directory
all relative to the checked-out repository.
If you want Didactopus to create the repository structure and copy the current source bundle into it, use:
python -m didactopus.ocw_information_entropy_demo \
--course-repo-target /path/to/new-course-repo
That bootstraps:
didactopus-course.yamlcourse/sources.yamlgenerated/pack/generated/run/generated/skill/
and then runs ingestion against that new course-repository directory.
Multi-course repositories
Do not use a multi-course repository as the default pattern.
If you later need one, treat it only as a container of isolated per-course subtrees:
ocw-collection/
courses/
course-a/
didactopus-course.yaml
course/
sources.yaml
course-b/
didactopus-course.yaml
course/
sources.yaml
Each course should still keep its own:
didactopus-course.yamlsources.yaml- source tree
- generated attribution/compliance outputs
MIT OCW example
The current in-repo reference example is: