Player-Facing Patch Notes
Donchitos/Claude-Code-Game-Studios
Writes player-facing patch notes from git history and changelogs, filtering out framework and maintenance commits and rewriting developer wording for players.
Settle the conflicts a merge-backend rebase left behind. An agent skill from tbhb/vale-ai-tells.
$ npx skills add tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tbhb/vale-ai-tells codex-resolve-rebase-conflicts --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/tbhb/vale-ai-tells.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/codex-resolve-rebase-conflicts .claude/skills/codex-resolve-rebase-conflicts && 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 "codex-resolve-rebase-conflicts" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/codex-resolve-rebase-conflicts into .claude/skills/codex-resolve-rebase-conflicts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codex-resolve-rebase-conflicts", 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/tbhb/vale-ai-tells/tree/main/.claude/skills/codex-resolve-rebase-conflictsType 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 tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tbhb/vale-ai-tells codex-resolve-rebase-conflicts --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/codex-resolve-rebase-conflicts .agents/skills/codex-resolve-rebase-conflicts && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "codex-resolve-rebase-conflicts" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/codex-resolve-rebase-conflicts into .agents/skills/codex-resolve-rebase-conflicts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codex-resolve-rebase-conflicts", 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 tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tbhb/vale-ai-tells codex-resolve-rebase-conflicts --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/codex-resolve-rebase-conflicts .cursor/skills/codex-resolve-rebase-conflicts && 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 "codex-resolve-rebase-conflicts" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/codex-resolve-rebase-conflicts into .cursor/skills/codex-resolve-rebase-conflicts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codex-resolve-rebase-conflicts", 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/tbhb/vale-ai-tells.git --path .claude/skills/codex-resolve-rebase-conflicts--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 tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tbhb/vale-ai-tells codex-resolve-rebase-conflicts --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/codex-resolve-rebase-conflicts .gemini/skills/codex-resolve-rebase-conflicts && 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 "codex-resolve-rebase-conflicts" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/codex-resolve-rebase-conflicts into .gemini/skills/codex-resolve-rebase-conflicts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codex-resolve-rebase-conflicts", 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 tbhb/vale-ai-tells codex-resolve-rebase-conflictsInstalls 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 tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/codex-resolve-rebase-conflicts .github/skills/codex-resolve-rebase-conflicts && 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 "codex-resolve-rebase-conflicts" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/codex-resolve-rebase-conflicts into .github/skills/codex-resolve-rebase-conflicts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codex-resolve-rebase-conflicts", 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 tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tbhb/vale-ai-tells codex-resolve-rebase-conflicts --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/codex-resolve-rebase-conflicts .opencode/skills/codex-resolve-rebase-conflicts && 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 "codex-resolve-rebase-conflicts" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/codex-resolve-rebase-conflicts into .opencode/skills/codex-resolve-rebase-conflicts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codex-resolve-rebase-conflicts", 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.
codex-resolve-rebase-conflictsSettle the conflicts a merge-backend rebase left behind. An agent skill from tbhb/vale-ai-tells.
Codex Resolve Rebase Conflicts is an agent skill from tbhb/vale-ai-tells. Settle the conflicts a merge-backend rebase left behind. Mechanical ones resolve without asking and the rest arrive with the evidence in front of you. Every path gets a classification first. An append-only sorted list becomes the verified union of both sides. A generated file takes one side whole and waits for its generator. Everything else is a real disagreement with what each side changed printed beside it. The codex-rebase skill calls this at every stop. Use it directly whenever a merge-backend rebase stops on…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts (for example `scripts/classify-conflicts.sh`, `scripts/conflict_shape.py` and `scripts/resolve-union.sh`).
It sits in Development, covering Git workflow. It works with Git. The repository describes itself as: In today's rapidly evolving landscape, vale-ai-tells is a comprehensive, cutting-edge Vale style package that empowers writers to seamlessly delve into the rich tapestry of AI…. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4c7abc9. 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.
Ships 4 files in scripts/ (Shell and Python), which the agent can run.
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.
Codex Resolve Rebase Conflicts loads about 2.1k tokens when it runs. Until then it costs about 148 tokens; SKILL.md has 1,175 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); the scripts in this folder are not scanned.
The full file from tbhb/vale-ai-tells at commit 4c7abc9, republished under its MIT licence (© tbhb). 1,175 words, ~2,150 tokens.
.claude/skills/codex-resolve-rebase-conflicts/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Settle every conflicted path and stage it, so the rebase can advance. This skill ends there. Continuing the replay and verifying the result belong to the codex-rebase skill.
Codex doesn't provide a skill-scoped command hook. Never use --ours or --theirs. The scripts use unambiguous side names. Stage only named paths after checking them for markers, and return through the continuation script, which checks the staged blobs again.
During a rebase git checks out the base and replays your commits onto it. Your work is the side arriving, so git calls it --theirs, and the base you are moving onto becomes --ours. Every intuition about which word means which runs backwards here, and a wrong pick resolves cleanly and stays wrong.
Nothing in this skill uses either word. The sides are:
base-side is the commit the branch replays onto. git calls it --ours, and the index calls it stage 2.replayed-side is the commit git is replaying right now. git calls it --theirs, and the index calls it stage 3.The scripts read the index stages rather than the marker labels, so the naming holds under whatever marker style the repository sets.
With merge.conflictStyle set to diff3 or zdiff3, a conflict has three sections rather than two:
<<<<<<< HEAD
the base-side content
||||||| <ancestor label>
what both sides started from
=======
the replayed-side content
>>>>>>> <commit> (<subject>)That ||||||| section is the common ancestor, and it's the most useful part of the block: it says what each side changed rather than only what each side now holds. The default merge style omits it. Handle both, and never assume the two-way form.
A bare ======= line isn't a marker on its own. It underlines a setext heading in ordinary Markdown, so the scripts here match only <<<<<<<, |||||||, and >>>>>>>.
Create these with update_plan, keeping exactly one item in_progress at a time.
Where a class turns out empty, close its task and say so rather than deleting it. Which classes the stop produced is part of the report at the end.
The scripts stop with a plain message when no rebase is in progress. Say that and hand back, because nothing here applies outside one.
bash .agents/skills/codex-resolve-rebase-conflicts/scripts/classify-conflicts.shOne call reads every unmerged path and says what shape its conflict has, with the evidence for the claim printed beside it. Read that output before opening any file.
The classes:
| Class | What it means | What to do |
|---|---|---|
sorted-union | All three versions sorted and unique, and neither side removed a line | resolve-union.sh, no confirmation |
regenerate | The repository declares the path generated | take-side.sh <path> base-side, then run the generator after the rebase |
token-union | Both sides extended the same line with extra tokens | Apply the printed proposal once the operator confirms the ordering |
content | A real disagreement | Read what each side changed, then resolve by hand |
For a content conflict the script also prints what each side changed against the common ancestor. The markers can't show you that, and it's what settles the resolution.
bash .agents/skills/codex-resolve-rebase-conflicts/scripts/resolve-union.sh <path> [path ...]An append-only sorted list conflicts on nearly every rebase, and the answer comes out the same every time: every line either side has, sorted, once each. A word list, a spelling dictionary, a vocabulary file. Asking an operator to confirm that means asking them to rubber-stamp arithmetic.
Safety comes from the condition rather than the filename. The script refuses unless all three versions really do sort cleanly under the C collation with no duplicate line, and unless both sides kept every line the ancestor had. Those two conditions are what make a union provably lossless. A file that stops meeting them stops resolving here, which is what keeps a name-based shortcut from outliving the property it assumed.
After writing, the script re-derives the union from the index stages and compares the two. The result must carry exactly the lines the two sides carry between them. No duplicates, and still sorted. A resolution that dropped a line fails there rather than in a lint run three commits later.
Don't confirm any of this with the operator. Report it in the summary at the end.
bash .agents/skills/codex-resolve-rebase-conflicts/scripts/take-side.sh <path> base-side
bash .agents/skills/codex-resolve-rebase-conflicts/scripts/take-side.sh <path> replayed-sideA generated file is the clear case. Merging two versions of machine output means nothing, because the generator is about to overwrite both. Take either side and move on. The codex-rebase skill's verification names the path again at the end, so the regeneration doesn't get forgotten.
A delete/modify conflict is the other case, and it isn't mechanical. One side removed the file and the other edited it, so the decision needs the intent behind the removal. Find it, say what you found, then take a side.
For a content conflict, work from what each side was trying to do rather than from the marker block. The classifier already printed both diffs against the common ancestor. Where you need more:
git diff :1:<path> :2:<path> # what the base-side changed
git diff :1:<path> :3:<path> # what the replayed-side changedResolve so that both intents survive. Keeping one side's edit and quietly dropping the other is the failure to watch for, and afterwards it looks identical to a clean resolution. Nothing you can run at this point tells the two apart. That gap is the reason the codex-rebase skill range-diffs the whole branch at the end rather than trusting that the replay applied.
One thing in a token-union proposal needs the operator: the ordering. Nobody disputes the union of the additions, but where those new tokens belong in the line is a judgement about how the file reads. Print the proposal, ask, apply the answer.
Stage what you resolved, by name:
git add -- path/one path/twoNever git add -A or git add .. During a rebase those sweep in whatever an earlier commit in the replay left behind.
Say what each path was and how you resolved it. Name anything you took a whole side on, and anything a generator still has to rewrite.
Then return to the codex-rebase skill, which continues the replay through continue-rebase.sh. That script reads the staged blobs for markers once more before it advances.
Where a stop looks like the branch came off the wrong base entirely, say so instead of grinding through the rest. git rebase --abort costs nothing.
Where rerere.enabled is on, git replays resolutions it recorded during earlier rebases and stages them without stopping. Those paths never surface as conflicts, so nothing here classifies them and nothing has read them since the recording. rebase-status.sh lists them under staged without stopping. Read any that the stopped commit also touches. A resolution git recorded against different surrounding code can apply cleanly and still mean something else now.
uv on the path for the shared conflict classifierpython3 on the path for independent union verificationThe scripts check these prerequisites and stop with a plain message when one is missing.
© tbhb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts) in .claude/skills/codex-resolve-rebase-conflicts of tbhb/vale-ai-tells.
Open the folder on GitHubat commit 4c7abc9
Codex Resolve Rebase Conflicts 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 |
|---|---|---|---|---|---|---|
| Codex Resolve Rebase Conflicts this skilltbhb/vale-ai-tells | 115 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Player-Facing Patch NotesDonchitos/Claude-Code-Game-Studios | 26k | — | ~2.5k | Automated safety check: Notes | MIT | |
| Git Teacher Savefivetaku/gptaku-plugins-codex | 128 | — | ~777 | Automated safety check: Notes | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT |
Donchitos/Claude-Code-Game-Studios
Writes player-facing patch notes from git history and changelogs, filtering out framework and maintenance commits and rewriting developer wording for players.
fivetaku/gptaku-plugins-codex
Commits changed files to Git, explained in plain language for non-developers.
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.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
TryGhost/Ghost
Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.
tbhb/vale-ai-tells
Query a Claude Code transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Query a Codex transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Diagnose failing pull request checks, reproduce them locally, make focused fixes, commit them through codex-commit, and refresh the published description when needed.
tbhb/vale-ai-tells
Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.
tbhb/vale-ai-tells
Open or update a pull request for the current branch with an independently drafted and reviewed PRAGENTDESC.md.
tbhb/vale-ai-tells
Replay the current branch onto its base and establish that the result is sound.
Works with
Categories
Settle the conflicts a merge-backend rebase left behind. An agent skill from tbhb/vale-ai-tells. Codex Resolve Rebase Conflicts is an agent skill from tbhb/vale-ai-tells. Settle the conflicts a merge-backend rebase left behind.
Codex Resolve Rebase Conflicts fits situations like: tasks that involve Git workflow.
Run `npx skills add tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a claude-code`. Or copy the skill folder (.claude/skills/codex-resolve-rebase-conflicts in tbhb/vale-ai-tells) into .claude/skills/codex-resolve-rebase-conflicts in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a codex`. Or copy the skill folder (.claude/skills/codex-resolve-rebase-conflicts in tbhb/vale-ai-tells) into .agents/skills/codex-resolve-rebase-conflicts 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 tbhb/vale-ai-tells --skill codex-resolve-rebase-conflicts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/codex-resolve-rebase-conflicts, .gemini/skills/codex-resolve-rebase-conflicts, .github/skills/codex-resolve-rebase-conflicts and .opencode/skills/codex-resolve-rebase-conflicts in your project.
Going by SKILL.md and its folder, Codex Resolve Rebase Conflicts needs a shell and Python for the scripts in its folder and the command-line tools its instructions call (git). Our summary lists: Python 3; A Bash shell.
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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Codex Resolve Rebase Conflicts 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.1k tokens (SKILL.md is roughly 8.6k 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 Codex Resolve Rebase Conflicts: Player-Facing Patch Notes (Donchitos/Claude-Code-Game-Studios, 26k stars), Git Teacher Save (fivetaku/gptaku-plugins-codex, 128 stars), Finishing a Development Branch (obra/superpowers, 296k stars) and Code Design Rationale Investigator (cursor/plugins, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tbhb (a GitHub user) maintains it in tbhb/vale-ai-tells, which has 115 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 7, 2026.
Source: tbhb/vale-ai-tells on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.