Files
APAW/agent-evolution/MILESTONE_ISSUES.md
¨NW¨ fa68141d47 feat: add pipeline-judge agent and evolution workflow system
- Add pipeline-judge agent for objective fitness scoring
- Update capability-index.yaml with pipeline-judge, evolution config
- Add fitness-evaluation.md workflow for auto-optimization
- Update evolution.md command with /evolve CLI
- Create .kilo/logs/fitness-history.jsonl for metrics logging
- Update AGENTS.md with new workflow state machine
- Add 6 new issues to MILESTONE_ISSUES.md for evolution integration
- Preserve ideas in agent-evolution/ideas/

Pipeline Judge computes fitness = (test_rate*0.5) + (gates*0.25) + (efficiency*0.25)
Auto-triggers prompt-optimizer when fitness < 0.70
2026-04-06 00:23:50 +01:00

483 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Agent Evolution Dashboard - Milestone & Issues
## Milestone: Agent Evolution Dashboard
**Title:** Agent Evolution Dashboard
**Description:** Интерактивная панель для отслеживания эволюции агентной системы APAW с интеграцией Gitea
**Due Date:** 2026-04-19 (2 недели)
**State:** Open
---
## Issues
### Issue 1: Рефакторинг из архива в root-директорию
**Title:** Рефакторинг: перенести agent model research из archive в agent-evolution
**Labels:** `refactor`, `high-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Файл `archive/apaw_agent_model_research_v3.html` содержит ценную информацию о моделях и рекомендациях. Необходимо:
1. ✅ Создать директорию `agent-evolution/` в корне проекта
2. ✅ Создать `agent-evolution/index.standalone.html` с интегрированными данными
3. ✅ Создать `agent-evolution/data/agent-versions.json` с актуальными данными
4. ✅ Создать `agent-evolution/scripts/build-standalone.cjs` для генерации
5. 🔄 Удалить `archive/apaw_agent_model_research_v3.html` после переноса данных
**Критерии приёмки:**
- [ ] Все данные из архива интегрированы
- [ ] Дашборд работает автономно (file://)
- [ ] Данные актуальны на момент коммита
---
### Issue 2: Интеграция с Gitea для истории изменений
**Title:** Интеграция Agent Evolution с Gitea API
**Labels:** `enhancement`, `integration`, `high-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Требуется интегрировать дашборд с Gitea для:
1. Получения истории изменений моделей из issue comments
2. Парсинга комментариев агентов (формат `## ✅ agent-name completed`)
3. Извлечения метрик производительности (Score, Duration, Files)
4. Отображения реальной истории в дашборде
**Требования:**
- API endpoint `/api/evolution/history` для получения истории
- Webhook для автоматического обновления при новых комментариях
- Кэширование данных локально
- Fallback на локальные данные при недоступности Gitea
**Критерии приёмки:**
- [ ] История загружается из Gitea при наличии API
- [ ] Fallback на локальные данные
- [ ] Webhook обрабатывает `issue_comment` события
- [ ] Данные обновляются в реальном времени
---
### Issue 3: Синхронизация с capability-index.yaml и kilo.jsonc
**Title:** Автоматическая синхронизация эволюции агентов
**Labels:** `automation`, `sync`, `medium-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Создать автоматическую синхронизацию данных эволюции из:
1. `.kilo/agents/*.md` - frontmatter с моделями
2. `.kilo/capability-index.yaml` - capabilities и routing
3. `.kilo/kilo.jsonc` - model assignments
4. Git history - история изменений
5. Gitea issue comments - performance metrics
**Скрипты:**
- `agent-evolution/scripts/sync-agent-history.ts` - основная синхронизация
- `agent-evolution/scripts/build-standalone.cjs` - генерация HTML
**NPM Scripts:**
```json
"sync:evolution": "bun run agent-evolution/scripts/sync-agent-history.ts && node agent-evolution/scripts/build-standalone.cjs",
"evolution:dashboard": "bunx serve agent-evolution -l 3001",
"evolution:open": "start agent-evolution/index.standalone.html"
```
**Критерии приёмки:**
- [ ] Синхронизация работает корректно
- [ ] HTML генерируется автоматически
- [ ] Данные консистентны
---
### Issue 4: Документация и README
**Title:** Документация Agent Evolution Dashboard
**Labels:** `documentation`, `low-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Создать полную документацию:
1.`agent-evolution/README.md` - основная документация
2. 🔄 `docs/agent-evolution.md` - техническая документация
3. 🔄 Инструкция по запуску в `AGENTS.md`
4. ✅ Schema: `agent-evolution/data/agent-versions.schema.json`
5. ✅ Skills: `.kilo/skills/evolution-sync/SKILL.md`
6. ✅ Rules: `.kilo/rules/evolutionary-sync.md`
**Критерии приёмки:**
- [ ] README покрывает все сценарии использования
- [ ] Техническая документация описывает API
- [ ] Есть примеры кода
---
### Issue 5: Docker контейнер для дашборда
**Title:** Docker-изация Agent Evolution Dashboard
**Labels:** `docker`, `deployment`, `low-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Упаковать дашборд в Docker для простого деплоя:
**Файлы:**
-`agent-evolution/Dockerfile`
-`docker-compose.evolution.yml`
-`agent-evolution/docker-run.sh` (Linux/macOS)
-`agent-evolution/docker-run.bat` (Windows)
**Команды:**
```bash
# Linux/macOS
bash agent-evolution/docker-run.sh restart
# Windows
agent-evolution\docker-run.bat restart
# Docker Compose
docker-compose -f docker-compose.evolution.yml up -d
```
**Критерии приёмки:**
- [ ] Docker образ собирается
- [ ] Контейнер запускается на порту 3001
- [ ] Данные монтируются корректно
---
## NEW: Pipeline Fitness & Auto-Evolution Issues
### Issue 6: Pipeline Judge Agent — Объективная оценка fitness
**Title:** Создать pipeline-judge агента для объективной оценки workflow
**Labels:** `agent`, `fitness`, `high-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Создать агента `pipeline-judge`, который объективно оценивает качество выполненного workflow на основе метрик, а не субъективных оценок.
**Отличие от evaluator:**
- `evaluator` — субъективные оценки 1-10 на основе наблюдений
- `pipeline-judge` — объективные метрики: тесты, токены, время, quality gates
**Файлы:**
- `.kilo/agents/pipeline-judge.md` — ✅ создан
**Fitness Formula:**
```
fitness = (test_pass_rate × 0.50) + (quality_gates_rate × 0.25) + (efficiency_score × 0.25)
```
**Метрики:**
- Test pass rate: passed/total тестов
- Quality gates: build, lint, typecheck, tests_clean, coverage
- Efficiency: токены и время относительно бюджетов
**Критерии приёмки:**
- [x] Агент создан в `.kilo/agents/pipeline-judge.md`
- [ ] Добавлен в `capability-index.yaml`
- [ ] Интегрирован в workflow после завершения пайплайна
- [ ] Логирует результаты в `.kilo/logs/fitness-history.jsonl`
- [ ] Триггерит `prompt-optimizer` при fitness < 0.70
---
### Issue 7: Fitness History Logging — накопление метрик
**Title:** Создать систему логирования fitness-метрик
**Labels:** `logging`, `metrics`, `high-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Создать систему накопления fitness-метрик для отслеживания эволюции пайплайна во времени.
**Формат лога (`.kilo/logs/fitness-history.jsonl`):**
```jsonl
{"ts":"2026-04-06T00:00:00Z","issue":42,"workflow":"feature","fitness":0.82,"tokens":38400,"time_ms":245000,"tests_passed":45,"tests_total":47}
{"ts":"2026-04-06T01:30:00Z","issue":43,"workflow":"bugfix","fitness":0.91,"tokens":12000,"time_ms":85000,"tests_passed":47,"tests_total":47}
```
**Действия:**
1. ✅ Создать директорию `.kilo/logs/` если не существует
2. 🔄 Создать `.kilo/logs/fitness-history.jsonl`
3. 🔄 Обновить `pipeline-judge.md` для записи в лог
4. 🔄 Создать скрипт `agent-evolution/scripts/sync-fitness-history.ts`
**Критерии приёмки:**
- [ ] Файл `.kilo/logs/fitness-history.jsonl` создан
- [ ] pipeline-judge пишет в лог после каждого workflow
- [ ] Скрипт синхронизации интегрирован в `sync:evolution`
- [ ] Дашборд отображает фитнесс-тренды
---
### Issue 8: Evolution Workflow — автоматическое самоулучшение
**Title:** Реализовать эволюционный workflow для автоматической оптимизации
**Labels:** `workflow`, `automation`, `high-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Реализовать непрерывный цикл самоулучшения пайплайна на основе фитнесс-метрик.
**Workflow:**
```
[Workflow Completes]
[pipeline-judge] → fitness score
┌───────────────────────────┐
│ fitness >= 0.85 │──→ Log + done
│ fitness 0.70-0.84 │──→ [prompt-optimizer] minor tuning
│ fitness < 0.70 │──→ [prompt-optimizer] major rewrite
│ fitness < 0.50 │──→ [agent-architect] redesign
└───────────────────────────┘
[Re-run workflow with new prompts]
[pipeline-judge] again
[Compare before/after]
[Commit or revert]
```
**Файлы:**
- `.kilo/workflows/fitness-evaluation.md` — документация workflow
- Обновить `capability-index.yaml` — добавить `iteration_loops.evolution`
**Конфигурация:**
```yaml
evolution:
enabled: true
auto_trigger: true
fitness_threshold: 0.70
max_evolution_attempts: 3
fitness_history: .kilo/logs/fitness-history.jsonl
budgets:
feature: {tokens: 50000, time_s: 300}
bugfix: {tokens: 20000, time_s: 120}
refactor: {tokens: 40000, time_s: 240}
security: {tokens: 30000, time_s: 180}
```
**Критерии приёмки:**
- [ ] Workflow определён в `.kilo/workflows/`
- [ ] Интегрирован в основной pipeline
- [ ] Автоматически триггерит prompt-optimizer
- [ ] Сравнивает before/after fitness
- [ ] Коммитит только улучшения
---
### Issue 9: /evolve Command — ручной запуск эволюции
**Title:** Обновить команду /evolve для работы с fitness
**Labels:** `command`, `cli`, `medium-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Расширить существующую команду `/evolution` (логирование моделей) до полноценной `/evolve` команды с анализом fitness.
**Текущий `/evolution`:**
- Логирует изменения моделей
- Генерирует отчёты
**Новый `/evolve`:**
```bash
/evolve # evolve last completed workflow
/evolve --issue 42 # evolve workflow for issue #42
/evolve --agent planner # focus evolution on one agent
/evolve --dry-run # show what would change without applying
/evolve --history # print fitness trend chart
```
**Execution:**
1. Judge: `Task(subagent_type: "pipeline-judge")` → fitness report
2. Decide: threshold-based routing
3. Re-test: тот же workflow с обновлёнными промптами
4. Log: append to fitness-history.jsonl
**Файлы:**
- Обновить `.kilo/commands/evolution.md` — добавить fitness логику
- Создать алиас `/evolve``/evolution --fitness`
**Критерии приёмки:**
- [ ] Команда `/evolve` работает с fitness
- [ ] Опции `--issue`, `--agent`, `--dry-run`, `--history`
- [ ] Интегрирована с `pipeline-judge`
- [ ] Отображает тренд fitness
---
### Issue 10: Update Capability Index — интеграция pipeline-judge
**Title:** Добавить pipeline-judge и evolution конфигурацию в capability-index.yaml
**Labels:** `config`, `integration`, `high-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Обновить `capability-index.yaml` для поддержки нового эволюционного workflow.
**Добавить:**
```yaml
agents:
pipeline-judge:
capabilities:
- test_execution
- fitness_scoring
- metric_collection
- bottleneck_detection
receives:
- completed_workflow
- pipeline_logs
produces:
- fitness_report
- bottleneck_analysis
- improvement_triggers
forbidden:
- code_writing
- code_changes
- prompt_changes
model: ollama-cloud/nemotron-3-super
mode: subagent
capability_routing:
fitness_scoring: pipeline-judge
test_execution: pipeline-judge
bottleneck_detection: pipeline-judge
iteration_loops:
evolution:
evaluator: pipeline-judge
optimizer: prompt-optimizer
max_iterations: 3
convergence: fitness_above_0.85
workflow_states:
evaluated: [evolving, completed]
evolving: [evaluated]
evolution:
enabled: true
auto_trigger: true
fitness_threshold: 0.70
max_evolution_attempts: 3
fitness_history: .kilo/logs/fitness-history.jsonl
budgets:
feature: {tokens: 50000, time_s: 300}
bugfix: {tokens: 20000, time_s: 120}
refactor: {tokens: 40000, time_s: 240}
security: {tokens: 30000, time_s: 180}
```
**Критерии приёмки:**
- [ ] pipeline-judge добавлен в секцию agents
- [ ] capability_routing обновлён
- [ ] iteration_loops.evolution добавлен
- [ ] workflow_states обновлены
- [ ] Секция evolution конфигурирована
- [ ] YAML валиден
---
### Issue 11: Dashboard Evolution Tab — визуализация fitness
**Title:** Добавить вкладку Fitness Evolution в дашборд
**Labels:** `dashboard`, `visualization`, `medium-priority`
**Milestone:** Agent Evolution Dashboard
**Описание:**
Расширить дашборд для отображения фитнесс-метрик и трендов эволюции.
**Новая вкладка "Evolution":**
- **Fitness Trend Chart** — график fitness по времени
- **Workflow Comparison** — сравнение fitness разных workflow типов
- **Agent Bottlenecks** — агенты с наибольшим потреблением токенов
- **Optimization History** — история оптимизаций промптов
**Data Source:**
- `.kilo/logs/fitness-history.jsonl`
- `.kilo/logs/efficiency_score.json`
**UI Components:**
```javascript
// Fitness Trend Chart
// X-axis: timestamp
// Y-axis: fitness score (0.0 - 1.0)
// Series: issues by type (feature, bugfix, refactor)
// Agent Heatmap
// Rows: agents
// Cols: metrics (tokens, time, contribution)
// Color: intensity
```
**Критерии приёмки:**
- [ ] Вкладка "Evolution" добавлена в дашборд
- [ ] График fitness-trend работает
- [ ] Agent bottlenecks отображаются
- [ ] Данные загружаются из fitness-history.jsonl
---
## Статус направления
**Текущий статус:** `ACTIVE` — новые ишьюсы для интеграции fitness-системы
**Приоритеты на спринт:**
| Priority | Issue | Effort | Impact |
|----------|-------|--------|--------|
| **P0** | #6 Pipeline Judge Agent | Low | High |
| **P0** | #7 Fitness History Logging | Low | High |
| **P0** | #10 Capability Index Update | Low | High |
| **P1** | #8 Evolution Workflow | Medium | High |
| **P1** | #9 /evolve Command | Medium | Medium |
| **P2** | #11 Dashboard Evolution Tab | Medium | Medium |
**Зависимости:**
```
#6 (pipeline-judge) ──► #7 (fitness-history) ──► #11 (dashboard)
└──► #10 (capability-index)
┌───────────────┘
#8 (evolution-workflow) ──► #9 (evolve-command)
```
**Рекомендуемый порядок выполнения:**
1. Issue #6: Создать `pipeline-judge.md` ✅ DONE
2. Issue #10: Обновить `capability-index.yaml`
3. Issue #7: Создать `fitness-history.jsonl` и интегрировать логирование
4. Issue #8: Создать workflow `fitness-evaluation.md`
5. Issue #9: Обновить команду `/evolution`
6. Issue #11: Добавить вкладку в дашборд
---
## Quick Links
- Dashboard: `agent-evolution/index.standalone.html`
- Data: `agent-evolution/data/agent-versions.json`
- Build Script: `agent-evolution/scripts/build-standalone.cjs`
- Docker: `docker-compose -f docker-compose.evolution.yml up -d`
- NPM: `bun run sync:evolution`
- **NEW** Pipeline Judge: `.kilo/agents/pipeline-judge.md`
- **NEW** Fitness Log: `.kilo/logs/fitness-history.jsonl`
---
## Changelog
### 2026-04-06
- ✅ Created `pipeline-judge.md` agent
- ✅ Updated MILESTONE_ISSUES.md with 6 new issues (#6-#11)
- ✅ Added dependency graph and priority matrix
- ✅ Changed status from PAUSED to ACTIVE