feat: describe structures by meaning rather than page layout - #134
Merged
Merged
Conversation
A structure's information is filed under nine fixed sections (study options, admission, careers, first-year advice, advice, inherent requirements, fees and scholarships, more information and contacts) with Coursemap's own headings, whatever ANU called them. Related records carry one of three meanings: the degrees a structure is offered in, a programme's options, and structures that cannot be combined. A structure that must be taken alongside becomes a Taken with group in the requirement tree. Anything merely mentioned on the page is no longer recorded. Readers skip retired section and relationship values in older content, the editor offers the fixed values as choices, and a submitted draft is refused if it strays outside them.
New rows must use the fixed section keys and relationship meanings. The constraints do not revalidate sealed older versions. A programme now offers a structure through its options or its requirement tree only.
A section that merges several ANU headings quotes each passage in turn, so its wording is checked one paragraph at a time instead of being flagged as missing from the page. A record link's code is accepted alongside its text, and a model that leaves out the unmodelled requirement list is read as having none.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
3 tasks
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follows #133. Structures are described by what their information means, not by how the ANU page lays it out. This is what made the Related list and the Information tab hard to read.
Select, and a submitted draft outside the vocabulary is refused with a plain message.Live results with the new prompt:
Model choice. On AACOM, the current
gemini-3.1-flash-litemapped the sections but returned a thin requirement tree (1 group, 4 conditions) and no options. I compared models on the same page:gemini-3.5-flash-litealso took FINM3006 in 14 s for $0.010 with all three fee rows. It is the recommended extraction model; switching is an admin setting, not part of this PR.Verification
pnpm verify(format, lint, types, 524 unit and component tests, production build, 8 access tests, whitespace)Deployment notes
010_structure_vocabulary.sqladdsNOT VALIDcheck constraints for section keys, relationship kinds and target kinds, so sealed older versions are left as they are and every new row is bound. It also narrowsprivate.programme_offers_structuretooption.