agentsclimarketplace

Dogfood

Skill broomva/skills/skills/governance/dogfood

Broomva agent-skills monorepo — 48 Tier-2 skills compatible with Claude Code, Codex, Cursor, Gemini CLI, Goose, Copilot. Layout follows anthropics/skills (agentskills.io spec). Install: npx skills add broomva/skills --skill <name>.

Install
npx -y skills add broomva/skills --skill dogfood

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Per-bstack-P11 reflex 7+16 — explicitly trigger the Dogfood Plan + per-stack cookbook + Dogfood Receipt sequence. Auto-detects the tech stack from repo signals (Cargo.toml + src-tauri/ → tauri-sidecar; next.config.* → nextjs; app.json + expo → expo-rn; Cargo.toml solo → rust-cli; openapi.* or REST framework deps → rest-api; mcp.{json,yaml} → mcp-server), loads the matching cookbook entry from bstack/references/dogfood-patterns.md (broomva/bstack ≥ 0.13.0), produces a six-row Dogfood Plan (entry surface · driver · evidence · smoke · end-to-end · receipt anchor), optionally executes via the named surfaces (Interceptor mandatory for visual deploy verification; gstack, cliclick, screencapture, curl+jq, xcrun simctl compose per stack), and produces the final receipt with binary anti-rationalization check. Three subcommands: /dogfood (full sequence — plan → execute → receipt), /dogfood plan (plan only), /dogfood receipt (receipt only, assumes plan exists in PR body or AGENTS.md). Inherits from broomva/bstack: cookbook, P11 discipline, stack-detection algorithm. Composes with broomva/autonomous (which fires this implicitly at reflex 7+16) — use /dogfood directly for narrower scope (small changes, exploration, pre-merge verification gate without full pipeline). USE WHEN dogfood, dogfood this, dogfood plan, dogfood receipt, validate as user, exercise the change, click through the app, /dogfood, P11 receipt, exercise like a user would, did I actually click it, prove this works for a user, interaction evidence, deploy verification. NOT FOR running CI checks (use /p9), batch headless automation (use Browser skill), or scientific-method experiment framing (use Science skill).

SKILL.md

13.2 KB, ~2.9k tokens by cl100k_base, as published. Nobody here has run it

dogfood — explicit P11 reflex trigger (Dogfood Plan + Receipt)

Explicit trigger for bstack P11 reflex 7+16 for: $ARGUMENTS

Inheritance from bstack (declared)

This skill is downstream of broomva/bstack. It implements P11 reflex 7 (Dogfood Plan keyed to detected stack) and reflex 16 (Dogfood Receipt) explicitly, where /autonomous fires them implicitly inside its 21-reflex pipeline. Full inheritance contract: references/bstack-inheritance.md.

  • Cookbook source: bstack/references/dogfood-patterns.md (loaded on demand; not duplicated here)
  • Discipline source: bstack/references/primitives.md §P11
  • Stack-detection algorithm: mirrors bstack/scripts/doctor.sh §13
  • Minimum bstack version: 0.13.0

If bstack isn't installed, the skill still works — it carries its own detection logic and inlines the minimum surfaces matrix. The cookbook (deep per-stack reference) lives upstream in bstack.

Purpose

P11 (Empirical Feedback Loop) mandates "before claiming work complete, the agent has interacted with the deployed/running version… reasoning isn't validation; interaction is." This skill makes the two binding reflexes (Plan + Receipt) explicitly triggerable when you don't want the full /autonomous pipeline.

When to invoke /dogfood instead of /autonomous:

  • Single-file change with user-visible effect
  • Exploration: "what does dogfooding look like for this stack"
  • Pre-merge verification gate on someone else's PR
  • First time seeing a tech stack you're new to (cookbook entry is the answer)
  • Receipt-only after manual execution

Usage

/dogfood                        # full sequence: plan → execute prompt → receipt
/dogfood plan                   # plan only — produce the six-row plan
/dogfood execute                # execute — fire the surfaces named in the plan
/dogfood receipt                # receipt only — produce the evidence table
/dogfood --stack=tauri-sidecar  # override detection
/dogfood --ticket=BRO-1234      # anchor evidence path to ticket
/dogfood --evidence-dir=/tmp/dogfood/<slug>

CLI fallback (no Claude session required):

./scripts/dogfood.sh detect              # echo detected stack
./scripts/dogfood.sh plan --stack=nextjs # emit plan template stub
./scripts/dogfood.sh receipt --plan=plan.md

Workflow

Phase 1 — Detect stack

