Be - End-to-end task to PR

Autonomous skill to take a task through to a reviewed PR, starting with an interview and an AI review gauntlet.

Sby Skills Guide Bot
DevelopmentAdvanced
109/4/2026
Claude Code
#pr#autonomous#ai-review#agent-orchestration#task-execution

Recommended for


name: be description: Modern, interactive alternative to /do — clarify intent up front, then take a task end-to-end with a serial AI review gauntlet (lens review (lowy ∥ hickey) → agent debate → simplify → code-police, each editing the branch in turn) → CI → evidence. ONLY invoke when the user explicitly types /be or $be; never auto-select from a natural-language request. argument-hint: "[--skip-gauntlet] <issue-url | prompt>"

Be

Take a task to a shipped, reviewed PR. /be opens with a short interview — then is fully autonomous from §1 onward: no further questions, no stopping between steps, sensible defaults throughout. The only sanctioned pause after §0 is the plan-review handoff in §1 (when "plan first" was chosen). Concise by design — mechanics live in the skills it calls. Why the rules below exist: RATIONALE.md — read when editing this skill, not running it.

An interruption is a detour, not an exit. A user interjection, a field bug, a limit, a /compact — each suspends the phase machine. Handle it, then name the phase you were in and resume it in the same turn, unasked. A step that was in flight did not run — restart it; never count it done. Never close a turn on "let me know if you want me to continue".

Propagate autonomy to subagents. Every delegation brief says execute now; don't wait for confirmation — a subagent that returns a plan with no tool uses gets resumed with "execute now", not surfaced to the user.

Arguments

Parse $ARGUMENTS for flags; the remainder is the issue URL or task prompt. --skip-gauntlet skips §4 entirely — an explicit human opt-out /be may never invent mid-run.

0. Interview

One batched AskUserQuestion call before any work — your only chance to ask, so surface every material unknown now. Don't pad; honor anything already pinned in the prompt.

  • Plan first? — Atlas-note plan for review before implementing, or implement straight (default straight unless large/ambiguous; an existing plan note in the prompt is the plan of record — skip the question).
  • Task kind — bug fix · feature · refactor/chore (sets §2's test strategy).
  • Debate peerclaude, codex, or grok for /agent-debate. No default: honor a peer named in the prompt, else ask.

Coordinator exception: when a delegating brief routes questions to its channel (e.g. via /kolu), that channel replaces AskUserQuestion for the whole run — write the questions to a file, send a one-line pointer, block on the reply. This includes anything surfacing later: a falsified premise, a scope fork, a design call. Never open a question dialog in your own PTY under a coordinator, and never message the human directly.

1. Set up

  • git fetch origin; branch off origin/<default>. Never commit to master.
  • Read .agency/do.md for the project's check / fmt / test / ci commands and its ## PR evidence section; reuse them throughout.
  • If planning first: author the plan as an Atlas note via /atlas (status: proposed). Keep it high-level — what changes and the structural shape, with a UI mockup if anything renders — but ground every load-bearing low-level fact against the installed code (lockfile versions, a library's emitted markup, a framework's runtime behavior): verify empirically, don't recall from training. Self-check (high-level ✓ prototype-if-visual ✓ facts-grounded ✓ renders clean ✓), push, hand over the preview links, and wait for the user's go — the one sanctioned pause. The plan ships in the PR.

2. Implement

Honor the design philosophy first (conventions.md → Design philosophy: fail-fast · electricity boundaries · reuse the source of truth) and state in the plan or PR body how the change honors each. A violation is a defect to fix now, not a review finding to wait for.

  • Bug: reproduce before you theorize — and treat an inherited diagnosis (an issue's trace, a prior session's sketch, a hand-off) as a hypothesis to falsify, never a fact to extend; the more authoritative it reads, the more it needs a from-scratch repro. Pin the one observable fact the bug produces, build a reproduction that exhibits it and is red on current code (an e2e test via /test when it can express the bug, else a scripted repro), then fix until it flips green. A repro that passes is a broken repro — fix the repro, never conclude "no bug". The fix makes the feature work, not disappear: disabling, defaulting off, or degrading a platform is a mitigation to reject, not a fix. Venue: building and running repros is heavy work — whenever systemctl --user is-active kolu is active, it runs on an ephemeral pu box, never locally; load /dev-server §0 first, and never pkill -f by substring (resolve PIDs by remembered port, or let the box go).
  • Feature: write the covering test before or alongside the change.
  • Refactor/chore: rely on existing coverage.

These branches key to the change in hand, not the phase you're in: a bug that surfaces mid-gauntlet or from CI re-enters the Bug branch from the top, red repro included, before any fix commit. A fresh diff is when a guess feels most like knowledge.

Sync the docs. .agency/do.md## Documentation is a principle, not a checklist: grep every doc surface for the term you touchedREADME.md, every packages/*/README.md, website/ (hand-listed commands and roadmap prose go stale), docs/atlas/ — and for each hit either edit it or note why it's still accurate. Skip only when genuinely doc-neutral.

Changelog. Any user-facing change appends one <Change kind="…"> line to website/src/content/changelog/unreleased.mdx under its product-area heading, written as prose a user reads. PR link is backfilled in §3. The file is merge=union, so appends never conflict.

Run check and fmt, commit (conventional message), push. Two traps a green just check does not cover: (a) a changed bundler/server entrypoint that imports a workspace package can typecheck yet fail the real build — run vite build / nix run .#<pkg> on a pu box now, don't leave it for CI; (b) any package.json/pnpm-lock.yaml change stales the fetchPnpmDeps hash (kolu: nix/workspace.nix) and reds every linux nix lane — load /nix-typescript and refresh the hash in the background immediately so it rides this commit.

3. Open the PR

Before any review, so findings land on a real PR: load /forge-pr and gh pr create --draft with a genuine title/body. Backfill the changelog entry's pr={<n>} and push. If there's a plan note, finalize it via /atlas (status: implemented, <PrLink pr={<n>} />) so it rides this PR.

4. Review gauntlet

With --skip-gauntlet: skip this section, note the skip in Done. Otherwise run /be-review — it owns the serial order, tracks, and push-then-comment discipline. Pass the interview's --agent, the base, a rationale (so lenses don't flag deliberate decisions), and context (task intent and key decisions, so reviewers inherit what you know).

