Source: https://github.com/aipoch/medical-research-skills
Validation Shortcut
Run this minimal command first to verify the supported execution path:
python scripts/validate_skill.py --help
When to Use
- You need to build a structured inventory of reagents/antibodies/consumables from a paper's Materials and Methods section.
- A document includes a Key Resources Table and you want to convert it into clean CSV outputs.
- You want to extract instrument/equipment details (brand + model) from methods text or tables.
- You need to capture software and versions mentioned in methods (e.g., analysis pipelines, imaging software).
- You want to standardize reagent preparation instructions (buffers/solutions, concentrations, temperatures, steps) into a table.
Key Features
- Accepts PDF-derived Markdown/text as primary input; falls back to PDF text extraction when needed.
- Table-first parsing: prioritizes structured tables (e.g., Key Resources Table) before scanning prose sections.
- Extracts and outputs three normalized CSV tables with fixed schemas:
- Main reagents (including antibodies/consumables/software versions)
- Main instruments
- Reagent preparation methods
- Uses section heading + keyword targeting to locate relevant regions and fill gaps.
- Enforces non-hallucination rules: unknown brand/model/catalog/version fields remain blank.
Dependencies
- Python 3.10+
- pdfplumber >= 0.10.0 (recommended for text-based PDFs)
- OCR engine (only for scanned PDFs), e.g.:
- pytesseract >= 0.3.10
- Tesseract OCR >= 5.0
Example Usage
1) Convert PDF to Markdown (preferred)
Reuse the existing script to generate parseable Markdown; only use OCR for scanned PDFs.
python d:\SKILL\project\pdf-extract\scripts\extract_pdf.py -i input.pdf -o out.md
2) Extract and write CSV outputs
After you have PDF-derived text/Markdown, extract the target fields and write exactly these three files:
main_reagents.csv
main_instruments.csv
reagent_preparation.csv
CSV schemas (must match exactly):
main_reagents.csv
name,brand,catalog_number
main_instruments.csv
instrument,brand,model
reagent_preparation.csv
reagent,preparation_method
Implementation Details
1) Input decision logic
- If Markdown/text is available and structured, parse tables and sections directly.
- If only PDF is available:
- Prefer pdfplumber for text-based PDFs.
- Use OCR only when the PDF is scanned (image-only).
2) Target region detection (table-first)
Prioritize extraction in this order:
- Key Resources Table (or any structured materials table)
- Materials and Methods tables
- Prose sections identified by headings/keywords, such as:
- Key resources table, Materials and Methods, Reagents, Antibodies, Consumables, Software, Equipment, Instruments, Reagent preparation, Buffers, Solutions
When a table exists, parse it first; then scan prose to fill missing items.
3) Field extraction rules
A. Main reagents (name, brand, catalog_number)
- Include: reagents, antibodies, consumables, and software versions.
- Software mapping:
name = software name
brand = vendor/project/organization (if explicitly stated)
catalog_number = version/release (if explicitly stated)
- If
brand or catalog_number is not present, leave it blank (do not infer).
B. Main instruments (instrument, brand, model)
instrument = instrument/equipment name (e.g., "confocal microscope")
brand = manufacturer/vendor (only if stated)
model = model identifier string (often alphanumeric; only if stated)
C. Reagent preparation (reagent, preparation_method)
reagent = buffer/solution/reagent being prepared
preparation_method = preparation text, including any explicitly stated:
- concentration, solvent, ratios, steps, incubation/temperature/time, pH adjustments
4) Output constraints and quality checks
- Write three CSV files with the exact column names shown above.
- Deduplicate entries by primary name (e.g., reagent name or instrument name) and keep the most complete row.
- Preserve original casing and punctuation from the source.
- Perform a spot check of at least three items against the PDF source to confirm correctness.
When Not to Use
- Do not use this skill when the required source data, identifiers, files, or credentials are missing.
- Do not use this skill when the user asks for fabricated results, unsupported claims, or out-of-scope conclusions.
- Do not use this skill when a simpler direct answer is more appropriate than the documented workflow.
Required Inputs
- A clearly specified task goal aligned with the documented scope.
- All required files, identifiers, parameters, or environment variables before execution.
- Any domain constraints, formatting requirements, and expected output destination if applicable.
Recommended Workflow
- Validate the request against the skill boundary and confirm all required inputs are present.
- Select the documented execution path and prefer the simplest supported command or procedure.
- Produce the expected output using the documented file format, schema, or narrative structure.
- Run a final validation pass for completeness, consistency, and safety before returning the result.
Output Contract
- Return a structured deliverable that is directly usable without reformatting.
- If a file is produced, prefer a deterministic output name such as
pdf_extract_experimental_materials_result.md unless the skill documentation defines a better convention.
- Include a short validation summary describing what was checked, what assumptions were made, and any remaining limitations.
Validation and Safety Rules
- Validate required inputs before execution and stop early when mandatory fields or files are missing.
- Do not fabricate measurements, references, findings, or conclusions that are not supported by the provided source material.
- Emit a clear warning when credentials, privacy constraints, safety boundaries, or unsupported requests affect the result.
- Keep the output safe, reproducible, and within the documented scope at all times.
Failure Handling
- If validation fails, explain the exact missing field, file, or parameter and show the minimum fix required.
- If an external dependency or script fails, surface the command path, likely cause, and the next recovery step.
- If partial output is returned, label it clearly and identify which checks could not be completed.
Quick Validation
Run this minimal verification path before full execution when possible:
No local script validation step is required for this skill.
Expected output format:
Result file: pdf_extract_experimental_materials_result.md
Validation summary: PASS/FAIL with brief notes
Assumptions: explicit list if any
Deterministic Output Rules
- Use the same section order for every supported request of this skill.
- Keep output field names stable and do not rename documented keys across examples.
- If a value is unavailable, emit an explicit placeholder instead of omitting the field.
Completion Checklist
- Confirm all required inputs were present and valid.
- Confirm the supported execution path completed without unresolved errors.
- Confirm the final deliverable matches the documented format exactly.
- Confirm assumptions, limitations, and warnings are surfaced explicitly.
1---2name: pdf-extract-experimental-materials3description: Extract experimental materials and instrument information from PDFs (or PDF-derived text/Markdown) into three CSV tables; use when a paper/report contains sections like Materials and Methods, Key Resources Table, Reagents, Antibodies, Consumables, Software, Equipment, Instruments, or Reagent Preparation.4license: MIT5---6> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)
7
8## Validation Shortcut
9
10Run this minimal command first to verify the supported execution path:
11
12```bash
13python scripts/validate_skill.py --help
14```
15
16## When to Use
17
18- You need to build a structured inventory of **reagents/antibodies/consumables** from a paper's *Materials and Methods* section.
19- A document includes a **Key Resources Table** and you want to convert it into clean CSV outputs.
20- You want to extract **instrument/equipment** details (brand + model) from methods text or tables.
21- You need to capture **software and versions** mentioned in methods (e.g., analysis pipelines, imaging software).
22- You want to standardize **reagent preparation** instructions (buffers/solutions, concentrations, temperatures, steps) into a table.
23
24## Key Features
25
26- Accepts **PDF-derived Markdown/text** as primary input; falls back to PDF text extraction when needed.
27- **Table-first parsing**: prioritizes structured tables (e.g., Key Resources Table) before scanning prose sections.
28- Extracts and outputs **three normalized CSV tables** with fixed schemas:
29 - Main reagents (including antibodies/consumables/software versions)
30 - Main instruments
31 - Reagent preparation methods
32- Uses **section heading + keyword targeting** to locate relevant regions and fill gaps.
33- Enforces **non-hallucination rules**: unknown brand/model/catalog/version fields remain blank.
34
35## Dependencies
36
37- Python 3.10+
38- pdfplumber >= 0.10.0 (recommended for text-based PDFs)
39- OCR engine (only for scanned PDFs), e.g.:
40 - pytesseract >= 0.3.10
41 - Tesseract OCR >= 5.0
42
43## Example Usage
44
45### 1) Convert PDF to Markdown (preferred)
46Reuse the existing script to generate parseable Markdown; only use OCR for scanned PDFs.
47
48```bash
49python d:\SKILL\project\pdf-extract\scripts\extract_pdf.py -i input.pdf -o out.md
50```
51
52### 2) Extract and write CSV outputs
53After you have PDF-derived text/Markdown, extract the target fields and write exactly these three files:
54
55- `main_reagents.csv`
56- `main_instruments.csv`
57- `reagent_preparation.csv`
58
59CSV schemas (must match exactly):
60
61`main_reagents.csv`
62```csv
63name,brand,catalog_number
64```
65
66`main_instruments.csv`
67```csv
68instrument,brand,model
69```
70
71`reagent_preparation.csv`
72```csv
73reagent,preparation_method
74```
75
76## Implementation Details
77
78### 1) Input decision logic
79- If **Markdown/text is available and structured**, parse tables and sections directly.
80- If only **PDF** is available:
81 - Prefer **pdfplumber** for text-based PDFs.
82 - Use **OCR** only when the PDF is scanned (image-only).
83
84### 2) Target region detection (table-first)
85Prioritize extraction in this order:
861. **Key Resources Table** (or any structured materials table)
872. **Materials and Methods** tables
883. Prose sections identified by headings/keywords, such as:
89 - *Key resources table*, *Materials and Methods*, *Reagents*, *Antibodies*, *Consumables*, *Software*, *Equipment*, *Instruments*, *Reagent preparation*, *Buffers*, *Solutions*
90
91When a table exists, parse it first; then scan prose to fill missing items.
92
93### 3) Field extraction rules
94**A. Main reagents (`name, brand, catalog_number`)**
95- Include: reagents, antibodies, consumables, and software versions.
96- Software mapping:
97 - `name` = software name
98 - `brand` = vendor/project/organization (if explicitly stated)
99 - `catalog_number` = version/release (if explicitly stated)
100- If `brand` or `catalog_number` is not present, leave it blank (do not infer).
101
102**B. Main instruments (`instrument, brand, model`)**
103- `instrument` = instrument/equipment name (e.g., "confocal microscope")
104- `brand` = manufacturer/vendor (only if stated)
105- `model` = model identifier string (often alphanumeric; only if stated)
106
107**C. Reagent preparation (`reagent, preparation_method`)**
108- `reagent` = buffer/solution/reagent being prepared
109- `preparation_method` = preparation text, including any explicitly stated:
110 - concentration, solvent, ratios, steps, incubation/temperature/time, pH adjustments
111
112### 4) Output constraints and quality checks
113- Write **three CSV files** with the exact column names shown above.
114- **Deduplicate** entries by primary name (e.g., reagent name or instrument name) and keep the **most complete** row.
115- Preserve **original casing and punctuation** from the source.
116- Perform a **spot check of at least three items** against the PDF source to confirm correctness.
117
118## When Not to Use
119
120- Do not use this skill when the required source data, identifiers, files, or credentials are missing.
121- Do not use this skill when the user asks for fabricated results, unsupported claims, or out-of-scope conclusions.
122- Do not use this skill when a simpler direct answer is more appropriate than the documented workflow.
123
124## Required Inputs
125
126- A clearly specified task goal aligned with the documented scope.
127- All required files, identifiers, parameters, or environment variables before execution.
128- Any domain constraints, formatting requirements, and expected output destination if applicable.
129
130## Recommended Workflow
131
1321. Validate the request against the skill boundary and confirm all required inputs are present.
1332. Select the documented execution path and prefer the simplest supported command or procedure.
1343. Produce the expected output using the documented file format, schema, or narrative structure.
1354. Run a final validation pass for completeness, consistency, and safety before returning the result.
136
137## Output Contract
138
139- Return a structured deliverable that is directly usable without reformatting.
140- If a file is produced, prefer a deterministic output name such as `pdf_extract_experimental_materials_result.md` unless the skill documentation defines a better convention.
141- Include a short validation summary describing what was checked, what assumptions were made, and any remaining limitations.
142
143## Validation and Safety Rules
144
145- Validate required inputs before execution and stop early when mandatory fields or files are missing.
146- Do not fabricate measurements, references, findings, or conclusions that are not supported by the provided source material.
147- Emit a clear warning when credentials, privacy constraints, safety boundaries, or unsupported requests affect the result.
148- Keep the output safe, reproducible, and within the documented scope at all times.
149
150## Failure Handling
151
152- If validation fails, explain the exact missing field, file, or parameter and show the minimum fix required.
153- If an external dependency or script fails, surface the command path, likely cause, and the next recovery step.
154- If partial output is returned, label it clearly and identify which checks could not be completed.
155
156## Quick Validation
157
158Run this minimal verification path before full execution when possible:
159
160```text
161No local script validation step is required for this skill.
162```
163
164Expected output format:
165
166```text
167Result file: pdf_extract_experimental_materials_result.md
168Validation summary: PASS/FAIL with brief notes
169Assumptions: explicit list if any
170```
171
172## Deterministic Output Rules
173
174- Use the same section order for every supported request of this skill.
175- Keep output field names stable and do not rename documented keys across examples.
176- If a value is unavailable, emit an explicit placeholder instead of omitting the field.
177
178## Completion Checklist
179
180- Confirm all required inputs were present and valid.
181- Confirm the supported execution path completed without unresolved errors.
182- Confirm the final deliverable matches the documented format exactly.
183- Confirm assumptions, limitations, and warnings are surfaced explicitly.