Files
factory/.tasks/STATUS.md

144 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Task Board
_Updated: 2026-06-11_ (factory-make-public done)
<!--
Add one block per task, sorted by priority. Use the emoji status legend below.
Per-task deep context lives in .tasks/<task-slug>.md (created on demand by using-tasks).
Block format:
## 🔴 [task-slug] — short description
**Status:** active
**Where I stopped:** one sentence — the exact thought or action interrupted
**Next action:** one concrete step to resume immediately
**Blocker:** (only if blocked) what is preventing progress
**Branch:** git branch name
---
Status legend:
🔴 Active — only one at a time
🟡 Paused — in progress, resumable
⚪ Ready — defined, not started
🟢 Done — kept until merged
🔵 Blocked — waiting on external input
-->
## 🟢 [infra-as-product-pointers] — Bootstrap-pointers для design infra-as-product. Pre-fills target's `.wiki/CLAUDE.md` Domain conventions ссылками на спецификацию. Дизайн лежит в `concepts/infra-as-product.md` этого репо — нужен pointer-stub чтобы следующий агент не угадывал архитектуру из where_stopped one-liner'ов.
**Кто делает:** любой следующий агент в этом проекте. Первая по приоритету таска — все остальные импл-таски ссылаются на дизайн через .wiki/CLAUDE.md.
**Status:** done
**Where I stopped:** fore implementing any factory component. Do not invent the architecture from task prompts alone."
**Assumption noted:** The task's "Next action" block appeared to be minimal/truncated. I expanded it to a proper pointer stub (link + summary + guard) rather than inserting only the bare guard sentence — this is more useful for a future agent and is trivially reversible if the format needs adjusting.
**Next action:** (none — kept until merged)
### Mandatory: read design context before implementation
Before picking up any task in `.tasks/`, load the full design context:
1. **Design doc (canonical):** `.wiki/concepts/infra-as-product.md` — архитектура factory v1, модульная система, checklist до Алексея.
2. **Brainstorm process trace (rationale):** `~/projects/.workshop/.archive/2026-06-11-infra-as-product.md` — почему каждое решение принято, что отвергнуто.
Закоммитить: `wiki(claude): add design-context pointers for infra-as-product`.
**Branch:** n/a
**Weight:** needs-claude
**Notify:** OpeItcLoc03/workshop
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:37:09.462Z -->
<!-- closed-by: OpeItcLoc03@DESKTOP-NSEF0UK / 2026-06-11T10:00:59.127Z / note: fore implementing any factory component. Do not invent the architecture from task prompts alone."
**Assumption noted:** The task's "Next action" block appeared to be minimal/truncated. I expanded it to a proper pointer stub (link + summary + guard) rather than inserting only the bare guard sentence — this is more useful for a future agent and is trivially reversible if the format needs adjusting. -->
---
## 🟢 [factory-make-public] — Сделать репо OpeItcLoc03/factory публичным на git.kzntsv.site. Сейчас private — внешние пользователи не могут клонировать. Это первый шаг перед тем как давать factory Алексею или кому-либо ещё.
**Status:** done
**Where I stopped:** Repo made public via PATCH /api/v1/repos/OpeItcLoc03/factory {"private": false}. API confirmed private=false.
**Next action:** (none — kept until merged)
**Branch:** n/a
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:37:15.354Z -->
<!-- closed-by: DESKTOP-NSEF0UK:claude-sonnet / 2026-06-11 / note: PATCH API returned private=false. Repo publicly cloneable at https://git.kzntsv.site/OpeItcLoc03/factory -->
---
## 🟢 [factory-bundle-mcp-servers] — Перенести MCP-серверы из `.common/lib/` в `factory/lib/` — курировано, без нашей операционной кухни (secrets/, config/, .tasks/). Три сервера: projects-meta-mcp, wiki-graph, interns-mcp. Источник в .common остаётся для нашей dev-среды.
**Status:** done
**Where I stopped:** commit ca669d9 — 116 files, lib/{projects-meta-mcp,wiki-graph,interns-mcp} + .gitignore + bootstrap.ps1 build step
**Next action:** (none — kept until merged)
**Branch:** n/a
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:37:23.499Z -->
<!-- closed-by: OpeItcLoc03@DESKTOP-NSEF0UK / 2026-06-11T10:17:40.095Z / note: commit ca669d9 — 116 files, lib/{projects-meta-mcp,wiki-graph,interns-mcp} + .gitignore + bootstrap.ps1 build step -->
---
## 🟢 [factory-bundle-skills] — Перенести минимальный набор скилов из claude-skills в factory/skills/. Bootstrap копирует их в ~/.claude/skills/ при установке. Минимальный набор: setup-wiki, using-wiki, setup-tasks, using-tasks, superpowers, project-discipline, pulling-before-work, active-platform, caveman.
**Status:** done
**Where I stopped:** perpowers:brainstorming` (namespaced) depends on how it handles nested skill directories — if it doesn't, installing the plugin via `/plugin install superpowers@claude-plugins-official` remains the correct path for superpowers skills, and the bundled copy serves as a pinned offline fallback. The alternative I passed over: skipping superpowers from the bundle entirely and keeping it as plugin-only.
**Next action:** (none — kept until merged)
**Branch:** n/a
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:37:30.877Z -->
<!-- closed-by: OpeItcLoc03@DESKTOP-NSEF0UK / 2026-06-11T10:25:21.888Z / note: perpowers:brainstorming` (namespaced) depends on how it handles nested skill directories — if it doesn't, installing the plugin via `/plugin install superpowers@claude-plugins-official` remains the correct path for superpowers skills, and the bundled copy serves as a pinned offline fallback. The alternative I passed over: skipping superpowers from the bundle entirely and keeping it as plugin-only. -->
---
## 🟢 [factory-write-yaml] — Написать factory.yaml — манифест компонентов с версиями и модульной системой. Ядро (всегда): MCP-серверы + skills. Модули (опционально): tasks, wiki, workshop, admin. Каждый модуль описывает что создаётся (Gitea-репо, локальный клон, CLAUDE.md-шаблон).
**Status:** done
**Where I stopped:** commit 0710baa — factory.yaml restructured (schema_version 1, core/modules split, 4 components + 4 modules with creates[]); bootstrap.ps1 gains Read-FactoryManifest + manifest-driven MCP build loop
**Next action:** (none — kept until merged)
**Branch:** n/a
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:37:38.615Z -->
<!-- closed-by: OpeItcLoc03@DESKTOP-NSEF0UK / 2026-06-11T10:34:38.439Z / note: commit 0710baa — factory.yaml restructured (schema_version 1, core/modules split, 4 components + 4 modules with creates[]); bootstrap.ps1 gains Read-FactoryManifest + manifest-driven MCP build loop -->
---
## 🔵 [factory-write-bootstrap] — Дописать bootstrap.ps1 — закрыть все gaps из L0/install-log.md. Скрипт должен быть non-interactive и идемпотентным. Поддерживает --update режим. Параметризует git_host (не хардкодит git.kzntsv.site). Спрашивает какие модули включить. Создаёт Gitea-репо через API для выбранных модулей.
**Status:** blocked
**Where I stopped:** exit 1
**Next action:** Читать L0/install-log.md — все gaps отмечены. Ключевые: (1) winget PATH сброс требует restart — скрипт должен самозавершаться с --resume; (2) claude native через irm не через npm-global; (3) git clone с extraheader не с USER:TOKEN@ в URL; (4) home.toml через Set-Content не here-string; (5) Gitea API для создания wiki/workshop репо. secrets.toml вместо разрозненных auth.toml+interns.env.
**Branch:** n/a
**Owner:** DESKTOP-NSEF0UK:claude-sonnet:34612
**Claim token:** 748e2320-3daf-4cb8-bab7-e87422a96b34
**Claim expires at:** 2026-06-11T11:28:31.797Z
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:37:49.470Z -->
---
## ⚪ [factory-test-laptop] — Тест чистой установки factory на новом ноуте (field-test 2026-05-06, частично настроен через старый ручной метод). Сброс старой установки, чистый прогон bootstrap.ps1. Ноут = наш beta-test до Алексея.
**Status:** ready
**Where I stopped:** (not started)
**Next action:** На ноуте: удалить старые артефакты (/.factory, /.common, ~/.claude/skills/, mcpServers из ~/.claude.json). Клонировать публичный factory. Запустить bootstrap.ps1. Пройти по install-log.md как чеклисту — все шаги должны пройти без ручных workaround'ов.
**Branch:** n/a
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:37:58.756Z -->
---
## ⚪ [infra-as-product-review] — Review checkpoint для брейнсторма infra-as-product (промоушен 2026-06-11).
**Спецификация:** `.wiki/concepts/infra-as-product.md` в OpeItcLoc03/factory.
**Pre-impl bootstrap:** `infra-as-product-pointers`.
**Импл-таски:** factory-make-public, factory-bundle-mcp-servers, factory-bundle-skills, factory-write-yaml, factory-write-bootstrap, factory-test-laptop.
**Кто делает:** не имплементер. Следующая сессия с чистым контекстом.
**Чек-лист:**
- bootstrap.ps1 прогоняется на чистой машине без ручных workaround'ов
- git_host параметризован — нет хардкода git.kzntsv.site
- secrets.toml заменяет auth.toml + interns.env
- Модульный выбор работает (tasks/wiki/workshop/admin)
- --update режим идемпотентен
**Status:** ready
**Where I stopped:** (not started)
**Next action:** Дождаться 🟢 у всех blocker-тасок включая infra-as-product-pointers. Прочитать спецификацию. Проверить factory на чистой машине по чек-листу. Findings → follow-up tasks.
**Branch:** n/a
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-11T07:38:11.524Z -->
---