Source references
Every academic claim uwwoe makes carries a source_reference. This
page is about how to read those references, what they guarantee, and
when to click through.
What a source reference is
A source_reference points to a specific excerpt of the public Kuali
catalog that the claim was derived from. Each carries:
- A
source_reference_id— a stable, opaque identifier. - A
kind— for examplecourse_prerequisite_text,credential_requirement_rule,antirequisite_relation,cross_listing_record. - The raw catalog text the claim came from.
- A timestamp of when the catalog excerpt was captured.
- A catalog version so you can correlate against your plan’s
catalog_version_id.
Where you’ll see them
Source references show up:
- Next to every course detail view — the prerequisite text shown in uwwoe is the same text shown in Kuali at the snapshot time.
- Inside every explanation tree node — the leaf condition links to the catalog excerpt that defines it.
- Inside every Advisory missing-option entry — the missing course is attached to its own source reference, not pooled across the parent requirement.
- Inside every conflict reason — the antirequisite rule or duplicate-credit policy that fired.
- In the response envelope’s
source_referencesarray — every API response carries the full set of referenced ids so the frontend can render click-throughs consistently.
How to fetch them programmatically
GET /api/v1/source-references/{source_reference_id} returns the full
record for one reference. See Catalog API.
When to click through
Click through when:
- An Advisory answer surprises you. Verify the source text matches Kuali on the catalog’s website.
- A
conflictfires that you don’t agree with. The source reference will show you the exact antirequisite or cross-listing rule. - An
unknownreports an unresolved fragment. The source reference will show you the raw text the parser could not turn into structured logic.
What source references do not guarantee
- They do not guarantee Quest’s view matches the catalog. Program overrides, transfer credit, advisor-approved substitutions live in Quest and never make it into the Kuali catalog. See Advisory only.
- They do not guarantee the catalog itself is current. The index is rebuilt out-of-band — see Scope and coverage.
- They do not guarantee the parser is right. If the parser misinterprets a requirement, the source reference will still point at the correct catalog excerpt; the bug is in the parsing, not in the reference.
Unparsed requirements
When the parser cannot turn a catalog fragment into structured logic, it
preserves the fragment as an UnparsedRequirement record — first-class
in the data model per ADR 0005.
UnparsedRequirement always carries a source reference. The Advisory
status for the parent requirement becomes unknown with an
unknown_reason pointing at the unparsed fragment. Click through to
see what the catalog actually says; in many cases the right next step is
“ask the department” or “check Quest”.
Manual patches
In rare cases the parser is intentionally overridden by a manual
parser patch under data/patches/. Patches are auditable, scoped by
catalog slug, and never mutate raw snapshots — see
ADR 0008. The
patched record still carries a source reference (pointing at the same
catalog excerpt the patch corrects), plus a patch-record link explaining
the override.