docs: expand lint scope batch46 (2 files)

This commit is contained in:
Apple
2026-02-16 07:41:44 -08:00
parent 4098649c59
commit 83decf0fc8
3 changed files with 80 additions and 79 deletions

View File

@@ -23,7 +23,7 @@
## 2. Архітектура проєкту ## 2. Архітектура проєкту
``` ```text
src/ src/
api/ // Typed API clients api/ // Typed API clients
components/ // UI components (buttons, inputs, modals) components/ // UI components (buttons, inputs, modals)
@@ -34,7 +34,7 @@ routes/ // Route definitions
store/ // Zustand stores (optional) store/ // Zustand stores (optional)
styles/ // Global CSS/tokens styles/ // Global CSS/tokens
utils/ // Formatting, validation utils/ // Formatting, validation
``` ```text
- `features/*` містять логіку конкретних модулів. - `features/*` містять логіку конкретних модулів.
- `components/*` — лише dumb UI-компоненти (без бізнес-логіки). - `components/*` — лише dumb UI-компоненти (без бізнес-логіки).
@@ -51,18 +51,18 @@ utils/ // Formatting, validation
"strict": true "strict": true
} }
} }
``` ```text
### 3.2. Заборонено ### 3.2. Заборонено
* `any` - `any`
* `!` non-null assertion (за винятком рідкісних випадків) - `!` non-null assertion (за винятком рідкісних випадків)
* глобальний mutable state - глобальний mutable state
### 3.3. API-типи ### 3.3. API-типи
* Генеруємо типи з API Snapshot / OpenAPI. - Генеруємо типи з API Snapshot / OpenAPI.
* Типи для відповідей зберігаються в `src/api/types.ts`. - Типи для відповідей зберігаються в `src/api/types.ts`.
## 4. React Query (network layer) ## 4. React Query (network layer)
@@ -87,31 +87,31 @@ export async function api<T>(path: string, options?: RequestInit): Promise<T> {
return res.json(); return res.json();
} }
``` ```text
### 4.2. Query Keys ### 4.2. Query Keys
``` ```text
["teams"] ["teams"]
["teams", teamId] ["teams", teamId]
["channels", teamId] ["channels", teamId]
["messages", channelId] ["messages", channelId]
["followups", teamId] ["followups", teamId]
["projects", teamId] ["projects", teamId]
``` ```text
## 5. Стандарти компонентів ## 5. Стандарти компонентів
### 5.1. Іменування ### 5.1. Іменування
* Компоненти: `PascalCase` - Компоненти: `PascalCase`
* Хуки: `useCamelCase` - Хуки: `useCamelCase`
* Файли: `camel-case.tsx` - Файли: `camel-case.tsx`
* Папки: `kebab-case` - Папки: `kebab-case`
### 5.2. Компонент повинен мати: ### 5.2. Компонент повинен мати
* Чіткий props-інтерфейс: - Чіткий props-інтерфейс:
```ts ```ts
interface MyCompProps { interface MyCompProps {
@@ -119,8 +119,8 @@ export async function api<T>(path: string, options?: RequestInit): Promise<T> {
onClick: () => void; onClick: () => void;
} }
``` ```
* Внутрішній стан не змішується з зовнішнім API-станом. - Внутрішній стан не змішується з зовнішнім API-станом.
* Міжкомпонентна логіка виноситься в хуки (наприклад: `useMessages(channelId)`). - Міжкомпонентна логіка виноситься в хуки (наприклад: `useMessages(channelId)`).
## 6. Обробка помилок ## 6. Обробка помилок
@@ -143,20 +143,20 @@ POST — без retry.
Всі тексти повинні бути в словнику: Всі тексти повинні бути в словнику:
``` ```text
src/i18n/uk.json src/i18n/uk.json
src/i18n/en.json src/i18n/en.json
``` ```text
Формат ключів: Формат ключів:
``` ```text
onboarding.welcome_title onboarding.welcome_title
onboarding.next onboarding.next
chat.send chat.send
chat.input_placeholder chat.input_placeholder
followup.create followup.create
``` ```text
Форсувати одразу правильну структуру. Форсувати одразу правильну структуру.
@@ -164,18 +164,18 @@ followup.create
### 8.1. Кольори ### 8.1. Кольори
``` ```text
--primary: #3F51F5; --primary: #3F51F5;
--success: #43A047; --success: #43A047;
--error: #E53935; --error: #E53935;
--gray-100: #F8F9FA; --gray-100: #F8F9FA;
--gray-200: #ECEFF1; --gray-200: #ECEFF1;
--gray-800: #263238; --gray-800: #263238;
``` ```text
### 8.2. Типографіка ### 8.2. Типографіка
* System font stack: - System font stack:
`"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto` `"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto`
### 8.3. Контрасти ### 8.3. Контрасти
@@ -184,12 +184,12 @@ followup.create
## 9. Робота з WebSockets ## 9. Робота з WebSockets
* Використовуємо один хук: `useChannelStream(channelId)`. - Використовуємо один хук: `useChannelStream(channelId)`.
* WS підключається коли відкрито чат. - WS підключається коли відкрито чат.
* Події: - Події:
* `message.created` - `message.created`
* `message.updated` - `message.updated`
Не зберігати WS-стан у глобальному store. Не зберігати WS-стан у глобальному store.
@@ -197,11 +197,11 @@ followup.create
Що треба **вимкнути** у коді, щоб не перевантажити ранніх користувачів: Що треба **вимкнути** у коді, щоб не перевантажити ранніх користувачів:
* Без drag'n'drop для файлів. - Без drag'n'drop для файлів.
* Без реакцій (emoji). - Без реакцій (emoji).
* Без WYSIWYG редактора. - Без WYSIWYG редактора.
* Без Co-Memory (файли/документи), лише stub. - Без Co-Memory (файли/документи), лише stub.
* Без granular RBAC. - Без granular RBAC.
## 11. Патерни, які Cursor повинен дотримуватися ## 11. Патерни, які Cursor повинен дотримуватися
@@ -213,7 +213,7 @@ followup.create
## 12. Приклад робочого промта для Cursor ## 12. Приклад робочого промта для Cursor
``` ```text
You are a senior React/TS engineer. You are a senior React/TS engineer.
Implement Step 2 of the onboarding flow (/onboarding). Implement Step 2 of the onboarding flow (/onboarding).
@@ -226,7 +226,7 @@ Specs:
Please output: Please output:
- list of files to modify - list of files to modify
- code diff - code diff
``` ```text
## 13. Мета документа ## 13. Мета документа
@@ -234,8 +234,8 @@ Please output:
Він гарантує: Він гарантує:
* узгоджений стиль, - узгоджений стиль,
* передбачуваний код, - передбачуваний код,
* мінімум помилок, - мінімум помилок,
* легку підтримку, - легку підтримку,
* зрозумілість структури для нових девелоперів. - зрозумілість структури для нових девелоперів.

View File

@@ -10,7 +10,7 @@ Notifications & Attention Agent (далі — Attention Agent) відповід
--- ---
# 1. Призначення ## 1. Призначення
Attention Agent: Attention Agent:
@@ -25,7 +25,7 @@ Attention Agent:
--- ---
# 2. Проблеми, які він вирішує ## 2. Проблеми, які він вирішує
- надлишок сповіщень, - надлишок сповіщень,
- інформаційне перевантаження, - інформаційне перевантаження,
@@ -37,7 +37,7 @@ Attention Agent:
--- ---
# 3. Види уваги ## 3. Види уваги
Attention Agent працює з трьома видами уваги: Attention Agent працює з трьома видами уваги:
@@ -55,11 +55,11 @@ Attention Agent працює з трьома видами уваги:
--- ---
# 4. Модель даних (log of events) ## 4. Модель даних (log of events)
Attention Agent працює поверх подій (`events`): Attention Agent працює поверх подій (`events`):
``` ```text
event: { event: {
id, id,
team_id, team_id,
@@ -68,13 +68,13 @@ source, // messenger, tasks, governance, agents...
payload, // JSON payload, // JSON
ts ts
} }
``` ```text
Він визначає важливість і формує *streams of attention*. Він визначає важливість і формує *streams of attention*.
--- ---
# 5. Потоки уваги (Attention Streams) ## 5. Потоки уваги (Attention Streams)
### 5.1. High-Attention Stream ### 5.1. High-Attention Stream
@@ -93,7 +93,7 @@ ts
--- ---
# 6. Attention Agent — спроможності ## 6. Attention Agent — спроможності
## 6.1. Фільтрація шуму ## 6.1. Фільтрація шуму
@@ -151,7 +151,7 @@ ts
--- ---
# 7. Інтеграція з агентами інших модулів ## 7. Інтеграція з агентами інших модулів
### Messenger Agent ### Messenger Agent
@@ -176,7 +176,7 @@ ts
--- ---
# 8. Tools (для Runtime Core) ## 8. Tools (для Runtime Core)
### 8.1. classify_event ### 8.1. classify_event
@@ -204,7 +204,7 @@ ts
--- ---
# 9. Інтеграція з Runtime Core (12) ## 9. Інтеграція з Runtime Core (12)
```ts ```ts
const attentionAgentConfig: AgentConfig = { const attentionAgentConfig: AgentConfig = {
@@ -223,48 +223,48 @@ const attentionAgentConfig: AgentConfig = {
"highlight_critical" "highlight_critical"
] ]
}; };
``` ```text
--- ---
# 10. UI — візуалізація уваги ## 10. UI — візуалізація уваги
## 10.1. Панель уваги (Attention Panel) ## 10.1. Панель уваги (Attention Panel)
Правий сайдбар у будь-якому контексті: Правий сайдбар у будь-якому контексті:
* топ важливих подій, - топ важливих подій,
* пропущені сигнали, - пропущені сигнали,
* критичні оновлення. - критичні оновлення.
## 10.2. Центр уваги (Attention Hub) ## 10.2. Центр уваги (Attention Hub)
Окремий екран: Окремий екран:
* `/t/:teamId/attention` - `/t/:teamId/attention`
Тут користувач бачить: Тут користувач бачить:
* "Важливе за сьогодні", - "Важливе за сьогодні",
* "Критичне зараз", - "Критичне зараз",
* "Рекомендоване до перегляду". - "Рекомендоване до перегляду".
## 10.3. Дайджести ## 10.3. Дайджести
* кнопка "Огляд дня", - кнопка "Огляд дня",
* кнопка "Огляд тижня". - кнопка "Огляд тижня".
## 10.4. Налаштування уваги ## 10.4. Налаштування уваги
Користувач може обрати: Користувач може обрати:
* рівень чутливості, - рівень чутливості,
* типи подій, - типи подій,
* тихі години. - тихі години.
--- ---
# 11. API ## 11. API
### Події ### Події
@@ -279,9 +279,9 @@ const attentionAgentConfig: AgentConfig = {
--- ---
# 12. Інструкції для Cursor ## 12. Інструкції для Cursor
``` ```text
Implement the Notifications & Attention Agent using: Implement the Notifications & Attention Agent using:
- 19_notifications_attention_agent.md - 19_notifications_attention_agent.md
@@ -318,18 +318,17 @@ Output:
- file list - file list
- diff - diff
- summary - summary
``` ```text
--- ---
# 13. Результат ## 13. Результат
Після впровадження цього модуля: Після впровадження цього модуля:
* спільнота перестає тонути в шумі, - спільнота перестає тонути в шумі,
* виникає природна структура уваги, - виникає природна структура уваги,
* критичні події не губляться, - критичні події не губляться,
* люди й агенти діють у правильному ритмі, - люди й агенти діють у правильному ритмі,
* інформаційне навантаження стає здоровим і екологічним. - інформаційне навантаження стає здоровим і екологічним.

View File

@@ -121,3 +121,5 @@ docs/cursor/09_evolutionary_agent.md
docs/cursor/03_api_core_snapshot.md docs/cursor/03_api_core_snapshot.md
docs/cursor/10_agent_ui_system.md docs/cursor/10_agent_ui_system.md
docs/cursor/16_followups_reminders_agent.md docs/cursor/16_followups_reminders_agent.md
docs/cursor/05_coding_standards.md
docs/cursor/19_notifications_attention_agent.md