CtrlK
BlogDocsLog inGet started
Tessl Logo

ingesting-clinical-documents

Turn scanned faxes, images, and CSV/CDA exports into clean text ready for OpenMed de-identification and NER, fully on-device. Use when the user has clinical documents (image scans, photographed/faxed notes, tabular CSV/TSV exports, C-CDA XML) and needs OCR or structured intake before openmed.deidentify and openmed.analyze_text, asks about openmed.multimodal, OCR engines (Tesseract / PaddleOCR), tabular redaction, or layout and reading order. Covers the verified ocr() and redact_document() entry points and the ExtractedDocument contract. Pairs before deidentifying-clinical-text and extracting-clinical-entities.

72

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

86%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.

The body is highly actionable with executable examples across all supported formats and good progressive disclosure via a single clearly-signaled reference file. Its main weakness is the lack of an explicit verification feedback loop for destructive/batch redaction workflows.

Suggestions

Add an explicit verification step after redact_table/redact_document — e.g. 'inspect the manifest to confirm every direct-id column was redacted; re-run with adjusted column classes if any PHI remains' — to close the validate→fix→retry loop for destructive redaction.

Tighten the 'When to use' section since it substantially overlaps the frontmatter description; consider collapsing it into a one-line pointer to reduce token cost.

State the expected install/verify outcome (e.g. a smoke-test command confirming an OCR engine is available) so the Install section doubles as a validation checkpoint for the MissingDependencyError edge case.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence, with tight code blocks and tables, but retains some orientation prose (e.g. the intro paragraph and 'When to use' list that restate the description) that could be trimmed slightly.

4 / 5

Actionability

Fully executable, copy-paste-ready code covers the common cases — ocr()→to_document()→deidentify→analyze_text, redact_document for images/CSV/CDA, read_table/redact_table, and location_at span mapping — with real imports and concrete call signatures.

5 / 5

Workflow Clarity

The two-step intake path and one-step redact_document path are clearly sequenced with a stated privacy-first order and hand-off targets, and the PHI-safe manifest plus OcrWord.confidence inspection act as checkpoints; however, there is no explicit validate→fix→retry loop for irreversible redaction, a minor gap given the destructive nature of PHI masking.

4 / 5

Progressive Disclosure

The SKILL.md is a well-organized overview that repeatedly and clearly signals a single one-level-deep reference (references/multimodal-ingest.md, which exists) for the full contract, engines, and table pipeline, keeping detail out of the main file.

5 / 5

Total

18

/

20

Passed

Description

92%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.

The description is specific, complete, and well-scoped with a clear 'Use when' clause and concrete trigger terms. It uses third-person voice throughout and cleanly distinguishes itself from adjacent OpenMed skills via explicit pairing.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — OCR/extract text from scans, CSV/TSV column-aware intake, C-CDA flattening, tabular redaction, layout/reading-order mapping — giving comprehensive coverage of the skill's capabilities.

5 / 5

Completeness

Explicitly states what it does ('Turn scanned faxes, images, and CSV/CDA exports into clean text...') and gives a concrete 'Use when...' clause with multiple trigger phrases, answering both what and when clearly.

5 / 5

Trigger Term Quality

Strong natural keyword coverage including synonyms (scanned faxes, photographed/faxed notes, CSV/TSV, C-CDA XML) and engine names (Tesseract, PaddleOCR), but explicit file extensions like .png/.csv are absent, leaving a few natural terms missing.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (clinical document intake for OpenMed) with distinct triggers and explicit pairing ('Pairs before deidentifying-clinical-text and extracting-clinical-entities'), minimizing conflict with sibling skills.

5 / 5

Total

19

/

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
maziyarpanahi/openmed
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.