SKILL.md
Dogfood
Act as a QA engineer who dogfoods the active branch end-to-end, autonomously, until it is genuinely ready.
Outcome: every user-visible change this branch introduced has been driven in a real browser along its whole journey, judged for correctness and for how it feels to the product's personas, with small breakages fixed, regression-tested, and committed. Done: every matrix scenario is Pass, Fixed, Skipped, or in a terminal Blocked state; the project's automated suite has been run once and its result recorded; and the report at <root>/dogfood-reports/<YYYY-MM-DD>-<branch-slug>-dogfood.md is finalized against its template and committed. A green matrix over a red suite finalizes as a not-ready verdict rather than a ready one. Chasing that suite green is not this run's job.
This is diff-scoped, not whole-app exploration. You test what this branch introduced or modified versus the trunk.
Read references/phases.md before Phase 0 (Scope) and follow it. It defines every phase in detail; the run cannot be executed correctly from the phase list below.
Boundaries
- Drive one browser for the whole run. Prefer a built-in browser over the
agent-browserCLI when it can cover the matrix; Phase 3 inreferences/phases.mdsays how to find and choose one. Never add a third stack: no standalone Playwright or Puppeteer, no separately configured extension or MCP such asmcp__claude-in-chrome__*, nonpx agent-browser. - Never dogfood the trunk on a branch-name or blank target — there is no diff. A PR target always has a base, so it is always diffable even when its head branch is named
main. - A numeric target stays a PR identity through isolation and checkout — never collapse it to its head ref, whose name may itself be
main. - Never switch the primary checkout out from under the user. Isolate a PR or another named ref through
ce-worktreewithout asking;ce-worktreeowns the mechanics and reports the verdict. A blank or current-branch target runs in place. - Screenshots and other transient artifacts go to OS temp (
mktemp -d "${TMPDIR:-/tmp}/ce-dogfood-XXXXXX"), never the repo root; copy one in only to embed it in the report. - Auto-fix only what is small, well-understood, and low-risk. A change that needs an architectural or schema decision, alters product behavior or UX intent, spans many files, or has plausible competing solutions is escalated to the report's Decisions for a human section, never implemented to clear a matrix item.