skills/autopilot/SKILL.md
Full delivery pipeline: plan, build, ship, settle. Covers: shape/spec/design, TDD build, commit, PR creation, PR fix (CI/reviews/conflicts), PR polish, simplify, test coverage, verify ACs, walkthrough, issue management. Use when: shipping features, fixing PRs, creating PRs, building issues, simplifying code, checking quality, writing commits, managing issues. Trigger: /autopilot, /build, /shape, /commit, /issue, /check-quality, /test-coverage, /verify-ac, /pr-walkthrough.
npx skillsauth add phrazzld/claude-config autopilotInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Full delivery pipeline. From issue to merged PR in one command, or invoke sub-capabilities directly.
| Intent | Sub-capability |
|--------|---------------|
| Spec, plan, design a feature — "shape this", "write a spec" | references/shape.md |
| Implement, code, TDD — "build this", "implement" | references/build.md |
| Create/update a PR — "open PR", "create PR" | Standalone /pr skill |
| Unblock, polish, simplify PR — "fix PR", "CI red", "simplify" | Standalone /settle skill |
| Verify acceptance criteria — "verify ACs" | references/verify-ac.md |
| Lint, typecheck, test gates — "check quality" | references/check-quality.md |
| TDD enforcement, coverage — "test coverage" | references/test-coverage.md |
| Visual evidence capture — "walkthrough" | references/pr-walkthrough.md |
| Semantic commit workflow — "commit" | references/commit.md |
| Issue lint/enrich/decompose — "issue" | references/issue.md |
If invoked as /autopilot [issue-id], run the full pipeline (below).
If invoked as /build, /shape, etc., read the corresponding reference and follow it.
If invoked as /pr-fix, /pr-polish, or /simplify, route to standalone /settle.
Engineering lead running a sprint. Find work, ensure it's ready, delegate implementation, ship.
Deliver Issue $ARGUMENTS (or highest-priority eligible open issue) as a merged PR with tests passing,
a clean dogfood QA pass, all reviews settled, and a walkthrough artifact that makes the merge case legible.
An open PR for that issue counts as the active delivery lane. Do not create a duplicate PR for the same issue unless you first surface and justify a superseding lane.
dogfood, agent-browser, and browser-use are available in this environment; use them for user-flow validationWhen solving semantic problems (classification, prioritization, triage, intent mapping, AC/spec compliance), use LLM reasoning-first approaches.
Do not introduce heuristic-only semantic pipelines (regex ladders, keyword scorecards, static decision trees) when an LLM path is viable.
Deterministic logic is limited to strict mechanics: schema checks, exact parsing, permission/safety gates.
Always work on the highest-priority eligible issue.
Eligibility comes first:
In Progressp0 > p1 > p2 > p3 > unlabeledhorizon/now > horizon/next > unlabeledIf the highest-priority issue is already assigned or already In Progress, skip it and move to the next eligible issue.
Never steal claimed work.
Autopilot must claim work before shaping or coding.
In Progress status, no open PR, and no active autopilot lane already attachedIn Progress by your lane/issue lint, assign the issue to yourself/issue lint, mark the issue's project status as In ProgressStatus field, attach it to the canonical delivery project first, then set StatusThe point is single ownership. One issue should map to one active autopilot lane.
In Progress, and has no open PR or active autopilot lanepython3 scripts/issue_lane.py --repo <owner/name> --issue <N> when the repo provides itgh pr list --state open --json number,title,body,headRefName,urlStatus as In Progressproject.md for product vision, domain glossary, quality bar/issue lint $1:
/issue enrich $1 first, then re-lint## Product Spec and ### Intent Contract.
If missing, invoke /shape --spec-only $1 and re-check before coding./shape --design-only if no ## Technical Design section. If design contains a state machine or concurrent protocol, consider /formal-verify loop before proceeding to build./build and require RED→GREEN evidence per acceptance criterion:
app/, components/, *.css), run /visual-qa --fix. Fix P0/P1 before proceeding./llm-infrastructure and inspect trace/eval coverage before shipping./pr-fix --refactor, update docs inline, then run simplification pass:
/simplify — no exceptionsousterhout persona/agent if the harness provides oneverify-ac against the linked issue's ## Acceptance Criteria.[test], [command], [behavioral]) when present; otherwise let verify-ac choose the narrowest credible strategy from the diff and repo contextUNVERIFIED checks once (2 attempts total)UNVERIFIED after attempt 2: keep remediating the code, tests, or docs and rerun verify-ac; do not commit or ship while the gate is failingPARTIAL may proceed only if no AC is UNVERIFIED, but it must be reported in the final handoff and PR body/pr-walkthrough and produce the mandatory walkthrough package for the branch. Every PR needs an artifact, even if the change is internal or architectural.feat:, fix:, docs:, refactor:, test:, chore:lint, typecheck, test) before pushinggit fetch origin && git push origin HEAD (rebase if behind)python3 scripts/issue_lane.py --repo <owner/name> --issue <N> immediately before opening the PR when availablegh pr edit, not gh pr create../pr/references/pr-body-template.md and follow itWalkthrough section must link the artifact and name the persistent verification that protects the demonstrated path<details> for heavy evidence.<details> where useful, but do not hide the topline significance/trade-off story--body-file for gh pr create, gh pr edit, and PR commentsgh pr create --assignee phrazzld --body-file <path>gh pr ready, or PR edit triggers async reviewers, do not post any "PR Unblocked" or "ready for merge" signal unless /pr-fix has passed its live settlement gate on that PRgh pr checks <PR> --watch or gh run list --branch <branch> --limit 1/pr-polish/simplifygh pr merge --squash.groom/retro/<issue>.md..groom/retro.md; skip retro entirely instead of creating merge-hot churn for low-value notes./done append --issue ...) rather than inventing a new shared log format.Run before every PR. No exceptions.
/dogfood is an agent skill, not a shell binary. Invoke it as /dogfood ....
Do not run dogfood --help or declare it unavailable based on shell PATH.
Use agent-browser / browser-use for focused manual repro and follow-up verification.
# Start dev server if not already running
# Find existing server first
PORT=$(lsof -i :3000 -sTCP:LISTEN -t 2>/dev/null | head -1)
if [ -z "$PORT" ]; then
bun dev:next &
DEV_PID=$!
sleep 10 # wait for compilation
fi
# Confirm it's up
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/
If port 3000 is taken by another project, use bun dev:next -- --port 3001 and adjust the
target URL accordingly.
/dogfood http://localhost:3000
Scope to the diff: if the issue only touches status pages, /dogfood http://localhost:3000 Focus on the status page and badge changes. For full-feature work, no scope restriction.
After /dogfood completes, read the report:
/dogfood on the affected area/prNever open a PR with unfixed P0 or P1 issues from the dogfood report.
If the same P0/P1 issue resurfaces after two fix attempts, stop, document the blocker, and flag to the user before proceeding. Don't loop indefinitely.
# Kill the dev server if we started it
[ -n "$DEV_PID" ] && kill $DEV_PID 2>/dev/null || true
If the user's own dev server was already running (no $DEV_PID), leave it alone.
After /build completes, parallelize the refinement phase:
| Teammate | Task |
|----------|------|
| Simplifier | Run code-simplifier agent, commit |
| Depth reviewer | Run manual module-depth review, or ousterhout if available, commit |
| Doc updater | Update docs (README, ADRs, API docs), commit |
Lead sequences commits after all teammates finish. Then dogfood QA, then /pr.
Use when: substantial feature with multiple refinement needs. Don't use when: small fix where sequential is fast enough.
If native batch dispatch is available in the harness (e.g. /batch), use it.
Otherwise launch teammates sequentially with normal agent calls.
Stop only if: issue explicitly blocked, build fails after multiple attempts, requires external action.
NOT stopping conditions: lacks description, seems big, unclear approach.
Report: issue worked, spec status, design status, TDD evidence (RED/GREEN), dogfood QA summary (issues found/fixed), walkthrough artifact summary, commits made, PR URL, review comments settled (count + dispositions), and merge status.
Agents accrete bloat when they keep extending stale mental models. Before each new sprint or major chunk:
When this skill runs in Claude Code:
Refine), run /simplify after /pr-fix --refactor.Parallel Refinement, use /batch to dispatch teammate tasks in one call when possible.If either command is unavailable, use the portable fallback path already defined in the base skill.
content-media
Conduct design interviews, generate five distinct UI variations in a temporary design lab, collect feedback, and produce implementation plans. Use when the user wants to explore UI design options, redesign existing components, or create new UI with multiple approaches to compare.
development
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.