Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Open Markdown reliably in cmux panes and recover from blank rendered surfaces.
.claude/skills/sickn33-markdown-rendering/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 917% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 462% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -66% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -21% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -55% | 0% |
cmux markdown open defaults to spawning a brand-new pane every time, even with --direction right. The common "fix" — moving the new markdown surface into the existing right pane with move-surface — bugs out: the moved viewer renders BLANK. The surface keeps type=markdown and looks healthy, but shows nothing.
So you get stuck: either a stray extra pane, or a blank viewer after moving it.
You have exactly two reliable options. Never move-surface a markdown viewer — that is the path that bugs.
If there is no usable right pane yet, just let cmux create one and leave it where it lands:
bashcmux markdown open /abs/path/file.md --direction right --focus false
Do NOT then move it. If it spawned where you want it, you're done.
If there are other right panes in the way (and they're unused or irrelevant), close them first, then open the markdown fresh as a new right pane:
bash# 1. find panes in THIS workspace cmux list-panes --workspace "$CMUX_WORKSPACE_ID" # 2. close the unused/irrelevant right pane(s) by closing their surfaces cmux list-pane-surfaces --pane pane:NN cmux close-surface --surface surface:XX # repeat per surface in that pane # 3. THEN open the markdown fresh — it creates its own clean right pane cmux markdown open /abs/path/file.md --direction right --focus false
move-surface a markdown viewer. It renders blank afterward. This is the core bug this skill exists for.$CMUX_WORKSPACE_ID; never assume the visually focused workspace.--focus false so you don't steal the user's focus.davidondrej/skills; verify local paths, tools, credentials, and agent features before acting.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 4,949 | 6,549 | +32% | 1 | 1 | 0% | 178 | 1,810 | +917% | 0 | 0 | — |
case-02 | fail→pass | 5,714 | 4,469 | -22% | 1 | 1 | 0% | 249 | 1,400 | +462% | 0 | 0 | — |
case-03 | fail→fail | 6,886 | 5,926 | -14% | 1 | 1 | 0% | 483 | 1,636 | +239% | 0 | 0 | — |
case-04 | fail→pass | 16,611 | 2,398 | -86% | 1 | 1 | 0% | 2,941 | 1,010 | -66% | 0 | 0 | — |
case-05 | pass→pass | 10,227 | 4,629 | -55% | 1 | 1 | 0% | 1,572 | 1,503 | -4% | 0 | 0 | — |
case-06 | pass→pass | 7,465 | 5,098 | -32% | 1 | 1 | 0% | 1,238 | 1,561 | +26% | 0 | 0 | — |
case-07 | fail→pass | 8,534 | 3,113 | -64% | 1 | 1 | 0% | 1,461 | 1,152 | -21% | 0 | 0 | — |
case-08 | fail→pass | 13,604 | 2,203 | -84% | 1 | 1 | 0% | 2,270 | 1,017 | -55% | 0 | 0 | — |
case-09 | pass→pass | 5,396 | 1,975 | -63% | 1 | 1 | 0% | 840 | 804 | -4% | 0 | 0 | — |
case-10 | fail→pass | 9,257 | 7,092 | -23% | 1 | 1 | 0% | 1,467 | 1,743 | +19% | 0 | 0 | — |
case-11 | pass→pass | 6,795 | 3,946 | -42% | 1 | 1 | 0% | 1,140 | 1,359 | +19% | 0 | 0 | — |
case-12 | pass→pass | 8,669 | 4,220 | -51% | 1 | 1 | 0% | 1,548 | 1,404 | -9% | 0 | 0 | — |
case-13 | fail→pass | 9,981 | 2,522 | -75% | 1 | 1 | 0% | 1,740 | 891 | -49% | 0 | 0 | — |
case-14 | fail→pass | 8,639 | 1,748 | -80% | 1 | 1 | 0% | 1,485 | 861 | -42% | 0 | 0 | — |
case-15 | fail→pass | 16,641 | 3,001 | -82% | 1 | 1 | 0% | 2,360 | 1,149 | -51% | 0 | 0 | — |
case-16 | pass→pass | 3,029 | 2,950 | -3% | 1 | 1 | 0% | 527 | 1,130 | +114% | 0 | 0 | — |
case-17 | fail→fail | 16,466 | 7,870 | -52% | 1 | 1 | 0% | 2,836 | 1,842 | -35% | 0 | 0 | — |
case-18 | fail→pass | 8,992 | 2,486 | -72% | 1 | 1 | 0% | 1,702 | 1,077 | -37% | 0 | 0 | — |
case-19 | fail→pass | 5,973 | 3,500 | -41% | 1 | 1 | 0% | 1,021 | 1,224 | +20% | 0 | 0 | — |
case-20 | fail→pass | 11,987 | 3,686 | -69% | 1 | 1 | 0% | 2,094 | 1,328 | -37% | 0 | 0 | — |
case-21 | fail→pass | 10,110 | 2,335 | -77% | 1 | 1 | 0% | 1,637 | 981 | -40% | 0 | 0 | — |
case-22 | pass→pass | 4,635 | 2,296 | -50% | 1 | 1 | 0% | 834 | 1,036 | +24% | 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, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 19 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.