Research & evidence system
Every durable claim in MBZoo traces to a registered record:
REPO-NNN/STD-NNN/TECH-NNN— inspected sourcesAN-NNN— analyses (facts vs interpretation)EXP-NNN— reproducible experiments (commands, environment, measurements)ADR-NNNN— architecture decisions (readable decision body; investigation in the Addendum; supersede, never rewrite)TASK-NNN/Q-NNN— tracked work and open questions
The system is machine-validated: bun run research:validate checks IDs,
required metadata and cross-references; bun run research:indexes generates
the indexes (drift-checked in CI).
See research/ in
the repository, and research/AGENTS.md for the operational rules.
Specimens
The schema tells you what a backup can contain; only a real file tells you what one does. So a parser written from Moodle source is not finished until it has been run against a real backup, and specimens come from four places:
The last one is worth spelling out, because it costs about ten minutes:
Then build the course with Moodle's own APIs from a CLI script and back it up
through backup_controller, setting the users plan setting either way. Two
things that will bite otherwise: a CLI script has no session, so
add_moduleinfo() needs \core\session\manager::set_user(get_admin())
first; and a failed add_moduleinfo() leaves an open transaction that rolls
back everything created after it in the same request.
Specimens are recorded in fixtures/manifest.yaml with provenance and
checksums, and never committed — real institution or personal backups do
not belong in this repository, and a regenerable file is not fixture material.
This practice has already earned its keep. Five parsers built from the schema passed every synthetic test; the first real lesson tripped a bug in all of them, where a jump target whose page id was 1 or 2 was being read as a Moodle constant that belongs to a different field entirely.
Machine-readable copies of this site (for agents):
llms.txt (index) and
llms-full.txt
(every page). Each HTML page also has a sibling .md file and a Copy
Markdown control.