Visual Pr
HumanLayerOfficialPublished by HumanLayer
- Skill
- Workflow
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Visual-PR helps developers communicate complex code changes effectively by generating structured pull request descriptions. It uses a template-driven approach to highlight the 'why' behind a change and provides a visual outline of the implementation, such as data structures, component trees, or call flows, rather than relying on verbose prose. The skill integrates with existing version control workflows to ensure that reviewers can quickly grasp the impact and design decisions of a pull request.
What it does
- Reads current branch context and existing pull request metadata.
- Generates a concise PR description based on a standardized template.
- Creates visual outlines of code changes using structural views like file trees, component hierarchies, or pseudocode.
- Updates the pull request body directly via command-line tools.
- Provides a summary report with links to the updated PR and the saved description file.
When to use it
- When you need to create a new pull request for your current work.
- When you want to update an existing pull request with a clearer, more structured description.
- When you need to explain complex architectural or logic changes to a reviewer.
- When you want to ensure your PR description follows a consistent, readable format.
Advantages
- Reduces reviewer cognitive load by using visual outlines instead of long-form text.
- Ensures consistent communication of critical implementation details and constraints.
- Automates the tedious task of drafting and updating PR descriptions.
- Keeps the focus on the 'why' and the 'shape' of the implementation.
Usage examples
- “visual-pr”
- The agent analyzes the current branch, generates a structured description including a visual outline of the changes, and updates the pull request on the remote repository.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/humanlayer/visual-pr/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip visual-pr.zip -d .agents/skills
Documentation by HumanLayer
Describe a Pull Request
Create or update the pull request for the current task with a concise description that helps a reviewer understand why the change exists and the shape of the implementation.
Workflow
Read the description template:
Read({SKILLBASE}/references/pr_description_template.md)Identify or create the pull request:
Check the current branch for a PR with
gh pr view --json url,number,title,state,baseRefName,headRefName 2>/dev/null.If no PR exists, inspect
git status --short --branchand the commits on the current branch.Commit task-related changes when needed, push the branch with an upstream, and create a PR for it. Follow the repository's git safety protocol.
Ask the user to select a PR only when the current branch has no relevant work and there is no safe current-branch PR to create.
Gather only the context needed to explain the change:
Read the ticket and any relevant task artifacts.
Read the complete PR diff and enough surrounding code to understand behavior and ownership.
Use
gh pr viewto collect PR metadata and changed files.Read
{SKILLBASE}/references/show-me.mdfor the visual-outline conventions used in the PR body.
Write the PR description using the template:
Keep Why the change to exactly one sentence.
Keep Special things to note to 1-3 bullets. Prioritize reviewer warnings, migrations, compatibility constraints, deliberate omissions, or surprising decisions. Write
- None.when there are no special considerations.Make Change outline a compact,
/show-me-inspired structural view rather than prose or a file-by-file changelog.Include only the views that help explain this PR:
SQL table and endpoint contract changes, plus pseudocode for business logic.
key data structure / type changes
A shallow file tree showing changed responsibilities.
React component tree changes, including important hooks, state, and package boundaries.
Call-tree, call-stack, control-flow, or data-flow changes.
Prefer
diffblocks when showing changes to an existing shape. Show the complete target shape when most of it is new or diff notation would obscure ownership or order.Keep each view focused on what a reviewer needs. Omit categories that did not change.
optionaL: if you are aware of a ticket id/url, a humanlayer task url, or related plan/document urls, or other relevant links, include them in the header, otherwise omit the header
Save and publish the description:
Use
.humanlayer/tasks/{task-slug}/pr-description.mdwhen the task directory exists; otherwise use.humanlayer/tasks/pr-{number}/description.md.Update the PR with
gh pr edit {number} --body-file {output-path}.Confirm the update succeeded.
Report completion:
Read
{SKILLBASE}/references/describe_pr_final_answer.md.Respond using that final answer template with the PR URL, saved description URL, and concise list of changed files.
Always read and follow {SKILLBASE}/references/pr_description_template.md. Do not expand the PR body beyond that template.
Write as one human talking to another: avoid jargon and slang, and use simple, coherent, concise language.
Files
- ATTRIBUTION.mdAdded by AutoGineer865 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md3.3 KiB
- references/describe_pr_final_answer.md421 B
- references/pr_description_template.md1.9 KiB
- references/show-me.md3.0 KiB
references/show-me.md
name: show-me description: Help the user understand the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts.
Help the user understand the current topic of conversation visually. Skip the preamble and keep prose brief. Pick the smallest view that makes the key point clear.
Show logic or an algorithm as pseudocode:
on(save)
if content is unchanged
return cached result
write new content
return fresh resultShow runtime control flow as a call tree:
submitForm
createSession
persistPrompt
launchAgent
navigateToSessionShow UI structure as a component tree, including state and module boundaries that matter:
<SessionPage> (apps/example/src/routes/session.tsx)
useSessionEvents()
<SessionToolbar>
<RunSkillButton> (packages/ui)Show file responsibility or a broad refactor as a shallow file tree:
src/
├── commands/ # parses user actions
├── sessions/ # owns session state
└── transport/ # sends API requestsShow component interaction, control flow, or data flow with Mermaid:
sequenceDiagram
participant User
participant UI
participant Daemon
User->>UI: choose command
UI->>Daemon: send expanded prompt
Daemon-->>UI: stream resultUse
diffwhen the point is what changes and the surrounding shape already exists. Match the diff shape to the topic.
For a component change:
<SessionPage>
useSessionEvents()
<SessionToolbar>
+ <RunSkillButton />
<SessionTimeline>
+ <SkillResultCard />For a file-layout change:
src/
├── commands/
+│ └── show-me.ts # expands the slash command
├── sessions/
-└── transport.ts
+└── transport/
+ ├── client.ts
+ └── stream.tsFor a call-tree or call-stack change:
submitForm
createSession
persistPrompt
+ expandSkillMention
launchAgent
- navigateToSession
+ navigateToSession
+ subscribeToEventsFor a state or control-flow change:
on(save)
- write content
+ if content is unchanged
+ return cached result
+ write new content
+ invalidate cacheShow the whole block when most of it is new, when omitted context would hide ownership or order, or when the user needs a copyable target shape:
function expandSkill(command: string): string {
const skillName = command.slice(1)
return `use the ${skillName} skill`
}For a visual UI, layout, state comparison, or concept too dense for Mermaid, create one focused HTML artifact. Match the product's colors, type, spacing, and components; use real labels and data; support desktop and mobile; then display it inline:
.humanlayer/tasks/{task-slug}/show-me-{description}.htmlPlace each visual next to the short text it supports. Keep only the calls, files, props, states, and boundaries needed to answer the user's current question.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- HumanLayer
- Publisher
- HumanLayer (Official)
- Source
- humanlayer/skills · plugins/visual-pr/skills/visual-pr · commit 4d69d20
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by HumanLayer or HumanLayer.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download visual-pr.zip