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-prosefixes objective problems (AI tells, wordiness, inconsistent terms) against general/venue norms.match-stylealigns to a specific target voice you provide (your corpus and/or venue exemplars). Runpolish-prosefirst to clean, thenmatch-styleto 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-exemplarscorpus. - Optional: a glossary of preferred terms/acronyms.
Process
- 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-exemplarscorpus (open-access only) →venue.json.
- Author voice: run
- Profile the draft the same way:
python3 scripts/style_signature.py --corpus <draft> --out draft.json. - 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"). - 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.
- Align the draft section by section, guided by
style-gap.mdand the rewrite norms in references/style-dimensions.md. Preserve every number, result, claim, and citation verbatim. Keep a change log. - Verify nothing substantive moved: re-run
verify-citationsif 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_preferencesrecords the chosen style signature (author voice, venue register, or merged) and spelling/voice, so align to it instead of re-deciding. Readlessons.mdforrecurringstyle deviations to watch for. - At end: append durable findings in the shared format
- [YYYY-MM-DD] (match-style | <scope>) deviation -> recommendation(viareflect-and-improve'sreflect_log.py append, which dedupes and dates); persist the resolved author-vs-venue conflicts so later runs stay consistent. Cross-draft deviations arerecurring; one-offs arethis-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.