Guide · Agent skill
How to use the Clinical Report Drafting Scaffolds agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The clinical-reports skill is an add-on for an AI agent that creates blank, safety-bounded draft structures for clinical case, radiology, pathology, laboratory, trial, safety and aggregate research reports, then runs local scripts to check those drafts for internal structural consistency. This guide explains what the skill does, how to install it, how to ask for it in plain language, and what limits apply. After reading it, you should be able to install the skill, request a blank template, and run the checks on a draft you have prepared.
Quick start
- 1Download and unzip the skill. Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder.
- 2Confirm Python 3.11 or newer. The optional local scripts require Python 3.11 or newer. No API keys or accounts are needed for data processing.
- 3Prepare synthetic or de-identified inputs. Use only synthetic, de-identified or aggregate data, and create a provenance manifest that links each field to a verified source fact.
- 4Ask for a blank template. Name the report type and purpose in your request, or run the generator with --list and then --type to create a blank template.
- 5Populate verified fields only. Replace null values only where a verified fact ID supports them, and leave unsupported content null or missing.
- 6Run the matching check. Run the CARE, trial or adverse-event script on your draft and review the output for structural or internal consistency problems.
- 7Route the draft to qualified review. Send the draft to the named review owner. The skill does not sign, approve, file or submit anything.
What the clinical-reports skill makes the agent do
The skill helps the agent prepare draft reporting structures, aggregate tables and review manifests from facts that a human has already verified. It routes each artifact to a relevant reporting guideline, such as CONSORT or ICH E3 for trial reports, CARE for case reports, or ICH E2A for pre-approval safety reports, and keeps track of where each fact came from.
The skill is deliberately narrow. It will not diagnose, interpret images, specimens or lab results, recommend treatment, decide whether a safety event is reportable, or sign or submit anything. Its scripts check structure and internal consistency only and do not establish legal, regulatory, ethical or journal compliance.
- Creates blank, structured templates for case, radiology, pathology, laboratory, trial results, trial safety and aggregate research reports
- Creates a provenance manifest that links each field to a verified source-fact ID
- Runs local, deterministic checks on CARE structure, trial reporting structure and aggregate adverse-event tables
- Marks every output as a draft that needs qualified human review
Install the clinical-reports skill
Download the ZIP file for the skill from this page and unzip it. To make it available to Claude Code for your user account, place the folder in ~/.claude/skills/. To make it available only inside one project, place it in that project's .claude/skills/ folder.
To use it in the Claude apps instead, open Settings, go to Capabilities, and upload the skill under Skills.
- Personal install: unzip into ~/.claude/skills/
- Project install: unzip into the project's .claude/skills/ folder
- Claude apps: Settings → Capabilities → Skills, then upload the skill
Check what you need before running the scripts
The data-processing scripts need Python 3.11 or newer. No API keys, credentials or accounts are needed for data processing. The skill's metadata says that network access is only needed to review current public guidance, and the scripts themselves do not send report content anywhere.
Before you start, confirm that your inputs are synthetic, de-identified or aggregate. The skill refuses real patient identifiers and will not send report inputs, manifests or clinical content to an external model, API or another skill.
- Python 3.11 or newer for the optional local scripts
- No API keys, credentials or accounts for data processing
- Input data must be synthetic, de-identified or aggregate
- A provenance manifest that links each populated field to a verified source fact
- A named review owner for the draft
Ask for a report draft with a natural request
You do not need special syntax. Name the report type and say what you need: a blank template, a manifest, or a structural check. The skill only proceeds when the purpose is explicit, the data class is allowed, and provenance and a review owner are identified. If your request crosses a boundary, the agent will stop that part and offer a blank template, a source-fact manifest or a structural check instead.
Good requests name the artifact and the purpose, for example a blank CSR-style structure for a team that will fill in verified content later.
- "Create a blank CONSORT-style results template for a randomized trial. I will have the verified content filled in by our statistics team."
- "Give me a blank case report template with a provenance manifest I can complete from synthetic example data."
- "Check this trial report manifest for structural consistency."
- "Format this aggregate adverse-event CSV as a Markdown table."
Run the generator and the checks from the command line
To see the available template types, run the generator with the --list flag. To create a blank case report template, use --type case-report and write the output to a file. The generator copies a fail-closed template. It does not populate clinical content, create directories, or overwrite existing files by default.
After you populate verified fields, run the matching check. The CARE check runs on a case report draft, the trial check runs on a trial report manifest, and the adverse-event formatter turns an aggregate CSV into a Markdown table. Prefix each command with PYTHONDONTWRITEBYTECODE=1 as shown in the skill's instructions.
PYTHONDONTWRITEBYTECODE=1 python3 scripts/generate_report_template.py --list
PYTHONDONTWRITEBYTECODE=1 python3 scripts/generate_report_template.py --type case-report --output ./case-report-draft.json
PYTHONDONTWRITEBYTECODE=1 python3 scripts/validate_case_report.py ./case-report-draft.json
PYTHONDONTWRITEBYTECODE=1 python3 scripts/validate_trial_report.py ./trial-report-manifest.json
PYTHONDONTWRITEBYTECODE=1 python3 scripts/format_adverse_events.py ./aggregate-ae.csv --metadata ./safety-aggregate.json --output ./aggregate-ae-table.mdPopulate the draft without adding unverified content
Keep the draft_status field unchanged. Replace a null value only when a verified fact ID supports it. Preserve uncertainty and 'not assessed' statements exactly as recorded. Do not turn a raw observation into a diagnosis, code, grade, stage, seriousness, causality or recommendation. Keep the source record and the draft separate.
Unsupported content stays null or missing. The skill does not invent plausible text to fill gaps.
- Use not_applicable_with_rationale only when a qualified reviewer has supplied the rationale
- Do not copy direct identifiers into templates or scripts
- Hashes in the manifest are integrity metadata and do not de-identify data
Safety notes on scripts and network use
The skill runs local Python scripts. The data-processing steps are designed to stay local, with no upload, remote API, telemetry or credential. Network access is needed only if you choose to review current public official guidance, and that retrieval should use only public URLs or generic topic queries with no patient or unpublished study details.
Every output carries this notice: DRAFT — NOT FOR CLINICAL USE, SIGNATURE, FILING, OR SUBMISSION. Populate only from verified authorized source records. Qualified review and sign-off are required.
- Do not use real patient records or PHI with this skill
- Do not treat a passing check as proof of readiness, authorization or compliance
- Qualified clinical, statistical, safety, privacy, legal or regulatory review is still required
What people use it for
- A research team creates a blank CONSORT-style results structure and passes it to a statistician to fill in verified content.
- A data team checks that the tables and provenance manifest for a trial report agree with each other before review.
- A student learns the sections of a CSR-style report using synthetic example data.
- A regulatory writing group converts an aggregate adverse-event CSV into a Markdown table for an internal draft.
Frequently asked questions
Is the clinical-reports skill free to use?
The skill is released under the MIT licence, as stated in its metadata. The source does not list prices or paid tiers, so check the directory listing for any cost information. Data processing needs no API keys, credentials or accounts.
What do I need to install the clinical-reports skill?
Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder. In the Claude apps, you can instead upload it under Settings → Capabilities → Skills. The optional scripts need Python 3.11 or newer.
Does the clinical-reports skill need an internet connection?
Data processing runs locally and does not need a network connection. Internet access is only needed if you choose to look up current public guidance. The skill is designed never to send report inputs or clinical content to an external service.
Can the skill diagnose a patient or interpret lab results?
No. The skill explicitly refuses to diagnose, recommend treatment, interpret images, specimens or raw lab results, or decide reportability. It creates blank structures and checks their internal consistency, and direct clinical decisions go to a qualified professional.
Can I use real patient records with this skill?
No. The skill works only with synthetic, de-identified or aggregate inputs and forbids real identifiers and external services. It is not suitable for identifiable patient data.
How does this compare with other tools for writing clinical reports?
The skill's source does not compare it with other tools. It is narrower than a general report-writing assistant: it produces structured draft templates and runs local structural checks, and it will not write findings, interpretations or conclusions.
Why does a script fail or refuse to run?
Check that you have Python 3.11 or newer and run the commands from the skill folder with the paths shown. The source does not list specific error messages, so use the output the script prints and confirm that your inputs are structured and in the expected format.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits researchers, data teams and students who need a blank, correctly structured clinical report draft and a local check on its internal consistency, using synthetic or de-identified data. It is the wrong choice if you need clinical interpretation, individual safety case decisions, or any tool that handles real patient records.
Download the skill