template-authoring — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited template-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 template work, load the authoritative guides:
guide_get("templates/principles")
guide_get("templates/rules")Load additional guides as needed:
guide_get("templates/oet-syntax") — OET authoring syntaxguide_get("templates/oet-idioms-cheatsheet") — common OET patternsSearch for existing templates first:
ckm_template_search("<use-case>")If creating a new template, search for archetypes to include:
ckm_archetype_search("<concept>")Templates target particular clinical workflows. Define the use-case clearly:
Templates are rooted in a COMPOSITION archetype. Nest entry archetypes (OBSERVATION, EVALUATION, INSTRUCTION, ACTION) and CLUSTER archetypes within it.
Use type_specification_get to verify COMPOSITION structure when needed.
Templates constrain archetypes — they NEVER expand:
min=1 on optional fieldsmax=0 to hide fieldsUse the CGEM framework to guide how clinical data splits across templates:
| Category | Description | Template Scope |
|---|---|---|
| Global Background | Persistent patient data (allergies, diagnoses, demographics) | Persistent compositions |
| Contextual Situation | Episodic context (reason for encounter, admission details) | Episode-level compositions |
| Event Assessment | Point-in-time observations and evaluations | Event compositions |
| Managed Response | Orders, plans, actions taken | Action/instruction compositions |
terminology_resolve to verify terminology bindings inherited from archetypes| Format | Purpose |
|---|---|
| OET | Authoring format — human-editable XML for template design |
| OPT | Operational Template — flattened XML for runtime deployment |
| ADL-Designer `.t.json` | ADL-Designer's differential template JSON (tool-generated) |
| Web Template | Flattened JSON representation for modern UI development |
For when each format is hand-authorable vs tool-generated and what checksums each carries, load guide_get("templates/serialization-formats"). Reference syntax guides:
guide_get("templates/oet-syntax")
guide_get("templates/oet-idioms-cheatsheet")Produce a real, slot-correct OET — not just a design sketch. (/template-from-form produces the sketch; this skill turns a confirmed design into the file.) Following templates/oet-syntax:
<template> with a root COMPOSITION archetype reference and a fresh <id> (see UID note below).<Content> entry per included archetype, nested to mirror the COMPOSITION → SECTION → ENTRY → CLUSTER structure.<Rule path="…"> elements for each narrowing constraint (min/max, limitToList, unit hardening, hide_on_form, label overrides) — respecting the narrowing principle (Step 5).<Context> if the design needs composition context (e.g. /context/setting fixed to a code).There is no automated OET/OPT validator available, so validate manually against the loaded templates/oet-syntax guide and the Step 9 checklist; state any constraint you could not confirm rather than asserting validity.
Run through the quality checklist:
guide_get("templates/checklist")Verify:
Generate valid OET files. Use the Write tool to create .oet files in the appropriate project location.
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; a missing/stale checksum is advisory and never blocks authoring the OET.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.