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

View File

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