From b12039720d2781e939a2fc597d40ba8b97237e73 Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 30 Apr 2026 01:02:06 +0300 Subject: [PATCH] =?UTF-8?q?feat(project-bootstrap):=20v1.2.0=20=E2=80=94?= =?UTF-8?q?=20auto-load=20using-projects-meta=20in=20bootstrapped=20projec?= =?UTF-8?q?ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CLAUDE.md template gains a fifth trigger line, `check across all projects` (verbatim phrase from `using-projects-meta` description). Every new or upgraded project now auto-loads cross-project task aggregation and shared projects-wiki access without an explicit verbal trigger. No Step 5.7 mirror of Step 5.6 (superpowers plugin recommendation): `using-projects-meta` Prerequisites already self-corrects to `setup-projects-meta` when MCP tools are missing. Synced: assets/CLAUDE.md.template, inline copy in SKILL.md (Step 5), README.md + README.ru.md trigger lists, this repo's local CLAUDE.md, dist/project-bootstrap.skill, .wiki/concepts/projects-meta-skills.md (Bootstrap trigger section), .wiki/log.md. Co-Authored-By: Claude Opus 4.7 (1M context) --- .tasks/STATUS.md | 8 +++++ .tasks/bootstrap-projects-meta-trigger.md | 30 ++++++++++++++++++ .wiki/concepts/projects-meta-skills.md | 14 ++++++++ .wiki/log.md | 1 + CLAUDE.md | 1 + README.md | 2 +- README.ru.md | 2 +- dist/project-bootstrap.skill | Bin 7744 -> 7902 bytes skills/project-bootstrap/SKILL.md | 9 +++++- .../assets/CLAUDE.md.template | 1 + 10 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 .tasks/bootstrap-projects-meta-trigger.md diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index e9ed901..5f86051 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -14,6 +14,14 @@ _Updated: 2026-04-30_ 🔵 Blocked — waiting on external input --> +## 🟢 [bootstrap-projects-meta-trigger] — project-bootstrap CLAUDE.md template gains `check across all projects` +**Status:** done +**Where I stopped:** template + inline SKILL.md copy patched, version bumped 1.1.0→1.2.0; both READMEs and local CLAUDE.md synced; skill reinstalled to `~/.claude/skills/project-bootstrap/`, `dist/project-bootstrap.skill` rebuilt; concept extension added to `.wiki/concepts/projects-meta-skills.md`; log entry written; verified installed `version: 1.2.0` and template carries the new line +**Next action:** (none — kept until merged) +**Branch:** master + +--- + ## 🟢 [bootstrap-recommend-superpowers] — project-bootstrap recommends superpowers plugin if missing **Status:** done **Where I stopped:** Step 5.6 added to `skills/project-bootstrap/SKILL.md` (read `~/.claude/plugins/installed_plugins.json`, print install command + upstream link if `superpowers@claude-plugins-official` key missing); version bumped 1.0.0 → 1.1.0; README workflow numbering updated; skill reinstalled to `~/.claude/skills/project-bootstrap/` and `dist/project-bootstrap.skill` rebuilt; log entry added diff --git a/.tasks/bootstrap-projects-meta-trigger.md b/.tasks/bootstrap-projects-meta-trigger.md new file mode 100644 index 0000000..2d7a3b2 --- /dev/null +++ b/.tasks/bootstrap-projects-meta-trigger.md @@ -0,0 +1,30 @@ +# bootstrap-projects-meta-trigger + +## Goal +Add `check across all projects` to the CLAUDE.md template that `project-bootstrap` writes to every project, so the `using-projects-meta` skill auto-loads in every bootstrapped repo (current set already had four triggers — `talk like a caveman`, `use superpowers`, `use project wiki`, `use task management system`, plus `we're on Windows`). Bumps `project-bootstrap` 1.1.0 → 1.2.0 (additive default-artifact change). + +## Key files +- `skills/project-bootstrap/assets/CLAUDE.md.template` — the file actually copied into bootstrapped projects +- `skills/project-bootstrap/SKILL.md` — inline copy of the same template (must stay in sync) + version frontmatter +- `README.md` / `README.ru.md` — the "Using skills in projects" section enumerates the trigger list +- `CLAUDE.md` (this repo) — local instance must also gain the line so the trigger fires here too +- `dist/project-bootstrap.skill` — packaged artifact, rebuilt from the source tree + +## Decisions log +- 2026-04-30: trigger phrase = `check across all projects` — buffer-direct quote from `using-projects-meta` description, matches existing imperative style of other lines (`use X`, `talk like X`). +- 2026-04-30: not adding a Step 5.7 mirror of Step 5.6 (recommend `setup-projects-meta`) — out of scope for this task. Trigger fires `using-projects-meta` whose Prerequisites already point at `setup-projects-meta` if MCP tools are missing. Open question for follow-up. + +## Open questions +- [ ] Should `project-bootstrap` also detect missing `mcp__projects-meta__*` tools and recommend `setup-projects-meta` (analogous to Step 5.6 for superpowers)? Defer until we see a fresh-machine bootstrap miss the dependency. + +## Completed steps +- [x] task entry created +- [x] `skills/project-bootstrap/assets/CLAUDE.md.template` — added `check across all projects` between `use task management system` and `we're on Windows` +- [x] `skills/project-bootstrap/SKILL.md` — inline template at Step 5 synced; explanatory paragraph added; `version: 1.1.0 → 1.2.0` +- [x] `README.md` + `README.ru.md` — trigger list in "Using skills in projects" / "Использование в проектах" updated +- [x] `CLAUDE.md` (this repo) — local instance gained the new line so the trigger fires here +- [x] `bash scripts/install.sh project-bootstrap` — reinstalled to `~/.claude/skills/project-bootstrap/` +- [x] `bash scripts/build.sh project-bootstrap` — `dist/project-bootstrap.skill` rebuilt +- [x] verified: installed `version: 1.2.0`, template content matches +- [x] `.wiki/concepts/projects-meta-skills.md` — appended "Bootstrap trigger (project-bootstrap@1.2.0)" section explaining choice of phrase + non-decision on Step 5.7 +- [x] `.wiki/log.md` — `decision` entry added diff --git a/.wiki/concepts/projects-meta-skills.md b/.wiki/concepts/projects-meta-skills.md index 010a49a..bdf9528 100644 --- a/.wiki/concepts/projects-meta-skills.md +++ b/.wiki/concepts/projects-meta-skills.md @@ -84,3 +84,17 @@ Why: `projects-meta` is a bus between machines. Another host can push minutes ag ## Round-trip note The task `[projects-meta-skills]` was created on a different machine (`OpeItcLoc03@DESKTOP-NSEF0UK`) via `mcp__projects-meta__tasks_create target_project=claude-skills`. Closing it on this machine via `mcp__projects-meta__tasks_close target_project=claude-skills slug=projects-meta-skills` round-trips back to the same Gitea board — both sides see the 🟢 done state. First end-to-end multi-machine task lifecycle in the fleet. + +## Bootstrap trigger (project-bootstrap@1.2.0) + +The CLAUDE.md template that `project-bootstrap` writes to every new (or upgraded) project gained a fifth trigger line: + +``` +check across all projects +``` + +This loads `using-projects-meta` automatically in every bootstrapped repo so cross-project task aggregation and the shared `projects-wiki` are reachable without an explicit verbal trigger. + +The phrase is a verbatim quote from `using-projects-meta`'s `description:` triggers — guaranteed match against the harness's keyword index, no fuzzy matching required. + +The trigger is a **no-op** when `mcp__projects-meta__*` tools aren't registered in the session. On a fresh machine, `setup-projects-meta` provides the install path; `using-projects-meta`'s Prerequisites already redirects there. We deliberately did **not** add a Step 5.7 mirror of Step 5.6 (the `superpowers` plugin recommendation) for `projects-meta` — the wiring is already self-correcting via the Prerequisites pointer, and bootstrap shouldn't grow a recommendation block per skill. If fresh-machine bootstraps start silently failing the dependency check, revisit. diff --git a/.wiki/log.md b/.wiki/log.md index a989b0d..e57c84f 100644 --- a/.wiki/log.md +++ b/.wiki/log.md @@ -34,3 +34,4 @@ Parseable: `grep "^## \[" .wiki/log.md | tail -20`. ## [2026-04-28] decision | project-bootstrap@1.1.0 — added Step 5.6: detects `superpowers@claude-plugins-official` via `~/.claude/plugins/installed_plugins.json` and prints install command + upstream link if missing; chat-only, never auto-installs (slash commands aren't callable from a skill, and silent plugin install is overreach) ## [2026-04-28] doc | README.md + README.ru.md — new "Using skills in projects" / "Использование в проектах" section after install quick-start; describes project-bootstrap workflow (git, .gitignore, README, .wiki/, .tasks/, CLAUDE.md, manifest, superpowers-plugin check) and the init/upgrade modes ## [2026-04-30] refactor | project-bootstrap re-run on this repo (upgrade mode) — setup-wiki noop, setup-tasks noop, CLAUDE.md unchanged (matches template), bootstrap-manifest.md written: project-bootstrap@1.1.0 / setup-wiki@1.0.0 / setup-tasks@1.0.0 +## [2026-04-30] decision | project-bootstrap@1.2.0 — CLAUDE.md template gains `check across all projects` (verbatim trigger from using-projects-meta description); installs auto-load cross-project tasks + shared-wiki access in every bootstrapped repo; no Step 5.7 dependency-check mirror — Prerequisites pointer in using-projects-meta is self-correcting; local CLAUDE.md, both READMEs, dist/.skill, projects-meta-skills concept page synced diff --git a/CLAUDE.md b/CLAUDE.md index b984a6c..83a0c8b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,4 +5,5 @@ talk like a caveman use superpowers use project wiki use task management system +check across all projects we're on Windows diff --git a/README.md b/README.md index 97876d7..b5cbcc5 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ project's folder and it will, in one pass: - create a starter `README.md` - lay out `.wiki/` per the [Karpathy LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) (delegated to [`setup-wiki`](skills/setup-wiki/)) - lay out `.tasks/` with the canonical task board (delegated to [`setup-tasks`](skills/setup-tasks/)) -- write `CLAUDE.md` with skill triggers (`use superpowers`, `use project wiki`, `use task management system`, `we're on Windows`) +- write `CLAUDE.md` with skill triggers (`use superpowers`, `use project wiki`, `use task management system`, `check across all projects`, `we're on Windows`) - record the skill versions used in `.wiki/concepts/bootstrap-manifest.md` so cross-project layout drift stays debuggable - check whether the official `superpowers@claude-plugins-official` plugin is installed and, if not, print the install command — the `use superpowers` trigger is a no-op without it diff --git a/README.ru.md b/README.ru.md index 3074f83..e6b22d5 100644 --- a/README.ru.md +++ b/README.ru.md @@ -38,7 +38,7 @@ bash scripts/install.sh caveman wiki-maintainer - создаст стартовый `README.md` - развернёт `.wiki/` по [паттерну Karpathy LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) (делегируется в [`setup-wiki`](skills/setup-wiki/)) - развернёт `.tasks/` с канонической доской задач (делегируется в [`setup-tasks`](skills/setup-tasks/)) -- запишет `CLAUDE.md` со скилл-триггерами (`use superpowers`, `use project wiki`, `use task management system`, `we're on Windows`) +- запишет `CLAUDE.md` со скилл-триггерами (`use superpowers`, `use project wiki`, `use task management system`, `check across all projects`, `we're on Windows`) - зафиксирует версии использованных скиллов в `.wiki/concepts/bootstrap-manifest.md`, чтобы дрифт раскладки между проектами оставался отлаживаемым - проверит, установлен ли официальный плагин `superpowers@claude-plugins-official`, и если нет — выведет команду установки (без плагина триггер `use superpowers` мёртвый) diff --git a/dist/project-bootstrap.skill b/dist/project-bootstrap.skill index 5a9a2c5636510f0627ee6e44fa5988ad6d7883d0..6f47436c9ed1ece4ced43cc0e58d10dcb9c021e0 100644 GIT binary patch delta 5240 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 delta 5073 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 n04o3h00000000000000K9FsvF8 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. @@ -233,9 +233,16 @@ talk like a caveman use superpowers use project wiki use task management system +check across all projects we're on Windows ``` +The `check across all projects` line activates the `using-projects-meta` skill +so cross-project task aggregation and the shared `projects-wiki` are available +without an explicit verbal trigger. The skill is a no-op until the +`projects-meta-mcp` server is registered — install via `setup-projects-meta` +on a fresh machine if `mcp__projects-meta__*` tools are missing. + 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 diff --git a/skills/project-bootstrap/assets/CLAUDE.md.template b/skills/project-bootstrap/assets/CLAUDE.md.template index b984a6c..83a0c8b 100644 --- a/skills/project-bootstrap/assets/CLAUDE.md.template +++ b/skills/project-bootstrap/assets/CLAUDE.md.template @@ -5,4 +5,5 @@ talk like a caveman use superpowers use project wiki use task management system +check across all projects we're on Windows