Agent skill
dogfood
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/dogfood
SKILL.md
Dogfood
When building tools, you MUST use the tools you build. When tools fail, you MUST fix them - never work around them.
Core Principles
1. Use What You Build
If you're building a tool that does X, you must use X yourself. Dogfooding:
- Reveals bugs and UX issues
- Builds understanding of user pain points
- Validates the value proposition
- Maintains project credibility
2. No Manual Workarounds
If you're building a tool that automates X, and X fails, you fix the tool - you don't manually do X.
Manual workarounds:
- Hide bugs that users will encounter
- Create false confidence that the feature works
- Waste the user's time when they discover it's broken
- Defeat the entire purpose of building automation
Configuration
Define dogfood commands in CLAUDE.md:
## Dogfood
Command: `npm run cli -- scan`
Verify: `npm run cli -- list`
If no ## Dogfood section exists, ask the user what command to run.
Blocking Conditions
After Completing Any Feature/Bugfix
BLOCKED: DOGFOODING REQUIRED
You cannot proceed until you:
- Run the tool's main command
- Verify it works as expected
- Document any issues found
When Tool Fails
BLOCKED: FIX THE TOOL
Do NOT proceed with manual workarounds. Stop and fix the actual implementation.
What Counts as a Workaround
| Building | Workaround (BLOCKED) | Correct Action |
|---|---|---|
| Install command | Manually copying files | Fix the install logic |
| CLI wrapper | Running raw commands | Fix the CLI code |
| File generator | Writing files by hand | Fix the generator |
| API integration | Calling APIs directly | Fix the integration |
| Build script | Running steps manually | Fix the script |
| Migration tool | Editing DB directly | Fix the migration |
Rationalizations (All Rejected)
| Excuse | Why It's Wrong | Required Action |
|---|---|---|
| "I'll test later" | Later never comes | Test NOW |
| "Tests are passing" | Tests != real usage | Run the tool |
| "Just a small change" | Small bugs compound | Still dogfood |
| "It's faster manually" | You're building to save time later | Fix the tool |
| "Just this once" | That's what you said last time | Fix the tool |
| "I need to make progress" | Progress = working tool, not workaround | Fix the tool |
| "The tool is mostly working" | "Mostly working" means broken | Fix the tool |
| "I'll fix it later" | Later never comes. Bug is hidden. | Fix the tool NOW |
Workflow When Tool Fails
- STOP - Do not proceed with manual alternative
- DIAGNOSE - Why did the tool fail?
- Read error messages
- Check logs
- Trace the code path
- FIX - Implement the fix in the tool's code
- VERIFY - Re-run the tool to confirm it works
- CONTINUE - Only proceed after tool succeeds
Example: Correct vs Wrong
Wrong (BLOCKED)
> skills install svelte-runes from svelte-claude-skills
Error: Skill "svelte5-runes" not found
Let me manually copy the skill files instead...
[copies files directly]
Done! The skill is now installed.
Correct
> skills install svelte-runes from svelte-claude-skills
Error: Skill "svelte5-runes" not found
BLOCKED: FIX THE TOOL
The install command failed. Let me investigate:
1. Check curated-sources.ts - skill name is wrong
2. Fix: change 'svelte5-runes' to 'svelte-runes'
3. Rebuild and re-run the install command
4. Verify it works now
Exceptions (Rare)
Manual intervention is acceptable ONLY when:
- Debugging the tool itself - You need to understand what the tool should do
- One-time migration - Explicitly not building automation (user confirmed)
- External tool failure - The failure is in a dependency you can't fix
Even in exceptions, document why manual intervention was necessary.
Integration with TDD
When dogfood is activated AND you're fixing a bug in the tool:
- tdd ALSO APPLIES - Write regression tests FIRST (RED phase)
- The fix to the tool MUST be test-driven
- Do NOT patch code without regression tests
| Situation | Workflow |
|---|---|
| Tool fails, need to fix bug | RED → GREEN → REFACTOR → Verify |
| Tool works, adding feature | Build feature → Run tool → Verify |
| Tool fails, not fixing | BLOCKED (must fix) |
Quality Check
Before ending work, verify:
- Did I run the tool I modified?
- Did it succeed without manual intervention?
- If it failed, did I fix the tool (not work around it)?
- Did I document any issues?
If any answer is "no": BLOCKED
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?