TiXL Ticket Processor
tixl3d/tixl
Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.
Runs an emergency fix process for severe bugs: a severity check, a written hotfix record, and a branch cut from the shipped release rather than main.
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill hotfix -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Donchitos/Claude-Code-Game-Studios hotfix --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/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/hotfix .claude/skills/hotfix && 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 "hotfix" agent skill from https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix into .claude/skills/hotfix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hotfix", 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/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfixType 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 Donchitos/Claude-Code-Game-Studios --skill hotfix -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Donchitos/Claude-Code-Game-Studios hotfix --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/hotfix .agents/skills/hotfix && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "hotfix" agent skill from https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix into .agents/skills/hotfix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hotfix", 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 Donchitos/Claude-Code-Game-Studios --skill hotfix -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Donchitos/Claude-Code-Game-Studios hotfix --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/hotfix .cursor/skills/hotfix && 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 "hotfix" agent skill from https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix into .cursor/skills/hotfix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hotfix", 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/Donchitos/Claude-Code-Game-Studios.git --path .claude/skills/hotfix--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 Donchitos/Claude-Code-Game-Studios --skill hotfix -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Donchitos/Claude-Code-Game-Studios hotfix --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/hotfix .gemini/skills/hotfix && 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 "hotfix" agent skill from https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix into .gemini/skills/hotfix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hotfix", 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 Donchitos/Claude-Code-Game-Studios hotfixInstalls 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 Donchitos/Claude-Code-Game-Studios --skill hotfix -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/hotfix .github/skills/hotfix && 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 "hotfix" agent skill from https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix into .github/skills/hotfix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hotfix", 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 Donchitos/Claude-Code-Game-Studios --skill hotfix -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Donchitos/Claude-Code-Game-Studios hotfix --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/hotfix .opencode/skills/hotfix && 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 "hotfix" agent skill from https://github.com/Donchitos/Claude-Code-Game-Studios/tree/main/.claude/skills/hotfix into .opencode/skills/hotfix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hotfix", 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.
hotfixRuns an emergency fix process for severe bugs: a severity check, a written hotfix record, and a branch cut from the shipped release rather than main.
This process handles urgent bug fixes that skip the normal sprint flow, and it runs only when you invoke `/hotfix` yourself. The agent first rates the bug on the project's bug-triage scale, where S1 is a crash, data loss or complete feature failure and S2 is a major broken feature in a game that still plays. It asks you to confirm the rating, and anything rated S3 or lower is sent back to the regular bug-fix workflow.
It then drafts a hotfix record with a short description, date and severity and asks permission before saving it under `production/hotfixes/`. In a git repository it offers to create a `hotfix/` branch from the tag or release branch of the build that shipped, never from the head of `main`, which may hold unreleased work. You can name a different base ref or create the branch yourself. The skill is also described as tracking approvals, verifying the backport and keeping an audit trail.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b21fa0f. 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:
ReadGlobGrepWriteEditBashAgentAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
Emergency Hotfix Workflow loads about 2.9k tokens when it runs. Until then it costs about 31 tokens; SKILL.md has 1,508 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestionAutomated 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 Donchitos/Claude-Code-Game-Studios at commit b21fa0f, republished under its MIT licence (© Donchitos). 1,508 words, ~2,885 tokens.
.claude/skills/hotfix/SKILL.md (or your agent's skills folder).Explicit invocation only: This skill should only run when the user explicitly requests it with
/hotfix. Do not auto-invoke based on context matching.
Read the bug description or ID. Assess severity on /bug-triage's scale:
Confirm with AskUserQuestion:
[A] S1 (Critical) — crash, data loss, or complete feature failure[B] S2 (High) — major feature broken, game still playable[C] S3 or lower — redirect to normal bug fix workflowIf [C]: stop. Verdict: REDIRECTED — use the normal bug fix workflow for S3 and below.
Draft the hotfix record:
## Hotfix: [Short Description]
Date: [Date]
Severity: [S1/S2]
Reporter: [Who found it]
Status: IN PROGRESS
### Problem
[Clear description of what is broken and the player impact]
### Root Cause
[To be filled during investigation]
### Fix
[To be filled during implementation]
### Testing
[What was tested and how]
### Approvals
- [ ] Fix reviewed by lead-programmer
- [ ] Regression test passed (qa-tester)
- [ ] Release approved (producer)
### Rollback Plan
[How to revert if the fix causes new issues]Ask: "May I write this to production/hotfixes/hotfix-[date]-[short-name].md?"
If yes, write the file, creating the directory if needed.
Check whether this is a git repository:
Bash: git rev-parse --is-inside-work-tree 2>/dev/null
If this command fails or returns empty: note "Not a git repository — create the branch manually." and skip branch creation.
[base-ref] is the release the bug is in. Releases are tags on main (the
trunk), so it is that release's tag (git tag --list; the newest is usually
the live build) — or its release/* branch, if one was cut to stabilise that
release (git branch --list 'release/*'). Never the head of main: it may carry
work that has not shipped.
If the check passes, use AskUserQuestion before creating the branch:
[A] Yes — create branch[B] Use a different base ref — I'll specify it[C] Skip — I'll create the branch myselfOnly run git checkout -b hotfix/[short-name] [base-ref] if user selects [A]. If [B]: ask the user for the base ref, then run the command with that ref. If [C]: skip branch creation and proceed to Phase 4.
Find the root cause. Draft the minimal fix: which files change, what the change does, and what it deliberately leaves alone. Do NOT refactor, clean up, or add features alongside the hotfix.
Present the root cause and proposed fix, then ask: "May I implement this fix?" Do not modify any code before this approval — an emergency flow earns its audit trail by approving the change before it exists, not after.
Implement the approved minimal change. Validate the fix by running targeted tests for the affected system, with commands.test from project.yaml (narrowed to the affected suite where the runner allows) — never a runner line written from memory, which drops the flags the engine needs (gdUnit4 hangs without --remote-debug tcp://127.0.0.1:0). Check for regressions in adjacent systems. If commands.test is unset, or no test covers the affected system, say so and record Tests: NOT RUN — [reason] in the hotfix record's Testing section; the Phase 5b QA gate then carries the verification.
Update the hotfix record with root cause, fix details, and test results.
Use the Agent tool to request sign-off in parallel:
subagent_type: lead-programmer — Review the fix for correctness and side effectssubagent_type: qa-tester — Run targeted regression tests on the affected systemsubagent_type: producer — Approve deployment timing and communication planAll three must return APPROVE before proceeding. If any returns CONCERNS or REJECT, do not deploy — surface the issue and resolve it first.
After approvals, determine the QA scope required before deploying the hotfix. Spawn qa-lead via Agent with:
Ask qa-lead: Is a full smoke check sufficient, or does this fix require a targeted team-qa pass?
Apply the verdict:
/smoke-check against the hotfix build. If PASS or
PASS WITH WARNINGS, proceed to Phase 6 (carry the warnings into the hotfix record).
If FAIL, do not deploy: return to Phase 4 with the failing checks, get the
revised fix approved there, implement it (Phase 4b), then re-run Phase 5's
approvals — qa-tester's regression run among them — and this QA step. A hotfix
that breaks the smoke suite is a second incident, not a fix./team-qa feature: [affected-system] scoped to the changed system only. If QA returns APPROVED or APPROVED WITH CONDITIONS, proceed to Phase 6; if NOT APPROVED or BLOCKED, handle it as a smoke-check FAIL above./team-qa sprint. This delays deployment but prevents a bad patch.If the QA step returns NOT ASSESSED, the gate did not run — treat it as unmet,
not as met. /smoke-check returns it when the suite never executed and
/team-qa when a cycle produced no executed evidence. A NOT ASSESSED result is
not a pass — from either skill — and under time pressure the permissive reading
is the one that will feel reasonable,
which is exactly why it is written down here. Either obtain the missing result —
the verdict names what would make it runnable — or take the decision to the
producer explicitly, as a decision to deploy an unverified hotfix rather than as a
gate that quietly cleared. Log that decision — who made it, and why — in the
hotfix record's Testing section.
Do not skip this gate. A hotfix that breaks something else is worse than the original bug.
STOP — deployment requires explicit approval, unconditionally. Merging a hotfix and tagging the patch release is the one irreversible act in this skill, so it is gated even though branch creation (reversible) already is. Before any merge, tag, or deploy, use
AskUserQuestion:
- Prompt: "Hotfix validated and approved. Merge to [targets], tag [patch tag] and deploy?" —
[targets]ismain, plus the release'srelease/*branch only if it has one- Options:
[A] Yes — merge and deploy/[B] Merge to main only — hold the release/[C] Stop hereThis holds regardless of
modes.automation, includingautonomous. An emergency process is exactly where an unreviewed irreversible step is most likely and least recoverable.
On [A]: merge the hotfix branch to main, and to the release's release/*
branch if it has one; tag the patch release (the next patch version, e.g.
v1.2.0 → v1.2.1) on the fixed build — the release/* branch head if there
is one, else the hotfix branch head — and deploy that tag, not the head of
main. On [B]: merge to main only — no release-branch merge, no tag, no
deploy. On [C]: stop — no merge, no tag, no deploy and no bug-file update; the
hotfix record's Status stays IN PROGRESS, and say so.
Backport is not verified unless you verify it. The frontmatter advertises "backport verified". After merging, confirm the fix is present on
main(the trunk) — and on the release'srelease/*branch, if it has one — and state the result. An unbackported hotfix means the bug returns in the next release tagged frommain, which is the single most common hotfix regression.
Update the original bug file if one exists — find it in production/qa/bugs/
by its number, as /bug-report verify does. Ask first: "May I update
production/qa/bugs/[bug file] with the fix record below and set its Status to
Fixed — Pending Verification?"
## Fix Record
**Fixed in**: hotfix/[branch-name] — [commit hash or description]
**Fixed date**: [date]
**Status**: Fixed — Pending VerificationSet **Status**: Fixed — Pending Verification in the bug file header.
Output a deployment summary. Its title follows the Phase 6 answer — Hotfix Deployed: [short-name] on [A], Hotfix Merged to main — release held: [short-name] on [B] — and on [B] the closing line omits the Tag, since none
was created:
## Hotfix Deployed: [short-name]
**Severity**: [S1/S2]
**Root cause**: [one line]
**Fix**: [one line]
**QA gate**: [Smoke check PASS / Team-QA APPROVED / NOT ASSESSED — [why, and whose
explicit decision it was to deploy anyway]]
**Approvals**: lead-programmer ✓ / qa-tester ✓ / producer ✓
**Backport**: [verified present on `main` (and the `release/*` branch, if the
release has one) — or NOT VERIFIED, with what was not checked]
**Rollback plan**: [from Phase 2 record]
Merge to: [targets] · Tag: [patch tag]
Next: /bug-report verify [BUG-ID] after deploy to confirm resolutionrelease/*
branch if one exists — and merges to main (the trunk), and to that
release/* branch only if it exists; the patch release is taggedtechnical-directorAfter deploying, run /bug-report verify [BUG-ID] to confirm the fix resolved the issue in the deployed build.
If VERIFIED FIXED: run /bug-report close [BUG-ID] to formally close it.
If STILL PRESENT: the hotfix failed — immediately re-open, assess rollback, and escalate.
If CANNOT VERIFY: the fix is unconfirmed — do not close the bug; play its reproduction steps in the deployed build, then run /bug-report verify [BUG-ID] again and answer its manual-play question to settle it.
Schedule a post-incident review within 48 hours. /retrospective reviews a
sprint or milestone, not an incident: record the review with
.claude/docs/templates/incident-response.md, and raise its lessons at the next
/retrospective.
Use AskUserQuestion:
[A] Run /smoke-check to verify the fix[B] Run /patch-notes to document this hotfix[C] Stop here© Donchitos, 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/hotfix of Donchitos/Claude-Code-Game-Studios.
Open the folder on GitHubat commit b21fa0f
Emergency Hotfix Workflow 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 |
|---|---|---|---|---|---|---|
| Emergency Hotfix Workflow this skillDonchitos/Claude-Code-Game-Studios | 26k | — | ~2.9k | Automated safety check: Notes | MIT | |
| TiXL Ticket Processortixl3d/tixl | 5.1k | — | ~2.6k | Automated safety check: Pass | MIT | |
| BrDicklesworthstone/beads_rust | 1.1k | — | ~2.7k | Automated safety check: Pass | MIT | |
| Codewhale Evidence-Based Issue Closercodewhale-hq/Codewhale | 41k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Git Archaeologyprime-radiant-inc/greenfield | 292 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT |
tixl3d/tixl
Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.
Dicklesworthstone/beads_rust
Official skill for beadsrust (br), a local-first, dependency-aware issue tracker for AI agents.
codewhale-hq/Codewhale
Closes a GitHub issue only after confirming the fix actually landed on the real branch with a path or commit citation, then posts a crediting thank-you comment.
prime-radiant-inc/greenfield
Layer 1 skill for mining git history for behavioral intelligence.
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.
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
Donchitos/Claude-Code-Game-Studios
Audits game assets against naming conventions, file size budgets and format standards, and finds orphaned assets and missing references.
Donchitos/Claude-Code-Game-Studios
Writes per-asset visual specs and AI image-generation prompts for a game's characters, enemies and screens, driven by the GDD, art bible and an entity inventory.
Donchitos/Claude-Code-Game-Studios
Checks game data and formulas for balance outliers, broken progression, degenerate strategies and economy problems, and answers 'could not run' when the data is missing.
Donchitos/Claude-Code-Game-Studios
Turns a description into a structured bug report, or scans code for likely bugs, then verifies and closes reports through four modes.
Donchitos/Claude-Code-Game-Studios
Reviews the open bug backlog, separates severity from priority, assigns fixes to sprints and reports systemic trends, writing a dated triage file.
Donchitos/Claude-Code-Game-Studios
Generates an internal or player-facing changelog from git commits and sprint data, filtering out framework maintenance commits so that only work on the game itself reaches release copy.
Works with
Categories
Runs an emergency fix process for severe bugs: a severity check, a written hotfix record, and a branch cut from the shipped release rather than main. This process handles urgent bug fixes that skip the normal sprint flow, and it runs only when you invoke `/hotfix` yourself. The agent first rates the bug on the project's bug-triage scale, where S1 is a crash, data loss or complete feature failure and S2 is a major broken feature in a game that still plays.
Emergency Hotfix Workflow fits situations like: fixing a crash or data-loss bug in a shipped game outside the sprint plan; triaging whether a reported bug is severe enough to justify an emergency fix; branching a fix from the live release tag instead of the main branch.
Run `npx skills add Donchitos/Claude-Code-Game-Studios --skill hotfix -a claude-code`. Or copy the skill folder (.claude/skills/hotfix in Donchitos/Claude-Code-Game-Studios) into .claude/skills/hotfix in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Donchitos/Claude-Code-Game-Studios --skill hotfix -a codex`. Or copy the skill folder (.claude/skills/hotfix in Donchitos/Claude-Code-Game-Studios) into .agents/skills/hotfix 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 Donchitos/Claude-Code-Game-Studios --skill hotfix -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hotfix, .gemini/skills/hotfix, .github/skills/hotfix and .opencode/skills/hotfix in your project.
Going by SKILL.md and its folder, Emergency Hotfix Workflow needs the command-line tools its instructions call (git). Our summary lists: git, for the hotfix branch step. Its frontmatter pre-approves these tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion.
SKILL.md contains no URLs. Its commands use git, 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 notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Emergency Hotfix Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k 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 Emergency Hotfix Workflow: TiXL Ticket Processor (tixl3d/tixl, 5.1k stars), Br (Dicklesworthstone/beads_rust, 1.1k stars), Codewhale Evidence-Based Issue Closer (codewhale-hq/Codewhale, 41k stars) and Git Archaeology (prime-radiant-inc/greenfield, 292 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Donchitos (a GitHub user) maintains it in Donchitos/Claude-Code-Game-Studios, which has 25,834 GitHub stars. The repository holds 73 skills in this directory. The repository was last updated on September 29, 2026.
Source: Donchitos/Claude-Code-Game-Studios on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.