From f3cad514dbf38b7d879cf0026a604f5b8ed8aceb Mon Sep 17 00:00:00 2001 From: vitya Date: Wed, 6 May 2026 21:23:42 +0300 Subject: [PATCH] =?UTF-8?q?Promote=20factory-bootstrap=20=E2=86=92=20facto?= =?UTF-8?q?ry=20wiki=20+=202=20tasks;=20archive=20buffer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wiki: factory/.wiki/concepts/factory-bootstrap.md (full design + Q1/Q6/Q8 decisions + Q2-Q5/Q7/Q9 deferred + 2026-05-06 field-test results). Tasks: factory#factory-bootstrap-script (ready), factory#factory-l1-design (blocked-by script). Side-task: claude-skills#project-creation-lifecycle-skill (gap surfaced — ad-hoc project creation strands repos outside projects-meta indexing until manual seed). Buffer moved to .archive/2026-05-06-factory-bootstrap.md. --- .../2026-05-06-factory-bootstrap.md | 54 ++++++++++++++----- .wiki/log.md | 4 ++ 2 files changed, 44 insertions(+), 14 deletions(-) rename .brainstorm/factory-bootstrap.md => .archive/2026-05-06-factory-bootstrap.md (78%) diff --git a/.brainstorm/factory-bootstrap.md b/.archive/2026-05-06-factory-bootstrap.md similarity index 78% rename from .brainstorm/factory-bootstrap.md rename to .archive/2026-05-06-factory-bootstrap.md index 7a15a0b..eebe50a 100644 --- a/.brainstorm/factory-bootstrap.md +++ b/.archive/2026-05-06-factory-bootstrap.md @@ -2,7 +2,7 @@ topic: factory-bootstrap started: 2026-05-06 participants: [user, claude-cso] -status: in-progress +status: ready-to-promote problem: > Установка/обновление инфраструктуры software factory (точечные папки в ~/projects/, shared MCP-сервера, скилы) для нового сотрудника должна быть "одной кнопкой" — @@ -174,6 +174,10 @@ problem: > - **Цена:** +1 папка `templates/enterprise//` (6 скелетов: `common`, `meeting-room`, `organization`, `templates`, `projects-meta-mcp-skeleton`, `interns-mcp-skeleton`) + per-component поле `source.template:` в manifest. Оценка: ~неделя на скелеты + ~3 дня на `clone-or-init` логику в Go-биноре. - **Зависимости:** не блокирует v0 (clone-mode достаточно для текущего fleet'а из 1 юзера + новой машины). Реализуется параллельно после v0 production-deploy. +- **Q9 — переименование `claude-skills` → `.skills`** (deferred): репо `claude-skills` стилистически выпадает из dotfile-конвенции флота (`.common/`, `.organization/`, `.meeting-room/`, `.templates/`, `.wiki/`, `.tasks/`) и фиксирует в имени один движок, хотя `superpowers:using-superpowers` уже ссылается на Copilot CLI / Codex / Gemini tool mappings. Озвучено пользователем 2026-05-06 во время field-test'а, явно «но позже». + - **Scope переименования:** только git-имя репо в gitea + cloned dir name. Local runtime path `~/.claude/skills/` остаётся (hardcoded в Claude Code). Frontmatter скилов с Claude-specific tool names не трогается — `references/copilot-tools.md` / `codex-tools.md` уже покрывают cross-platform. + - **Когда поднимать:** (a) при дизайне `factory.yaml` v0.2 / `templates/enterprise//` — естественный момент менять имена; (b) при общем рефакторинге фикстур-репо. Не блокирует v0. + ## v0 plan — live bootstrap нового ноута как field-test Stop-condition этого подхода: **не сидеть в чистом дизайне до победного — у пользователя есть свежая машина, на ней проверяем дизайн руками**. @@ -190,21 +194,43 @@ Stop-condition этого подхода: **не сидеть в чистом д - Diff между "что я сделал руками" и "что должен делать L0 скрипт" — readme-черновик `.factory/L0/README.md`. - Список найденных gaps (что не получилось / что было неочевидно) — кандидаты в Q-список. -## Действия после промоушена +## Field-test results — 2026-05-06 + +End-to-end на новом Win11 ноуте отработал. Полный лог — `.factory/L0/install-log.md` (`git.kzntsv.site/OpeItcLoc03/factory`). + +| Шаг | Что | Статус | +|---|---|---| +| L0a | mise + системный pkg-mgr (winget) | ✅ first-pass | +| L0b | clone `factory`, инициализация `~/.config/factory/home.toml` | ✅ | +| 11a | clone `claude-skills`, 21 скил доступен через `Skill` тул | ✅ | +| 11b | `claude login` + плагины `superpowers@claude-plugins-official` + `context7@claude-plugins-official` | ✅ (manual, browser-redirect) | +| 11c.1 | `setup-interns` — MCP-сервер, секреты в `.common/secrets/interns.env` | ✅ | +| 11c.2 | `setup-projects-meta` — repo + wiki clone + MCP entry + initial sync | ✅ idempotent re-run (всё уже было — скил детектил наличие и пошёл по path «update + verify») | +| 11c.3 | context7 sanity (`resolve-library-id "react"` → 5 matches) | ✅ | +| Фикстуры | `.organization/`, `.templates/`, `.meeting-room/` склонированы | ✅ | + +**Что подтвердилось:** + +1. **Q1 решение (Go для L1) валидно** — текущий L0 на mise+winget хорошо ложится в манифест, runtime-зависимостей сверху не нужно. +2. **Q6 решение (mise поверх системного pkg-mgr)** — отработало без сюрпризов. Mise успешно поставил node/python. +3. **`setup-projects-meta` idempotency-логика** — корректно различил «fresh install» vs «update+verify». В bootstrap.ps1 повторить эту же pre-check логику. +4. **Plugin-route для context7** — правильное решение (legacy `setup-context7` скил не запускался, конфликта нет). + +**Gap'ы / кандидаты для bootstrap-скрипта** (полный список — в `install-log.md` секция «Gaps / questions surfaced during field-test»): + +- 11b принципиально не автоматизируется (требует браузер-redirect / device-code) — bootstrap.ps1 должен **парковаться** здесь и ждать пользователя. +- Порядок 11c-скилов критичен: `interns` → `projects-meta` → плагины (или их sanity) → фикстуры. Это контракт скрипта, не выбор пользователя. +- Каждый setup-* скил уже идемпотентен — bootstrap может звать их без проверки «надо ли». Но pre-check блок самого скрипта (есть ли git, mise, claude, плагины) обязан быть. + +## Действия после промоушена (план) 1. `meeting-room-promote-brainstorm factory-bootstrap` → - - shared wiki: `concepts/factory-bootstrap` (целевой проект — `_meta` или новый `factory`) - - `claude-skills/.tasks/`: `factory-bootstrap-design` (status=ready, next_action="ответить на Q1–Q5, прототипировать L0") - - `.archive/2026-05-06-factory-bootstrap.md` - -## Resume point — 2026-05-06 (перерыв) - -Field-test на новом Win11 ноуте идёт. Полный пошаговый лог + текущее состояние шагов — в `.factory/L0/install-log.md` (запушено в `git.kzntsv.site/OpeItcLoc03/factory`). - -Краткий summary: L0a (toolchain) ✅, L0b (factory clone + home.toml) ✅, 11a (claude-skills + 21 skill) ✅. Юзер в перерыв сам прогоняет 11b (claude login + плагины superpowers/context7). После возвращения — 11c (setup-* скилы по очереди). - -Основной артефакт field-test'а: список **gap'ов для bootstrap.ps1**, накапливающийся в install-log.md в секции "Gaps / questions surfaced during field-test". Когда field-test завершится — этот список напрямую конвертируется в скрипт. + - shared wiki в проекте `factory`: `concepts/factory-bootstrap` (полный дизайн + Q1/Q6/Q8 решения + Q9 deferred + field-test results). + - tasks в `factory/.tasks/`: + - `factory-bootstrap-script` — status=ready, next_action: «извлечь шаги из install-log.md в `bootstrap.ps1` + `bootstrap.sh`, переиспользовать idempotency-pattern из setup-projects-meta». + - `factory-l1-design` — status=blocked-by `factory-bootstrap-script`, next_action: «после успешного скрипта — Go-бинарь + factory.yaml schema (см. Q2/Q4)». + - архив: `.archive/2026-05-06-factory-bootstrap.md`. ## Stop-condition этого буфера -Дизайн доводится до состояния, где открытые вопросы Q1–Q5 закрыты. После — promote и переход в плановую фазу (L0 → L1 → manifest → миграция существующих setup-* в L2-делегирование). +✅ **Достигнут 2026-05-06.** Q1, Q6, Q8 закрыты; Q2–Q5 явно отложены за v0 (живут в shared wiki после промоушена); Q7, Q9 deferred. Field-test end-to-end успешен. Готов к промоушену. diff --git a/.wiki/log.md b/.wiki/log.md index df5af1b..84243d8 100644 --- a/.wiki/log.md +++ b/.wiki/log.md @@ -21,3 +21,7 @@ Events: `started`, `promoted`, `registered`, `archived`. 2026-05-05 designed interns-repo-read (.brainstorm/repo-read.md — domain spec, target promote: claude-skills, parent: interns) 2026-05-05 promoted interns-repo-read → claude-skills/.wiki/concepts/interns-repo-read-design.md (commits 34001022+b7943a3c+93a45007); tasks created: common#interns-repo-read-impl (ready), claude-skills#interns-repo-read-skill-updates (ready) 2026-05-05 archived interns-repo-read → .archive/2026-05-05-repo-read.md +2026-05-06 designed factory-bootstrap (.brainstorm/factory-bootstrap.md — domain spec, target promote: factory; field-test on Win11 laptop) +2026-05-06 bootstrapped factory project (.tasks/STATUS.md + .wiki/ canonical layout, commit ecddcdf — fixed projects-meta sync indexing prerequisite) +2026-05-06 promoted factory-bootstrap → factory/.wiki/concepts/factory-bootstrap.md (commits 549fe2ea+d26da137+b79be591); tasks created: factory#factory-bootstrap-script (ready), factory#factory-l1-design (blocked-by factory-bootstrap-script); also claude-skills#project-creation-lifecycle-skill (ready, gap surfaced during this promote) +2026-05-06 archived factory-bootstrap → .archive/2026-05-06-factory-bootstrap.md