From 8593490a4ba94e7df41d6139e9bd87ab17ee811c Mon Sep 17 00:00:00 2001 From: OpeItcLoc03 Date: Sun, 10 May 2026 11:05:00 +0000 Subject: [PATCH] meta(tasks): create [meta-isolation-bootstrap-skill-update] in OpeItcLoc03/claude-skills --- .tasks/STATUS.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 423e023..1d9137b 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -723,3 +723,48 @@ Pattern для починки уже отработан в `setup-projects-meta` --- + +## ⚪ [meta-isolation-bootstrap-skill-update] — Обновить `project-bootstrap` skill чтобы для своих новых проектов он создавал локальный `.gitignore` с `!`-инверсиями мета-путей. Без обновления любой новый bootstrap'нутый проект ломается сразу: `.tasks/`, `.wiki/`, `.claude/` создаются, но git их не видит из-за глобального `core.excludesFile`, и в первый коммит они не попадают. + +**Источник:** `.workshop/.wiki/concepts/meta-out-of-repo.md` — секции «Слой 2» и «Новые проекты». + +**Что добавить в скил `project-bootstrap`:** + +При создании / upgrade своего нового проекта (greenfield mode), после `git init` и до первого `git add`, создать или дополнить локальный `.gitignore` блоком: + +``` +# AI обвеска — слой 2: переопределяем глобальный ~/.config/git/ignore +# для своих репо (см. global wiki concept meta-out-of-repo) +!.claude/ +!.tasks/ +!.wiki/ +!.brainstorm/ +!.archive/ +!.mcp/ +!.mcp.json +!MEMORY.md +``` + +**Кейсы:** +- Greenfield новый свой проект → класть блок безусловно. +- Upgrade существующего своего проекта (репо уже есть) → проверить, есть ли блок; если нет — append; если есть — skip. +- Bootstrap внутри форка чужого репо → **не класть** (если такой режим вообще нужен — обсудить отдельно). По concept'у: «Слой 2 только для своих». + +**Версия:** bump MINOR по правилу `project-discipline` Rule 3 (новая фича, обратно совместимо). Записать в commit message. + +**Сопутствующие скилы для проверки:** `setup-tasks`, `setup-wiki`, `setup-projects-meta` — тоже могут трогать `.gitignore` или ожидать что мета-пути видны git'у. Если они сейчас работают «и так» — апдейт в них не нужен; если падают на untracked мета-путях — починить вместе с этим. + +**Acceptance:** после bootstrap'а тестового greenfield-проекта в `/tmp/` (или `%TEMP%\`): +1. `.gitignore` содержит блок инверсий +2. `touch .tasks/_smoke.md && git status` показывает файл как untracked (а не скрытым) +3. Первый коммит включает `.tasks/`, `.wiki/`, `.claude/` файлы созданные скилом + +**Не делать:** не клади инверсии безусловно, без проверки что цель — свой репо. В чужих форках это потенциально создаст расхождение с upstream'ом (новый файл в `.gitignore`). Если bootstrap отрабатывает только для своих новых проектов — этот edge-case не релевантен; уточнить в коде скила. + +**Status:** ready +**Where I stopped:** (not started) +**Next action:** Прочитать текущий `project-bootstrap` SKILL.md (`~/projects/claude-skills/skills/project-bootstrap/SKILL.md`) чтобы понять структуру шагов и где встроить запись `.gitignore`. Добавить шаг после `git init`. MINOR-bump в frontmatter version. Тестовый run на greenfield: `mkdir /tmp/test-bootstrap && cd /tmp/test-bootstrap && /project-bootstrap` (или эквивалент через агента) → проверить acceptance. Коммит: `feat(skills): project-bootstrap adds local meta-paths inversions for own projects`. +**Branch:** n/a + + +---