The exporter holds an explicit whitelist of the six kinds of content it knows how to write, and there is no code path that can emit student identities, interview sessions, earned grades, graded attempts or grade lock-ins. The finished file is checked again for that content before it is handed back. A reviewer can verify the guarantee by reading one constant rather than auditing every query — and your source database is opened read-only throughout.
What travels
| Included | Why |
|---|---|
| Questions and follow-ups | The content itself |
| Glossary | So a recipient inherits the course vocabulary that exempts the terms in those questions |
| Comprehension Load scores | Tagged with the scorer version that produced them |
| Instructor notes (optional) | How a question is meant to be interpreted and used |
| Sets (optional) | Flattened — a set carries its class name as plain text and nothing else |
Semester is deliberately dropped. A question is meant to outlive the term it was written for, and the semester link only records when it happened to be added; carrying it forward would make a reusable question look dated.
Notes travel by default, because a bank without them is a list of prompts with the teaching
removed. This is safe: authoring notes are written only when a question is
authored. Notes taken during an interview are grading data and live in a records
area the exporter cannot reach. Withhold them anyway with --no-notes.
Exporting
Click Export Bank in the Question Bank panel. The dialog lets you export everything or only selected sets, attribute the bank to an author, and hold back authoring notes. A command-line equivalent exists for batch work and is covered in the developer reference.
Importing
Open Import Bank and choose a bank file. You will see a summary of what it contains and where it came from before anything is written.
Two instructors both start at Qv2-00001. Their questions are different; their
uids are not. Keeping an incoming uid would either collide with a local row or — far worse —
silently resolve to the wrong question inside a historical session record.
Nothing is lost. The original identifier is preserved alongside the originating bank's id, so provenance survives the rename and a merge tool built later has the identifiers it needs.
Provenance
Every import is recorded in imported_banks: who authored the bank, its description,
the source filename, the format and scorer versions, when it was imported, and counts of what came
in and what was skipped. You can always answer “where did this question come from?”
Scores from another machine
Comprehension Load scores arrive tagged with the scorer version that produced them. If the
sending machine ran a different tier — wordfreq installed or not — those scores are
not on your scale, and they render as stale rather than being compared to yours. Rescore the
imported rows to bring them onto your scale. See
Comprehension Load.