Skip to content
Development
Skill

/yas-pr

Assemble a pull request that follows this repo's PR template, then open it as a draft. Use when the user wants to open, create, submit, or raise a PR for the current branch.

From plugin
yas
2397 skills3 agents1 hook
Install
$ npx -y skills add tmck-code/yet-another-statusline --skill yas-pr --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/yas-pr

Context preview

The summary Claude sees to decide when to auto-load this skill.

Assemble a pull request that follows this repo's PR template, then open it as a draft. Use when the user wants to open, create, submit, or raise a PR for the current branch.

SKILL.md

yas-pr.SKILL.md
name: yas-pr
description: Assemble a pull request that follows this repo's PR template, then open it as a draft. Use when the user wants to open, create, submit, or raise a PR for the current branch.

YAS PR

Fill in this repo's PR template from the current branch, then open a draft PR. Do not invent the template structure — read it from the repo so the two never drift.

Steps

1. **Sanity-check the branch and hooks.** Confirm the current branch is not `main` and has commits ahead of `origin/main`. If it's `main` or has no diff, stop and tell the user. Also check `git config --local --get core.hooksPath`; if it isn't `.github/hooks`, offer to run `make hooks` so the contributor gets pre-commit checks (don't enable it without their yes).

2. **Read the template.** Load `.github/pull_request_template.md`. This is the single source of truth for the section structure — mirror its headings exactly.

3. **Draft Context and Changes.** From `git diff main...HEAD` plus the conversation:

  • **Context** — *why* the change is needed; the higher-level goal/problem. Link the related

issue/PRD (`.scratch/<feature>/...`) if one exists. If this PR bumps the version (step 8), reference the new version number here.

  • **Changes** — *what* changed and *how* it works. Group related changes and give each group

its own `###` (H3) heading. Under each heading, break the distinct points out into bullet points rather than one long run-on sentence — a wall of text is hard to read. Present these as a draft for the user to edit; don't fabricate motivation you can't infer.

4. **Embed system info.** Run `make pr-info` and paste its output into the System info fenced block verbatim.

5. **Run tests.** Run `uv run pytest`. If green, tick the tests checkbox. If red, show the failures and ask the user whether to fix first or proceed. Optionally also run `uv run ruff check` and `uv run mypy .` and note results.

6. **Benchmark.** Run `make bench` (times this branch vs `main` via a throwaway git worktree). If `hyperfine` is not on PATH, `bench.py` prints an install hint and falls back to a Python timer — before letting it fall back, offer to install hyperfine (`apt`/`brew`/`cargo`) and ask the user; only fall back if they decline. Paste the paste-ready table into the Benchmark block. Tick "N/A — no performance-relevant change" instead only for docs/config-only PRs.

7. **Before/after screenshots.** For any visible rendering/layout/glyph change, fill the **Screenshots / recording** section by **delegating to the `pr-screenshotter` agent** (see its own file for what it does). Drop the table it returns **verbatim** into the Screenshots / recording section.

  • Don't render or push images yourself — that's the agent's whole job; you just place the

table it returns.

  • If the change isn't visible (logic/docs/config-only), skip this and tick the section's

"N/A — no visible change" escape honestly.

  • The agent commits + pushes to the screenshots repo's `main`; flag that to the user when you

present the body, since it's an outward-facing side effect of this PR flow.

8. **Bump the version (only if the statusline's behaviour changed).** If the diff changes the statusline tool or its behaviour — anything a user would notice (rendering, layout, glyphs, config knobs, new stats, output format) — bump the version before creating the PR. Work out the next version from the current one (`uv version --short`) per semver, then run `VERSION=0.X.Y make version/bump`. This is an outward-facing action — it commits **and pushes** the bump (`plugin.json`, `pyproject.toml`, `uv.lock`) — so confirm the new number with the user before running it. Then reference the new version in the Context section.

  • Skip the bump for developer-only changes that users never see: tests, the Makefile, hooks,

CI, dev deps, docs, OpenSpec specs, etc. When in doubt about whether a change is user-facing, ask rather than bumping blindly.

9. **Confirm, then create the draft.** Show the fully assembled body (Screenshots section already populated with the agent's table). After the user confirms, run `gh pr create --draft` with that body. Print the PR URL and tell the user to click "Ready for review" when done.

Notes

  • Keep checkbox N/A escapes honest — only tick "N/A — no behaviour change" / "N/A — no visible

change" when that's actually true.

  • `gh pr create --draft` is an outward-facing action: never run it before the user confirms the

body.

Read more
Ships withyas

🌈 Check out the official landing page here: YAS! Yet Another Statusline Most common form is displaying the first few rows, which include the loaded plugins & skills. Extra sections appear below them as needed

Get the whole plugin
Stats
239
Stars
24
Forks
Active
Maintenance
Python
Language
BSD-3-Clause
License
8h ago
Last commit
3mo ago
Created

Repo: tmck-code/yet-another-statusline

Other skills on yas.