meta(tasks): create [meta-isolation-bootstrap-skill-update] in OpeItcLoc03/claude-skills
This commit is contained in:
@@ -723,3 +723,48 @@ Pattern для починки уже отработан в `setup-projects-meta`
|
|||||||
<!-- closed-by: OpeItcLoc03@DESKTOP-NSEF0UK / 2026-05-09T17:57:52.379Z / note: SKILL.md already reflects multi-owner schema (gitea_owners array, agenda_tasks_repo qualified, backwards-compat note) -->
|
<!-- closed-by: OpeItcLoc03@DESKTOP-NSEF0UK / 2026-05-09T17:57:52.379Z / note: SKILL.md already reflects multi-owner schema (gitea_owners array, agenda_tasks_repo qualified, backwards-compat note) -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## ⚪ [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/<name>` (или `%TEMP%\<name>`):
|
||||||
|
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
|
||||||
|
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-05-10T11:04:56.068Z -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user