Mirror bstack/scripts/doctor.sh §13 detection. If --stack=<name> was passed, use that instead. If detection returns unknown, the agent declares the stack explicitly in the plan (no silent default).

./scripts/dogfood.sh detect
# → tauri-sidecar | nextjs | expo-rn | rust-cli | rest-api | mcp-server | unknown

The detection logic mirrors what bstack doctor §13 does. If bstack doctor is installed and recent, prefer its output:

if command -v bstack >/dev/null 2>&1; then
    bstack doctor 2>&1 | grep "^  \[ok\] stack detected:" | sed 's/.*stack detected: //; s/ .*//'
fi

Phase 2 — Load cookbook entry

Read the matching pattern section from bstack/references/dogfood-patterns.md:

# Section IDs in the cookbook:
#   Pattern A — Tauri + sidecar
#   Pattern B — Next.js
#   Pattern C — Expo / React Native
#   Pattern D — Rust CLI
#   Pattern E — REST API
#   Pattern F — MCP server / Tool provider

BSTACK_REF=$(npx skills path broomva/bstack 2>/dev/null || echo "$HOME/.agents/skills/bstack")
COOKBOOK="$BSTACK_REF/references/dogfood-patterns.md"

If the cookbook isn't reachable (bstack not installed or older than v0.13.0), fall back to the minimum surfaces table inlined below in Phase 2 — fallback (no bstack). The agent surfaces a one-line warning recommending bstack installation for the deep cookbook.

Phase 2 — fallback (no bstack ≥ 0.13.0 available)

Minimum surfaces table (covers ~80% of cases without the deep cookbook):

StackPrimary surfacesMandatory
tauri-sidecarcurl+jq engine API · cliclick+screencapture · Interceptor at :1420Interceptor for visual verification
nextjsdev server log-tail · Interceptor · curl+jq for routesInterceptor for authenticated flows
expo-rnexpo start --ios · xcrun simctl io booted screenshotSimulator screenshots
rust-clidirect invocation · --help smoke · trycmd/assert_cmdExit code 0 + output capture
rest-apicurl+jq · log-tail · OpenAPI diff if applicableResponse body assertion
mcp-servernpx @modelcontextprotocol/inspector or direct LLM invokeTool-call response capture

For deeper detail (canonical arc, bash snippets, gotchas, receipt template): install bstack ≥ 0.13.0.

Phase 3 — Produce the Dogfood Plan

Surface the plan in the agent's response, and (if a PR is active) into the PR body via gh pr edit <pr> --body-file or gh pr comment <pr>. Six rows, all mandatory:

**Dogfood Plan** (stack: <detected>, ticket: <id-or-none>)

- **Entry surface**: <URL / window / CLI command the user touches>
- **Driver**: <Interceptor / gstack / cliclick+screencapture / curl+jq / xcrun simctl>
- **Evidence**: <screenshot path / response body path / log line / recording>
- **Smoke**: <one-line "didn't obviously break" check>
- **End-to-end**: <multi-step user flow that catches regression a smoke test misses>
- **Receipt anchor**: <file / line / PR comment ID where the receipt lives>

The plan rows MUST be concrete — file paths, URLs, commands, not vibes. Rows that genuinely don't apply are marked with explicit reason ("backend mocked in this PR; real cloud creds not available — smoke-only this run"). Silent omission is the failure mode this contract closes.

Phase 4 — Execute (only if subcommand is execute / explore or full sequence)

For each plan row, fire the named driver. The explore subcommand (v0.2.0+) emits the per-stack execution recipe; for web stacks it composes with the agent-browser exploratory workflow.

Exploratory web QA mode (v0.2.0+)

For web stacks (nextjs, rest-api-with-frontend, or any --url= target), /dogfood explore --url=... produces an agent-browser session-based exploration recipe: initialize → authenticate → orient → explore → document issues → wrap up. Each issue logged with screenshots / video / repro-steps to ./dogfood-output/<slug>/. The exploratory output's report.md becomes the parent Dogfood Plan's Evidence row.

dogfood explore --url=https://staging.example.com --session=billing-page --ticket=BRO-1234
# → emits a recipe: agent-browser open · snapshot · screenshot · errors · console
# → mkdir -p ./dogfood-output/staging-example-com/{screenshots,videos}
# → cp templates/exploratory-report.md → output dir

Composition with the upstream dogfood skill: the agent-browser workflow + issue taxonomy + report template are adapted from the pre-existing dogfood skill at ~/.agents/skills/dogfood/ (agent-skills catalog). See references/bstack-inheritance.md for attribution + references/exploratory-issue-taxonomy.md for what to look for.

