The simplicity ladder — delete > reuse what the repo already has > stdlib > native platform > already-installed dependency > one line > minimum code. Preloaded by the simplifier and plan-reviewer agents; load it when deciding whether code, a dependency, or a plan step needs to exist at all.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# ponytail: the simplicity ladder
Climb in order and stop at the first rung that holds. Rung 1 is the counterweight to a review
rubric that otherwise only ever asks for MORE.
1. **Does this need to exist at all?** Speculative need → cut it, in one line saying so.
2. **Does this repo already have it?** Reuse it. Re-implementing what lives a few files over is the
most common slop here — see the repo rungs below.
3. **Does the stdlib do it?** Use it.
4. **Does a native platform feature cover it?** CSS over JS, a DB constraint over app code.
5. **Does an already-installed dependency solve it?** Use it — never add one for what a few lines do.
6. **Can it be one line?** One line.
7. **Only then:** the minimum code that works.
## This repo's rungs
Before writing anything, check whether it already exists:
- A scene/layout/measure helper → `canvas-render` almost certainly has it.
- A parse/serialize path → `codec`. A schema → `model`, as `z.infer`, never a hand-written
interface beside it.
- A logger → `getLogger`, never `console.*` in server code.
Two rungs are already mechanical, so reach for them before a prose rule: `tools/arch-lint`'s
…
The line at the top of this page pins the label git:20261002.0803037, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_ynlbednaa4np3nnp
GET https://markdownregistry.com/api/v1/resolve?ref=kamiazya/whiteboard/ponytail
GET https://markdownregistry.com/api/v1/blob/b7b2fce98fcd77e358959d4e31c5e51ddf0e7ddc8e430b8ee3007856764a17fc
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
kamiazya/whiteboard · .claude/skills/audit-triage/SKILL.md · How to run the periodic standing-codebase-health audit in the whiteboard repo — fan out auditors across health…
kamiazya/whiteboard · .claude/skills/ci-triage/SKILL.md · Monitor and triage the POST-PUSH automated-review surface for the whiteboard repo — GitHub Actions CI, CodeRabbit…
kamiazya/whiteboard · .claude/skills/diagnosis-evidence/SKILL.md · Make a diagnosis prove it measured what it claims — before reporting a cause, a "not a regression", a mutation check…
kamiazya/whiteboard · .claude/skills/docs-sync/SKILL.md · When and how to update the whiteboard project's docs alongside a code change — the trigger→target map, Diátaxis…
kamiazya/whiteboard · .claude/skills/loro-crdt-usage/SKILL.md · How this repo uses loro-crdt correctly — mergeable child containers vs the deprecated getOrCreateContainer, what a…
kamiazya/whiteboard · .claude/skills/mcp-tool-surface/SKILL.md · How to change the whiteboard MCP tool table — rename, re-describe, reshape, add, consolidate or retire a tool — with…
kamiazya/whiteboard · .claude/skills/measured-change/SKILL.md · Build the measuring instrument before changing anything whose effect you cannot see by reading the diff — quality…
kamiazya/whiteboard · .claude/skills/react-best-practices/SKILL.md · React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing…
kamiazya/whiteboard · .claude/skills/review-gate/SKILL.md · How to run the whiteboard repo's per-diff change-review gate — args, return contract, and the externalized-criteria…
kamiazya/whiteboard · .claude/skills/stacking-pull-requests/SKILL.md · Operates a stack of dependent pull requests in the whiteboard repo with the gh-stack extension — creating a stack…
kamiazya/whiteboard · .claude/skills/steward/SKILL.md · Drives one whiteboard PR to a green, mergeable, merged state — the order to work a PR event in, which checks actually…
dietrichgebert/ponytail · .openclaw/skills/ponytail/SKILL.md · Lazy senior dev mode for any coding task: the smallest change that fully solves it, and a reply a busy human…
dietrichgebert/ponytail · skills/ponytail/SKILL.md · Lazy senior dev mode: the smallest change that fully solves the task, and a reply a busy human understands in one read…
tanstack/ai · .grok/skills/ponytail/SKILL.md · Forces the laziest solution that actually works, simplest, shortest, most minimal. Channels a senior dev who has seen…
tanstack/ai · .agents/skills/ponytail/SKILL.md · Forces the laziest solution that actually works, simplest, shortest, most minimal. Channels a senior dev who has seen…
tanstack/ai · .claude/skills/ponytail/SKILL.md · Forces the laziest solution that actually works, simplest, shortest, most minimal. Channels a senior dev who has seen…
kunolu/640-skills · sbtd-workflow-onboard/assets/external-skills/stable/skills/ponytail/SKILL.md · Forces the laziest solution that actually works, simplest, shortest, most minimal. Channels a senior dev who has seen…
mxyhi/ok-skills · ponytail/SKILL.md · Lazy senior dev mode: the smallest change that fully solves the task, and a reply a busy human understands in one read…