Skip to content

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.

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

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.

Every field in the body traces back to a field in:

Terminal window
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.

FlagEffect
--draft / --readyForce draft or ready state.
--no-mermaidSkip diagram generation.
--memoryWrite a knowledge/architecture-patterns/ memory entry alongside the PR.
--dry-runPrint the body to stdout without pushing or opening a PR.
--base <ref>Override base-branch detection.

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.

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.

  • No quoting raw diff content. The diff is the diff; the body is the map to it.
  • No gh pr merge from 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.
Terminal window
/flow-next:resolve-pr