meta(wiki): ingest concepts/infra-as-product in OpeItcLoc03/factory
This commit is contained in:
109
.wiki/concepts/infra-as-product.md
Normal file
109
.wiki/concepts/infra-as-product.md
Normal file
@@ -0,0 +1,109 @@
|
||||
---
|
||||
title: Factory — инфраструктура как продукт
|
||||
updated: '2026-06-11'
|
||||
source: .workshop/.brainstorm/infra-as-product.md (rounds 1-5)
|
||||
type: concept
|
||||
ingested_at: '2026-06-11T07:29:08.884Z'
|
||||
ingested_by: OpeItcLoc03@DESKTOP-NSEF0UK
|
||||
source_project: OpeItcLoc03/workshop
|
||||
---
|
||||
## Контекст
|
||||
|
||||
Factory — дистрибутив инфраструктуры OpeItcLoc03 для внешних пользователей. Первый потребитель — Алексей (собственный Gitea). Цель: отделить разработку инфраструктуры от её эксплуатации через машинную границу.
|
||||
|
||||
## Рамка: «ОС для AI-native цеха»
|
||||
|
||||
Наша инфраструктура — не набор утилит, а операционная система для AI-native цеха. Шесть слоёв:
|
||||
|
||||
| Слой | Компонент | Статус |
|
||||
|---|---|---|
|
||||
| 1 Физический | VDS + NAS | 🟢 |
|
||||
| 2 Control plane | projects-meta-mcp | 🟢 (Gitea-coupled) |
|
||||
| 3 Знание | wiki-graph, wiki-pattern | 🟢 доказано, контрарианское |
|
||||
| 4 Рабочая сила | interns 🟢 · coworkers 🔵 | 🟡 |
|
||||
| 5 Оркестрация | agents-task-runner v0.6.1 | 🟢 spawn-баг починен |
|
||||
| 6 Методология | claude-skills (31 скил) | 🟢 |
|
||||
|
||||
Дифференциатор — слой 3 (знание без RAG). Весь рынок болтает vector-DB; мы доказали что для курируемого корпуса linked-plaintext + graph-traversal бьёт RAG по recall и auditable.
|
||||
|
||||
## Factory v1 — архитектура дистрибутива
|
||||
|
||||
**Один публичный репо** на git.kzntsv.site (позже GitHub). Не flip видимости `.common`, не много отдельных репо — один курированный артефакт.
|
||||
|
||||
### Состав репо
|
||||
|
||||
```
|
||||
factory/
|
||||
├── bootstrap.ps1 ← L1 (Go-бинарь не нужен для v1)
|
||||
├── factory.yaml ← манифест компонентов с версиями
|
||||
├── lib/
|
||||
│ ├── projects-meta-mcp/ ← источник (собирается bootstrap'ом)
|
||||
│ ├── wiki-graph/
|
||||
│ └── interns-mcp/
|
||||
└── skills/ ← минимальный набор setup-*/using-*
|
||||
```
|
||||
|
||||
### Конфигурация (два файла)
|
||||
|
||||
- `factory.yaml` — ЧТО ставить (компоненты, версии). Шипит с репо.
|
||||
- `~/.config/factory/home.toml` — машинный конфиг (projects_dir, git_host). Генерится при установке.
|
||||
- `~/.config/factory/secrets.toml` — все API-ключи единым файлом. Git-кредентиалы в GCM.
|
||||
|
||||
### Модульная система
|
||||
|
||||
Bootstrap спрашивает при установке какие модули включить:
|
||||
|
||||
- **Ядро (всегда):** `.factory` (инструменты) + skills + `~/.claude.json` с MCP-серверами
|
||||
- **tasks** (опционально): projects-meta + per-project `.tasks/`
|
||||
- **wiki** (опционально): общая `.wiki/` + per-project `.wiki/`
|
||||
- **workshop** (опционально): boss-zone для дизайна
|
||||
- **admin** (опционально): ops-зона
|
||||
|
||||
### Файловая структура у пользователя после установки
|
||||
|
||||
```
|
||||
projects\
|
||||
├── .factory\ ← tools (наш Gitea)
|
||||
├── [.wiki\] ← опц.: общая вики (его Gitea, bootstrap создаёт)
|
||||
├── [.workshop\] ← опц.: boss-zone
|
||||
├── [.admin\] ← опц.: ops-зона
|
||||
└── my-project\
|
||||
├── [.tasks\]
|
||||
└── [.wiki\]
|
||||
|
||||
~/.config/factory/
|
||||
├── home.toml ← его git_host, projects_dir
|
||||
└── secrets.toml ← его PAT, API-ключи
|
||||
|
||||
~/.claude/skills/ ← скопировано из .factory/skills/ bootstrap'ом
|
||||
~/.claude.json ← mcpServers → .factory/lib/*
|
||||
```
|
||||
|
||||
`.wiki/` — данные пользователя (его Gitea, его remote). Bootstrap создаёт wiki-репо на его Gitea и клонирует локально. **Не** является частью `.factory/`.
|
||||
|
||||
## Dev/prod разделение
|
||||
|
||||
- **Dev-машина:** работаем по живому в `.common`, принимаем боль, разрабатываем
|
||||
- **Prod-машина (ноут):** ставим из factory, получаем чистый стабильный опыт
|
||||
- Машинная граница = dev/prod граница — никакого двойного конфига на одной машине
|
||||
|
||||
`main` ветка публичного `factory` = всегда releasable. Dev-работа в приватном `.common` на ветках; в `factory` попадает только протестированное.
|
||||
|
||||
## Версионирование и обновления
|
||||
|
||||
Версия = git-тег factory-репо. Обновление:
|
||||
```
|
||||
git -C ~/.factory pull --ff-only
|
||||
pwsh ~/.factory/bootstrap.ps1 --update
|
||||
```
|
||||
Скрипт идемпотентен. `home.toml` и `secrets.toml` при `--update` не трогаются никогда.
|
||||
|
||||
## Checklist до первого пользователя (Алексей)
|
||||
|
||||
1. Создать публичный репо `factory` на git.kzntsv.site
|
||||
2. Перенести MCP-серверы из `.common/lib/` в `factory/lib/`
|
||||
3. Перенести минимальный набор скилов в `factory/skills/`
|
||||
4. Написать `factory.yaml`
|
||||
5. Дописать `bootstrap.ps1` (закрыть gaps из `L0/install-log.md`)
|
||||
6. Параметризовать git_host
|
||||
7. Протестировать на ноуте (field-test 2026-05-06 как чеклист)
|
||||
Reference in New Issue
Block a user