# Task Board _Updated: 2026-06-11_ (factory-make-public done) ## 🟢 [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 --- ## 🟢 [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 --- ## 🟢 [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 --- ## 🟢 [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 --- ## 🟢 [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 --- ## 🔵 [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:** 9c07bd89-0a64-417b-ab1a-c2f701d062c6 **Claim expires at:** 2026-06-11T11:49:11.541Z --- ## ⚪ [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 --- ## ⚪ [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 ---