PR Raise

Table of Contents

1. When to use this skill

When the user is ready to open a pull request from a feature branch. Runs the local code review (the compass-code-review-pr skill) on the change, raises the PR with compass pr create, and posts an @claude comment to trigger the on-demand review.

By the time this skill runs, the work is done from the developer's side — review is a post-done validation activity, not a continuation of implementation. That means task/story bookkeeping (see compass-agile-close-task) happens before this skill, not after review approves. A PR should never need a bookkeeping-only commit once CI has gone green post-review — that wastes a full CI cycle for a change with no code content. See Work a task through to merged PR for why the lifecycle is ordered this way.

2. How to use this skill

  1. MANDATORY — run the local check gate, and do not skip it even under time pressure. GitHub runs no check on a pull request, so this step is the only gate between the branch and main.

    Run the local check gate:

    ./compass.sh check
    

    It classifies the branch diff against the decision tree in build/scripts/local_checks.py, runs the checks that class needs, and writes build/output/local_checks/report.md. Read the report: it names every failure, the command that reproduces it, the command that fixes it, and the tail of the failing check's log. --plan prints the classes and the checks without running them.

    A documentation-only change builds the changed pages and runs the doc corpus checks; it never reaches the compiler. A change to the compiled tree builds and runs the suites. The classes, their paths and the whole catalogue are in CI workflows and local checks.

    Do not raise the PR until the report is green. Note the classes and the result (e.g. "doc-only; site page and doc corpus clean", or "code; build clean (<preset>); ctest 142/142 passed") — they go into the PR body's Testing section in step 4 (--testing-evidence).

  2. Run the local code review before raising the PR. The automatic GitHub review (claude-code-review.yml) was retired with the absorb-PR-checks-locally story — the local review is the review coverage now, so do not skip it even under time pressure. Invoke the compass-code-review-pr skill on the change (the git diff origin/main...HEAD range from step 1), record every finding in the task's * Review table with its decision (accept or decline, never silently ignore), and address the accepted ones — fix, then re-run the class's checks from step 1. The misspell check (misspell-fixer . from the repo root; exit 0 = clean) is part of this review pass.
  3. Close task/story bookkeeping now, if not already done. The task should already be DONE with its * Result written and the parent story/sprint rows synced (per compass-agile-close-task) — do this before raising the PR, not after review. If it's not done yet, do it now, as part of the same commit set the PR will contain from the start.
  4. Raise the PR, carrying the verification from step 1 in the body's Testing section, not in the Changes bullets. The generator emits one fixed template — Summary / Changes / Traceability / Testing, then the footer — and compass pr create refuses a raise that carries no --testing-plan, --testing-evidence or --testing-limitations text:

    ./compass.sh pr create --title "[component] Description" \
      --summary "What changes, why." \
      --change "First change" --change "Second change" \
      --testing-plan "<what will be tested and how>" \
      --testing-evidence "<class>; <checks run and results>" \
      --testing-limitations "<what was left untested>"
    

    Compass validates the title and the Testing flags, builds the body (the Testing section appears after the Traceability table as Plan., Evidence. and Limitations. paragraphs), pushes the branch, opens the PR, records it on the task, and stamps the journal. Note the PR number it prints.

  5. Trigger the on-demand @claude review by posting a PR comment:

    gh pr comment <N> --body "@claude please review this pull request"
    

    The automatic review workflow (claude-code-review.yml) is retired; this comment runs the on-demand claude.yml trigger (claude.yml stays). Claude will post a progress-tracking comment and then inline findings once it is done.

3. Recipes

4. Reference

Emacs 29.3 (Org mode 9.6.15)