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
development
Conduct rigorous thematic analysis (TA) of qualitative data following Braun and Clarke's (2006) six-phase framework. Use whenever the user mentions 'thematic analysis', 'TA', 'Braun and Clarke', 'qualitative coding', 'identifying themes', or asks for help analysing interviews, focus groups, open-ended survey responses, or transcripts to identify patterns. Also trigger for questions about inductive vs theoretical coding, semantic vs latent themes, essentialist vs constructionist epistemology, building a thematic map, or writing up a qualitative findings section. Covers all six phases, the four upfront analytic decisions, the 15-point quality checklist, and the five common pitfalls. Produces a Word document write-up and an annotated thematic map. Does NOT cover IPA, grounded theory, discourse analysis, conversation analysis, or narrative analysis — use a different method for those.
development
Guide users through writing a systematic literature review (SLR) following the PRISMA 2020 framework. Use this skill whenever the user mentions 'systematic review', 'systematic literature review', 'SLR', 'PRISMA', 'PRISMA 2020', 'PRISMA flow diagram', 'PRISMA checklist', or asks for help writing, structuring, or auditing a literature review that follows reporting guidelines. Also trigger when the user asks about inclusion/exclusion criteria for a review, search strategies for databases like Scopus/WoS/PubMed, study selection processes, risk of bias assessment, or narrative synthesis for a review paper. This skill covers the full PRISMA 2020 checklist (27 items), produces a Word document manuscript in strict journal article format, generates an annotated PRISMA flow diagram, and enforces APA 7th Edition referencing throughout. It does NOT cover meta-analysis or statistical pooling. By Chuah Kee Man.
testing
Performs placebo-in-time sensitivity analysis with hierarchical null model and optional Bayesian assurance. Use when checking model robustness, verifying lack of pre-intervention effects, or estimating study power.
data-ai
Fit, summarize, plot, and interpret a chosen CausalPy experiment. Use after the causal method has been selected, including when configuring PyMC/sklearn models and scale-aware custom priors.