From aac908809125086b8adb3adf8d31c94e9e81b75f Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 7 May 2026 12:05:35 +0300 Subject: [PATCH] =?UTF-8?q?fix(project-bootstrap):=20v1.10.1=20=E2=80=94?= =?UTF-8?q?=20add=20missing=20tdd-criteria=20+=20recommend-dont-menu=20to?= =?UTF-8?q?=20CLAUDE.md=20template=20+=20prose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: v1.10.0 bump + Step 5.6 map added these 2 canonical triggers, but the CLAUDE.md template literal (lines 339-342) and corresponding prose paragraphs were not updated. Symptoms: upgrade-mode on repos missing these 2 triggers detected "already canon" and skipped insertion, leaving gaps. Fix: - Template: added `follow tdd-criteria` after `follow project discipline`, added `recommend, don't menu` after `delegate to interns when allowed` - Prose: added 2 new paragraphs describing each trigger with install hints - Version: 1.10.0 → 1.10.1 (PATCH — completing what 1.10.0 claimed) Co-Authored-By: Claude Opus 4.7 (1M context) --- dist/project-bootstrap.skill | Bin 11757 -> 12138 bytes skills/project-bootstrap/SKILL.md | 20 +++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/dist/project-bootstrap.skill b/dist/project-bootstrap.skill index 4d209aa07dfcf7d0c6c343c05529136990eabbd6..c725bc6a67052471cdcf782af15673368c338599 100644 GIT binary patch delta 8941 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 diff --git a/skills/project-bootstrap/SKILL.md b/skills/project-bootstrap/SKILL.md index 3d5062e..c8c9fae 100644 --- a/skills/project-bootstrap/SKILL.md +++ b/skills/project-bootstrap/SKILL.md @@ -1,6 +1,6 @@ --- name: project-bootstrap -version: 1.10.0 +version: 1.10.1 description: > Initializes or upgrades a project in the current folder: git, .gitignore, README.md, .wiki/ using Karpathy's method, .tasks/ for task tracking, CLAUDE.md with skill triggers. @@ -338,7 +338,9 @@ use task management system check across all projects pull remote before work follow project discipline +follow tdd-criteria delegate to interns when allowed +recommend, don't menu we're on Windows ``` @@ -365,6 +367,14 @@ push only after explicit per-session approval. Install the skill on the host if `project-discipline` is not in `~/.claude/skills/`; otherwise the trigger is silently dead like any other absent skill. +The `follow tdd-criteria` line activates the `tdd-criteria` skill, which enforces +test-driven development by default with four bright-line carve-outs (visual CSS, +spike exploration, oneshot scripts, pure wrappers) and four anti-loophole rules +(including test-immutability: modifying assertions requires a `[test-modify: ...]` +marker in the commit subject). Full rationale at `.wiki/concepts/tdd-criteria-design.md` +in the `claude-skills` repo. Install the skill on the host if `tdd-criteria` is not +in `~/.claude/skills/`; otherwise the trigger is silently dead like any other absent skill. + The `delegate to interns when allowed` line activates the `using-interns` skill, which lets Claude offload predictable bulk I/O and summarization tasks (reading 3+ files, distilling long transcripts) to cheap intern LLMs via the @@ -378,6 +388,14 @@ server is registered — install via `setup-interns` on a fresh machine if `mcp__interns__*` tools are missing. Full design at `.wiki/concepts/interns-design.md` in the `claude-skills` repo. +The `recommend, don't menu` line activates the `recommend-dont-menu` skill, +which overrides the default `superpowers:brainstorming` behavior: in design +discussions, architecture reviews, or "what should we do" questions, the agent +gives **one argued recommendation with explicit trade-offs**, not a multiple- +choice menu. User instructions always take precedence over skill defaults. +Install the skill on the host if `recommend-dont-menu` is not in `~/.claude/skills/`; +otherwise the trigger is silently dead like any other absent skill. + The `we're on Windows` line activates the `active-platform` skill and pins the project's default platform to Windows / PowerShell — so generated commands and README quick-starts use PS-native syntax. Bootstrapping on a Linux or macOS