From 68fe9a8c1c554b0208742ad26a80dec2cb33c954 Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 30 Apr 2026 15:06:06 +0300 Subject: [PATCH] =?UTF-8?q?feat(project-bootstrap):=20v1.3.0=20=E2=80=94?= =?UTF-8?q?=20idempotent=20CLAUDE.md=20merge=20on=20upgrade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Step 5 was binary on upgrade (append whole template / leave alone), so projects bootstrapped before v1.2.0 silently missed new canonical triggers (`check across all projects`, `we're on Windows`) on re-run. Now upgrade reads existing CLAUDE.md, substring-diffs vs template, preserves a deliberately-pinned platform line, and appends only missing lines after explicit confirm. Re-runs are no-ops. Co-Authored-By: Claude Opus 4.7 (1M context) --- .tasks/STATUS.md | 8 +++ .tasks/bootstrap-claude-md-merge.md | 53 ++++++++++++++++++++ .wiki/concepts/bootstrap-claude-md-merge.md | 49 ++++++++++++++++++ .wiki/index.md | 1 + .wiki/log.md | 1 + README.md | 5 +- README.ru.md | 6 ++- dist/project-bootstrap.skill | Bin 7902 -> 8573 bytes skills/project-bootstrap/README.md | 2 +- skills/project-bootstrap/SKILL.md | 39 ++++++++++++-- 10 files changed, 156 insertions(+), 8 deletions(-) create mode 100644 .tasks/bootstrap-claude-md-merge.md create mode 100644 .wiki/concepts/bootstrap-claude-md-merge.md diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index b9e2339..9de365a 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,6 +1,14 @@ # Task Board _Updated: 2026-04-30_ +## 🟢 [bootstrap-claude-md-merge] — project-bootstrap upgrade: idempotent merge of canonical CLAUDE.md triggers +**Status:** done +**Where I stopped:** Step 5 in `skills/project-bootstrap/SKILL.md` split into Init / Upgrade-merge — upgrade reads existing CLAUDE.md, substring-diffs vs template (case-insensitive trim), platform line preserved if user pinned a non-host platform, asks confirm with diff, appends only missing canonical lines; version bump 1.2.0 → 1.3.0; skill row in `skills/project-bootstrap/README.md` updated to note idempotent merge; root `README.md` + `README.ru.md` upgrade-mode paragraph extended; reinstalled to `~/.claude/skills/project-bootstrap/`, `dist/project-bootstrap.skill` rebuilt; concept page `.wiki/concepts/bootstrap-claude-md-merge.md` written; index + log entries added +**Next action:** (none — kept until merged) +**Branch:** master + +--- +