Skip to content
Back to skills

Pr

ASecurity

Write or revise a pixel pull request body: fill .github/pull_request_template.md (Closes #N, Summary with a call-tree, file-tree or pseudocode sketch built from pixel's own graph, before/after Evidence with commands, Merge Danger as door and blast radius, Docs touched). Use when opening a PR, rewriting its description, or answering a reviewer who asks what a PR does or risks. Adapted from Matt Pocock's MIT pr skill and HumanLayer's MIT show-me skill (UPSTREAM pins both).

  • 26 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 6, 2026
developmentgorubydockergitsecurity

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add Pixel-CLI/pixel --skill pr --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pr?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pr
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pixel-cli-pixel-pixel/badge)](https://www.skillsdirectory.com/skills/pixel-cli-pixel-pixel)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pr
description: "Write or revise a pixel pull request body: fill .github/pull_request_template.md (Closes #N, Summary with a call-tree, file-tree or pseudocode sketch built from pixel's own graph, before/after Evidence with commands, Merge Danger as door and blast radius, Docs touched). Use when opening a PR, rewriting its description, or answering a reviewer who asks what a PR does or risks. Adapted from Matt Pocock's MIT pr skill and HumanLayer's MIT show-me skill (UPSTREAM pins both)."
---

# Writing the pull request body

The layout is [`.github/pull_request_template.md`](../../../.github/pull_request_template.md);
this skill does not carry a second copy. Fill its sections in order, delete
its HTML comments, skip any preamble and keep prose brief. Use the
vocabulary of `ARCHITECTURE.md` (crate names, op names, `.pixel/` file
names as the code spells them).

## First line

`Closes #<n>` for the issue the PR resolves, `Refs #<n>` when it does only
part of it (`.agents/rules/project-task.md`). After opening, check that the
issue lists the PR under Development: a keyword inside a code span or with
a typo does not link, and `board-sync.yml` reads only what GitHub linked.

## Summary

One or two sentences: what changes and why — the bug reproduced or the
user-visible effect. Then, only when it makes the point faster than the
sentence, the smallest sketch. Use one, sometimes two; never all of them.
The examples below show the shapes; their names are illustrative.

- **Call tree**, for a change in runtime flow. Build it from the graph, not
  from memory: `pixel impact <symbol>` (callers, `--direction downstream`
  for callees) or `pixel who-calls <fn> --role callers`, trimmed to the
  calls the change crosses. Show it as a `diff` when the tree already
  exists:

  ```diff
   ResolveIndex::decide_reference
  -  decide               # no site line: Ruby lexical scope is lost
  +  decide_at            # site_line reaches decide_from
       decide_from
  ```

- **File tree**, for a move, a split or a new module:

  ```diff
   crates/pixel-install/src/
  -├── warp.rs
  +├── warp/
  +│   ├── config.rs     # reads and writes the Warp settings
  +│   └── rules.rs      # the managed rule block
  ```

- **Pseudocode**, for a rule or an algorithm, as a `diff` when it replaces
  one:

  ```diff
   on(pull_request_target)
  -  number = regex("Task (\d+)", body)
  +  issues = pr.closingIssuesReferences
  +  for issue in issues on project 3: set Status
  ```

- **Mermaid** `sequenceDiagram`, for an exchange between processes (CLI,
  daemon, hook, agent) that a tree cannot order.

- The **whole block** instead of a diff only when most of it is new or the
  reader needs a shape to copy (a config entry, a new op's envelope).

Keep only the calls, files and states the change touches. Put each sketch
right after the sentence it supports.

## Evidence

Before and after, each with the command that produced it
(`.agents/rules/measuring.md`: the command beside the number, the
baseline, the run's identity).

- **Best:** a test that fails without the change and passes with it. Name
  it and quote the failing assertion:
  `cargo test -p pixel-graph resolves_ruby_constant_receiver` — before:
  `left: 0, right: 1`; after: ok.
- **Next:** CLI output before and after (`pixel <op> … --json`, trimmed to
  the fields that changed), or a counted result with its command
  ("107 tested, 79 caught, 0 missed", never "green").
- A visual change (the website, `docs/motion`) shows a screenshot or
  capture.

Then one line on what ran where: which CI jobs validate the head, which
local checks you chose, and what was **not** run (the musl cross-build, the
Docker smoke, an installed-hook check). A local pass describes its own
snapshot only (`.agents/rules/validation-loop.md`).

## Merge Danger

**Door.** Two-way when `git revert` restores every user's state; one-way
when it does not. In this repository the usual one-way doors are:

- a bump of `EXTRACTOR_VERSION` (every existing graph rebuilds) or of the
  concept extractor's version;
- `PROTOCOL_VERSION` or the daemon envelope (an older CLI and a newer
  daemon stop understanding each other);
- a format or a path under `.pixel/`, `~/.pixel/` or
  `~/.local/{share,state}/pixel/` (a revert leaves files the old code
  cannot read, or orphans them);
- what `pixel install` writes into Claude, Codex or pi configuration, and
  what `uninstall` removes (users' own settings are in those files);
- a release tag, a published changelog entry, a security advisory;
- anything that deletes or rewrites a user's file.

Say which applies and what a revert would leave behind; otherwise write
"two-way".

**Blast radius.** One word (`none`, `docs`, `CI`, `one op`, `graph`,
`daemon`, `install`, `every agent`), then what a bad merge would break and
for whom: a hook that errors runs in every repository of every user who
installs the release; a ranking change moves every `find-code` answer; a
workflow change can block every pull request.

## Docs touched

`changelog.d/` (or why the change ships nothing), `ARCHITECTURE.md` with
the section `.agents/rules/architecture-doc.md` maps the change to (or why
it moves nothing the map describes), the agent prompt, the README.

Files in this skill

  • SKILL.md5.2 KB
  • UPSTREAM171 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…