Thinking disciplines for AI coding agents. Skills that enforce good engineering habits — not tooling workflows, but decision frameworks.
# Install all skills
npx skills add tmdgusya/engineering-disciplines
# Install a specific skill
npx skills add tmdgusya/engineering-disciplines --skill rob-pike
npx skills add tmdgusya/engineering-disciplines --skill systematic-debuggingRob Pike's 5 Rules of Programming — prevents premature optimization by enforcing measurement-driven development.
Triggers on: "optimize", "slow", "performance", "bottleneck", "speed up", "make faster", "too slow"
The 5 Rules:
- You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places. Don't guess — prove it.
- Measure. Don't tune for speed until you've measured. Even then, don't unless one part of the code overwhelms the rest.
- Fancy algorithms are slow when n is small, and n is usually small. Big-O doesn't matter when constants dominate.
- Fancy algorithms are buggier than simple ones. Use simple algorithms and simple data structures.
- Data dominates. Choose the right data structures and the algorithms become self-evident. "Write stupid code that uses smart objects."
Pike's rules 1 and 2 restate Tony Hoare's famous maxim "Premature optimization is the root of all evil." Ken Thompson rephrased rules 3 and 4 as "When in doubt, use brute force." Rule 5 was previously stated by Fred Brooks in The Mythical Man-Month.
Enforces a strict reproduce-first, root-cause-first, failing-test-first debugging workflow. No guessing, no shotgun fixes.
Triggers on: any bug, test failure, or unexpected behavior
Hard gates — no exceptions:
- Reproduce or make observable before fixing
- State a root-cause hypothesis before fixing
- Create a failing test before fixing
- Verify one hypothesis at a time
- No "while I'm here" refactoring during fixes
- Three failed fix attempts → suspect structural issues
Includes reference guides for root-cause tracing, defense-in-depth validation, condition-based waiting (flaky test elimination), and a test polluter bisection script.