Impeccable
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
Investment pitch for a new or continuing design system: cost of current state, ROI with visible assumptions, objections, the ask.
$ npx skills add murphytrueman/design-system-ops --skill system-pitch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install murphytrueman/design-system-ops system-pitch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/system-pitch .claude/skills/system-pitch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "system-pitch" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/system-pitch into .claude/skills/system-pitch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "system-pitch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/murphytrueman/design-system-ops/tree/main/skills/system-pitchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add murphytrueman/design-system-ops --skill system-pitch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install murphytrueman/design-system-ops system-pitch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/system-pitch .agents/skills/system-pitch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "system-pitch" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/system-pitch into .agents/skills/system-pitch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "system-pitch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add murphytrueman/design-system-ops --skill system-pitch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install murphytrueman/design-system-ops system-pitch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/system-pitch .cursor/skills/system-pitch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "system-pitch" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/system-pitch into .cursor/skills/system-pitch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "system-pitch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/murphytrueman/design-system-ops.git --path skills/system-pitch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add murphytrueman/design-system-ops --skill system-pitch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install murphytrueman/design-system-ops system-pitch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/system-pitch .gemini/skills/system-pitch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "system-pitch" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/system-pitch into .gemini/skills/system-pitch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "system-pitch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install murphytrueman/design-system-ops system-pitchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add murphytrueman/design-system-ops --skill system-pitch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/system-pitch .github/skills/system-pitch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "system-pitch" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/system-pitch into .github/skills/system-pitch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "system-pitch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add murphytrueman/design-system-ops --skill system-pitch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install murphytrueman/design-system-ops system-pitch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/system-pitch .opencode/skills/system-pitch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "system-pitch" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/system-pitch into .opencode/skills/system-pitch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "system-pitch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
system-pitchInvestment pitch for a new or continuing design system: cost of current state, ROI with visible assumptions, objections, the ask.
System Pitch is an agent skill from murphytrueman/design-system-ops. Investment pitch for a new or continuing design system: cost of current state, ROI with visible assumptions, objections, the ask. Triggers: pitch the system, business case, justify the investment, sell this to leadership. For a routine status update use stakeholder-brief.
Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Design systems. The repository describes itself as: Claude Code skills for the work that keeps a design system alive. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f167898. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteGrepGlobBash(cat:*)Bash(ls:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
System Pitch loads about 5.9k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 3,450 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from murphytrueman/design-system-ops at commit f167898, republished under its MIT licence (© murphytrueman). 3,450 words, ~5,854 tokens.
.claude/skills/system-pitch/SKILL.md (or your agent's skills folder).A skill for writing a design system investment pitch that leads with a business problem, builds an honest ROI case, and addresses likely objections. Output is a pitch document that works for an audience who has never heard of a design system and does not need to.
Confirm that every path in this skill's frontmatter references: exists relative to this SKILL.md. If any is missing, stop: the install is incomplete, usually because a flattening installer (for example npx skills install) dropped the repo-root knowledge-notes/ directory. Tell the user to reinstall by a method in 1-INSTALL.md and run verify-install.sh from the install root. Proceed without the references only if the user explicitly says to, and then say in the output that it was produced without the pack's reference material.
Design system pitches usually fail for one of two reasons. They lead with the design system — its components, its tokens, its Storybook — rather than with the business problem it solves. Or they oversell: promising a design system will solve problems it cannot solve, which creates scepticism or, worse, expectation debt that damages credibility when the system ships and the promised outcomes do not materialise.
The pitch that works leads with the cost of the current state. It makes the reader feel the friction of inconsistency, the waste of duplicated effort, the risk of inaccessible interfaces — before it introduces the design system as the solution. Then it is specific about what the investment costs, honest about the timeline, and precise about what success looks like.
Audience calibration, framing patterns, metric translation, anti-patterns and the numbers-honesty rules are shared with stakeholder-brief and live in the executive-communication note. This skill covers what is specific to an investment case.
Ask for or confirm:
If system-health or adoption-report output exists, use its figures and cite them. Claims about the user's system come from inspected files, prior skill output, or the user — never from what a typical organisation looks like. Anything the pitch needs and nobody can supply stays as [needs data: …].
The "likely objection" is important. A pitch that does not address the elephant in the room leaves the reader thinking about it instead of engaging with the argument.
Small-system note (fewer than 5 components): For small teams or products, the pitch faces a different objection: "Why do we need a design system? Can't we just coordinate?" The answer is that coordination without a system is coordination without a contract — it works until someone is on holiday, until a new team member joins, or until the product grows past the point where everyone can hold the conventions in their heads. The ROI framing shifts from "eliminate duplicated effort across 20 teams" to "protect consistency as the team grows, reduce onboarding time for new designers and developers, and make accessibility compliance a default rather than a per-feature effort." If the system already exists at this size, the pitch is usually for continued investment or formalisation — frame the ask around what has already been achieved informally and why it is worth making durable.
Before writing the pitch, estimate the cost of the current state. These numbers power the "cost of the current state" section and make the ROI argument concrete. Every line is labelled measured, estimated (with reasoning) or assumed, and every hour is costed at the same loaded hourly rate used for the investment in Step 4.
Loaded hourly rate (assumed, one rate for everything): ___ — salary plus overheads, divided by working hours a year (2,080 for a 40-hour week)
1. Duplicated effort: How many teams are independently building the same UI patterns?
2. Inconsistency cost: How many customer-facing inconsistencies exist?
3. Onboarding cost: How long does it take a new designer or developer to learn current conventions?
4. Accessibility risk: What is the current compliance state?
5. Speed cost: How much longer do features take without shared components?
6. Competitive positioning: Are competitors shipping faster or with more consistent experiences? Qualitative only, unless the user supplies a sourced comparison.
Not all of these will have hard numbers. A line with no figure the user can supply or derive from a source stays [needs data: …] and is left out of the total; the pitch says which lines are unquantified. An estimate the user gives is labelled as theirs, with their reasoning. Don't supply a conservative-sounding number yourself: it becomes the organisation's number the moment it's in the deck.
Total estimated annual cost of current state: ___ [sum of the quantified lines above, recomputed]
Prepared by: [name]
Date: [date]
For: [audience]
Open placeholders: [list every [needs data: …] left in the document, or "none"]
Start with the problem. Do not name the solution in the first section.
Describe what is happening now that is costing time, money, quality, or trust. Use specific examples where available. If data is available, use it and cite it. If estimates must be used, frame them conservatively and show the reasoning.
Common angles that land with business audiences:
Pick the 2–3 angles that hit hardest for this audience. A pitch that lists every possible benefit sounds like it is trying too hard.
One paragraph. No jargon. The clearest possible description of what the investment delivers.
The goal is not to explain what a design system is technically. It is to describe what changes for the business. "A shared library of interface components that every product team uses" is half of it. "So that each team builds faster, more consistently, and without solving the same problems twice" is the other half. Together, one sentence.
Be specific about what is being asked for. Avoid vague requests for "resources" or "support."
Frame the investment in terms the audience understands:
Present the investment as proportional to the problem, with the arithmetic from Step 4 visible: current-state cost per year, investment per year, and the recomputed payback month.
Be specific and honest. Define success in business terms and set a realistic timeline.
Not: "Teams will be more consistent and efficient." But: "Within six months, all three web product teams will be building new features from the shared component library. Within twelve months, time-to-first-review for new feature designs will decrease by [estimate] because designers will be composing from existing patterns rather than designing from scratch."
Name what the investment will not solve. "This investment will not resolve our accessibility debt overnight — it will prevent new debt from accumulating and create a path to addressing the existing issues systematically."
Define the metrics by which success will be measured, each with a baseline measured before the build starts:
Use one adoption target throughout the pitch; the same figure feeds the benefit ramp in Step 4.
One to two paragraphs directly engaging with the most predictable counter-argument, using the method in Step 5. Name the objection explicitly — "The most likely concern is: [state it clearly]" — then respond with data or reasoning.
One sentence. What is needed, and by when? Then the specific items. No more than three.
End the pitch with Based on: [sources, with dates].
The pitch should make the ROI calculation transparent and credible. Follow the numbers-honesty rules in the executive-communication note: one loaded hourly rate for costs and benefits, every input labelled, every derived figure recomputed.
ROI = (Annual benefit − Annual cost) / Annual cost
Annual benefit = the share of the current-state cost the system removes that year (the adoption assumption from the success metrics)
Annual cost = the cost of building, operating and maintaining the system
Payback = the first month in which cumulative benefit is at least cumulative cost
Every input below is an illustrative assumption. Never carry these numbers into a real pitch; replace them with the user's figures and recompute.
Loaded hourly rate (assumed): $75/hour, used for both costs and benefits. One FTE = 2,080 hours × $75 = $156,000/year.
Cost of current state (annual):
Investment:
Adoption assumption: 50% of the benefit realised in year 1 (ramp-up), 90% from year 2.
Year 1: benefit $450,000 × 50% = $225,000; cost $254,000. ROI = ($225,000 − $254,000) / $254,000 = −11.4%.
Year 2: benefit $450,000 × 90% = $405,000; cost $254,000. ROI = ($405,000 − $254,000) / $254,000 = 59.4%.
Payback: monthly cost is $254,000 / 12 = $21,167. Monthly benefit is $18,750 in year 1 and $33,750 in year 2. After 12 months the shortfall is $254,000 − $225,000 = $29,000. Year 2 closes it at $33,750 − $21,167 = $12,583 a month: month 14 cumulative benefit $292,500 against cost $296,333; month 15 cumulative benefit $326,250 against cost $317,500. Payback in month 15.
Include a small table that shows:
Make the assumptions visible: "These calculations assume [year 1]% of the benefit in year 1 and [target]% from year 2, at a loaded rate of [rate]. If adoption is slower, payback moves out; if faster, ROI improves." The adoption figures here are the same ones stated in the success metrics.
Add one sensitivity line: name the single input that moves payback most (usually the year-1 adoption share or the duplicated-effort weeks), and show payback with that input halved. A reader who sees "payback month 15, or month 22 if year-1 adoption is 25% rather than 50%" trusts the 15 more than a reader who sees only the 15.
For sceptical audiences, rerun the calculation with lower adoption, a longer ramp, and hard benefits only (time savings, support cost), and show both cases side by side. If the conservative case does not pay back within a period the audience cares about, say so and narrow the ask — a smaller first phase with a shorter payback. Never fill a figure without a source; leave [needs data].
These are real but hard to quantify. Mention them only after the hard ROI is established, and never put a number on them without data:
A pitch that does not address the elephant in the room leaves the reader thinking about it instead of engaging with the argument. For each objection that fits this context:
Common objections and where the response starts:
Use the audience calibration table and framing patterns in the executive-communication note: what each audience cares about, what to lead with, the language that lands, and what to avoid. Check the draft against the anti-patterns in the same note before delivering it.
Say which team model the investment buys. The three models most teams use are Nathan Curtis's ("Team Models for Scaling a Design System", 2015, and his later writing at EightShapes); name them with credit:
| Model | Structure | What the ask looks like | Watch for |
|---|---|---|---|
| Solitary | One team (usually the one that started it) owns the system and others consume it | Time carved from that team's roadmap | The owning team's priorities crowd out everyone else's needs |
| Centralised | A dedicated team owns and maintains the system; product teams contribute | Headcount for the central team, plus a contribution route | The central team becomes a bottleneck if it's understaffed |
| Federated | Contributors from several product teams share ownership, with a coordinating role | A coordinator role plus a stated time allocation from each contributing team | Consistency depends on governance discipline; the allocation has to be real time, not goodwill |
Headcount for any model comes from the organisation's numbers (Step 2 and the ask), never from a range in this skill. State the model, the reason it fits the organisation's size and structure, and what would prompt a change: "For [n] teams and [n] products, a centralised team of [the ask] with a contribution route; as more teams contribute, a federated model."
Not investing in a design system has costs. Make them explicit, using only figures already sourced in Step 2; anything not quantified there stays qualitative or [needs data: …].
One short section: the quantified current-state cost recurs, so over the pitch's horizon it is that annual figure times the years (recompute it), set against the investment over the same period. The unquantified lines from Step 2 (inconsistency, debt, accessibility exposure, competitive position) stay qualitative, one sentence each, without numbers.
Before delivering the pitch, verify all of these:
Based on: line© murphytrueman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/system-pitch of murphytrueman/design-system-ops.
Open the folder on GitHubat commit f167898
System Pitch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| System Pitch this skillmurphytrueman/design-system-ops | 203 | — | ~5.9k | Automated safety check: Pass | MIT | |
| Impeccablebestofjs/bestofjs | 3.1k | 27 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Figma Design System Builderwarpdotdev/warp | 65k | 2 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Shadcnsupabase/evals | 143 | 42 repos | ~4.5k | Automated safety check: Pass | Apache-2.0 |
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
supabase/evals
Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI.
Ohh-889/skyroc
Token architecture, component specifications, and slide generation.
murphytrueman/design-system-ops
Write the AGENTS.md that tells coding agents how to use this design system: where things live, sourced rules, how to check work, what not to do; Claude, Cursor or Copilot pointers on request.
murphytrueman/design-system-ops
Write a six-section prose description (purpose, props, anti-patterns, composition, accessibility, examples) for a Figma component's description field so LLMs read it via MCP.
murphytrueman/design-system-ops
Write release notes, a migration guide and a team announcement for a design system change that is already decided, scaled to its impact.
murphytrueman/design-system-ops
Generate machine-readable index files in .ai/index/ (component inventory, uses/usedBy graph, stats) for AI agents.
murphytrueman/design-system-ops
Generate tested jscodeshift/postcss codemods for design system migrations: token renames, prop renames or removals, import paths, component swaps.
murphytrueman/design-system-ops
Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.
Categories
Investment pitch for a new or continuing design system: cost of current state, ROI with visible assumptions, objections, the ask. System Pitch is an agent skill from murphytrueman/design-system-ops. Investment pitch for a new or continuing design system: cost of current state, ROI with visible assumptions, objections, the ask.
System Pitch fits situations like: tasks that involve Design systems.
Run `npx skills add murphytrueman/design-system-ops --skill system-pitch -a claude-code`. Or copy the skill folder (skills/system-pitch in murphytrueman/design-system-ops) into .claude/skills/system-pitch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add murphytrueman/design-system-ops --skill system-pitch -a codex`. Or copy the skill folder (skills/system-pitch in murphytrueman/design-system-ops) into .agents/skills/system-pitch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add murphytrueman/design-system-ops --skill system-pitch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/system-pitch, .gemini/skills/system-pitch, .github/skills/system-pitch and .opencode/skills/system-pitch in your project.
Going by SKILL.md and its folder, System Pitch needs the command-line tools its instructions call (npx). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Grep, Glob, Bash(cat:*), Bash(ls:*).
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
System Pitch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.9k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with System Pitch: Impeccable (bestofjs/bestofjs, 3.1k stars), Figma Design System Builder (warpdotdev/warp, 65k stars), Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars) and UI Styling (Ohh-889/skyroc, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
murphytrueman (a GitHub user) maintains it in murphytrueman/design-system-ops, which has 203 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 24, 2026.
Source: murphytrueman/design-system-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.