mcpField
P
polish-language

polish-language

github.com/aperivueDocuments353110 installsUpdated 1d ago
Repository

About polish-language

polish-language is a skill for academic authors who need mechanical consistency checks and optional sentence-level clarity edits in English manuscripts. It preserves scientific claims, values, and citations, and requires approval before applying changes.

Key features

  1. 01Check abbreviations, spelling, and terminology consistency
  2. 02Flag numeric ranges, P values, and unit formatting
  3. 03Scan figure sources for US–UK spelling drift
  4. 04Apply mechanical fixes only after approval
  5. 05Offer sentence-level clarity edits with a change log

Use cases

  1. 01Check an English manuscript before submission
  2. 02Find regional spelling differences in figure sources
  3. 03Polish non-native English while preserving claims and citations
  4. 04Use strict mode as a consistency gate

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aperivue/medsci-skills --skill polish-language

After installing, type/polish-languagein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

skill.yml
scripts/
lint_consistency.py
lint_figure_locale.py
scripts/lint_challenge/
problem.md
verify.sh
scripts/lint_challenge/expected/
report.txt
scripts/lint_challenge/fixture/
consistent_uk.md
consistent_us.md
manuscript.md
scripts/lint_figure_locale_challenge/
problem.md
verify.sh
tests/
test_consistency_controls.py
test_numeral_designators.sh

Details

From the project README

Polish-Language Skill

Tighten a manuscript's mechanical language consistency and clarity before circulation or submission — the copy-editor pass content-focused skills skip. The author is often a non-native (ESL) English writer, so clarity edits keep the formal academic register and never touch facts. Manuscript edits are in English.

This skill never rewrites scientific claims, changes numeric values, edits citations, or judges study quality; it standardizes house style and improves sentence-level clarity, with explicit user approval for every edit. Out of scope: AI-tell removal (humanize, which does not do general copy-editing), drafting or restructuring (write-paper), reporting-guideline items (check-reporting), AI-search optimization (academic-aio), reference formatting and citation integrity (manage-refs, verify-refs), and translation.

Input: a manuscript or section (Markdown / plain text). Output: (1) the deterministic consistency report, and (2) — only after a user gate — a clarity-polished revision with a change log limited to style.

Workflow

Phase 1: Deterministic consistency lint (no LLM judgement)

Run the bundled linter — it reports, never edits:

python3 "${CLAUDE_SKILL_DIR}/scripts/lint_consistency.py" path/to/manuscript.md
# add --strict to exit non-zero when any issue is found (CI / pre-submission gate)

It flags eight families, each with line numbers and a per-category + total count:

  1. Abbreviations — used-before-defined, defined-but-unused, defined-twice, used-but-never-defined (define-once discipline).
  2. Spelling — mixed US/UK variants (analyze/analyse, tumor/tumour, …); reports the minority side against the document's dominant variant.
  3. Numeric ranges — hyphen between numbers where an en-dash belongs (5-10 → 5–10).
  4. p-values — mixed P/p case; impossible P = 0.000.
  5. Hyphenation / terminology — variant forms of one term (follow-up / followup / "follow up").
  6. Small numbers — single digits 1–9 written as digits in prose.
  7. Units — missing space between value and unit (5mg → 5 mg).
  8. Thousands separator (title vs body) — a float title writes a number with a period separator (3.681) that the body writes with a comma (3,681).

Present the report to the user. The linter output is the source of truth for what is mechanically wrong: do not invent further "issues" from memory, and label anything else you notice as an editorial suggestion, not a linter finding. The fixed rules do not settle every grammar or journal preference, so triage flags in context.

Phase 1b: Figure-SOURCE locale drift

Text baked into a figure never reaches Phase 1, so a UK word typed into a PowerPoint panel or plotting script ships in a US manuscript unseen. Scan the figure sources (no OCR):

python3 "${CLAUDE_SKILL_DIR}/scripts/lint_figure_locale.py" --manuscript path/to/manuscript.md --figures-dir figures/
# --spelling us|uk forces the target; otherwise it reads a `spelling:` front-matter field,
# then falls back to the body's own US/UK majority. --strict exits non-zero on any drift.

It reads <a:t> runs inside *.pptx slide XML and the text of *.py / *.R plotting scripts, with the same US↔UK families as Phase 1. FIGURE_LOCALE_DRIFT is Minor — copy-edit the source before the raster is re-exported. A missing figures directory is not an error; it exits 0 with nothing judged.

Phase 2: Triage with the user (gate)

Walk the user through the report. Some flags are author choices (a journal may mandate UK spelling, or digits for all numbers). User approval is required before any edit — confirm per category which to apply and which to keep. Record the decisions; do not auto-apply.

Phase 3: Apply mechanical fixes (style-only)

For each approved category, apply the deterministic fix with Edit:

  • standardize spelling to the chosen variant,
  • replace numeric-range hyphens with en-dashes,
  • normalize P/p and fix P = 0.000 to the reported inequality,
  • unify hyphenation, spell out small numbers, add value/unit spaces,
  • define each abbreviation once at first use; remove redundant redefinitions.

Re-run lint_consistency.py after editing — the count should drop to the issues the user chose to keep. This re-run is the verification gate; never claim a fix without it.

Phase 4: ESL clarity polish (optional, gated, style-only)

If the user requests a clarity pass, improve readability sentence by sentence while preserving meaning, register, numbers, and citations:

  • split run-on sentences; fix article (a/an/the) and preposition usage;
  • correct subject–verb agreement and awkward non-native phrasings;
  • prefer active voice only where it does not change emphasis or claims.

Show each proposed change as a before/after diff and get user review before writing. Numbers, p-values, effect sizes, units, citations, and claims are copied verbatim; an edit that would change any of them is out of scope — skip it. Never merge, add, or drop a scientific claim, number, or reference. If a sentence's meaning is even slightly uncertain, leave it and ask; do not invent domain facts to smooth a sentence. Every applied change must trace to a linter flag or a user-approved clarity suggestion in the change log.

Reproducible challenge card

Deterministic and network-free (synthetic manuscript with seeded defects + expected/report.txt):

bash "${CLAUDE_SKILL_DIR}/scripts/lint_challenge/verify.sh"   # PASS = 11 seeded issues across 8 categories + 2 clean controls

Comments

Markdown supported