docs: expand lint scope batch48 (2 files)

This commit is contained in:
Apple
2026-02-16 07:43:55 -08:00
parent 8ea99372c0
commit 79d3257f14
3 changed files with 140 additions and 140 deletions

View File

@@ -8,7 +8,7 @@
---
# 1. Мета
## 1. Мета
Замінити класичні форми/кроки онбордингу повністю **агентським інтерфейсом**.
Увесь onboarding виконується через `AgentOnboardingChat`, який:
@@ -24,7 +24,7 @@
---
# 2. Загальна архітектура
## 2. Загальна архітектура
Усі дії будуються на:
@@ -36,7 +36,7 @@
Компоненти:
```
```text
src/features/onboarding-agent/
AgentOnboardingChat.tsx
useOnboardingState.ts
@@ -44,11 +44,11 @@ src/features/onboarding-agent/
script.json
parser.ts
transitions.ts
```
```text
---
# 3. State Machine
## 3. State Machine
```ts
type OnboardingStep =
@@ -63,16 +63,16 @@ type OnboardingStep =
| "ask_agent_prefs"
| "ask_invites"
| "done";
```
```text
Перехід між кроками базується на:
* відповіді користувача,
* успішності API-виклику.
- відповіді користувача,
- успішності API-виклику.
---
# 4. Повний сценарій діалогу (репліки агента)
## 4. Повний сценарій діалогу (репліки агента)
Нижче — готовий сценарій, який можна покласти в JSON або хардкод.
@@ -132,8 +132,8 @@ type OnboardingStep =
Після відповіді:
* map → `"public"` / `"confidential"`
* `PATCH /teams/{teamId}`
- map → `"public"` / `"confidential"`
- `PATCH /teams/{teamId}`
→ `ask_channel_name`.
---
@@ -158,8 +158,8 @@ type OnboardingStep =
Mapping:
* `public``type: "public"`
* `private``type: "group"`
- `public` → `type: "public"`
- `private` → `type: "group"`
API:
`POST /channels`
@@ -177,8 +177,8 @@ API:
Очікувані відповіді: так / ні.
* Якщо «ні» → `ask_invites`
* Якщо «так» → `ask_agent_prefs`
- Якщо «ні» → `ask_invites`
- Якщо «так» → `ask_agent_prefs`
---
@@ -242,7 +242,7 @@ redirect → `/t/:teamId/c/:channelId`.
---
# 5. Intent Parser (як агент розуміє відповіді)
## 5. Intent Parser (як агент розуміє відповіді)
Мінімальний підхід (regex):
@@ -251,26 +251,26 @@ function parseMode(input: string) {
if (input.match(/1|пуб/i)) return "public";
if (input.match(/2|прив/i)) return "confidential";
}
```
```text
```ts
function parseYesNo(input: string) {
if (input.match(/^так|yes|y$/i)) return true;
if (input.match(/^ні|no|n$/i)) return false;
}
```
```text
Або гібридний:
* парсимо regex,
* якщо незрозуміло → питаємо LLM:
- парсимо regex,
- якщо незрозуміло → питаємо LLM:
*"Чи відповідь користувача означає Так/Ні/Інше?"*
---
# 6. Компонент `AgentOnboardingChat.tsx`
## 6. Компонент `AgentOnboardingChat.tsx`
### Мінімальна структура:
### Мінімальна структура
```tsx
export function AgentOnboardingChat() {
@@ -311,31 +311,31 @@ export function AgentOnboardingChat() {
/>
);
}
```
```text
---
# 7. Acceptance Criteria (як перевіряти)
## 7. Acceptance Criteria (як перевіряти)
* `/onboarding` відкривається як чат.
* Користувач спілкується з агентом.
* На кожному кроці агент відповідає правильно.
* Усі API виклики працюють:
- `/onboarding` відкривається як чат.
- Користувач спілкується з агентом.
- На кожному кроці агент відповідає правильно.
- Усі API виклики працюють:
* `/teams`
* `/teams/{id}`
* `/channels`
* `/agents`
* Після завершення → redirect.
* UX: користувач не бачить жодної форми. Все — діалог.
- `/teams`
- `/teams/{id}`
- `/channels`
- `/agents`
- Після завершення → redirect.
- UX: користувач не бачить жодної форми. Все — діалог.
---
# 8. Для Cursor
## 8. Для Cursor
Коли ти даси йому задачу, використовуй цей формат:
```
```text
You are a senior React/TS engineer.
Implement the Agent-first onboarding at `/onboarding` using the specification in:
@@ -349,11 +349,11 @@ Output:
- list of modified files
- diff
- summary
```
```text
---
# 9. Інтеграція з існуючим кодом
## 9. Інтеграція з існуючим кодом
## 9.1. Заміна класичного онбордингу
@@ -375,7 +375,7 @@ Output:
---
# 10. UI/UX Вимоги
## 10. UI/UX Вимоги
## 10.1. Chat Interface
@@ -400,7 +400,7 @@ Output:
---
# 11. Обробка помилок
## 11. Обробка помилок
## 11.1. Помилки API
@@ -424,7 +424,7 @@ Output:
---
# 12. Тестування
## 12. Тестування
## 12.1. Unit Tests
@@ -446,7 +446,7 @@ Output:
---
# 13. Майбутні покращення
## 13. Майбутні покращення
## 13.1. LLM Integration
@@ -471,4 +471,3 @@ Output:
**Готово.**
Це **повна специфікація агентського онбордингу**, готова до використання в Cursor.

View File

@@ -8,7 +8,7 @@
---
# Task 1 — Agent-Cards-Grid (плитки агентів)
## Task 1 — Agent-Cards-Grid (плитки агентів)
## Мета
@@ -18,49 +18,49 @@
### 1. Компонент AgentCard
* Розмір: 280x360px (рекомендовано)
* Структура:
- Розмір: 280x360px (рекомендовано)
- Структура:
* Верхній блок: Аватар + відео-аватар (64x64px)
* Імʼя та роль
* Метрики: Вік, Досвід 1T, Репутація
* Присутність: бейджі каналів/проєктів
* Статус підключення
- Верхній блок: Аватар + відео-аватар (64x64px)
- Імʼя та роль
- Метрики: Вік, Досвід 1T, Репутація
- Присутність: бейджі каналів/проєктів
- Статус підключення
### 2. Компонент AgentGrid
* Сітка карток (responsive: 1-4 колонки)
* Фільтри: "Всі", "Підключені", "Доступні"
* Пошук по імені/ролі
- Сітка карток (responsive: 1-4 колонки)
- Фільтри: "Всі", "Підключені", "Доступні"
- Пошук по імені/ролі
### 3. Дані
* API: `GET /agents?team_id=...`
* Метрики: `GET /agents/{id}/metrics`
* Присутність: `GET /agents/{id}/presence`
- API: `GET /agents?team_id=...`
- Метрики: `GET /agents/{id}/metrics`
- Присутність: `GET /agents/{id}/presence`
### 4. Hover ефект
* Напівпрозорий оверлей з кнопками:
* "Почати взаємодію"
* "Підключити до каналу"
* "Деталі агента"
- Напівпрозорий оверлей з кнопками:
- "Почати взаємодію"
- "Підключити до каналу"
- "Деталі агента"
### 5. Клік
* Відкриває Agent Console (Task 2)
- Відкриває Agent Console (Task 2)
## Acceptance Criteria
* Картки агентів відображаються у сітці
* Показуються метрики (вік, 1T, репутація)
* Hover показує опції взаємодії
* Клік відкриває Agent Console
* Фільтри та пошук працюють
- Картки агентів відображаються у сітці
- Показуються метрики (вік, 1T, репутація)
- Hover показує опції взаємодії
- Клік відкриває Agent Console
- Фільтри та пошук працюють
## Приклад промта для Cursor
```
```text
Implement Agent Cards Grid using:
- 23_agent_cards_and_console.md
@@ -76,7 +76,7 @@ Deliverables:
5) Search by name/role.
Output: list of files + diff + summary.
```
```text
---
@@ -90,55 +90,55 @@ Output: list of files + diff + summary.
### 1. Структура Agent Console
* Верхня панель: Аватар, імʼя, метрики
* Вкладки: Чат, Файли, Памʼять, Присутність, Еволюція
* Контент вкладок (деталі нижче)
- Верхня панель: Аватар, імʼя, метрики
- Вкладки: Чат, Файли, Памʼять, Присутність, Еволюція
- Контент вкладок (деталі нижче)
### 2. Вкладка "Чат"
* Використовує `AgentChatWindow` з `10_agent_ui_system.md`
* Додатково: кнопка "Голосовий діалог" (stub для MVP)
* Показ поточного контексту
- Використовує `AgentChatWindow` з `10_agent_ui_system.md`
- Додатково: кнопка "Голосовий діалог" (stub для MVP)
- Показ поточного контексту
### 3. Вкладка "Файли та Документи"
* Список файлів (з API або stub)
* Кнопка "Завантажити файл"
* Індикатор: "Документи зберігаються в просторі вашої microDAO"
- Список файлів (з API або stub)
- Кнопка "Завантажити файл"
- Індикатор: "Документи зберігаються в просторі вашої microDAO"
### 4. Вкладка "Памʼять і Знання"
* Використовує компоненти з `13_agent_memory_system.md`
* Короткострокова та довгострокова памʼять
* Кнопки управління памʼяттю
- Використовує компоненти з `13_agent_memory_system.md`
- Короткострокова та довгострокова памʼять
- Кнопки управління памʼяттю
### 5. Вкладка "Присутність / Права доступу"
* Таблиця просторів (канали, проєкти)
* Перемикачі підключення
* Рівні доступу
* Кнопка "Додати до нового каналу/проєкту"
- Таблиця просторів (канали, проєкти)
- Перемикачі підключення
- Рівні доступу
- Кнопка "Додати до нового каналу/проєкту"
### 6. Вкладка "Еволюція та дух спільноти"
* Лог внеску агента
* Статистика запитів
* Репутація від спільноти
* Без фінансових термінів
- Лог внеску агента
- Статистика запитів
- Репутація від спільноти
- Без фінансових термінів
## Acceptance Criteria
* Agent Console відкривається при кліку на картку
* Всі 5 вкладок працюють
* Чат інтегрований з Agent Runtime Core
* Файли показуються (stub дані OK)
* Памʼять інтегрована з Memory System
* Присутність показує реальні дані
* Еволюція показує лог (stub OK)
- Agent Console відкривається при кліку на картку
- Всі 5 вкладок працюють
- Чат інтегрований з Agent Runtime Core
- Файли показуються (stub дані OK)
- Памʼять інтегрована з Memory System
- Присутність показує реальні дані
- Еволюція показує лог (stub OK)
## Приклад промта для Cursor
```
```text
Implement Agent Console UI using:
- 23_agent_cards_and_console.md
@@ -157,7 +157,7 @@ Deliverables:
6) Evolution tab: log display (stub data OK).
Output: list of files + diff + summary.
```
```text
---
@@ -171,23 +171,23 @@ Output: list of files + diff + summary.
### 1. Вік агента
* Розрахунок: `created_at` до поточної дати
* Формат: "3 тижні", "6 місяців", "1 рік 2 місяці"
* API: `GET /agents/{id}/metrics``{ age: { weeks, months, years } }`
- Розрахунок: `created_at` до поточної дати
- Формат: "3 тижні", "6 місяців", "1 рік 2 місяці"
- API: `GET /agents/{id}/metrics` → `{ age: { weeks, months, years } }`
### 2. Досвід 1T
* Лічильник: велике число з розділювачами (12 340 1T)
* Tooltip: "1T — це внутрішня одиниця обчислень і досвіду агента"
* API: `GET /agents/{id}/metrics``{ experience1T: number }`
* Візуалізація: великий текст з іконкою
- Лічильник: велике число з розділювачами (12 340 1T)
- Tooltip: "1T — це внутрішня одиниця обчислень і досвіду агента"
- API: `GET /agents/{id}/metrics` → `{ experience1T: number }`
- Візуалізація: великий текст з іконкою
### 3. Репутація спільноти
* Шкала: 0-100 або 0-5 зірок
* Розрахунок: на основі фідбеку від учасників
* API: `GET /agents/{id}/metrics``{ reputation: { score, type } }`
* Візуалізація: прогрес-бар або зірки
- Шкала: 0-100 або 0-5 зірок
- Розрахунок: на основі фідбеку від учасників
- API: `GET /agents/{id}/metrics` → `{ reputation: { score, type } }`
- Візуалізація: прогрес-бар або зірки
### 4. Компонент AgentMetrics
@@ -200,18 +200,18 @@ interface AgentMetricsProps {
export function AgentMetrics({ agentId, compact }: AgentMetricsProps) {
// Відображення метрик
}
```
```text
## Acceptance Criteria
* Вік агента розраховується правильно
* 1T показується з tooltip
* Репутація відображається візуально
* Метрики оновлюються при зміні даних
- Вік агента розраховується правильно
- 1T показується з tooltip
- Репутація відображається візуально
- Метрики оновлюються при зміні даних
## Приклад промта для Cursor
```
```text
Implement Agent Experience Metrics using:
- 23_agent_cards_and_console.md
@@ -227,7 +227,7 @@ Deliverables:
5) API integration: GET /agents/{id}/metrics.
Output: list of files + diff + summary.
```
```text
---
@@ -241,40 +241,40 @@ Output: list of files + diff + summary.
### 1. На картці агента
* Бейджі: "Публічні простори: 2", "Конфіденційні: 1"
* При кліку — модалка зі списком просторів
* Перемикачі для кожного простору
- Бейджі: "Публічні простори: 2", "Конфіденційні: 1"
- При кліку — модалка зі списком просторів
- Перемикачі для кожного простору
### 2. У Agent Console (вкладка "Присутність")
* Таблиця просторів:
* Простір / Тип / Доступ / Статус / Дії
* Перемикач "Підключено/Відʼєднано"
* Кнопка "Додати до нового простору"
- Таблиця просторів:
- Простір / Тип / Доступ / Статус / Дії
- Перемикач "Підключено/Відʼєднано"
- Кнопка "Додати до нового простору"
### 3. API
* `GET /agents/{id}/presence` → список просторів
* `POST /agents/{id}/presence/connect` → підключити
* `POST /agents/{id}/presence/disconnect` → відключити
- `GET /agents/{id}/presence` → список просторів
- `POST /agents/{id}/presence/connect` → підключити
- `POST /agents/{id}/presence/disconnect` → відключити
### 4. UX
* При відключенні: підтвердження
* При підключенні: вибір прав доступу
* Оновлення UI після зміни
- При відключенні: підтвердження
- При підключенні: вибір прав доступу
- Оновлення UI після зміни
## Acceptance Criteria
* Бейджі на картці показують кількість просторів
* Модалка зі списком просторів працює
* Перемикачі в консолі працюють
* API виклики зберігають зміни
* UI оновлюється після змін
- Бейджі на картці показують кількість просторів
- Модалка зі списком просторів працює
- Перемикачі в консолі працюють
- API виклики зберігають зміни
- UI оновлюється після змін
## Приклад промта для Cursor
```
```text
Implement Agent Connections Management using:
- 23_agent_cards_and_console.md
@@ -291,7 +291,7 @@ Deliverables:
5) UI updates after connection changes.
Output: list of files + diff + summary.
```
```text
---
@@ -337,13 +337,12 @@ Output: list of files + diff + summary.
## Зберігання даних
* Всі файли/документи зберігаються в сховищі microDAO
* Показувати індикатор: "Документи зберігаються в просторі вашої microDAO"
* DAGI використовується як "мозок", але не як сховище
- Всі файли/документи зберігаються в сховищі microDAO
- Показувати індикатор: "Документи зберігаються в просторі вашої microDAO"
- DAGI використовується як "мозок", але не як сховище
---
**Готово.**
Це **структурований список задач для Agent Cards та Console**, готовий до використання в Cursor.

View File

@@ -125,3 +125,5 @@ docs/cursor/05_coding_standards.md
docs/cursor/19_notifications_attention_agent.md
docs/cursor/20_integrations_bridges_agent.md
docs/cursor/22_agent_only_interface_tasks.md
docs/cursor/08_agent_first_onboarding.md
docs/cursor/24_agent_cards_tasks.md