From f281049ca681c514cdf947eb0514b3dc6dab7015 Mon Sep 17 00:00:00 2001 From: Alex Ant Date: Sat, 28 Mar 2026 15:00:39 +0500 Subject: [PATCH] fix paths and installation --- bmad-c9s/CLAUDE.md | 44 +-- bmad-c9s/README.md | 8 +- bmad-c9s/commands/_README.md | 4 +- bmad-c9s/commands/architecture.md | 2 +- bmad-c9s/commands/brainstorm.md | 2 +- .../commands/c9s-monorepo-component-git.md | 2 +- bmad-c9s/commands/c9s-push-results.md | 2 +- bmad-c9s/commands/c9s-submit-for-review.md | 2 +- bmad-c9s/commands/create-agent.md | 2 +- bmad-c9s/commands/create-story.md | 4 +- bmad-c9s/commands/create-ux-design.md | 2 +- bmad-c9s/commands/create-workflow.md | 2 +- bmad-c9s/commands/dev-story.md | 4 +- bmad-c9s/commands/prd.md | 2 +- bmad-c9s/commands/product-brief.md | 2 +- bmad-c9s/commands/research.md | 2 +- bmad-c9s/commands/solutioning-gate-check.md | 2 +- bmad-c9s/commands/sprint-planning.md | 2 +- bmad-c9s/commands/tasks-documents-time.md | 4 +- bmad-c9s/commands/tech-spec.md | 2 +- bmad-c9s/six-thinking-hats-tutorial.md | 2 +- bmad-c9s/skills/bmb/builder/SKILL.md | 8 +- bmad-c9s/skills/bmm/analyst/SKILL.md | 12 +- bmad-c9s/skills/bmm/architect/SKILL.md | 12 +- bmad-c9s/skills/bmm/developer/SKILL.md | 12 +- bmad-c9s/skills/bmm/pm/SKILL.md | 12 +- bmad-c9s/skills/bmm/scrum-master/SKILL.md | 8 +- bmad-c9s/skills/bmm/ux-designer/SKILL.md | 10 +- .../skills/cis/creative-intelligence/SKILL.md | 12 +- bmad-c9s/skills/core/bmad-master-c9s/SKILL.md | 14 +- .../skills/core/c9s-master-review/SKILL.md | 2 +- .../core/c9s-monorepo-component-git/SKILL.md | 4 +- .../skills/core/c9s-results-push/SKILL.md | 6 +- .../core/c9s-submit-for-review/SKILL.md | 8 +- bmad-c9s/templates/issue.template.md | 2 +- bmad-c9s/templates/story.template.md | 2 +- bmad-c9s/utils/helpers-ru.md | 10 +- install-v6.ps1 | 321 ++++++++++------- install-v6.sh | 333 +++++++++--------- 39 files changed, 464 insertions(+), 422 deletions(-) diff --git a/bmad-c9s/CLAUDE.md b/bmad-c9s/CLAUDE.md index a158730..0ad19bc 100644 --- a/bmad-c9s/CLAUDE.md +++ b/bmad-c9s/CLAUDE.md @@ -6,47 +6,47 @@ - **репозиторий результатов Capital**, синхронизируемый с БД через GitHub (`project` / `issue` / `story` в канонических путях); - **разделение канона Capital и операционки BMAD**: в **`{base}/.c9s/`** — только статусы воркфлоу и служебные YAML; **вся** продуктовая проза (бриф, PRD, исследования, техспека, UX) — как **требования (story)** в **`{base}/requirements/*.md`** (см. FORMAT). -Источник методологии v6 (англ.): каталог `bmad-v6/` в этом репозитории — **не править** как эталон; для c9s используйте скиллы из `bmad-c9s/skills/`. +Источник методологии v6 (англ.): каталог `bmad-v6/` в репозитории — **не править** как эталон. После `./install-v6.sh`: оригинальные скиллы v6 в `~/.claude/skills/bmad/`, скиллы c9s в `~/.claude/skills/bmad-c9s/`; полные тексты команд v6 копируются в `~/.claude/config/bmad/bmad-v6-bundle/commands/` (обёртки c9s в `~/.claude/commands/bmad/` ссылаются туда). Верхний приоритет сценария и артефактов — **c9s** ([FORMAT](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md), этот файл). --- ## Как подключать скиллы (Cursor / Claude Code) -Копируйте или симлинкуйте нужные `SKILL.md` в каталог скиллов редактора (см. документацию Cursor Skills). Минимальный набор: +После `./install-v6.sh` скиллы уже лежат под `~/.claude/skills/bmad/` (v6) и `~/.claude/skills/bmad-c9s/` (c9s). В Cursor можно дополнительно симлинковать из репозитория — см. документацию Skills. Минимальный набор для Coopenomics: | Скилл | Когда включать | |--------|----------------| | `bmad-master-c9s` | Старт сессии, маршрутизация по фазам, инициализация `.c9s/` | | `c9s-master-review` | Только роль «мастер»: перевод задачи `on_review` → `done` | | `c9s-submit-for-review` | **Только по команде оператора:** задача → `on_review` + commit/push в results | -| `c9s-results-push` | **Опционально:** явный commit/push; **базово** — автофиксация по [GIT-COMMITS-POLICY](docs/GIT-COMMITS-POLICY.md) | +| `c9s-results-push` | **Опционально:** явный commit/push; **базово** — автофиксация по [GIT-COMMITS-POLICY](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) | | `c9s-monorepo-component-git` | Монорепо: ветки `component/…` от `dev`, merge в `dev` по команде; хэш в `results_commits.yaml` **в results** (`.c9s/`, см. GIT-COMMITS-POLICY §2.4) | | Роли BMM / CIS / builder | По фазе задачи (см. таблицу ниже) | -Полные пути: +После установки (репозиторий → `~/.claude/`): -- `bmad-c9s/skills/core/bmad-master-c9s/SKILL.md` -- `bmad-c9s/skills/core/c9s-master-review/SKILL.md` -- `bmad-c9s/skills/core/c9s-submit-for-review/SKILL.md` -- `bmad-c9s/skills/core/c9s-results-push/SKILL.md` -- `bmad-c9s/skills/core/c9s-monorepo-component-git/SKILL.md` -- `bmad-c9s/skills/bmm/*/SKILL.md` -- `bmad-c9s/skills/cis/creative-intelligence/SKILL.md` -- `bmad-c9s/skills/bmb/builder/SKILL.md` +- c9s: `~/.claude/skills/bmad-c9s/core/bmad-master-c9s/SKILL.md` и остальные роли под `bmad-c9s/…` +- v6: `~/.claude/skills/bmad/core/bmad-master/SKILL.md` (оригинальный оркестратор BMAD) + +Исходники в репозитории пакета: `bmad-c9s/skills/…`, `bmad-v6/skills/…` (видны агенту **только** если в workspace открыт корень `claude-code-bmad-skills`). + +**Ссылки в скиллах:** строки вида `bmad-v6/…` — не путь к `~/.claude/`. После `./install-v6.sh` полные тексты v6 для чтения агентом: **`~/.claude/skills/bmad/…/SKILL.md`**, сценарии slash-команд (EN): **`~/.claude/config/bmad/bmad-v6-bundle/commands/*.md`**. + +**Канон Capital (FORMAT, TASKS, GIT):** после установки — **`~/.claude/config/bmad/*.md`** (те же файлы в исходниках пакета лежат в **`bmad-c9s/docs/`**). --- ## Жёсткое правило: хранилище — файлы, не чат -1. **Канон Capital** (проект, компонент, задача, требование) — только **`.md`** под `results_root`, пути из [docs/FORMAT-CAPITAL-GITHUB.md](docs/FORMAT-CAPITAL-GITHUB.md). +1. **Канон Capital** (проект, компонент, задача, требование) — только **`.md`** под `results_root`, пути из [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md). 2. **Бриф, PRD, исследование, техспека, мозговой штурм, UX на уровне продукта** — **story** в **`{base}/requirements/{slug}.md`** (`type: story`, `content_format`, `status`). Агент **ведёт** эти файлы при проработке сверху вниз. 3. **Задача** (`issues/{slug}.md`) — отдельная **dev-единица** после планирования: в **теле** файла весь контекст для **одного** сеанса выполнения (вводный промпт, краткое исследование, критерии, ссылки на `requirements/*.md` при необходимости). Подпапок `issues/…-requirements/` и отдельных story «на задачу» **нет**. 4. **`{base}/.c9s/`** — **не** для содержательных документов: только `workflow-status.yaml`, при необходимости `sprint-status.yaml` и т.п. 5. Длинные списки **не** оставлять только в чате — в **`requirements/`** или в **теле** нужного **`issues/*.md`**. 6. **Наименование требований (`requirements/*.md`) — обязательно:** поле **`title`** в frontmatter задаётся **только на русском языке**. Заголовок должен быть **чётким и понятным** (по нему сразу ясно, о чём документ). Не использовать английский как «замену смысла»: вместо голых `PRD`, `Tech spec`, `UX doc` — русские формулировки («Описание требований к …», «Техническое задание на …», «Сценарии и макеты …» и т.п.). Техническое имя файла (`storySlug`) — транслит от русского заголовка по правилам Capital (см. FORMAT). -7. **Документы и крупные шаги — только через задачи (`issues/*.md`), строго:** PRD, техспека, архитектурный документ, бриф, исследование, пакет UX и любой аналогичный шаг **не начинать** без создания **задачи** в момент старта работы; содержание — в **`requirements/*.md`** (story), процесс и критерии — в теле задачи. Подробно: [docs/TASKS-DOCUMENTS-TIME-POLICY.md](docs/TASKS-DOCUMENTS-TIME-POLICY.md). -8. **Учёт времени и `estimate`:** в задачах **`estimate: 0`**, если пользователь **явно** не указал иное. Задачу создаём и **пушим** при начале работы; в frontmatter новой задачи — **`created_by`**, **`submaster`**, **`creators`** по [TASKS-DOCUMENTS-TIME-POLICY.md](docs/TASKS-DOCUMENTS-TIME-POLICY.md) §1. Перевод в **`on_review`** — **только** по **явной команде оператора** (скилл **`c9s-submit-for-review`** или прямой запрос); агент **не** ставит **`on_review`** автоматически после своей работы. Тогда — **`updated_at`** + commit/push. Система считает фактическое время до **`on_review`**. Подробно: тот же документ §1–2. -9. **Git — репозиторий результатов:** после значимых правок агент **сам** делает **commit** и **push** (сообщения на русском). Скилл **`c9s-results-push`** — для явных отдельных операций; см. [docs/GIT-COMMITS-POLICY.md](docs/GIT-COMMITS-POLICY.md). +7. **Документы и крупные шаги — только через задачи (`issues/*.md`), строго:** PRD, техспека, архитектурный документ, бриф, исследование, пакет UX и любой аналогичный шаг **не начинать** без создания **задачи** в момент старта работы; содержание — в **`requirements/*.md`** (story), процесс и критерии — в теле задачи. Подробно: [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md). +8. **Учёт времени и `estimate`:** в задачах **`estimate: 0`**, если пользователь **явно** не указал иное. Задачу создаём и **пушим** при начале работы; в frontmatter новой задачи — **`created_by`**, **`submaster`**, **`creators`** по [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) §1. Перевод в **`on_review`** — **только** по **явной команде оператора** (скилл **`c9s-submit-for-review`** или прямой запрос); агент **не** ставит **`on_review`** автоматически после своей работы. Тогда — **`updated_at`** + commit/push. Система считает фактическое время до **`on_review`**. Подробно: тот же документ §1–2. +9. **Git — репозиторий результатов:** после значимых правок агент **сам** делает **commit** и **push** (сообщения на русском). Скилл **`c9s-results-push`** — для явных отдельных операций; см. [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md). 10. **Git — монорепозиторий кода:** без изменений — только скилл **`c9s-monorepo-component-git`**. --- @@ -57,7 +57,7 @@ 2. Ключевые поля: `results_root`, `active_project_slug` (slug корневого проекта = имя папки под `results_root`), `coopname`, `username`. 3. **Прод vs тест**: смените `results_root` на каталог с `results-test` или продовым `results`. -Подробности разрешения путей и обновления `updated_at`: [utils/helpers-ru.md](utils/helpers-ru.md). +Подробности разрешения путей и обновления `updated_at`: [helpers-ru.md](~/.claude/config/bmad/helpers-ru.md) (исходник: `bmad-c9s/utils/helpers-ru.md`). --- @@ -65,7 +65,7 @@ | Фаза | Роли (скиллы) | Куда писать | |------|----------------|-------------| -| 1 Анализ | analyst, creative-intelligence | Сначала **`issues/*.md`** на шаг, затем **`requirements/*.md`** (story); см. [TASKS-DOCUMENTS-TIME-POLICY](docs/TASKS-DOCUMENTS-TIME-POLICY.md); при необходимости — **`project.md`** / **`component.md`** + `updated_at` | +| 1 Анализ | analyst, creative-intelligence | Сначала **`issues/*.md`** на шаг, затем **`requirements/*.md`** (story); см. [TASKS-DOCUMENTS-TIME-POLICY](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md); при необходимости — **`project.md`** / **`component.md`** + `updated_at` | | 2 Планирование | pm, ux-designer | **`requirements/*.md`** + задачи **`issues/*.md`** на каждый оформляемый шаг (PRD, техспека, …) | | 3 Архитектура | architect | Задача **`issues/*.md`**, затем **`requirements/*.md`** (story / диаграммы) | | 4 Реализация | scrum-master, developer | **`issues/*.md`** (всё для задачи в теле файла), код в **монорепе**, не в results | @@ -79,20 +79,20 @@ - **`on_review`** — **не** автоматически после работы агента: только когда **оператор** явно командует передать задачу мастеру (**`c9s-submit-for-review`** / «отправь на ревью»). До этого задача остаётся в **`in_progress`** (или **`todo`**). - Скилл **`c9s-master-review`** может перевести **`on_review` → `done`** (и при необходимости откатить в `in_progress`). -Подробности и ограничения Capital при импорте: [docs/FORMAT-CAPITAL-GITHUB.md](docs/FORMAT-CAPITAL-GITHUB.md). +Подробности и ограничения Capital при импорте: [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md). --- ## Команды-обёртки -Каталог [commands/](commands/) — короткие сценарии на русском; полная логика в соответствующих скиллах и в `bmad-v6/commands/` (англ.) при необходимости детализации. +Каталог [commands/](commands/) — короткие сценарии (c9s); в UI ставятся в `~/.claude/commands/bmad/`. Детальные шаги v6 (EN) — `~/.claude/config/bmad/bmad-v6-bundle/commands/` после установки, либо `bmad-v6/commands/` в репозитории. --- ## Git (результаты и код) -- Коммиты/push, задачи и время: [docs/GIT-COMMITS-POLICY.md](docs/GIT-COMMITS-POLICY.md), [docs/TASKS-DOCUMENTS-TIME-POLICY.md](docs/TASKS-DOCUMENTS-TIME-POLICY.md) -- Журнал merge → `dev` для взносов (ручной учёт для кооператива): шаблон [templates/results_commits.template.yaml](templates/results_commits.template.yaml) → **`results_commits.yaml` в репозитории результатов** (по умолчанию **`.c9s/results_commits.yaml`** у активного проекта или путь **`results_commits_log`** в `c9s-config.yaml`); **не** в монорепозитории кода — см. [docs/GIT-COMMITS-POLICY.md](docs/GIT-COMMITS-POLICY.md) §2.4 +- Коммиты/push, задачи и время: [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md), [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) +- Журнал merge → `dev` для взносов (ручной учёт для кооператива): шаблон [templates/results_commits.template.yaml](templates/results_commits.template.yaml) → **`results_commits.yaml` в репозитории результатов** (по умолчанию **`.c9s/results_commits.yaml`** у активного проекта или путь **`results_commits_log`** в `c9s-config.yaml`); **не** в монорепозитории кода — см. [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) §2.4 ## Ссылки на код монорепозитория (Coopenomics) diff --git a/bmad-c9s/README.md b/bmad-c9s/README.md index ffe481f..95d4aad 100644 --- a/bmad-c9s/README.md +++ b/bmad-c9s/README.md @@ -43,7 +43,7 @@ 1. **Установите скиллы и команды** из корня репозитория `claude-code-bmad-skills`: - macOS/Linux: `./install-v6.sh` - Windows: `.\install-v6.ps1` - В `~/.claude/` появятся `skills/bmad/`, `commands/bmad/`, `config/bmad/` (копия из `bmad-c9s/`). + В `~/.claude/` после `./install-v6.sh`: **v6** — `skills/bmad/`, **c9s** — `skills/bmad-c9s/`, команды-обёртки — `commands/bmad/`, конфиг и шаблоны — `config/bmad/` (в т.ч. `bmad-v6-bundle/commands/` — полные тексты команд v6). 2. **Откройте в IDE репозиторий результатов** (тот, где лежит дерево `results/` или тестовый клон) — либо сам `claude-code-bmad-skills`, если гоняете только методологию на пустой заготовке. @@ -51,7 +51,7 @@ `bmad-c9s/config/c9s-config.template.yaml` → в **корень репозитория результатов** как `c9s-config.yaml` и заполните: - `results_root` — абсолютный путь к корню клона с `results/` - `active_project_slug` — имя папки проекта первого уровня под `results/` (как в Capital) - - `coopname`, **`username`** — для новых **`issues/*.md`** в frontmatter: **`created_by`**, **`submaster`**, **`creators`** (см. [TASKS-DOCUMENTS-TIME-POLICY.md](docs/TASKS-DOCUMENTS-TIME-POLICY.md) §1) + - `coopname`, **`username`** — для новых **`issues/*.md`** в frontmatter: **`created_by`**, **`submaster`**, **`creators`** (см. [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) §1) 4. **Перезапустите Claude Code** (или Cursor с подключёнными скиллами), откройте проект с `c9s-config.yaml`. @@ -124,7 +124,7 @@ ### Сценарий D — От агента к мастеру (два шага) 1. Агент закончил черновик — задача остаётся в **`in_progress`** (оператор читает PRD, правит вручную, просит доработки и т.д.). -2. Когда оператор **готов** передать задачу мастеру: явная команда (**`/c9s-submit-for-review`**, «отправь задачу … на ревью») → агент ставит **`on_review`**, **`updated_at`**, commit/push в results ([TASKS-DOCUMENTS-TIME-POLICY.md](docs/TASKS-DOCUMENTS-TIME-POLICY.md) §2). +2. Когда оператор **готов** передать задачу мастеру: явная команда (**`/c9s-submit-for-review`**, «отправь задачу … на ревью») → агент ставит **`on_review`**, **`updated_at`**, commit/push в results ([TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) §2). 3. Мастер вызывает **`c9s-master-review`**: **`done`** или возврат в **`in_progress`**. ## Команды (slash) @@ -147,7 +147,7 @@ | Файл | Содержание | |------|------------| | [CLAUDE.md](CLAUDE.md) | Обзор пакета, таблица фаз, правила хранения | -| [docs/FORMAT-CAPITAL-GITHUB.md](docs/FORMAT-CAPITAL-GITHUB.md) | Канон путей и frontmatter | +| [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) | Канон путей и frontmatter | | [utils/helpers-ru.md](utils/helpers-ru.md) | Разрешение корня проекта, `updated_at`, hash | | [commands/_README.md](commands/_README.md) | Общие шаги перед работой по командам | diff --git a/bmad-c9s/commands/_README.md b/bmad-c9s/commands/_README.md index 67646e2..c5caa9e 100644 --- a/bmad-c9s/commands/_README.md +++ b/bmad-c9s/commands/_README.md @@ -1,11 +1,11 @@ # Команды bmad-c9s (русский) -Каждый файл — краткий сценарий. Полная методология: `bmad-v6/commands/*.md` (англ.). +Каждый файл — краткий сценарий (c9s). Полные пошаговые тексты BMAD v6 (англ.): после `./install-v6.sh` — `~/.claude/config/bmad/bmad-v6-bundle/commands/*.md`; в репозитории — `bmad-v6/commands/*.md`. Общие шаги перед работой: 1. Активируй соответствующий **скилл** из `bmad-c9s/skills/`. -2. Прочитай [docs/FORMAT-CAPITAL-GITHUB.md](../docs/FORMAT-CAPITAL-GITHUB.md), [docs/GIT-COMMITS-POLICY.md](../docs/GIT-COMMITS-POLICY.md) и [utils/helpers-ru.md](../utils/helpers-ru.md). +2. Прочитай [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md), [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) и [helpers-ru.md](~/.claude/config/bmad/helpers-ru.md) (или `helpers.md` в той же папке). 3. Пиши содержание в **файлы story** под **`requirements/`** (и `issues/` по канону); в **`.c9s/`** — только YAML/статусы воркфлоу, не брифы и не PRD. 4. Git: [c9s-push-results.md](c9s-push-results.md), [c9s-monorepo-component-git.md](c9s-monorepo-component-git.md). 5. Задачи и время: [tasks-documents-time.md](tasks-documents-time.md), передача на ревью мастеру: [c9s-submit-for-review.md](c9s-submit-for-review.md). diff --git a/bmad-c9s/commands/architecture.md b/bmad-c9s/commands/architecture.md index 65aedae..3b123db 100644 --- a/bmad-c9s/commands/architecture.md +++ b/bmad-c9s/commands/architecture.md @@ -6,4 +6,4 @@ **Выход:** `requirements/architecture-*.md` с явным `content_format` (MARKDOWN / MERMAID / …). -**Детали:** `bmad-v6/commands/architecture.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/architecture.md` diff --git a/bmad-c9s/commands/brainstorm.md b/bmad-c9s/commands/brainstorm.md index bf5c696..91bd1b8 100644 --- a/bmad-c9s/commands/brainstorm.md +++ b/bmad-c9s/commands/brainstorm.md @@ -6,4 +6,4 @@ **Выход:** **`requirements/brainstorm-{slug}.md`** (story, `content_format: MARKDOWN`) -**Детали:** `bmad-v6/commands/brainstorm.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/brainstorm.md` diff --git a/bmad-c9s/commands/c9s-monorepo-component-git.md b/bmad-c9s/commands/c9s-monorepo-component-git.md index 63b253e..a3daff8 100644 --- a/bmad-c9s/commands/c9s-monorepo-component-git.md +++ b/bmad-c9s/commands/c9s-monorepo-component-git.md @@ -4,6 +4,6 @@ Полная логика: скилл `bmad-c9s/skills/core/c9s-monorepo-component-git/SKILL.md`. -Политика: `bmad-c9s/docs/GIT-COMMITS-POLICY.md`. +Политика: `~/.claude/config/bmad/GIT-COMMITS-POLICY.md`. Прямые коммиты в `dev` **запрещены**. diff --git a/bmad-c9s/commands/c9s-push-results.md b/bmad-c9s/commands/c9s-push-results.md index f83cdba..adb143a 100644 --- a/bmad-c9s/commands/c9s-push-results.md +++ b/bmad-c9s/commands/c9s-push-results.md @@ -2,6 +2,6 @@ **Опционально:** отдельный `commit`/`push` в **репозитории результатов** по явной просьбе (особое сообщение, повторный push). -По умолчанию агент **уже** коммитит и пушит после правок — см. `bmad-c9s/docs/GIT-COMMITS-POLICY.md` §1. +По умолчанию агент **уже** коммитит и пушит после правок — см. `~/.claude/config/bmad/GIT-COMMITS-POLICY.md` §1. Скилл: `bmad-c9s/skills/core/c9s-results-push/SKILL.md`. diff --git a/bmad-c9s/commands/c9s-submit-for-review.md b/bmad-c9s/commands/c9s-submit-for-review.md index bce15b5..6cf5346 100644 --- a/bmad-c9s/commands/c9s-submit-for-review.md +++ b/bmad-c9s/commands/c9s-submit-for-review.md @@ -5,4 +5,4 @@ Не путать с «агент закончил черновик» — **`on_review`** только после **твоей** команды (прочитал PRD, проверил результат и т.д.). Скилл: `bmad-c9s/skills/core/c9s-submit-for-review/SKILL.md` -Политика: `bmad-c9s/docs/TASKS-DOCUMENTS-TIME-POLICY.md` §2. +Политика: `~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md` §2. diff --git a/bmad-c9s/commands/create-agent.md b/bmad-c9s/commands/create-agent.md index 05385e7..4a00586 100644 --- a/bmad-c9s/commands/create-agent.md +++ b/bmad-c9s/commands/create-agent.md @@ -4,4 +4,4 @@ **Цель:** описать нового агента/роль как скилл в `bmad-c9s/skills/` с русским `SKILL.md`. -**Детали:** `bmad-v6/commands/create-agent.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/create-agent.md` diff --git a/bmad-c9s/commands/create-story.md b/bmad-c9s/commands/create-story.md index 3f926ca..df00f23 100644 --- a/bmad-c9s/commands/create-story.md +++ b/bmad-c9s/commands/create-story.md @@ -4,8 +4,8 @@ **Фаза:** 2–4 -**Выход:** новый файл `requirements/{slug}.md` или `issues/{issue}-requirements/{slug}.md` по [FORMAT](../docs/FORMAT-CAPITAL-GITHUB.md); шаблон `templates/story.template.md`. +**Выход:** новый файл `requirements/{slug}.md` или `issues/{issue}-requirements/{slug}.md` по [FORMAT](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md); шаблон `templates/story.template.md`. **Обязательно:** `content_format`, `hash`, `updated_at`. -**Детали:** `bmad-v6/commands/create-story.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/create-story.md` diff --git a/bmad-c9s/commands/create-ux-design.md b/bmad-c9s/commands/create-ux-design.md index 17de187..1486925 100644 --- a/bmad-c9s/commands/create-ux-design.md +++ b/bmad-c9s/commands/create-ux-design.md @@ -6,4 +6,4 @@ **Выход:** `requirements/ux-*.md` (MARKDOWN/MERMAID), ссылки на мокапы вне results при необходимости. -**Детали:** `bmad-v6/commands/create-ux-design.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/create-ux-design.md` diff --git a/bmad-c9s/commands/create-workflow.md b/bmad-c9s/commands/create-workflow.md index 76d790a..b54e62b 100644 --- a/bmad-c9s/commands/create-workflow.md +++ b/bmad-c9s/commands/create-workflow.md @@ -4,4 +4,4 @@ **Цель:** добавить или изменить воркфлоу в пакете `bmad-c9s` (команда + скилл + ссылка на FORMAT). -**Детали:** `bmad-v6/commands/create-workflow.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/create-workflow.md` diff --git a/bmad-c9s/commands/dev-story.md b/bmad-c9s/commands/dev-story.md index c6d56a0..ed03b0b 100644 --- a/bmad-c9s/commands/dev-story.md +++ b/bmad-c9s/commands/dev-story.md @@ -4,6 +4,6 @@ **Фаза:** 4 -**Цель:** реализация в **монорепозитории**; в results — обновление связанного **`issues/*.md`** (тело, **`updated_at`**, статус **`in_progress`** при активной работе). Статус **`on_review`** агент **не** выставляет — только по команде оператора (**`/c9s-submit-for-review`**, см. `commands/c9s-submit-for-review.md` и [TASKS-DOCUMENTS-TIME-POLICY.md](../docs/TASKS-DOCUMENTS-TIME-POLICY.md) §2). **`done`** — только скилл **`c9s-master-review`**. +**Цель:** реализация в **монорепозитории**; в results — обновление связанного **`issues/*.md`** (тело, **`updated_at`**, статус **`in_progress`** при активной работе). Статус **`on_review`** агент **не** выставляет — только по команде оператора (**`/c9s-submit-for-review`**, см. `commands/c9s-submit-for-review.md` и [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) §2). **`done`** — только скилл **`c9s-master-review`**. -**Детали:** `bmad-v6/commands/dev-story.md` (канон BMAD); для статусов и времени — bmad-c9s выше. +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/dev-story.md`; для статусов и времени — правила c9s выше. diff --git a/bmad-c9s/commands/prd.md b/bmad-c9s/commands/prd.md index b53f455..e480251 100644 --- a/bmad-c9s/commands/prd.md +++ b/bmad-c9s/commands/prd.md @@ -6,4 +6,4 @@ **Выход:** PRD как **требования (story)** в **`requirements/*.md`** (`type: story`, `content_format: MARKDOWN`); при росте — несколько связанных story; затем декомпозиция в **`issues/*.md`** при необходимости. Не использовать `.c9s/` для текста PRD. -**Детали:** `bmad-v6/commands/prd.md`, шаблон логики `bmad-v6/templates/prd.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/prd.md` · шаблон: `~/.claude/config/bmad/templates/prd.md` diff --git a/bmad-c9s/commands/product-brief.md b/bmad-c9s/commands/product-brief.md index 309273c..aca3a6d 100644 --- a/bmad-c9s/commands/product-brief.md +++ b/bmad-c9s/commands/product-brief.md @@ -6,4 +6,4 @@ **Выход:** **`requirements/product-brief-{slug}.md`** (story, `content_format: MARKDOWN`); при необходимости — ключевые тезисы дублировать/сжать в теле **`project.md`** + `updated_at`. -**Детали:** `bmad-v6/commands/product-brief.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/product-brief.md` diff --git a/bmad-c9s/commands/research.md b/bmad-c9s/commands/research.md index cd8e9bb..c6819da 100644 --- a/bmad-c9s/commands/research.md +++ b/bmad-c9s/commands/research.md @@ -6,4 +6,4 @@ **Выход:** **`requirements/research-{slug}.md`** (story, `content_format: MARKDOWN`) -**Детали:** `bmad-v6/commands/research.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/research.md` diff --git a/bmad-c9s/commands/solutioning-gate-check.md b/bmad-c9s/commands/solutioning-gate-check.md index 0f35d8e..ba01817 100644 --- a/bmad-c9s/commands/solutioning-gate-check.md +++ b/bmad-c9s/commands/solutioning-gate-check.md @@ -6,4 +6,4 @@ **Выход:** чек-лист как **story** в **`requirements/gate-check-{slug}.md`** (`content_format: MARKDOWN`) со ссылками на существующие story/issues. -**Детали:** `bmad-v6/commands/solutioning-gate-check.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/solutioning-gate-check.md` diff --git a/bmad-c9s/commands/sprint-planning.md b/bmad-c9s/commands/sprint-planning.md index c39ff95..5bb1883 100644 --- a/bmad-c9s/commands/sprint-planning.md +++ b/bmad-c9s/commands/sprint-planning.md @@ -6,4 +6,4 @@ **Выход:** `.c9s/sprint-status.yaml` (шаблон `templates/sprint-status.c9s.template.yaml`), обновления `issues/*.md` (`estimate`, `status`, `updated_at`). -**Детали:** `bmad-v6/commands/sprint-planning.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/sprint-planning.md` diff --git a/bmad-c9s/commands/tasks-documents-time.md b/bmad-c9s/commands/tasks-documents-time.md index 2e90fb8..f282dbc 100644 --- a/bmad-c9s/commands/tasks-documents-time.md +++ b/bmad-c9s/commands/tasks-documents-time.md @@ -4,6 +4,6 @@ `estimate: 0` по умолчанию; старт — push задачи. **`on_review`** — **только** по команде оператора: **`/c9s-submit-for-review`** или явная формулировка (см. `commands/c9s-submit-for-review.md`). -Новая задача **`issues/*.md`:** в frontmatter — **`created_by`**, **`submaster`**, **`creators`** = **`username`** из конфига ([§1](../docs/TASKS-DOCUMENTS-TIME-POLICY.md)). +Новая задача **`issues/*.md`:** в frontmatter — **`created_by`**, **`submaster`**, **`creators`** = **`username`** из конфига ([§1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)). -Полный текст: `bmad-c9s/docs/TASKS-DOCUMENTS-TIME-POLICY.md`. +Полный текст: `~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md`. diff --git a/bmad-c9s/commands/tech-spec.md b/bmad-c9s/commands/tech-spec.md index d395f7b..744537d 100644 --- a/bmad-c9s/commands/tech-spec.md +++ b/bmad-c9s/commands/tech-spec.md @@ -6,4 +6,4 @@ **Выход:** **`requirements/tech-spec-*.md`** (story, `content_format: MARKDOWN`); уточнения и версии — правки того же или новых story, не `.c9s/`. -**Детали:** `bmad-v6/commands/tech-spec.md` +**Детали (v6, EN):** `~/.claude/config/bmad/bmad-v6-bundle/commands/tech-spec.md` diff --git a/bmad-c9s/six-thinking-hats-tutorial.md b/bmad-c9s/six-thinking-hats-tutorial.md index 2a3cb21..4209244 100644 --- a/bmad-c9s/six-thinking-hats-tutorial.md +++ b/bmad-c9s/six-thinking-hats-tutorial.md @@ -139,7 +139,7 @@ ## Связь с bmad-c9s -Итог сессии удобно оформить **задачей** `issues/*.md` и **story** в `requirements/*.md` с подзаголовками по шляпам; методика CIS — [skills/cis/creative-intelligence/SKILL.md](skills/cis/creative-intelligence/SKILL.md). Поля issue и статусы — [docs/TASKS-DOCUMENTS-TIME-POLICY.md](docs/TASKS-DOCUMENTS-TIME-POLICY.md). +Итог сессии удобно оформить **задачей** `issues/*.md` и **story** в `requirements/*.md` с подзаголовками по шляпам; методика CIS — [skills/cis/creative-intelligence/SKILL.md](skills/cis/creative-intelligence/SKILL.md). Поля issue и статусы — [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md). --- diff --git a/bmad-c9s/skills/bmb/builder/SKILL.md b/bmad-c9s/skills/bmb/builder/SKILL.md index dcd8464..132115b 100644 --- a/bmad-c9s/skills/bmb/builder/SKILL.md +++ b/bmad-c9s/skills/bmb/builder/SKILL.md @@ -10,7 +10,7 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite **Назначение:** расширять пакет **bmad-c9s** — скиллы, шаблоны, команды. -**Источник:** `bmad-v6/skills/bmb/builder/SKILL.md`, `bmad-skills/builder/` при наличии. +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/bmb/builder/SKILL.md` · опционально репозиторий `bmad-skills/builder/` при открытом пакете. --- @@ -18,9 +18,9 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite 1. Новый скилл: каталог `bmad-c9s/skills/.../SKILL.md` с YAML frontmatter (`name`, `description`, `allowed-tools`). 2. Текст **на русском**, если не оговорено иное. -3. Каждый скилл bmad-c9s, работающий с Capital, **должен ссылаться** на [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md). -4. Скиллы, которые создают или правят **`issues/*.md`**, дополнительно ссылаются на [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) **§1–2**: сначала issue, затем story в **`requirements/`**; поля **`created_by`**, **`submaster`**, **`creators`**; **`on_review`** только по команде оператора (**`c9s-submit-for-review`**). -5. Не дублировать полные главы из v6 — дай ссылку на `bmad-v6/`. +3. Каждый скилл bmad-c9s, работающий с Capital, **должен ссылаться** на [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md). +4. Скиллы, которые создают или правят **`issues/*.md`**, дополнительно ссылаются на [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) **§1–2**: сначала issue, затем story в **`requirements/`**; поля **`created_by`**, **`submaster`**, **`creators`**; **`on_review`** только по команде оператора (**`c9s-submit-for-review`**). +5. Не дублировать полные главы из v6 — укажи `~/.claude/skills/bmad/…/SKILL.md` или `bmad-v6/…` **только** если workspace — корень `claude-code-bmad-skills`. --- diff --git a/bmad-c9s/skills/bmm/analyst/SKILL.md b/bmad-c9s/skills/bmm/analyst/SKILL.md index 8d16439..662649d 100644 --- a/bmad-c9s/skills/bmm/analyst/SKILL.md +++ b/bmad-c9s/skills/bmm/analyst/SKILL.md @@ -10,14 +10,14 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite **Фаза:** 1 — Анализ. -**Источник методологии:** `bmad-v6/skills/bmm/analyst/SKILL.md` (англ., детали). +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/bmm/analyst/SKILL.md`. --- ## Документы -- Канон Capital: [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) -- [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) +- Канон Capital: [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) - Пути: [helpers-ru.md](../../../utils/helpers-ru.md) --- @@ -26,13 +26,13 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite | Артефакт | Куда | |----------|------| -| Бриф, интервью, исследование, гипотезы | **Сначала** **`issues/*.md`** на этот шаг (frontmatter: **`created_by`**, **`submaster`**, **`creators`** = `username` из конфига — иначе нет учёта времени, см. [TASKS §1](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md)), **затем** **`requirements/{slug}.md`** — `type: story`, **`content_format: MARKDOWN`**, обычно `status: pending` на время проработки | +| Бриф, интервью, исследование, гипотезы | **Сначала** **`issues/*.md`** на этот шаг (frontmatter: **`created_by`**, **`submaster`**, **`creators`** = `username` из конфига — иначе нет учёта времени, см. [TASKS §1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)), **затем** **`requirements/{slug}.md`** — `type: story`, **`content_format: MARKDOWN`**, обычно `status: pending` на время проработки | | Уточнение видения продукта | обновление тела **`project.md`** / **`component.md`** + **`updated_at`** | | Дополнительные срезы одной темы | отдельные story в **`requirements/`** (осмысленный slug), не папка `.c9s/` | -**`title`** в frontmatter каждого story — **только русский**, **чёткий понятный заголовок** ([FORMAT §2.2](../../../docs/FORMAT-CAPITAL-GITHUB.md)). +**`title`** в frontmatter каждого story — **только русский**, **чёткий понятный заголовок** ([FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)). -Декомпозицию **dev-задач на код** не задавать без PM/плана; **аналитические** задачи под бриф/исследование создаёшь **сам** в начале работы ([TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md)). +Декомпозицию **dev-задач на код** не задавать без PM/плана; **аналитические** задачи под бриф/исследование создаёшь **сам** в начале работы ([TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)). --- diff --git a/bmad-c9s/skills/bmm/architect/SKILL.md b/bmad-c9s/skills/bmm/architect/SKILL.md index aa0808b..0c86b84 100644 --- a/bmad-c9s/skills/bmm/architect/SKILL.md +++ b/bmad-c9s/skills/bmm/architect/SKILL.md @@ -10,14 +10,14 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite **Фаза:** 3 — Проектирование решения. -**Источник:** `bmad-v6/skills/bmm/architect/SKILL.md`, `commands/architecture.md`. +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/bmm/architect/SKILL.md` · сценарий команды: `~/.claude/config/bmad/bmad-v6-bundle/commands/architecture.md`. (Путь `bmad-v6/skills/…` в репозитории пакета — не работает из чужого проекта.) --- ## Документы -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) — обязательно **`content_format`** для каждого нового story -- [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) — обязательно **`content_format`** для каждого нового story +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) - [helpers-ru.md](../../../utils/helpers-ru.md) --- @@ -26,11 +26,11 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite | Содержание | Формат файла | |------------|----------------| -| Текстовая архитектура, ADR | **Сначала** задача **`issues/*.md`** («Архитектура…») с полями учёта (**`created_by`**, **`submaster`**, **`creators`**, см. [TASKS §1](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md)), **затем** `requirements/*.md`, `type: story`, **`content_format: MARKDOWN`** | -| Диаграммы компонентов / потоков | та же **задача** **`issues/*.md`** (поля учёта — [TASKS §1](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md)) или отдельная на срез, затем **`requirements/*.md`** с **`content_format: MERMAID`** / **DRAWIO** / **BPMN** | +| Текстовая архитектура, ADR | **Сначала** задача **`issues/*.md`** («Архитектура…») с полями учёта (**`created_by`**, **`submaster`**, **`creators`**, см. [TASKS §1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)), **затем** `requirements/*.md`, `type: story`, **`content_format: MARKDOWN`** | +| Диаграммы компонентов / потоков | та же **задача** **`issues/*.md`** (поля учёта — [TASKS §1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)) или отдельная на срез, затем **`requirements/*.md`** с **`content_format: MERMAID`** / **DRAWIO** / **BPMN** | | Уточнение границ и рисков | новые или обновлённые **`issues/*.md`** (статус `todo`/`in_progress`) | -**`title`** у story в **`requirements/*.md`** — **только русский**, **чёткий заголовок** ([FORMAT §2.2](../../../docs/FORMAT-CAPITAL-GITHUB.md)). +**`title`** у story в **`requirements/*.md`** — **только русский**, **чёткий заголовок** ([FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)). Тело диаграмм — в markdown под frontmatter; для BPMN/DRAWIO — XML/текст согласно ожиданиям Capital (как на рабочем столе). diff --git a/bmad-c9s/skills/bmm/developer/SKILL.md b/bmad-c9s/skills/bmm/developer/SKILL.md index 4f90e32..4215bc7 100644 --- a/bmad-c9s/skills/bmm/developer/SKILL.md +++ b/bmad-c9s/skills/bmm/developer/SKILL.md @@ -10,7 +10,7 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite, Task **Фаза:** 4 — Реализация. -**Источник:** `bmad-v6/skills/bmm/developer/SKILL.md`, `commands/dev-story.md`. +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/bmm/developer/SKILL.md` · сценарий: `~/.claude/config/bmad/bmad-v6-bundle/commands/dev-story.md`. --- @@ -25,18 +25,18 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite, Task ## Документы -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) - [helpers-ru.md](../../../utils/helpers-ru.md) -- [GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md) +- [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) - Скиллы: [c9s-results-push](../../core/c9s-results-push/SKILL.md), [c9s-monorepo-component-git](../../core/c9s-monorepo-component-git/SKILL.md), [c9s-submit-for-review](../../core/c9s-submit-for-review/SKILL.md) --- ## Git (обязательно) -- **Репозиторий результатов:** после правок — **commit + push** по [GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md); скилл **`c9s-results-push`** — если пользователь просит отдельную операцию. +- **Репозиторий результатов:** после правок — **commit + push** по [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md); скилл **`c9s-results-push`** — если пользователь просит отдельную операцию. - **Монорепозиторий кода:** **только** скилл **`c9s-monorepo-component-git`**: ветка **`component/-`** от **`dev`**, без коммитов в **`dev`** до команды на merge; после merge — запись в **`results_commits.yaml`** в **репозитории результатов** (`.c9s/` проекта), не в монорепо. -- **Задачи и время:** [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) — **`estimate: 0`**; **`on_review`** только по команде оператора (**`c9s-submit-for-review`**). После своей итерации оставляй **`in_progress`**, не ревью. +- **Задачи и время:** [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) — **`estimate: 0`**; **`on_review`** только по команде оператора (**`c9s-submit-for-review`**). После своей итерации оставляй **`in_progress`**, не ревью. --- @@ -52,7 +52,7 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite, Task ## Ограничения - Не выдумывать `hash` — для новых сущностей см. helpers. Если создаёшь **новую** **`issues/*.md`** — сразу заполни **`created_by`**, **`submaster`**, **`creators`** из **`c9s-config.yaml` → `username`** (как в [issue.template.md](../../../templates/issue.template.md)). -- Не смешивать большие логи в чат — переносить в тело **`issues/*.md`** (задача = один промпт, контекст уже там). Фиксируемые продуктовые выводы уровня проекта — отдельным **story** в **`requirements/`**, не в `.c9s/`. Если создаёте story — **`title`** только **русский**, **чёткий заголовок** ([FORMAT §2.2](../../../docs/FORMAT-CAPITAL-GITHUB.md)). +- Не смешивать большие логи в чат — переносить в тело **`issues/*.md`** (задача = один промпт, контекст уже там). Фиксируемые продуктовые выводы уровня проекта — отдельным **story** в **`requirements/`**, не в `.c9s/`. Если создаёте story — **`title`** только **русский**, **чёткий заголовок** ([FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)). --- diff --git a/bmad-c9s/skills/bmm/pm/SKILL.md b/bmad-c9s/skills/bmm/pm/SKILL.md index 5b1ce6b..c13243f 100644 --- a/bmad-c9s/skills/bmm/pm/SKILL.md +++ b/bmad-c9s/skills/bmm/pm/SKILL.md @@ -10,14 +10,14 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite **Фаза:** 2 — Планирование. -**Источник:** `bmad-v6/skills/bmm/pm/SKILL.md`, команды `prd.md`, `tech-spec.md`. +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/bmm/pm/SKILL.md` · сценарии: `~/.claude/config/bmad/bmad-v6-bundle/commands/prd.md`, `tech-spec.md`. --- ## Документы -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) -- [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) - [helpers-ru.md](../../../utils/helpers-ru.md) - Шаблоны: [templates/](../../../templates/) @@ -31,9 +31,9 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite | Эпики → задачи | **`issues/{slug}.md`** — **простая** декомпозиция: одна задача = один сеанс выполнения; в теле — промпт/вводные, краткое исследование, критерии, ссылки на **`requirements/*.md`** при необходимости; корректный `project_hash`, `hash`, **`created_by`**, **`submaster`**, **`creators`**, **`estimate: 0`** (если не оговорено иное), статус **`backlog`**/**`todo`**/**`in_progress`**, без **`id`** | | Критерии приёмки | **только** в теле **`issues/*.md`**, отдельные story «на задачу» не создавать | -У каждого story в **`requirements/*.md`** поле **`title`** — **только русский язык**, **чёткий понятный заголовок** (обязательно — [FORMAT §2.2](../../../docs/FORMAT-CAPITAL-GITHUB.md)). +У каждого story в **`requirements/*.md`** поле **`title`** — **только русский язык**, **чёткий понятный заголовок** (обязательно — [FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)). -Каждая **новая** **`issues/*.md`**: в frontmatter **обязательно** **`created_by`**, **`submaster`**, **`creators: []`** — тот же **`username`**, что в **`c9s-config.yaml`** (иначе учёт времени в Capital не пойдёт). Плюс **`updated_at`**, **`status`**, **`priority`**, **`estimate: 0`** по умолчанию. Старт задачи — **commit + push**. **`on_review`** — **только** по команде оператора ([TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) §2, [c9s-submit-for-review](../../core/c9s-submit-for-review/SKILL.md)). +Каждая **новая** **`issues/*.md`**: в frontmatter **обязательно** **`created_by`**, **`submaster`**, **`creators: []`** — тот же **`username`**, что в **`c9s-config.yaml`** (иначе учёт времени в Capital не пойдёт). Плюс **`updated_at`**, **`status`**, **`priority`**, **`estimate: 0`** по умолчанию. Старт задачи — **commit + push**. **`on_review`** — **только** по команде оператора ([TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) §2, [c9s-submit-for-review](../../core/c9s-submit-for-review/SKILL.md)). --- @@ -53,4 +53,4 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite ## Заметки для LLM - Сверяйся с `project.md` для `coopname`, `hash` проекта. -- Для длинных сценариев PRD см. `bmad-v6/commands/prd.md`. +- Для длинных сценариев PRD см. `~/.claude/config/bmad/bmad-v6-bundle/commands/prd.md`. diff --git a/bmad-c9s/skills/bmm/scrum-master/SKILL.md b/bmad-c9s/skills/bmm/scrum-master/SKILL.md index 933fb4e..6883d73 100644 --- a/bmad-c9s/skills/bmm/scrum-master/SKILL.md +++ b/bmad-c9s/skills/bmm/scrum-master/SKILL.md @@ -10,14 +10,14 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite **Фаза:** 4 — Поставка итерациями. -**Источник:** `bmad-v6/skills/bmm/scrum-master/SKILL.md`, `commands/sprint-planning.md`, `create-story.md`. +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/bmm/scrum-master/SKILL.md` · сценарии: `~/.claude/config/bmad/bmad-v6-bundle/commands/sprint-planning.md`, `create-story.md`. --- ## Документы -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) -- [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) - [helpers-ru.md](../../../utils/helpers-ru.md) - Шаблон: [templates/sprint-status.c9s.template.yaml](../../../templates/sprint-status.c9s.template.yaml) → копировать в **`.c9s/sprint-status.yaml`** @@ -29,7 +29,7 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite |----------|-----| | Состав спринта, цели | **`.c9s/sprint-status.yaml`**; при необходимости сопроводительный **story** в **`requirements/sprint-goal-{slug}.md`** | | Уточнение состава спринта / формулировок задач | правки **тел** **`issues/*.md`** и при необходимости продуктовых **`requirements/*.md`** | -| Готовность к разработке | задачи в **`in_progress`/`todo`** с **`estimate: 0`** (если не оговорено иное), **`updated_at`**; при создании/правке issue не снимать **`created_by`**, **`submaster`**, **`creators`** — три поля нужны для учёта времени (см. [TASKS-DOCUMENTS-TIME-POLICY §1](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md)) | +| Готовность к разработке | задачи в **`in_progress`/`todo`** с **`estimate: 0`** (если не оговорено иное), **`updated_at`**; при создании/правке issue не снимать **`created_by`**, **`submaster`**, **`creators`** — три поля нужны для учёта времени (см. [TASKS-DOCUMENTS-TIME-POLICY §1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)) | --- diff --git a/bmad-c9s/skills/bmm/ux-designer/SKILL.md b/bmad-c9s/skills/bmm/ux-designer/SKILL.md index 626d956..808aa8c 100644 --- a/bmad-c9s/skills/bmm/ux-designer/SKILL.md +++ b/bmad-c9s/skills/bmm/ux-designer/SKILL.md @@ -10,14 +10,14 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite **Фазы:** 2–3 (планирование и проектирование опыта). -**Источник:** `bmad-v6/skills/bmm/ux-designer/SKILL.md`, `commands/create-ux-design.md`. +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/bmm/ux-designer/SKILL.md` · сценарий: `~/.claude/config/bmad/bmad-v6-bundle/commands/create-ux-design.md`. --- ## Документы -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) -- [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) - [helpers-ru.md](../../../utils/helpers-ru.md) --- @@ -26,11 +26,11 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite | Артефакт | Рекомендуемое размещение | |----------|---------------------------| -| Персоны, сценарии, CJM (текст) | **Сначала** **`issues/*.md`** (поля **`created_by`**, **`submaster`**, **`creators`** — [TASKS §1](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md)), затем **`requirements/ux-*.md`**, **`content_format: MARKDOWN`** | +| Персоны, сценарии, CJM (текст) | **Сначала** **`issues/*.md`** (поля **`created_by`**, **`submaster`**, **`creators`** — [TASKS §1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)), затем **`requirements/ux-*.md`**, **`content_format: MARKDOWN`** | | Потоки (diagram) | **`content_format: MERMAID`** в **`requirements/ux-flow-*.md`** (story) | | Чек-листы WCAG, токены | отдельные **`requirements/ux-*.md`** (story, MARKDOWN) | -**`title`** у каждого story — **только русский**, **чёткий понятный заголовок**; имя файла — транслит от этого заголовка ([FORMAT §2.2](../../../docs/FORMAT-CAPITAL-GITHUB.md)). +**`title`** у каждого story — **только русский**, **чёткий понятный заголовок**; имя файла — транслит от этого заголовка ([FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)). Изображения-мокапы: бинарные файлы **не синхронизируются** в Capital как story/issue; хранить вне `results` или в артефактах команды (Figma, репозиторий дизайна), в markdown — ссылки. diff --git a/bmad-c9s/skills/cis/creative-intelligence/SKILL.md b/bmad-c9s/skills/cis/creative-intelligence/SKILL.md index 9caaeaa..af42b08 100644 --- a/bmad-c9s/skills/cis/creative-intelligence/SKILL.md +++ b/bmad-c9s/skills/cis/creative-intelligence/SKILL.md @@ -10,14 +10,14 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite **Фаза:** 1 (и ретроспективы в 4 по запросу). -**Источник:** `bmad-v6/skills/cis/creative-intelligence/SKILL.md`. +**Источник методологии (v6, EN):** `~/.claude/skills/bmad/cis/creative-intelligence/SKILL.md`. --- ## Документы -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) -- [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) - [helpers-ru.md](../../../utils/helpers-ru.md) --- @@ -26,12 +26,12 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite | Сессия | Куда писать | |--------|-------------| -| Мозговой штурм, SWOT, варианты решений | **Сначала** **`issues/*.md`** на сессию (например «Мозговой штурм по …») с полями **`created_by`**, **`submaster`**, **`creators`** ([TASKS §1](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md)), **затем** **`requirements/…md`** — `type: story`, **`content_format: MARKDOWN`** | +| Мозговой штурм, SWOT, варианты решений | **Сначала** **`issues/*.md`** на сессию (например «Мозговой штурм по …») с полями **`created_by`**, **`submaster`**, **`creators`** ([TASKS §1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)), **затем** **`requirements/…md`** — `type: story`, **`content_format: MARKDOWN`** | | Отобранные идеи как отдельные требования | при необходимости отдельная **задача** (те же поля учёта) + **`requirements/idea-*.md`** | -Не начинать оформленную сессию **только** story без **issue** — см. [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md). +Не начинать оформленную сессию **только** story без **issue** — см. [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md). -**`title`** у каждого story — **только русский**, **чёткий заголовок**; имя файла — транслит от заголовка ([FORMAT §2.2](../../../docs/FORMAT-CAPITAL-GITHUB.md)), а не голые префиксы `brainstorm-`/`idea-` без смысла в **`title`**. +**`title`** у каждого story — **только русский**, **чёткий заголовок**; имя файла — транслит от заголовка ([FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)), а не голые префиксы `brainstorm-`/`idea-` без смысла в **`title`**. --- diff --git a/bmad-c9s/skills/core/bmad-master-c9s/SKILL.md b/bmad-c9s/skills/core/bmad-master-c9s/SKILL.md index ea65531..67216ce 100644 --- a/bmad-c9s/skills/core/bmad-master-c9s/SKILL.md +++ b/bmad-c9s/skills/core/bmad-master-c9s/SKILL.md @@ -18,11 +18,11 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TodoWrite ## Обязательные ссылки - [CLAUDE.md](../../../CLAUDE.md) — обзор пакета -- [docs/FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) — канон путей и frontmatter +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) — канон путей и frontmatter - [utils/helpers-ru.md](../../../utils/helpers-ru.md) — пути, `updated_at`, hash -- [docs/GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md) — commit/push results и монорепо -- [docs/TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) — задачи под документы, `estimate`, `on_review` только по команде оператора -- Эталон v6 (англ.): `bmad-v6/skills/core/bmad-master/SKILL.md` +- [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) — commit/push results и монорепо +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) — задачи под документы, `estimate`, `on_review` только по команде оператора +- Эталон v6 (англ., после install): `~/.claude/skills/bmad/core/bmad-master/SKILL.md` (в репозитории пакета: `bmad-v6/skills/core/bmad-master/SKILL.md`) --- @@ -32,10 +32,10 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TodoWrite 2. Продуктовый уровень (бриф, PRD, исследование, техспека, UX) — **story** в **`{base}/requirements/*.md`**. Контекст **конкретной** dev-задачи — **в теле** **`{base}/issues/*.md`** (без подпапок `*-requirements/`). В **`{base}/.c9s/`** — лишь **операционка** (например `workflow-status.yaml`, `sprint-status.yaml`). 3. Обычные роли **не** ставят задаче статус **`done`**. **`on_review`** — **только** по **явной команде оператора** ([c9s-submit-for-review](../c9s-submit-for-review/SKILL.md)); агент **не** переводит в ревью автоматически после своей работы. 4. Каждое изменение канонического файла — **новый `updated_at`** (см. FORMAT). -5. У **story** в **`requirements/*.md`** поле **`title`** — **только русский**, формулировка **чёткая и понятная** (см. [CLAUDE.md](../../../CLAUDE.md), [FORMAT §2.2](../../../docs/FORMAT-CAPITAL-GITHUB.md)). -6. **Репозиторий результатов:** после правок канонических файлов — **`git commit`** и **`git push`** (сообщения на русском), см. [GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md) §1. Скилл [c9s-results-push](../c9s-results-push/SKILL.md) — только для **явной** отдельной команды пользователя. +5. У **story** в **`requirements/*.md`** поле **`title`** — **только русский**, формулировка **чёткая и понятная** (см. [CLAUDE.md](../../../CLAUDE.md), [FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)). +6. **Репозиторий результатов:** после правок канонических файлов — **`git commit`** и **`git push`** (сообщения на русском), см. [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) §1. Скилл [c9s-results-push](../c9s-results-push/SKILL.md) — только для **явной** отдельной команды пользователя. 7. **Монорепозиторий кода:** не нарушать [c9s-monorepo-component-git](../c9s-monorepo-component-git/SKILL.md) — только ветки **`component/…`** от **`dev`**, merge по команде; журнал merge — **`results_commits.yaml` в репозитории результатов** (`.c9s/`), не в монорепо. -8. **Документы (PRD, архитектура, бриф, …):** сначала **`issues/*.md`**, затем **`requirements/*.md`** — [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md). +8. **Документы (PRD, архитектура, бриф, …):** сначала **`issues/*.md`**, затем **`requirements/*.md`** — [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md). 9. **Задачи:** **`estimate: 0`** по умолчанию; в каждой новой **`issues/*.md`** — **`created_by`**, **`submaster`**, **`creators`** = **`username`** из **`c9s-config.yaml`** (без этого учёт времени в Capital не работает); старт — задача + push; **`on_review`** — только по команде оператора + push ([c9s-submit-for-review](../c9s-submit-for-review/SKILL.md)). --- diff --git a/bmad-c9s/skills/core/c9s-master-review/SKILL.md b/bmad-c9s/skills/core/c9s-master-review/SKILL.md index 69c86c0..764d718 100644 --- a/bmad-c9s/skills/core/c9s-master-review/SKILL.md +++ b/bmad-c9s/skills/core/c9s-master-review/SKILL.md @@ -19,7 +19,7 @@ allowed-tools: Read, Write, Edit, Glob, Grep, TodoWrite ## Ссылки -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) — статусы, поля issue +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) — статусы, поля issue - [helpers-ru.md](../../../utils/helpers-ru.md) — пути к `issues/*.md` --- diff --git a/bmad-c9s/skills/core/c9s-monorepo-component-git/SKILL.md b/bmad-c9s/skills/core/c9s-monorepo-component-git/SKILL.md index ab26368..a902de7 100644 --- a/bmad-c9s/skills/core/c9s-monorepo-component-git/SKILL.md +++ b/bmad-c9s/skills/core/c9s-monorepo-component-git/SKILL.md @@ -21,7 +21,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TodoWrite 3. **`component_slug`** — имя каталога компонента под `components/` (например `desktop`, `controller`), либо значение **`active_component_git_slug`** из `c9s-config.yaml`. 4. **`work_slug`** — краткий slug от **русского или рабочего названия** задачи/результата (транслит, дефисы, нижний регистр); если одна долгая линия работы на компонент — допустимо **`component/`** без суффикса **только** если так согласовано с пользователем. 5. **Merge в `dev`** — **только** по **явной команде** пользователя в конце работы (не по собственной инициативе агента). -6. После успешного merge — записать в **`results_commits.yaml`** (путь по [GIT-COMMITS-POLICY §2.4](../../../docs/GIT-COMMITS-POLICY.md)) **полный SHA**, **`username`** и **`merge_title`** (первая строка merge-коммита), плюс остальные поля по шаблону. Новая запись — **в начало** `commits`. Затем **commit + push** в **git репозитория результатов** для этого файла. При необходимости обновить **`last_merge_to_dev_commit_hash`** в `c9s-config.yaml`. +6. После успешного merge — записать в **`results_commits.yaml`** (путь по [GIT-COMMITS-POLICY §2.4](~/.claude/config/bmad/GIT-COMMITS-POLICY.md)) **полный SHA**, **`username`** и **`merge_title`** (первая строка merge-коммита), плюс остальные поля по шаблону. Новая запись — **в начало** `commits`. Затем **commit + push** в **git репозитория результатов** для этого файла. При необходимости обновить **`last_merge_to_dev_commit_hash`** в `c9s-config.yaml`. Остальные скиллы (developer, bmad-master-c9s и т.д.) **не отменяют** эти правила. @@ -29,7 +29,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TodoWrite ## Обязательные ссылки -- [docs/GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md) +- [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) - [templates/results_commits.template.yaml](../../../templates/results_commits.template.yaml) - [config/c9s-config.template.yaml](../../../config/c9s-config.template.yaml) — поля `monorepo_root`, `active_component_git_slug`, `results_commits_log` diff --git a/bmad-c9s/skills/core/c9s-results-push/SKILL.md b/bmad-c9s/skills/core/c9s-results-push/SKILL.md index 0bcaf7e..bfae6d4 100644 --- a/bmad-c9s/skills/core/c9s-results-push/SKILL.md +++ b/bmad-c9s/skills/core/c9s-results-push/SKILL.md @@ -11,7 +11,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TodoWrite ## Назначение -**По умолчанию** агент **уже** выполняет **`git commit`** и **`git push`** в репозитории результатов после значимых правок — см. [docs/GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md) §1. +**По умолчанию** агент **уже** выполняет **`git commit`** и **`git push`** в репозитории результатов после значимых правок — см. [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) §1. Этот скилл нужен, когда пользователь **явно** просит: @@ -25,8 +25,8 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TodoWrite ## Обязательные ссылки -- [docs/GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md) -- [docs/TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) +- [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) - [CLAUDE.md](../../../CLAUDE.md) - [helpers-ru.md](../../../utils/helpers-ru.md) diff --git a/bmad-c9s/skills/core/c9s-submit-for-review/SKILL.md b/bmad-c9s/skills/core/c9s-submit-for-review/SKILL.md index 468fcae..67676fc 100644 --- a/bmad-c9s/skills/core/c9s-submit-for-review/SKILL.md +++ b/bmad-c9s/skills/core/c9s-submit-for-review/SKILL.md @@ -13,15 +13,15 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TodoWrite Выполнять **только** после **явного** указания **оператора** (человека): он прочитал/проверил результат (PRD, правки, код в контексте задачи и т.д.) и **сознательно** готов передать задачу мастеру в очередь ревью. -**Запрещено:** переводить в **`on_review`** «потому что агент закончил черновик» — см. [docs/TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) §2. +**Запрещено:** переводить в **`on_review`** «потому что агент закончил черновик» — см. [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) §2. --- ## Обязательные ссылки -- [TASKS-DOCUMENTS-TIME-POLICY.md](../../../docs/TASKS-DOCUMENTS-TIME-POLICY.md) -- [FORMAT-CAPITAL-GITHUB.md](../../../docs/FORMAT-CAPITAL-GITHUB.md) -- [GIT-COMMITS-POLICY.md](../../../docs/GIT-COMMITS-POLICY.md) +- [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) +- [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md) +- [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) --- diff --git a/bmad-c9s/templates/issue.template.md b/bmad-c9s/templates/issue.template.md index 2d88c24..8b73c1a 100644 --- a/bmad-c9s/templates/issue.template.md +++ b/bmad-c9s/templates/issue.template.md @@ -23,4 +23,4 @@ updated_at: "{{ISO_TIMESTAMP}}" - При необходимости ссылки на продуктовые **`requirements/*.md`** (пути от корня `base`). Всё для выполнения этой задачи — в разделах выше (одна dev-задача, один промпт). -**bmad-c9s:** подставь **`{{USERNAME}}`** из **`c9s-config.yaml` → `username`** во все три поля (`created_by`, `submaster`, `creators`) — иначе учёт времени в Capital не запустится. В **начале** работы — создать задачу и **push**. **`on_review`** агент **не ставит** сам: только после **явной команды оператора** (**`/c9s-submit-for-review`**, «отправь на ревью») — тогда **`on_review`**, **`updated_at`**, commit/push. До команды — **`in_progress`** (или **`todo`**). См. [docs/TASKS-DOCUMENTS-TIME-POLICY.md](../docs/TASKS-DOCUMENTS-TIME-POLICY.md) §1–2. +**bmad-c9s:** подставь **`{{USERNAME}}`** из **`c9s-config.yaml` → `username`** во все три поля (`created_by`, `submaster`, `creators`) — иначе учёт времени в Capital не запустится. В **начале** работы — создать задачу и **push**. **`on_review`** агент **не ставит** сам: только после **явной команды оператора** (**`/c9s-submit-for-review`**, «отправь на ревью») — тогда **`on_review`**, **`updated_at`**, commit/push. До команды — **`in_progress`** (или **`todo`**). См. [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md) §1–2. diff --git a/bmad-c9s/templates/story.template.md b/bmad-c9s/templates/story.template.md index a34fef7..7e51114 100644 --- a/bmad-c9s/templates/story.template.md +++ b/bmad-c9s/templates/story.template.md @@ -13,7 +13,7 @@ updated_at: "{{ISO_TIMESTAMP}}" Файл только под **`requirements/`** (продуктовый уровень). Для задач отдельные story не создавать — контекст выполнения в теле **`issues/*.md`**. -**`title` в frontmatter выше:** только **русский язык**, **чёткий понятный заголовок** (обязательное правило — см. `CLAUDE.md`, `docs/FORMAT-CAPITAL-GITHUB.md` §2.2). +**`title` в frontmatter выше:** только **русский язык**, **чёткий понятный заголовок** (обязательное правило — см. `CLAUDE.md`, `~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md` §2.2). ## Контекст diff --git a/bmad-c9s/utils/helpers-ru.md b/bmad-c9s/utils/helpers-ru.md index a30f630..88bdc38 100644 --- a/bmad-c9s/utils/helpers-ru.md +++ b/bmad-c9s/utils/helpers-ru.md @@ -2,9 +2,9 @@ Сокращённые инструкции без исполняемых скриптов: агент выполняет шаги через чтение/запись файлов. -Полная спецификация путей и полей: [../docs/FORMAT-CAPITAL-GITHUB.md](../docs/FORMAT-CAPITAL-GITHUB.md). +Полная спецификация путей и полей: [FORMAT-CAPITAL-GITHUB.md](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md). -Git (results / монорепо): [../docs/GIT-COMMITS-POLICY.md](../docs/GIT-COMMITS-POLICY.md). Задачи, документы, `estimate`, `on_review`: [../docs/TASKS-DOCUMENTS-TIME-POLICY.md](../docs/TASKS-DOCUMENTS-TIME-POLICY.md). +Git (results / монорепо): [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md). Задачи, документы, `estimate`, `on_review`: [TASKS-DOCUMENTS-TIME-POLICY.md](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md). --- @@ -31,7 +31,7 @@ Git (results / монорепо): [../docs/GIT-COMMITS-POLICY.md](../docs/GIT-CO 2. Если в конфиге задан **`results_commits_log`**: абсолютный путь — использовать как есть; иначе **`{projectRoot}/{results_commits_log}`**. 3. Иначе: **`{projectRoot}/.c9s/results_commits.yaml`**. -См. [docs/GIT-COMMITS-POLICY.md](../docs/GIT-COMMITS-POLICY.md) §2.4. +См. [GIT-COMMITS-POLICY.md](~/.claude/config/bmad/GIT-COMMITS-POLICY.md) §2.4. --- @@ -66,10 +66,10 @@ componentRoot = {projectRoot}/{active_component_path} Пути: -- задачи: `{base}/issues/{issueSlug}.md` — в **теле** задачи весь контекст для реализации (bmad-c9s: без подпапок `*-requirements/`). В frontmatter новой задачи **обязательно**: **`created_by`**, **`submaster`**, **`creators: [""]`** — тот же **`username`**, что в **`c9s-config.yaml`**; иначе **не будет учёта времени** в Capital (см. [TASKS-DOCUMENTS-TIME-POLICY §1](../docs/TASKS-DOCUMENTS-TIME-POLICY.md)). +- задачи: `{base}/issues/{issueSlug}.md` — в **теле** задачи весь контекст для реализации (bmad-c9s: без подпапок `*-requirements/`). В frontmatter новой задачи **обязательно**: **`created_by`**, **`submaster`**, **`creators: [""]`** — тот же **`username`**, что в **`c9s-config.yaml`**; иначе **не будет учёта времени** в Capital (см. [TASKS-DOCUMENTS-TIME-POLICY §1](~/.claude/config/bmad/TASKS-DOCUMENTS-TIME-POLICY.md)). - требования уровня проекта: `{base}/requirements/{storySlug}.md` -**Наименование требований:** в каждом `{base}/requirements/*.md` поле **`title`** в frontmatter — **только русский язык**, заголовок **чёткий и понятный** (см. [FORMAT §2.2](../docs/FORMAT-CAPITAL-GITHUB.md)). +**Наименование требований:** в каждом `{base}/requirements/*.md` поле **`title`** в frontmatter — **только русский язык**, заголовок **чёткий и понятный** (см. [FORMAT §2.2](~/.claude/config/bmad/FORMAT-CAPITAL-GITHUB.md)). --- diff --git a/install-v6.ps1 b/install-v6.ps1 index 4ae5639..a0b96c4 100644 --- a/install-v6.ps1 +++ b/install-v6.ps1 @@ -1,8 +1,8 @@ ############################################################################### -# BMAD-c9s (Coopenomics) for Claude Code — PowerShell installer +# BMAD v6 + BMAD-c9s (Coopenomics) — PowerShell installer # -# Устанавливает скиллы и команды из bmad-c9s/. Каталог bmad-v6/ в репозитории -# не изменяется; при наличии копируется helpers.md как helpers-bmad-v6-en.md. +# Соответствует install-v6.sh: v6 → skills/bmad, c9s → skills/bmad-c9s, +# bmad-v6-bundle в config/bmad, команды c9s → commands/bmad. # # Supports: PowerShell 5.1+ (Windows default) and PowerShell 6+ (Core) # @@ -89,7 +89,7 @@ $ErrorActionPreference = "Stop" # Configuration ############################################################################### -$BmadVersion = "1.0.0" +$BmadVersion = "1.1.0" # PowerShell version detection $PSVersion = $PSVersionTable.PSVersion.Major @@ -236,13 +236,16 @@ if ($IsWindows -or $env:OS -match "Windows" -or (-not (Test-Path variable:IsWind $ClaudeDir = Join-Path $HomeDir ".claude" $BmadConfigDir = Join-PathCompat $ClaudeDir "config" "bmad" +$BmadV6BundleDir = Join-PathCompat $BmadConfigDir "bmad-v6-bundle" $BmadSkillsDir = Join-PathCompat $ClaudeDir "skills" "bmad" +$BmadC9sSkillsDir = Join-PathCompat $ClaudeDir "skills" "bmad-c9s" $BmadCommandsDir = Join-PathCompat $ClaudeDir "commands" "bmad" $ScriptDir = $PSScriptRoot -# Source directories (primary: bmad-c9s; bmad-v6 only for optional EN helpers) +# Source directories $SourceBmadC9sDir = Join-Path $ScriptDir "bmad-c9s" $SourceBmadV6Dir = Join-Path $ScriptDir "bmad-v6" +$SourceV6SkillsDir = Join-PathCompat $SourceBmadV6Dir "skills" $SourceSkillsDir = Join-PathCompat $SourceBmadC9sDir "skills" $SourceConfigDir = Join-PathCompat $SourceBmadC9sDir "config" $SourceTemplatesDir = Join-PathCompat $SourceBmadC9sDir "templates" @@ -286,6 +289,10 @@ function global:Test-Prerequisites { Write-Success "Found source directory: $SourceBmadC9sDir" } + if (-not (Test-Path $SourceV6SkillsDir)) { + $errors += "BMAD v6 skills not found: $SourceV6SkillsDir (required for combined install)" + } + # Check required source subdirectories $requiredDirs = @{ "skills" = $SourceSkillsDir @@ -317,9 +324,9 @@ function global:Test-Prerequisites { } # Check if already installed - $bmadMasterPath = Join-PathCompat $BmadSkillsDir "core" "bmad-master-c9s" "SKILL.md" + $bmadMasterPath = Join-PathCompat $BmadC9sSkillsDir "core" "bmad-master-c9s" "SKILL.md" if ((Test-Path $bmadMasterPath) -and -not $Force) { - Write-Warning "BMAD-c9s is already installed at: $BmadSkillsDir" + Write-Warning "BMAD-c9s is already installed at: $BmadC9sSkillsDir" Write-Host "" Write-Host "Options:" -ForegroundColor Yellow Write-Host " 1. Run with -Force to reinstall" @@ -356,12 +363,13 @@ function global:Test-Prerequisites { ############################################################################### function global:Uninstall-BmadV6 { - Write-Header "BMAD-c9s v$BmadVersion — удаление" + Write-Header "BMAD v6 + c9s v$BmadVersion — удаление" - Write-Info "Checking for BMAD-c9s installation..." + Write-Info "Checking for BMAD installation..." $dirsToRemove = @( $BmadSkillsDir, + $BmadC9sSkillsDir, $BmadCommandsDir, $BmadConfigDir ) @@ -375,7 +383,7 @@ function global:Uninstall-BmadV6 { } if (-not $found) { - Write-Warning "BMAD-c9s is not installed under ~/.claude/.../bmad" + Write-Warning "BMAD installation not found under ~/.claude (skills/bmad, skills/bmad-c9s, config/bmad)" Write-Host "Nothing to uninstall." exit 0 } @@ -425,30 +433,38 @@ function global:Uninstall-BmadV6 { ############################################################################### function global:New-Directories { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Creating directory structure..." -PercentComplete 0 + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Creating directory structure..." -PercentComplete 0 Write-Info "Creating directory structure..." try { - # Claude Code directories - Skills @("core", "bmm", "bmb", "cis") | ForEach-Object { $skillDir = Join-Path $BmadSkillsDir $_ - if ($PSCmdlet.ShouldProcess($skillDir, "Create directory")) { - Write-Verbose "Creating skill directory: $skillDir" + if ($PSCmdlet.ShouldProcess($skillDir, "Create v6 skill directory")) { New-Item -ItemType Directory -Force -Path $skillDir -ErrorAction Stop | Out-Null } + $c9sDir = Join-Path $BmadC9sSkillsDir $_ + if ($PSCmdlet.ShouldProcess($c9sDir, "Create c9s skill directory")) { + New-Item -ItemType Directory -Force -Path $c9sDir -ErrorAction Stop | Out-Null + } } - # Claude Code directories - Config @("agents", "templates") | ForEach-Object { $configDir = Join-Path $BmadConfigDir $_ - if ($PSCmdlet.ShouldProcess($configDir, "Create directory")) { - Write-Verbose "Creating config directory: $configDir" + if ($PSCmdlet.ShouldProcess($configDir, "Create config directory")) { New-Item -ItemType Directory -Force -Path $configDir -ErrorAction Stop | Out-Null } } + @("commands", "templates", "utils") | ForEach-Object { + $bundleSub = Join-Path $BmadV6BundleDir $_ + if ($PSCmdlet.ShouldProcess($bundleSub, "Create bmad-v6-bundle subdirectory")) { + New-Item -ItemType Directory -Force -Path $bundleSub -ErrorAction Stop | Out-Null + } + } + Write-Success "Directory structure created" - Write-Verbose " Skills: $BmadSkillsDir" + Write-Verbose " Skills v6: $BmadSkillsDir" + Write-Verbose " Skills c9s: $BmadC9sSkillsDir" Write-Verbose " Config: $BmadConfigDir" } catch { @@ -459,88 +475,101 @@ function global:New-Directories { } function global:Install-Skills { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Installing skills..." -PercentComplete 20 - Write-Info "Installing BMAD-c9s skills..." + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Installing skills..." -PercentComplete 20 + Write-Info "Installing BMAD v6 skills → $BmadSkillsDir ..." - $skillComponents = @( - @{ - Name = "Core Skills" - SourcePath = Join-PathCompat $SourceSkillsDir "core" - DestPath = Join-Path $BmadSkillsDir "core" - Required = $true - }, - @{ - Name = "BMM Skills" - SourcePath = Join-PathCompat $SourceSkillsDir "bmm" - DestPath = Join-Path $BmadSkillsDir "bmm" - Required = $true - }, - @{ - Name = "BMB Skills" - SourcePath = Join-PathCompat $SourceSkillsDir "bmb" - DestPath = Join-Path $BmadSkillsDir "bmb" - Required = $false - }, - @{ - Name = "CIS Skills" - SourcePath = Join-PathCompat $SourceSkillsDir "cis" - DestPath = Join-Path $BmadSkillsDir "cis" - Required = $false - } + $v6Components = @( + @{ Name = "v6 Core"; Sub = "core"; Required = $true } + @{ Name = "v6 BMM"; Sub = "bmm"; Required = $true } + @{ Name = "v6 BMB"; Sub = "bmb"; Required = $false } + @{ Name = "v6 CIS"; Sub = "cis"; Required = $false } ) - - foreach ($component in $skillComponents) { - $sourcePath = $component.SourcePath - $destPath = $component.DestPath - $componentName = $component.Name - $required = $component.Required - - Write-Verbose "Installing $componentName from: $sourcePath" - + foreach ($c in $v6Components) { + $sourcePath = Join-PathCompat $SourceV6SkillsDir $c.Sub + $destPath = Join-Path $BmadSkillsDir $c.Sub if (Test-Path $sourcePath) { - try { - $sourcePattern = Join-Path $sourcePath "*" - if ($PSCmdlet.ShouldProcess($destPath, "Copy $componentName")) { - Copy-ItemSafe -SourcePath $sourcePattern -DestinationPath $destPath -Recurse -Force -ErrorContext "$componentName installation" - Write-Success "$componentName installed" - Write-Verbose " Copied to: $destPath" - } + $sourcePattern = Join-Path $sourcePath "*" + if ($PSCmdlet.ShouldProcess($destPath, "Copy $($c.Name)")) { + Copy-ItemSafe -SourcePath $sourcePattern -DestinationPath $destPath -Recurse -Force -ErrorContext "$($c.Name) installation" + Write-Success "$($c.Name) installed" } - catch { - if ($required) { - throw - } else { - Write-Warning "Optional $componentName could not be installed" - Write-Verbose " Error: $($_.Exception.Message)" - } - } - } else { - if ($required) { - Write-ErrorMsg "$componentName not found at: $sourcePath" - Write-ErrorMsg "Installation cannot continue" - throw "Required component missing: $componentName" - } else { - Write-Verbose "$componentName not found (optional): $sourcePath" + } elseif ($c.Required) { + throw "Required v6 skills missing: $sourcePath" + } + } + + Write-Info "Installing BMAD-c9s skills → $BmadC9sSkillsDir ..." + $c9sComponents = @( + @{ Name = "c9s Core"; Sub = "core"; Required = $true } + @{ Name = "c9s BMM"; Sub = "bmm"; Required = $true } + @{ Name = "c9s BMB"; Sub = "bmb"; Required = $false } + @{ Name = "c9s CIS"; Sub = "cis"; Required = $false } + ) + foreach ($c in $c9sComponents) { + $sourcePath = Join-PathCompat $SourceSkillsDir $c.Sub + $destPath = Join-Path $BmadC9sSkillsDir $c.Sub + if (Test-Path $sourcePath) { + $sourcePattern = Join-Path $sourcePath "*" + if ($PSCmdlet.ShouldProcess($destPath, "Copy $($c.Name)")) { + Copy-ItemSafe -SourcePath $sourcePattern -DestinationPath $destPath -Recurse -Force -ErrorContext "$($c.Name) installation" + Write-Success "$($c.Name) installed" } + } elseif ($c.Required) { + throw "Required c9s skills missing: $sourcePath" } } } +function global:Install-V6Bundle { + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "bmad-v6-bundle..." -PercentComplete 32 + Write-Info "Copying BMAD v6 commands/templates/utils → bmad-v6-bundle..." + $v6Cmd = Join-Path $SourceBmadV6Dir "commands" + if (Test-Path $v6Cmd) { + $pattern = Join-Path $v6Cmd "*.md" + Copy-ItemSafe -SourcePath $pattern -DestinationPath (Join-Path $BmadV6BundleDir "commands") -Force -ErrorContext "v6 bundle commands" + } + $v6Tpl = Join-Path $SourceBmadV6Dir "templates" + if (Test-Path $v6Tpl) { + $pattern = Join-Path $v6Tpl "*" + Copy-ItemSafe -SourcePath $pattern -DestinationPath (Join-Path $BmadV6BundleDir "templates") -Force -ErrorContext "v6 bundle templates" + } + $v6Helpers = Join-PathCompat $SourceBmadV6Dir "utils" "helpers.md" + if (Test-Path $v6Helpers) { + Copy-ItemSafe -SourcePath $v6Helpers -DestinationPath (Join-Path $BmadV6BundleDir "utils" "helpers.md") -Force -ErrorContext "v6 bundle helpers" + } + Write-Success "bmad-v6-bundle updated" +} + function global:Install-Config { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Installing configuration..." -PercentComplete 40 - Write-Info "Installing BMAD-c9s configuration template..." + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Installing configuration..." -PercentComplete 40 + Write-Info "Installing configuration (v6 + c9s)..." try { + $V6ConfigTemplate = Join-PathCompat $SourceBmadV6Dir "config" "config.template.yaml" + $V6ConfigDest = Join-Path $BmadConfigDir "config.yaml" + if ((Test-Path $V6ConfigTemplate) -and -not (Test-Path $V6ConfigDest)) { + $raw = Get-Content -Path $V6ConfigTemplate -Raw -ErrorAction Stop + $userName = if ($env:USERNAME) { $env:USERNAME } else { $env:USER } + $raw = $raw -replace '\{\{USER_NAME\}\}', $userName + if ($PSCmdlet.ShouldProcess($V6ConfigDest, "Write BMAD v6 config.yaml")) { + Set-Content -Path $V6ConfigDest -Value $raw -Encoding UTF8 -ErrorAction Stop + Write-Success "config.yaml created (BMAD v6)" + } + } elseif (Test-Path $V6ConfigDest) { + Write-Verbose "config.yaml exists — not overwriting" + } + + $V6ProjectTpl = Join-PathCompat $SourceBmadV6Dir "config" "project-config.template.yaml" + if (Test-Path $V6ProjectTpl) { + Copy-ItemSafe -SourcePath $V6ProjectTpl -DestinationPath (Join-Path $BmadConfigDir "project-config.template.yaml") -Force -ErrorContext "v6 project-config template" + } + $C9sConfigTemplatePath = Join-PathCompat $SourceConfigDir "c9s-config.template.yaml" $C9sConfigDestPath = Join-Path $BmadConfigDir "c9s-config.template.yaml" - - Write-Verbose "Config template: $C9sConfigTemplatePath" - Write-Verbose "Config destination: $C9sConfigDestPath" - if (Test-Path $C9sConfigTemplatePath) { if ($PSCmdlet.ShouldProcess($C9sConfigDestPath, "Copy c9s config template")) { Copy-ItemSafe -SourcePath $C9sConfigTemplatePath -DestinationPath $C9sConfigDestPath -Force -ErrorContext "c9s config template" - Write-Success "c9s-config.template.yaml installed (copy to your results repo as c9s-config.yaml)" + Write-Success "c9s-config.template.yaml installed" } } else { Write-Warning "c9s-config.template.yaml not found at: $C9sConfigTemplatePath" @@ -553,24 +582,25 @@ function global:Install-Config { } function global:Install-Templates { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Installing templates..." -PercentComplete 60 - Write-Info "Installing templates..." + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Installing templates..." -PercentComplete 60 + Write-Info "templates/: v6 base, then c9s overwrites same filenames..." try { $TemplatesDestPath = Join-Path $BmadConfigDir "templates" - - Write-Verbose "Templates source: $SourceTemplatesDir" - Write-Verbose "Templates destination: $TemplatesDestPath" - + $V6Templates = Join-Path $SourceBmadV6Dir "templates" + if (Test-Path $V6Templates) { + $templatePattern = Join-Path $V6Templates "*" + if ($PSCmdlet.ShouldProcess($TemplatesDestPath, "Copy v6 templates")) { + Copy-ItemSafe -SourcePath $templatePattern -DestinationPath $TemplatesDestPath -Force -ErrorContext "v6 templates" + Write-Success "v6 templates copied (base)" + } + } if (Test-Path $SourceTemplatesDir) { $templatePattern = Join-Path $SourceTemplatesDir "*" - if ($PSCmdlet.ShouldProcess($TemplatesDestPath, "Copy templates")) { - Copy-ItemSafe -SourcePath $templatePattern -DestinationPath $TemplatesDestPath -Force -ErrorContext "templates" - Write-Success "Templates installed" - Write-Verbose " Copied to: $TemplatesDestPath" + if ($PSCmdlet.ShouldProcess($TemplatesDestPath, "Copy c9s templates (overwrite)")) { + Copy-ItemSafe -SourcePath $templatePattern -DestinationPath $TemplatesDestPath -Force -ErrorContext "c9s templates" + Write-Success "c9s templates applied (overwrite matching names)" } - } else { - Write-Warning "Templates not found at: $SourceTemplatesDir" } } catch { @@ -580,17 +610,31 @@ function global:Install-Templates { } function global:Install-Utils { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Installing docs and helpers..." -PercentComplete 70 - Write-Info "Installing docs and helpers (c9s)..." + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Installing docs and helpers..." -PercentComplete 70 + Write-Info "Installing helpers and c9s docs..." try { + $V6Helpers = Join-PathCompat $SourceBmadV6Dir "utils" "helpers.md" + $V6HelpersRef = Join-Path $BmadConfigDir "helpers-bmad-v6-en.md" + if (Test-Path $V6Helpers) { + if ($PSCmdlet.ShouldProcess($V6HelpersRef, "Copy BMAD v6 helpers (reference EN)")) { + Copy-ItemSafe -SourcePath $V6Helpers -DestinationPath $V6HelpersRef -Force -ErrorContext "v6 helpers EN ref" + Write-Success "helpers-bmad-v6-en.md (methodology reference)" + } + } + $HelpersRuPath = Join-PathCompat $SourceUtilsDir "helpers-ru.md" $HelpersRuDest = Join-Path $BmadConfigDir "helpers-ru.md" + $HelpersPrimary = Join-Path $BmadConfigDir "helpers.md" if (Test-Path $HelpersRuPath) { if ($PSCmdlet.ShouldProcess($HelpersRuDest, "Copy helpers-ru.md")) { Copy-ItemSafe -SourcePath $HelpersRuPath -DestinationPath $HelpersRuDest -Force -ErrorContext "helpers-ru" Write-Success "helpers-ru.md installed" } + if ($PSCmdlet.ShouldProcess($HelpersPrimary, "Copy helpers.md from c9s helpers-ru")) { + Copy-ItemSafe -SourcePath $HelpersRuPath -DestinationPath $HelpersPrimary -Force -ErrorContext "helpers primary" + Write-Success "helpers.md = c9s rules (copy of helpers-ru)" + } } else { Write-Warning "helpers-ru.md not found at: $HelpersRuPath" } @@ -604,6 +648,17 @@ function global:Install-Utils { } } + foreach ($docName in @("TASKS-DOCUMENTS-TIME-POLICY.md", "GIT-COMMITS-POLICY.md")) { + $srcDoc = Join-PathCompat $SourceC9sDocsDir $docName + $dstDoc = Join-Path $BmadConfigDir $docName + if (Test-Path $srcDoc) { + if ($PSCmdlet.ShouldProcess($dstDoc, "Copy $docName")) { + Copy-ItemSafe -SourcePath $srcDoc -DestinationPath $dstDoc -Force -ErrorContext "c9s doc $docName" + Write-Success "$docName installed" + } + } + } + $ClaudeSrc = Join-Path $SourceBmadC9sDir "CLAUDE.md" $ClaudeDest = Join-Path $BmadConfigDir "CLAUDE-bmad-c9s.md" if (Test-Path $ClaudeSrc) { @@ -612,17 +667,6 @@ function global:Install-Utils { Write-Success "CLAUDE-bmad-c9s.md installed" } } - - $V6Helpers = Join-PathCompat $SourceBmadV6Dir "utils" "helpers.md" - $V6HelpersDest = Join-Path $BmadConfigDir "helpers-bmad-v6-en.md" - if (Test-Path $V6Helpers) { - if ($PSCmdlet.ShouldProcess($V6HelpersDest, "Copy BMAD v6 EN helpers (reference)")) { - Copy-ItemSafe -SourcePath $V6Helpers -DestinationPath $V6HelpersDest -Force -ErrorContext "v6 helpers EN" - Write-Success "helpers-bmad-v6-en.md (BMAD v6 reference) installed" - } - } else { - Write-Verbose "bmad-v6/utils/helpers.md not found — skipping EN reference" - } } catch { Write-ErrorMsg "Failed to install docs/helpers" @@ -631,7 +675,7 @@ function global:Install-Utils { } function global:Install-Commands { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Installing slash commands..." -PercentComplete 80 + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Installing slash commands..." -PercentComplete 80 Write-Info "Installing slash commands from bmad-c9s/commands..." try { @@ -668,14 +712,22 @@ function global:Install-Commands { } function global:Test-Installation { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Verifying installation..." -PercentComplete 90 + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Verifying installation..." -PercentComplete 90 Write-Info "Verifying installation..." $errors = 0 $checks = @( + @{ + Name = "bmad-master (v6) skill" + Path = Join-PathCompat $BmadSkillsDir "core" "bmad-master" "SKILL.md" + }, @{ Name = "bmad-master-c9s skill" - Path = Join-PathCompat $BmadSkillsDir "core" "bmad-master-c9s" "SKILL.md" + Path = Join-PathCompat $BmadC9sSkillsDir "core" "bmad-master-c9s" "SKILL.md" + }, + @{ + Name = "bmad-v6-bundle create-story" + Path = Join-PathCompat $BmadV6BundleDir "commands" "create-story.md" }, @{ Name = "c9s config template" @@ -722,16 +774,15 @@ function global:Test-Installation { } function global:Show-NextSteps { - Write-Header "BMAD-c9s — установка завершена" + Write-Header "BMAD v6 + BMAD-c9s — установка завершена" - Write-Host "[SUCCESS] BMAD-c9s v$BmadVersion (Coopenomics) установлен." -ForegroundColor Green + Write-Host "[SUCCESS] BMAD v6 + BMAD-c9s v$BmadVersion установлены." -ForegroundColor Green Write-Host "" - Write-Host "Каталоги:" - Write-Host " Skills: $BmadSkillsDir" - Write-Host " Commands: $BmadCommandsDir" - Write-Host " Config: $BmadConfigDir" - Write-Host "" - Write-Host "Источник: bmad-c9s/ (bmad-v6/ в репозитории не изменяется)." + Write-Host "Скиллы:" + Write-Host " v6: $BmadSkillsDir" + Write-Host " c9s: $BmadC9sSkillsDir" + Write-Host "Команды (обёртки c9s): $BmadCommandsDir" + Write-Host "Конфиг: $BmadConfigDir (в т.ч. bmad-v6-bundle/commands для полных текстов v6)" Write-Host "" Write-Host "Дальше:" Write-Host " 1. Перезапустите Claude Code" @@ -747,32 +798,35 @@ function global:Show-NextSteps { Write-Host "Проверка:" if ($IsWindows -or $env:OS -match "Windows" -or (-not (Test-Path variable:IsWindows))) { - Write-Host " dir `"$BmadSkillsDir\core\bmad-master-c9s\SKILL.md`"" + Write-Host " dir `"$BmadSkillsDir\core\bmad-master\SKILL.md`"" + Write-Host " dir `"$BmadC9sSkillsDir\core\bmad-master-c9s\SKILL.md`"" Write-Host " dir `"$BmadCommandsDir\c9s-init.md`"" } else { - Write-Host " ls -la ~/.claude/skills/bmad/core/bmad-master-c9s/SKILL.md" + Write-Host " ls -la ~/.claude/skills/bmad/core/bmad-master/SKILL.md" + Write-Host " ls -la ~/.claude/skills/bmad-c9s/core/bmad-master-c9s/SKILL.md" Write-Host " ls -la ~/.claude/commands/bmad/c9s-init.md" } Write-Host "" Write-Host "Исходники пакета: $SourceBmadC9sDir" Write-Host "" - Write-Host "[OK] BMAD-c9s готов." -ForegroundColor Green + Write-Host "[OK] BMAD v6 + c9s готовы." -ForegroundColor Green } function global:Show-WhatIfSummary { Write-Header "Installation Summary (Dry-Run) — BMAD-c9s" - Write-Host "Would install BMAD-c9s v$BmadVersion from: $SourceBmadC9sDir" - Write-Host " Skills: $BmadSkillsDir" + Write-Host "Would install BMAD v6 + BMAD-c9s v$BmadVersion" + Write-Host " Skills v6: $BmadSkillsDir" + Write-Host " Skills c9s: $BmadC9sSkillsDir" Write-Host " Commands: $BmadCommandsDir" - Write-Host " Config: $BmadConfigDir" + Write-Host " Config: $BmadConfigDir + bmad-v6-bundle" Write-Host "" Write-Host "Components:" - Write-Host " [*] Skills (core/bmm/bmb/cis) from bmad-c9s/skills" - Write-Host " [*] Slash commands from bmad-c9s/commands" - Write-Host " [*] c9s-config.template.yaml, templates, helpers-ru, docs" - Write-Host " [*] Optional: helpers-bmad-v6-en.md if bmad-v6/utils/helpers.md exists" + Write-Host " [*] Skills from bmad-v6/skills and bmad-c9s/skills" + Write-Host " [*] bmad-v6-bundle (commands, templates, utils)" + Write-Host " [*] config.yaml (v6), c9s-config.template.yaml, merged templates" + Write-Host " [*] helpers.md (v6), helpers-ru, slash commands from bmad-c9s/commands" Write-Host "" Write-Host "To perform actual installation, run without -WhatIf" } @@ -794,7 +848,7 @@ function global:Main { return } - Write-Header "BMAD-c9s v$BmadVersion — installer" + Write-Header "BMAD v6 + BMAD-c9s v$BmadVersion — installer" # Show version info if ($IsPowerShell5) { @@ -827,6 +881,7 @@ function global:Main { New-Directories Install-Skills + Install-V6Bundle Install-Config Install-Templates Install-Utils @@ -835,10 +890,10 @@ function global:Main { # Verify Write-Host "" if (Test-Installation) { - Write-Progress -Activity "Installing BMAD-c9s" -Status "Complete!" -PercentComplete 100 + Write-Progress -Activity "Installing BMAD v6 + c9s" -Status "Complete!" -PercentComplete 100 Write-Host "" Show-NextSteps - Write-Progress -Activity "Installing BMAD-c9s" -Completed + Write-Progress -Activity "Installing BMAD v6 + c9s" -Completed Write-Verbose "Installation completed successfully at: $(Get-Date)" exit 0 } else { @@ -854,7 +909,7 @@ function global:Main { } } catch { - Write-Progress -Activity "Installing BMAD-c9s" -Completed + Write-Progress -Activity "Installing BMAD v6 + c9s" -Completed Write-Host "" Write-Host "===============================================" -ForegroundColor Red Write-Host " Installation Failed" -ForegroundColor Red diff --git a/install-v6.sh b/install-v6.sh index 90b585f..f6cda71 100755 --- a/install-v6.sh +++ b/install-v6.sh @@ -1,40 +1,36 @@ #!/usr/bin/env bash ############################################################################### -# BMAD-c9s (Coopenomics) — установка скиллов и команд для Claude Code +# BMAD v6 + BMAD-c9s (Coopenomics) — установка для Claude Code # -# Источник: каталог bmad-c9s/ (русские скиллы, Capital/GitHub results). -# Каталог bmad-v6/ в репозитории не изменяется; при наличии v6 копируется -# helpers.md как опциональный англоязычный справочник (helpers-bmad-v6-en.md). +# • BMAD v6 (оригинал): скиллы → ~/.claude/skills/bmad/, config.yaml, шаблоны v6, +# зеркало команд/шаблонов → ~/.claude/config/bmad/bmad-v6-bundle/ +# • BMAD-c9s: скиллы → ~/.claude/skills/bmad-c9s/; slash-команды → ~/.claude/commands/bmad/; +# ~/.claude/config/bmad/templates/: сначала v6, затем файлы c9s с перезаписью (одно имя = правила c9s). +# Хелперы: основной helpers.md = helpers-ru (c9s); v6 EN только helpers-bmad-v6-en.md (справка по методологии). # # Usage: ./install-v6.sh ############################################################################### set -euo pipefail -# Configuration -C9S_VERSION="1.0.0" +C9S_VERSION="1.1.0" CLAUDE_DIR="${HOME}/.claude" BMAD_CONFIG_DIR="${CLAUDE_DIR}/config/bmad" -BMAD_SKILLS_DIR="${CLAUDE_DIR}/skills/bmad" +BMAD_V6_BUNDLE_DIR="${BMAD_CONFIG_DIR}/bmad-v6-bundle" +BMAD_SKILLS_V6_DIR="${CLAUDE_DIR}/skills/bmad" +BMAD_SKILLS_C9S_DIR="${CLAUDE_DIR}/skills/bmad-c9s" BMAD_COMMANDS_DIR="${CLAUDE_DIR}/commands/bmad" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BMAD_C9S_DIR="${SCRIPT_DIR}/bmad-c9s" BMAD_V6_DIR="${SCRIPT_DIR}/bmad-v6" -# Colors GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' -NC='\033[0m' # No Color - -log_info() { - echo -e "${BLUE}ℹ${NC} $1" -} - -log_success() { - echo -e "${GREEN}✓${NC} $1" -} +NC='\033[0m' +log_info() { echo -e "${BLUE}ℹ${NC} $1"; } +log_success() { echo -e "${GREEN}✓${NC} $1"; } log_header() { echo "" echo -e "${BLUE}═══════════════════════════════════════════════${NC}" @@ -43,241 +39,232 @@ log_header() { echo "" } -############################################################################### -# Installation Functions -############################################################################### - create_directories() { - log_info "Creating directory structure..." - - mkdir -p "${BMAD_SKILLS_DIR}"/{core,bmm,bmb,cis} + log_info "Создание каталогов..." + mkdir -p "${BMAD_SKILLS_V6_DIR}"/{core,bmm,bmb,cis} + mkdir -p "${BMAD_SKILLS_C9S_DIR}"/{core,bmm,bmb,cis} mkdir -p "${BMAD_COMMANDS_DIR}" mkdir -p "${BMAD_CONFIG_DIR}"/{agents,templates} - - log_success "Directories created" + mkdir -p "${BMAD_V6_BUNDLE_DIR}"/{commands,templates,utils} + log_success "Каталоги созданы" } -install_skills() { - log_info "Installing BMAD-c9s skills from ${BMAD_C9S_DIR}/skills..." - - if [ ! -d "${BMAD_C9S_DIR}/skills" ]; then - echo "✗ Directory not found: ${BMAD_C9S_DIR}/skills" +install_v6_skills() { + log_info "Скиллы BMAD v6 → ${BMAD_SKILLS_V6_DIR}..." + if [ ! -d "${BMAD_V6_DIR}/skills" ]; then + echo "✗ Нет каталога ${BMAD_V6_DIR}/skills" exit 1 fi + for sub in core bmm bmb cis; do + if [ -d "${BMAD_V6_DIR}/skills/${sub}" ]; then + cp -r "${BMAD_V6_DIR}/skills/${sub}"/* "${BMAD_SKILLS_V6_DIR}/${sub}/" 2>/dev/null || true + fi + done + log_success "Скиллы v6 установлены (bmad-master, BMM, …)" +} - if [ -d "${BMAD_C9S_DIR}/skills/core" ]; then - cp -r "${BMAD_C9S_DIR}/skills/core"/* "${BMAD_SKILLS_DIR}/core/" - log_success "Core skills (c9s) installed" +install_c9s_skills() { + log_info "Скиллы BMAD-c9s → ${BMAD_SKILLS_C9S_DIR}..." + if [ ! -d "${BMAD_C9S_DIR}/skills" ]; then + echo "✗ Нет ${BMAD_C9S_DIR}/skills" + exit 1 fi + for sub in core bmm bmb cis; do + if [ -d "${BMAD_C9S_DIR}/skills/${sub}" ]; then + cp -r "${BMAD_C9S_DIR}/skills/${sub}"/* "${BMAD_SKILLS_C9S_DIR}/${sub}/" 2>/dev/null || true + fi + done + log_success "Скиллы c9s установлены (bmad-master-c9s, …)" +} - if [ -d "${BMAD_C9S_DIR}/skills/bmm" ]; then - cp -r "${BMAD_C9S_DIR}/skills/bmm"/* "${BMAD_SKILLS_DIR}/bmm/" 2>/dev/null || true - log_success "BMM skills (c9s) installed" +install_v6_bundle() { + log_info "Зеркало v6 (команды, шаблоны, utils) → ${BMAD_V6_BUNDLE_DIR}..." + if [ -d "${BMAD_V6_DIR}/commands" ]; then + cp "${BMAD_V6_DIR}/commands"/*.md "${BMAD_V6_BUNDLE_DIR}/commands/" 2>/dev/null || true fi - - if [ -d "${BMAD_C9S_DIR}/skills/bmb" ]; then - cp -r "${BMAD_C9S_DIR}/skills/bmb"/* "${BMAD_SKILLS_DIR}/bmb/" 2>/dev/null || true - log_success "BMB skills (c9s) installed" + if [ -d "${BMAD_V6_DIR}/templates" ]; then + cp "${BMAD_V6_DIR}/templates"/* "${BMAD_V6_BUNDLE_DIR}/templates/" 2>/dev/null || true fi + if [ -f "${BMAD_V6_DIR}/utils/helpers.md" ]; then + cp "${BMAD_V6_DIR}/utils/helpers.md" "${BMAD_V6_BUNDLE_DIR}/utils/helpers.md" + fi + log_success "bmad-v6-bundle обновлён" +} - if [ -d "${BMAD_C9S_DIR}/skills/cis" ]; then - cp -r "${BMAD_C9S_DIR}/skills/cis"/* "${BMAD_SKILLS_DIR}/cis/" 2>/dev/null || true - log_success "CIS skills (c9s) installed" +install_v6_config() { + log_info "Глобальный config BMAD v6 (config.yaml)..." + if [ -f "${BMAD_V6_DIR}/config/config.template.yaml" ]; then + if [ ! -f "${BMAD_CONFIG_DIR}/config.yaml" ]; then + sed "s/{{USER_NAME}}/${USER}/g" \ + "${BMAD_V6_DIR}/config/config.template.yaml" \ + > "${BMAD_CONFIG_DIR}/config.yaml" + log_success "config.yaml создан" + else + log_info "config.yaml уже есть — не перезаписываем" + fi + fi + if [ -f "${BMAD_V6_DIR}/config/project-config.template.yaml" ]; then + cp "${BMAD_V6_DIR}/config/project-config.template.yaml" \ + "${BMAD_CONFIG_DIR}/project-config.template.yaml" fi } -install_config() { - log_info "Installing BMAD-c9s configuration template..." - +install_c9s_config_template() { + log_info "Шаблон c9s-config..." if [ -f "${BMAD_C9S_DIR}/config/c9s-config.template.yaml" ]; then cp "${BMAD_C9S_DIR}/config/c9s-config.template.yaml" \ "${BMAD_CONFIG_DIR}/c9s-config.template.yaml" - log_success "c9s-config.template.yaml installed (copy to your results repo as c9s-config.yaml)" - else - echo "⚠ c9s-config.template.yaml not found" + log_success "c9s-config.template.yaml" fi } install_templates() { - log_info "Installing BMAD-c9s templates..." - + log_info "Шаблоны в config/bmad/templates/: база v6, затем c9s перезаписывает одноимённые файлы..." + if [ -d "${BMAD_V6_DIR}/templates" ]; then + cp "${BMAD_V6_DIR}/templates"/* "${BMAD_CONFIG_DIR}/templates/" 2>/dev/null || true + fi if [ -d "${BMAD_C9S_DIR}/templates" ]; then - cp "${BMAD_C9S_DIR}/templates"/* \ - "${BMAD_CONFIG_DIR}/templates/" 2>/dev/null || true - log_success "Templates (c9s) installed" + cp -f "${BMAD_C9S_DIR}/templates"/* "${BMAD_CONFIG_DIR}/templates/" 2>/dev/null || true fi + log_success "templates/ — приоритет у c9s при совпадении имён; чисто v6 остаётся только в bmad-v6-bundle/templates/" } -install_docs_and_helpers() { - log_info "Installing docs and helpers (c9s)..." - - if [ -f "${BMAD_C9S_DIR}/utils/helpers-ru.md" ]; then - cp "${BMAD_C9S_DIR}/utils/helpers-ru.md" \ - "${BMAD_CONFIG_DIR}/helpers-ru.md" - log_success "helpers-ru.md installed → ${BMAD_CONFIG_DIR}/helpers-ru.md" - fi - - if [ -f "${BMAD_C9S_DIR}/docs/FORMAT-CAPITAL-GITHUB.md" ]; then - cp "${BMAD_C9S_DIR}/docs/FORMAT-CAPITAL-GITHUB.md" \ - "${BMAD_CONFIG_DIR}/FORMAT-CAPITAL-GITHUB.md" - log_success "FORMAT-CAPITAL-GITHUB.md installed" - fi - - if [ -f "${BMAD_C9S_DIR}/CLAUDE.md" ]; then - cp "${BMAD_C9S_DIR}/CLAUDE.md" \ - "${BMAD_CONFIG_DIR}/CLAUDE-bmad-c9s.md" - log_success "CLAUDE-bmad-c9s.md installed (обзор пакета)" - fi - - # Опционально: англ. helpers из неизменяемого bmad-v6 (справка) +install_helpers_and_docs() { + log_info "helpers: основной текст — c9s; v6 EN — отдельный файл для методологии..." if [ -f "${BMAD_V6_DIR}/utils/helpers.md" ]; then - cp "${BMAD_V6_DIR}/utils/helpers.md" \ - "${BMAD_CONFIG_DIR}/helpers-bmad-v6-en.md" - log_success "helpers-bmad-v6-en.md (справка BMAD v6, EN) установлен" - else - log_info "bmad-v6/utils/helpers.md не найден — пропуск англ. справки" + cp "${BMAD_V6_DIR}/utils/helpers.md" "${BMAD_CONFIG_DIR}/helpers-bmad-v6-en.md" + log_success "helpers-bmad-v6-en.md (справка BMAD v6, не рабочие правила)" + fi + if [ -f "${BMAD_C9S_DIR}/utils/helpers-ru.md" ]; then + cp "${BMAD_C9S_DIR}/utils/helpers-ru.md" "${BMAD_CONFIG_DIR}/helpers-ru.md" + cp -f "${BMAD_C9S_DIR}/utils/helpers-ru.md" "${BMAD_CONFIG_DIR}/helpers.md" + log_success "helpers.md и helpers-ru.md — правила c9s" + fi + if [ -f "${BMAD_C9S_DIR}/docs/FORMAT-CAPITAL-GITHUB.md" ]; then + cp "${BMAD_C9S_DIR}/docs/FORMAT-CAPITAL-GITHUB.md" "${BMAD_CONFIG_DIR}/FORMAT-CAPITAL-GITHUB.md" + fi + for _c9s_doc in TASKS-DOCUMENTS-TIME-POLICY.md GIT-COMMITS-POLICY.md; do + if [ -f "${BMAD_C9S_DIR}/docs/${_c9s_doc}" ]; then + cp "${BMAD_C9S_DIR}/docs/${_c9s_doc}" "${BMAD_CONFIG_DIR}/${_c9s_doc}" + fi + done + if [ -f "${BMAD_C9S_DIR}/CLAUDE.md" ]; then + cp "${BMAD_C9S_DIR}/CLAUDE.md" "${BMAD_CONFIG_DIR}/CLAUDE-bmad-c9s.md" + log_success "CLAUDE-bmad-c9s.md" fi } -install_commands() { - log_info "Installing slash commands (c9s)..." - +install_commands_c9s() { + log_info "Slash-команды (обёртки c9s) → ${BMAD_COMMANDS_DIR}..." if [ -d "${BMAD_C9S_DIR}/commands" ]; then - local command_count - command_count=$(find "${BMAD_C9S_DIR}/commands" -maxdepth 1 -name "*.md" 2>/dev/null | wc -l | tr -d ' ') - - if [ "${command_count}" -gt 0 ]; then - cp "${BMAD_C9S_DIR}/commands"/*.md \ - "${BMAD_COMMANDS_DIR}/" 2>/dev/null || true - log_success "Slash commands installed (${command_count} files)" - else - echo "⚠ No command files found in bmad-c9s/commands" + local n + n=$(find "${BMAD_C9S_DIR}/commands" -maxdepth 1 -name "*.md" 2>/dev/null | wc -l | tr -d ' ') + if [ "${n}" -gt 0 ]; then + cp "${BMAD_C9S_DIR}/commands"/*.md "${BMAD_COMMANDS_DIR}/" 2>/dev/null || true + log_success "Команд: ${n}" fi - else - echo "⚠ Commands directory not found: ${BMAD_C9S_DIR}/commands" fi } verify_installation() { - log_info "Verifying installation..." - + log_info "Проверка..." local errors=0 - - if [ -f "${BMAD_SKILLS_DIR}/core/bmad-master-c9s/SKILL.md" ]; then - log_success "bmad-master-c9s skill verified" + if [ ! -f "${BMAD_SKILLS_V6_DIR}/core/bmad-master/SKILL.md" ]; then + echo "✗ v6: bmad-master отсутствует" + errors=$((errors + 1)) else - echo "✗ bmad-master-c9s skill missing" + log_success "v6 bmad-master" + fi + if [ ! -f "${BMAD_SKILLS_C9S_DIR}/core/bmad-master-c9s/SKILL.md" ]; then + echo "✗ c9s: bmad-master-c9s отсутствует" + errors=$((errors + 1)) + else + log_success "c9s bmad-master-c9s" + fi + if [ ! -f "${BMAD_V6_BUNDLE_DIR}/commands/create-story.md" ]; then + echo "✗ bmad-v6-bundle/commands/create-story.md" + errors=$((errors + 1)) + else + log_success "bmad-v6-bundle (команды)" + fi + if [ ! -f "${BMAD_CONFIG_DIR}/c9s-config.template.yaml" ]; then + echo "✗ c9s-config.template.yaml" errors=$((errors + 1)) fi - - if [ -f "${BMAD_CONFIG_DIR}/c9s-config.template.yaml" ]; then - log_success "c9s config template verified" - else - echo "✗ c9s-config.template.yaml missing" + if [ ! -f "${BMAD_COMMANDS_DIR}/c9s-init.md" ]; then + echo "✗ c9s-init.md" errors=$((errors + 1)) fi - - if [ -f "${BMAD_CONFIG_DIR}/helpers-ru.md" ]; then - log_success "helpers-ru.md verified" - else - echo "✗ helpers-ru.md missing" - errors=$((errors + 1)) - fi - - if [ -f "${BMAD_COMMANDS_DIR}/c9s-init.md" ]; then - log_success "Slash commands (c9s-init) verified" - else - echo "✗ c9s-init.md missing" - errors=$((errors + 1)) - fi - if [ $errors -eq 0 ]; then - log_success "Installation verified successfully" + log_success "Проверка пройдена" return 0 - else - echo "✗ Installation verification failed: $errors error(s)" - return 1 fi + echo "✗ Ошибок: ${errors}" + return 1 } print_next_steps() { log_header "Установка завершена" cat << EOF -📦 BMAD-c9s v${C9S_VERSION} (Coopenomics) установлен. +📦 BMAD v6 + BMAD-c9s v${C9S_VERSION} -Каталоги: - Скиллы: ${BMAD_SKILLS_DIR} - Команды: ${BMAD_COMMANDS_DIR} - Конфиг: ${BMAD_CONFIG_DIR} +Скиллы (два пространства имён): + v6 (оригинал): ${BMAD_SKILLS_V6_DIR} + c9s (Coopenomics): ${BMAD_SKILLS_C9S_DIR} -Что установлено: - • Скиллы из bmad-c9s/ (оркестратор bmad-master-c9s, роли BMM, CIS, builder, c9s-master-review) - • Команды из bmad-c9s/commands/ (/c9s-init, /c9s-status, /prd, …) - • Шаблон c9s-config.template.yaml, helpers-ru.md, FORMAT-CAPITAL-GITHUB.md, CLAUDE-bmad-c9s.md - • При наличии репозитория: helpers-bmad-v6-en.md (оригинал BMAD v6, только справка) +Команды в UI: обёртки c9s → ${BMAD_COMMANDS_DIR} +Канон v6 для «Детали» в обёртках → ${BMAD_V6_BUNDLE_DIR}/commands/ +Конфиг: ${BMAD_CONFIG_DIR}/config.yaml (v6) + c9s-config.template.yaml + templates/ (одно имя файла — версия c9s) + helpers.md (= правила c9s, см. helpers-ru) -Исходники v6 (bmad-v6/) в репозитории не изменяются и не копируются как основные скиллы. +Приоритет: артефакты и хелперы — c9s; методология (пошаговые команды v6, EN-хелпер) — bmad-v6-bundle/ и helpers-bmad-v6-en.md; обзор c9s — [CLAUDE-bmad-c9s.md](${BMAD_CONFIG_DIR}/CLAUDE-bmad-c9s.md). -📋 Дальше: - -1️⃣ ${BLUE}Перезапустите Claude Code${NC} - -2️⃣ ${BLUE}Скопируйте${NC} ${BMAD_CONFIG_DIR}/c9s-config.template.yaml - в корень репозитория результатов как c9s-config.yaml и заполните пути. - -3️⃣ ${BLUE}Инициализация:${NC} /c9s-init (скилл bmad-master-c9s) - -4️⃣ ${BLUE}Статус:${NC} /c9s-status - -📚 Документация после установки: - ${BMAD_CONFIG_DIR}/CLAUDE-bmad-c9s.md - ${BMAD_CONFIG_DIR}/FORMAT-CAPITAL-GITHUB.md - ${BMAD_CONFIG_DIR}/helpers-ru.md - -📚 Исходники пакета в репозитории: - ${BMAD_C9S_DIR}/ +Дальше: + 1. Перезапустите Claude Code + 2. Для Capital: скопируйте c9s-config.template.yaml в репозиторий результатов как c9s-config.yaml + 3. /c9s-init — инициализация c9s (скилл из bmad-c9s) + 4. Оригинальный оркестратор v6: скилл bmad-master в skills/bmad Проверка: - ls -la ~/.claude/skills/bmad/core/bmad-master-c9s/SKILL.md - ls -la ~/.claude/commands/bmad/c9s-init.md + ls ${BMAD_SKILLS_V6_DIR}/core/bmad-master/SKILL.md + ls ${BMAD_SKILLS_C9S_DIR}/core/bmad-master-c9s/SKILL.md + ls ${BMAD_V6_BUNDLE_DIR}/commands/prd.md -${GREEN}✓ BMAD-c9s готов.${NC} +${GREEN}✓ Готово.${NC} EOF } -############################################################################### -# Main Installation -############################################################################### - main() { - log_header "BMAD-c9s v${C9S_VERSION} — установщик" + log_header "BMAD v6 + BMAD-c9s — установщик" if [ ! -d "${BMAD_C9S_DIR}" ]; then - echo "✗ Каталог bmad-c9s не найден: ${BMAD_C9S_DIR}" - echo " Запускайте скрипт из корня репозитория claude-code-bmad-skills." + echo "✗ Нет ${BMAD_C9S_DIR}" + exit 1 + fi + if [ ! -d "${BMAD_V6_DIR}/skills" ]; then + echo "✗ Нет ${BMAD_V6_DIR}/skills (нужен полный репозиторий claude-code-bmad-skills)" exit 1 fi if [ ! -d "${CLAUDE_DIR}" ]; then - log_info "Creating Claude Code directory: ${CLAUDE_DIR}" mkdir -p "${CLAUDE_DIR}" fi create_directories - install_skills - install_config + install_v6_skills + install_c9s_skills + install_v6_bundle + install_v6_config + install_c9s_config_template install_templates - install_docs_and_helpers - install_commands + install_helpers_and_docs + install_commands_c9s if verify_installation; then print_next_steps exit 0 - else - echo "Installation failed" - exit 1 fi + exit 1 } main "$@"