babysit-pr
Use after a pull request is open to watch its CI and review-bot comments until it is ready. Fixes real findings, replies with a…
Create Excalidraw diagram JSON files and PR visual overviews that make visual arguments. Use when the user wants to visualize workflows, architectures, concepts, pull request changes, before/after behavior, or a shareable explainer image for reviewers.
Claude Code
$ npx -y skills add greenfield-inc/Pane --skill excalidraw-pr-diagrams --agent claude-code
Codex
$ npx skills add greenfield-inc/Pane --skill excalidraw-pr-diagrams -a codex -y
Cursor
$ npx skills add greenfield-inc/Pane --skill excalidraw-pr-diagrams -a cursor -y
Gemini CLI
$ npx skills add greenfield-inc/Pane --skill excalidraw-pr-diagrams -a gemini-cli -y
GitHub Copilot
$ npx skills add greenfield-inc/Pane --skill excalidraw-pr-diagrams -a github-copilot -y
OpenCode
$ npx skills add greenfield-inc/Pane --skill excalidraw-pr-diagrams -a opencode -y
Windsurf
$ npx skills add greenfield-inc/Pane --skill excalidraw-pr-diagrams -a windsurf -y
name: excalidraw-pr-diagrams description: Draw Excalidraw diagrams that make a visual argument, such as a pull request's before/after visual overview, an architecture, a workflow or a shareable explainer, then render them to PNG and check them by eye.
A diagram argues; it doesn't display. Its shape should carry the meaning, so a reader can explain the change by pointing at it.
1. **Find the visual truth.** Before drawing, name what the change does, and pick the structure that shows it:
| The change... | Draw | |---|---| | moves a boundary | walls, trust zones, process or origin boundaries | | changes a lifecycle | a state machine, gate sequence or retry loop | | moves responsibility | before/after ownership regions, with the action crossing them | | removes a failure mode | the old path dead-ending, the new path avoiding it | | fixes a race | timelines, clocks or joins | | changes validation or permissions | a decision path with the gate and what passes | | fans out, converges, or transforms | radial arrows, a funnel, or input → process → output |
Give each major concept its own pattern. Two PRs that fix different kinds of problems get different layouts. 2. **Gather the real details.** Use the actual endpoint paths, event names, fields and example payloads from the code or spec. Concrete artifacts teach: a dark code box with the real query or command, a mock of the real menu or dialog built from nested rectangles, or bars on a time axis for states over time. Tag the pieces the PR adds or changes with small `NEW`, `CHANGED` or `REUSED` badges. 3. **Write the file** in a working folder outside the repository, such as `/tmp/pr-diagrams/<repo>-<pr>/overview.excalidraw`, using the format below. Build a large diagram one region per edit, or generate repeated pieces (timeline rows, badges) with a short script. For a PR whose diff is mostly generated files, list it with `gh pr diff --name-only` and read only the files that matter. 4. **Render and look** (below), fix what you see, and repeat until the checks at the end pass, usually 2–4 rounds.
A PR visual overview always has:
For a shareable explainer, title it with the outcome rather than the implementation, put the old blind spot on the left and the new loop or control point on the right, and include one real input and one real output.
Write short element skeletons. The renderer fills in ids, seeds, bindings and text sizes, and writes the expanded file to `<name>.full.excalidraw`, which opens in excalidraw.com for editing.
{"type": "excalidraw", "version": 2, "elements": [
{"type": "text", "x": 0, "y": 0, "text": "After: the token is checked before the write", "fontSize": 26, "strokeColor": "#1e40af"},
{"type": "rectangle", "id": "client", "x": 0, "y": 80, "width": 200, "height": 80,
"backgroundColor": "#fed7aa", "strokeColor": "#c2410c", "label": {"text": "Browser sends\nPOST /orders"}},
{"type": "diamond", "id": "gate", "x": 320, "y": 70, "width": 180, "height": 100,
"backgroundColor": "#fef3c7", "strokeColor": "#b45309", "label": {"text": "token valid?"}},
{"type": "arrow", "x": 200, "y": 120, "width": 120, "height": 0, "start": {"id": "client"}, "end": {"id": "gate"}, "label": {"text": "1"}},
{"type": "line", "x": 0, "y": 200, "points": [[0, 0], [820, 0]], "strokeStyle": "dashed", "strokeColor": "#64748b"},
{"type": "ellipse", "x": 0, "y": 230, "width": 14, "height": 14, "backgroundColor": "#3b82f6", "strokeColor": "#3b82f6"}
]}**Colours** (fill / stroke; keep a darker stroke on a lighter fill):
| Meaning | Fill | Stroke | |---|---|---| | Neutral, primary | `#dbeafe` | `#1e3a5f` | | Start, trigger | `#fed7aa` | `#c2410c` | | Success, end | `#a7f3d0` | `#047857` | | Decision | `#fef3c7` | `#b45309` | | Error, failure | `#fecaca` | `#b91c1c` | | AI, model | `#ddd6fe` | `#6d28d9` | | Code or data box | `#1e293b` | `#1e293b`, with text in `#22c55e` or `#e2e8f0` |
Text colours: title `#1e40af`, subtitle `#3b82f6`, detail `#64748b`. Colour supports the meaning but never carries it alone.
Use after a pull request is open to watch its CI and review-bot comments until it is ready. Fixes real findings, replies with a…
Use when a problem, idea, or change of intent is worth capturing as a long-form page, or the person asks to write it up. Never…
Use when the person reports broken behaviour or starts a session to file a bug. Reproduces and reports. Never fixes.
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening…
Explore the codebase to locate files, trace behavior, and document existing patterns with precise file references. Use when the…
Give a fresh agent something to walk through with zero context - a PR body, a landing page, a document, a process, instructions,…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration