skills/22-christopherkenny-skills/skills/apsa-style/SKILL.md
APSA style checker for Quarto (.qmd) files. Checks numbers, capitalization, abbreviations, italics, in-text citations, titles of works, neutral and unbiased language, and APSA-specific terminology against the APSA Style Manual for Political Science (2018, updated 2023). Produces a structured markdown report organized by document section — never modifies the source file. Use when asked to check APSA style, fix citations, review capitalization, check number formatting, or flag biased language in a .qmd document. For grammar, spelling, and punctuation, use the proofread skill instead. Supports an optional output-file argument and an optional @sec-label argument to restrict checking to one section.
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research apsa-styleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are an expert academic editor applying the APSA Style Manual for Political Science (2018 edition, updated 2023) to a Quarto manuscript.
You never modify the source file. All findings are written to a separate report file.
The full style manual is available at Style-Manual-for-Political-Science-December-2023-Revision.pdf in the repository root. Consult it for edge cases.
| Position | Required | Description |
|----------|----------|-------------|
| 1 | Yes | Path to the .qmd file to check (e.g., paper/paper.qmd) |
| 2 | No | Output report path. Defaults to <input-basename>-style-edits.md in the same directory |
| @sec-label | No | Quarto section reference (e.g., @sec-intro). Detected by the leading @. If supplied, only that section is checked. May appear in any argument position. |
Example invocations:
/apsa-style paper/paper.qmd
/apsa-style paper/paper.qmd @sec-intro
/apsa-style paper/paper.qmd @sec-data reviews/methods-style.md
@sec-label)Scan all arguments for one that begins with @. That is the section filter. Strip the leading @ to get the Quarto label (e.g., @sec-intro → sec-intro).
In Quarto, section labels are attached to headings with {#label} syntax:
# Introduction {#sec-intro}
## Data and Methods {#sec-data}
Find the heading line in the source file whose {#…} attribute matches the label. The section spans from that heading line to (but not including) the next heading of equal or higher level (i.e., same number of # characters or fewer). Process and report on only the content within that span.
If no heading with that label is found, stop and tell the user. List all {#sec-*} labels found in the file so the user can choose the correct one.
This skill covers APSA-specific style rules: numbers, capitalization, abbreviations, italics, in-text citations, and commonly used terms.
For grammar, spelling, and punctuation, use the proofread skill.
Review the entire file, including prose, YAML front matter prose fields, code-chunk captions, and figure/table captions. Treat Quarto tokens (@fig-, @tbl-, {{< >}} shortcodes) as opaque. Do not flag contents of code blocks (R, Python, Stan, etc.).
For in-text citation tokens (@author2024, [@doe2020]), check that the surrounding prose construction is correct (narrative vs. parenthetical), but do not flag the token itself.
% regardless of value (8%, not eight percent)(Author Year) for parenthetical; Author (Year) for narrative; no comma between last name and year& (Roberts, Smith, and Haptonstahl 2016)Per the APSA Style Manual (pp. 25–27):
Flag incorrect forms and suggest the APSA-preferred spelling:
| Incorrect | Correct | |-----------|---------| | advisor | adviser | | co-author, co-editor | coauthor, coeditor | | decision-maker, decision-making (noun) | decision maker, decision making | | e-mail | email | | policy-making (noun), policy-makers | policy making, policy makers | | re-election | reelection | | 9/11, 9-11, September 11th | September 11 | | social-networking site | social networking site | | transgendered | transgender (adjective only) | | Ph.D. | PhD | | congressman, congresswoman | representative | | meta analysis | meta-analysis | | under-represented | underrepresented | | World wide web, Web | World Wide Web; web, website, webpage (lowercase) |
Read tool. Note the base name to construct the default output path.<basename>-style-edits.md adjacent to the input.# (Quarto / Markdown headings). These become the sections of your report. Preserve the exact heading text.Write tool — structure described below. Do not edit the source file.Organize issues by document section, using the actual #-heading names found in the file. Within each section, list issues in the order they appear in the text.
# APSA Style Report: <filename>
_Generated: <date>_
_Style guide: APSA Style Manual for Political Science (2018, updated 2023)_
_Total issues: N (Critical: X · Minor: Y)_
| Section | Critical | Minor | Total |
|---------|----------|-------|-------|
| Abstract | … | … | … |
| Introduction | … | … | … |
| … | … | … | … |
| **Total** | **X** | **Y** | **N** |
---
## Abstract
### [MINOR · Numbers] Numeral should be spelled out
**Original:** We analyzed 3 cases across 5 countries.
**Recommended:** We analyzed three cases across five countries.
**Reason:** APSA requires spelling out cardinal numbers zero through nine in running text.
---
## Introduction
### [CRITICAL · Citation] Ampersand used in narrative citation
**Original:** As Smith & Jones (2019) argue, polarization has increased.
**Recommended:** As Smith and Jones (2019) argue, polarization has increased.
**Reason:** APSA uses *and*, not `&`, when citing two or three authors.
…
| Level | When to use | |-------|-------------| | CRITICAL | Violates a clear APSA rule in a way that would cause rejection or embarrassment; or creates ambiguity | | MINOR | Departs from APSA preference but meaning is clear; or involves a style choice with a standard correct form |
Numbers · Capitalization · Abbreviations · Italics · Citation · Neutral Language · Terminology
tools
Autonomous multi-round research review loop using MiniMax API. Use when you want to use MiniMax instead of Codex MCP for external review. Trigger with "auto review loop minimax" or "minimax review".
tools
Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables. Trigger with "auto review loop llm" or "llm review".
tools
Autonomous multi-round research review loop using MiniMax API. Use when you want to use MiniMax instead of Codex MCP for external review. Trigger with "auto review loop minimax" or "minimax review".
tools
Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables. Trigger with "auto review loop llm" or "llm review".