Scientific similarity checker
Skill patolojiAI/pathology-skills-collection/pathology-skills/scientific-similarity-checker
Analyze a scientific article (.pdf, .docx, image, or text) to find similar work across PubMed, OpenAlex, Semantic Scholar, IEEE, arXiv, Crossref, and the web. Detects similarity by abstract content, topic, authors, and journal. Issues tiered warnings (red/amber/green) when similarity levels suggest self-plagiarism, duplicate publication, salami slicing, or research misconduct. Saves a structured report as markdown (and optionally HTML) in the current working directory. Use whenever a user uploads or pastes a scientific article, manuscript, preprint, or abstract and asks to "check this paper", "find similar studies", "is this published elsewhere", "duplicate publication check", "misconduct screening", "novelty check", "plagiarism screen", or "find the authors' other work" — including when academic integrity checking is implied.From its SKILL.md
npx -y skills add patolojiAI/pathology-skills-collection --skill scientific-similarity-checkerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
13.8 KB, ~3.2k tokens by cl100k_base, as published. Nobody here has run it
Scientific Similarity Checker
A multi-source literature search and academic integrity tool that analyzes a scientific article against global databases to surface similar work and flag potential misconduct.
Phase 1 — Extract Article Metadata
Before searching anything, extract as much metadata as possible from the input. The input may be:
- PDF: Use pdf-reading skill if available; otherwise read with bash
pdftotextor similar - Image: Read visually — extract title, authors, abstract from the image
- Text/paste: Parse directly
Extract these fields (mark each as found or inferred or missing):
title: (full title)
authors: (list: Last FM, Last FM, ...)
year: (publication or submission year)
journal: (journal/conference/preprint server name)
doi: (if present)
pmid: (if present)
abstract: (full abstract text)
keywords: (author-provided or extracted from abstract)
institution: (author affiliations if visible)
funding: (funding sources if visible)
corresponding: (corresponding author email/name)
For the abstract, if not explicitly labeled, look for the structured paragraph immediately after author affiliations. Keywords may appear at the end of the abstract or in a separate section.
If the DOI is present, use it immediately to do a Crossref lookup (Phase 2a) — this often resolves all metadata at once.
Phase 2 — Multi-Database Search Strategy
Run these searches. The order matters: start with exact lookups, then broaden.
2a. Exact DOI / PMID Lookup (if available)
If a DOI is found:
GET https://api.crossref.org/works/{DOI}
If a PMID is found:
GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id={PMID}&retmode=json
These anchor the article definitively and may reveal if it is already published.
2b. PubMed Search (use PubMed MCP if connected, else REST API)
Run 3 separate queries, collect top 10 results each:
- Title search:
"{short_title}"[ti](use first 8-10 significant words) - Author search:
{first_author_last}[au] AND {year-2}:{year+1}[dp] - Topic search:
{keyword1}[tiab] AND {keyword2}[tiab] AND {keyword3}[tiab]
See references/api-endpoints.md for full PubMed syntax reference.
2c. OpenAlex Search (free, no API key needed)
Run 3 queries:
-
Title similarity:
GET https://api.openalex.org/works?search={url_encoded_title}&per_page=10 -
Author's works: First resolve author:
GET https://api.openalex.org/authors?search={first_author_name}&per_page=5Then:GET https://api.openalex.org/works?filter=author.id:{author_id}&per_page=20&sort=publication_year:desc -
Journal/venue scan:
GET https://api.openalex.org/works?filter=primary_location.source.display_name.search:{journal_name}&search={keyword1}+{keyword2}&per_page=10
2d. Semantic Scholar Search
-
Title search:
GET https://api.semanticscholar.org/graph/v1/paper/search?query={encoded_title}&limit=10&fields=title,authors,year,abstract,externalIds,citationCount,venue -
Author search (resolve author first):
GET https://api.semanticscholar.org/graph/v1/author/search?query={author_name}&limit=5&fields=name,papersThen fetch the author's recent papers.
2e. arXiv Search (for preprints, CS, physics, math, biology)
GET https://export.arxiv.org/api/query?search_query=ti:{title_words}+AND+au:{first_author}&max_results=10
Also search by abstract keywords:
GET https://export.arxiv.org/api/query?search_query=abs:{keyword1}+AND+abs:{keyword2}&max_results=10
2f. Web Search (IEEE, Google Scholar, general)
Use web_search tool for:
"{title}" IEEE— catches IEEE Xplore papers"{title}" site:scholar.google.com{first_author} {keyword1} {keyword2} {year} preprint"{title}" filetype:pdf
IEEE has no free API; web search is the reliable path. Read full result pages
with web_fetch when snippets suggest strong relevance.
Phase 3 — Similarity Scoring
For each retrieved article, compute a similarity profile across four dimensions.
3a. Content Similarity (Abstract/Body)
Compare the input abstract against each retrieved abstract using textual overlap reasoning:
- Identify shared phrases ≥ 5 words (verbatim or near-verbatim)
- Note shared sentences or heavily paraphrased sentences
- Estimate overall semantic overlap: Low / Moderate / High / Very High
Thresholds:
- Low: topic overlap only, different methods/conclusions
- Moderate: same topic, some shared framing/language
- High: substantial paragraph-level overlap, same methodology
- Very High: near-identical abstracts — strong misconduct signal
3b. Topic Similarity
Compare keywords, MeSH terms, and subject matter:
- Fully same topic + same methodology = Highly Similar
- Same topic, different methodology = Related
- Adjacent topic, different field = Loosely Related
3c. Author Overlap
Count authors in common:
- All authors match: Identical authorship → self-plagiarism risk
- Majority match: Substantial overlap → check for salami slicing
- First/last author same: Core team reuse → note it
- No overlap: Independent (still flag if content is near-identical)
3d. Journal/Venue Similarity
Note if the same group has published in:
- The same journal within ±3 years → possible duplicate submission
- Closely related journals from the same publisher
- A preprint server version of what appears to be a published paper → check if properly cited
Phase 4 — Misconduct Assessment
Apply these tiered warning rules. Issue warnings prominently in the report.
🔴 RED FLAG — Likely Misconduct
Trigger when ANY of the following:
- Abstract similarity ≥ Very High AND author overlap ≥ 50% → Duplicate publication
- Title is identical or near-identical to an existing published paper with same authors → Verbatim duplicate
- Same data/results appear to be published in ≥2 journals without cross-reference → Salami slicing
- Unpublished manuscript matches a published article with same abstract → Plagiarism of own prior work
🟡 AMBER WARNING — Requires Investigation
- High content similarity (≥2 shared paragraphs or methods section) with author overlap
- Author has 3+ papers with highly similar titles/topics in same year
- Paper appears in a preprint server but introduction does not acknowledge the preprint
- Journal submission period overlaps with another identical submission (dual submission)
🟢 GREEN — Normal Academic Practice
- Self-citation of prior work with clear differentiation
- Same author team working on a research program (related but distinct studies)
- Preprint → journal pipeline (same paper, standard practice)
- Topic similarity without content similarity (normal scientific progress)
ℹ️ INFORMATIONAL — Context
- Other authors working in the same area (independent parallel research)
- Different language versions of same work (may be legitimate translation)
Phase 5 — Report Format
Always produce a structured report AND write it to a file (see Phase 6). Use this exact template:
# Scientific Similarity Analysis Report
## 📄 Article Analyzed
- **Title**: [extracted title]
- **Authors**: [list]
- **Year / Venue**: [year] | [journal/conference]
- **DOI**: [if found] | **PMID**: [if found]
- **Status**: [Published / Preprint / Unpublished manuscript]
---
## 🔍 Search Coverage
| Database | Queries Run | Results Found |
|---|---|---|
| PubMed | 3 | N |
| OpenAlex | 3 | N |
| Semantic Scholar | 2 | N |
| arXiv | 2 | N |
| IEEE/Web | 2 | N |
| Crossref (DOI) | 1 | N |
| **Total unique articles reviewed** | | **N** |
---
## ⚠️ Misconduct Assessment
[Insert RED FLAG / AMBER WARNING / GREEN / INFORMATIONAL badges here with explanations]
If no flags: "✅ No similarity patterns consistent with academic misconduct were detected."
---
## 📚 Similar Articles by Category
### By Content (Abstract / Methodology Overlap)
[List top 5, highest similarity first]
- **[Title]** — [Authors] — [Journal, Year] — [DOI/link]
- Similarity: [High/Moderate/Low] | [Brief note on what overlaps]
### By Topic / Keywords
[List top 5-8 thematically related papers]
### By Authors (Other Work from Same Team)
[List recent papers by the same first/last author]
### By Journal / Venue
[List recent papers from same journal on related topics]
---
## 🧭 Research Landscape Summary
[2-3 sentences: Where does this paper sit in the literature? Is it consistent with a research
program? Any unusual patterns in the publication record?]
---
## 🔗 Recommended Follow-Up
- [Any specific papers or authors worth deeper investigation]
- [Suggested searches the user could run manually]
- [Links to databases for manual review if needed]
Phase 6 — Write the Report to a File
After composing the report, always save it as a file in the user's current working directory (do not just print it to chat).
Filename
Build a slug from the first author's last name + year + 4-word title stub,
lowercased, ASCII-only, spaces/punctuation replaced with -. Example:
smith-2024-deep-learning-glioma-similarity.md.
If metadata is missing, fall back to similarity-report-YYYYMMDD-HHMM.md
using the current timestamp.
Default output: Markdown
Write the full report template (the block above, with all sections filled in)
to <slug>.md in the current directory. Use the write / file-creation tool
available in the host; do not require /mnt/user-data/outputs/ — that path is
specific to the Claude.ai web sandbox and will not exist for local CLI users.
Optional: HTML
If the user asks for HTML (phrases like "as html", "html report", "open in
browser"), also produce <slug>.html. Use the first method that works:
- pandoc (preferred — best rendering):
pandoc <slug>.md -o <slug>.html --standalone --metadata title="Similarity Report" - Python
markdownlibrary (fallback):
Install withpython3 -c "import markdown,sys; html=markdown.markdown(open('<slug>.md').read(), extensions=['tables','fenced_code']); print('<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>Similarity Report</title><style>body{font-family:system-ui,sans-serif;max-width:900px;margin:2em auto;padding:0 1em;line-height:1.5}table{border-collapse:collapse}td,th{border:1px solid #ccc;padding:6px 10px}code{background:#f4f4f4;padding:2px 4px}</style></head><body>'+html+'</body></html>')" > <slug>.htmlpip install --break-system-packages markdownif missing. - Plain wrap (last resort): wrap the markdown in a
<pre>block inside a minimal HTML skeleton.
After writing
In the chat reply, output:
- A one-line summary (e.g. "Saved similarity report →
<slug>.md") - The absolute path of every file written
- The top-level Misconduct Assessment verdict (🔴 / 🟡 / 🟢 / ℹ️)
Do not dump the full report contents into chat after writing the file — just point at it. The user opens the file when they want to read it.
Handling Edge Cases
Very common topic (thousands of papers): Prioritize recency (last 5 years) and exact phrase matches in title. Note that high volume is expected — focus on near-identical abstracts only.
No abstract visible: Work from title and keywords. State clearly that abstract-level similarity could not be assessed and recommend manual review of full text.
Preprint without authors: Search by title only. Flag that author-level analysis was not possible.
Non-English article: Detect the language, search in that language on PubMed (use [la] tag)
and OpenAlex, and note that cross-language duplicate detection is limited.
Image input only (photo of paper): Extract as much text as possible visually. If abstract is partially cut off, note it and work with what's available.
User wants only research tool mode (no misconduct check): Skip Phase 4 entirely and focus on delivering a comprehensive related-work landscape for the topic.
Tips for High-Quality Output
- Always deduplicate results across databases before the final report (same paper may appear in PubMed, OpenAlex, and Semantic Scholar)
- When abstract similarity is ambiguous, quote the specific overlapping phrase so the user can judge
- For author disambiguation (common names like "Wang J"), use institution + year to narrow
- OpenAlex has the broadest coverage across all fields — prioritize it for topic searches
- PubMed is best for biomedicine; arXiv for STEM preprints; IEEE for engineering/CS
- Semantic Scholar is strong on citation graphs and has good CS/AI coverage
Reference Files
references/api-endpoints.md— Full API endpoint reference for all databases with parametersreferences/misconduct-taxonomy.md— Detailed taxonomy of publication misconduct types, definitions, and authoritative sources (COPE, ORI, Retraction Watch)
What ships with it: 3 files
40.3 KB alongside SKILL.md, 1 of them executable
references/
- api-endpoints.md7.1 KB
- misconduct-taxonomy.md6.7 KB
scripts/
- deduplicate_and_score.pyruns26.5 KB
Gives 0 of the 12 instructions most docs writing skills give in ~3.2k tokens
Counted across 1,637 of the 3,044 authors here whose files we hold, read 2026-08-07
- Announce the skill at startin 54 of 1637, across 26 files
- Convert legacy doc files before editingin 45 of 1637, across 7 files
- Predict questions readers might askin 42 of 1637, across 4 files
- Generate clarifying questions for initial contextin 42 of 1637, across 3 files
- Create document scaffold with placeholder textin 42 of 1637, across 3 files
- Brainstorm content options for each sectionin 42 of 1637, across 3 files
- Test the document with a fresh context-less instancein 42 of 1637, across 3 files
- Include exact file paths in every taskin 42 of 1637, across 15 files
- Ask interview questions one at a timein 42 of 1637, across 27 files
- Apply surgical edits during refinementin 41 of 1637, across 2 files
- Offer structured workflow or freeformin 40 of 1637, across 1 file
- Ask for document meta-contextin 40 of 1637, across 2 files
Said here and by no other author read
- extract metadata from the input document
- run exact doi or pmid lookup
- search pubmed openalex semantic scholar arxiv and web
- compute similarity scores for retrieved articles
- assess findings for research misconduct
- output the absolute file path in chat
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.