contribute
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.
Skill by Aperivue
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/aperivue-contribute
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/contribute
What's inside
- Skill 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.
- License
- MIT
- 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
- Instructions
- 176 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (8)
- SKILL.md
- check_contribution_safety.py · scripts/
- contribution_prefs.py · scripts/
- find_local_changes.py · scripts/
- star_repo.py · scripts/
- submit_contribution.py · scripts/
- skill.yml
- test_contribution_safety.sh · tests/
SKILL.md (first lines)
# 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.
## Phase 1: The safety scan (blocking)
```bash
python3 "${CLAUDE_SKILL_DIR}/scripts/check_contribution_safety.py" \
--changes qc/local_changes.json --out qc/safety.json
```
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:
1. **GitHub tool installed and signed in** → it forks, copies the files, and opens the pull
request. They type nothing.
2. **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.
3. **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.
## 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:
```bash
python3 "${CLAUDE_SKILL_DIR}/scripts/check_contribution_safety.py" --text qc/feedback.mdFrom Aperivue/medsci-skills, MIT.
More from Aperivue/medsci-skills
- 0.779score
design-ai-benchmarking
Aperivue
Use when designing a study that benchmarks AI systems against a human-expert panel, before data collection.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
design-study
Aperivue
Use when checking a radiology or medical AI study design before drafting or submission.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
deidentify
Aperivue
Use when clinical data may contain PHI and must be de-identified before any LLM-assisted analysis.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
define-variables
Aperivue
Use when exposure, outcome, covariate or eligibility definitions and cutoffs need a citable basis before the protocol.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
add-journal
Aperivue
Use when a target journal has no profile yet.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
calc-sample-size
Aperivue
Use when planning how many patients or cases a study needs before data collection (power analysis, IRB justification).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
review-paper
Aperivue
Use when writing a literature review article (narrative, scoping PRISMA-ScR or systematic).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
author-strategy
Aperivue
Use when analyzing a researcher's publication record from PubMed.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
academic-aio
Aperivue
Use when a medical AI paper should be found and cited by AI search engines and RAG tools.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
check-reporting
Aperivue
Use when auditing a manuscript item by item against a reporting guideline or risk-of-bias tool.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
clean-data
Aperivue
Use when a clinical CSV/Excel dataset needs profiling and cleaning before analysis (missing values, outliers, duplicates, type mismatches).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
fill-icmje-coi
Aperivue
Use when each author needs an ICMJE Conflict of Interest disclosure form (coi_disclosure.docx) for submission.
SkillAFreshness: A★ 349Claude Code +9
Signals
- Stars
- 349
- Forks
- 83
- Open issues
- 4
- Last commit (this folder)
- Oct 4, 2026 (24 days ago)
- Last release
- Oct 4, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Aperivue/medsci-skills
- Website
- aperivue.com/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Aperivue
- 0.779score
review-paper
Aperivue
Use when writing a literature review article (narrative, scoping PRISMA-ScR or systematic).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
author-strategy
Aperivue
Use when analyzing a researcher's publication record from PubMed.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
academic-aio
Aperivue
Use when a medical AI paper should be found and cited by AI search engines and RAG tools.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
add-journal
Aperivue
Use when a target journal has no profile yet.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
calc-sample-size
Aperivue
Use when planning how many patients or cases a study needs before data collection (power analysis, IRB justification).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
check-reporting
Aperivue
Use when auditing a manuscript item by item against a reporting guideline or risk-of-bias tool.
SkillAFreshness: A★ 349Claude Code +9
Cite this page
contribute skill. Agent Mart. https://agentmart.dev/skills/aperivue-contribute (last updated 2026-10-24)