# Cw Dogfood

Use when a Codewhale change needs proving in the real product, or when asked to...

- Repository: https://github.com/codewhale-hq/Codewhale (41164 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add codewhale-hq/Codewhale --skill cw-dogfood -g -a claude-code -y`
Codex: `npx skills add codewhale-hq/Codewhale --skill cw-dogfood -g -a codex -y`
Cursor: `npx skills add codewhale-hq/Codewhale --skill cw-dogfood -g -a cursor -y`
Gemini CLI: `npx skills add codewhale-hq/Codewhale --skill cw-dogfood -g -a gemini-cli -y`

## Description

Use when a Codewhale change needs proving in the real product, or when asked to build/install/dogfood the local binaries: stamped release build, atomic install, fresh-shell verification, and the manual QA that gates cannot cover.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# cw-dogfood

Green gates prove the code compiles and asserts. They do not prove the product
works. Freezes, route contamination, focus theft, streaming cadence, and
approval-flow regressions all live in the runtime, where no unit test looks.
This stage puts the actual binary on your PATH and makes you use it.

Stage 4 of the loop: [cw-orient](../cw-orient/SKILL.md) →
[cw-slice](../cw-slice/SKILL.md) → [cw-gates](../cw-gates/SKILL.md) →
**dogfood** → [cw-land](../cw-land/SKILL.md) → [cw-handoff](../cw-handoff/SKILL.md).

## When to use

- The change is user-visible: TUI layout, motion, streaming, model or Fleet
  selection, approvals, commands, install paths.
- Before landing a release candidate, or before claiming a runtime behavior is
  fixed.
- The user asks to "install the build", "dogfood this", or "get this on my machine".

## Workflow

1. **Gate first.** Run [cw-gates](../cw-gates/SKILL.md) to the rung the change
   deserves. Never install an ungated build.

2. **Build stamped.** Release work follows `docs/RELEASE_CHECKLIST.md`.
   Local builds are unstamped (`(dev)`), and the
   installer refuses an unstamped binary on purpose, the stamp is what proves
   the thing on your PATH is the thing you just built:
   ```bash
   CODEWHALE_BUILD_SHA=$(git rev-parse HEAD) \
     scripts/dev-cargo.sh build --release --locked -p codewhale-cli --bin codewhale
   ```

3. **Install atomically.** Use the script; do not hand-copy:
   ```bash
   scripts/release/install-dogfood.sh          # defaults to target/release
   ```
   It refuses a dirty source tree (override deliberately with
   `CODEWHALE_ALLOW_DIRTY_DOGFOOD=1`, and then say so wherever you report the
   install), verifies the binary embeds current HEAD, installs `codewhale` and
   `codew` into `~/.cargo/bin` and `~/.local/bin` (override with
   `CODEWHALE_INSTALL_DIRS`), re-signs ad-hoc on macOS, and verifies resolution
   from a fresh login shell.

The rest: https://github.com/codewhale-hq/Codewhale/blob/HEAD/docs/skills/cw-dogfood/SKILL.md
