Instrument Data To Allotrope
aws-samples/amazon-bedrock-agents-healthcare-lifesciences
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.
Converts bank, credit card and brokerage statement PDFs, invoices and vendor price lists into clean CSV or Excel, then proves the extraction is complete and correct - opening balance plus…
$ npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OneWave-AI/claude-skills statement-extract-and-prove --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/statement-extract-and-prove .claude/skills/statement-extract-and-prove && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "statement-extract-and-prove" agent skill from https://github.com/OneWave-AI/claude-skills/tree/main/statement-extract-and-prove into .claude/skills/statement-extract-and-prove/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "statement-extract-and-prove", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/OneWave-AI/claude-skills/tree/main/statement-extract-and-proveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OneWave-AI/claude-skills statement-extract-and-prove --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/statement-extract-and-prove .agents/skills/statement-extract-and-prove && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "statement-extract-and-prove" agent skill from https://github.com/OneWave-AI/claude-skills/tree/main/statement-extract-and-prove into .agents/skills/statement-extract-and-prove/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "statement-extract-and-prove", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OneWave-AI/claude-skills statement-extract-and-prove --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/statement-extract-and-prove .cursor/skills/statement-extract-and-prove && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "statement-extract-and-prove" agent skill from https://github.com/OneWave-AI/claude-skills/tree/main/statement-extract-and-prove into .cursor/skills/statement-extract-and-prove/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "statement-extract-and-prove", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/OneWave-AI/claude-skills.git --path statement-extract-and-prove--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OneWave-AI/claude-skills statement-extract-and-prove --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/statement-extract-and-prove .gemini/skills/statement-extract-and-prove && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "statement-extract-and-prove" agent skill from https://github.com/OneWave-AI/claude-skills/tree/main/statement-extract-and-prove into .gemini/skills/statement-extract-and-prove/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "statement-extract-and-prove", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install OneWave-AI/claude-skills statement-extract-and-proveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/statement-extract-and-prove .github/skills/statement-extract-and-prove && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "statement-extract-and-prove" agent skill from https://github.com/OneWave-AI/claude-skills/tree/main/statement-extract-and-prove into .github/skills/statement-extract-and-prove/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "statement-extract-and-prove", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OneWave-AI/claude-skills statement-extract-and-prove --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OneWave-AI/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/statement-extract-and-prove .opencode/skills/statement-extract-and-prove && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "statement-extract-and-prove" agent skill from https://github.com/OneWave-AI/claude-skills/tree/main/statement-extract-and-prove into .opencode/skills/statement-extract-and-prove/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "statement-extract-and-prove", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
statement-extract-and-proveConverts bank, credit card and brokerage statement PDFs, invoices and vendor price lists into clean CSV or Excel, then proves the extraction is complete and correct - opening balance plus…
Statement Extract And Prove is an agent skill from OneWave-AI/claude-skills. Converts bank, credit card and brokerage statement PDFs, invoices and vendor price lists into clean CSV or Excel, then proves the extraction is complete and correct - opening balance plus transactions equals closing balance, every running balance chains, page totals, row counts and summary totals all tie, signs and decimal separators are consistent. Handles digital PDFs with word-position column bands and detects scanned PDFs that need OCR first. Use it whenever the user wants to convert a bank statement PDF to…
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `references/formats.md`, `references/ocr.md` and `scripts/extract_statement.py`).
It sits in Documents & Office, covering Excel spreadsheets, PDF and Forms and invoices. It works with Microsoft Excel and QuickBooks. The repository describes itself as: 200+ production-ready Claude Code skills for sales, marketing, design, engineering, and AI agent architecture. Built and maintained by OneWave AI. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fc5b785. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonpippdftoppmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Statement Extract And Prove loads about 2.2k tokens when it runs, and up to ~5.3k if it reads all its reference files. Until then it costs about 229 tokens; SKILL.md has 1,138 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from OneWave-AI/claude-skills at commit fc5b785, republished under its MIT licence (© OneWave-AI). 1,138 words, ~2,242 tokens.
.claude/skills/statement-extract-and-prove/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.A model reading a statement PDF by eye drops rows on long tables, flips signs, reads 1.234,56 as 1.234, and invents numbers where a scan is faint. Roughly one statement in seven fails to tie on the first pass. The fix is deterministic extraction from the PDF text layer plus arithmetic that the statement itself supplies: the bank already printed the opening balance, the closing balance, often a running balance on every row, and a summary box. If the extracted rows reproduce all of those, the extraction is proven. If not, the arithmetic points at the exact row.
Scope: this skill gets statement and table rows out of PDFs and proves them. For categorizing and reconciling against the books, hand the CSV to bookkeeping-close (its scripts/reconcile.py reads this CSV directly). For pulling header fields out of receipts and invoices (vendor, total, due date), use financial-parser; that skill does field extraction, while this one handles row tables that must tie out.
pip install pdfplumber openpyxl # required; openpyxl only for --xlsx
# optional, scanned PDFs only: ocrmypdf + tesseract (see references/ocr.md)Run the extractor. It checks the text layer first and exits with code 3 and NO TEXT LAYER when the PDF is an image. In that case, OCR it as described in references/ocr.md and continue with the OCR'd file. Do not start reading the page images yourself: OCR plus the proof below catches misreads, and eyeballing catches none.
python scripts/extract_statement.py statement.pdf --out out/stmt --xlsx \
[--account-type bank|card] [--decimal auto|dot|comma] [--date-order auto|mdy|dmy]--account-type card for credit cards: charges raise the balance owed, so they come out positive and payments negative. For bank accounts, deposits are positive. This matches what bookkeeping-close expects.--decimal defaults to auto: it counts .dd against ,dd endings in the amount columns and stops with exit 2 if the evidence is mixed. Pass the flag explicitly whenever you know the locale, because an explicit flag cannot be fooled by a statement with few amounts.year_inferred.Outputs: stmt.csv (one row per transaction, with page and y for traceability, raw printed text, and flags), stmt.meta.json (summary box values, forward/closing markers, the column bands used on each page, and every table line that did not become a row), and optionally stmt.xlsx.
python scripts/prove.py out/stmt.csv [--opening X --closing Y --stated-count N]Hard checks: opening + sum = closing; every printed running balance equals the previous one plus the amounts in between; page continuity (brought forward = carried forward, start + page rows = page end); credits and debits against the summary box and totals rows; row counts against any count the statement prints; duplicates across page breaks; and a number-format check. The number-format check is needed because the other invariants do not depend on scale: a statement where every amount was read 100x too large still ties out perfectly. Exit 0 prints PROVEN; anything else is NOT PROVEN, with proof_report.md, proof.json and low_confidence.csv written.
If the opening balance is not printed and the tool had to derive it from the first row, the verdict says so. Read the opening balance off the statement and pass --opening, because a derived opening proves nothing about the first row.
The report tells you where the fault is. Work from it, in this order:
LOCALIZED. Fix that one thing, not the rest of the statement.Most failures are column bands: a page printed with a different template, a header the detector missed, or amounts drifting left of their header. Look at the real word positions:
python scripts/extract_statement.py statement.pdf --out /tmp/x --dump-words 2Choose x-ranges that separate the columns, then re-run the whole document with overrides for that page only:
python scripts/extract_statement.py statement.pdf --out out/stmt \
--bands "date=40-95,description=95-285,amount=285-480,balance=480-570" --band-pages 2
python scripts/prove.py out/stmt.csvOther levers: --decimal when the number-format check fails, --date-order when dates land outside the period, --account-type when every sign is inverted, --invert-amount for a signed column printed from the other party's view, --allow-integers for price lists without cents. See references/formats.md for layouts and their traps.
If a page still fails after band and flag adjustments (a damaged scan, handwriting, a stamp over a figure), render just that page (pdftoppm -r 200 -f N -l N -png statement.pdf page) and read only the rows in the localized span. Every value obtained this way goes into the deliverable marked source=visual in the flags column, the proof is re-run, and the handoff says which rows were read by eye. Never type in a number so that the statement ties; if the visual reading does not close the gap, report the gap.
Hand over the CSV or XLSX, proof_report.md, and the low-confidence queue. State the verdict in one line: "PROVEN: 44 rows, opening 4,210.33 + 25,374.85 = closing 29,585.18, 20 running balances chained, totals and counts match." For NOT PROVEN, give the gap, the localized row or span, and what was tried. For bookkeeping, point to bookkeeping-close and pass the proven balances as --statement-begin / --statement-end.
page and y in every deliverable, so any figure can be traced back to its spot on the PDF.scripts/extract_statement.py: text-layer check, header and band detection, row assembly, number and date parsing, CSV/XLSX/meta output, --dump-wordsscripts/prove.py: invariants, diagnosis, report, low-confidence queuereferences/formats.md: statement layouts, sign conventions, locale number and date formats, invoice and price-list notesreferences/ocr.md: when to OCR, how, confidence, and re-checking OCR outputtests/make_fixtures.py, tests/run_tests.py: synthetic statements (US 3-page running balance, German decimal comma, UK paid-out/paid-in with CR/DR, misaligned page, scanned) and corruption tests© OneWave-AI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts, references) in statement-extract-and-prove of OneWave-AI/claude-skills.
Open the folder on GitHubat commit fc5b785
Statement Extract And Prove next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Statement Extract And Prove this skillOneWave-AI/claude-skills | 336 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences | 274 | 2 repos | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Research Integrity Auditxuzhougeng/wisp-science | 1k | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| File ReadingWide-Moat/open-computer-use | 126 | 1 repos | ~3.1k | Automated safety check: Pass | Proprietary | |
| Compdf Documents To PDFComPDFKit/compdf-skills | 109 | — | ~850 | Automated safety check: Pass | None | |
| Multi Source Data Integration ExtractionDrchronx/ai-agent-research-starter-kit | 139 | — | ~671 | Automated safety check: Pass | Custom licence |
aws-samples/amazon-bedrock-agents-healthcare-lifesciences
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.
xuzhougeng/wisp-science
学术审查 / research-integrity screening of a manuscript's figures and reported numbers.
Wide-Moat/open-computer-use
A skill your agent uses when a file has been uploaded but its content is NOT in your context — only its path at /mnt/user-data/uploads/ is listed in an uploadedfiles block.
ComPDFKit/compdf-skills
Convert Word, Excel, PPT, HTML, TXT, CSV, RTF, PNG, and JPG files into PDF with ComPDF.
Drchronx/ai-agent-research-starter-kit
Automatically merge scattered Excel and CSV files, normalize column names, and extract structured tables from PDF, HTML, TXT, or Markdown documents.
Light0305/Light-skills
Light 多格式文件深度理解常驻技能:强大地读 Word / PDF / PPTX / Excel / CSV / 图片 / 视频 / 代码 / 压缩包,不只提取文字,而是理解结构 / 图表 / 数据 / 格式要求 / 隐含意图,产结构化"理解笔记"五面 (结构逻辑·关键内容·格式约束·视觉风格·可复用)并映射到下游技能动作(这个文件→接下来能做什么)。
OneWave-AI/claude-skills
Finds duplicate and junk records in a CRM CSV export with fuzzy matching, normalizes fields and writes a reviewable merge plan plus import-ready files without touching the live CRM.
OneWave-AI/claude-skills
Repairs broken decks and PDFs exported from Claude Design or similar AI deck generators: clipped text, wrong fonts and corrupted .pptx package structure.
OneWave-AI/claude-skills
Writes, explains, debugs, and optimizes BI calculations - Power BI / Fabric DAX measures and calculated columns, Tableau calculated fields (FIXED/INCLUDE/EXCLUDE LOD expressions, table…
OneWave-AI/claude-skills
Categorizes transactions, reconciles bank and card statements to the ledger, works a month-end checklist and prepares a close package, without ever forcing a balance.
OneWave-AI/claude-skills
Combines CSV, TSV and Excel files into one verified table with pandas, by stacking or joining, mapping columns, normalizing keys and removing duplicates.
OneWave-AI/claude-skills
Pulls financial statement numbers for US public companies straight from SEC EDGAR's free official XBRL APIs (companyfacts, companyconcept, frames, submissions) into a cited table.
Works with
Categories
Converts bank, credit card and brokerage statement PDFs, invoices and vendor price lists into clean CSV or Excel, then proves the extraction is complete and correct - opening balance plus…. Statement Extract And Prove is an agent skill from OneWave-AI/claude-skills. Converts bank, credit card and brokerage statement PDFs, invoices and vendor price lists into clean CSV or Excel, then proves the extraction is complete and correct - opening balance plus transactions equals closing balance, every running balance chains, page totals, row counts and summary totals all tie, signs and decimal separators are consistent.
Statement Extract And Prove fits situations like: the user wants to convert a bank statement PDF to Excel; extract transactions from a statement; turn a PDF table into a spreadsheet; import statements into QuickBooks.
Run `npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a claude-code`. Or copy the skill folder (statement-extract-and-prove in OneWave-AI/claude-skills) into .claude/skills/statement-extract-and-prove in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a codex`. Or copy the skill folder (statement-extract-and-prove in OneWave-AI/claude-skills) into .agents/skills/statement-extract-and-prove in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OneWave-AI/claude-skills --skill statement-extract-and-prove -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/statement-extract-and-prove, .gemini/skills/statement-extract-and-prove, .github/skills/statement-extract-and-prove and .opencode/skills/statement-extract-and-prove in your project.
Going by SKILL.md and its folder, Statement Extract And Prove needs Python for the scripts in its folder and the command-line tools its instructions call (python, pip and pdftoppm). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Statement Extract And Prove is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Statement Extract And Prove: Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), Research Integrity Audit (xuzhougeng/wisp-science, 1k stars), File Reading (Wide-Moat/open-computer-use, 126 stars) and Compdf Documents To PDF (ComPDFKit/compdf-skills, 109 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OneWave-AI (a GitHub organization) maintains it in OneWave-AI/claude-skills, which has 336 GitHub stars. The repository holds 69 skills in this directory. The repository was last updated on October 2, 2026.
Source: OneWave-AI/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.