Per-stack execution snippets

tauri-sidecar:

osascript -e 'tell application "Houston" to activate'
cliclick c:1662,1090
cliclick t:"My test mission"
cliclick kp:return
sleep 1
screencapture -x -t png -R 1480,200,470,980 "$EVIDENCE_DIR/after-input.png"

nextjs:

interceptor open "http://localhost:3000/<route>"
interceptor read --max-tokens 4000
interceptor act --click "Submit"
interceptor wait-stable
interceptor screenshot "$EVIDENCE_DIR/after-submit.png"

rest-api:

curl -sS -X POST "$BASE/api/<route>" \
  -H 'content-type: application/json' \
  -d '{"foo":"bar"}' | jq . | tee "$EVIDENCE_DIR/response.json"

Capture the exit status of each driver invocation. Failed invocations are surfaced before producing the receipt.

Phase 5 — Produce the Dogfood Receipt

After execution (or after the user reports manual execution), produce the evidence table:

**Dogfood Receipt** — <ticket> · <date>

| Plan row | Executed | Evidence |
|---|---|---|
| Smoke | ✅ | <evidence>: <path / output line> |
| End-to-end | ✅ | Screenshots: <paths> |
| API contract | ✅ | <response captured in PR comment #N> |
| Side-effect | ✅ | <DB query / log / state assertion> |
| Deploy preview | ✅ | <preview URL> — Interceptor screenshot <path> |
| <row that wasn't applicable> | ⊘ | Reason: <explicit> |

**Anti-rationalization check**: did I actually click the app like a user would? <yes/no>
**Surfaces driven**: <Interceptor / cliclick / curl / etc.>
**Time-to-receipt**: <duration> from first write to receipt complete.

The anti-rationalization line is binary and mandatory. If the honest answer is no, the receipt isn't complete — the plan goes back into execution.

Phase 6 — Persist the receipt

Anchor the receipt at the location named in the plan's Receipt anchor row:

  • PR bodygh pr comment <pr> --body "$(cat receipt.md)" OR include in PR description
  • Repo filedocs/dogfood-receipts/<date>-<ticket>.md for repos with substantial dogfood history
  • Bridge (P1) auto-capture — bstack's Stop hook captures the session-end receipt to Obsidian automatically; no explicit action needed if bstack is installed

Composition with /autonomous

/autonomous fires this skill at reflex 7 (Plan) and reflex 16 (Receipt). When invoked directly, /dogfood runs in isolation. Both produce the same artifacts; the difference is scope.

ScopeUse
Full feature work (multi-file, public contract, deploy-impacting)/autonomous
Single-file change with user-visible effect/dogfood directly
Pre-merge verification of someone else's PR/dogfood --ticket=<id>
First time seeing a new tech stack/dogfood plan
Receipt-only after manual execution/dogfood receipt

Anti-patterns this skill closes

Anti-patternWhy it failsWhat /dogfood enforces
"Compile-time pass = shipping"Compile ≠ deploy correctnessPlan rows require evidence beyond exit codes
"CI green = shipping"CI tests what CI was told; user flow is broaderReceipt requires deploy-verification screenshot
"I dogfooded mentally"Ritual without artifactReceipt table is the artifact; anti-rationalization line is binary
"I'll dogfood after merge"Post-merge = bug found by userPlan precedes substantive work; receipt precedes claiming complete
Agent-browser for visual deploy verificationBot detection + missed visual stateInterceptor mandatory per cookbook

Cross-references

  • Cookbook (per-stack patterns): bstack/references/dogfood-patterns.md (loaded on demand)
  • P11 reflex contract: bstack/references/primitives.md §P11
  • Inheritance declaration: references/bstack-inheritance.md
  • Interceptor skill: ~/.claude/skills/Interceptor/SKILL.md
  • /autonomous skill: broomva/autonomous (composes this skill at reflex 7+16)

Voice notification (optional, for environments that support it)

If a local voice-notification daemon is running on port 31337:

curl -s -X POST http://localhost:31337/notify \
  -H "Content-Type: application/json" \
  -d '{"message": "Running the dogfood skill — producing P11 plan + receipt for the detected stack"}' \
  > /dev/null 2>&1 &

Skip silently if the daemon isn't running.

What ships with it: 7 files

100.2 KB alongside SKILL.md, 1 of them executable

evals/

scripts/

templates/

Keep looking

Skills are one crate of 326,970. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.