Skip to content
Development
Skill

/warren-dogfood-pipeline

Full prioritize → dispatch → shepherd → track pipeline against the live warren instance. Audits the seeds backlog around a focus theme, dispatches the surviving issues to warren agents one at a time, babysits the resulting PRs to merge (update-branch, conflict-repair runs,

From plugin
warren
5113 skills1 command

Claude Code

$ npx -y skills add jayminwest/warren --skill warren-dogfood-pipeline --agent claude-code

SKILL.md

warren-dogfood-pipeline.SKILL.md
name: warren-dogfood-pipeline
description: Full prioritize → dispatch → shepherd → track pipeline against the live warren instance. Audits the seeds backlog around a focus theme, dispatches the surviving issues to warren agents one at a time, babysits the resulting PRs to merge (update-branch, conflict-repair runs, auto-merge), and closes the loop in the tracker. Activate for prompts like "run the dogfood pipeline", "dispatch the P1 <theme> issues to warren", "audit and dispatch", "work the backlog through warren agents".

Protocol: Warren Dogfood Dispatch Pipeline

You run a themed slice of the seeds backlog end-to-end through the live warren instance: audit → ordered dispatch list → sequential runs → PR shepherding → tracker closure. Every run on the public instance is also demo content, so prefer dispatching warren runs over doing the work locally — including for repairs. The pipeline was proven 2026-07-28 (deletion pass: 9 issues, 15 runs, PRs #650–#658, plan pl-3a79 closed).

0. Inputs (ask if not given)

  • **Focus theme + priority band** — e.g. "P0/P1 deletion-focused",

"security leaks", "docs drift". This drives the audit lens.

  • **Agent + model/provider** — ALWAYS stop and ask the operator

(AskUserQuestion) which model + provider to use for all tasks in the session, even when every other input was given. Recommended default: provider `openrouter`, model `moonshotai/kimi-k3`, on the `pi` harness (the only harness that can reach OpenRouter; it is also the project `defaultRole`). Offer the anthropic tiers (`src/registry/builtins/model-tiers.ts`) as alternatives — for hard or large refactors use `claude-opus-5` (Opus 5; pass it as an explicit `modelOverride` — do NOT rely on the opus tier's default, which still pins the older claude-opus-4-8). Dispatch with explicit `providerOverride` + `modelOverride` matching the answer.

  • **Dispatch mode** — sequential one-at-a-time (default, what the

operator chose last time) vs parallel. Sequential means: next issue run dispatches only after the previous run is TERMINAL; repair runs are exempt and may overlap.

  • **Blocked issues** — skip them, or dispatch their blockers first

(last time: blockers first).

Report your understanding and the candidate list BEFORE dispatching anything. Dispatching costs real money and opens real PRs.

1. Phase 1 — Audit & prioritize (subagent)

Spawn a subagent that invokes the `seeds-issue-audit` skill, with an extra deliverable bolted on: a **DELETION-DISPATCH-LIST-style section** for the focus theme — every still-open, in-theme issue with LIVE blocker resolution (a closed blocker doesn't count; re-check each edge) and a serial dispatch order, blockers first, sequenced so each run can build on the previous merge. Require the exact line format `<order>. <id> — <title> — <UNBLOCKED | blocked-by: ids>` so you can dispatch straight off it.

Babysit the subagent: if it stops claiming to "wait for a worker notification" while it has no live children, resume it and tell it to finish the batch inline.

2. Phase 2 — Dispatch plumbing

  • **Instance**: hostname lives only in the gitignored

`deploy/k8s/overlays/gke-live/kustomization.yaml` (Ingress host patch). Token: `kubectl get secret warren-secrets -n warren -o jsonpath='{.data.warren-api-token}' | base64 -d` (key is `warren-api-token`, not `WARREN_API_TOKEN`).

  • **Project id**: `GET /projects`, match the gitUrl.
  • **Dispatch**: `POST /runs` with `{agent, project, prompt,

modelOverride, seedId}`. Always pass `seedId` — it links the run to the tracker. BOTH `POST /runs` and `GET /runs/:id` WRAP the run as `{run: {...}}` — since warren-7d84 the detail GETs wrap to match the POST and the plan-runs family, so no route needs per-envelope knowledge. Parse `.run.state`, never `.state`. A bare parse reads all-null, which a polling loop silently reads as "not terminal yet" and spins to its iteration cap instead of failing loudly. Terminal states are `succeeded|failed|cancelled`.

  • **Repair dispatch onto an existing PR branch**: same POST with

`ref` = `targetBranch` = the PR's head branch. Warren pushes back to that branch in place; the agent must NOT open a new PR or branch.

**Prompt template per issue run** (adapt, keep all five elements): 1. "Work seeds issue <id>. First run `sd show <id> --json` from the repo root" — the issue body is the spec; your summary is a digest. 2. Context of what already merged on main that this run builds on. 3. Scope guidance (what to delete/change; repo-specific gotchas like `bun run check:bundle-size --update` for UI work). 4. "Quality gates are terminal: `bun run check:all` must be green before you commit and report done." 5. "Close the issue with `sd close <id> --reason ...`, then commit everything."

**Polling**: background loop, ~55s interval, ≤10 iterations per loop (re-launch on expiry). Pipe curl straight into the JSON parser — never round-trip response bodies through a shell variable + `echo` (zsh echo expands `\n` inside the JSON and corrupts it). On terminal, capture `state`, `failureReason`, `prUrl`, `costUsd`.

3. Phase 3 — Sequential loop with merge gates

  • Next **independent** issue dispatches when the previous run is

terminal.

  • A **dependent** issue dispatches only when every blocker's PR is

**MERGED on main** (re-verify with `gh pr view <n> --json state` immediately before dispatch) — a terminal run is not enough; the next clone needs the code.

  • Interleave: put independent issues between a blocker and its

dependents so PRs have time to merge while other work runs.

4. PR shepherding (expect to do this for EVERY PR)

Themed slices touch overlapping files (CLAUDE.md, budgets, `.seeds/issues.jsonl`), so almost every PR that outlives another merge goes stale. Diagnose with `gh pr view <n> --json mergeable,mergeStateStatus,autoMergeRequest,statusCheckRollup`:

| State | Fix | | --- | --- | | `BEHIND`, auto-merge armed | `gh pr upd

Read more
@jayminwest
Ships withwarren

Run coding agents like infrastructure, not terminal sessions. Warren manages isolation, lifecycle, spend, recovery, and Git delivery on compute you control.

Stars on GitHub

Momentum

stars in total
511
Star history of jayminwest/warren on GitHub, a chart by star-history.com

Other skills on warren.

good-first-issue-batch

good-first-issue-batch

File a batch of contributor-ready GitHub issues from the seeds backlog, re-verifying every candidate against HEAD first so no…

@jayminwest@jayminwestInstall Skill
ui-design-review

ui-design-review

Independent design review of a warren web-UI change. Reads the ui-visual screenshot artifact and the PR diff, grades them against…

@jayminwest@jayminwestInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react3d252k
@facebook@facebookInstall Skill

Questions about warren-dogfood-pipeline.

Which coding agents can use warren-dogfood-pipeline?
warren-dogfood-pipeline installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.