Business Rules - digitalspace/eagle-demi GitHub Wiki
Business rules
Rules the business has set for the Digital File Library (DFL) and the AI Classifier Tool (AICT). This page is a requirements catalogue, not a description of DEMI as it runs. Do not cite a rule here as evidence of how the code behaves.
What the code enforces
Only BR-04 has a counterpart in src/. It ships as the read[] ACL: a record is public only
when its read[] contains public, and chunk visibility is derived from the parent document at
query time. Architecture describes the mechanism and
ADR-004-Read-ACL-Authorization-Model the decision behind it.
Everything else on this page is unimplemented. Two fields exist but do not do what the rules
describe: orcsClassification (src/seed/transform.js:146) and legislation
(src/seed/transform.js:148) are copied verbatim from Eagle, not derived. DEMI has three access
tiers — privileged, scoped, public — not the five levels of BR-03.
1. Document lifecycle and admission
BR-01: Metadata verification hold
- Rule: All newly uploaded or migrated documents, from
EPIC.submitor an automated EDRMS pipeline, must immediately enter a metadata verification hold state. - Constraint: During the hold the file is staged in object storage but is not admitted as an official DFL file-of-record. It stays invisible and unsearchable except to the uploader or a SuperUser.
- Admission trigger: A document is admitted, becoming a file-of-record, only when an authorized operator or SuperUser reviews, corrects and confirms its metadata.
BR-02: Coarse-grain vein tagging
- Rule: On upload, every file must receive a coarse, reversible two-letter "vein" classification
handle appended as a filename suffix, for example
<original name> -[VV] -P.json, where-Pmeans pending verification. - Vein spectrum:
PT— project technical detail (bulk studies, baseline reports, plans)CP— certificate proper (the legally issued certificate itself)PE— public engagement (public comments, PCP advertisements)AT— Act transition (requests, cross-Act notifications)OA— official EA artifacts (orders, amendments, evaluations)CM— communication (general correspondence, letters)
2. Security and visibility gating
BR-03: Sensitivity ladder (0–4)
Document security and authorization levels must align with a 0–4 sensitivity scale:
| Level | Classification | Audience |
|---|---|---|
0 |
Uploader only | The uploading account or service alone |
1 |
Project team | The designated EAO project team list |
2 |
EAO-wide | All internal EAO staff (IDIR holders) |
3 |
TAC / working group | Technical Advisory Committee and working groups |
4 |
Government-wide | All BC government staff with a valid IDIR |
BR-04: Public visibility double-gating
- Rule: For a DFL document to be searchable or viewable by the public it must pass two checks: the document itself is published, and its parent project is published.
- Enforcement: The document's
read[]must containpublic, and a project visibility change cascades into its documents'read[]by intersection, so a document cannot out-rank its parent. Publishing a document under an unpublished project is refused with 409. Every search a caller makes carries that caller'sread[]predicate, evaluated by Azure AI Search alongside the match. Chunks are gated by their parent document, resolved at query time.
3. Ingestion and classification (AICT heuristics)
BR-05: The grazing pre-pass (volume exclusion)
- Rule: High-volume technical project documentation — baseline studies, raw appendices, environmental chapters, about 76% of files — must be identified and set aside in a preliminary "grazing" pre-pass.
- Action: These documents are flagged
Project Content = YESand skip deep taxonomy and keyword-frequency analysis. - Objective: Preserve throughput and prevent resource exhaustion during bulk ingestion.
BR-06: Deterministic document type to ORCS mapping
- Rule: Records-management fields must use a deterministic mapping so the result is auditable
and explainable:
- AICT uses keyword score thresholds to suggest a document type — "environmental assessment
certificate" suggests
EAC. - The confirmed document type maps one-to-one to an official ORCS classification code, defined by GIMO.
- The ORCS code dictates the retention class and disposal schedule.
- AICT uses keyword score thresholds to suggest a document type — "environmental assessment
certificate" suggests
- Mapping:
EAC(certificate) → ORCS15400-30→ permanent archivingAR(assessment report) → ORCS15400-20→ 7 years semi-active retention, then archiveProcess Order→ ORCS15400-40→ active life of project
BR-07: AI explainability mandate
- Rule: The AICT interface must present the rule, score weights or keyword hits — for example "matched term 'environmental assessment certificate' 4 times" — alongside any suggestion.
- Consent rule: Autonomous final assignment of ORCS codes is forbidden. A human supervisor must confirm before records-management tags are committed.
4. Multi-Act compliance and timelines
BR-08: Operative Act recovery
- Rule: The system must evaluate a document's creation or publication date against regulatory transition milestones to assign the correct operative Act — the 1996, 2002 or 2018 EAA.
- Transition threshold: Documents on or after the Process Order milestone —
2021-04-16for Cariboo Gold — default to the 2018 Act; earlier documents operate under the 2002 Act.
BR-09: Project-level Act transition assembly
- Rule: An individual document stays tagged under a single operative Act.
- Action: Where a project spans multiple Acts, detected through transition documents such as a "Section 10 Order" paired with a "Section 19 Order", AICT compiles a project-level transition timeline block rather than duplicating Act fields on every document.
Related
EPIC-Search-Business-Rules lists where DEMI's rules differ from EAO's other search product, EPIC.search.