Aegis reads a regulatory clause, extracts the obligations inside it, and maps each one to the internal control it affects, citing the exact standard and clause. When nothing in your library covers it, it returns "no confident match" instead of guessing. Here is the grounding score that decides, the threshold below which it abstains, and the honest boundary on what the model is allowed to touch.
A bank carries hundreds of internal compliance standards. When MAS or IMDA revises a notice, an analyst has to read the new wording and hunt, by hand, through the standards library to work out what's covered, what's merely reworded, and what is genuinely new. It takes days, it's point-in-time, and the obligation with no matching control, the one that becomes a finding, is exactly the one a tired analyst skims past. And when teams reach for AI here, they do the one unforgivable thing. They ask a model "which control does this affect?" and paste whatever citation it returns into the gap analysis.
The obvious version is Ctrl-F across the standards, or a chat prompt that asks a model which control is impacted. Both fail in specific, knowable ways, and they fail silently, which is worse:
So the real job is more than search or generation. The system has to extract the obligation, ground it to a named concept, score that concept against the control library, and then cite or abstain. The threshold for abstention is written down, not felt.
This is the load-bearing decision of the whole system. Concept extraction, the grounding score, and the abstain gate are all computed in Python over a named concept ontology. Every match is explained by a concept a reviewer can name and overrule, not by an opaque embedding. The language model is downstream and read-only. It phrases the plain-language change summary about a mapping the scorer already cited, and only about that mapping. The model never decides which control is impacted, and it never produces a citation the scorer didn't already ground.
Inside the engine, the mapping is concept-overlap, not a black box. Each clause is tagged to one or more of 12 named concepts by surface-term match, and a standard "matches" only when it shares a concept with the clause. The grounding score and the abstain rule are explicit:
The keyword baseline runs alongside the grounded path on the same clause, so the system can show its work. Where a literal surface-term search of the library returns zero but the concept match cites a real standard, that's the AI win made explicit. Where the concept maps to something the library covers in none of its 40 standards, the score is zero by construction and the system abstains, because it cannot cite what isn't there.
Take clause 4.4 of a revised model-risk notice: "institutions must be able to explain the basis of individual decisions to affected customers in plain language." A keyword search for explain returns zero standards. Aegis tags it to the concept Explainability / Interpretability, scores it against the library, and grounds it to STD-015 "Model interpretability", a match Ctrl-F never finds. Then clause 7.1 introduces a regulatory-notification duty your library has no standard for. Rather than guess the nearest control, it abstains.
| Clause | Concept extracted | Keyword hits | Grounded match | Citation | Result |
|---|---|---|---|---|---|
| 4.4 | Explainability / Interpretability | 0 | score 1 · covered | STD-015 · "Model interpretability" | mapped |
| 3.1 | Governance & Accountability | 2 | score ≥1 · covered | STD-001 · STD-002 | mapped + cited |
| 7.1 | Regulatory Notification | 1 | score 0 · uncovered | no confident match | abstains (Gap) |
Where these come from, honestly. The standards library and the notice are synthetic, built to exercise the mechanism: a paraphrase the keyword baseline must miss, and an obligation with deliberately no coverage. So the figures prove the mechanism discriminates correctly. They don't prove it survives a specific real standards library. One of the 13 obligations is an AI-only win, where keyword search returns zero and the grounded match cites a real standard.
The dial every compliance lead actually buys on is how hard to abstain. The abstain rule here is strict. The score must reach 1 (at least one shared concept) and the concept must appear in the library, or it's a Gap. That threshold is the lever. Hold it at concept-overlap ≥ 1 and you abstain only on genuine non-coverage. Require ≥ 2 shared concepts and the system gets more conservative, abstaining on thin single-concept matches and pushing more obligations to a human, which trades recall for fewer speculative mappings. Aegis doesn't pretend a citation equals coverage. It produces a cited candidate mapping a human confirms, and the overlap threshold sets how much lands on their desk versus how much it declines to call.
Aegis is grounded retrieval plus concept-overlap scoring with a human review queue and an exportable audit trail. The core control is cite-or-abstain: no mapping ships without a grounded citation, and uncovered obligations are flagged rather than mapped. Every mapping carries its provenance, meaning the concept it matched on, the standard it cited, the score, and the analyst who confirmed it, and the whole register exports to CSV for the audit file.
The honest boundary. Unlike my finance demos, Aegis is not yet routed through the hash-chained AI Control Ledger. There is no immutable, tamper-evident chain over these mappings today. The export is an audit trail, not a cryptographic one. Wiring Aegis into the control-ledger overlay, so every confirmed mapping becomes a replayable, tamper-evident entry, is the roadmap. I state it as future work, not something that exists now.
I don't ask a model "which control does this touch?" and trust the citation. I draw the trust boundary first. Extraction, the grounding score, and the abstain gate live in code over a named ontology a reviewer can challenge, and the model sits strictly downstream, allowed only to phrase prose about a mapping the scorer already cited. Then I confront the hard parts out loud: the paraphrase keyword search misses, the citation a free LLM would invent, and the obligation with no control that must surface as a gap rather than a guess. Re-engineering a control to run on the whole library, and being honest about where grounded retrieval ends and an immutable ledger I haven't built yet begins, is the judgment I'd bring to leading an AI transformation.
The mapping above is real output from the engine over the synthetic library. The full interactive workspace runs as a working application: the standards graph, the extracted obligations, the cited mappings, and the abstained gap.