Task: Add compass pr create with conventions built in
This page documents a task in the Add PR management support to compass story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Opening a PR by hand has the most conventions to remember — title
format, body sections, the Traceability table with full UUIDs and
published-page links, recording the PR on the task. Build them into
compass pr create: validated [component] title, Summary/Changes
body from flags, Traceability derived from the branch's task doc and
its parent story, branch pushed with -u when needed, PR recorded via
pr record, and the journal stamped.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Add PR management support to compass |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-06-05 |
Acceptance
compass pr create --title "[c] D" [--summary ...] [--change ...] [--draft] [--task ...]opens a PR whose body carries Summary, Changes, and a Traceability table with the story and task full UUIDs and site links.- Title convention validated; refuses to run from
main. - The PR is recorded on the task doc and the journal is stamped without manual steps.
- The create-PR recipe leads with the command.
Plan
(Transient implementation strategy. Written when work starts;
distilled into the parent story's * Decisions and cleared when the
task closes. Plans do not outlive their task.)
Notes
2026-06-05: first slice landed ahead of create itself — compass pr
record [<pr>] finds the task by matching #+branch: against the
current branch (or --task), sets #+pr:, and appends the * PRs
row from the PR's live title; idempotent when already recorded. The
create-PR recipe's record step is now one command. Shipped on the
pr-checks branch (PR #1084).
PRs
| PR | Title |
|---|---|
| #1087 | [ores.compass] Add pr create: open PRs with conventions built in |
Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | Empty gh output → IndexError; pass parsed PR number to record | compass_pr.py | Accepted | b54902d50 |
| 2 | #+title: parsing should be case-insensitive (org spec) | compass_pr.py | Accepted | b54902d50 |
| 3 | :ID: search should be case-insensitive | compass_pr.py | Accepted | b54902d50 |
| 4 | Validate task/story :ID: present before Traceability | compass_pr.py | Accepted | b54902d50 |
Result
Shipped across PRs #1084 (pr record) and #1087 (pr create,
merged 2026-06-05): one command validates the title, builds the body
with the Traceability table derived from the branch's task and story
docs, pushes, opens the PR, records it on the task, and stamps the
journal. PR #1087 was opened by the command itself; dogfooding caught
the unreliable pre-push @{u} check.