Promote factory-bootstrap → factory wiki + 2 tasks; archive buffer
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.
This commit is contained in:
@@ -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/<repo>/` (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/<repo>/` — естественный момент менять имена; (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 успешен. Готов к промоушену.
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user