metaagent updated
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# ADR-NNNN: <Заголовок решения>
|
||||
|
||||
**Статус:** proposed | accepted | deprecated | superseded
|
||||
|
||||
**Дата:** {{ date }}
|
||||
|
||||
**Контекст:** почему возникла необходимость в решении, какая проблема решается.
|
||||
|
||||
**Рассматриваемые альтернативы:**
|
||||
1. Вариант A — описание
|
||||
2. Вариант B — описание
|
||||
3. Вариант C — описание
|
||||
|
||||
**Решение:** выбран вариант <A/B/C>.
|
||||
|
||||
**Обоснование:** почему выбран именно этот вариант (критерии: сложность, поддерживаемость, производительность, совместимость).
|
||||
|
||||
**Последствия:**
|
||||
- Позитивные: ...
|
||||
- Негативные: ...
|
||||
- Риски: ...
|
||||
|
||||
**Invariant (если применимо):** ключевое правило, которое не должен нарушать исполнительный агент. Если можно — ссылка на тест, проверяющий invariant.
|
||||
@@ -0,0 +1,101 @@
|
||||
# Analysis Report
|
||||
|
||||
## Session
|
||||
|
||||
- **Session ID:** `{{ session_id }}`
|
||||
- **Target repo:** `{{ target_repo }}`
|
||||
- **Date:** {{ date }}
|
||||
- **Project type:** `{{ project_type }}` (existing / greenfield / scaffold)
|
||||
|
||||
## 1. Общая информация
|
||||
|
||||
- **README:** {{ readme_summary }}
|
||||
- **Лицензия:** {{ license }}
|
||||
- **CI/CD:** {{ ci_cd }}
|
||||
- **Точка входа:** {{ entry_point }}
|
||||
- **Система сборки:** {{ build_system }}
|
||||
|
||||
{% if project_type == "existing" or project_type == "scaffold" %}
|
||||
## 2. Стек технологий
|
||||
|
||||
| Компонент | Значение |
|
||||
|---|---|
|
||||
| Язык | {{ language }} |
|
||||
| Фреймворк | {{ framework }} |
|
||||
| База данных | {{ database }} |
|
||||
| Тестовый раннер | {{ test_runner }} |
|
||||
| Пакетный менеджер | {{ package_manager }} |
|
||||
| Линтер/форматтер | {{ linter }} |
|
||||
|
||||
## 3. Архитектура
|
||||
|
||||
```
|
||||
{{ directory_tree }}
|
||||
```
|
||||
|
||||
**Паттерн:** {{ architecture_pattern }}
|
||||
|
||||
**Ключевые модули:**
|
||||
|
||||
| Модуль | Описание |
|
||||
|---|---|
|
||||
| {{ module }} | {{ description }} |
|
||||
|
||||
## 4. Конвенции
|
||||
|
||||
- **Стиль:** {{ code_style }}
|
||||
- **Импорты:** {{ import_style }}
|
||||
- **Типизация:** {{ typing_usage }}
|
||||
- **Обработка ошибок:** {{ error_handling }}
|
||||
- **Логирование:** {{ logging }}
|
||||
|
||||
## 5. Тесты
|
||||
|
||||
- **Команда запуска:** `{{ test_command }}`
|
||||
- **Всего тестов:** {{ total_tests }}
|
||||
- **Пройдено:** {{ passed }}
|
||||
- **Упало:** {{ failed }}
|
||||
- **Пропущено:** {{ skipped }}
|
||||
- **Упавшие тесты:**
|
||||
{% for test in failed_tests %}
|
||||
- `{{ test }}`
|
||||
{% endfor %}
|
||||
|
||||
## 6. Базовая проверка
|
||||
|
||||
- **Сборка:** {{ build_status }}
|
||||
- **Запуск:** {{ run_status }}
|
||||
- **Git status:** {{ git_status }}
|
||||
{% endif %}
|
||||
|
||||
{% if project_type == "greenfield" or project_type == "scaffold" %}
|
||||
## 7. Требования (из README)
|
||||
|
||||
### Функциональные требования
|
||||
|
||||
{% for req in functional_requirements %}
|
||||
- {{ req }}
|
||||
{% endfor %}
|
||||
|
||||
### Нефункциональные требования
|
||||
|
||||
{% for req in non_functional_requirements %}
|
||||
- {{ req }}
|
||||
{% endfor %}
|
||||
|
||||
### Бизнес-контекст
|
||||
|
||||
{% for item in business_context %}
|
||||
- {{ item }}
|
||||
{% endfor %}
|
||||
|
||||
### Неясные моменты / Вопросы
|
||||
|
||||
{% for question in open_questions %}
|
||||
- {{ question }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
## 8. Примечания
|
||||
|
||||
{{ notes }}
|
||||
@@ -0,0 +1,120 @@
|
||||
# Design Report
|
||||
|
||||
## Session
|
||||
|
||||
- **Session ID:** `{{ session_id }}`
|
||||
- **Target repo:** `{{ target_repo }}`
|
||||
- **Date:** {{ date }}
|
||||
|
||||
## 1. Технологический стек
|
||||
|
||||
| Компонент | Выбор | Обоснование |
|
||||
|---|---|---|
|
||||
| Язык | {{ language }} | {{ language_rationale }} |
|
||||
| Фреймворк | {{ framework }} | {{ framework_rationale }} |
|
||||
| База данных | {{ database }} | {{ database_rationale }} |
|
||||
| Инфраструктура | {{ infrastructure }} | {{ infrastructure_rationale }} |
|
||||
|
||||
## 2. High-Level архитектура
|
||||
|
||||
**Паттерн:** {{ architecture_pattern }}
|
||||
|
||||
```
|
||||
{{ architecture_diagram }}
|
||||
```
|
||||
|
||||
**Поток данных:**
|
||||
1. {{ data_flow_step_1 }}
|
||||
2. {{ data_flow_step_2 }}
|
||||
3. {{ data_flow_step_3 }}
|
||||
|
||||
## 3. Модули
|
||||
|
||||
| Модуль | Ответственность | Ключевые компоненты | Зависит от |
|
||||
|---|---|---|---|
|
||||
| `{{ module_path }}` | {{ responsibility }} | {{ components }} | {{ dependencies }} |
|
||||
|
||||
## 4. Модели данных
|
||||
|
||||
### Сущности
|
||||
|
||||
{% for entity in entities %}
|
||||
### {{ entity.name }}
|
||||
|
||||
| Поле | Тип | Ограничения | Описание |
|
||||
|---|---|---|---|
|
||||
{% for field in entity.fields %}
|
||||
| {{ field.name }} | {{ field.type }} | {{ field.constraints }} | {{ field.description }} |
|
||||
{% endfor %}
|
||||
|
||||
**Связи:** {{ entity.relationships }}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
## 5. API / Интерфейсы
|
||||
|
||||
{% if has_api %}
|
||||
| Метод | Путь | Описание | Request | Response |
|
||||
|---|---|---|---|---|
|
||||
{% for endpoint in api_endpoints %}
|
||||
| {{ endpoint.method }} | {{ endpoint.path }} | {{ endpoint.description }} | {{ endpoint.request }} | {{ endpoint.response }} |
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if has_gui %}
|
||||
**Экраны:** {{ gui_screens }}
|
||||
{% endif %}
|
||||
|
||||
{% if has_cli %}
|
||||
**Команды:** {{ cli_commands }}
|
||||
{% endif %}
|
||||
|
||||
## 6. Обработка ошибок
|
||||
|
||||
- **Стратегия:** {{ error_strategy }}
|
||||
- **Формат ошибок:** {{ error_format }}
|
||||
- **Логирование:** {{ logging_strategy }}
|
||||
|
||||
## 7. Тестирование
|
||||
|
||||
- **Unit-тесты:** {{ unit_test_strategy }}
|
||||
- **Integration-тесты:** {{ integration_test_strategy }}
|
||||
- **Mock-стратегия:** {{ mock_strategy }}
|
||||
- **Команда запуска:** `{{ test_command }}`
|
||||
|
||||
## 8. Alternative Architecture (если применимо)
|
||||
|
||||
| Критерий | Выбранная архитектура | Альтернатива |
|
||||
|---|---|---|
|
||||
| Название | {{ chosen_arch }} | {{ alt_arch }} |
|
||||
| Сложность | {{ chosen_complexity }} | {{ alt_complexity }} |
|
||||
| Почему не выбрана | — | {{ alt_rejection_reason }} |
|
||||
|
||||
## 9. ADR Reference (если применимо)
|
||||
|
||||
| ID | Решение | Файл |
|
||||
|---|---|---|
|
||||
{% for adr in adr_list %}
|
||||
| {{ adr.id }} | {{ adr.title }} | `{{ adr.path }}` |
|
||||
{% endfor %}
|
||||
|
||||
## 10. Risk Register (если применимо)
|
||||
|
||||
| # | Assumption | Impact | Mitigation |
|
||||
|---|---|---|---|
|
||||
{% for risk in risk_list %}
|
||||
| {{ risk.id }} | {{ risk.assumption }} | {{ risk.impact }} | {{ risk.mitigation }} |
|
||||
{% endfor %}
|
||||
|
||||
## 11. Предварительная группировка задач
|
||||
|
||||
| Задача | Описание | Тип |
|
||||
|---|---|---|
|
||||
| T1 | {{ task_1 }} | config |
|
||||
| T2 | {{ task_2 }} | feature |
|
||||
| T3 | {{ task_3 }} | feature |
|
||||
| T4 | {{ task_4 }} | test |
|
||||
|
||||
## 12. Примечания
|
||||
|
||||
{{ notes }}
|
||||
@@ -0,0 +1,84 @@
|
||||
# Handoff Summary
|
||||
|
||||
## Session Info
|
||||
|
||||
- **Session ID:** `{{ session_id }}`
|
||||
- **Target Repo:** `{{ target_repo }}`
|
||||
- **Goal:** {{ goal }}
|
||||
- **Date:** {{ date }}
|
||||
- **Duration:** {{ duration }}
|
||||
- **Depth:** {{ depth }}
|
||||
- **Config:** {{ config_summary }}
|
||||
|
||||
## Repo Summary
|
||||
|
||||
{{ repo_summary }}
|
||||
|
||||
## Project Type
|
||||
|
||||
- **Type:** {{ project_type }}
|
||||
- **Design report:** {% if project_type == "greenfield" or project_type == "scaffold" %}`.agent/design-report.md`{% else %}—{% endif %}
|
||||
|
||||
## ADR Summary (если применимо)
|
||||
|
||||
{% if adr_count > 0 %}
|
||||
Создано ADR: {{ adr_count }}
|
||||
{% for adr in adr_list %}
|
||||
- `{{ adr.path }}` — {{ adr.title }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
## Risk Register (если применимо)
|
||||
|
||||
{% if risk_count > 0 %}
|
||||
Задокументировано допущений: {{ risk_count }}
|
||||
Наиболее критичное: {{ top_risk }}
|
||||
{% endif %}
|
||||
|
||||
## Environment Status
|
||||
|
||||
- **Build:** {{ build_status }}
|
||||
- **Tests:** {{ tests_passed }}/{{ tests_total }} passed
|
||||
- **Baseline log:** `.agent/baseline-test-report.log`
|
||||
- **Dependencies:** {{ deps_status }}
|
||||
|
||||
## Task Overview
|
||||
|
||||
| Status | Count |
|
||||
|---|---|
|
||||
| Total | {{ total }} |
|
||||
| Pending | {{ pending }} |
|
||||
| In Progress | {{ in_progress }} |
|
||||
| Completed | {{ completed }} |
|
||||
| Failed/Skipped | {{ failed }} |
|
||||
|
||||
**Task by type:**
|
||||
{% for type, count in tasks_by_type %}
|
||||
- {{ type }}: {{ count }}
|
||||
{% endfor %}
|
||||
|
||||
## Tasks (ordered)
|
||||
|
||||
{% for task in tasks %}
|
||||
### {{ task.id }}: {{ task.title }}
|
||||
- Type: {{ task.type }}
|
||||
- Depends on: {{ task.depends_on | default("—") }}
|
||||
- Files: {{ task.files | join(", ") }}
|
||||
- Status: {{ task.status }}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
## Next Steps
|
||||
|
||||
Исполнительный агент начинает с задачи **{{ first_task }}**.
|
||||
|
||||
## Caveats
|
||||
|
||||
{% for caveat in caveats %}
|
||||
- {{ caveat }}
|
||||
{% endfor %}
|
||||
|
||||
## Checkpoints
|
||||
|
||||
Файл: `.agent/checkpoints.json`
|
||||
Актуальное состояние чекпоинтов прилагается.
|
||||
@@ -0,0 +1,38 @@
|
||||
# MetaAgent Request
|
||||
# Для ручного заполнения перед запуском MetaAgent.
|
||||
# Поместите этот файл в .agent/metaagent-request.md целевого репозитория.
|
||||
# Если файл отсутствует — MetaAgent проведёт интервью (PROTOCOLS/00_CONFIG.md).
|
||||
# Ответьте "default" на любой вопрос — будет использовано значение по умолчанию.
|
||||
|
||||
## Параметры сессии
|
||||
|
||||
| Функция | Вкл | Аргументы |
|
||||
|---|---|---|
|
||||
| ANALYSIS | ✓ | — |
|
||||
| DESIGN | ✓ | adr=yes, alternative_arch=yes |
|
||||
| RED_TEAM | ✗ | — |
|
||||
| RISK_REGISTER | ✗ | — |
|
||||
| DECOMPOSITION | ✓ | invariant_tests=yes |
|
||||
| SETUP | ✓ | — |
|
||||
| HANDOFF | ✓ | layer_structure=yes |
|
||||
|
||||
## Глубина проработки
|
||||
|
||||
**Значение:** 6 (1-10)
|
||||
|
||||
| Уровень | Название | Описание |
|
||||
|---|---|---|
|
||||
| 1-2 | Scaffold | Только структура проекта + пустые модули |
|
||||
| 3-4 | Light | (default) Быстрый дизайн + задачи без расширений |
|
||||
| 5-6 | Standard | Полный ANALYSIS→DESIGN→DECOMP→SETUP→HANDOFF |
|
||||
| 7-8 | Deep | Standard + ADR, Risk Register, Alternative Architecture |
|
||||
| 9-10 | Maximum | Deep + Red Team Review, Executable Invariants |
|
||||
|
||||
## Цель
|
||||
|
||||
Сформулируйте задачу для MetaAgent.
|
||||
|
||||
## Дополнительно
|
||||
|
||||
- **Boundaries:** (опционально) ограничения, которые нельзя нарушать
|
||||
- **Target:** путь к репозиторию или URL
|
||||
@@ -0,0 +1,17 @@
|
||||
# Project Rules
|
||||
|
||||
Правила, которым агент обязан следовать во всех фазах.
|
||||
Добавляйте сюда условия, которые должны соблюдаться всегда — они будут прочитаны
|
||||
перед началом каждой фазы и учтены при декомпозиции и реализации.
|
||||
|
||||
## Обязательные правила
|
||||
|
||||
- (укажите правила, например: «Всегда использовать tabs для отступов»)
|
||||
|
||||
## Запреты
|
||||
|
||||
- (укажите запреты, например: «Не трогать CI/CD конфигурацию»)
|
||||
|
||||
## Конвенции проекта
|
||||
|
||||
- (укажите конвенции, например: «Имена классов в PascalCase, функции в snake_case»)
|
||||
@@ -0,0 +1,7 @@
|
||||
# Risk Register
|
||||
|
||||
| # | Assumption | Impact if wrong | Mitigation | Review trigger |
|
||||
|---|---|---|---|---|
|
||||
| R1 | Пользователи имеют Python 3.11+ | Проект не запускается на старых версиях | Указать требование в README, CI-проверка | При жалобе на установку |
|
||||
| R2 | JSON-файлы не превышают 10MB | Деградация производительности | Добавить лимит в model.py | При первом замедлении |
|
||||
| R3 | ... | ... | ... | ... |
|
||||
@@ -0,0 +1,35 @@
|
||||
# Session Summary
|
||||
|
||||
**Session:** {{ session_id }}
|
||||
**Target:** {{ target_repo }}
|
||||
**Depth:** {{ depth }}
|
||||
**Date:** {{ date }}
|
||||
|
||||
## Configuration
|
||||
|
||||
| Функция | Статус |
|
||||
|---|---|
|
||||
| ADR | {{ adr_enabled }} |
|
||||
| Alternative Architecture | {{ alt_arch_enabled }} |
|
||||
| Red Team | {{ red_team_enabled }} |
|
||||
| Risk Register | {{ risk_register_enabled }} |
|
||||
| Invariant Tests | {{ invariant_tests_enabled }} |
|
||||
| Layer Structure | {{ layer_structure_enabled }} |
|
||||
|
||||
## Phase Status
|
||||
|
||||
| Phase | Status |
|
||||
|---|---|
|
||||
| ANALYSIS | {{ analysis_status }} |
|
||||
| DESIGN | {{ design_status }} |
|
||||
| RED_TEAM | {{ red_team_status }} |
|
||||
| DECOMPOSITION | {{ decomposition_status }} |
|
||||
| SETUP | {{ setup_status }} |
|
||||
| HANDOFF | {{ handoff_status }} |
|
||||
|
||||
## Quick Links
|
||||
|
||||
- Task Manifest: `.agent/task-manifest.json`
|
||||
- Handoff Summary: `.agent/handoff-summary.md`
|
||||
- Design Report: `.agent/analysis-report.md`
|
||||
- ADR: `.agent/layer-1/adr/` (если есть)
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "metaagent-task-manifest",
|
||||
"version": "1.0",
|
||||
"session_id": "{{ session_id }}",
|
||||
"goal": "{{ goal }}",
|
||||
"created_at": "{{ timestamp }}",
|
||||
"tasks": [
|
||||
{
|
||||
"id": "T1",
|
||||
"title": "{{ task_title }}",
|
||||
"description": "{{ task_description }}",
|
||||
"type": "feature|refactor|test|fix|config|docs",
|
||||
"files": ["path/to/file1.py", "path/to/file2.py"],
|
||||
"depends_on": [],
|
||||
"acceptance_criteria": [
|
||||
"Критерий 1: ...",
|
||||
"Критерий 2: ..."
|
||||
],
|
||||
"context": "Дополнительная информация",
|
||||
"status": "pending"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
# Task Manifest
|
||||
|
||||
**Session:** {{ session_id }}
|
||||
**Goal:** {{ goal }}
|
||||
**Date:** {{ timestamp }}
|
||||
|
||||
---
|
||||
|
||||
## Task Overview
|
||||
|
||||
| ID | Title | Type | Depends On | Status |
|
||||
|---|---|---|---|---|
|
||||
| T1 | {{ title }} | {{ type }} | — | pending |
|
||||
| T2 | {{ title }} | {{ type }} | T1 | pending |
|
||||
|
||||
**Total tasks:** {{ count }}
|
||||
|
||||
---
|
||||
|
||||
## Task Details
|
||||
|
||||
### T1: {{ title }}
|
||||
|
||||
**Type:** {{ type }}
|
||||
**Description:** {{ description }}
|
||||
|
||||
**Files:**
|
||||
- `{{ file_path }}`
|
||||
|
||||
**Depends on:** —
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] {{ criterion }}
|
||||
- [ ] {{ criterion }}
|
||||
|
||||
**Context:** {{ context }}
|
||||
|
||||
---
|
||||
|
||||
### T2: {{ title }}
|
||||
|
||||
...
|
||||
Reference in New Issue
Block a user