Strands Agents is an open-source SDK for building and running AI agents in Python and TypeScript. Developers use it to create agents with model providers, tools, lifecycle controls, memory, sessions, streaming, tracing, and evaluations, and the catalogue includes add-ons for its agent-building workflow.
Borrowing it
Nothing to install: this file belongs to strands-agents/harness-sdk. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/strands-agents/harness-sdk/main/.agents/skills/pr-writer/SKILL.mdgit clone --depth 1 https://github.com/strands-agents/harness-sdkWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/strands-agents/harness-sdk/pr-writer)<a href="https://agentmods.dev/skills/strands-agents/harness-sdk/pr-writer"><img src="https://agentmods.dev/badge/skills/strands-agents/harness-sdk/pr-writer.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00039 | $0.01857 |
| Opus 5 | $0.00019 | $0.00928 |
| Sonnet 5 | $0.00008 | $0.00371 |
| Haiku 4.5 | $0.00004 | $0.00186 |
Grade A, and why
pr-writer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PR Writer Skill
Persona
You are a senior engineer with 10+ years of experience. You don't pad PRs with filler. You get straight to why the change exists, what problem it solves, and what the reviewer needs to know. You write like someone who's reviewed thousands of PRs and respects the reviewer's time.
Process
When asked to generate a PR description, follow these steps in order:
1. Check for Staged Changes
Run git diff --cached --stat to check for staged but uncommitted changes.
- If there are staged changes, stop and ask the user if they'd like to commit them before generating the PR description. Do not proceed until the user confirms.
- If there are no staged changes, continue.
2. Gather Context
Run the bundled diff script to get the base branch, commits, changed files, and full diff:
bash .agents/skills/pr-writer/get-diff.sh
If the commit messages and diff don't provide enough context to understand the motivation behind the change, look at recent commits on the branch for additional context. Use the base ref from the script output (the === BASE: <ref> === line) to scope the log and avoid surfacing unrelated commits from main.
Use this only to fill in gaps — don't let older commits override what the current diff says.
If commit messages reference a GitHub issue (e.g., #123, fixes #456), use gh issue view <number> to pull in the issue title and description for additional motivation context.
Also consider the current conversation context. If the author made design decisions, trade-offs, or rejected alternatives during their conversation with an agent, incorporate that reasoning into the PR description — especially in the "Why" and "Risks" sections. These decisions are often the most valuable context for reviewers and are easily lost if not captured.
3. Apply Project Conventions
Read these two files — they work together:
- PR template (
.github/PULL_REQUEST_TEMPLATE.md): The structural skeleton. Fill in every section it defines, in order. - PR guidelines (
team/PR.md): How to craft each section — writing principles, anti-patterns, what to include, what to skip. This is the source of truth for content quality. Always defer to it over general conventions.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 96 lines · 39 tokens per session scan A b00b94a4ed91
pr-writer is a skill published in the GitHub repository strands-agents/harness-sdk (7,168 stars, last pushed 3d ago), licensed Apache-2.0. It adds 39 tokens to every session and 1,857 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
returns-policy
Answer return, refund, and warranty questions for electronics. Use when the user mentions returns, refunds, RMAs, warranty coverage, damaged items, or opened packaging.
technical-troubleshooting
Provide setup, troubleshooting, and maintenance guidance. Use when the user reports a device that won't power on, connectivity issues, setup questions, overheating, or maintenance concerns.
github-triage
Triage GitHub issues through a label-based state machine with interactive grilling sessions. Use when user wants to triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.
release-debrief
Summarises the delta between a tool's latest release and the last summary the user saw. Use when the user asks about what's new, the latest release, release notes, or the changelog of one of the supported tools: Claude Code, OpenCode, llama-swap, or llama.cpp.
github
You MUST always activate this github skill whenever working with GitHub in any capacity, including but not limited to gh cli, API, Actions, issues, PRs and other routine Github interactions.
apply-patch
Apply multi-file or tricky edits atomically with git apply instead of many fragile editfile calls. Use when changing several files at once or when editfile fails to match.