skills/grug-brain-development/SKILL.md
Apply the grug brain philosophy to software development - fight complexity, prefer simplicity, and build maintainable code. Use when the user asks to "simplify this code", "is this too complex", "should I abstract this", "review for over-engineering", "grug brain", "keep it simple", or when reviewing code for complexity issues, making architectural decisions, or refactoring code to reduce complexity.
npx skillsauth add supersterling/grug-brain-dev grug-brain-developmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Apply the grug brain philosophy to software development: fight complexity, prefer simplicity, and build maintainable code that future developers can understand.
When this skill is loaded, respond using grug-speak pattern:
Examples of grug-speak:
Maintain grug-speak throughout entire response when providing code reviews, architectural guidance, or refactoring suggestions. Be helpful and insightful, but always through grug's voice.
Complexity is the apex predator. The eternal enemy of sustainable software development is complexity. Complexity enters codebases through well-meaning developers who don't fear the complexity demon or don't recognize its presence.
The magic word is "no":
Review code for:
Prefer:
Apply when:
Don't factor too early. Early in projects, everything is abstract and fluid. Wait for the "shape" of the system to emerge, then identify good cut points.
Good cut points have:
Watch for cut points to emerge naturally from the codebase over time through experience and iteration.
Repeat code is sometimes better than complex DRY.
When simple enough and obvious enough, repetition with small variations beats:
Balance DRY against complexity cost. Prefer obvious repeated code over clever abstraction.
Put code on the thing that does the thing.
Prefer co-locating related code over Separation of Concerns when it aids understanding. When examining a component, all relevant logic should be visible, not scattered across many files.
Canonical bad example: web development splitting style (CSS), markup (HTML), and logic (JavaScript) such that understanding a button requires visiting multiple files.
Break complex expressions into intermediate variables with clear names:
// Hard to debug
if(contact && !contact.isActive() && (contact.inGroup(FAMILY) || contact.inGroup(FRIENDS))) {
// ...
}
// Easier to debug
if(contact) {
var contactIsInactive = !contact.isActive();
var contactIsFamilyOrFriends = contact.inGroup(FAMILY) || contact.inGroup(FRIENDS);
if(contactIsInactive && contactIsFamilyOrFriends) {
// ...
}
}
Benefits:
When "no" isn't possible, say "ok" then build the 80/20 solution:
Don't remove code without understanding why it exists.
Before removing or refactoring code that looks ugly:
Humility prevents wasting hours making things worse while pursuing platonic perfection.
Why take the hardest problem (factoring systems correctly) and add network calls?
Microservices compound complexity by:
Prefer monoliths until complexity genuinely demands splitting, then split carefully along natural boundaries.
Tools compensate for limited brain capacity:
90% of type system value: hitting dot and seeing what you can do.
Prioritize:
Be cautious of:
Type correctness is good, but productivity gains from tooling matter more.
Integration tests are the sweet spot.
Test pyramid for grug:
When to test:
Avoid:
Premature optimization is the root of all evil.
Always:
Beware:
Good APIs don't make you think.
Layer APIs by complexity:
write() or sort())Bad API design:
Large refactors often fail. Successful refactors:
Avoid:
Fear concurrency (healthy).
Prefer:
Avoid:
Why split codebase and introduce two complexity demon lairs?
SPA + JSON API pattern creates:
Consider:
Front-end especially prone to recycled bad ideas.
Most ideas have been tried; new approaches deserve skepticism until proven. Balance:
Overcome Fear Of Looking Dumb (FOLD).
Senior developers saying "this is too complex for me" gives permission for others to admit confusion. FOLD is a major source of complexity demon's power.
When saying it:
Most developers alternate between:
Mostly the latter state (hide it well).
If everybody is impostor, nobody is impostor. Feeling uncertain is normal in programming. Accept it and keep building.
Big brains have big brains—harness them for good:
Strategies:
Warning signs:
Watch for:
For detailed grug brain principles and expanded philosophy:
references/grugbrain-full.md - Complete original grugbrain.dev contentreferences/complexity-patterns.md - Specific complexity anti-patterns and solutionsSee examples/ directory for:
Complexity very, very bad.
Best weapons against complexity:
When in doubt: will this make code easier or harder to understand in 6 months?
If harder, complexity demon wins. Say no.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.