From e566df4303dfa3b00a061914c72525115bf1c6f9 Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 7 May 2026 09:08:43 +0300 Subject: [PATCH] feat(project-bootstrap): add tdd-criteria to canonical triggers [v1.10.0] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add "follow tdd-criteria" to assets/CLAUDE.md.template - Add row to Step 5.6 trigger→fulfiller map - Bump 1.9.0 → 1.10.0 (MINOR — new canonical trigger) Co-Authored-By: Claude Opus 4.7 (1M context) --- dist/project-bootstrap.skill | Bin 11722 -> 11757 bytes skills/project-bootstrap/SKILL.md | 3 ++- .../assets/CLAUDE.md.template | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dist/project-bootstrap.skill b/dist/project-bootstrap.skill index b0fa7523b2ac08c25c83045559ce23a0e5b78b39..4d209aa07dfcf7d0c6c343c05529136990eabbd6 100644 GIT binary patch delta 8728 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 Cch^b) delta 8704 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 diff --git a/skills/project-bootstrap/SKILL.md b/skills/project-bootstrap/SKILL.md index 16183f8..3d5062e 100644 --- a/skills/project-bootstrap/SKILL.md +++ b/skills/project-bootstrap/SKILL.md @@ -1,6 +1,6 @@ --- name: project-bootstrap -version: 1.9.0 +version: 1.10.0 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. @@ -443,6 +443,7 @@ Mismatch between template and map → silent gaps in the recommendation. | `check across all projects` | `using-projects-meta` | skill | `~/.claude/skills/using-projects-meta/SKILL.md` | `bash scripts/install.sh using-projects-meta` | | `pull remote before work` | `pulling-before-work` | skill | `~/.claude/skills/pulling-before-work/SKILL.md` | `bash scripts/install.sh pulling-before-work` | | `follow project discipline` | `project-discipline` | skill | `~/.claude/skills/project-discipline/SKILL.md` | `bash scripts/install.sh project-discipline` | +| `follow tdd-criteria` | `tdd-criteria` | skill | `~/.claude/skills/tdd-criteria/SKILL.md` | `bash scripts/install.sh tdd-criteria` | | `delegate to interns when allowed` | `using-interns` | skill | `~/.claude/skills/using-interns/SKILL.md` | `bash scripts/install.sh using-interns` | | `recommend, don't menu` | `recommend-dont-menu` | skill | `~/.claude/skills/recommend-dont-menu/SKILL.md` | `bash scripts/install.sh recommend-dont-menu` | | `we're on Windows` / `we're on Linux` / `we're on macOS` | `active-platform` | skill | `~/.claude/skills/active-platform/SKILL.md` | `bash scripts/install.sh active-platform` | diff --git a/skills/project-bootstrap/assets/CLAUDE.md.template b/skills/project-bootstrap/assets/CLAUDE.md.template index 4275136..829cbb7 100644 --- a/skills/project-bootstrap/assets/CLAUDE.md.template +++ b/skills/project-bootstrap/assets/CLAUDE.md.template @@ -8,6 +8,7 @@ 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