with one click
publish-pr
// Create or update the implementation, docs, or governance PR after local changes are ready.
// Create or update the implementation, docs, or governance PR after local changes are ready.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | publish-pr |
| description | Create or update the implementation, docs, or governance PR after local changes are ready. |
Use this skill when local work is complete enough to publish as a branch and pull request.
Goal: turn validated local changes into a truthful branch, commit, pushed head, and PR artifact without mixing publication with implementation logic.
⚠️ CRITICAL: All publication steps (branch creation, staging, commit, push, PR creation) must be executed using explicit git/gh commands. Do not describe these steps—execute them and verify they succeeded. Treat pr-integration as a conditional readiness/repair path, not an automatic immediate handoff.
Docs -> Issue -> Project -> Issue maintenance -> Agent -> Publish PR -> PR integration -> CI -> Verification -> Project/doc closure -> Owner Doc
Fixes #<id>, Closes #<id>, or Resolves #<id>.--draft only with an explicit reason that the PR is not yet ready for review or still needs integration/repair.Done.Verify files belong to a single lane and single bounded change:
git status --porcelain
All modified/new files must align with a single lane (implementation, docs-authoring, or governance).
# Option A: Create new branch from main
git fetch origin main
git checkout -b <branch-name> origin/main
# OR Option B: Switch to existing branch
git checkout <branch-name>
# Verify correct branch
git status
Branch naming: Descriptive, hyphenated (e.g., fix-auth-token-expiry, docs-roadmap-update, governance-skill-updates).
# Stage specific files (not all changes)
git add <file1> <file2> <file3>
# Verify staging
git status
Do not use git add -A or git add .—stage only intended files.
git commit -m "$(cat <<'EOF'
Brief summary of bounded outcome
Optional detailed explanation of why this change is needed.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
EOF
)"
Commit message must:
git push origin <branch-name>
Verify push succeeded and GitHub suggests PR creation.
Execute based on lane classification:
Implementation Lane (Fixes an Issue):
gh pr create \
--title "<bounded outcome>" \
--body "$(cat <<'EOF'
Fixes #<ISSUE_NUMBER>
## Summary
<1-2 sentence summary of the bounded change>
## Validation
<What validation actually ran>
---
EOF
)"
Docs Authoring Lane:
gh pr create \
--title "<docs update title>" \
--body "$(cat <<'EOF'
- [x] Docs authoring lane
## Summary
<Summary of documentation changes>
## Changes
<What surfaces were updated>
## Validation
<Docs validation that ran>
---
EOF
)"
Governance Lane:
gh pr create \
--title "<governance change title>" \
--body "$(cat <<'EOF'
- [x] Governance lane
## Summary
<Summary of governance/workflow change>
## Changes
<What surfaces were updated>
## Validation
<Governance validation that ran>
---
EOF
)"
Update Existing PR:
gh pr edit <pr-number> --body "$(cat <<'EOF'
... updated body content ...
EOF
)"
Pre-push PR-body contract gate:
gh pr create or gh pr edit, verify the body includes exactly one lane classifier:
Fixes #<id> or Closes #<id> or Resolves #<id>- [x] Docs authoring lane- [x] Governance laneAfter PR is created/updated, use pr-integration only when the PR still needs readiness/repair work before verification:
# Invoke pr-integration skill to verify, check CI, and prepare for verification
echo "Handing off to pr-integration skill"
Do not force this as an immediate publication step. PR integration resolves merge conflicts, verifies CI, and prepares the PR for verification/merge when the PR needs that readiness path.
Implementation lane:
Fixes #<id>Docs authoring lane:
Docs authoring laneGovernance lane:
Governance laneCapturing learning: if during this work you notice a divergence from plan — you did something you did not expect to do, or discovered an earlier artifact was wrong — invoke capture-learning before continuing. Do not batch to end of task; context is freshest now. Only log if you can name an upstream artifact that could absorb the fix.