Non-negotiable. Context or budget pressure never justifies skipping a reviewer, trimming the set, or substituting a hand-rolled review — autonomy means don't ask permission per step, not decide which steps matter. If a mandatory step is genuinely infeasible, stop and ask the user then and there. Adjudicate any unresolved lens finding yourself before moving on.

Performance pass. If the diff touches a perf-sensitive surface (SolidJS reactivity, the surface wire, terminal/canvas rendering, timers/listeners, the client bundle, kaval), review it against docs/atlas/src/content/atlas/performance.mdx — don't regress a banked win or add a catalogued anti-pattern; update the note via /atlas when the change banks or surfaces one (measured, not guessed).

5. Ship — CI and evidence in parallel

Heavy work stays on pu boxes (see §2's venue rule). /ci and /evidence are independent — run them concurrently.

Sync master first: git fetch origin and merge origin/<default> unless it's already an ancestor — a long gauntlet leaves CI testing a stale base. A real conflict is yours to resolve now. Don't merge while a gauntlet round is still committing; let it settle first.

  1. /ci, backgrounded. .agency/do.md's CI section is the source of truth and supersedes anything here. Two-platform by construction; react to red nodes the instant they land; confirm the settled run carried both platforms before reporting green.
  2. /evidence, concurrently, per .agency/do.md## PR evidence. For bug fixes, demonstrate the fixed behavior even without a visual diff.
  3. Join before Done: CI green on the final HEAD and evidence posted; if a late fix changed visible behavior, re-capture. Teardown of any daemon you spawned follows /dev-server §5 — kill the PID you captured at spawn, never pgrep/pkill by substring.

Done

Report the PR URL, gauntlet outcome (fixes applied, adjudications, peer + consensus, police findings — or that --skip-gauntlet skipped §4), and CI status. Never merge — the human does.

ARGUMENTS: $ARGUMENTS

Related skills