Agent SkillsHmbown/Codewhale › cw-dogfood

cw-dogfood

GitHub

用于在真实环境中验证 Codewhale 变更,通过构建、原子安装和本地二进制文件手动测试,确保运行时行为正确。

docs/skills/cw-dogfood/SKILL.md Hmbown/Codewhale

触发场景

需要证明代码变更在实际产品中有效 要求构建或安装本地二进制文件进行试吃

安装

npx skills add Hmbown/Codewhale --skill cw-dogfood -g -y
更多选项

非标准路径

npx skills add https://github.com/Hmbown/Codewhale/tree/main/docs/skills/cw-dogfood -g -y

不安装直接使用

npx skills use Hmbown/Codewhale@cw-dogfood

指定 Agent (Claude Code)

npx skills add Hmbown/Codewhale --skill cw-dogfood -a claude-code -g -y

安装 repo 全部 skill

npx skills add Hmbown/Codewhale --all -g -y

预览 repo 内 skill

npx skills add Hmbown/Codewhale --list

SKILL.md

Frontmatter
{
    "name": "cw-dogfood",
    "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."
}

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-orientcw-slicecw-gatesdogfoodcw-landcw-handoff.

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.
  • Hunter asks to "install the build", "dogfood this", or "get this on my machine".

Workflow

  1. Gate first. Run cw-gates to the rung the change deserves. Never install an ungated build.

  2. Build stamped. Local builds are unstamped ((dev)) since #5245, 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:

    CODEWHALE_BUILD_SHA=$(git rev-parse HEAD) \
      cargo build --release --locked -p codewhale-cli -p codewhale-tui
    
  3. Install atomically. Use the script; do not hand-copy:

    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.

    Never cp over a running binary. On Apple Silicon that poisons the kernel's code-signature cache for the inode, and later execs hang until reboot. The installer does tmp-copy plus atomic mv for exactly this reason.

  4. Verify from a fresh shell, not this one. A correct target/release binary and a stale codew on PATH is the classic false pass:

    zsh -lc 'type -a codew codewhale; codew --version'
    

    The version string must contain the short HEAD SHA you just built.

  5. Use the product. Run it in a real terminal and exercise what you changed. crates/tui/AGENTS.md is the authority on what to look at; pick the terminal sizes relevant to the change from 40x12, 60x16, 80x24, 100x32, 140x40. Judge motion from repeated frames, never a single screenshot, and check it against docs/MOTION_CONTRACT.md. Remove inherited NO_COLOR, TERM=dumb, and tmux motion overrides when they would invalidate what you are looking at.

    Scenarios worth exercising when they are in scope:

    • Liveness under fanout — spawn several workers; typing, render, cancel, and the roster stay live throughout, and Esc cancels mid-fanout.
    • Route isolation — multiple terminals on distinct provider/model routes, zero cross-terminal contamination, no provider+model mismatch.
    • Running-turn input — during a busy turn, Enter queues a follow-up, an empty Enter promotes the oldest, Ctrl+Enter steers, Shift+Enter newlines.
    • Approvals — ordinary tool approval vs. repository-law approval; the screen must name the repository constitution where it applies, and decorative motion must go still when the user owns the next action.
    • Empty, narrow, and first-run states — compact layouts remove chrome before content.
  6. Headless surfaces, when the change touches them. codewhale exec is the one-shot worker path; codewhale app-server is the local control/API surface. They must agree about routing, permissions, and event states — a disagreement is a runtime bug, not a QA note.

    scripts/release/app-server-smoke.sh
    codewhale exec --auto --output-format stream-json --model <model> "Reply PONG"
    

    Provider calls spend tokens. Ask before running the paid ones.

  7. Record what you saw. Dimensions, inputs, visible state, side effects. A screenshot proves layout and color; only live observation or a recording proves motion and continuity.

Red flags / don't

  • Don't cp a binary over a running one. Use install-dogfood.sh.
  • Don't verify in the shell that already has the old binary resolved.
  • Don't claim animation or cadence quality from a still image.
  • Don't substitute a full-screen assertion harness for looking at and using the product.
  • Don't install from a dirty tree without saying so in the report — the version stamp will not show the dirt.
  • Don't delete target/dogfood/* bundles if the lane keeps them: they are release evidence.
  • Don't spend provider tokens on smoke runs without approval.

Output

  • The exact build command, including the CODEWHALE_BUILD_SHA stamp.
  • The installer's destinations and its fresh-shell verification result.
  • codew --version from a fresh login shell, with the SHA visible.
  • Per scenario: terminal size, what you did, what you observed — and which scenarios you did not exercise.

版本历史

  • aedb88b 当前 2026-09-09 04:22

同 Skill 集合

crates/tui/assets/skills/batch/SKILL.md
crates/tui/assets/skills/best-of-n/SKILL.md
crates/tui/assets/skills/contributor-onboarding/SKILL.md
crates/tui/assets/skills/dataviz/SKILL.md
crates/tui/assets/skills/debug/SKILL.md
crates/tui/assets/skills/delegate/SKILL.md
crates/tui/assets/skills/dependency-update/SKILL.md
crates/tui/assets/skills/docx/SKILL.md
crates/tui/assets/skills/feishu/SKILL.md
crates/tui/assets/skills/fleet-manager/SKILL.md
crates/tui/assets/skills/frontend-design/SKILL.md
crates/tui/assets/skills/handoff/SKILL.md
crates/tui/assets/skills/help/SKILL.md
crates/tui/assets/skills/implement/SKILL.md
crates/tui/assets/skills/interview/SKILL.md
crates/tui/assets/skills/mcp-builder/SKILL.md
crates/tui/assets/skills/mcp-discovery/SKILL.md
crates/tui/assets/skills/pdf/SKILL.md
crates/tui/assets/skills/plan/SKILL.md
crates/tui/assets/skills/plugin-creator/SKILL.md
crates/tui/assets/skills/pptx/SKILL.md
crates/tui/assets/skills/research/SKILL.md
crates/tui/assets/skills/review/SKILL.md
crates/tui/assets/skills/security-review/SKILL.md
crates/tui/assets/skills/simplify/SKILL.md
crates/tui/assets/skills/skill-creator/SKILL.md
crates/tui/assets/skills/skill-installer/SKILL.md
crates/tui/assets/skills/test/SKILL.md
crates/tui/assets/skills/v4-best-practices/SKILL.md
crates/tui/assets/skills/verify/SKILL.md
crates/tui/assets/skills/webapp-testing/SKILL.md
crates/tui/assets/skills/xlsx/SKILL.md
docs/skills/codew-release-qa-sweep/SKILL.md
docs/skills/cw-gates/SKILL.md
docs/skills/cw-handoff/SKILL.md
docs/skills/cw-land/SKILL.md
docs/skills/cw-orient/SKILL.md
docs/skills/cw-slice/SKILL.md
docs/skills/gh-assign-issues/SKILL.md
docs/skills/gh-close-issues/SKILL.md
docs/skills/gh-compile-issues/SKILL.md
docs/skills/gh-credit-harvest/SKILL.md
docs/skills/gh-file-issue/SKILL.md
docs/skills/gh-find-prs/SKILL.md
docs/skills/gh-treasure-hunt/SKILL.md
crates/tui/assets/skills/documents/SKILL.md
crates/tui/assets/skills/presentations/SKILL.md
crates/tui/assets/skills/spreadsheets/SKILL.md

元信息

文件数
0
版本
aedb88b
Hash
43d7c8f8
收录时间
2026-09-09 04:22

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-16 14:33
浙ICP备14020137号-1 $访客地图$