Skip to content

TASK PHASE — MVP SEED REAL ENTITIES

Version: 1.0
Status: ✅ COMPLETED
Target: NODE1 (production DB: daarion)
Completed: 2025-11-30

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:
  2. DAARWIZZ — мер / city lead
  3. DARIO — комʼюніті / city face
  4. DARIA — support / tech help
  5. SOUL — lead агент District SOUL
  6. Helion — lead агент District ENERGYUNION
  7. GREENFOOD (ERP Agent) — lead агент District GREENFOOD

  8. Інші вже згадані агенти:

  9. CLAN — orchestrator для clan-типу microDAO
  10. DRUID — лабораторія
  11. EONARCH — приватний агент
  12. 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 для:

  • daariondao_type = 'root', orchestrator = DAARWIZZ
  • energyuniondao_type = 'district', orchestrator = Helion
  • greenfooddao_type = 'district', orchestrator = GREENFOOD
  • retreat_hubdao_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. Проаналізувати схему:
  2. переглянути останні міграції: 027_* (FOUNDATION_UPDATE),
  3. зафіксувати точні назви колонок.

  4. Підготувати seed для DAIS identities:

  5. створити dais_identities для:
    • DAARWIZZ, DARIO, DARIA, SOUL, Helion, GREENFOOD, CLAN, DRUID, EONARCH, YAROMIR.
  6. якщо emails/wallets вже є — не дублювати.

  7. Створити записи в agents:

  8. звʼязати кожного агента з його dais_id.
  9. заповнити:

    • display_name,
    • slug,
    • gov_level (для city/district агентів),
    • status = 'active'.
  10. Створити записи в microdaos:

  11. daarion, energyunion, greenfood, retreat_hub, інші реальні.
  12. виставити dao_type + orchestrator_agent_id.

  13. Створити agent_assignments:

  14. згідно з переліком вище (city, districts).

  15. Створити permissions:

  16. мінімальний набір, щоб Governance UI коректно показував ролі (див. Agent_Governance_Protocol_v1.md).

  17. Перевірити rooms:

  18. city rooms та district rooms частково вже seeded FOUNDATION_UPDATE (city-lobby, city-square, city-news, … + rooms для GREENFOOD/ENERGYUNION/SOUL).
  19. Перевірити, чи:

    • є посилання на owner_microdao / owner_agent (якщо такі колонки є),
    • не створюються дублікати.
  20. Локально прогнати міграцію (якщо можливо) або на staging.

  21. Запустити міграцію на NODE1:

  22. через той самий механізм, що й 027_*.

  23. 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 для завершення фази

  • [x] Є файл migrations/033_mvp_seed_real_entities.sql.
  • [x] Міграція застосована до БД daarion на NODE1.
  • [x] В agents є записи для всіх core-агентів (18 агентів).
  • [x] В microdaos є root + всі три District (GREENFOOD, ENERGYUNION, SOUL) + інші (9 total).
  • [x] В agent_assignments та permissions є мінімальний набір для:
    • city governance (DAARWIZZ/DARIO/DARIA),
    • district_lead (Helion, GREENFOOD, SOUL).
  • [x] На daarion.space:
    • /governance показує реальних агентів ✅,
    • /city показує city rooms та прив'язки ✅,
    • /agents показує 18 агентів ✅.

5. Нотатки

  • Усі назви агентів, microDAO, полів таблиць — брати з існуючого коду та міграцій.
  • Не створювати вигаданих агентів, microDAO, nodes.
  • Node entries створювати лише при наявності реальних фізичних нод.