A skill your agent uses when sending local changes back to the project (an added journal profile, a fixed checklist item, an adapted skill) or reporting a false positive or bug.
Install the "contribute" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/contribute into .claude/skills/contribute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contribute", 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.
Type 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.
skills CLI
$ npx skills add Aperivue/medsci-skills --skill contribute -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "contribute" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/contribute into .agents/skills/contribute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contribute", 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.
skills CLI
$ npx skills add Aperivue/medsci-skills --skill contribute -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "contribute" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/contribute into .cursor/skills/contribute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contribute", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add Aperivue/medsci-skills --skill contribute -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "contribute" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/contribute into .gemini/skills/contribute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contribute", 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.
Installs 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).
skills CLI
$ npx skills add Aperivue/medsci-skills --skill contribute -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "contribute" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/contribute into .github/skills/contribute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contribute", 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.
skills CLI
$ npx skills add Aperivue/medsci-skills --skill contribute -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "contribute" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/contribute into .opencode/skills/contribute/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contribute", 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.
Facts
Skill name
contribute
GitHub stars
331
Token cost
~2.4k tokens
SKILL.md length
1,315 words
Files
8 (incl. scripts)
Skills in repo
54
Repo updated
First seen
Licence
MIT
At a glance
A skill your agent uses when sending local changes back to the project (an added journal profile, a fixed checklist item, an adapted skill) or reporting a false positive or bug.
Works in 6 steps: What did they change? → The safety scan (blocking) → Does it meet the project's own bar? → …
Sending local changes back to the project (an added journal profile
SKILL.md covers The one rule that cannot bend, Phase 0: What did they change?, Phase 1: The safety scan… and Phase 2: Does it meet the…, plus 7 more sections
Runs Python and Shell scripts from its folder; calls python3 and gh
What it does
Contribute is an agent skill from Aperivue/medsci-skills. Use when sending local changes back to the project (an added journal profile, a fixed checklist item, an adapted skill) or reporting a false positive or bug. Finds what changed, scans it for patient data, shows every line and sends nothing until you confirm.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts (for example `scripts/check_contribution_safety.py`, `scripts/contribution_prefs.py` and `scripts/find_local_changes.py`).
It sits in Research & Science. It works with Git. The repository describes itself as: Agent Skills for medical research — literature search, reporting-guideline & citation checks, statistics, publication figures, submission. Works with Claude Code, Codex, Cursor &… The licence is MIT.
When your agent uses it
Sending local changes back to the project (an added journal profile
A fixed checklist item
An adapted skill)
Reporting a false positive
Example prompts
“/contribute”
Requirements
Python 3
A Bash shell
Workflow steps
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3b14ae2. It shows what the files ask for, not the result of running them.
Tool permissions
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.
Runs code
Ships 5 files in scripts/ (Python and Shell), which the agent can run.
Shell commands in SKILL.md call:
python3
gh
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Contribute loads about 2.4k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,315 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~67
When it runs· the whole SKILL.md, loaded when a task matches
~2.4k
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.
Safety
Auto-check passed
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.
Download SKILL.mdSave it as .claude/skills/contribute/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
contribute
description
Use when sending local changes back to the project (an added journal profile, a fixed checklist item, an adapted skill) or reporting a false positive or bug. Finds what changed, scans it for patient data, shows every line and sends nothing until you confirm.
model
sonnet
metadata.triggers
contribute, 기여, send my changes, share my edit, report a false positive, feedback, my journal is missing, open a PR, pull request, 오탐 신고, report a bug
Contribute
The user is a clinician who has probably never opened a pull request. Do the git work for
them: never make them type a git command, and never use the words "rebase", "upstream", or
"HEAD" in anything they read. Their local edits sit next to real patients and real manuscripts,
so the safety steps below, not the git mechanics, are why this is a skill.
The one rule that cannot bend
Nothing leaves the machine until the author has seen every line that would leave it and said
yes. Until something has been sent, say explicitly, every time, that nothing has been sent.
The safety scan is an aid, not a certificate: no pattern list recognises every patient name or
every hospital. Say so out loud, because a user who believes the scanner is complete stops
reading the diff, and that is exactly when the leak happens.
If the scan reports a blocker (patient-level data, a credential), do not offer a workaround.
The line gets deleted. A contribution never needs patient data to make its point.
Phase 0: What did they change?
bash
python3 "${CLAUDE_SKILL_DIR}/scripts/find_local_changes.py" --target claude --json \
--out qc/local_changes.json
This compares the installed skills against the hashes of what was shipped. It reads only.
Nothing changed → say so plainly and stop; that is normal, not a failure. Offer the
feedback path (Phase 4) instead.
Something changed → show it, grouped by skill:
A new file (a journal profile, a citation style, a reporting exemplar) — usually the most
valuable kind of contribution, because it is domain knowledge nobody in the project has. Say that.
An edited file — ask what was wrong for their specialty; the answer is the pull-request
description. Never guess at the reason for an edit.
A deleted file — usually not a contribution. Ask before including it.
A change that only makes sense in one hospital (internal rules, a template with the department's
letterhead) is a local adaptation, not a contribution: say so, leave it out, and tell them keeping
it is fine.
This gate fails closed: finding anything at all is a non-zero exit, unlike every other
detector in the repository — deliberately, because a tool that returns success while printing a
hospital name will eventually be trusted to have said nothing.
Verdicts: PHI_SUSPECTED, SECRET (blockers — the line is deleted, not argued with),
IDENTITY, INSTITUTION, APPROVAL_ID, MANUSCRIPT_ID, LOCAL_PATH. Fix each finding with
them, following the do line the scan prints for it (a name → a role, a hospital → a generic
descriptor, an IRB or manuscript ID → removed, a home path → ~). A manuscript ID matters because
a paper under review is confidential and its ID identifies it.
A file that is not UTF-8 text (an image, a binary) cannot be scanned or read, so it is listed
as NOT SCANNED and the scan fails until it is taken out of the contribution. qc/safety.json
records the sha256 of every file it scanned; the submit step refuses unless the files it is about
to send are exactly those, unchanged. After any edit, re-run the scan — an older report, or one
made with --text on a different file, clears nothing.
Then print the full text of every file that would be sent and ask them to read it. Not a
summary — the text. This is the step that actually protects them.
Phase 2: Does it meet the project's own bar?
Run the repository's validator against the change if the repo is available locally; otherwise
check by eye:
A journal profile cites the journal's public author guidelines: word limits, abstract
structure and AI policy are quoted from them or left out. No impact factors or numbers from memory.
A citation style is the official CSL from the Zotero repository.
A skill edit still says what it does, and the change is general — it would help someone at
another hospital. If not, it is a local adaptation; keep it local.
If it does not pass, say what to change, in their words. Do not send a contribution that will be
rejected — that is a worse experience than not contributing at all.
Phase 3: Send it
bash
python3 "${CLAUDE_SKILL_DIR}/scripts/submit_contribution.py" \
--changes qc/local_changes.json --safety qc/safety.json \
--title "Add a journal profile for <journal>" --dry-run
Always --dry-run first, and show them the plan. Then, on their explicit yes, run it again
without --dry-run. The script takes the highest rung available:
GitHub tool installed and signed in → it forks, copies the files, and opens the pull
request. They type nothing.
Installed but not signed in → it prints the single command (gh auth login) and stops.
Walk them through it: GitHub.com → HTTPS → log in through the browser.
Not installed → it writes the change to a file and opens a pre-filled issue in their
browser. Do not make installing a developer tool a condition of helping.
Tell them what happens next: a maintainer reads it, and if something needs changing they can
reply in plain language on that page. They will not be asked to do any git work.
Show full SKILL.md (502 more words)Show less
Phase 4: Feedback that is not a code change
A false positive or a failed step is often the most useful thing a clinician has: it is the only
evidence of how a detector behaves on a real manuscript rather than a synthetic fixture. Collect:
A detector fired wrongly: which detector (the detector field in its qc/*.json), the
verdict, and the smallest possible snippet that reproduces it — rewritten with fake numbers
and names if the real one cannot be shown; the shape of the sentence is what matters.
A step failed: the command, the error, the host (Claude Code / Codex / Cursor / Copilot),
the operating system.
Something was wrong for your specialty: what the toolkit assumed, and what is actually true.
Send it as an issue, after the same safety scan — a repro from a real manuscript is exactly where
PHI hides:
--web opens it in the browser pre-filled: they read it and press Submit. Nothing is sent by us.
Phase 5: Keep their change when they update
Tell them the installer already takes a permanent backup of any skill they modified before
it overwrites it (under ~/.medsci-skills/backups/), so updating never destroys their work —
many people avoid updating because they assume it would. If the change is worth keeping,
contributing it means the next update will contain it.
Settings — nobody is nagged
bash
python3 "${CLAUDE_SKILL_DIR}/scripts/contribution_prefs.py" --status
python3 "${CLAUDE_SKILL_DIR}/scripts/contribution_prefs.py" --on # remind me
python3 "${CLAUDE_SKILL_DIR}/scripts/contribution_prefs.py" --off # never mention it (default)
Reminders are opt-in and off by default. The installer mentions the option once, at the
end of a first install, and never again. Opted in, a reminder appears only when they actually
changed something, and at most once a month.
The setting governs reminders only. /contribute works whenever it is run.
The setting cannot weaken safety: there is no key for that, and
check_contribution_safety.py reads no configuration. Opting in never means "send without asking".
Saying thanks
Many clinicians who find this useful have never starred the repository because nobody told them
what a star is for. Once the toolkit has actually done something for them, tell them — the
script explains what a star is and makes it one command:
bash
python3 "${CLAUDE_SKILL_DIR}/scripts/star_repo.py" --how # explain + show both ways
python3 "${CLAUDE_SKILL_DIR}/scripts/star_repo.py" --now # do it from here (GitHub CLI)
Never ask twice — being shown once is recorded, and doing nothing is an answer.
Never dress this up: do not imply the toolkit is worse off without their star, and do not ask
before the toolkit has done something for them. Asking for thanks in advance is begging.
Scope
Touches only the installed skills — never the user's manuscripts, data, or any other file.
Contributions arrive as a fork's pull request or an issue; never push to the main repository.
Known limits
The patient-identifier patterns cover a fixed set of labels and formats. Among what they do not
recognise: Korean-language labels for a registration or patient number, a resident registration number
written without its hyphen, an alphanumeric patient ID, "hospital number", and a date of birth
written with a month name or introduced by "born". Widening them means keyword matching over
prose, which has produced false positives before, so it has not been done. Reading every line
(Phase 1) is what covers these.
Contribute 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.
A skill your agent uses when a clinical CSV/Excel dataset needs profiling and cleaning before analysis (missing values, outliers, duplicates, type mismatches).
A skill your agent uses when an institutional Word form (.doc/.docx IRB protocol, ethics application, grant template) must be filled without breaking its styles, tables, fonts or page layout.
A skill your agent uses when looking for research topics a longitudinal cohort database can answer (NHIS, UK Biobank, an institutional EMR or registry).
A skill your agent uses when sending local changes back to the project (an added journal profile, a fixed checklist item, an adapted skill) or reporting a false positive or bug. Contribute is an agent skill from Aperivue/medsci-skills. Use when sending local changes back to the project (an added journal profile, a fixed checklist item, an adapted skill) or reporting a false positive or bug.
When should I use Contribute?
Contribute fits situations like: sending local changes back to the project (an added journal profile; A fixed checklist item; an adapted skill); reporting a false positive.
How do I install Contribute in Claude Code?
Run `npx skills add Aperivue/medsci-skills --skill contribute -a claude-code`. Or copy the skill folder (skills/contribute in Aperivue/medsci-skills) into .claude/skills/contribute in your project. Claude Code loads it when a task matches its description.
How do I install Contribute in Codex?
Run `npx skills add Aperivue/medsci-skills --skill contribute -a codex`. Or copy the skill folder (skills/contribute in Aperivue/medsci-skills) into .agents/skills/contribute in your project. Codex loads it when a task matches its description.
Can I use Contribute in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Aperivue/medsci-skills --skill contribute -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/contribute, .gemini/skills/contribute, .github/skills/contribute and .opencode/skills/contribute in your project.
What does Contribute need to run?
Going by SKILL.md and its folder, Contribute needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (python3 and gh). Our summary lists: Python 3; A Bash shell.
Does Contribute access the network?
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Is Contribute safe to install?
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.
What licence does Contribute use?
Contribute is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Contribute use?
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Contribute?
Skills that share tags, products or a category with Contribute: Research Vault Literature Retrieval (cheneternity/Research-Vault-Literature-Retrieval, 292 stars), Paper Reader (AlphaLab-USTC/ResearchClaw, 134 stars), Reporting And Archiving Findings (K-Dense-AI/science-superpowers, 349 stars) and Wiki Researcher (microsoft/skills, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Contribute?
Aperivue (a GitHub organization) maintains it in Aperivue/medsci-skills, which has 331 GitHub stars. The repository holds 54 skills in this directory. The repository was last updated on October 5, 2026.
Source: Aperivue/medsci-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.