demographic-modeling — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited demographic-modeling (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The RM detail in the steps below is a working summary. Thespecs/rm-demographicguide loaded in Step 1 is authoritative — if they disagree, follow the guide (or confirm againsttype_specification_get).
When guides conflict, apply this priority (highest first):
Before any demographic modeling work, load the authoritative guides:
guide_get("specs/rm-demographic")
guide_get("archetypes/principles")Load additional guides as needed:
guide_get("specs/rm-ehr") — for EHR/demographic separation context and cross-referencing patternsBefore designing, gather requirements:
Before designing new demographic archetypes, ALWAYS search CKM first:
ckm_archetype_search("person")
ckm_archetype_search("organisation")
ckm_archetype_search("party identity")Reuse-first principle: If a suitable demographic archetype exists, use it. Only create new archetypes when no existing archetype covers the concept. If a close match exists, consider specialization instead.
Use ckm_archetype_get to retrieve and review candidate archetypes in full before deciding. For a deeper reuse survey across varied phrasings (demographic concepts are easy to phrase several ways), dispatch the ckm-scout agent — it runs parallel searches and returns a ranked reuse/specialize/new recommendation without filling the main context with raw hits.
Choose the correct ACTOR subtype for each entity:
| ACTOR Subtype | Purpose | Examples |
|---|---|---|
| PERSON | Individual human beings | Patient, clinician, next of kin |
| ORGANISATION | Legal or administrative entities | Hospital, clinic, insurer |
| GROUP | Informal or functional collections | Care team, household |
| AGENT | Non-human actors | Software agent, device |
Use type_specification_get to verify the RM structure of ACTOR and its subtypes when uncertain.
ROLE represents a party acting in a specific capacity:
performertime_validity to express when the role is activecapabilities to describe what the role is permitted to doPARTY_IDENTITY holds names and designations for a party:
purpose (e.g., legal name, alias, trading name, maiden name)time_validity to capture historical namesState-issued and system-assigned identifiers (e.g., NHS number, passport number, employee ID) belong in PARTY.details, NOT in PARTY_IDENTITY. PARTY_IDENTITY is for names only.
Use type_specification_get("PARTY_IDENTITY") to confirm the structure before authoring.
purpose (e.g., home, work, billing)time_validitysource → targetrelationshipsreverse_relationships — by reference only, not by valuetime_validity to express active periods for the relationshipdetails archetype to carry relationship-specific data (e.g., next-of-kin type, guardian authority)When producing EHR Extracts, relationships that reference parties outside the extract boundary must be serialised safely. Avoid assumptions that all referenced parties are included in the same extract.
openEHR supports three levels of identification in the EHR for privacy:
Choose the level appropriate for the deployment context and applicable data-protection regulations.
Cross-referencing between the EHR and the demographic service is mediated by an EHR Index (or Master Patient Index). The EHR does not directly embed demographic records.
Certain demographic-adjacent data is legitimately recorded in the EHR as clinical observations:
This data lives in the EHR by clinical necessity and is distinct from the authoritative demographic record in the Party service.
Ensure that any demographic archetype design accounts for which fields are expected to change over time and how version history will be navigated.
Before finalizing the demographic model, verify:
performer reference and time_validity~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.