PR Pitch

SkillDev tools

NOT an entrypoint -- pr-preflight calls this for the write-up step; use pr-preflight for a fresh 'write/make/open a PR' request. Invoke this directly only to redo the write-up on a PR that already exists. Composes a PR body as a pitch that answers the unknowns a reviewer arrives with, with the branch's decisions, provenance, and paths-not-taken folded into collapsed accordions below it, while evicting those files from the repo.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the PR Pitch skill

What this skill tells your AI

The instructions your AI receives, as published by sillsdev/fieldworks in .claude/skills/pr-pitch/SKILL.md and read by ahel’s review.

Not an entrypoint. pr-preflight calls this for the write-up. Invoke it directly only to redo the write-up on an existing PR.

Read .claude/references/compact-style.md before writing, and .claude/references/evidence.md before publishing any screenshot.

What this produces

Two artifacts, always together:

  1. The PR body -- a pitch of 200-400 words above the fold, then collapsed <details> accordions holding decisions, evidence and paths not taken.
  2. A commit deleting the provenance sources from the branch, so research and working notes inform the reviewer without merging.

Do both or neither. Accordions without the deletion merges the scaffolding; deletion without accordions loses the reasoning.

Everything goes in the body, never a separate comment. The description is the one place a reader always looks, editing is in place, and it survives being read a year later without scrolling a thread.

The rule that drives everything

A reviewer arrives with the same unknowns the author started with, and no time to rediscover them. So, for every sentence:

TestZone
A reviewer needs it to say yes or no todayThe pitch
They would want it only to check a claim the pitch makesAn accordion
Nobody needs it today, but someone will in a yearAn accordion
NeitherDelete it

Phase 1 -- Triage every markdown file on the branch

git diff --name-status main...HEAD -- '*.md'

Judge by what the file is, not where it lives.

BucketTestDestination
DURABLESomeone changing this code next year must read it to change it correctlyStays -- align it in Phase 2
RESEARCHA one-time investigation whose conclusion is now baked into the codeAccordion, then delete
NOT-TAKENOptions considered and rejectedAccordion, then delete
PROCESSChecklists and working notes tied to doing the workAccordion (durable findings only), then delete
STALEDescribes code that no longer existsDelete. Salvage only a real reversal

Two traps: a spec is not automatically durable -- one that narrates what the code plainly says is RESEARCH; durable means constraints the code cannot express. And skills are usually durable, references usually not.

Present the triage as a table and get confirmation. Deletion is the developer's to approve.

Phase 2 -- Align what stays

Always trust the written code. Where a doc and the code disagree, the doc is wrong -- never the reverse, and never "reconcile" by going vague.

Verify every concrete noun a DURABLE file names -- type, method, path, setting key, test name -- with git grep -l "<Name>" -- 'Src/*'. Zero hits means the doc is wrong; find the current name. Recount every count it asserts; counts rot silently. This is a correction pass, not a rewrite.

Phase 3 -- The pitch

200-400 words, fitting one screen without scrolling. That is binding, not a target. Scale by risk, not diff size: an 82,000-line branch whose story is "one flag, defaulted off" gets a shorter body than a 200-line payment change.

When a section will not fit, it was accordion material -- move it down and leave one line up top. Never compress by deleting the qualifiers that make a claim honest.

The **Start here:** line leads the body -- the first file to read, and why. That is the entry point, not the riskiest thing; a reviewer not told where to begin reads the diff alphabetically, which is nobody's reading order. Then, in order:

0. Status (optional, one line) -- only for a PR open a while. What it is waiting on, and anything red. "Ready for review. CI green except the known-flaky interlinear test."

1. What it does (2-3 sentences) -- the concrete thing, not the framing. Never open with "This PR refactors". If the change is visible, a picture is expected, not optional: trimmed, captioned with what to look at, and labelled headless / live / mockup. The image supports the claim; the test pins it.

2. The unknown they start with (one paragraph) -- usually "what breaks?" or "why is this so big?". Answer it, then reframe the review around the question worth their time.

3. Where to look (at most five bullets) -- the failure points a domain expert would anticipate, ordered by what would sink the PR -- one line each: the risk, and the thing that pins it. The proof goes in an accordion; inlining it is what blows the budget.

4. What is deliberately not here -- deferrals, parity gaps, narrower paths. A reviewer who finds an unlisted gap stops trusting the whole pitch. Name the marker or follow-up PR, not the reasoning.

5. Stack and verification -- what it merges into and in what order. Build, tests, manual checks, and what was not run. Anything red goes here in plain words; a reviewer must never learn of a red job from the checks tab. Give anything they must run themselves as numbered, copy-pasteable steps -- prose verification instructions get skipped.

6. What you want from them (one line) -- "Next: approve, or tell me to split the installer change out." A pitch ending on a verification paragraph leaves the reviewer guessing whether they are approving, splitting or blocking.

Pitch rules

  • No process narration. "We then discovered", "after several iterations" -- cut.
  • No apology, no hedging, no "should be fine".
  • No section that exists only to demonstrate rigor.
  • Every claim with a name in it must be true of the current tree. Re-verify claims carried over from an earlier version of the body.
  • Word-count before publishing. Over 400, cut -- do not rationalize.

Phases 4 and 5

Accordions: references/accordions.md. Applying and the final checklist: references/publishing.md.

Related skills this calls: fieldworks-code-commenting (when doc text is inlined into source), fieldworks-migration-scope-review (large migration branches).

Signals

GitHub stars
111
Forks
42
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
pr-pitch-sillsdev
Source
github.com/sillsdev/fieldworks