# Custom Submit Pr

> Creates a GitHub pull request using gh CLI, with a description generated from the PR summary skill and styled with the writing style guide, assigned to and reviewed by assertchris. Use when user asks to make a PR, create a PR, submit a PR, or open a pull request. Supports draft PRs when the user says "draft PR" or "draft pull request".

- **Type:** Skill
- **Install:** `agentstack add skill-assertchris-claude-skills-custom-submit-pr`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [assertchris](https://agentstack.voostack.com/s/assertchris)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [assertchris](https://github.com/assertchris)
- **Source:** https://github.com/assertchris/claude-skills/tree/main/custom-submit-pr

## Install

```sh
agentstack add skill-assertchris-claude-skills-custom-submit-pr
```

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

## About

# Submit Pull Request

This skill pushes the current branch and creates a GitHub pull request using `gh`, with a description generated by the `custom-pr-summary` skill and polished by the `custom-writing-style-guide` skill, assigned to Chris.

## Process

### Step 0: Parse Arguments

Check ARGUMENTS for:
- The word `draft` (case-insensitive) → set `DRAFT=true`, otherwise `DRAFT=false`
- `doc-path:` key → if present, store its value as `DOC_PATH` to pass to `custom-pr-summary`

### Step 1: Validate Branch

```bash
git branch --show-current
```

If on `main` or `master`, stop and inform Chris this doesn't make sense for the main branch.

### Step 2: Check for Unpushed Changes

```bash
git status
```

If there are uncommitted changes, stop and inform Chris. Do not commit automatically.

### Step 3: Push Branch

Check if the branch has a remote tracking branch. If not, push with `-u`:

```bash
git push -u origin 
```

If it already tracks a remote, just push:

```bash
git push
```

### Step 4: Generate PR Description

Invoke the `custom-pr-summary` skill to generate the PR description. If `DOC_PATH` is set, pass it as `doc-path: `. Otherwise invoke with no arguments (discovery runs automatically).

Take the generated summary — only the "Summary" section content, no "Key Review Areas" or "Files Changed" sections.

### Step 5: Apply Writing Style Guide

Write the summary text to a temporary markdown file:

```bash
TMPFILE=$(mktemp /tmp/pr-summary-XXXXXX.md)
cat > "$TMPFILE" 
EOF
```

Invoke the `custom-writing-style-guide` skill with the temp file path as the argument, using **batch mode** (no interactive review). This rewrites the prose to match Chris's voice.

Read back the rewritten content from the temp file, then delete it:

```bash
cat "$TMPFILE"
rm "$TMPFILE"
```

Use the rewritten content as the PR body.

### Step 6: Determine PR Title

Derive a short PR title (under 70 characters) from the feature doc heading or the summary. Use imperative mood (e.g., "Add tutorial system foundation", not "Added" or "Adds"). Apply the writing style guide voice to the title too — keep it punchy and direct.

### Step 7: Create Pull Request

If `DRAFT=false`:

```bash
gh pr create --assignee assertchris --reviewer assertchris --title "" --body "$(cat 

🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
```

If `DRAFT=true`, add the `--draft` flag:

```bash
gh pr create --draft --assignee assertchris --reviewer assertchris --title "" --body "$(cat 

🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
```

### Step 8: Report

Output the PR URL so Chris can see it. If it was created as a draft, say so explicitly.

## Don'ts

1. **DON'T** include checkboxes, test plans, or checklists in the PR body
2. **DON'T** include "Files Changed" or "Key Review Areas" sections
3. **DON'T** commit uncommitted changes — only push and create the PR
4. **DON'T** assign or add as reviewer anyone other than `assertchris`
5. **DON'T** create a draft PR unless Chris explicitly asked for one
6. **DON'T** force push
7. **DON'T** leave the temp file behind if an error occurs — always clean it up

## Success Criteria

- Branch is pushed to remote
- PR description has been styled through the writing style guide
- PR is created via `gh` with a concise, voice-consistent summary
- PR is assigned to `assertchris`
- PR has `assertchris` as a reviewer
- PR is a draft if and only if Chris asked for a draft
- PR URL is displayed

## Source & license

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

- **Author:** [assertchris](https://github.com/assertchris)
- **Source:** [assertchris/claude-skills](https://github.com/assertchris/claude-skills)
- **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-assertchris-claude-skills-custom-submit-pr
- Seller: https://agentstack.voostack.com/s/assertchris
- 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%.
