pr
Skill3 starsChanged 16 days agoMITView on GitHub
use before opening a PR or writing PR description
- Commits and pushes
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-browser-diffSkill
- ai-code-review-catalogSkill
- claude-parallel-writersSkill
- cross-harness-sub-agentSkill
- helper-sub-agentsSkill
- llm-evaluationSkill
- loopSkill
- orchestrate-multi-pr-workSkill
- planSkill
- propose-refactorSkill
- record-videoSkill
- triaging-feedbackSkill
- upgrade-dependenciesSkill
- writing-skillsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. About 0 are common, 15 are distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈15
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
use the actual diff and task evidence to describe the final change
- Distinctive: line 16
treat the working tree as intended.
- Very specific: line 21
create a branch when detached or on <base>.
- Very specific: line 22
run gh pr create --base <base> --title "<pr title>" --body-file - <<'EOF' with the body draft as the heredoc.
- Very specific: line 23
run bin/pr-add-contributor to add your thread to the PR's contributors: line
- Very specific: line 24
after the PR URL exists, generate links using file links and update it with gh pr edit <pr-url> --body-file - using the final body as a …
- Very specific: line 29
use /git and /repo-writing-style skills
- Distinctive: line 30
if pre-commit or pre-push hooks fail, fix
- Very specific: line 32
don't add labels, except skip-backend-stress when backend changes do not affect concurrency, async work, retries, locks, or test …
- Distinctive: line 34
commit and push authority ends when this PR flow completes.
- Very specific: line 38
keep it short and skimmable, using UK english and ASD-STE100 simplified technical english.
- Distinctive: line 39
write 1-3 short summary bullets.
- Distinctive: line 40
keep prose at most 150 words by default, excluding headings, diagrams, image links, and contributors.
- Distinctive: line 41
add detail beyond this only for a material risk, recovery step, or rollout requirement a reviewer needs to decide whether to merge
- Distinctive: line 45
keep review links inside the PR.
- Distinctive: line 72
when reasonably confident no further implementation or description edits remain, add line/range links only where they help a specific …
- Distinctive: line 94
start with why, then the concrete change in behaviour
- Distinctive: line 96
place the visual next to the point it explains.
- Distinctive: line 100
always state the door and actual blast radius.
- Very specific: line 101
use 2-way when reverting the code restores the previous behaviour without data repair or undoing external effects
- Very specific: line 102
use 1-way for destructive data changes or hard-to-reverse effects.
- Very specific: line 103
use unknown when reversibility is unresolved, and name the missing evidence
- Very specific: line 107
place - db migrations: ...
- Distinctive: line 120
keep unit tests, linting, formatting, type checks, builds, CI, and code review out of this section unless it was the goal of the PR
- Very specific: line 127
use /agent-browser for screenshots of useful static states
- Very specific: line 128
use /record-video when full flow, motion, interaction or state persistence needs demonstrating
- Distinctive: line 133
when an element appears after an animation, wait for it to finish, ie add a 1s delay before capture
- Distinctive: line 134
if a before capture is unavailable, label the available visual accurately and explain the gap briefly
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
open a ready PR targeting <base>: the parent branch for a stacked PR, otherwise develop
for description-only requests, use the description rules below and leave packaging to an authorised PR flow
workflow
- inspect once
- in 1 tool call, run
git status --short --branch,git log --oneline origin/<base>..HEAD,git diff --stat origin/<base>...HEAD, andgit diff --stat HEAD - use the actual diff and task evidence to describe the final change
- treat the working tree as intended; reuse the latest passing verification while its diff is unchanged
- complete when the branch action, commit message, PR title, and PR body draft are decided
- package
- create a branch when detached or on
<base>; stage/commit/push if needed - run
gh pr create --base <base> --title "<pr title>" --body-file - <<'EOF'with the body draft as the heredoc; keep file names as code paths until the PR URL exists; stdin needs no body file, so concurrent agents can't collide - run
bin/pr-add-contributorto add your thread to the PR'scontributors:line - after the PR URL exists, generate links using file links and update it with
gh pr edit <pr-url> --body-file -using the final body as a quoted heredoc, preserving existing content and contributor links - complete when every published file/line link is generated per file links; return the PR URL
notes:
- use
/gitand/repo-writing-styleskills - if pre-commit or pre-push hooks fail, fix
- preserve third-party PR description content and existing contributor links when updating a body
- don't add labels, except
skip-backend-stresswhen backend changes do not affect concurrency, async work, retries, locks, or test synchronisation; otherwise remove it - invoking this skill to open a PR (directly or through another skill), or saying something like "open a PR", grants permission to push and open that PR
- commit and push authority ends when this PR flow completes; later requests need new permission
description
- keep it short and skimmable, using UK english and ASD-STE100 simplified technical english; use
GLOSSARY.mdfor domain terms when needed - write 1-3 short summary bullets; combine related points to stay within 3
- keep prose at most 150 words by default, excluding headings, diagrams, image links, and contributors; small changes need less
- add detail beyond this only for a material risk, recovery step, or rollout requirement a reviewer needs to decide whether to merge
- give each fact 1 home; keep implementation detail or unchanged behaviour only when it explains the change, a tradeoff, or rollback
- describe the final diff for a reviewer without the chat history
- choose changed-file links using file links; prefer whole-file diff links for an overview and line/range links for a specific review point
- keep review links inside the PR; show unchanged files as code paths, and refresh affected links after file renames or line changes
use this body shape, omitting optional sections and replacing all placeholders:
why and what changed:
- <problem or reason, then resulting behaviour>
merge danger:
- door: <1-way, 2-way, or unknown>, <rollback or recovery>
- db migrations: <outcome using a format below>
- blast radius: <affected users, tenants, workflows, or consumers>
- <high|medium|low>: <material remaining risk and why it was not verified>
verification:
- <manual check or smoke test and observed result>
visual verification:
| before | after |
| --- | --- |
|  |  |file links
- while implementation or PR description edits are still planned, keep links sparse: link only key files with whole-file diffs and use code paths for other references
- when reasonably confident no further implementation or description edits remain, add line/range links only where they help a specific review point; refresh or simplify affected links if work resumes
- resolve the intended PR URL from
gh pr createoutput orgh pr view --json url --jq .url; for an explicitly requested PR, pass its URL/number togh pr viewin the commands below - take exact repository-relative
filenamevalues fromgh api --paginateforrepos/<owner>/<repo>/pulls/<number>/files?per_page=100; derive the repository and number from the resolved PR URL; use the listed current path for renamed files and listed path for deleted files - compare the returned file count with
gh pr view --json changedFiles --jq .changedFiles; the API caps results at 3,000 files, so treat a count mismatch as an incomplete list; leave referenced paths missing from that list as code paths, report the lookup gap, and generate links only for listed paths - generate
<pr-url>/changes#diff-<sha256(path)>from the path's UTF-8 bytes, without URL-encoding or a trailing newline; replace the sample path below and pass further paths as separate quoted arguments
pr_url=$(gh pr view --json url --jq .url)
node - "$pr_url" 'path/to/changed-file.ts' <<'JS'
const { createHash } = require('node:crypto');
const [prUrl, ...paths] = process.argv.slice(2);
for (const path of paths) {
const fileId = createHash('sha256').update(path, 'utf8').digest('hex');
console.log(`${path}\t${prUrl}/changes#diff-${fileId}`);
}
JS- for line links, append
L<line>for the old side orR<line>for the new side; for ranges, appendL<start>-L<end>orR<start>-R<end>, using actual PR diff line numbers
why and what changed
- start with why, then the concrete change in behaviour
- for a complex change, use the smallest useful view: a mermaid workflow, pseudocode, a shallow call/file/component tree, or a short diff sketch
- place the visual next to the point it explains; use prose alone when it is clearer
merge danger
- always state the door and actual blast radius; a small diff can affect every tenant
- use
2-waywhen reverting the code restores the previous behaviour without data repair or undoing external effects - use
1-wayfor destructive data changes or hard-to-reverse effects; state the recovery needed, even if code can be reverted - use
unknownwhen reversibility is unresolved, and name the missing evidence - name the affected surface, users/tenants, or consumers rather than a vague size label
- include material remaining risks as
high,medium, orlow, highest first; state the failure and why it was not verified - omit the risk bullet when none remains; add required rollout or recovery steps here when needed
- place
- db migrations: ...directly below- door: ..., using the matching format below; follow/rails-migration-conventionswhen migrations exist
- db migrations: none
- db migrations: passed on a production snapshot for <commit>; [log](<url>)
- db migrations: failed; <reason>; do not merge
- db migrations: not run; blocked by <reason>; do not mergeverification
- show concrete before/after evidence when available: manual checks, smoke tests, API or console output, or measured behaviour
- report checks actually performed and their observed results; if the before state was not captured, say so when it matters
- keep unit tests, linting, formatting, type checks, builds, CI, and code review out of this section unless it was the goal of the PR
- skip this section when there is no manual or smoke-test evidence
visual verification
- for all user-visible changes, or when visuals help review:
- include browser evidence from our app or other sites, dashboards and prototypes when it helps explain or verify the change
- use
/agent-browserfor screenshots of useful static states - use
/record-videowhen full flow, motion, interaction or state persistence needs demonstrating - inspect screenshots, videos and visible URLs for private data before uploading; redact without hiding behaviour needed as proof
- upload using
/github-image-uploadand include the result in the description
- for before/after comparisons, capture the base and changed versions in the same state, with matching viewport, data, and crop
- for before/after comparisons, use 1 2-column table per pair, as above; other visuals can use other formats
- when an element appears after an animation, wait for it to finish, ie add a 1s delay before capture
- if a before capture is unavailable, label the available visual accurately and explain the gap briefly
- skip this section when there are no visuals
- to save time, you can use a sub-agent for capture
small PR example
why and what changed:
- make file references open the review diff with before/after context and comment controls
- try the [demo file](https://github.com/meridian-labs/ops-console/pull/33042/changes#diff-b09335cb9e6aceea717e1b0e194589238d6c7af4973b68d9613b627ce07f928d) or [line 9](https://github.com/meridian-labs/ops-console/pull/33042/changes#diff-b09335cb9e6aceea717e1b0e194589238d6c7af4973b68d9613b627ce07f928dR9)
merge danger:
- door: 2-way, revert
- db migrations: none
- blast radius: PR descriptions and reviewer navigationDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

