Codewhale Evidence-Based Issue Closer
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.
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.
$ npx skills add tixl3d/tixl --skill process-tickets -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tixl3d/tixl process-tickets --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/tixl3d/tixl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/process-tickets .claude/skills/process-tickets && 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 "process-tickets" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/process-tickets into .claude/skills/process-tickets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "process-tickets", 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/tixl3d/tixl/tree/main/.claude/skills/process-ticketsType 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 tixl3d/tixl --skill process-tickets -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tixl3d/tixl process-tickets --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/process-tickets .agents/skills/process-tickets && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "process-tickets" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/process-tickets into .agents/skills/process-tickets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "process-tickets", 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 tixl3d/tixl --skill process-tickets -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tixl3d/tixl process-tickets --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/process-tickets .cursor/skills/process-tickets && 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 "process-tickets" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/process-tickets into .cursor/skills/process-tickets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "process-tickets", 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/tixl3d/tixl.git --path .claude/skills/process-tickets--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 tixl3d/tixl --skill process-tickets -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tixl3d/tixl process-tickets --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/process-tickets .gemini/skills/process-tickets && 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 "process-tickets" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/process-tickets into .gemini/skills/process-tickets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "process-tickets", 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 tixl3d/tixl process-ticketsInstalls 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 tixl3d/tixl --skill process-tickets -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/process-tickets .github/skills/process-tickets && 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 "process-tickets" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/process-tickets into .github/skills/process-tickets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "process-tickets", 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 tixl3d/tixl --skill process-tickets -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tixl3d/tixl process-tickets --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/process-tickets .opencode/skills/process-tickets && 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 "process-tickets" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/process-tickets into .opencode/skills/process-tickets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "process-tickets", 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.
process-ticketsWorks 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.
The skill runs without asking questions across the In progress column of the TiXL road-map GitHub board. Each ticket yields one reviewable artifact: a git stash holding an implemented code change, or a plan file under .agentic/Plans/ for anything too involved to guess at. You review and commit the results later.
Hard rules keep it safe. GitHub is read-only, with no comments, labels, card moves or edits. There are no commits, git add or push. Only new stashes are created, and existing ones are never popped, applied or dropped, and code changes start from a clean main so every stash is an independent diff. Plan files stay in the working tree because git GUIs hide untracked files inside a stash. Before starting it checks the read:project token scope, that Scripts/board-tickets.ps1 exists and that .agentic/AGENT_INSTRUCTIONS.md has been read.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9ce9691. 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:
gitdotnetghFrom 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.
TiXL Ticket Processor loads about 2.6k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,379 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 tixl3d/tixl at commit 9ce9691, republished under its MIT licence (© tixl3d). 1,379 words, ~2,601 tokens.
.claude/skills/process-tickets/SKILL.md (or your agent's skills folder).Work the In progress column of the TiXL road-map board (org tixl3d, project 3,
"TiXL road map") unattended. Each ticket produces one reviewable artifact: a git stash for an
implemented code change, or a plan file in .agentic/Plans/ for everything else. The user sifts
these later at their leisure.
Why the split: git GUIs (e.g. git Fork) do not show untracked files stored inside a stash, so a
stashed new plan doc looks empty in review — useless. Code edits are tracked-file diffs and show fine
in a stash; new plan files belong in the working tree, where they appear under Local Changes and get
committed to .agentic/Plans/.
This is the user's intentionally messy inbox: they collect ideas as In progress, and push anything too involved to Todo / a later milestone themselves. So most tickets are small; the rest should become a plan, not a guess.
git add, no git push. The user reviews and commits everything
themselves. Touching the index or committing defeats the whole workflow.pop, apply, or drop an existing stash. The
user keeps live WIP in stashes (e.g. keep/...); destroying one loses real work.main between them, so each stash is an
independent diff). Plan files → left in the working tree, never stashed.read:project scope. Run .\Scripts\board-tickets.ps1 -List. If it prints an
INSUFFICIENT_SCOPES hint, stop and tell the user to run gh auth refresh -s read:project,
then re-invoke. (Projects v2 is GraphQL-only; a public board still needs the token scope.)Scripts/board-tickets.ps1 must exist. If not, the skill is
incomplete — tell the user..agentic/AGENT_INSTRUCTIONS.md if you haven't this session.
Every code edit must follow it (no per-frame allocations/LINQ, UiColors.*, Guid over
direct refs, * T3Ui.UiScaleFactor on pixel literals, brace every branch, CRLF unless the
file is LF, minimal scoped diffs, no plan references in comments).Parsing the helper output: use the argument form ConvertFrom-Json (.\Scripts\board-tickets.ps1 -List),
not the pipe form — Windows PowerShell 5.1's ConvertFrom-Json mis-handles a piped JSON array.
Run git status --short. If the working tree is dirty, the user has uncommitted work; an
unattended run must not lose it. Stash it first under a clearly-marked name:
git stash push -u -m "keep/before-ticket-run"Note in the final report that you did this so the user pops it back. If the tree is clean, proceed. Never drop or pop any pre-existing stash.
$tickets = ConvertFrom-Json (.\Scripts\board-tickets.ps1 -List)Each record has: number, title, url, repo, size (S/M/L/XL/XXL or empty),
milestone, labels, body.
Build the already-processed set from two places (re-runs are idempotent):
git stash list — every ticket number appearing as a ticket #<n> marker..agentic/Plans/ — any file (tracked or not) whose body has a Ticket: #<n> line.Skip a ticket if it shows up in either.
Every ticket leaves an artifact — including non-actionable ones. A board test stub (empty body + trivial title like "Test"), an infeasible request, or one that only raises questions still gets a plan file saying exactly that (see 2c-iii). No silent skips — that keeps the record complete and re-runs idempotent.
For each remaining ticket, in board order:
Use the body from the list (or re-fetch with -Ticket <n>). Understand what's actually
being asked. Locate the relevant code with Grep/Glob/Read (or an Explore agent for wide
searches). Don't start editing until you know which files are in play.
Implement now only when all hold:
Write a plan when any hold:
Symbol/serialization/data model/migration, or renames/removes operators or params.When genuinely unsure, write a plan — a discarded plan costs seconds; broken unattended code costs an untangling session.
.agentic/AGENT_INSTRUCTIONS.md. No opportunistic refactors.Core, Editor,
Operators/Lib, …):dotnet build <project>.csprojgit restore <files> for
tracked files; delete any new files you created), and fall through to a plan (2c-ii)
instead. Never stash broken code.Write .agentic/Plans/Plan_<PascalCaseSlug>.md (slug from the title) and leave it in the working
tree — do not stash it. It then appears under Local Changes for the user to review and commit to
.agentic/Plans/. The Ticket: #<number> line below is what the next run greps to skip it. Keep it
concise:
# <Title>
Ticket: #<number> — <url>
Size: <size> Milestone: <milestone>
## Problem
<1-3 sentences: what the ticket wants and why it isn't a trivial edit.>
## Affected code
<files / systems involved, with paths.>
## Proposed approach
<the plan in a few bullets.>
## Risks / side-effects
<serialization, migration, perf, UX, cross-feature overlap.>
## Open questions
<decisions the user must make before this can be implemented.>Do not reference this plan path from any source-code comment (AGENT_INSTRUCTIONS).
A ticket that is a test stub, infeasible, or only raises questions you can't resolve unattended still gets a plan file (in the working tree, not stashed) — never a contentless skip. Write the same file, but the body states the situation honestly:
## Open questions.This guarantees every ticket produces exactly one artifact, so nothing is silently dropped.
Only implemented tickets get stashed — plan files (2c-ii / 2c-iii) stay in the working tree.
Stash only this ticket's edited files with a pathspec (-- <paths>), not a blanket git stash push -u, so each stash is exactly one ticket — clean to apply → review → delete in a git GUI (e.g.
git Fork), with no stray file bundled in. New tracked files an implementation adds (e.g. a new
operator) are tracked-diffs and show fine in the stash; include their paths too.
git stash push -m "ticket #<number>: <short title>" -- <file1> <file2>After stashing, the tracked tree is back at clean main for the next code ticket. Plan files from
earlier tickets may sit untracked in the tree — that's fine: the pathspec stash ignores them and they
don't affect builds.
Track, per ticket: number, title, disposition (implemented / planned / not-actionable /
build-failed→planned), stash marker, files touched, and a one-line note.
After the queue is done, print a single summary table:
| # | Title | Disposition | Artifact | Files | Note |
Artifact = a stash@{…} marker for code, or the .agentic/Plans/Plan_*.md path for a plan.
Then:
git stash show -p stash@{n}; or git stash apply stash@{n}, review, commit..agentic/Plans/ — read, commit the keepers, delete
the rest. (No stash to pop — they're plain files.)keep/before-ticket-run, remind them to pop it.-Status Todo (etc.) to the helper to work another column.© tixl3d, 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/process-tickets of tixl3d/tixl.
Open the folder on GitHubat commit 9ce9691
TiXL Ticket Processor 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 |
|---|---|---|---|---|---|---|
| TiXL Ticket Processor this skilltixl3d/tixl | 5.1k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Codewhale Evidence-Based Issue Closercodewhale-hq/Codewhale | 41k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Creating GitHub Issues From Web Researchjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~981 | Automated safety check: Pass | MIT | |
| Git Project Statusespennilsen/pi | 122 | — | ~4.4k | Automated safety check: Notes | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 |
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.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enhances AI assistant's ability to conduct web research and translate findings into actionable github issues.
espennilsen/pi
Generate comprehensive status reports for git repositories. An agent skill from espennilsen/pi.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
tixl3d/tixl
Turns transcribed TiXL tutorial videos into an exhaustive, timestamped list of every operator mention, feeding the documentation editor's deep-link index without touching the wiki or YouTube text.
tixl3d/tixl
Walks through open Sentry issues for the tooll3 project, latest first, proposing a fix for each and committing them one at a time with your review between.
tixl3d/tixl
Fills in empty embedded help text for TiXL's UI topics by distilling the maintainer's own video explanations into short, user-facing doc entries.
tixl3d/tixl
Review a TiXL feature or change set for elegance, naming, robustness (exceptions, null refs, initialization order, threading) and realtime performance…
Categories
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. The skill runs without asking questions across the In progress column of the TiXL road-map GitHub board.agentic/Plans/ for anything too involved to guess at.
TiXL Ticket Processor fits situations like: working through the in-progress tickets on the TiXL board; batch-processing a backlog while you are away; producing plans for tickets too big to implement blindly.
Run `npx skills add tixl3d/tixl --skill process-tickets -a claude-code`. Or copy the skill folder (.claude/skills/process-tickets in tixl3d/tixl) into .claude/skills/process-tickets in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tixl3d/tixl --skill process-tickets -a codex`. Or copy the skill folder (.claude/skills/process-tickets in tixl3d/tixl) into .agents/skills/process-tickets 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 tixl3d/tixl --skill process-tickets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/process-tickets, .gemini/skills/process-tickets, .github/skills/process-tickets and .opencode/skills/process-tickets in your project.
Going by SKILL.md and its folder, TiXL Ticket Processor needs the command-line tools its instructions call (git, dotnet and gh). Our summary lists: GitHub CLI with the read:project token scope; PowerShell, for Scripts/board-tickets.ps1; A TiXL checkout containing .agentic/AGENT_INSTRUCTIONS.md.
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.
TiXL Ticket Processor 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.6k tokens (SKILL.md is roughly 10k 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 TiXL Ticket Processor: Codewhale Evidence-Based Issue Closer (codewhale-hq/Codewhale, 41k stars), Creating GitHub Issues From Web Research (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Git Project Status (espennilsen/pi, 122 stars) and Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tixl3d (a GitHub organization) maintains it in tixl3d/tixl, which has 5,130 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.
Source: tixl3d/tixl on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.