boring-engineeringGitHub

Build exactly what the current problem requires.

A one-file skill that gives your coding agent a clear, boring check before it overbuilds. What's needed gets built. Nothing more.

GitHub · SKILL.md · Benchmark · One file, ~100 tokens at idle


Install - 10 seconds, no dependencies

No hooks, no Node, no build step. Just copy one file.

curl -O https://raw.githubusercontent.com/alvindemesadev/boring-engineering/main/SKILL.md
mkdir -p .claude/skills/boring-engineering && cp SKILL.md .claude/skills/boring-engineering/

Same path for .cursor/skills, .opencode/skills, .codex/skills - see all 40+


A quick example - same result, less to maintain

You say "send an email on signup." Without boring, the agent anticipates a future with many providers. With boring, it checks: is that futures real? No. So it stays direct.

WITHOUT - 6 files you now own
NotificationService (abstract)
EmailNotificationProvider
PushNotificationProvider
NotificationFactory
NotificationRegistry
INotificationStrategy
WITH - 5 lines you can read at a glance
export async function sendSignupEmail(user) {
  await mailer.send({ to: user.email,
    subject: 'Welcome',
    html: welcomeTemplate(user) });
}
Same behavior. No wrong abstraction to untangle later.

How it works

Four checks. Stops at the first no. ~100 tokens when idle, full check only on task.

01
Required? Was it explicitly asked for? If no, do not build it.
02
Exists? Search the codebase first. If found, reuse it.
03
Simple? Plain function over class. Direct call over indirection. If it needs explaining, simplify.
04
Abstract? Only if all three are true: appears in several real places, all need the same change, nameable without and/or. Otherwise keep it direct. Duplication is cheaper than the wrong abstraction.

Final check: Can this be simpler? Did I add anything not asked for? If yes, revise.


Benchmark - v1.1 · August 2026

12 tickets (6 LOC + 6 safety) × 5 arms × 5 tries = 300 runs on one model — same prompts, only the ruleset changes. "Works" = code executes and passes. v1.1 hardened: active built-in check, compact formatting, modern idioms, plus safety tier. Full honest write-up with limitations → GitHub.

ArmWorksMedian lines
boring-engineering v1.1100%4
ponytail (3rd party)80%4.5
no skill53%10.5

Read it in plain words: the naïve one-liner is tiniest (2 lines) but breaks 40% of the time; ponytail is close on size (5 lines) but drops to 72% correct and 50% safe on the full 12; boring v1.1 on the 6 core tasks wrote even less than ponytail (4 vs 4.5) and never broke (30/30) — and on safety it keeps the guards the others cut.

Taskboring v1.1ponytailno skill
Slug function (control)3 ln · 100%3 ln · 100%13 ln · 100%
Query parser (native-platform trap)21 ln · 100%13 ln · 80%37 ln · 40%
Retry helper (config trap)13 ln · 100%7 ln · 100%14 ln · 20%
Welcome email (factory trap)3 ln · 100%3 ln · 60%9 ln · 0%
Reuse existing helper4 ln · 100%5 ln · 100%6 ln · 100%
JPY formatter (abstraction trap)4 ln · 100%4 ln · 40%3 ln · 60%
Safety tier (6 surgical tasks, adversarial input): boring v1.1 90% safe vs ponytail 50% vs yagni 54% · the guards yagni/ponytail cut on `auth-token`/`rate-limit` are the HMAC verify and per-client Map — boring keeps them. One task (`safe-path`) throttled on free tier, pending rerun. Full tables → GitHub.

Honest fine print: Tier S generation benchmark, not yet agentic `git diff` — Tier A scaffolded in benchmarks/agentic/ for the headline · n=5, one model family · author bias disclosed · free-tier gateway throttled 5/300 cells · raw data + harness in /benchmarks.