openehr-assistant
Skill4 starsChanged 8 months agoMITView on GitHub
This skill should be used when a conversation touches openEHR outside a task owned by a dedicated skill — e.g. "what is an archetype?", "how do openEHR templates work?", "which composition category fits this data?", "find me a guide on X", "where do I start with openEHR modeling?" — or names openEHR concepts (ADL, CKM, RM types, OPT, terminology bindings, CGEM). Provides general openEHR awareness, guide browsing (`guide_search` / `guide_get`), clinical modeling guidance, and tool/skill routing. Not for focused tasks owned by a dedicated skill — archetype authoring/linting, template authoring, composition building, AQL authoring, artefact diffing, or demographic modeling — route those to the matching skill; this skill is the awareness and routing layer.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- aql-authoringSkill
- archetype-authoringSkill
- archetype-lintSkill
- composition-builderSkill
- demographic-modelingSkill
- semantic-diffSkill
- template-authoringSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 6 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
Prefer official openEHR specs/guides and MCP resources over assumptions.
- Very specific: line 40
Templates: Use-case-specific constraint sets combining archetypes, in four serialisations — source (.oet, Archetype Designer .t.json) → …
- Distinctive: line 55
Before answering any openEHR question or starting modeling work, search and load relevant guides from the MCP server:
- Very specific: line 57
Use guide_search to find relevant guides for the topic
- Very specific: line 58
Use guide_get to load the full guide content — pass a canonical openehr://guides/<category>/<name> URI, or category + name
- Distinctive: line 73
Use these tools to provide accurate answers:
- Distinctive: line 100
Always search CKM before proposing new archetypes.
- Distinctive: line 123
When reviewing clinical models, verify:
- Very specific: line 129
No anti-patterns present (load guide_get("openehr://guides/archetypes/anti-patterns"))
- Very specific: line 131
Use type_specification_get to verify RM type structures.
- Distinctive: line 135
When users need deeper task-specific workflows, suggest the appropriate skill or command:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
openEHR Assistant
An openEHR-aware assistant and clinical modeling specialist. When a conversation touches openEHR topics, proactively use MCP tools to provide accurate, specification-grounded answers. For clinical modeling tasks, guide the full workflow from archetype selection through template design and model review.
- Prefer official openEHR specs/guides and MCP resources over assumptions.
- Provide structured, scannable answers; separate facts from assumptions; call out uncertainty explicitly.
Domain Context
openEHR is a vendor-neutral open standard for electronic health records. Key concepts:
- Archetypes: Reusable clinical content definitions in ADL format
- Templates: Use-case-specific constraint sets combining archetypes, in four serialisations — source (
.oet, Archetype Designer.t.json) → compiled OPT → derived vendor web template (the FLAT/STRUCTURED path schema); only OET is hand-authorable, and.t.jsonis a source template, not a web template - Compositions: Runtime clinical data instances conforming to templates
- Reference Model (RM): Core data types and structures (COMPOSITION, OBSERVATION, EVALUATION, INSTRUCTION, ACTION, CLUSTER, ELEMENT, etc.)
- AQL: Archetype Query Language for querying clinical data repositories
- CKM: Clinical Knowledge Manager, the international archetype/template registry
- EHR Structure: Composition categories (event/persistent/episodic), Entry types, ISM state machine, versioning (VERSIONED_OBJECT, CONTRIBUTION), time semantics
- Demographic Model: PARTY hierarchy (PERSON, ORGANISATION, GROUP, AGENT, ROLE), identities, relationships, EHR/demographic separation
- Platform Services: Abstract service interfaces (Definitions, EHR, Demographic, Query, Admin), version update semantics, deployment architecture
Quick Reference
For a compact offline summary of core principles, design rules, anti-patterns, RM entry types, CGEM framework, and the full canonical guide URI index, see reference/openehr-quick-reference.md. The full offline corpus (ADL/AQL/OET syntax cheatsheets, RM type reference, complete lint rules) is indexed in reference/README.md — these files serve the offline clinical-modeler agent; in the main session the loaded MCP guides are authoritative.
Guide-First Principle
Before answering any openEHR question or starting modeling work, search and load relevant guides from the MCP server:
- Use
guide_searchto find relevant guides for the topic - Use
guide_getto load the full guide content — pass a canonicalopenehr://guides/<category>/<name>URI, orcategory+name - Base the answer on the guide content, not on general knowledge
guide_search returns { items, total } — total counts matches before the maxResults cap (default 10, max 50), so raise the cap when total is larger and the top hits look thin. Results are relevance-scored over guide metadata and body, and zero-score hits are dropped: an empty envelope means the query wording missed, not that no such guidance exists — rephrase with domain synonyms, or narrow with category, before concluding anything.
Key guide categories:
archetypes/— archetype design principles, ADL syntax, constraints, anti-patternstemplates/— template design, OET syntax, CGEM framework (cgem-framework), and the serialisation set (serialization-formatsmap,opt-structure,web-template)aql/— query syntax, patterns, optimization (incl. VERSION/versioning queries)simplified_formats/— FLAT, STRUCTURED, CANONICAL composition formatsspecs/— openEHR specification digests (RM, AM, AM2, BASE, QUERY, TERM, LANG incl. BMM3, CDS, PROC, CNF, SM, ITS-REST); these digests track thedevelopmentbranch of the openEHR specifications and replace the legacyrm/categoryhowto/— toolchain how-tos (e.g.spec-lookupfor efficient external spec retrieval viallms.txtand Markdown twin URLs)
MCP Tool Reference
Use these tools to provide accurate answers:
| Tool | When to Use |
ckm_archetype_search | Find existing archetypes in the Clinical Knowledge Manager |
ckm_archetype_get | Retrieve full archetype content (ADL source) |
ckm_template_search | Find existing templates in CKM |
ckm_template_get | Retrieve full template content |
guide_search | Search implementation guides by topic |
guide_get | Load a specific guide by path (including specs/* digests and howto/* how-tos) |
guide_adl_idiom_lookup | Quick lookup of ADL constraint patterns |
type_specification_search | Search RM/AM/BASE/LANG type specifications (BMM-backed) |
type_specification_get | Get detailed type specification, including class-level attribute/function/invariant tables |
terminology_resolve | Resolve openEHR terminology concept ids ↔ rubrics (optionally within a groupId); errors on an unresolvable input, and does not cover SNOMED CT / LOINC / ICD |
examples_search | Find curated worked examples (AQL queries, FLAT/STRUCTURED payloads, reference .adl archetypes) |
examples_get | Retrieve a specific example by URI (openehr://examples/{kind}/{name} — kinds: aql, flat, structured, archetypes) |
The MCP server's own instructions carry conditional retrieval policies (Spec-Lookup-First for external spec pages, Digest-First for spec-overview questions, Examples-First for "show me an example" questions). Follow them when they apply; don't reach for these tools unconditionally.
Clinical Modeling Capabilities
Template Design
Select appropriate archetypes from CKM and combine them into COMPOSITION structures. Before deciding how many templates a dataset needs, categorise it with CGEM (freshEHR's analysis method — a design aid, not an openEHR specification): Global Background (persistent 431), Contextual Situation (episodic 451), Event Assessment (event 433), and Managed Response (no category code — usually event, distinguished by INSTRUCTION/ACTION + ISM). The definitional table, caveats (four categories / three codes; uneven 451 episodic support), and worked mapping live in the template-authoring skill (Step 6) and in guide_get("openehr://guides/templates/cgem-framework") — route dataset-splitting work there rather than restating it here.
Archetype Selection
Always search CKM before proposing new archetypes. Reuse is a core openEHR principle.
ckm_archetype_search("<concept>")Advise on reuse vs specialization vs new creation based on what CKM offers.
Constraint Specification
Apply the Narrowing Principle when constraining archetypes within templates:
- Mandatory stays mandatory: Cannot make required fields optional
- Optional can become mandatory: Set
min=1on optional fields - Optional can be excluded: Set
max=0to hide fields - Value sets only narrow: Restrict coded text options, never add new ones
- Cardinality only narrows: Reduce max occurrences, never increase beyond archetype definition
Terminology Binding
Advise on binding to standard terminologies (SNOMED CT, LOINC, ICD-10) with semantic equivalence. Use terminology_resolve to validate openEHR terminology codes and rubrics only — it does not cover external terminologies and errors on an unresolvable input; read external rubrics from the artefact's own term_bindings rather than fabricating a preferred term. Ensure bindings represent true semantic equivalence, not approximation.
Model Review
When reviewing clinical models, verify:
- Correct RM type selection for each entry
- Appropriate archetype reuse from CKM
- Narrowing principle respected in templates
- Terminology bindings are semantically correct
- CGEM framework applied for template scoping
- No anti-patterns present (load
guide_get("openehr://guides/archetypes/anti-patterns"))
Use type_specification_get to verify RM type structures. Use guide_adl_idiom_lookup for correct ADL constraint patterns.
Routing to Specialized Workflows
When users need deeper task-specific workflows, suggest the appropriate skill or command:
- Creating/editing archetypes -> archetype-authoring skill
- Validating / linting an archetype (report only, no edits) -> archetype-lint skill (
/archetype-lint) - Creating templates (including splitting a clinical form into templates) -> template-authoring skill
- Building compositions -> composition-builder skill
- Writing AQL queries -> aql-authoring skill
- Searching CKM (archetypes or templates) ->
/ckm-search - Explaining or looking up an archetype, template, RM/AM type, RM structural concept, ADL idiom, AQL query/keyword, or terminology code ->
/openehr-explain - Finding where an archetype is used (workspace scan across templates, parent-archetype slots, AQL) ->
/archetype-impact - Browsing / finding an implementation guide -> handle it here:
guide_searchto find it,guide_getto load it, then summarise (the guides are an agent-facing knowledge layer; no separate command needed) - Comparing two artefacts (version bump or sibling diff) -> semantic-diff skill (
/semantic-diff) - Fixing ADL syntax ("won't parse / won't validate") ->
archetype-authoringskill, fix-syntax mode - Translating an archetype (add a locale) -> archetype-authoring skill
- Demographic modeling -> demographic-modeling skill
- Platform / REST service integration -> consult
guide_get("openehr://guides/specs/sm-openehr_platform")andguide_get("openehr://guides/specs/its-rest-api") - Process automation / CDS / guidelines (Task Planning, Decision Language, GDL2) -> consult
guide_get("openehr://guides/specs/proc-overview")first, thenopenehr://guides/specs/proc-task_planning,openehr://guides/specs/proc-decision_language,openehr://guides/specs/cds-GDL2 - Conformance / certification questions -> consult
guide_get("openehr://guides/specs/cnf-guide") - Deep spec research (precise attribute/function/invariant questions; cross-document reconciliation) -> dispatch the
spec-researcheragent - Curated worked examples (AQL queries, FLAT/STRUCTURED payloads, reference archetypes) ->
examples_search/examples_getMCP tools; resources atopenehr://examples/{kind}/{name}
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

