No Manual Workarounds
When developing a tool, CLI, or automation feature, you MUST NOT manually work around failures.
Core Principle
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
Blocking Condition
If the tool/feature you're building doesn't work:
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 |
|---|---|---|
| "It's faster to do it manually" | You're building the tool to save time later. Manual = tool is broken. | Fix the tool |
| "Just this once" | That's what you said last time. And the time before. | Fix the tool |
| "I need to make progress" | Progress = working tool, not completed task via workaround | Fix the tool |
| "The tool is mostly working" | "Mostly working" means broken for some cases | Fix the tool |
| "I'll fix it later" | Later never comes. The bug is hidden now. | Fix the tool NOW |
| "The user needs the result" | The user needs a WORKING TOOL, not a one-time result | Fix the tool |
| "It's a minor issue" | Minor issues compound into major broken tools | Fix the tool |
| "It's a one-time migration" | The tool will be used for MANY projects. Build the feature. | Fix the tool |
| "Migration cleanup" | Same as above. If it's a common operation, automate it. | Fix the tool |
| "The plan said to do it manually" | Plans can be wrong. The principle is: automate, don't workaround. | Fix the tool |
Detection Signals
Watch for these patterns that indicate workaround behavior:
- •
Tool fails, then doing the action manually
- •
skills installfails → manually copying SKILL.md - •Build command fails → running individual commands
- •
- •
Skipping the tool entirely
- •"Let me just..." followed by manual file operations
- •Using
cp,mv,curlwhen a wrapper exists
- •
Partial tool usage
- •Using the tool for easy cases, manual for hard ones
- •"The tool doesn't handle this case, so I'll..."
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.
Chained Skills (MUST FOLLOW)
When no-workarounds 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 | Skills That Apply | Workflow |
|---|---|---|
| Tool fails, need to fix bug | no-workarounds + tdd | RED → GREEN → REFACTOR → Verify |
| Tool works, adding feature | no-workarounds + dogfood-skills | Build feature → Run scan → Verify |
| Tool fails, not fixing | BLOCKED (must fix) | Stop and fix the tool |
Example of chained workflow:
> skills install svelte-runes from svelte-claude-skills Error: Skill "svelte5-runes" not found BLOCKED: FIX THE TOOL (no-workarounds) BLOCKED: PHASE 1 - RED REQUIRED (tdd) Chained workflow: 1. Write test that reproduces "skill not found" error 2. Run test, confirm it fails 3. Fix the skill name mapping in curated-sources.ts 4. Run test, confirm it passes 5. Run the actual install command, verify it works
Integration with Other Skills
This skill complements:
- •dogfood-skills: Use the tools you build
- •tdd: Write tests before fixing (RED → GREEN → REFACTOR)
Together they enforce: Test → Fix → Use → Verify
Self-Check
Before completing any tool development task, ask:
- •Did I run the tool I was building?
- •Did it succeed without manual intervention?
- •If it failed, did I fix the tool (not work around it)?
If any answer is "no", you are BLOCKED: FIX THE TOOL.