Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Ghostty submodule and GhosttyKit workflow rules for cmux. Use when modifying the ghostty submodule, rebuilding GhosttyKit.xcframework, updating the parent submodule pointer, or documenting fork conflict notes.
.claude/skills/manaflow-ai-cmux-ghostty/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -31% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -67% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -27% | 0% |
Always rebuild the xcframework with Release optimizations:
bashcd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=universal -Doptimize=ReleaseFast
Ghostty changes are committed in the ghostty submodule and pushed to the manaflow-ai/ghostty fork. Keep docs/ghostty-fork.md current with fork changes and conflict notes.
Always run git remote -v first and push to whichever remote is manaflow-ai/ghostty. .gitmodules sets the submodule URL to that fork, so in a normal checkout it is origin; older setups tracked upstream as origin and added the fork as manaflow. Substitute the right name below.
bashcd ghostty git remote -v # find the manaflow-ai/ghostty remote (usually origin) git checkout -b <branch> git add <files> git commit -m "..." git push origin <branch>
To pull in changes from upstream ghostty-org/ghostty, add it as an explicit remote first, since no checkout has it by default:
bashcd ghostty git remote add upstream https://github.com/ghostty-org/ghostty.git # once git fetch upstream git checkout main git merge upstream/main git push origin main
Then record the new SHA in the parent repo:
bashcd .. git add ghostty git commit -m "Update ghostty submodule"
For any submodule (ghostty, vendor/bonsplit, homebrew-cmux), push the submodule commit to its remote branch before committing the updated pointer in the parent repo. Never commit on a detached HEAD or a temporary branch: the parent then points at a SHA unreachable from any remote branch, and a future checkout or CI job fails to fetch it.
Verify the commit is reachable from the branch the pointer should track, using the remote you just pushed to:
bashcd ghostty && git fetch origin main && git merge-base --is-ancestor HEAD origin/main
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | fail→pass | 9,257 | 1,841 | -80% | 1 | 1 | 0% | 1,576 | 782 | -50% | 0 | 0 | — |
case-01 | fail→pass | 6,461 | 1,949 | -70% | 1 | 1 | 0% | 1,172 | 812 | -31% | 0 | 0 | — |
case-02 | fail→fail | 8,646 | 6,693 | -23% | 1 | 1 | 0% | 1,525 | 1,861 | +22% | 0 | 0 | — |
case-03 | fail→pass | 10,683 | 6,040 | -43% | 1 | 1 | 0% | 1,721 | 1,756 | +2% | 0 | 0 | — |
case-04 | pass→pass | 8,121 | 1,833 | -77% | 1 | 1 | 0% | 1,515 | 757 | -50% | 0 | 0 | — |
case-05 | fail→pass | 14,106 | 2,597 | -82% | 1 | 1 | 0% | 2,522 | 824 | -67% | 0 | 0 | — |
case-06 | pass→pass | 5,990 | 1,839 | -69% | 1 | 1 | 0% | 945 | 778 | -18% | 0 | 0 | — |
case-07 | pass→pass | 3,284 | 1,691 | -49% | 1 | 1 | 0% | 465 | 787 | +69% | 0 | 0 | — |
case-08 | pass→pass | 4,519 | 1,346 | -70% | 1 | 1 | 0% | 825 | 717 | -13% | 0 | 0 | — |
case-10 | pass→pass | 9,143 | 2,709 | -70% | 1 | 1 | 0% | 1,644 | 918 | -44% | 0 | 0 | — |
case-11 | fail→pass | 13,249 | 2,044 | -85% | 1 | 1 | 0% | 1,162 | 843 | -27% | 0 | 0 | — |
case-12 | fail→pass | 8,925 | 2,039 | -77% | 1 | 1 | 0% | 1,610 | 845 | -48% | 0 | 0 | — |
case-13 | fail→pass | 7,780 | 2,163 | -72% | 1 | 1 | 0% | 1,333 | 801 | -40% | 0 | 0 | — |
case-14 | fail→pass | 11,634 | 2,591 | -78% | 1 | 1 | 0% | 1,822 | 977 | -46% | 0 | 0 | — |
case-15 | pass→pass | 13,206 | 1,674 | -87% | 1 | 1 | 0% | 1,961 | 807 | -59% | 0 | 0 | — |
case-16 | pass→pass | 7,191 | 2,173 | -70% | 1 | 1 | 0% | 1,182 | 885 | -25% | 0 | 0 | — |
case-17 | pass→pass | 3,042 | 2,081 | -32% | 1 | 1 | 0% | 413 | 786 | +90% | 0 | 0 | — |
case-18 | pass→pass | 4,964 | 1,755 | -65% | 1 | 1 | 0% | 831 | 775 | -7% | 0 | 0 | — |
case-19 | pass→pass | 5,423 | 1,691 | -69% | 1 | 1 | 0% | 872 | 767 | -12% | 0 | 0 | — |
case-20 | pass→pass | 7,483 | 5,002 | -33% | 1 | 1 | 0% | 1,317 | 1,412 | +7% | 0 | 0 | — |
case-21 | pass→pass | 6,388 | 2,459 | -62% | 1 | 1 | 0% | 956 | 920 | -4% | 0 | 0 | — |
case-22 | pass→pass | 6,362 | 7,600 | +19% | 1 | 1 | 0% | 1,092 | 1,852 | +70% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.