archetype-authoring — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited archetype-authoring (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.
When guides conflict, apply this priority (highest first):
Before any archetype work, load the authoritative guides:
guide_get("archetypes/principles")
guide_get("archetypes/rules")
guide_get("archetypes/adl-syntax")Load additional guides as needed:
guide_get("archetypes/structural-constraints") — for cardinality, occurrences, existence rulesguide_get("archetypes/terminology") — for terminology binding patternsguide_get("archetypes/anti-patterns") — to avoid common mistakesguide_get("archetypes/formatting") — for ADL formatting conventionsBefore creating a new archetype, ALWAYS search CKM first:
ckm_archetype_search("<concept>")Reuse-first principle: If a suitable archetype exists, use it. Only create new archetypes when no existing archetype covers the concept. If a close match exists, consider specialization instead.
For deep reuse surveys (unfamiliar domain, or the first few hits look marginal), dispatch the ckm-scout agent instead of running searches inline. It runs 3 parallel phrasings, ranks candidates, and returns a reuse/specialize/new recommendation — keeping CKM search noise out of this skill's context.
For a small set of well-curated CKM archetypes — blood pressure, medication order, problem/diagnosis, encounter, procedure, anatomical location (CLUSTER), translation requirements (ADMIN_ENTRY) — try examples_search(kind="archetypes") when authoring or reviewing an archetype of the same type. These are native .adl files exposed as openehr://examples/archetypes/{name} and serve as concrete prior-art references for RM-type intent, terminology binding patterns, and structural idioms. Skip this step when the concept is outside the curated set.
When reuse means pulling a published archetype into the workspace (not just citing it), make it land as a wired-in file rather than a copy-paste note:
ckm_archetype_get("<id>").local/ directory) under its canonical openEHR-EHR-<TYPE>.<concept>.v<N>.adl filename.allow_archetype … include) so the reuse is actually wired in.A reused file keeps its published uid/checksums; do not alter them.
Each archetype represents exactly one clinical concept. When multiple independent ideas appear, split into separate archetypes connected via slots.
Choose the correct Reference Model entry type:
| RM Type | Purpose | Examples |
|---|---|---|
| OBSERVATION | Measured/observed data | Blood pressure, body weight, lab result |
| EVALUATION | Assessed/interpreted data | Diagnosis, risk assessment, problem |
| INSTRUCTION | Orders/requests | Medication order, procedure request |
| ACTION | Activities performed | Medication administration, procedure |
| ADMIN_ENTRY | Administrative data | Admission, discharge, transfer |
| CLUSTER | Reusable data groups | Address, anatomical location, device |
Use type_specification_get to verify RM type structure when uncertain.
Follow the pattern: openEHR-EHR-<RM_TYPE>.<concept>.v<VERSION>
Examples:
openEHR-EHR-OBSERVATION.blood_pressure.v2openEHR-EHR-CLUSTER.anatomical_location.v1Use guide_adl_idiom_lookup for specific ADL constraint patterns:
DV_ORDINAL for integer-only steps; `DV_SCALE` (RM ≥ 1.1.0) for non-integer steps (e.g. Borg CR10 0.5). See the DV_SCALE vs DV_ORDINAL idiom.terminology_resolve to verify terminology codesinclude all)uid — mint a random UUID (v4). If a shell is available, uuidgen (or python3 -c 'import uuid; print(uuid.uuid4())') works; otherwise generate the UUID directly (this skill has no Bash tool, so don't assume shell access).MD5-CAM-*, build_uid) — they are tool-computed by CKM/ADL tooling. If you edit a published archetype, its checksum simply becomes stale: note that for upstream recomputation rather than inventing a value. This is advisory, not a blocker — a missing/stale checksum never stops local authoring.When modifying existing archetypes:
When extending via specialization:
When reviewing an archetype for quality, publication, or CKM submission, run the full pipeline. Stages at a glance: intent & provenance → lint → remediate → review packet, then optional rationale prose. Quick provenance note (advisory): if the file mirrors a published CKM archetype, editing it locally diverges from canonical and stales its MD5-CAM checksum — prefer contributing upstream; never a blocker. For a quick lint with no remediation, use the archetype-lint skill (/archetype-lint).
To add or translate per-language text (ontology.term_definitions) for a target language, load [`references/translation.md`](references/translation.md) — it covers the three tab-sensitive insertion points and the at-code-parity verification gate. (Translations live in the ontology block in ADL 1.4, not a top-level terminology section.)
Generate valid ADL 1.4 files. Use the Write tool to create .adl files in the appropriate project location.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.