mcpField
M
match-style

match-style

github.com/shaishavmaisuriaDocuments57101 installsUpdated 4d ago
Repository

About match-style

match-style aligns a research draft with the author's own voice, a venue's register, or a consistent voice across co-authors without changing its substance. It measures style differences and provides an aligned draft or section-level diff with conflicts noted.

Key features

  1. 01Match an author's prior writing
  2. 02Align with venue exemplars
  3. 03Unify co-author voice
  4. 04Measure style gaps
  5. 05Preserve claims, results, and citations

Use cases

  1. 01Align a new draft with an author's papers
  2. 02Adapt prose to a venue's published style
  3. 03Make a multi-author draft consistent

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/shaishavmaisuria/research-paper-lifecycle-skills --skill match-style

After installing, type/match-stylein Claude Code to confirm it loaded.

Bundled filesreferences/style-dimensions.mdscripts/style_signature.py

Details

From the project README

Match Style

Aligns a draft to a target voice without touching its substance. Three modes, combinable:

  • author voice — match the researcher's own prior papers (terminology, rhythm, hedging, structure) so a new draft reads as theirs.
  • venue register — match the published style of the target venue (via study-exemplars).
  • co-author merge — make a multi-author draft read in one consistent voice instead of a patchwork.

This is part of the acceptance-maximizing toolkit, alongside polish-prose (de-AI-ify + tighten), benchmark-paper (venue-fit score), simulate-reviewers (content critique), and preflight-check (desk-reject defects). Be honest with the user: no rewrite guarantees acceptance. What style alignment buys is consistency, venue fit, and readability — real but bounded contributors to how a paper is received.

When to use vs. polish-prose

  • polish-prose fixes objective problems (AI tells, wordiness, inconsistent terms) against general/venue norms.
  • match-style aligns to a specific target voice you provide (your corpus and/or venue exemplars). Run polish-prose first to clean, then match-style to align.

Inputs

  • The draft: .tex / .md / text.
  • For author voice: paths to the author's own prior papers (.tex/.pdf/.txt). These must be the author's own work — see Guardrails.
  • For venue register: the target venue id → venues/ profile → study-exemplars corpus.
  • Optional: a glossary of preferred terms/acronyms.

Process

  1. Build the style signature of the target.
    • Author voice: run python3 scripts/style_signature.py --corpus <files...> --out author.json. It measures terminology frequency, mean/var sentence length, hedging density, connective usage (however/moreover/thus…), passive-voice rate, citation density, section-heading vocabulary.
    • Venue register: run the same over the study-exemplars corpus (open-access only) → venue.json.
  2. Profile the draft the same way: python3 scripts/style_signature.py --corpus <draft> --out draft.json.
  3. Diff draft vs target(s): python3 scripts/style_signature.py --compare draft.json --against author.json [venue.json] --out style-gap.md. This reports where the draft deviates (e.g. "you use 'we propose' 0×; your prior papers average 3×", "hedging 2× higher than venue exemplars").
  4. Surface conflicts. When author voice and venue register disagree (e.g. your habitual first-person vs a venue that prefers passive), present the trade-off — do not silently pick one.
  5. Align the draft section by section, guided by style-gap.md and the rewrite norms in references/style-dimensions.md. Preserve every number, result, claim, and citation verbatim. Keep a change log.
  6. Verify nothing substantive moved: re-run verify-citations if references were near edits; diff claims/numbers before/after.

Output

  • style-gap.md — the measured deviations (draft vs author and/or venue), each with the numbers behind it.
  • The aligned draft (or a section-by-section diff for the author to accept).
  • A short note on any author-vs-venue conflicts and which way each was resolved.

Guardrails

  • Only the author's own papers are used for the author-voice corpus. If a user supplies someone else's paper to "write like them", decline the copyright/impersonation request and offer venue-register matching from open-access exemplars instead.
  • Venue exemplars are fetched on demand from open-access sources and processed transiently (see study-exemplars) — never bundled or stored.
  • Style only: never alter a technical claim, number, result, or citation. Flag, don't fix, anything that would.
  • No acceptance promises. Frame outcomes as consistency and venue fit, not a guaranteed decision.
  • Respect the venue's AI-use disclosure policy (in the venue profile); never use style-matching to evade an AI-detection or disclosure requirement.

Memory

Uses the shared .paper-memory/ convention in the user's paper directory (full spec: paper-memory-convention.md).

  • At start: read .paper-memory/profile.yml — writing_preferences records the chosen style signature (author voice, venue register, or merged) and spelling/voice, so align to it instead of re-deciding. Read lessons.md for recurring style deviations to watch for.
  • At end: append durable findings in the shared format - [YYYY-MM-DD] (match-style | <scope>) deviation -> recommendation (via reflect-and-improve's reflect_log.py append, which dedupes and dates); persist the resolved author-vs-venue conflicts so later runs stay consistent. Cross-draft deviations are recurring; one-offs are this-paper.
  • Create .paper-memory/ on demand if absent and offer to add it to the project .gitignore. It is local-only; never upload it or copy it into this repo.

Comments

Markdown supported