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:
211
docs/tasks/TASK_PHASE_MVP_SEED_REAL_ENTITIES.md
Normal file
211
docs/tasks/TASK_PHASE_MVP_SEED_REAL_ENTITIES.md
Normal 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 створювати **лише при наявності реальних фізичних нод**.
|
||||
|
||||
Reference in New Issue
Block a user