feat: MVP seed real entities (RECOVERY)

- DAIS identities for all core agents
- City governance: DAARWIZZ, DARIO, DARIA
- District leads: SOUL, Helion, GREENFOOD
- District teams: Spirit, Logic, Energia
- Core agents: CLAN, DRUID, EONARCH, YAROMIR
- MicroDAOs: daarion (root), energyunion, greenfood, soul-retreat
- Agent assignments & permissions
- District rooms for SOUL, ENERGYUNION, GREENFOOD
This commit is contained in:
Apple
2025-11-30 05:13:30 -08:00
parent aa7d831734
commit 4ccdb30159
2 changed files with 688 additions and 0 deletions

View File

@@ -0,0 +1,211 @@
# TASK PHASE — MVP SEED REAL ENTITIES
Version: 1.0
Status: In Progress
Target: NODE1 (production DB: daarion)
## 1. Мета
Після FOUNDATION_UPDATE та впровадження Governance Backend API:
- БД має всі нові таблиці (agents, microdaos, nodes, dais_*, agent_assignments, permissions, rooms, event_outbox, incidents, …),
- Frontend (Next.js, apps/web) ходить на `/api/v1/*` у city-service,
- Але **немає реальних даних** (агентів, microDAO, прив'язок), через що:
- `/agents`, `/microdaos`, `/governance`, `/city` у проді виглядають порожніми.
Ціль фази — **засідити (seed)** реальні агентів, microDAO, базові зв'язки та перевірити, що:
- на daarion.space зʼявляються:
- реальні агенти,
- реальні microDAO,
- реальні districts,
- city/district rooms,
- Governance UI і City UI працюють з живими даними.
---
## 2. Обсяг робіт (Scope)
### 2.1. Таблиці, які мають бути задіяні
Не змінювати схему, лише наповнити:
- `dais_identities`
- `agents`
- `microdaos`
- `nodes` (тільки реальні, без вигаданих)
- `agent_assignments`
- `permissions`
- `rooms` (перевірити, що seed не дублює існуючі)
- опційно: `event_outbox` (перевірити логування подій)
### 2.2. Кого й що потрібно створити
#### DAIS / Agents (core, що вже існують у концепції та/або в коді)
1. City / Root:
- `DAARWIZZ` — мер / city lead
- `DARIO` — комʼюніті / city face
- `DARIA` — support / tech help
- `SOUL` — lead агент District SOUL
- `Helion` — lead агент District ENERGYUNION
- `GREENFOOD` (ERP Agent) — lead агент District GREENFOOD
2. Інші вже згадані агенти:
- `CLAN` — orchestrator для clan-типу microDAO
- `DRUID` — лабораторія
- `EONARCH` — приватний агент
- `YAROMIR` — приватний агент
> ВАЖЛИВО:
> Отримати точні назви / slug-и агентів із поточного коду/міграцій (НЕ вигадувати нові).
#### MicroDAO
Мінімальний набір:
- `daarion` (root microDAO / city-level)
- `energyunion` (District — ENERGYUNION)
- `greenfood` (District — GREENFOOD)
- `retreat_hub` (District — SOUL Retreat)
- `clan_*` (якщо вже є реально створений клан microDAO)
- `druid_lab` (якщо існує)
- інші реальні microDAO з БД, якщо вже створювались через UI раніше
Поля (орієнтовно, точний список взяти з міграцій):
- `id` / `slug`
- `name`
- `dao_type` (`root`, `district`, `standard`, `community`, …)
- `orchestrator_agent_id`
- `status` (active)
#### District Lead прив'язки
У таблиці `microdaos` для:
- `daarion``dao_type = 'root'`, orchestrator = `DAARWIZZ`
- `energyunion``dao_type = 'district'`, orchestrator = `Helion`
- `greenfood``dao_type = 'district'`, orchestrator = `GREENFOOD`
- `retreat_hub``dao_type = 'district'`, orchestrator = `SOUL`
#### Agent Assignments / Governance
У `agent_assignments` + `permissions`:
- DAARWIZZ:
- scope: `city`
- role: `city_governance`
- DARIO:
- scope: `city`
- role: `city_community`
- DARIA:
- scope: `city`
- role: `city_support`
- Helion:
- scope: `district:energyunion`
- role: `district_lead`
- GREENFOOD:
- scope: `district:greenfood`
- role: `district_lead`
- SOUL:
- scope: `district:retreat_hub`
- role: `district_lead`
(Точні значення enum/рядків взяти з `Agent_Governance_Protocol_v1.md` + актуальних міграцій.)
#### Nodes
- Заповнювати тільки тим, що реально існує (NODE1, NODE2, якщо вони відображаються в схемі як rows у `nodes`).
- Якщо зараз фізичні ноди ще не підʼєднані як entries у БД — цю частину можна пропустити або створити лише запис для `NODE1` (якщо вже використовується в коді).
- Строго дотримуватись правила:
> "Жодних автосозданих нод — тільки приєднані по факту".
---
## 3. Реалізація
### 3.1. Формат
Створити **одну нову міграцію** для seed, наприклад:
- `migrations/033_mvp_seed_real_entities.sql`
Вимоги:
- **ідемпотентність**:
- використовувати `INSERT ... ON CONFLICT DO NOTHING` (якщо SQL),
- або попередньо перевіряти існування записів.
- НЕ змінювати схему (жодних `ALTER TABLE`), тільки `INSERT`.
### 3.2. Кроки
1. **Проаналізувати схему**:
- переглянути останні міграції: `027_*` (FOUNDATION_UPDATE),
- зафіксувати точні назви колонок.
2. **Підготувати seed для DAIS identities**:
- створити `dais_identities` для:
- DAARWIZZ, DARIO, DARIA, SOUL, Helion, GREENFOOD, CLAN, DRUID, EONARCH, YAROMIR.
- якщо emails/wallets вже є — не дублювати.
3. **Створити записи в `agents`**:
- звʼязати кожного агента з його `dais_id`.
- заповнити:
- `display_name`,
- `slug`,
- `gov_level` (для city/district агентів),
- `status = 'active'`.
4. **Створити записи в `microdaos`**:
- `daarion`, `energyunion`, `greenfood`, `retreat_hub`, інші реальні.
- виставити `dao_type` + `orchestrator_agent_id`.
5. **Створити `agent_assignments`**:
- згідно з переліком вище (city, districts).
6. **Створити `permissions`**:
- мінімальний набір, щоб Governance UI коректно показував ролі (див. `Agent_Governance_Protocol_v1.md`).
7. **Перевірити `rooms`**:
- city rooms та district rooms частково вже seeded FOUNDATION_UPDATE (city-lobby, city-square, city-news, … + rooms для GREENFOOD/ENERGYUNION/SOUL).
- Перевірити, чи:
- є посилання на owner_microdao / owner_agent (якщо такі колонки є),
- не створюються дублікати.
8. **Локально прогнати міграцію** (якщо можливо) або на staging.
9. **Запустити міграцію на NODE1**:
- через той самий механізм, що й `027_*`.
10. **Smoke-тести в проді**:
- Зайти на:
- `/agents` — повинні зʼявитись DAARWIZZ, DARIO, DARIA, Helion, GREENFOOD, SOUL, CLAN, DRUID, EONARCH, YAROMIR.
- `/governance` — показує city governance agents + districts.
- `/city` — показує city rooms та привʼязаних агентів.
- `/district/energyunion`, `/district/greenfood`, `/district/soul` (коли будуть маршрути) — інформація не пуста.
---
## 4. Checklist для завершення фази
- [ ] Є файл `migrations/033_mvp_seed_real_entities.sql`.
- [ ] Міграція застосована до БД `daarion` на NODE1.
- [ ] В `agents` є записи для всіх core-агентів.
- [ ] В `microdaos` є root + всі три District (GREENFOOD, ENERGYUNION, SOUL) + інші реальні.
- [ ] В `agent_assignments` та `permissions` є мінімальний набір для:
- city governance (DAARWIZZ/DARIO/DARIA),
- district_lead (Helion, GREENFOOD, SOUL).
- [ ] На daarion.space:
- `/governance` показує реальних агентів,
- `/city` показує city rooms та прив'язки,
- `/agents` не порожній.
---
## 5. Нотатки
- Усі назви агентів, microDAO, полів таблиць — брати з існуючого коду та міграцій.
- Не створювати вигаданих агентів, microDAO, nodes.
- Node entries створювати **лише при наявності реальних фізичних нод**.