# Submit A Pull Request

> |

- **Type:** Skill
- **Install:** `agentstack add skill-yegor256-courier-submit-a-pull-request`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [yegor256](https://agentstack.voostack.com/s/yegor256)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [yegor256](https://github.com/yegor256)
- **Source:** https://github.com/yegor256/courier/tree/master/skills/submit-a-pull-request

## Install

```sh
agentstack add skill-yegor256-courier-submit-a-pull-request
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

## Target

Target GitHub repository user named, or `origin` otherwise.
Use repository's actual default branch as base.
Resolve base branch at runtime, never hard-coding `main`.

## Preconditions

Refuse on default branch or with dirty working tree.
Refuse when no commits sit ahead of default branch.
Refuse when open pull request already targets same branch.
Confirm branch is up to date with remote default.

## Boundaries

Submit commits untouched.
Skip editing, amending, rebasing, squashing, building, testing, and linting.

## Branch

Push branch before opening pull request.

## Title

Use imperative-mood title, not `Fixes` or `Update`.
Derive title and body, never from branch name.

## Body

Write body as few short paragraphs.
Cover what changes, why, and any follow-up.
Quote snippet of most important change, no longer than ten lines.
Trust code to convey change better than prose.

## Format

Shape pull request as imperative title plus short prose body.
Shape comment as one or two sentences.

## Voice

Write like human.
Vary rhythm, never sliding into AI cadence.
Open with substance, never with boilerplate or buzzword strings.
End body on last sentence.
Skip `Generated with` footers, `Co-Authored-By` trailers, and robot emoji.

## Closing

Use closing keyword only when user or commit already cites issue.

## Owner

Read owner from repository slug.
For organization, use top recent committer as owner.
Stop when owner stays unknown.
Ask user to resolve it.

## Comment

Skip comment when owner is authenticated account.
Post one follow-up comment to owner otherwise.
Mention owner in that comment.
Offer to clarify in that comment.
Keep comment to one or two sentences.
Ping one account.
Let owner set their own timing.

## Example

Branch `42-retry` adds retry logic and user says "open PR".
Push branch to `origin`.
Title pull request `Add retry to courier client`.
Write few short paragraphs covering change and motivation.
Quote most important change, under ten lines.
Ping owner once in follow-up comment.

## Stop

Stop after comment, or after pull request when you skip comment.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [yegor256](https://github.com/yegor256)
- **Source:** [yegor256/courier](https://github.com/yegor256/courier)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-yegor256-courier-submit-a-pull-request
- Seller: https://agentstack.voostack.com/s/yegor256
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
