mcpbeat

Claims Extractor

willoscar/claims-extractor

| Use when a review workspace has manuscript text and needs a traceable claim ledger.

982 tokens
context cost
the whole folder, loaded on every use
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
496
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill claims-extractor

What comes with it

2 206 bytes besides the instruction
scripts/run.py

The instruction itself

7 sections, as written by the author

Claims Extractor

Transforms manuscript text into a traceable claim ledger for paper-review.

Input

  • output/PAPER.md

Output

  • output/CLAIMS.md
  • output/CLAIMS.jsonl (review-claim.v1, one addressable claim per line)

Contract

Each claim block must include:

  • claim text
  • type: empirical or conceptual
  • scope
  • source pointer back into output/PAPER.md

The Markdown and JSONL files are two views of the same claim records. Downstream

skills should prefer JSONL and retain Markdown fallback for older Workspaces.

Script boundary

scripts/run.py should:

  • detect claim-like sentences
  • normalize them into stable claim blocks
  • attach source pointers
  • separate empirical and conceptual claims

Keep parsing and ranking heuristics in shared review tooling, not in the skill script.

Acceptance

  • output/CLAIMS.md exists
  • output/CLAIMS.jsonl exists and every record has a stable claim_id
  • every claim has a source pointer
  • empirical and conceptual claims are separated

Non-goals

  • judging whether a claim is good
  • generating evidence gaps
  • writing review prose

How to use it

Copy the folder

Take willoscar/claims-extractor from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.