docs: лейблы вместо типов задач
- Произвольные лейблы (как в Jira) - Таблица labels + task_labels - Связка лейблов с capabilities адаптеров
This commit is contained in:
parent
51a091148f
commit
d39354f7dd
66
IDEAS.md
66
IDEAS.md
@ -128,12 +128,11 @@ team-board/
|
||||
описание: "Markdown текст с деталями"
|
||||
статус: draft | ready | in_progress | review | completed | blocked
|
||||
|
||||
# Тип задачи (флаги/теги)
|
||||
теги: ["кодинг", "api", "auth"]
|
||||
тип: coding | analytics | design | testing | docs | other
|
||||
# Лейблы (как в Jira — произвольные, создаются в трекере)
|
||||
лейблы: ["coding", "api", "backend", "urgent"]
|
||||
|
||||
# PR (только для задач с кодом)
|
||||
требует_pr: true | false # автоматически по типу задачи
|
||||
# PR (вручную или по лейблу)
|
||||
требует_pr: true | false
|
||||
|
||||
# Назначение
|
||||
назначен: agent_id (или null)
|
||||
@ -287,15 +286,29 @@ Task A ──depends_on──→ Task B
|
||||
таймаут: 600 # секунд
|
||||
```
|
||||
|
||||
### Связка: типы задач ↔ адаптеры
|
||||
### Лейблы
|
||||
|
||||
```
|
||||
Задача с тегом "coding" → только агенты с адаптером, у которого capability "coding"
|
||||
Задача с тегом "design" → только агенты с адаптером, у которого capability "design"
|
||||
Задача с тегом "analytics" → только агенты с адаптером, у которого capability "analytics"
|
||||
Произвольные метки, создаются в трекере (как в Jira):
|
||||
|
||||
```sql
|
||||
CREATE TABLE labels (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name TEXT UNIQUE NOT NULL, -- "coding", "design", "urgent"
|
||||
color TEXT, -- "#ff0000"
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
```
|
||||
|
||||
Агент-дизайнер НЕ возьмёт задачу на кодинг — у его адаптера нет такой возможности.
|
||||
Примеры: `coding`, `design`, `analytics`, `testing`, `docs`, `backend`, `frontend`, `urgent`, `bug`
|
||||
|
||||
### Связка: лейблы задач ↔ capabilities адаптеров
|
||||
|
||||
```
|
||||
Задача с лейблом "coding" → только агенты с адаптером, у которого capability "coding"
|
||||
Задача с лейблом "design" → только агенты с адаптером, у которого capability "design"
|
||||
```
|
||||
|
||||
Агент-дизайнер НЕ возьмёт задачу с лейблом `coding` — у его адаптера нет такой capability.
|
||||
|
||||
### Типы провайдеров
|
||||
|
||||
@ -351,15 +364,10 @@ agent.heartbeat — пульс
|
||||
|
||||
### Не каждая задача = PR
|
||||
|
||||
| Тип задачи | Нужен PR? |
|
||||
|------------|-----------|
|
||||
| coding | Да |
|
||||
| testing | Да |
|
||||
| analytics | Нет — результат в виде файла/отчёта |
|
||||
| design | Нет — результат в виде файла |
|
||||
| docs | Возможно — зависит от проекта |
|
||||
|
||||
Поле `требует_pr` определяется автоматически по типу, но можно переопределить вручную.
|
||||
PR нужен когда задача связана с кодом. Определяется вручную или по лейблам:
|
||||
- Лейбл `coding` / `testing` → `требует_pr = true` (по умолчанию)
|
||||
- Лейбл `design` / `analytics` → `требует_pr = false`
|
||||
- Можно переопределить вручную
|
||||
|
||||
### Флоу ревью (для задач с PR)
|
||||
|
||||
@ -487,8 +495,7 @@ CREATE TABLE tasks (
|
||||
title TEXT NOT NULL,
|
||||
description TEXT,
|
||||
status TEXT DEFAULT 'draft',
|
||||
task_type TEXT DEFAULT 'other', -- coding, analytics, design, testing, docs
|
||||
tags TEXT[],
|
||||
-- лейблы через связующую таблицу task_labels
|
||||
requires_pr BOOLEAN DEFAULT FALSE,
|
||||
assigned_agent_id UUID REFERENCES agents(id),
|
||||
priority TEXT DEFAULT 'medium',
|
||||
@ -504,6 +511,21 @@ CREATE TABLE task_dependencies (
|
||||
PRIMARY KEY (task_id, depends_on_id)
|
||||
);
|
||||
|
||||
-- Лейблы
|
||||
CREATE TABLE labels (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name TEXT UNIQUE NOT NULL,
|
||||
color TEXT,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Связка задач и лейблов
|
||||
CREATE TABLE task_labels (
|
||||
task_id UUID REFERENCES tasks(id) ON DELETE CASCADE,
|
||||
label_id UUID REFERENCES labels(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (task_id, label_id)
|
||||
);
|
||||
|
||||
-- Файлы задач
|
||||
CREATE TABLE task_files (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user