open-pr
Open a pull request whose description carries the evidence a reviewer needs — screenshots of every changed screen at each supported device size for UI work…
Skill by heartnetkung
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/heartnetkung-open-pr
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.
About
Use cases: design, backend, writing
Reviews
Write a reviewNo 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
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/open-pr
What's inside
- Skill name
open-pr- Description
- Open a pull request whose description carries the evidence a reviewer needs — screenshots of every changed screen at each supported device size for UI work, and the REST API diff plus the persistence-layer changes for backend work. Use when opening a PR for ticket work, or when asked to write or improve a PR description.
- License
- MIT
- Instructions
- 157 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# A PR the reviewer can judge without checking it out
The description is the review's input. The reviewer should be able to see what changed on
screen, on the wire and in storage from the description alone, and reach for the diff only to
check how.
## 1. Read the ticket and the diff
Read the ticket the branch implements and `git diff main...HEAD`. Keep the ticket's done-when
lines beside you: every one is either met by the diff or listed under "Where it departs from
the ticket". Take every claim in the description from the diff, not from memory of the session.
Then collect evidence by what the diff touches: UI, backend, or both.
## 2. UI — every changed screen at every supported size
The screens side by side at each size are how the reviewer checks responsive design at a
glance, without resizing a browser. A single desktop screenshot hides exactly the bugs this
exists to catch.
**The sizes come from the project's responsive design policy in its README**: a list of named
sizes with their pixel dimensions. If the README has none, ask the user which sizes the project
supports, offering laptop 1440×900, tablet landscape 1180×820, tablet portrait 820×1180 and
mobile portrait 390×844 as the default, and write the answer into the README before shooting.
Never choose the sizes yourself: they are a product decision, and the next PR must use the
same ones.
**Shoot with the project's screenshot helper**, as its README documents. If it has none, add
one to the browser test suite the project already has — one function that takes a screen name
and writes one image per size — and document it beside the policy.
Shoot each screen and each state the ticket added or changed: an open menu or dialog, an empty
list and an error are screens of their own.
**Commit the images, link them by SHA, then delete them:**
1. Commit the images alone, in one commit. Note its SHA.
2. Link each image in the description as
`https://github.com/<owner>/<repo>/blob/<sha>/<path>?raw=true`. A link by SHA still resolves
after the file is deleted and after the branch is gone, because GitHub keeps a PR's commits.
3. Delete the images in the PR's last commit.
The repository must squash-merge for this to keep the images out of `main`'s history. With a
merge commit they stay there for good; say so in the hand-off if
`gh api repos/{owner}/{repo} --jq .allow_merge_commit` prints `true`.
## 3. Backend — what changed on the wire and in storage
Both lists are derived from the diff: the route definitions, and the schema or migration
files. Write "None" under a heading that has nothing, so the reviewer knows it was checked.
**REST API diff.** One row per route, marked added, changed or removed. For a changed route,
say what changed in the request or the response — a field added, renamed, retyped, removed, or
a new status code — and whether an existing client breaks.
**Persistence diff.** Everything that changes what is stored, or where:
- Database: tables, columns, indexes and constraints added, changed or removed, taken from the
migration or from the schema definition. Say whether existing rows need a backfill.
- Object storage: each new or changed path pattern (such as
`gs://<bucket>/decks/{deckId}/revisions/{n}.pptx`), what is written there and what writes it.
- Any other store the diff touches — a cache key, a queue, a file on disk — the same way.
## 4. Write the description
In this order. Drop a section that has nothing to say, except the two backend headings above.
On a PR that is not the ticket's last, the first line is `Part of #<ticket> (PR <i> of <n>).`
instead, and no closing keyword (close, fix, resolve, in any form) comes before `#<ticket>`
anywhere in the body or title: GitHub closes the ticket on a keyword even mid-sentence, as in
"PR 2 … closes #<ticket>".
```markdown
Closes #<ticket>. <One or two sentences: what this PR is, and what it leaves to which ticket.>
## What is here
<One bullet per thing a user or a caller can now do, bold lead word.>
## Where it departs from the ticket
<One bullet per departure, each with its reason. A done-when line met another way goes here.>
## Decisions
<Important obvious questions decided after the plan was approved, one bullet each: where
(UI part, route, how the edge case happens, or which principle and requirement), the problem,
the choice, and why — with the preference that would flip it.>
## Also changed
<Changes outside the ticket's scope, each with why it was needed.>
## Checks
<The commands run and their real results. A skipped or failing check is stated as such.>
## API
| | Route | Change |
|---|---|---|
| added | `POST /decks/{deckId}/revisions` | … |
## Persistence
<Database, then object storage, as in step 3.>
## Screens
<The sizes, and the SHA of the commit that holds the images.>
**<Screen name>**
| <Size 1> | <Size 2> | <Size 3> | <Size 4> |
|---|---|---|---|
|  |  |  |  |
```
## 5. Open it
**Open it conflict-free.** Right before opening, on the PR branch:
1. `git fetch origin main && git merge origin/main`. Merge, never rebase: the repo
squash-merges, so the merge commit never reaches `main`, and no force-push is needed.
2. Resolve each conflicted file by the intent of both sides, read from
`git log --oneline $(git merge-base HEAD origin/main)..origin/main -- <file>`.
3. Run the project's check command (its README or CLAUDE.md names it) and commit the merge.From heartnetkung/claude-skills, MIT.
More from heartnetkung/claude-skills
- 0.592score
slides
heartnetkung
Build PowerPoint decks from a Markdown source with pandoc, reloading LibreOffice Impress after every change.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
vibe-prototype
heartnetkung
Build a throwaway, locally-running UI prototype with realistic dummy data to decide what to build, then hand it off as a spec with screenshots.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
python-scaffold
heartnetkung
Scaffold a new Python project with strict tooling — uv, src layout, ruff, pyright strict, tach layer enforcement, deptry, vulture, and an 8-hook pre-commit…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
start-ticket
heartnetkung
Start work on a ticket — read it, explore the code, decide the obvious questions yourself and ask the rest, and get the plan approved, including how it splits…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
markdown-check
heartnetkung
Edit a markdown document for coherence, concision, unambiguous technical terms, and live references — auto-fixing what is certain and asking about what is not.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
module-design
heartnetkung
How to design a new module, or a change to an existing module's behaviour or contract, before coding it, and how to retire its build docs afterwards.
SkillAFreshness: A★ 1Claude Code +9 - 0.582score
slow-pytest-maintenance
heartnetkung
Record a pytest suite that has grown too slow as a GitHub issue, then stop.
SkillAFreshness: A★ 1Claude Code +9 - 0.318score
typescript-scaffold
heartnetkung
No description from the publisher yet.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/heartnetkung/claude-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from heartnetkung
- 0.592score
slides
heartnetkung
Build PowerPoint decks from a Markdown source with pandoc, reloading LibreOffice Impress after every change.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
vibe-prototype
heartnetkung
Build a throwaway, locally-running UI prototype with realistic dummy data to decide what to build, then hand it off as a spec with screenshots.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
python-scaffold
heartnetkung
Scaffold a new Python project with strict tooling — uv, src layout, ruff, pyright strict, tach layer enforcement, deptry, vulture, and an 8-hook pre-commit…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
markdown-check
heartnetkung
Edit a markdown document for coherence, concision, unambiguous technical terms, and live references — auto-fixing what is certain and asking about what is not.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
start-ticket
heartnetkung
Start work on a ticket — read it, explore the code, decide the obvious questions yourself and ask the rest, and get the plan approved, including how it splits…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
module-design
heartnetkung
How to design a new module, or a change to an existing module's behaviour or contract, before coding it, and how to retire its build docs afterwards.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
open-pr skill. Agent Mart. https://agentmart.dev/skills/heartnetkung-open-pr (last updated 2026-10-24)