Use inside a Salus medical vault to FILE a medical item into its structured place (skin photo → photo archive + capture note; lesion/symptom note; lab/PDF → 00-Sources) and auto-commit, OR to QUERY the vault for a health follow-up (grounded answer + flagged, non-diagnostic morphology read). Triggers on "file this photo / note / lab", "log this into the medical vault", "ask the medic", or any health follow-up while cwd = the medical vault. Organize & surface only — never diagnose (posture-A).
Install
npx skillscat add yotamleo-org/himmel/medic Install via the SkillsCat registry.
medic — FILE + QUERY for a Salus medical vault
This vault ORGANIZES and SURFACES medical facts; the operator + clinicians
interpret. Never diagnose. Every inferred / morphology statement is flagged
with the [inferred] token (the same token _CLAUDE.md + _skin-photo-archive.md
already use). See _CLAUDE.md for the full posture-A floor.
Run this skill with cwd = the medical vault so .claude/hooks/block-cloud-egress.sh
is in force (no cloud/web/push egress of PHI).
Verb 1 — FILE
Classify the incoming item, route it, then auto-commit (local only — never
push; the egress floor blocks it anyway).
Route A — skin photo
Input: one or more local image paths + an operator caption naming the region
(side/flank, chest, back, neck, forearm, hand, thigh, …) and optionally a date.
- Date = today (
YYYY-MM-DD) unless the caption gives one. This is the
filing date. - Idempotency (do this BEFORE copying): compute a content hash of the source
image and compare against every file already in_media/skin/<date>/. If any
existing file has identical bytes, skip the copy AND skip the row for that
image (report "already filed as "). This is required — the-NNindex
below always allocates a fresh name, so name-collision alone never dedups. - Copy to
_media/skin/<date>/<region>-<date>-NN.<ext>whereNNis the
next free 2-digit index for that region+date (01,02, …).mkdir -pthe
dated dir first. - Archive row: append one row to
_skin-photo-archive.mdmatching its
existing table header exactly:| <date> | <region> | <state> | \/` | **** `[inferred]` | <visual note, not a diagnosis> |`state∈ the file'stag_vocab(active / active-worst / recovery /
good-baseline). If unknown, useactive (faint)and tag[inferred].thread∈ the file'stag_vocab(ad-eczema / hs / urticaria / folliculitis
/ acne / pih-mark / uncertain). Pick by morphology; flag[inferred].- The visual note is a morphology observation, not a diagnosis.
- Capture note: add (or append to) a dated capture note — a short
## <date> captureblock in_skin-photo-archive.md(or a sibling note) that
embeds the clearest shot![[_media/skin/<date>/<file>]]and summarises what
the set shows + any operator-reported lesion behavior. Keep it[inferred]. - Commit (see Commit rules).
Route B — lesion / symptom / behavior note (text)
File as a dated capture note in the skin-archive area, [inferred]-flagged.
Do NOT do in-place structured edits of _derm-visit-prep-* (the interview
block) or the circle-test table — those are deferred (hand-run for now). If
the operator explicitly asks to update the derm-prep / circle-test, do it by hand
and confirm; otherwise capture-note it and note "fold into derm-prep if wanted".
Route C — lab / PDF / record
File the extracted content into 00-Sources/<id>.md (verbatim + provenance per_CLAUDE.md); if it carries structured analyte values, also surface them under10-Labs/ keyed by the English analyte code. Cite the source.
Route D — unknown
Ask the operator what it is (desktop). If unattended, file to a dated inbox
capture note and flag for triage — never guess a clinical route.
Commit rules (all routes)
- Selective staging is MANDATORY.
git status --shortfirst, thengit add -- <only the exact paths you created/changed>. NEVERgit add -A
— this vault has multiple concurrent writers (desktop + Telegram); a broad add
would commit another session's half-done work. - One commit per FILE action; conventional message, e.g.
skin(photo-archive): file <date> <region> capture. - Never push, never add a remote (the egress floor blocks it; the repo is
local-only by design). - Report back: what was filed, where, the commit hash.
Verb 2 — QUERY
Answer a health follow-up grounded in the vault.
- Retrieve:
Grep/Readacross the vault; useqmd(the vault's own collection)
and the localhostobsidian-vaultMCP when available (both are allowlisted
by the egress floor) — but they are optional; file reads are the substrate.
Good entry points:STATUS.md/_STATUS.md,_skin-photo-archive.md,_derm-visit-prep-*,30-Entities/condition-*,10-Labs/panel-*. - Answer grounded — cite the vault file path(s) the answer rests on.
- Any morphology read or hypothesis is tagged
[inferred]and framed
for the clinician. State what would confirm/refute it. - Never assert a diagnosis. Distinguish "the chart records X" (fact, cite it)
from "this looks like X" ([inferred], for the clinician). When the data is
ambiguous, say so and name the discriminating test. - Close a morphology answer with a brief "organize & surface, not a diagnosis —
for your dermatologist/clinician" note.
Guardrails (do not violate)
- No diagnosis, ever — flag every inference
[inferred]. - cwd = the medical vault so the egress floor loads; no cloud/web/non-Anthropic egress.
- Selective staging; never
git add -A; never push. - Idempotent photo filing (content-hash dedup).
- Deferred (not this skill yet): in-place derm-prep / circle-test table mutation.