Guide · Agent skill
How to use the Dogfood Branch QA agent skill (ce-dogfood)
Updated · written with AI from the project's own documentation and checked against our catalogue data
ce-dogfood is an agent skill from the Compound Engineering plugin that acts as a QA engineer for your current feature branch. It works out which user flows your branch changed compared with the trunk, drives a real browser through them, and writes a markdown report of what it tested and what still needs a person. This guide covers what the skill does, how to install it, how to start a run, what it needs, and the safety points to check before you use it.
Quick start
- 1Download and unzip. Download the ZIP from the skill's page and unzip it into ~/.claude/skills/ or the project's .claude/skills/ folder. In the Claude apps, upload it under Settings, then Capabilities, then Skills instead.
- 2Check prerequisites. Confirm the repo has a local dev server the agent can start, Python 3, Git with the trunk branch available, and a built-in browser or the agent-browser CLI.
- 3Start the run. In Claude Code, type /ce-dogfood, optionally followed by a PR number, a branch name, or --port PORT.
- 4Watch the scenarios. The agent maps flows, builds the test matrix, and works through scenarios one at a time while the report file updates on disk.
- 5Review the fixes. Check any commits the agent made, and the regression tests they include, before you merge.
- 6Read the report. Open the report in dogfood-reports/ and act on the decisions for a human and any Blocked items.
What does the ce-dogfood skill make the agent do?
An agent skill is a folder of instructions and supporting files that an AI coding agent loads when you ask it to perform a specific job. ce-dogfood gives the agent a QA routine for a branch. It maps the user flows affected by your branch's changes versus the trunk, runs those flows in a real browser, and judges both whether they work and how they feel to the personas your product defines.
When it finds a small, low-risk breakage, it can fix it, add a regression test, and commit the change. Bigger decisions, such as anything needing an architectural or schema choice, a change to product behavior, or a change spanning many files, are not implemented. They are listed in the report under decisions for a human.
- Scope is the branch diff, not the whole app.
- Fixes are small and low-risk only, each with a regression test that fails before the fix and passes after it, or a stated reason why no automated test was meaningful.
- The output is a durable report saved in your repo.
How do you install the ce-dogfood skill?
Download the skill ZIP from the skill's page on this site and unzip it. Where it goes depends on how you want to use it.
For Claude Code, unzip it into ~/.claude/skills/ to make it available in all your projects, or into a project's .claude/skills/ folder to make it available only in that repository.
In the Claude apps, you can upload the ZIP instead under Settings, then Capabilities, then Skills.
- Personal install: ~/.claude/skills/
- Project install: .claude/skills/ inside the repository
How do you start a dogfood run?
The skill is manual only. It will not start because you mention testing in passing; you invoke it by name. In Claude Code, type /ce-dogfood. You can add an argument to choose the target: a PR number, a branch name, or nothing to use the branch you have checked out. A --port PORT option is also accepted.
A PR number or a named branch is isolated in its own worktree through the ce-worktree skill, so your primary checkout is not switched. A blank target runs in place on the current branch.
- Blank argument: test the current branch in place.
- PR number: test that PR in an isolated worktree.
- Branch name: test that branch in an isolated worktree.
/ce-dogfoodWhat does a run look like from start to finish?
The skill follows fixed phases: scope, analyze the diff, map the flows, derive a test matrix, start the local dev server, execute scenarios, run the fix loop, then write the report. Each scenario is judged one at a time for correctness and for how it feels to each persona.
A report file is created as soon as the test matrix exists, with every scenario marked Pending, and it is updated after each scenario. If a run is interrupted, the report on disk still shows where it stopped. The report is saved under dogfood-reports/ in your repository, named with the date and branch, for example as a file ending in -dogfood.md. If your repo sets docs_root in .compound-engineering/config.yaml, that folder is used as the root instead of docs.
- Scenarios end as Pass, Fixed, Skipped, or a Blocked state.
- Blocked (needs human verify) marks a check that depends on an outside service the branch changed and no local stand-in covers.
- Blocked (human decision) marks a fix too large to make autonomously.
What do you need before running it?
You need a local dev server the agent can start, such as bin/dev, rails server, or npm run dev. You need either a browser built into your agent or the agent-browser CLI installed. The skill runs scripts, so Python 3 is required to run scripts/packs-resolve.py. The repo needs Git, with its trunk branch available for diffing.
Compound Packs are optional. If your repo declares them in .compound-engineering/config.yaml, the skill uses them to get personas and UX criteria. Without them, personas are inferred or taken from your product docs, and the report says so.
- A local dev server the agent can start
- A built-in browser, or the agent-browser CLI
- Python 3
- Git, with the trunk branch available
- Optional: Compound Packs declared in .compound-engineering/config.yaml
What are the safety notes?
Read these before you run it. The skill runs scripts and uses the network. It commits fixes itself, so commits can land without review if you do not check them afterwards. It is scoped to the branch diff by design, so it does not test the whole app.
If you do not want the agent committing to a repo, do not use this skill there. Projects without a runnable local dev server will not work, because the browser run needs the app running.
- Runs scripts and uses the network.
- Commits fixes automatically, so review the commit history after a run.
- Screenshots and temporary files go to the OS temp folder, not your repo root.
- Only one browser is used for the whole run.
What people use it for
- Checking a feature branch end to end in a real browser before opening a pull request.
- Getting a written list of what was tested, what was fixed, and what still needs a person to verify.
- Judging a new screen against the personas and UX criteria your team defines in Compound Packs.
- Testing a teammate's PR in an isolated worktree without changing your own checkout.
Frequently asked questions
Is ce-dogfood free to use?
The skill is published under the MIT licence, as stated on its page. Check the licence file in the source repository for the full terms.
How do I install the ce-dogfood skill?
Download the ZIP from the skill's page and unzip it into ~/.claude/skills/ for all projects or into a project's .claude/skills/ folder for one repo. In the Claude apps, upload the ZIP under Settings, then Capabilities, then Skills.
What do I need to run ce-dogfood?
You need a local dev server the agent can start, a built-in browser or the agent-browser CLI, Python 3 for scripts/packs-resolve.py, and Git with the trunk branch available. Compound Packs are optional.
Why doesn't ce-dogfood start when I ask the agent to test my app?
The skill is manual invocation only. You need to call it by name, for example /ce-dogfood, with an optional PR number or branch name.
Does ce-dogfood test my whole application?
No. It is diff-scoped by design, so it tests the user flows that your branch introduced or changed compared with the trunk.
Can ce-dogfood commit changes to my repo?
Yes. It makes small, low-risk fixes with regression tests and commits them itself. Check the commits afterwards, or avoid the skill in repos where the agent should not commit.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use ce-dogfood if you are a developer or team that wants an automated browser check of a feature branch before a pull request, and you are comfortable reviewing commits the agent makes. Pick another approach if you need whole-app exploratory testing, if your project has no runnable local dev server, or if the agent must not commit anything.
Download the skill