12проектов прошли создание и intake
12build jobs запустились и завершились ошибкой
0новых проектов дошли до mirror/prod
8AI-визуалов реально созданы через Replicate
Главный факт сейчас
Кабинет создает проект, задает вопросы, делает quality contract, выбирает паки и даже генерирует часть визуалов. Но изготовление страницы сейчас не происходит: Claude Code возвращает 403 oauth_org_not_allowed, поэтому index.html не создается, а deploy блокируется.
Что подтверждено на старых успешных проектах
Когда index.html есть, система умеет поднять mirror/prod: копирует файлы в /var/lib/katma/deploys, запускает nginx-контейнер, пишет Caddy fragment и делает health-check.
Мастер-карта этапов
1
Вход в кабинет
Пользователь заходит в app.katma.ru. Для нового устройства кабинет просит Telegram-код, потом создает owner session.
Что видит пользовательФорма входа, потом dashboard.
Что внутриFastify auth, Postgres session, Redis pending 2FA, audit log.
Факт аудитаВход выполнен, /api/me вернул 200.
2
Создание “коробки” проекта
Пользователь вводит slug, название, тип проекта и выбирает “сначала зеркало” или “сразу прод”.
Что создаетсяProject row, отдельная БД proj_*, роль БД, пароль в vault, subdomain и mirror subdomain.
СервисыNext.js UI -> Fastify API -> Postgres/vault/provision.
Факт аудитаВсе aud628* проекты получили свои DB names и secret refs.
3
Приемка идеи
Кабинет запускает intake: понимает идею, выбирает категорию и показывает вопросы по типу проекта.
Что видит пользователь6 шагов: идея, осмысление, вопросы, проза, финальные вопросы, работа.
Что внутриintake_sessions, intake_artifacts, question bank, engine /complete.
Реальность сейчасAI-артефакты сохраняют текст ошибки Claude 403 как judge_opinion.
4
Ответы и подтверждение прозы
Пользователь отвечает на вопросы. Перед сборкой нужно нажать “Это ок” на прозе спецификации.
ЗащитаBuild guard не должен пускать проект без prose_ok=true.
Факт аудитаПравильный UI-путь через /intake/prose пропустил 12 проектов дальше.
Диагностический фактЕсли ошибочно ответить на prose через /intake/answer, можно получить 500 и странное состояние done/prose_ok=false.
5
Quality contract и паки
Перед сборкой кабинет создает контракт качества: что обязательно должно быть, какие проверки нужны, какие паки применить.
ПакиБазовые: accessibility, responsive-design, frontend-testing, final-review, self-critique. Дальше добавляются по типу проекта.
Опыт/знанияPROJECT_BRAIN.md, PACKS_APPLIED.md, активный mechanics standard.
Факт аудитаУ всех 12 проектов создан project-quality-spec.v2 со статусом approved.
6
Очередь сборки
Проект попадает в BullMQ очередь prod:build. Worker берет задачу и готовит папку проекта.
Файлы до сборкиAGENTS.md, CLAUDE.md, PROJECT_BRAIN.md, BUILD_STRATEGY.json, PACKS_APPLIED.md.
AI-исполнительПлан и build идут через claude-haiku-4-5; проверка/fix должны идти через Opus.
Факт аудита12 задач дошли до worker, но все остановились на build produced no index.html.
7
Визуальные ассеты
Если quality contract требует hero/icon, worker запускает visual preflight до генерации страницы.
Что использовалосьReplicate, модель flux-schnell.
Что получилось8 visual asset records: icon + hero для лендингов и сайтов.
ОграничениеHiggsfield в dashboard был недоступен; в этих прогонах он не использовался.
8
Изготовление страницы
На этом этапе агент должен написать plan.md, затем index.html.
Норма процессаPlan -> Build -> Critique -> Verify -> Fix loop -> Evidence.
Реальность сейчасClaude CLI возвращает 403 и текст ошибки вместо работы модели.
Итогindex.html не создан ни в одном новом проекте.
9
Проверка качества
Если страница создана, система проверяет ее как живой сайт: HTTP, HTML, viewport, скриншоты, scorecard.
Что проверяетсяProject eval, browser evidence, layout audit, asset provenance, quality scorecard.
Факт новых прогоновНе дошли до проверки, потому что нет index.html.
Факт старых успешныхcrypto и hublot имеют scorecard 100/100 и live 200 внутри контейнера.
10
Зеркало
После успешной сборки проект должен попасть на mirror: безопасную превью-версию.
Как устроеноКопирование в /var/lib/katma/deploys/<slug>/mirror, nginx container, Caddy fragment, health-check.
Факт новых прогоновDeploy mirror вернул 409 build_artifact_missing.
Факт старых успешныхСуществуют живые mirror-контейнеры, например crypto-mirror.
11
Продакшен
Для prod нужны artifact, re-auth, quality gate или owner override, explicit confirm для staging-first.
Что блокируетНет index.html -> API сразу возвращает build_artifact_missing.
ПубличностьПубличность задается Caddy fragment: если при deploy стоит private, снаружи будет 403.
ФактНовые проекты не дошли до prod. Старые crypto/hublot live, но private: без авторизации 403.
12
После деплоя
Когда prod health-check зеленый, проект становится published. Если только mirror, он остается в review.
Что сохраняетсяDeploy rows, evidence manifest, quality scores, screenshots, decision log, audit chain.
СамообучениеНа успешных сборках пишутся cases/lessons. Например, у crypto promoted lesson после fix-pass.
Факт новых прогоновИз-за build failure post-build learning не сработал.
Прогоны аудита
| Категория |
Slugs |
Что произошло |
Итог |
| Лендинг | aud628lm2, aud628ldet | Intake, quality spec, packs, Replicate icon+hero. | build failed |
| Презентация | aud628presm, aud628presd | Intake, research strategy, source-citation/deck packs. | build failed |
| Сайт | aud628sitem, aud628sited | Intake, quality spec, Replicate icon+hero. | build failed |
| Исследование | aud628resm, aud628resd | Intake, research report strategy, source discipline. | build failed |
| AI-автоматизация | aud628aim, aud628aid | Intake, automation control-plane strategy, observability/API packs. | build failed |
| Автономный бизнес-проект | aud628bizm, aud628bizd | Intake, business-turnkey strategy, app/API/observability packs. | build failed |
Участвующие сервисы и инструменты
UI: Next.js. API: Fastify. Данные: Postgres. Очереди: Redis/BullMQ.
Сборка: panel-worker + Claude Code CLI. Визуалы: Replicate flux-schnell.
Деплой: static files -> nginx container -> Caddy fragment -> health-check.
Коннекторы в каталоге: Cloudflare, Context7, GitHub, Higgsfield, Replicate, Sentry, Supabase, Telegram, Vercel.
В тестовых проектах коннекторы не были автоматически прикреплены: project_connections = 0.