docs: MVP seed completed + orphan audit
- TASK_PHASE_MVP_SEED_REAL_ENTITIES: marked as completed - TASK_PHASE_MVP_VERIFY_NO_ORPHANS: orphan verification task - orphans_20251130.md: audit report with fixes applied Fixes applied on NODE1: - 13 governance agents now have DAIS identity - 4 test agents now have home_microdao_id - All 18 agents, 9 microDAOs, 23 rooms verified
This commit is contained in:
90
docs/debug/orphans_20251130.md
Normal file
90
docs/debug/orphans_20251130.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Orphan Audit Report — 2025-11-30
|
||||
|
||||
## 1. Initial State
|
||||
|
||||
### Orphan Issues Found:
|
||||
|
||||
| Issue | Count | Details |
|
||||
|-------|-------|---------|
|
||||
| Agents without DAIS identity | 13 | All governance/lead agents |
|
||||
| Agents without home_microdao | 4 | ag_atlas, ag_oracle, ag_builder, ag_greeter |
|
||||
| Node guardian/steward agents missing | 4 | monitor-node1, node-steward-node1, monitor-node2, node-steward-node2 |
|
||||
|
||||
### No Issues:
|
||||
- ✅ MicroDAOs — all have orchestrator_agent_id
|
||||
- ✅ Orchestrators — all exist in agents table
|
||||
- ✅ Rooms — all have owner_id and primary_agent_id
|
||||
|
||||
---
|
||||
|
||||
## 2. Fixes Applied
|
||||
|
||||
### 2.1. DAIS Identity Links
|
||||
|
||||
```sql
|
||||
UPDATE agents SET dais_identity_id = 'dais-<agent_id>'
|
||||
WHERE id IN (
|
||||
'daarwizz', 'dario', 'daria',
|
||||
'soul', 'helion', 'greenfood',
|
||||
'spirit', 'logic', 'energia',
|
||||
'clan', 'druid', 'eonarch', 'yaromir'
|
||||
);
|
||||
```
|
||||
|
||||
**Result:** 13 agents now have dais_identity_id
|
||||
|
||||
### 2.2. Home MicroDAO Links
|
||||
|
||||
```sql
|
||||
UPDATE agents SET home_microdao_id = 'dao_daarion'
|
||||
WHERE id IN ('ag_atlas', 'ag_oracle', 'ag_builder', 'ag_greeter');
|
||||
```
|
||||
|
||||
**Result:** 4 test agents now belong to DAARION DAO
|
||||
|
||||
---
|
||||
|
||||
## 3. Outstanding Items
|
||||
|
||||
### Node Guardian/Steward Agents
|
||||
|
||||
The `node_cache` table references agents that don't exist:
|
||||
- `monitor-node1`
|
||||
- `node-steward-node1`
|
||||
- `monitor-node2`
|
||||
- `node-steward-node2`
|
||||
|
||||
**Options:**
|
||||
1. Create these agents (node monitoring infrastructure)
|
||||
2. Update node_cache to remove references
|
||||
3. Leave as-is (non-blocking for MVP)
|
||||
|
||||
**Decision:** Leave for now — these are infrastructure agents to be created when node monitoring is implemented.
|
||||
|
||||
---
|
||||
|
||||
## 4. Final Summary
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total Agents | 18 |
|
||||
| Governance Agents | 6 |
|
||||
| Agents with DAIS | 13 |
|
||||
| Agents with Home MicroDAO | 13 |
|
||||
| Total MicroDAOs | 9 |
|
||||
| Districts | 3 |
|
||||
| Total Rooms | 23 |
|
||||
| Total Nodes | 2 |
|
||||
|
||||
### Verified Working:
|
||||
- ✅ `/governance` — shows DAARWIZZ, DARIO, DARIA
|
||||
- ✅ `/agents` — shows all 18 agents
|
||||
- ✅ `/microdao` — shows 9 DAOs (3 districts)
|
||||
- ✅ City rooms and district rooms functional
|
||||
|
||||
---
|
||||
|
||||
## 5. Status
|
||||
|
||||
**ORPHAN AUDIT: PASSED** (with minor outstanding items for future)
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
# TASK PHASE — MVP SEED REAL ENTITIES
|
||||
|
||||
Version: 1.0
|
||||
Status: In Progress
|
||||
Target: NODE1 (production DB: daarion)
|
||||
Status: ✅ COMPLETED
|
||||
Target: NODE1 (production DB: daarion)
|
||||
Completed: 2025-11-30
|
||||
|
||||
## 1. Мета
|
||||
|
||||
@@ -189,17 +190,17 @@ Target: NODE1 (production DB: daarion)
|
||||
|
||||
## 4. Checklist для завершення фази
|
||||
|
||||
- [ ] Є файл `migrations/033_mvp_seed_real_entities.sql`.
|
||||
- [ ] Міграція застосована до БД `daarion` на NODE1.
|
||||
- [ ] В `agents` є записи для всіх core-агентів.
|
||||
- [ ] В `microdaos` є root + всі три District (GREENFOOD, ENERGYUNION, SOUL) + інші реальні.
|
||||
- [ ] В `agent_assignments` та `permissions` є мінімальний набір для:
|
||||
- [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).
|
||||
- [ ] На daarion.space:
|
||||
- `/governance` показує реальних агентів,
|
||||
- `/city` показує city rooms та прив'язки,
|
||||
- `/agents` не порожній.
|
||||
- [x] На daarion.space:
|
||||
- `/governance` показує реальних агентів ✅,
|
||||
- `/city` показує city rooms та прив'язки ✅,
|
||||
- `/agents` показує 18 агентів ✅.
|
||||
|
||||
---
|
||||
|
||||
|
||||
167
docs/tasks/TASK_PHASE_MVP_VERIFY_NO_ORPHANS.md
Normal file
167
docs/tasks/TASK_PHASE_MVP_VERIFY_NO_ORPHANS.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# TASK PHASE — MVP VERIFY NO ORPHANS
|
||||
|
||||
Version: 1.0
|
||||
Target DB: daarion (NODE1)
|
||||
Goal: гарантувати, що в системі немає "безхозних" нод, агентів і microDAO.
|
||||
|
||||
## 1. Контекст
|
||||
|
||||
Після FOUNDATION_UPDATE, нових District Protocols і seed-міграцій:
|
||||
|
||||
- додано нові таблиці (`agents`, `microdaos`, `nodes`, `agent_assignments`, `permissions`, `rooms`, `dais_*`, …),
|
||||
- оновлено онтологію: **не може існувати**:
|
||||
- нода без microDAO/агента-відповідального,
|
||||
- агент без прив'язки до microDAO (окрім city-агентів),
|
||||
- microDAO без оркестратора.
|
||||
|
||||
Цей таск — **чистий аудит БД** через SQL.
|
||||
|
||||
---
|
||||
|
||||
## 2. Перевірка нод (nodes)
|
||||
|
||||
### 2.1. Ноди без owner_microdao
|
||||
|
||||
```sql
|
||||
-- Nodes without owning microDAO
|
||||
SELECT node_id, name, kind, microdao_id
|
||||
FROM nodes
|
||||
WHERE microdao_id IS NULL;
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків
|
||||
(якщо є винятки — зафіксувати явно в коментарях до таблиці/коду).
|
||||
|
||||
### 2.2. Ноди без відповідального агента (node guardian/steward)
|
||||
|
||||
```sql
|
||||
-- Nodes without guardian agent (based on current schema)
|
||||
SELECT n.node_id, n.name
|
||||
FROM nodes n
|
||||
LEFT JOIN agents a ON a.node_id = n.node_id AND a.is_node_guardian = true
|
||||
WHERE a.id IS NULL;
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків або явний список нод, де керує сам root-microDAO.
|
||||
|
||||
---
|
||||
|
||||
## 3. Перевірка агентів (agents)
|
||||
|
||||
### 3.1. Агенти без microDAO (крім city-агентів)
|
||||
|
||||
```sql
|
||||
-- Agents without owning microDAO (excluding city-level agents)
|
||||
SELECT id, display_name, kind, home_microdao_id, gov_level
|
||||
FROM agents
|
||||
WHERE home_microdao_id IS NULL
|
||||
AND gov_level NOT IN ('city_governance')
|
||||
AND id NOT IN ('daarwizz', 'dario', 'daria', 'spirit', 'logic', 'energia');
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків (усі агенти, окрім city-level, повинні мати home_microdao_id).
|
||||
|
||||
### 3.2. Агенти без DAIS-ідентичності
|
||||
|
||||
```sql
|
||||
-- Agents without DAIS identity
|
||||
SELECT a.id, a.display_name
|
||||
FROM agents a
|
||||
WHERE a.dais_identity_id IS NULL
|
||||
AND a.gov_level IN ('city_governance', 'district_lead', 'orchestrator', 'core_team');
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків для governance/lead агентів.
|
||||
|
||||
---
|
||||
|
||||
## 4. Перевірка microDAO (microdaos)
|
||||
|
||||
### 4.1. microDAO без оркестратора
|
||||
|
||||
```sql
|
||||
-- MicroDAO without orchestrator agent
|
||||
SELECT id, slug, name, dao_type, orchestrator_agent_id
|
||||
FROM microdaos
|
||||
WHERE orchestrator_agent_id IS NULL;
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків (кожне microDAO має мати orchestrator_agent_id).
|
||||
|
||||
### 4.2. Orchestrator не існує в agents
|
||||
|
||||
```sql
|
||||
-- Orchestrator agent must exist in agents table
|
||||
SELECT m.id, m.slug, m.name, m.orchestrator_agent_id
|
||||
FROM microdaos m
|
||||
LEFT JOIN agents a ON m.orchestrator_agent_id = a.id
|
||||
WHERE a.id IS NULL AND m.orchestrator_agent_id IS NOT NULL;
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків.
|
||||
|
||||
---
|
||||
|
||||
## 5. Перевірка rooms (кімнат)
|
||||
|
||||
### 5.1. Кімнати без owner
|
||||
|
||||
```sql
|
||||
-- Rooms without any owner
|
||||
SELECT id, name, owner_type, owner_id, type
|
||||
FROM rooms
|
||||
WHERE owner_id IS NULL OR owner_id = '';
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків (усі кімнати мають належати city, microDAO, district, або агенту).
|
||||
|
||||
### 5.2. Кімнати без primary_agent
|
||||
|
||||
```sql
|
||||
-- District/City rooms without primary agent
|
||||
SELECT id, name, type, space_scope, primary_agent_id
|
||||
FROM rooms
|
||||
WHERE type IN ('city-room', 'district-room', 'front-room')
|
||||
AND (primary_agent_id IS NULL OR primary_agent_id = '');
|
||||
```
|
||||
|
||||
Очікування:
|
||||
* 0 рядків.
|
||||
|
||||
---
|
||||
|
||||
## 6. Дії при виявленні "orphan" записів
|
||||
|
||||
Якщо будь-який із запитів повертає рядки:
|
||||
|
||||
1. **Зробити snapshot результату** (зберегти у `docs/debug/orphans_YYYYMMDD.md`).
|
||||
2. Для кожного типу:
|
||||
* визначити правильного owner або agent,
|
||||
* або вирішити, що запис зайвий → видалити.
|
||||
3. Створити окрему міграцію:
|
||||
* `migrations/0xx_fix_orphans_YYYYMMDD.sql`
|
||||
* тільки `UPDATE`/`DELETE`, без зміни схеми.
|
||||
|
||||
Після застосування міграції — повторно виконати всі запити з цього таску.
|
||||
|
||||
---
|
||||
|
||||
## 7. Умова завершення фази
|
||||
|
||||
Фаза вважається виконаною, якщо:
|
||||
|
||||
* всі SQL-запити з розділів 2–5 повертають 0 рядків
|
||||
(або винятки чітко описані й задокументовані),
|
||||
* є короткий звіт у `docs/debug/orphans_YYYYMMDD.md`,
|
||||
* UI:
|
||||
* `/nodes` + detail-сторінка ноди працюють,
|
||||
* `/agents` + кабінети агентів працюють,
|
||||
* `/microdao` працює без помилок.
|
||||
|
||||
Reference in New Issue
Block a user