Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Chronicles settled battles, reverts, and dead ends. An agent skill from athola/claude-night-market.
$ npx skills add athola/claude-night-market --skill night-market-failure-archaeology -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install athola/claude-night-market night-market-failure-archaeology --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/athola/claude-night-market.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/night-market-failure-archaeology .claude/skills/night-market-failure-archaeology && 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 "night-market-failure-archaeology" agent skill from https://github.com/athola/claude-night-market/tree/master/.claude/skills/night-market-failure-archaeology into .claude/skills/night-market-failure-archaeology/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "night-market-failure-archaeology", 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/athola/claude-night-market/tree/master/.claude/skills/night-market-failure-archaeologyType 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 athola/claude-night-market --skill night-market-failure-archaeology -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install athola/claude-night-market night-market-failure-archaeology --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/night-market-failure-archaeology .agents/skills/night-market-failure-archaeology && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "night-market-failure-archaeology" agent skill from https://github.com/athola/claude-night-market/tree/master/.claude/skills/night-market-failure-archaeology into .agents/skills/night-market-failure-archaeology/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "night-market-failure-archaeology", 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 athola/claude-night-market --skill night-market-failure-archaeology -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install athola/claude-night-market night-market-failure-archaeology --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/night-market-failure-archaeology .cursor/skills/night-market-failure-archaeology && 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 "night-market-failure-archaeology" agent skill from https://github.com/athola/claude-night-market/tree/master/.claude/skills/night-market-failure-archaeology into .cursor/skills/night-market-failure-archaeology/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "night-market-failure-archaeology", 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/athola/claude-night-market.git --path .claude/skills/night-market-failure-archaeology--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 athola/claude-night-market --skill night-market-failure-archaeology -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install athola/claude-night-market night-market-failure-archaeology --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/night-market-failure-archaeology .gemini/skills/night-market-failure-archaeology && 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 "night-market-failure-archaeology" agent skill from https://github.com/athola/claude-night-market/tree/master/.claude/skills/night-market-failure-archaeology into .gemini/skills/night-market-failure-archaeology/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "night-market-failure-archaeology", 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 athola/claude-night-market night-market-failure-archaeologyInstalls 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 athola/claude-night-market --skill night-market-failure-archaeology -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/night-market-failure-archaeology .github/skills/night-market-failure-archaeology && 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 "night-market-failure-archaeology" agent skill from https://github.com/athola/claude-night-market/tree/master/.claude/skills/night-market-failure-archaeology into .github/skills/night-market-failure-archaeology/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "night-market-failure-archaeology", 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 athola/claude-night-market --skill night-market-failure-archaeology -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install athola/claude-night-market night-market-failure-archaeology --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/night-market-failure-archaeology .opencode/skills/night-market-failure-archaeology && 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 "night-market-failure-archaeology" agent skill from https://github.com/athola/claude-night-market/tree/master/.claude/skills/night-market-failure-archaeology into .opencode/skills/night-market-failure-archaeology/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "night-market-failure-archaeology", 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.
night-market-failure-archaeologyChronicles settled battles, reverts, and dead ends. An agent skill from athola/claude-night-market.
Night Market Failure Archaeology is an agent skill from athola/claude-night-market. Chronicles settled battles, reverts, and dead ends. Use when a fix echoes a past failure. Do not use for live triage; use night-market-debugging-playbook.
Its SKILL.md is about 4.6k 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 Development. The repository describes itself as: 23 Claude Code plugins: TDD enforcement hooks, git/PR workflows, spec-driven development, code review, project lifecycle, fix-from-error, maintenance automation, context… The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9f3eb00. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghrgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, 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.
Night Market Failure Archaeology loads about 4.6k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 2,218 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 athola/claude-night-market at commit 9f3eb00, republished under its MIT licence (© athola). 2,218 words, ~4,608 tokens.
.claude/skills/night-market-failure-archaeology/SKILL.md (or your agent's skills folder).This is a reference document, not a runbook. It records every major
investigation, dead end, rejected fix, and revert in this repo as
symptom, root cause, evidence, status, and lesson, so nobody re-fights
a settled battle. For triage of a failure happening right now, use
night-market-debugging-playbook. Come here when a proposed change
smells like something the repo already tried and rejected.
Jargon used below:
.github/workflows/python39-compat.yml.git log --format='%h %s' -1 <hash>.tasks_manager.py copies in attune,
sanctum, and spec-kit looked like textbook duplication.scripts/tasks_manager.py (1,169 lines deleted across 6 files)
broke plugin self-containment. Plugins are independent deployables
that run from a Claude Code cache directory, so they cannot import
from the repo root.054e2679 (consolidate, 2026-01-23), 29961cd2 (revert,
same day), d89a55c7 (differentiated per-plugin copies). All three
copies exist today under plugins/<p>/scripts/tasks_manager.py.
docs/dependency-audit.md tracks cross-plugin deps and fallbacks.scripts/lsp-proxy.py added for "graceful server fallback"
with no consumer demanding it.2fcb256d (add), killed in PR #193 review, bc318947
(revert, 2026-02-11, restores .cclsp.json)..claude/rules/shared-utility-consumer-rule.md.a3f11323 (the deletion), 3f280334 (restore the 28
scripts and 18 tests), b5f08bf7 (CI repair: dead docs workflow,
missing capabilities entries), d6c128f5 and 01a13e70 (further
repair and governance follow-ups). Recovery point was branch
backup/unbloat-20260328.backup/unbloat-<date> branch first.06b9b1db (2026-03-10) reverts the bulk ignores and fixes
all 73 at source. The commit body cites issue #296 as the
anti-bulk-ignore policy anchor.datetime.UTC is a 3.11+ alias. On PR #511 this was the sole
failing check, with three cascade failures rooted in one
ImportError.timezone.utc back to datetime.UTC, silently re-breaking the fix.
The linter was fighting the fix.18c9340d (leyline quota_tracker, 2026-05-07),
b0049fde (abstract), 709dafc9 (attune).plugins/leyline/tests/test_python39_compat.py)
fails CI on any reintroduction, root ruff config extend-ignores
UP017, and the surviving per-line pyupgrade suppression markers each
carry a stated reason.git commit emitted a PreToolUse hook
ModuleNotFoundError.__init__ eagerly imported dependencies
(yaml, anthropic) that the bare host interpreter running hooks does
not have.45dd77ef (guard yaml import, #518, 2026-05-08),
9bfc0a7a (defer anthropic import to function scope). Regression
tests block re-imports with a sys.meta_path blocker
(plugins/gauntlet/tests/unit/test_challenges.py).LLM_TIMEOUT_SECONDS = 30 inside a hook registered with
a 10-second budget. The harness killed the whole hook before the LLM
subprocess returned, so even the deterministic path's verdict was
lost.3d22f02a (the judge), 268cff89 (2026-05-30: cap LLM
timeout to 8s, gate the LLM second shot to the single ambiguous
outcome). A guard test asserts LLM_TIMEOUT_SECONDS is below the
registered hook timeout
(plugins/herald/tests/unit/test_double_shot_latte.py).666171c3 (2026-06-18, fixes #575, findings B1-B4 from
PR #521), b6de71cf (plugin-check: bound hangs, unmask failures).[Learning] discussion digest went quiet after
2026-04-25. That starvation was the only visible symptom.skill_execution_logger,
pre_skill_execution, homeostatic_monitor in abstract, leyline
noqa_guard, sanctum deferred_item_watcher) read CLAUDE_TOOL_*
environment variables that Claude Code never populates. The payload
arrives as JSON on stdin. The hooks exited 0 without doing anything,
for months.read_hook_payload in
plugins/abstract/hooks/shared/hook_io.py, with env-var fallback
for the test harness. Consumers: the five hooks above.--changed
instead of --all.--all, new typecheck.yml workflow
gating every PR.setup-uv@v8 bare tag does not exist upstream, and
bandit newer than 1.8.6 dropped Python 3.9 support needed by hooks.f81d89a5 (pin setup-uv to v8.2.0), 25bf5a9d (pin
bandit 1.8.6).scripts/check_pinned_versions.py
and scripts/check_ruff_version.py (pre-commit, run only when the
relevant files are staged).gh discussion create/comment/list and
failed. There is no such gh subcommand.plugins/leyline/skills/git-platform/modules/command-mapping.md
using gh api graphql.gh api graphql, never a gh discussion
subcommand.break after the first finding.4993273b (2026-06-22).a8c9e4e9 (vendor
json_utils.sh per plugin).69fbd32c (2026-06-24, remove the fallback). Pattern
codified in .claude/rules/prefer-invariants-over-fallbacks.md
(9f771794) and the imbue verifier-integrity module (29081fda).Ranked by observed cost across the repo's history. Hashes are sample evidence, not complete lists.
| Rank | Class | Shape | Sample evidence | Standing guard |
|---|---|---|---|---|
| RC1 | Silent failure / swallowed exceptions | except-continue, exit 0 on failure, dropped files | e0d1c464, 10b4b790, 52ae1459, fedb1c5b, 0d28a260, bfebb1ad, 7987649c, 89faaaf7 | Constitution rule 10 and the narrow-bare-except campaign |
| RC2 | py39 / host-Python import fragility | hooks crash under system Python | SB5, SB6 hashes | python39-compat.yml, AST test, meta_path tests |
| RC3 | PR-review rework churn | long fix-chains after review | tautological tests a94240e2, f1cbbcf1, 30e58586, 42f7ce84; AI-slop prose 2a039760, 62f598e9; stale wiring 204b927c, 332bcb75 | shift-left pre-commit guards, slop-check CI |
| RC4 | Unbloat over-deletion | import-graph-only deletion | SB3 hashes | markdown-reference scan, backup branches |
| RC5 | CI pin breakage | invalid or stale tool pins | SB11 hashes | check_pinned_versions.py, check_ruff_version.py |
| RC6 | Version drift | manifests and SKILL.md frontmatter out of lockstep | fan-out via plugins/sanctum/scripts/update_versions.py | sanctum:version-updates flow |
| RC7 | Fallback over-classification | guessing fallback masks bad data | SB15 hashes | prefer-invariants-over-fallbacks rule |
These branches are superseded. Do not resume work on them. They stay for archaeology only.
| Branch | Why it is dead |
|---|---|
attune-tasks-poc | Superseded. Its lineage spawned the reverted SB1 consolidation. |
agent-coordination | 2026-03-17 experiment, superseded by conjure and egregore. |
feature/knowledge-brain | Pre-1.0 prototype, superseded by memory-palace. |
feat/slop-clean-before-post | Superseded by scribe Tier-5 patterns on master (509bffaf). |
The backup/unbloat-* branches (a dozen as of 2026-07-02) are
recovery snapshots and the institutional memory of RC4.
backup/unbloat-20260328 was the recovery point for SB3. Do not
delete them casually.
What counts as a settled battle:
Format: copy the SB block shape. Five fields, all required: Symptom,
Root cause, Evidence (commit hashes, each verified with
git log --format='%h %s' -1 <hash> before you write it down),
Status, Lesson. Assign the next SB number. Add the class to the RC
table if it recurs.
Where the lesson must also land (this file is not the system of record for policy):
[Learning] or [PR Finding] post, and the
decision journal (docs/tradeoffs.md, docs/lessons-learned.md,
append-only). See night-market-collective-memory..claude/rules/ through the pipeline in
night-market-research-methodology, subject to
night-market-change-control.night-market-debugging-playbook.night-market-operations.night-market-change-control.night-market-architecture-contract.night-market-collective-memory.Compiled 2026-07-02 against repo v1.9.15, branch master history (1,247 commits). Volatile facts: branch list, RC ranking, and the costliest-three judgment reflect the repo as of that date. The ~140 fix-chain commit count for RC3 is an unverified estimate.
Re-verification commands:
# All cited hashes still resolve
for h in 054e2679 29961cd2 d89a55c7 2fcb256d bc318947 a3f11323 \
3f280334 b5f08bf7 d6c128f5 01a13e70 06b9b1db 18c9340d b0049fde \
709dafc9 45dd77ef 9bfc0a7a 3d22f02a 268cff89 666171c3 b6de71cf \
f81d89a5 25bf5a9d 4993273b a8c9e4e9 69fbd32c 9f771794 29081fda \
509bffaf e0d1c464 10b4b790 52ae1459 fedb1c5b 0d28a260 bfebb1ad \
7987649c 89faaaf7 a94240e2 f1cbbcf1 30e58586 42f7ce84 2a039760 \
62f598e9 204b927c 332bcb75; do
git log --format=%h -1 "$h" >/dev/null 2>&1 || echo "MISSING $h"
done# Dead-end and backup branches still present
git branch --list 'backup/unbloat-*' attune-tasks-poc \
agent-coordination 'feature/knowledge-brain' \
'feat/slop-clean-before-post'# Standing guards still in place
ls plugins/leyline/tests/test_python39_compat.py \
plugins/abstract/hooks/shared/hook_io.py \
scripts/check_pinned_versions.py scripts/check_ruff_version.py
rg -q "meta_path" plugins/gauntlet/tests/unit/test_challenges.py
rg -q "LLM_TIMEOUT_SECONDS < hook_timeout" \
plugins/herald/tests/unit/test_double_shot_latte.py© athola, 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/night-market-failure-archaeology of athola/claude-night-market.
Open the folder on GitHubat commit 9f3eb00
Night Market Failure Archaeology 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 |
|---|---|---|---|---|---|---|
| Night Market Failure Archaeology this skillathola/claude-night-market | 341 | — | ~4.6k | Automated safety check: Pass | MIT | |
| Vercel Composition Patternssupabase/supabase | 111k | 58 repos | ~726 | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Typescript Advanced Typesrolling-scopes/rsschool-app | 10k | 25 repos | ~4.2k | Automated safety check: Pass | MPL-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 4 repos | ~1.1k | Automated safety check: Pass | MIT |
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
rolling-scopes/rsschool-app
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
athola/claude-night-market
Run and interpret repo diagnostic scripts (ratchets, validators, token stats).
athola/claude-night-market
Evaluate Claude skill quality through auditing. An agent skill from athola/claude-night-market.
athola/claude-night-market
Coordinates Claude agent teams via filesystem protocol. An agent skill from athola/claude-night-market.
athola/claude-night-market
Delegates execution to eight CLIs (Gemini, Qwen, MiniMax, GLM, Muse, Codex, OpenCode, Glimmer).
athola/claude-night-market
Guide minimal code via a decision ladder with full safety, edge, and negative-case coverage.
athola/claude-night-market
Build a project skill library in .claude/skills/ via discovery, parallel authoring, and review.
Categories
Chronicles settled battles, reverts, and dead ends. An agent skill from athola/claude-night-market. Night Market Failure Archaeology is an agent skill from athola/claude-night-market. Chronicles settled battles, reverts, and dead ends.
Night Market Failure Archaeology fits situations like: A fix echoes a past failure; use night-market-debugging-playbook.
Run `npx skills add athola/claude-night-market --skill night-market-failure-archaeology -a claude-code`. Or copy the skill folder (.claude/skills/night-market-failure-archaeology in athola/claude-night-market) into .claude/skills/night-market-failure-archaeology in your project. Claude Code loads it when a task matches its description.
Run `npx skills add athola/claude-night-market --skill night-market-failure-archaeology -a codex`. Or copy the skill folder (.claude/skills/night-market-failure-archaeology in athola/claude-night-market) into .agents/skills/night-market-failure-archaeology 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 athola/claude-night-market --skill night-market-failure-archaeology -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/night-market-failure-archaeology, .gemini/skills/night-market-failure-archaeology, .github/skills/night-market-failure-archaeology and .opencode/skills/night-market-failure-archaeology in your project.
Going by SKILL.md and its folder, Night Market Failure Archaeology needs the command-line tools its instructions call (git, gh and rg). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and gh, 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.
Night Market Failure Archaeology is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.6k tokens (SKILL.md is roughly 18k 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 Night Market Failure Archaeology: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
athola (a GitHub user) maintains it in athola/claude-night-market, which has 341 GitHub stars. The repository holds 152 skills in this directory. The repository was last updated on October 9, 2026.
Source: athola/claude-night-market on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.