From 9315c6cb39ddcc47501fbc9ccb96771cc85ba512 Mon Sep 17 00:00:00 2001 From: bastien Date: Sun, 27 Sep 2026 15:06:20 +0200 Subject: [PATCH] =?UTF-8?q?feat(doctrine):=20YAGNI=20decision=20ladder=20+?= =?UTF-8?q?=20shortcut=20marker=20in=20=C2=A7=20Code=20style?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Case 1 of the 6-repo review (ponytail, chisle): both rejected as plugins, the ordered ladder borrowed as 6 doctrine lines. 287 -> 293, budget 320. --- CLAUDE.global.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CLAUDE.global.md b/CLAUDE.global.md index c10df32..aa5bb4d 100644 --- a/CLAUDE.global.md +++ b/CLAUDE.global.md @@ -9,6 +9,12 @@ Apply unless repo-specific instructions override. - One responsibility per function/method. - Preserve existing behavior unless asked. - Scope changes to task — no unrelated edits. +- Before writing code, stop at the first rung that applies: not needed + (YAGNI) → reuse what the codebase has → stdlib → platform/runtime + feature → dependency already installed → one line → the minimum that + works. Runs after understanding the problem, never instead of it. +- Assumed shortcut → `shortcut:` comment at the site (limit + upgrade + path), harvested into TODO.md so "later" stays findable. ## Limits (adapt to language) - Max 25 logic lines/function (executable statements; comments and