docs: expand lint scope batch50 (2 files)

This commit is contained in:
Apple
2026-02-16 07:46:19 -08:00
parent 45a8bc676e
commit 1721b60401
3 changed files with 125 additions and 124 deletions

View File

@@ -14,7 +14,7 @@
---
# 1. MULTI-TENANT DOMAINS & ROUTING
## 1. MULTI-TENANT DOMAINS & ROUTING
MicroDAO має підтримувати:
@@ -37,7 +37,7 @@ teams:
- slug: string // "greenfood", "musiclab"
- primary_domain_id: string | null
- created_at
```
```text
### Таблиця `domains`
@@ -50,7 +50,7 @@ domains:
- is_primary: boolean
- verified_at: Date | null
- created_at
```
```text
---
@@ -58,7 +58,7 @@ domains:
На початку кожного HTTP-запиту:
```
```text
host := request.headers["Host"]
1) спробувати знайти host у domains:
@@ -74,7 +74,7 @@ host := request.headers["Host"]
4) якщо знайшли → currentTeamId = id.
5) інакше → 404 або сторінка Onboarding ("microDAO не знайдено")
```
```text
---
@@ -84,19 +84,19 @@ host := request.headers["Host"]
URL:
```
```text
greenfood.daarion.city/
mydao.org/
```
```text
Усі маршрути стають:
```
```text
/ → головна команда
/projects
/agents
/settings
```
```text
**Без /t/:teamId** — тому що `teamId` вже визначено з домену.
@@ -104,21 +104,21 @@ mydao.org/
URL:
```
```text
app.daarion.city/t/:teamId/agents
```
```text
Цей режим потрібен:
* для розробки,
* для адміністрування,
* для роботи всередині DAARION.city як централізованої платформи.
- для розробки,
- для адміністрування,
- для роботи всередині DAARION.city як централізованої платформи.
---
## 1.4. Налаштування кастомного домену (UX)
### Потік:
### Потік
1. Адмін відкриває: **Settings → Domain**
@@ -128,7 +128,7 @@ app.daarion.city/t/:teamId/agents
4. Система показує інструкцію:
```
```text
Створіть CNAME:
mydao.org → domains.daarion.city
```
@@ -143,13 +143,13 @@ app.daarion.city/t/:teamId/agents
---
# 2. WALLET AGENT — ПРОТОКОЛ БЕЗПЕЧНОГО ПІДПИСУ
## 2. WALLET AGENT — ПРОТОКОЛ БЕЗПЕЧНОГО ПІДПИСУ
Wallet Agent — це **інтерфейс** між microDAO і зовнішніми гаманцями:
* браузерні (MetaMask, WalletConnect),
* мобільні,
* апаратні (Tangem-подібні).
- браузерні (MetaMask, WalletConnect),
- мобільні,
- апаратні (Tangem-подібні).
Wallet Agent **ніколи не отримує приватний ключ**.
@@ -168,7 +168,7 @@ walletAgent.prepare_signature_payload({
action: "update_policy",
params: {...}
});
```
```text
Wallet Agent:
@@ -193,7 +193,7 @@ sign_requests:
- status: "pending" | "signed" | "rejected"
- created_at
- updated_at
```
```text
---
@@ -201,14 +201,14 @@ sign_requests:
Коли є новий `sign_request`:
* у UI зʼявляється:
- у UI зʼявляється:
* "Агент пропонує підписати дію"
* опис,
* кнопки:
- "Агент пропонує підписати дію"
- опис,
- кнопки:
* "Підписати"
* "Скасувати"
- "Підписати"
- "Скасувати"
Коли користувач натискає "Підписати":
@@ -216,7 +216,7 @@ sign_requests:
2. отримує `signature`,
3. викликає:
```
```text
POST /sign_requests/:id/confirm
{
signature: "0x..."
@@ -235,7 +235,7 @@ sign_results:
- tx_hash?
- confirmed_at
- status: "broadcasted" | "failed"
```
```text
---
@@ -248,22 +248,22 @@ tools: [
"verify_signature", // перевірка
"get_wallet_state" // поточні адреси, мережі, доступи
]
```
```text
Wallet Agent — це декларативна прослойка між дією і підписом користувача.
---
# 3. DAO AGENT — СИНХРОНІЗАЦІЯ З ON-CHAIN DAO
## 3. DAO AGENT — СИНХРОНІЗАЦІЯ З ON-CHAIN DAO
Не кожному microDAO потрібен on-chain DAO.
Але архітектура має підтримувати:
* звʼязок з DAO-контрактами,
* синхронізацію ритуалів узгодження microDAO з DAO-голосуваннями,
* оновлення локальних правил після голосування,
* відправку результатів у DAO-контракт.
- звʼязок з DAO-контрактами,
- синхронізацію ритуалів узгодження microDAO з DAO-голосуваннями,
- оновлення локальних правил після голосування,
- відправку результатів у DAO-контракт.
---
@@ -271,33 +271,33 @@ Wallet Agent — це декларативна прослойка між діє
### 1) Fetch external proposals
```
```text
fetch_dao_proposals(team_id)
```
```text
Тягне список пропозицій з DAO-контракту чи API.
### 2) Map rituals to proposals
```
```text
map_ritual_to_proposal(ritual_id, proposal_id)
```
```text
Звʼязує локальний ритуал і зовнішню пропозицію.
### 3) Submit local result to DAO
```
```text
submit_ritual_result(ritual_id)
```
```text
Використовує Wallet Agent для підпису.
### 4) Sync policy
```
```text
sync_policies_onchain()
```
```text
Порівнює локальні правила з DAO-версією.
@@ -318,7 +318,7 @@ dao_proposals:
- result: "accepted" | "rejected" | "pending"
- mapped_ritual_id: string | null
- created_at
```
```text
### Таблиця `dao_sync_logs`
@@ -331,7 +331,7 @@ dao_sync_logs:
- action_type
- payload_json
- created_at
```
```text
---
@@ -344,16 +344,16 @@ tools: [
"submit_ritual_result",
"resolve_dao_result"
]
```
```text
---
# 4. Інтеграція з Governance Agent та OperatorMode
## 4. Інтеграція з Governance Agent та OperatorMode
DAO Agent працює лише тоді, коли:
* Governance Agent дозволяє це (entitlement),
* Wallet Agent підписує дії людиною.
- Governance Agent дозволяє це (entitlement),
- Wallet Agent підписує дії людиною.
OperatorMode у DAO Agent:
@@ -368,45 +368,45 @@ operatorMode: {
schedule: "0 */6 * * *", // кожні 6 годин
maxActionsPerHour: 5
}
```
```text
**Оновлення правил або відправка результатів ритуалу завжди вимагає людського підпису.**
---
# 5. API ЕНДПОЇНТИ
## 5. API ЕНДПОЇНТИ
## 5.1. Domains API
```
```text
GET /domains?team_id
POST /domains
PATCH /domains/:id
DELETE /domains/:id
```
```text
## 5.2. Wallet API
```
```text
GET /sign_requests?team_id
POST /sign_requests
POST /sign_requests/:id/confirm
POST /sign_requests/:id/reject
```
```text
## 5.3. DAO API
```
```text
GET /dao/proposals?team_id
POST /dao/sync
POST /dao/ritual/:id/submit
```
```text
---
# 6. Інструкції для Cursor
## 6. Інструкції для Cursor
```
```text
Use 23_domains_wallet_dao_deepdive.md to implement:
1) Multi-tenant domain routing (backend + frontend)
@@ -432,16 +432,16 @@ Use 23_domains_wallet_dao_deepdive.md to implement:
- Wallet signature flow
6) Add operatorMode guards where appropriate
```
```text
---
# 7. Результат
## 7. Результат
Після впровадження:
* кожне microDAO може мати власний домен без конфігураційної плутанини,
* Wallet Agent забезпечує безпечний і прозорий протокол підпису,
* DAO Agent може синхронізуватися з зовнішніми DAO-протоколами,
* архітектура стає розширюваною для міжпросторових і міжмережевих інтеграцій,
* operatorMode забезпечує контрольований автоматизм без ризиків.
- кожне microDAO може мати власний домен без конфігураційної плутанини,
- Wallet Agent забезпечує безпечний і прозорий протокол підпису,
- DAO Agent може синхронізуватися з зовнішніми DAO-протоколами,
- архітектура стає розширюваною для міжпросторових і міжмережевих інтеграцій,
- operatorMode забезпечує контрольований автоматизм без ризиків.