Skip to content
Agentmart
Submit a tool

yas-pr-screenshots

Generate before/after PNG screenshots for a YAS branch's rendering changes, push them to the yas-pr-screenshots repo, and hand back a markdown before/after…

Skill by tmck-code

IndexedBSD-3-Clause★ 244
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tmck-code-yas-pr-screenshots

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Generate before/after PNG screenshots for a YAS branch's rendering changes, push them to the yas-pr-screenshots repo, and hand back a markdown before/after table for the PR description. Use when the user wants real image screenshots (not ANSI-stripped text) attached to a YAS pull request, or asks to shoot/capture before-after statusline screenshots for a branch.

Use cases: documents

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Shell scripts

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/yas-pr-screenshots

What's inside

Skill name
yas-pr-screenshots
Description
Generate before/after PNG screenshots for a YAS branch's rendering changes, push them to the yas-pr-screenshots repo, and hand back a markdown before/after table for the PR description. Use when the user wants real image screenshots (not ANSI-stripped text) attached to a YAS pull request, or asks to shoot/capture before-after statusline screenshots for a branch.
License
BSD-3-Clause
Instructions
84 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (2)

  • SKILL.md
  • shoot.sh · scripts/

SKILL.md (first lines)

# YAS PR screenshots

Render the statusline on `main` ("before") and on the current branch ("after") as
deterministic PNGs, publish them to the public `tmck-code/yas-pr-screenshots` repo,
and emit a markdown table that another worker (e.g. the **yas-pr** skill or a
`gh pr edit`) drops into the PR body. PNGs come from `DEMO_ONLY=<scenario> make
demo/img` (via `ops/ansi_png.py` — needs ImageMagick `magick` + a Mono Nerd Font).

## Steps

1. **Resolve `<pr_id>`.** If the current branch already has a PR, use its number
   (`gh pr view --json number -q .number`). Otherwise predict the next one:
   `gh pr list --state all --limit 1 --json number -q '.[0].number'` **+ 1**.

2. **Locate the screenshots checkout.** Use `$YAS_PR_SCREENSHOTS_DIR` if set, else a
   sibling `../yas-pr-screenshots`, else clone `git@github.com:tmck-code/yas-pr-screenshots.git`.
   Ensure it's on `main` and clean (`git -C <dir> pull --ff-only`). `*.png` is LFS-tracked there.

3. **Pick variants.** Always shoot `kitchen-sink`. Then read `git diff --stat main...HEAD`
   (and the diff) and add the variants most relevant to what changed — map area → variant:

   | Branch touches | Add variant `LABEL:SCENARIO:ENV` |
   |---|---|
   | subagents / openspec / tasks / workflows | `subagents:subagents:` · `openspec:openspec:` · `tasks:tasks:` · `workflows:workflows:` |
   | context fill / soft limit / token window | `full-context:full-context:` (or `YAS_SOFT_LIMIT=`) |
   | config parsing / errors | `config-error:config-error:` |
   | narrow width / truncation | `narrow:kitchen-sink:YAS_MAX_WIDTH=40` |
   | full width | `full-width:kitchen-sink:YAS_FULL_WIDTH=1` |
   | justify / labels | `justify:kitchen-sink:YAS_JUSTIFY=1` · `labels:kitchen-sink:YAS_LABELS=1` |
   | theme / gradient / colour | `theme-<name>:kitchen-sink:YAS_THEME=<name>` |
   | glyph mode | `github:kitchen-sink:YAS_GLYPH_MODE=github` |
   | model / thinking | `opus-thinking:opus-thinking:` · `sonnet-thinking:sonnet-thinking:` |

   Use the same ENV on both sides so the diff is purely the content change. Scenario
   names: `ops/demo.py` `SCENARIOS` (kitchen-sink, tasks, openspec, subagents, workflows,
   full-context, config-error, sonnet-thinking, opus-thinking, …).

4. **Render + stage.** From the YAS repo root run the helper with the chosen variants:

   ```bash
   .claude/skills/yas-pr-screenshots/scripts/shoot.sh <pr_id> <screenshots_dir> \
     'kitchen-sink:kitchen-sink:' 'narrow:kitchen-sink:YAS_MAX_WIDTH=40' 'subagents:subagents:'
   ```

   For each variant it renders after (current tree) and before (a throwaway `main`
   worktree), then combines the pair into ONE wide PNG — before and after side by side,
   each half topped by a small "before" / "after" heading, joined by a visible vertical
   separator strip (ImageMagick `magick`, deterministic). The combined image lands at
   `screenshots/<pr_id>/<label>.png` (the raw halves are also kept under
   `screenshots/<pr_id>/{before,after}/` for reference, but the table embeds only the
   combined image). It prints the markdown table to stdout: a blank-headed left column
   holding the variant label, one row per variant. A before render that fails (scenario
   new to the branch) yields a "(not on main)" placeholder left half instead of aborting.

   ```
   |  | before / after |
   |--|----------------|
   | <label> | ![<label>](<url_base>/<label>.png?raw=true) |
   ```

   When the change is theme-wide, use the same scenario (usually `kitchen-sink`) across
   all rows and vary only `YAS_THEME`, labelling each row with the theme name.

5. **Commit + push** (outward-facing — confirm with the user first):

   ```bash
   git -C <dir> add screenshots/<pr_id>
   git -C <dir> commit -m "screenshots: PR #<pr_id> before/after (<branch>)"
   git -C <dir> push origin main
   ```

6. **Hand off the table.** Output the table from step 4 verbatim as the final result so
   the PR-authoring worker can paste it into the **Screenshots / recording** section. Do
   **not** edit the PR body yourself — that's the next worker's job.

## Notes

- Images render only after the push lands (GitHub's LFS/image proxy may lag a few seconds).
- The embed URL is `.../blob/main/screenshots/<pr_id>/<label>.png?raw=true` — the
  `?raw=true` blob form resolves LFS pointers correctly where `raw.githubusercontent.com` doesn't.
- Prerequisite: `magick` on PATH (also used for the combine step) and a Mono Nerd Font
  installed (see `ops/ansi_png.py` env knobs).

From tmck-code/yet-another-statusline, BSD-3-Clause.

Signals

Stars
244
Forks
26
Open issues
3
Last commit (this folder)
Aug 10, 2026 (2 months ago)
Last release
Jul 17, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
BSD-3-Clause
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tmck-code

Cite this page

yas-pr-screenshots skill. Agent Mart. https://agentmart.dev/skills/tmck-code-yas-pr-screenshots (last updated 2026-10-24)