Skip to content
Back to skills

Pr Workflow

ASecurity

Complete workflow for submitting code changes — create branch, commit, open PR, check CI, fix failures, and merge.

  • 1,188 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 27, 2026
data-aigoshellbashnextjsgitapi

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add Chorus-AIDLC/Chorus --skill pr-workflow --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pr Workflow?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pr Workflow
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chorus-aidlc-pr-workflow/badge)](https://www.skillsdirectory.com/skills/chorus-aidlc-pr-workflow)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pr-workflow
description: Complete workflow for submitting code changes — create branch, commit, open PR, check CI, fix failures, and merge.
license: AGPL-3.0
metadata:
  author: chorus
  version: "0.1.0"
  category: development
---

# PR Workflow

Complete workflow for taking local code changes through branch creation, PR, CI verification, failure fix, and merge.

## Prerequisites

- Code changes are already made and tested locally
- Remote `origin` is configured
- `gh` CLI is authenticated

## Steps

### 1. Pre-flight Check

```bash
git status
git diff --stat
git log --oneline -5
```

Verify before proceeding:
- Only intended files are modified
- No sensitive files (.env, credentials) staged
- No temp artifacts (screenshots, logs) left behind

### 2. Create Branch

Branch from current HEAD. Naming convention:

| Type | Prefix | Example |
|------|--------|---------|
| Bug fix | `fix/` | `fix/remove-legacy-textarea` |
| Feature | `feat/` | `feat/structured-ac-editor` |
| Refactor | `refactor/` | `refactor/service-layer` |
| Test | `test/` | `test/e2e-proposal-flow` |
| Docs | `docs/` | `docs/api-reference` |
| Chore | `chore/` | `chore/bump-deps` |

```bash
git checkout -b {prefix}{short-description}
```

### 3. Stage and Commit

Stage specific files only — never use `git add .` or `git add -A`:

```bash
git add path/to/file1 path/to/file2
```

**Note**: Next.js paths need shell escaping:
```bash
git add src/app/\(dashboard\)/projects/\[uuid\]/file.tsx
```

Commit with HEREDOC for clean multi-line messages:

```bash
git commit -m "$(cat <<'EOF'
{type}: {concise description of why, not what}

{Optional body explaining context or trade-offs}

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
EOF
)"
```

### 4. Push and Open PR

```bash
git push -u origin {branch-name}
```

```bash
gh pr create --title "{type}: {title under 70 chars}" --body "$(cat <<'EOF'
## Summary
- Change 1
- Change 2

## Changed files
| File | Change |
|------|--------|
| `path/file.ts` | What changed |

## Test plan
- [x] Automated test passed
- [ ] Manual verification needed

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

### 5. Check CI

```bash
gh pr checks {pr-number}
```

- **All pass** — report to user, ready for merge
- **Any fail** — proceed to Step 6

### 6. Fix CI Failures

Get the failed logs:

```bash
gh pr checks {pr-number}                          # find failed run ID
gh run view {run-id} --log-failed 2>&1 | tail -80  # read failure details
```

Common failure types and fixes:

| Failure | Local repro | Fix |
|---------|------------|-----|
| Test assertion | `npx vitest run path/to/test.ts` | Update test expectations to match new behavior |
| Type error | `npx tsc --noEmit` | Fix types; check only your errors with `\| grep {keyword}` |
| Lint error | `pnpm lint` | Auto-fix or manual fix |
| Missing test update | `grep -r "changedField" src/**/__tests__/` | Update test fixtures/helpers using the old field |

After fixing:

```bash
git add {fixed-files}
git commit -m "$(cat <<'EOF'
fix: {what was fixed in tests/types}

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
EOF
)"
git push
```

Re-check CI — repeat until green:

```bash
gh pr checks {pr-number}
```

### 7. Merge

Only when user explicitly requests. Default to squash merge:

```bash
gh pr merge {pr-number} --squash --delete-branch
git checkout main && git pull
```

## Checklist

Before opening PR:
- [ ] `npx tsc --noEmit` passes (or no new errors)
- [ ] Related tests pass locally
- [ ] No screenshots, temp files, or debug logs in working tree
- [ ] Grep test files for any changed field/function names

Before merging:
- [ ] CI is green
- [ ] User has approved the merge

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.