Exhibit C · Governed AI
public · live evidence pack
Since 9 March 2026, a RICS member whose AI use materially affects surveying work has to be able to show four things: which AI systems the firm uses, that a named qualified surveyor wrote a decision on how reliable the output was, that the client was told in the Terms of Engagement, and that the vendor was diligenced.[5] That is a records problem, and I could not find a single tool built for it.
Oversight keeps those records as plain files in a git repository, so authorship, timestamps and append-only history come free: the audit trail is the repo. check exits non-zero and names the obligation each failure would breach. pack renders the regulator-ready evidence pack and refuses to run while any check fails, so a pack existing is itself evidence the records were coherent when it was made.
The repository is the database. Each path evidences an obligation.Hover any path
your-compliance-repo/
├── config.yamlfirm, staleness thresholds
├── systems/*.yamlGovernance. Every AI system, each with a named surveyor
├── rdrs/<engagement>/Documentation. The reliability decision, bound to the SHA-256 of the output
├── disclosures/*.mdClient transparency. ToE wording, generated from the register
├── dd/*.mdRisk management. Vendor procurement diligence
└── incidents/*.mdRisk, lifecycle. Outputs rejected and errors caught
How it operates: capture, store, enforceHover any stage
Capture
initfirm config
→
add-systemthe AI register
→
rdrbinds SHA-256 of the output
→
discloseToE text
→
dd · incidents
Store
Plain files in a git repository: systems/ · rdrs/ · disclosures/ · dd/ · incidents/the commit log is the evidence timeline
Enforce
checkexits non-zero, names the obligation breached
→
packrefuses to render while any check fails
→
Regulator-ready record
The example firm registers Covenant as one of its AI systems, with a real reliability decision record for a real screening. One tool doing surveying work with AI, one tool governing AI to surveying standards.
PythonJinja2git as the databaseSHA-256 output binding
Read the full case→