Recipes

Flow plugin doctrine PR: cut hands-off run time with one home per rule

Discovered from README cross-links · today

Software & DevOpsWork & Operations

Rewrote flow skill docs so agent runs skip duplicate work and ask earlier.

What they did

The author (with Claude Opus 5.5 responding on their behalf) opened a docs-only PR against the `plugins/flow/` plugin in jakub/marketplace-plugins, closing issue #44. The starting point was a long hands-off trawl run on 2026-11-03 that wasted wall-clock time and surfaced problems late: a local full suite ran beside the same suite in CI, a stop posted only as a label sat unanswered for hours, an unchecked premise reached the spec, ready checkpoints waited on the slowest seat in their wave, and a fix based on a remembered library limit caused a regression. The PR changes stage doctrine across the `issue`, `prep`, `babysit` and `delegate` skills so runs skip duplicate work, catch problems earlier, and stop waiting on the user and on the slowest seat — while explicitly not moving the bar: the whole-diff final clean, the cumulative breaker, `land`'s gate and every Seat Contract rule stay as they are. All 12 items follow the issue's agreed approach, and each rule is given exactly one home with pointers elsewhere. Work landed as six commits, including a review fix from CodeRabbit that lets an agreed premise checkpoint through prep's block. The PR body carries an AC-by-AC evidence table with permalinks to line ranges at a pinned SHA, a homes-and-pointers table, a classified `rg` sweep proving no second copy of any rule, six worked cases, and a committed probe capture (`docs/captures/2026-11-03-t3-steer/probe.json`) byte-identical to the prep journal's capture. Charter, scripts, `schema.mjs` and versions were left untouched and smoke passes.

How it went

Merged-ready docs PR with unusually strong evidence: every acceptance criterion mapped to a permalink, a no-second-copy `rg` with all 45 hits classified, six worked cases, and a committed probe capture. Scope was widened once (dropping "and the network" from `docs/DELEGATION.md:5`) and journalled as such. The capture was left as recorded even though case 4's verdict predates a correction; its cause was a mid-seat Codex plugin-cache refresh fixed in #46.

Worth knowing

Docs-only: no code, schema or version changes, so behaviour depends on agents actually following the rewritten skill text. The evidence table is pinned to one SHA and will drift. The probe capture's two follow-up cases carry no `answer` because the criterion forbids message bodies, and case 4's verdict line is stale relative to a later issue comment. Item 9's route limits rest partly on documented and observed sources rather than a single verified code path.

Wiring

Work happens in a worktree of jakub/marketplace-plugins under `plugins/flow/`. The flow plugin is a set of skills (`issue`, `prep`, `babysit`, `delegate`) plus `charter/charter.md`, `docs/DELEGATION.md` and `delegate/reference.md`. Order: (1) capture the failing run as a probe under `docs/captures/<date>-<name>/probe.json`; (2) assign each of the 12 items a single home — validation selection to `issue` inv.3, ask-the-blocking-question to `issue` §8 Suspending and Escalate early, premise checks to `prep` §4 step 3, checkpoint dependencies to `issue` §4, early reviews to `issue` inv.5, slicing to `prep` §3, red-before-fix to `babysit` §Triage, `task_status` passthrough to `delegate` §4–5, Codex route limits to `delegate/reference.md`, steer and next-round to `delegate` §3, foreground pointer to `delegate` §2 pointing at `charter/charter.md:104`; (3) add pointers in `babysit`, `issue` and `prep` rather than restating rules; (4) declare `allowed-tools` in `issue` and `babysit` frontmatter; (5) verify with the `rg` sweep and smoke, leaving charter, scripts, `schema.mjs` and versions untouched.

Try it yourself

Read `plugins/flow/skills/issue/SKILL.md`, `prep/SKILL.md`, `babysit/SKILL.md` and `delegate/SKILL.md` plus `delegate/reference.md`. Find every place a hands-off run does work no rule requires or learns about a problem late: duplicate local and CI test runs, stops posted only as labels, unchecked design premises reaching the spec, checkpoints waiting on the slowest seat in a wave, and fixes based on remembered limits. For each, pick exactly one home file and line range, rewrite that rule there, and replace every other mention with a pointer. Do not change the whole-diff final clean, the cumulative breaker, `land`'s gate or any Seat Contract rule. Then run an `rg` sweep over `plugins/flow` for each rule's keywords and classify every hit as home or pointer, and post an AC-by-AC evidence table with permalinks at a pinned SHA.

Source

Tools in this stack