Make PR
/flow-next:make-pr takes a spec with done tasks and a branch ahead of main and produces a PR body designed for the reviewer’s attention, not for the author’s checklist.
Creates the PR directly — no confirm gate
Section titled “Creates the PR directly — no confirm gate”Invoking the skill is the intent, so make-pr pushes and opens the PR directly — there is no “create / abort” confirm prompt. The body is deterministic (every field traces to flowctl spec export-cognitive-aid), and the default is a reversible draft chosen by a smart draft/ready heuristic — open items make it a draft. The only prompts are Phase 0 info prompts to resolve something it cannot derive (no --base and no detection match, or no spec detected) — never “do you want to create it?”. The escape hatch is --dry-run (print the body without creating), and --ready / --draft force the draft state.
What lands in the body
Section titled “What lands in the body”- TL;DR of the change in two or three sentences.
- R-ID coverage table: each criterion → task → evidence commits.
- Critical changes and where to look first.
- Decisions captured during work.
- Memory entries left behind in
.flow/memory/. - Glossary and strategy notes when terminology shifted.
- Open items and explicit deferrals.
- Mermaid diagrams when the change is structural.
Why a cognitive-aid body
Section titled “Why a cognitive-aid body”A reviewer should be able to decide where to focus before skimming a single diff line. The body surfaces uncovered R-IDs with a ⚠️ flag, so anything the spec promised but the diff did not deliver is visible at the top of the page.
Every claim references real files and SHAs only. There is no template filler.
Spec-driven, not template-driven
Section titled “Spec-driven, not template-driven”Every field in the body traces back to a field in:
flowctl spec export-cognitive-aid <spec-id>When attribution is unknown, the body says so honestly — unclear or uncovered — instead of inventing a reasonable-sounding sentence.
| Flag | Effect |
|---|---|
--draft / --ready | Force draft or ready state. |
--no-mermaid | Skip diagram generation. |
--memory | Write a knowledge/architecture-patterns/ memory entry alongside the PR. |
--dry-run | Print the body to stdout without pushing or opening a PR. |
--base <ref> | Override base-branch detection. |
Tracker linkage and Linear Diffs
Section titled “Tracker linkage and Linear Diffs”When the tracker bridge is active and the spec is linked, make-pr unconditionally links the new PR to its tracker issue — no separate opt-in. For Linear that means a non-closing Ref WOR-N in the body (plus a rich attachment on the GraphQL transport), which makes the PR render as a Linear Diff inside the issue; for GitHub it is a native Refs #N cross-link. Non-closing is deliberate so merge never auto-completes the issue — spec-completion-review owns Done.
Ralph-friendly
Section titled “Ralph-friendly”Not Ralph-blocked. Under Ralph the Phase 0 prompts are skipped and --draft is forced; the PR is still created directly and its URL emitted to stdout so the autonomous loop can move on while a human reviews.
What gets forbidden
Section titled “What gets forbidden”- No quoting raw diff content. The diff is the diff; the body is the map to it.
- No
gh pr mergefrom the skill. Merge is a human decision. - No inflating scope beyond what the diff supports. If the spec covered more than the diff did, the uncovered criteria appear as gaps, not as accomplishments.
Next step
Section titled “Next step”/flow-next:resolve-pr