epic-note
When to Use
✅ Use when:
- The user asks for help drafting a message to their PCP or specialist
- Reporting a new or worsening symptom
- Asking about a recent test or lab result
- Requesting a medication refill
- Following up after a visit, procedure, or referral
When NOT to Use
❌ Don't use when:
- Symptoms suggest an emergency - return the 911 redirect from
references/triage-rules.md, don't draft
- Generating a clinician-facing note (SOAP, discharge, dictation)
- Drafting non-clinical letters (insurance, billing)
- The user is asking a medical question for advice - that's answered directly,
not in a portal message
Setup
Profile. Resolve from the precedence in
references/profile-schema.md
(skill config -> env var -> ~/.openclaw/workspace/memory/profile.yaml).
Use care_team.pcp.display_name as the default greeting recipient when
the user doesn't name a clinician. The skill never contains the profile.
Workflow
Triage first. Scan input for red-flag symptoms. If present, do NOT
draft - return the 911 redirect text from
references/triage-rules.md.
Identify the single ask. If multiple unrelated topics exist, propose
separate messages and ask the user which to send first.
Draft using the canonical format in
references/portal-message-format.md:
Subject: line with urgency, greeting, one-sentence ask, 2-4 sentences
of context, optional bullet data, sign-off.
Word budget. Aim for ≤150 words; hard cap 220. Front-load the ask.
Plain language. No self-diagnosis, no filler praise, no PHI of others.
Output is copy-paste ready. No explanations or meta-commentary
wrapped around the message - just the message itself.
Examples
See references/examples.md for worked
input/output pairs (medication side effect, lab follow-up, refill request,
multi-topic split).
Privacy
Portal messages travel through health-system networks under HIPAA. Tula
generates drafts locally - no PHI leaves the workspace.
- Don't include PHI of family members or third parties.
- The draft stays in the conversation. Never auto-send.
- Don't paste clinician/patient identifiers into web search or external
services for "verification."
Troubleshooting
- No clinician name given -> use
care_team.pcp.display_name from the
profile, or Hello [Care Team], if none resolves.
- Vague input -> ask one clarifying question (onset, severity, which
clinician), then draft.
- User asks for medical advice -> decline politely; this skill drafts
messages to clinicians, not answers from them.
- Multi-topic input -> propose separate messages, don't bundle.
- Emergency-flavored prompt -> return triage redirect; never wrap a
drafted message around it.
1---2name: epic-note3description: Drafts a concise patient-portal message the user can copy-paste to a clinician via Epic MyChart, Oracle Health HealtheLife, or similar. Personal data is referenced from an external profile file, never embedded. USE FOR: symptom reports, refill requests, lab/result follow-ups, visit follow-ups, asking a single clear question. DO NOT USE FOR: clinical notes, SOAP/discharge documentation, insurance or billing letters, or answering the patient's medical question.4---56# epic-note78## When to Use910✅ Use when:1112- The user asks for help drafting a message to their PCP or specialist13- Reporting a new or worsening symptom14- Asking about a recent test or lab result15- Requesting a medication refill16- Following up after a visit, procedure, or referral1718## When NOT to Use1920❌ Don't use when:2122- Symptoms suggest an emergency - return the 911 redirect from23 [`references/triage-rules.md`](references/triage-rules.md), don't draft24- Generating a clinician-facing note (SOAP, discharge, dictation)25- Drafting non-clinical letters (insurance, billing)26- The user is asking a medical question for advice - that's answered directly,27 not in a portal message2829## Setup3031**Profile.** Resolve from the precedence in32[`references/profile-schema.md`](references/profile-schema.md#where-the-profile-lives)33(skill config -> env var -> `~/.openclaw/workspace/memory/profile.yaml`).34Use `care_team.pcp.display_name` as the default greeting recipient when35the user doesn't name a clinician. The skill never contains the profile.3637## Workflow38391. **Triage first.** Scan input for red-flag symptoms. If present, do NOT40 draft - return the 911 redirect text from41 [`references/triage-rules.md`](references/triage-rules.md).42432. **Identify the single ask.** If multiple unrelated topics exist, propose44 separate messages and ask the user which to send first.45463. **Draft** using the canonical format in47 [`references/portal-message-format.md`](references/portal-message-format.md):48 `Subject:` line with urgency, greeting, one-sentence ask, 2-4 sentences49 of context, optional bullet data, sign-off.50514. **Word budget.** Aim for ≤150 words; hard cap 220. Front-load the ask.52 Plain language. No self-diagnosis, no filler praise, no PHI of others.53545. **Output is copy-paste ready.** No explanations or meta-commentary55 wrapped around the message - just the message itself.5657## Examples5859See [`references/examples.md`](references/examples.md) for worked60input/output pairs (medication side effect, lab follow-up, refill request,61multi-topic split).6263## Privacy6465Portal messages travel through health-system networks under HIPAA. Tula66generates drafts locally - no PHI leaves the workspace.6768- Don't include PHI of family members or third parties.69- The draft stays in the conversation. Never auto-send.70- Don't paste clinician/patient identifiers into web search or external71 services for "verification."7273## Troubleshooting7475- **No clinician name given** -> use `care_team.pcp.display_name` from the76 profile, or `Hello [Care Team],` if none resolves.77- **Vague input** -> ask one clarifying question (onset, severity, which78 clinician), then draft.79- **User asks for medical advice** -> decline politely; this skill drafts80 messages *to* clinicians, not answers from them.81- **Multi-topic input** -> propose separate messages, don't bundle.82- **Emergency-flavored prompt** -> return triage redirect; never wrap a83 drafted message around it.