# Pr

> INVOKE THIS SKILL before creating any PR to ensure compliance with branch naming, changelog requirements, and reviewer assignment. Use when this capability is needed.

- Skill: `tomevault-io/pr-17` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/pr-17`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/pr-17/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/pr-17

---


# ActivityPub PR Workflow

## Branch Naming

| Prefix | Use |
|--------|-----|
| `add/{feature}` | New features |
| `update/{feature}` | Iterating on existing features |
| `fix/{bug}` | Bug fixes |
| `try/{idea}` | Experimental ideas |

**Reserved:** `release/{X.Y.Z}` (releases only), `trunk` (main branch).

## Pre-PR Review

Scope the review to what changed — don't review every PR:

- **Skip** for docs-only (`*.md`, `docs/`, `README`), tooling/config-only (`.claude/`, `.agents/`, workflow files), and trivial edits (typo, comment, whitespace). Push these straight to PR.
- **Run** the **code-review** agent only when the branch changes plugin code (PHP/JS/CSS logic). Address any critical issues before proceeding.

## PR Creation

**Every PR must:**
- Assign `@me`
- Add `Automattic/fediverse` as reviewer
- Include changelog entry OR "Skip Changelog" label
- Pass CI checks
- Merge cleanly with trunk

```bash
# Create PR (includes required assignment/reviewer)
gh pr create --assignee @me --reviewer Automattic/fediverse
```

**Use the exact template from `.github/PULL_REQUEST_TEMPLATE.md`** — do not create custom formatting.

## Changelog

**Write changelog messages for end users, not developers.** Users read these in the WordPress plugin update screen. Avoid internal jargon (OOM, batching, N+1), class names, or method names. Describe what the user experiences or what changed from their perspective.

```
✅ Fix automatic cleanup of old activities failing silently on sites with many items.
✅ Add a Site Health check that warns when plugins are causing too many federation updates.
❌ Fix collection purge methods to batch deletions and enforce a hard item cap.
❌ Add Site Health test to detect excessive outbox activity rates.
```

End all changelog messages with punctuation.

Add manually if forgotten:
```bash
composer changelog:add
git add . && git commit -m "Add changelog entry" && git push
```

See [release](../release/SKILL.md) for complete changelog details.

## Workflow

### Create Branch
```bash
git checkout trunk && git pull origin trunk
git checkout -b fix/notification-issue
```

### Pre-Push Checks
```bash
composer lint         # PHP standards (composer lint:fix to auto-fix)
npm run lint:js       # If JS changed
npm run lint:css      # If CSS changed
npm run env-test      # Run tests
npm run build         # If assets changed
```

See AGENTS.md for complete commands.

### Keep Branch Updated
```bash
git fetch origin
git rebase origin/trunk
# Resolve conflicts if any
git push --force-with-lease
```

## Special Cases

**Hotfixes:** Branch `fix/critical-issue`, minimal changes, add a `[Pri] High` (or `[Pri] BLOCKER`) label, request expedited review.

**Experimental:** Use `try/` prefix, mark as draft, get early feedback, convert to proper branch type once confirmed.

**Multi-PR features:** Create tracking issue, link all PRs, use consistent naming (`add/feature-part-1`, etc.), merge in order.

## Labels

| Label | Use |
|-------|-----|
| `Bug` | Bug fixes |
| `Enhancement` | New features |
| `Docs` | Documentation updates |
| `Code Quality` | Refactoring, cleanup, etc. |
| `Skip Changelog` | No changelog needed |
| `[Status] Needs review` | Ready for review |
| `[Status] In Progress` | Still working |
| `[Pri] High` / `[Pri] BLOCKER` | Urgent / expedited |

## Reference

See `docs/pull-request.md` for complete workflow details.

---
> Source: [Automattic/wordpress-activitypub](https://github.com/Automattic/wordpress-activitypub) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-29 -->

