activitypub-pr-workflow

Automattic's avatarfrom Automattic

INVOKE THIS SKILL before creating any PR to ensure compliance with branch naming, changelog requirements, and reviewer assignment.

⭐556stars🔀83forks📁View on GitHub🕐Updated Jan 1, 2026

When & Why to Use This Skill

The ActivityPub PR Workflow skill is a comprehensive developer tool designed to automate and standardize the GitHub Pull Request process. It enforces strict compliance with branch naming conventions, changelog requirements, and reviewer assignments, ensuring that every contribution meets project standards before submission. By integrating pre-push checks like linting and testing, it minimizes CI failures and streamlines the path from development to production.

Use Cases

  • Standardizing Development Branches: Automatically enforce naming prefixes such as 'fix/', 'add/', or 'update/' to maintain a clean and searchable repository structure.
  • Automated PR Governance: Ensure every Pull Request is correctly assigned to the author and includes mandatory reviewers like 'Automattic/fediverse' to maintain code quality.
  • Changelog Compliance: Validate that every PR includes a properly formatted changelog entry with correct punctuation, preventing documentation debt during releases.
  • Pre-flight Quality Assurance: Run automated linting (PHP, JS, CSS) and environment tests locally before pushing code to catch errors early in the development cycle.
  • Workflow Labeling and Organization: Use standardized labels like 'Hotfix', 'Experimental', or 'Needs Review' to improve project tracking and team communication.
nameactivitypub-pr-workflow
descriptionINVOKE THIS SKILL before creating any PR to ensure compliance with branch naming, changelog requirements, and reviewer assignment.

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).

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
# 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

End all changelog messages with punctuation:

✅ Add support for custom post types.
❌ Add support for custom post types

Add manually if forgotten:

composer changelog:add
git add . && git commit -m "Add changelog entry" && git push

See activitypub-release for complete changelog details.

Workflow

Create Branch

git checkout trunk && git pull origin trunk
git checkout -b fix/notification-issue

Pre-Push Checks

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 activitypub-dev-cycle for complete commands.

Keep Branch Updated

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 "Hotfix" 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
Documentation Doc updates
Code Quality Refactoring, cleanup, etc.
Skip Changelog No changelog needed
Needs Review Ready for review
In Progress Still working
Hotfix Urgent fix

Reference

See Pull Request Guide for complete workflow details.