CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

scaffolding-smart-on-fhir

Scaffold a SMART-on-FHIR app (SMART App Launch v2 — EHR launch and standalone launch, OAuth2 PKCE, scopes, token handling, fhirContext) so an OpenMed-powered tool can run inside Epic or Cerner/Oracle Health. Covers the .well-known/smart-configuration discovery, authorize/token sequence, scopes like patient/DocumentReference.rs and launch/patient, and fetching clinical notes the app then de-identifies and runs NER on locally with OpenMed. Use when the user wants to embed OpenMed inside an EHR, mentions SMART on FHIR, OAuth2 launch, scopes, Epic/Cerner app, or clinician-facing FHIR app. Pairs adjacent.

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, well-structured body: concrete HTTP flow, a practical scope table, runnable Python, and a genuinely useful gotchas section with real SMART v2 pitfalls. Main gaps are minor — validation checkpoints separated from the workflow, pseudocode placeholders for PKCE, and all content inlined with no reference split.

Suggestions

Move validation checkpoints (validate state/aud, verify granted scope, handle expires_in) inline into the numbered launch sequence so they occur at the step where they apply, with explicit retry guidance on token-exchange failure.

Replace the BASE64URL(SHA256(verifier)) placeholder with a short executable snippet that generates the code_verifier/code_challenge pair and validates state on callback.

Trim the two background sentences explaining what a SMART app / OAuth2 flow is, and consider moving the edge-cases and standards lists into a reference file linked from SKILL.md.

DimensionReasoningScore

Conciseness

Mostly lean and dense with SMART v2 specifics Claude cannot be assumed to know (scope syntax with c/r/u/d/s permissions, capabilities, per-EHR registration), but a few sentences restate known OAuth2/SMART background and some bullets could be trimmed — 'minor instances of over-explanation', not 'every token earns its place'.

4 / 5

Actionability

The numbered launch sequence with real URLs and parameters, the scope table, and the Python snippet (openmed.deidentify / analyze_text with concrete arguments) are mostly executable, but placeholders like BASE64URL(SHA256(verifier)) and absent code for PKCE generation and state validation leave minor gaps — not fully copy-paste ready.

4 / 5

Workflow Clarity

The five-step launch sequence is clear and validation guidance exists (validate state and aud, handle expires_in, read the granted scope and degrade gracefully), but checkpoints sit in a separate 'Edge cases' section rather than inline in the workflow and there are no error-recovery feedback loops — 'most checkpoints present; minor validation gaps'.

4 / 5

Progressive Disclosure

No bundle files exist; the ~150-line body is well-organized with one-level, clearly-named cross-references to sibling skills (exporting-to-fhir, assembling-fhir-bundles, validating-us-core) given as plain code text rather than links. Good structure overall, but everything is inlined — the gotchas list and standards links could live in a reference file, leaving minor organization gaps.

4 / 5

Total

16

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An excellent description: dense with domain-specific concrete actions, an explicit 'Use when...' clause with natural trigger phrases, and a clearly delineated niche that avoids overlap with adjacent skills. Third-person imperative voice matches the strong reference examples.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — scaffolding the SMART-on-FHIR app, .well-known/smart-configuration discovery, the authorize/token sequence, specific scopes (patient/DocumentReference.rs, launch/patient), and fetching notes that are de-identified and NER-processed locally — with comprehensive coverage matching the level-5 anchor.

5 / 5

Completeness

Explicitly answers both what (scaffold, discovery, authorize/token, scopes, note fetching, de-id + NER) and when ('Use when the user wants to embed OpenMed inside an EHR, mentions SMART on FHIR, OAuth2 launch, scopes, Epic/Cerner app, or clinician-facing FHIR app') with concrete trigger phrases.

5 / 5

Trigger Term Quality

Triggers cover the natural phrases a user would say in this niche — 'SMART on FHIR', 'OAuth2 launch', 'scopes', 'Epic/Cerner app', 'clinician-facing FHIR app', 'embed OpenMed inside an EHR' — comprehensive including vendor synonyms; not merely 'good coverage with a few missing' (level 4).

5 / 5

Distinctiveness Conflict Risk

Clear niche (SMART-on-FHIR embedding in Epic/Cerner/Oracle Health for OpenMed) with distinct triggers; 'Pairs adjacent' and the body's explicit deferral to exporting-bulk-fhir for cohort-scale pulls minimize conflict with sibling FHIR skills.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

maziyarpanahi/openmed

Path

skills/scaffolding-smart-on-fhir/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.