CCPM Project Management
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
Agent skill
by mattgierhart in mattgierhart/PRD-driven-context-engineering
Assess adoption-lifecycle stage, plan the chasm crossing, and build a beachhead strategy using Geoffrey Moore's Crossing the Chasm framework during PRD v1.0 Market Adoption.
$ npx skills add mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mattgierhart/PRD-driven-context-engineering prd-v10-chasm-adoption-moore --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/mattgierhart/PRD-driven-context-engineering.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/prd-v10-chasm-adoption-moore .claude/skills/prd-v10-chasm-adoption-moore && 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 "prd-v10-chasm-adoption-moore" agent skill from https://github.com/mattgierhart/PRD-driven-context-engineering/tree/main/.claude/skills/prd-v10-chasm-adoption-moore into .claude/skills/prd-v10-chasm-adoption-moore/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prd-v10-chasm-adoption-moore", 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/mattgierhart/PRD-driven-context-engineering/tree/main/.claude/skills/prd-v10-chasm-adoption-mooreType 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 mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mattgierhart/PRD-driven-context-engineering prd-v10-chasm-adoption-moore --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mattgierhart/PRD-driven-context-engineering.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/prd-v10-chasm-adoption-moore .agents/skills/prd-v10-chasm-adoption-moore && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "prd-v10-chasm-adoption-moore" agent skill from https://github.com/mattgierhart/PRD-driven-context-engineering/tree/main/.claude/skills/prd-v10-chasm-adoption-moore into .agents/skills/prd-v10-chasm-adoption-moore/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prd-v10-chasm-adoption-moore", 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 mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mattgierhart/PRD-driven-context-engineering prd-v10-chasm-adoption-moore --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mattgierhart/PRD-driven-context-engineering.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/prd-v10-chasm-adoption-moore .cursor/skills/prd-v10-chasm-adoption-moore && 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 "prd-v10-chasm-adoption-moore" agent skill from https://github.com/mattgierhart/PRD-driven-context-engineering/tree/main/.claude/skills/prd-v10-chasm-adoption-moore into .cursor/skills/prd-v10-chasm-adoption-moore/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prd-v10-chasm-adoption-moore", 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/mattgierhart/PRD-driven-context-engineering.git --path .claude/skills/prd-v10-chasm-adoption-moore--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 mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mattgierhart/PRD-driven-context-engineering prd-v10-chasm-adoption-moore --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mattgierhart/PRD-driven-context-engineering.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/prd-v10-chasm-adoption-moore .gemini/skills/prd-v10-chasm-adoption-moore && 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 "prd-v10-chasm-adoption-moore" agent skill from https://github.com/mattgierhart/PRD-driven-context-engineering/tree/main/.claude/skills/prd-v10-chasm-adoption-moore into .gemini/skills/prd-v10-chasm-adoption-moore/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prd-v10-chasm-adoption-moore", 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 mattgierhart/PRD-driven-context-engineering prd-v10-chasm-adoption-mooreInstalls 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 mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mattgierhart/PRD-driven-context-engineering.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/prd-v10-chasm-adoption-moore .github/skills/prd-v10-chasm-adoption-moore && 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 "prd-v10-chasm-adoption-moore" agent skill from https://github.com/mattgierhart/PRD-driven-context-engineering/tree/main/.claude/skills/prd-v10-chasm-adoption-moore into .github/skills/prd-v10-chasm-adoption-moore/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prd-v10-chasm-adoption-moore", 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 mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mattgierhart/PRD-driven-context-engineering prd-v10-chasm-adoption-moore --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mattgierhart/PRD-driven-context-engineering.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/prd-v10-chasm-adoption-moore .opencode/skills/prd-v10-chasm-adoption-moore && 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 "prd-v10-chasm-adoption-moore" agent skill from https://github.com/mattgierhart/PRD-driven-context-engineering/tree/main/.claude/skills/prd-v10-chasm-adoption-moore into .opencode/skills/prd-v10-chasm-adoption-moore/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prd-v10-chasm-adoption-moore", 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.
prd-v10-chasm-adoption-mooreAssess adoption-lifecycle stage, plan the chasm crossing, and build a beachhead strategy using Geoffrey Moore's Crossing the Chasm framework during PRD v1.0 Market Adoption.
Prd V10 Chasm Adoption Moore is an agent skill from mattgierhart/PRD-driven-context-engineering. Assess adoption-lifecycle stage, plan the chasm crossing, and build a beachhead strategy using Geoffrey Moore's Crossing the Chasm framework during PRD v1.0 Market Adoption. Triggers on requests to assess adoption stage, plan beachhead, cross the chasm, scale from early adopters, or when user asks "are we in the chasm?", "crossing the chasm", "beachhead strategy", "Moore", "whole product", "pragmatist buyers", "from early adopters to early majority". Outputs ADO-STAGE-, ADO-BEACHHEAD-, ADO-WHOLE-, ADO-REF- entries.
Its SKILL.md is about 3.2k 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 Product & Project Management, covering PRD writing. The repository describes itself as: PRD-Led Context Engineering — Memory as Infrastructure. An ontology layer for product teams building products that solve real problems — with AI agents that remember. Gated PRD… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 30ed1b0. 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:
ReadWriteEditGlobGrepWebSearchFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Prd V10 Chasm Adoption Moore loads about 3.2k tokens when it runs. Until then it costs about 138 tokens; SKILL.md has 1,474 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 mattgierhart/PRD-driven-context-engineering at commit 30ed1b0, republished under its MIT licence (© mattgierhart). 1,474 words, ~3,239 tokens.
.claude/skills/prd-v10-chasm-adoption-moore/SKILL.md (or your agent's skills folder).Position in workflow: v0.9 Feedback Loop Setup → v1.0 Crossing the Chasm (Moore) → all v1.0 work
Default is deep (this is a major strategic decision; quick mode is for hypothesis pre-work only). See .claude/rules/08-skill-execution-modes.md.
| Mode | What this skill produces |
|---|---|
| quick | Stage assessment only (ADO-STAGE-*); beachhead candidate hypothesis |
| standard | Stage assessment + beachhead segment + top 3 whole-product gaps + reference-account candidate list |
| deep (default) | Full stage assessment with evidence + sharpened beachhead with in/not-in criteria + complete whole-product gap analysis + reference-account cultivation plan + chasm-crossing risk register |
From Crossing the Chasm (Geoffrey Moore, 1991, updated 2014). The bestselling tech-strategy book of the 1990s, and still the canonical model for understanding why early traction doesn't predict mass adoption.
| Stage | % of market | Buyer mindset | What they buy |
|---|---|---|---|
| Innovators (2.5%) | Tinkerers; technology enthusiasts | Want to try new things; tolerate incomplete products | Vision, technical depth, access |
| Early Adopters (13.5%) | Visionaries | Want strategic advantage from non-mainstream tech | Bold vision + first-mover ROI |
| — THE CHASM — | — | — | — |
| Early Majority (34%) | Pragmatists | Want reliable productivity gains from proven solutions | Whole product + segment-specific references |
| Late Majority (34%) | Conservatives | Want safe, mature defaults | Market leadership, low risk |
| Laggards (16%) | Skeptics | Resist change | (Generally not worth targeting) |
The gap between Early Adopters and Early Majority is the chasm. Most products die here. The reason: visionary buyers (who got you to early traction) actively want the cutting-edge, while pragmatist buyers want to be the second penguin off the iceberg — they need to see peers in their segment succeeding first.
SoT/SoT.ADOPTION.md — Current adoption-stage assessment with evidenceAudit current paying-customer composition. For each customer, classify by stage indicators:
| Indicator | Innovator/Early Adopter | Early Majority |
|---|---|---|
| Sales motion | Direct founder relationship | Asked for demo / pricing / case studies |
| Setup tolerance | "I'll figure it out" | "Show me the integration with X" |
| Reference need | None | Asked "who else in my industry uses this?" |
| Renewal motivation | "We're betting on this" | "It saves us $X/month" |
| Procurement | Single buyer | Procurement / SOC2 / contracts review |
Stage signal:
Deliverable: One ADO-STAGE-* entry with evidence, stage classification, and confidence score.
Generate 3–5 candidate beachhead segments. Score each:
| Criterion | Question | Weight |
|---|---|---|
| Pragmatist density | Is this segment mostly pragmatists (already buying mature solutions)? | High |
| Whole-product proximity | How close is our current product to the segment's whole-product expectation? | High |
| Reference accessibility | Can we get 3 references in this segment within 6 months? | High |
| Compelling reason to buy | Is there an urgent, segment-specific pain we solve uniquely? | High |
| Adjacency value | If we win this segment, what adjacent segments unlock? | Medium |
| Competitive intensity | How saturated is this segment with established competitors? | Medium |
| Market size | Is this segment large enough to support a beachhead? | Low (most beachheads are small; that's fine) |
Pick the top-scoring segment. Write strict in-segment and not in-segment criteria.
Deliverable: One ADO-BEACHHEAD-* entry with in/not-in criteria, rationale, target (e.g., "10 closed-won in segment within 6 months"), confidence.
For the beachhead segment, list everything a pragmatist buyer in that segment expects to receive when they pay you:
For each, score: Ship today? / Gap?
For each gap, create an ADO-WHOLE-* entry with severity (blocker / serious / nice-to-have), owner, target close date.
Deliverable: List of ADO-WHOLE-* entries. Blockers must close before sustained beachhead motion.
Identify 5–10 existing or near-term customers in the beachhead segment that could become public references. For each:
| Field | Notes |
|---|---|
| Customer | Name + segment fit confirmation |
| Story strength | What outcome can they speak to publicly? (Quantified > qualitative) |
| Relationship | Who owns the relationship internally? |
| Consent path | What approval do they need internally to be public? |
| Target placement | Logo on pricing page / quote on landing / blog case study / on-stage / podcast |
| Confidence | 1–5 of "will become a reference within 90 days" |
Deliverable: 5–10 ADO-REF-* entries with cultivation plan.
For each major chasm risk, log a RISK-* entry:
Each risk gets mitigation actions tied to ADO-WHOLE-, ADO-REF-, or BR-* updates.
Deliverable (deep): Risk register with mitigations.
See SoT/SoT.ADOPTION.md for the complete entry templates for ADO-STAGE-, ADO-BEACHHEAD-, ADO-WHOLE-, and ADO-REF-.
| Pattern | Signal | Fix |
|---|---|---|
| "We're in the chasm" without evidence | Stage assessment based on vibes | Audit actual paying-customer composition; require ADO-STAGE-* confidence ≥ 3/5 |
| Beachhead too broad | "Small businesses" or "B2B SaaS" | Tighten until it disqualifies most buyers; segment of 100–10,000 prospects max |
| Skipping whole-product gap | "Our product is great; we just need more marketing" | Pragmatists buy whole product, not core product; list every gap |
| Reference from wrong segment | Touting a visionary customer to a pragmatist buyer | In-segment references only; cross-segment is worthless |
| Crossing the chasm broadly | "Let's just scale paid ads" | Concentrate on beachhead; broad CAC will be 5× higher and worse-converting |
| Confusing best-fit with beachhead | Treating Dunford best-fit as the beachhead | Beachhead is tighter than best-fit; usually one sub-segment of the best-fit |
| Skipping stage assessment | Jumping to "we need to scale" without checking where we are | Step 1 is mandatory; without it, the rest is guesswork |
Before proceeding to other v1.0 work:
| Consumer | What it uses | Example |
|---|---|---|
| Continuous Discovery (Torres) | Beachhead segment = discovery interview pool | Weekly interviews drawn from ADO-BEACHHEAD- |
| Mom Test Interview | Beachhead-segment interview discipline | Validate ADO-STAGE- and ADO-WHOLE- via Mom Test |
| Case Study Builder | Reference candidates = case study targets | ADO-REF-* graduates to case study |
| Testimonial Collector | Reference candidates = testimonial targets | ADO-REF-* (lower-effort placement) |
| v0.9 Re-runs | Beachhead may sharpen Positioning; whole-product gaps may shift Offer | Re-run Dunford with sharper segment |
| Feedback Loop Setup | Pragmatist-shaped feedback signals chasm crossing | Inbound pattern shift → re-run stage assessment |
crossing-the-chasm skill (wondelai/skills)references/ — read the book for depth)© mattgierhart, 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 .claude/skills/prd-v10-chasm-adoption-moore of mattgierhart/PRD-driven-context-engineering.
Open the folder on GitHubat commit 30ed1b0
Prd V10 Chasm Adoption Moore 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 |
|---|---|---|---|---|---|---|
| Prd V10 Chasm Adoption Moore this skillmattgierhart/PRD-driven-context-engineering | 180 | — | ~3.2k | Automated safety check: Pass | MIT | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Ralph Tui Create Beadssubsy/ralph-tui | 2.5k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Trellis Brainstormanjiemo/SunnyBeach | 178 | 7 repos | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Ralph Tui Create Beads Rustsubsy/ralph-tui | 2.5k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Ralph Tui Create JSONsubsy/ralph-tui | 2.5k | 1 repos | ~2.6k | Automated safety check: Pass | MIT |
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
subsy/ralph-tui
Convert PRDs to beads for ralph-tui execution. An agent skill from subsy/ralph-tui.
anjiemo/SunnyBeach
Guides collaborative requirements discovery before implementation.
subsy/ralph-tui
Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI).
subsy/ralph-tui
Convert PRDs to prd.json format for ralph-tui execution. An agent skill from subsy/ralph-tui.
jamesrochabrun/skills
Generate comprehensive Product Requirements Documents (PRDs) for product managers.
mattgierhart/PRD-driven-context-engineering
Validates gate criteria before PRD lifecycle advancement by delegating to the readiness scoring pipeline (scripts/readiness.py).
mattgierhart/PRD-driven-context-engineering
Extracts durable insights from temp/ files to SoT during EPIC Phase E.
mattgierhart/PRD-driven-context-engineering
Validates and registers new SoT IDs with cross-reference integrity.
mattgierhart/PRD-driven-context-engineering
Creates new Source of Truth (SoT) files when existing templates don't fit your needs.
mattgierhart/PRD-driven-context-engineering
Transform vague product ideas into evidence-anchored problem statements for PRD v0.1 Spark.
mattgierhart/PRD-driven-context-engineering
Transform validated pain points into articulated user value statements for PRD v0.1 Spark.
Categories
Assess adoption-lifecycle stage, plan the chasm crossing, and build a beachhead strategy using Geoffrey Moore's Crossing the Chasm framework during PRD v1.0 Market Adoption. Prd V10 Chasm Adoption Moore is an agent skill from mattgierhart/PRD-driven-context-engineering.0 Market Adoption.
Prd V10 Chasm Adoption Moore fits situations like: requests to assess adoption stage; cross the chasm; scale from early adopters; user asks are we in the chasm?.
Run `npx skills add mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a claude-code`. Or copy the skill folder (.claude/skills/prd-v10-chasm-adoption-moore in mattgierhart/PRD-driven-context-engineering) into .claude/skills/prd-v10-chasm-adoption-moore in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a codex`. Or copy the skill folder (.claude/skills/prd-v10-chasm-adoption-moore in mattgierhart/PRD-driven-context-engineering) into .agents/skills/prd-v10-chasm-adoption-moore 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 mattgierhart/PRD-driven-context-engineering --skill prd-v10-chasm-adoption-moore -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/prd-v10-chasm-adoption-moore, .gemini/skills/prd-v10-chasm-adoption-moore, .github/skills/prd-v10-chasm-adoption-moore and .opencode/skills/prd-v10-chasm-adoption-moore in your project.
SKILL.md names no scripts, command-line tools or credentials: Prd V10 Chasm Adoption Moore is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, WebSearch.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Prd V10 Chasm Adoption Moore is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k 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 Prd V10 Chasm Adoption Moore: CCPM Project Management (automazeio/ccpm, 8.4k stars), Ralph Tui Create Beads (subsy/ralph-tui, 2.5k stars), Trellis Brainstorm (anjiemo/SunnyBeach, 178 stars) and Ralph Tui Create Beads Rust (subsy/ralph-tui, 2.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mattgierhart (a GitHub user) maintains it in mattgierhart/PRD-driven-context-engineering, which has 180 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on August 31, 2026.
Source: mattgierhart/PRD-driven-context-engineering on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.