@gian-tiaga/eda 0.8.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +117 -0
- package/README.md +324 -71
- package/agents/eda-aim-executor/agent.json +15 -0
- package/agents/eda-aim-executor/prompt.md +61 -0
- package/agents/eda-aim-planner/agent.json +15 -0
- package/agents/eda-aim-planner/prompt.md +43 -0
- package/agents/eda-aim-verifier/agent.json +15 -0
- package/agents/eda-aim-verifier/prompt.md +57 -0
- package/agents/eda-commit-context/agent.json +15 -0
- package/agents/eda-commit-context/prompt.md +58 -0
- package/agents/eda-commit-executor/agent.json +15 -0
- package/agents/eda-commit-executor/prompt.md +87 -0
- package/agents/eda-merge-worktree-executor/agent.json +15 -0
- package/agents/eda-merge-worktree-executor/prompt.md +57 -0
- package/agents/eda-review-api/agent.json +15 -0
- package/agents/eda-review-api/prompt.md +34 -0
- package/agents/eda-review-architecture/agent.json +15 -0
- package/agents/eda-review-architecture/prompt.md +34 -0
- package/agents/eda-review-code-quality/agent.json +15 -0
- package/agents/eda-review-code-quality/prompt.md +34 -0
- package/agents/eda-review-correctness/agent.json +15 -0
- package/agents/eda-review-correctness/prompt.md +34 -0
- package/agents/eda-review-database/agent.json +15 -0
- package/agents/eda-review-database/prompt.md +34 -0
- package/agents/eda-review-documentation/agent.json +15 -0
- package/agents/eda-review-documentation/prompt.md +34 -0
- package/agents/eda-review-frontend/agent.json +15 -0
- package/agents/eda-review-frontend/prompt.md +34 -0
- package/agents/eda-review-performance/agent.json +15 -0
- package/agents/eda-review-performance/prompt.md +34 -0
- package/agents/eda-review-plan-alignment/agent.json +15 -0
- package/agents/eda-review-plan-alignment/prompt.md +34 -0
- package/agents/eda-review-previous-reviews/agent.json +15 -0
- package/agents/eda-review-previous-reviews/prompt.md +44 -0
- package/agents/eda-review-references/agent.json +15 -0
- package/agents/eda-review-references/prompt.md +34 -0
- package/agents/eda-review-rules/agent.json +15 -0
- package/agents/eda-review-rules/prompt.md +34 -0
- package/agents/eda-review-security/agent.json +15 -0
- package/agents/eda-review-security/prompt.md +34 -0
- package/agents/eda-review-tests/agent.json +15 -0
- package/agents/eda-review-tests/prompt.md +34 -0
- package/agents/eda-worktree-executor/agent.json +15 -0
- package/agents/eda-worktree-executor/prompt.md +49 -0
- package/bin/cli.js +4 -4
- package/lib/catalog.js +118 -0
- package/lib/install.js +763 -113
- package/lib/renderers/claude-agent.js +24 -0
- package/lib/renderers/claude-skill.js +11 -0
- package/lib/renderers/codex-agent.js +24 -0
- package/lib/renderers/codex-skill.js +3 -0
- package/package.json +5 -3
- package/skills/eda-aim/SKILL.md +212 -0
- package/skills/eda-commit/SKILL.md +124 -0
- package/skills/eda-commit/skill.json +6 -0
- package/skills/eda-discover-automations/SKILL.md +184 -0
- package/skills/{eda-explore.md → eda-explore/SKILL.md} +11 -8
- package/skills/{eda-fix.md → eda-fix/SKILL.md} +7 -6
- package/skills/{eda-fix-by-review.md → eda-fix-by-review/SKILL.md} +5 -4
- package/skills/{eda-manual-test.md → eda-manual-test/SKILL.md} +1 -1
- package/skills/eda-merge-worktree/SKILL.md +72 -0
- package/skills/eda-merge-worktree/skill.json +7 -0
- package/skills/eda-new-project/SKILL.md +163 -0
- package/skills/eda-orhestra/SKILL.md +146 -0
- package/skills/{eda-plan.md → eda-plan/SKILL.md} +39 -29
- package/skills/eda-plan-execute/SKILL.md +186 -0
- package/skills/{eda-plan-polish.md → eda-plan-polish/SKILL.md} +14 -13
- package/skills/eda-polish/SKILL.md +80 -0
- package/skills/eda-prepare-ai/SKILL.md +227 -0
- package/skills/eda-review/SKILL.md +212 -0
- package/skills/{eda-send-review.md → eda-send-review/SKILL.md} +66 -19
- package/skills/eda-send-review/skill.json +7 -0
- package/skills/eda-worktree/SKILL.md +73 -0
- package/skills/eda-worktree/skill.json +7 -0
- package/skills/eda-automate.md +0 -185
- package/skills/eda-commit.md +0 -91
- package/skills/eda-docs.md +0 -123
- package/skills/eda-execute.md +0 -140
- package/skills/eda-merge-worktree.md +0 -116
- package/skills/eda-polish.md +0 -113
- package/skills/eda-review-check.md +0 -149
- package/skills/eda-review.md +0 -173
- package/skills/eda-start.md +0 -233
- package/skills/eda-worktree.md +0 -113
- /package/skills/{eda-roadmap.md → eda-roadmap/SKILL.md} +0 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-prepare-ai
|
|
3
|
+
description: 'Проектирует или актуализирует архитектуру, строгие правила, профиль инструментов, автоматические проверки и AI-процесс проекта, затем создаёт `docs/rules.md`, `docs/arch.md`, индекс и карточки `docs/references/`, компактный `AGENTS.md` и минимальный `CLAUDE.md`. Для нового проекта принимает подтверждённый бриф eda-new-project как источник требований, стека и архитектурных драйверов. Подбирает применимые AI-скилы, агентные роли и MCP, но не пишет код, не меняет конфиги и не ставит зависимости.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Подготовка проекта для AI (eda-prepare-ai)
|
|
7
|
+
|
|
8
|
+
Превращаешь реальный проект или подтверждённый стартовый бриф в согласованную техническую рамку для людей и AI-агентов: проектируешь архитектуру, правила, строгий профиль инструментов, матрицу проверок и AI-процесс, затем создаёшь или обновляешь `docs/rules.md`, `docs/arch.md`, `docs/references.md`, карточки в `docs/references/`, `AGENTS.md` и `CLAUDE.md`.
|
|
9
|
+
|
|
10
|
+
## Вход из сообщения пользователя
|
|
11
|
+
|
|
12
|
+
Текст рядом с вызовом уточняет задачу: он может задавать основное направление или быть вспомогательным контекстом. Учти прямые указания, ограничения и названные файлы; остальное определи по проекту. Спрашивай только когда без ответа есть реальный риск выбрать неверное решение.
|
|
13
|
+
|
|
14
|
+
## Главные правила
|
|
15
|
+
|
|
16
|
+
1. **Не правишь код.** Меняй только `docs/rules.md`, `docs/arch.md`, `docs/references.md`, `docs/references/*.md`, `AGENTS.md` и `CLAUDE.md`; не ставь пакеты и не меняй конфиги.
|
|
17
|
+
2. **Опирайся на проект.** Читай код, структуру, зависимости, команды, тесты, инфраструктуру, git-историю и существующие документы. Не генерируй универсальный шаблон.
|
|
18
|
+
3. **Не дублируй документы.** Правила отвечают «как работать», архитектура — «как устроен проект», references — «как выглядит типовая реализация», `AGENTS.md` — «что это за проект и где читать обязательную рамку».
|
|
19
|
+
4. **Обновляй осмысленно.** Сохраняй актуальное, исправляй неверное, удаляй устаревшее и перестраивай документ настолько сильно, насколько требует проект. Не спрашивай отдельно, что делать с каждым существующим файлом.
|
|
20
|
+
5. **Не выдавай предположение за факт.** Значимые неподтверждённые архитектурные решения предложи пользователю; после выбора зафиксируй принятый вариант.
|
|
21
|
+
6. **Предлагай экстремальный профиль проверок.** Не ограничивайся уже установленными командами или базовыми lint/test. Пройди весь каталог ниже, предложи все применимые проверки и объясни каждое `не применимо`; в документацию переноси только подтверждённые правила.
|
|
22
|
+
7. **MCP не заменяет CI.** Обязательно оцени browser automation MCP и MCP выбранного стека, но предпочитай детерминированную CLI/CI-проверку, если она ловит тот же класс ошибок.
|
|
23
|
+
8. **Стартовый бриф задаёт цель, а не реализацию.** Подтверждённые требования, основной стек и архитектурные драйверы из `eda-new-project` считай обязательным входом. Не переоткрывай выбор стека без обнаруженного противоречия; архитектуру, правила, проверки и AI/MCP-процесс спроектируй здесь.
|
|
24
|
+
9. **Максимальная практическая строгость по умолчанию.** Для каждого применимого инструмента предложи самый строгий стабильный полезный профиль. Ослабления показывай как отдельные решения с последствиями и минимальной областью действия.
|
|
25
|
+
10. **Не внедряй tooling.** Можешь рекомендовать пакеты, команды, конфиги, скилы и MCP, но не устанавливай и не настраивай их; для внедрения предложи `eda-plan`.
|
|
26
|
+
|
|
27
|
+
## Интерактивные вопросы
|
|
28
|
+
|
|
29
|
+
Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
|
|
30
|
+
- Claude Code: используй `AskUserQuestion`.
|
|
31
|
+
- Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
|
|
32
|
+
- Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты.
|
|
33
|
+
- Не запускай команды, которые ждут интерактивного ввода в терминале.
|
|
34
|
+
|
|
35
|
+
## Этапы
|
|
36
|
+
|
|
37
|
+
### 1. Проанализировать проект
|
|
38
|
+
|
|
39
|
+
Определи языки, фреймворки, точки входа, зависимости, тесты, хранилища данных, внешние интеграции, инфраструктуру, CI, инструменты качества, структуру директорий и сложившиеся соглашения. Для команд и соглашений используй конфиги и git-историю, а не догадки.
|
|
40
|
+
|
|
41
|
+
Если вызов пришёл из `eda-new-project`, прочитай переданный `docs/project-starts/*.md`. Подтверждённые требования, основной стек и архитектурные драйверы считай источником целевого состояния; открытые вопросы и отклонённые варианты фактами не считай. Не требуй от стартового документа готовой архитектуры, правил, матрицы проверок или AI/MCP-рекомендаций — их обязан спроектировать этот скил.
|
|
42
|
+
|
|
43
|
+
### 2. Прочитать существующую документацию
|
|
44
|
+
|
|
45
|
+
Прочитай `docs/rules.md`, `docs/arch.md`, `docs/references.md`, карточки из `docs/references/`, `AGENTS.md` и `CLAUDE.md`, если они есть. Также прочитай релевантные документы из `docs/`, на которые они ссылаются. Найди дубли, противоречия и устаревшие сведения.
|
|
46
|
+
|
|
47
|
+
### 3. Определить область обновления
|
|
48
|
+
|
|
49
|
+
Определи область по текущему сообщению:
|
|
50
|
+
|
|
51
|
+
- если пользователь вызвал просто `eda-prepare-ai` и не назвал документ — обнови весь набор: `docs/rules.md`, `docs/arch.md`, `docs/references.md`, все актуальные карточки в `docs/references/`, `AGENTS.md` и `CLAUDE.md`;
|
|
52
|
+
- если явно назвал rules, architecture, `AGENTS.md` или `CLAUDE.md` — обнови только названные документы;
|
|
53
|
+
- если явно назвал references — обнови `docs/references.md` и актуальные карточки, затем добавь или актуализируй ссылку на `docs/references.md` в `AGENTS.md`;
|
|
54
|
+
- если явно назвал одну карточку — обнови только её и соответствующую строку `docs/references.md`.
|
|
55
|
+
- если явно запросил проверки без полного вызова — проведи полный аудит проверок, предложи матрицу и после подтверждения обнови только относящиеся к ней правила в `docs/rules.md`;
|
|
56
|
+
- если передан стартовый документ `eda-new-project` — считай это полным bootstrap-вызовом: спроектируй архитектуру, правила, строгий профиль инструментов, матрицу проверок и AI/MCP-процесс; обнови весь набор документов, если пользователь явно не сузил область.
|
|
57
|
+
|
|
58
|
+
При любом изменении `CLAUDE.md` сохраняй его минимальным указателем на `AGENTS.md`. Не меняй `CLAUDE.md` в точечном режиме, если пользователь его не называл. Прямой запрет пользователя на изменение зависимого файла важнее автоматической синхронизации; сообщи о несинхронизированной ссылке в финале.
|
|
59
|
+
|
|
60
|
+
### 4. Решить архитектурные развилки
|
|
61
|
+
|
|
62
|
+
Для существующего проекта сначала отдели фактическое устройство от целевого. Для нового проекта опирайся на подтверждённые требования, стек и архитектурные драйверы стартового документа.
|
|
63
|
+
|
|
64
|
+
Если устройство ещё не определено или нуждается в изменении:
|
|
65
|
+
- сравни 2–3 подходящих архитектурных варианта без лишней сложности;
|
|
66
|
+
- для каждого покажи соответствие драйверам, границы ответственности, основные runtime/data-flow, владение данными, направления зависимостей, риски и дорогие для изменения решения;
|
|
67
|
+
- рекомендуй один вариант и через `AskUserQuestion` согласуй только значимые развилки;
|
|
68
|
+
- не переоткрывай подтверждённый стек, если он совместим с требованиями; при конфликте покажи доказательство и отдельно запроси решение пользователя.
|
|
69
|
+
|
|
70
|
+
Сохрани выбранное решение для последующего обновления `docs/arch.md`. Для нового или пустого проекта явно называй его целевой архитектурой, а не уже реализованным состоянием.
|
|
71
|
+
|
|
72
|
+
### 5. Предложить строгий профиль и экстремальную матрицу проверок
|
|
73
|
+
|
|
74
|
+
По умолчанию предложи самый строгий стабильный профиль, практически применимый к выбранному стеку и ограничениям проекта. Не ограничивайся фактом установки инструмента или его preset по умолчанию: проверь значимые режимы, отключённые категории и правила по актуальной документации. Включи все стабильные, недублирующие и применимые проверки; экспериментальные, конфликтующие, устаревшие и стабильно шумные проверки перечисли с причиной отключения.
|
|
75
|
+
|
|
76
|
+
Для языков с динамической или слабой типизацией отдельно предложи максимально строгую доступную статическую типизацию: strict-режим typechecker/compiler, nullability, типизированные границы и публичные контракты, generics/shape-типы, runtime-валидацию внешних данных и запрет неявных `any` / `mixed` / dynamic / untyped-значений там, где стек позволяет выразить точный тип. Ориентиры: все применимые strict-флаги TypeScript, `strict` у mypy/Pyright, `strict_types` и максимальный уровень PHPStan/Psalm, `strict` у Sorbet. Если полностью строгий режим нельзя включить сразу, предложи измеримый переход; новые и изменяемые файлы не должны расширять область нетипизированного кода.
|
|
77
|
+
|
|
78
|
+
Для каждого инструмента проверь максимальный применимый режим:
|
|
79
|
+
- compiler/runtime/build: строгие и безопасные флаги, warnings/deprecations как ошибки, запрет неявных небезопасных преобразований и undefined behavior;
|
|
80
|
+
- formatter/linter/static analysis: максимальные stable recommended/strict/type-aware/security/framework-наборы, нулевой бюджет предупреждений, анализ тестов и конфигов, запрет blanket-ignore;
|
|
81
|
+
- typechecker и schema validators: строгая проверка исходников, тестов, API, конфигов, сериализации и внешних входов без непроверенных обходов;
|
|
82
|
+
- тестовые инструменты: fail-on-warning/deprecation, flaky detection, coverage и mutation budgets по осмысленным порогам, изоляция и воспроизводимость;
|
|
83
|
+
- dependency/build/release/security: lockfile integrity, audit/license/SBOM/provenance-политики, reproducible build и отказ при нарушении обязательного gate;
|
|
84
|
+
- CI и hooks: те же строгие команды, что локально, без `continue-on-error`, подавления exit code и расхождения конфигураций между контурами.
|
|
85
|
+
|
|
86
|
+
Для каждого нового пакета, CLI, сервиса или MCP укажи конкретную актуальную стабильную версию, официальный источник и дату проверки. Если инструмент ещё не установлен, пометь команду как предлагаемую и не выдавай её за подтверждённо работающую.
|
|
87
|
+
|
|
88
|
+
Проведи полный gap-аудит, даже если проект новый или почти пустой. Не вводи фиксированный максимум и не останавливайся после 10–20 предложений. Для каждой группы поставь `уже есть` / `предложено` / `позже` / `не применимо` и объясни последнее значение:
|
|
89
|
+
|
|
90
|
+
1. **Тесты:** unit, integration, component, contract, API, e2e, smoke, acceptance, regression, negative и edge-case.
|
|
91
|
+
2. **Глубокие тесты:** property-based, mutation, fuzz, differential, metamorphic, snapshot/golden, repeatability и flaky detection.
|
|
92
|
+
3. **UI/browser:** browser e2e, visual regression, accessibility, keyboard/focus, responsive, cross-browser/device, hydration, broken links, forms/uploads, locale/timezone и console errors.
|
|
93
|
+
4. **Стиль и качество:** formatter, linter, naming, complexity, duplication, dead code, unused exports/dependencies, forbidden patterns, TODO/FIXME и size limits.
|
|
94
|
+
5. **Статический анализ:** typecheck, nullability, data-flow/taint, API misuse, unreachable code, unsafe behavior, memory/thread/address sanitizers и анализаторы языка.
|
|
95
|
+
6. **Границы модулей:** forbidden imports, dependency direction, cycles, layers, public API, ownership, package boundaries, generated code и architecture fitness functions.
|
|
96
|
+
7. **Конфиги/IaC:** env, YAML/JSON/TOML, CI, Docker/Compose, Kubernetes/Helm, Terraform, proxy, feature flags, IAM, observability и env-example drift.
|
|
97
|
+
8. **API/compatibility:** OpenAPI/GraphQL/Proto, breaking changes, generated-code drift, serialization, backward/forward compatibility, idempotency и pagination/filter/sort.
|
|
98
|
+
9. **БД/данные:** migrations forward/rollback/dry-run, schema drift, constraints, fixtures, transactions, concurrency, N+1/query plans, backup/restore, retention/anonymization и invariants.
|
|
99
|
+
10. **Security/supply chain:** secrets, SAST, DAST, dependencies, licenses, SBOM, lockfiles, container/IaC, provenance, authn/authz, injection, XSS/CSRF/SSRF, CORS/CSP/headers, rate limits и PII leakage.
|
|
100
|
+
11. **Performance/reliability:** benchmarks/budgets, bundle size, load/stress/spike/soak, leaks, startup, timeout/retry/circuit breaker, graceful shutdown, chaos/fault injection и recovery.
|
|
101
|
+
12. **Build/release:** clean-clone и reproducible builds, generated artifacts, package contents, runtime/OS/architecture matrix, install/upgrade/downgrade, semver/changelog, release dry-run, canary/rollback и post-deploy smoke.
|
|
102
|
+
13. **Документация:** Markdown/style/spell, links, executable snippets, CLI help/API drift, diagrams/schemas и migration/release notes.
|
|
103
|
+
14. **Эксплуатация:** health/readiness/liveness, metric/log/trace schemas, no secrets/PII in logs, alerts, dashboards as code, SLO/error budgets, disaster recovery и restore drills.
|
|
104
|
+
15. **Домен:** платежи, почта, очереди/jobs, webhooks, поиск, files/media, mobile signing, offline/sync, localization, analytics events и прочие продуктовые инварианты.
|
|
105
|
+
16. **AI:** prompt/output schemas, evals, prompt injection/jailbreak, data leakage, tool permissions, nondeterminism, latency и token/cost budgets.
|
|
106
|
+
17. **MCP:** browser/Playwright MCP и MCP для БД, API, документации, GitHub/GitLab, cloud, observability и выбранного языка/фреймворка. Для каждого укажи сценарий, минимальные права, тестовые данные и почему CLI/CI недостаточно.
|
|
107
|
+
|
|
108
|
+
Для каждого предложения укажи конкретный инструмент, точную команду или сценарий, закрываемый риск и контур: `pre-commit`, `pre-push`, `PR CI`, `nightly`, `release`, `post-deploy`, `MCP/manual`. Отдели быстрый обязательный gate от тяжёлых scheduled/release-проверок, чтобы экстремальный профиль оставался исполнимым.
|
|
109
|
+
|
|
110
|
+
Покажи матрицу пользователю и одним `AskUserQuestion` предложи: принять весь применимый экстремальный профиль / принять только быстрый baseline / выбрать пункты. В неинтерактивном запуске не записывай новые неподтверждённые процессные правила: перечисли предложения в финале и поставь `blocked: нужно подтвердить профиль проверок`, продолжая только те документальные обновления, которым подтверждение не требуется.
|
|
111
|
+
|
|
112
|
+
### 6. Обновить `docs/rules.md`
|
|
113
|
+
|
|
114
|
+
Собери столько правил, сколько действительно нужно проекту; не вводи числовой лимит. Каждое правило формулируй коротко, однозначно и проверяемо. Группируй правила по темам только когда это ускоряет поиск.
|
|
115
|
+
|
|
116
|
+
В файле должны быть только действующие правила проекта. Не добавляй введение, объяснения пользы, обоснования, предложения, наблюдения, архитектурное описание или декоративные разделы. Команду проверки указывай только как конкретное правило, например: «Перед финалом запусти `npm test`».
|
|
117
|
+
|
|
118
|
+
Не спрашивай подтверждение списка правил перед записью. Если правило нельзя уверенно вывести из проекта или прямого указания пользователя и оно заметно меняет процесс команды, сначала предложи его через `AskUserQuestion`; непринятые предложения в файл не записывай.
|
|
119
|
+
|
|
120
|
+
Принятые проверки записывай как короткие обязательные правила с точной командой и моментом запуска. Не копируй в `docs/rules.md` сравнительную матрицу, список неприменимых проверок, описания инструментов или неподтверждённые предложения.
|
|
121
|
+
|
|
122
|
+
Для каждого принятого инструмента запиши точный строгий режим и запрет бесконтрольных подавлений. Если инструмент ещё не внедрён и команда не подтверждена проектом, не записывай её как действующее правило: оставь рекомендацию в финале и передай внедрение в `eda-plan`.
|
|
123
|
+
|
|
124
|
+
### 7. Обновить `docs/arch.md`
|
|
125
|
+
|
|
126
|
+
Опиши устройство проекта, не повторяя рабочие правила из `docs/rules.md`. Документ должен позволять понять, где находится нужная часть системы, за что она отвечает и как связана с остальными.
|
|
127
|
+
|
|
128
|
+
Включи релевантные проекту сведения:
|
|
129
|
+
- выбранный архитектурный подход, например модульный монолит, слоистая архитектура или набор сервисов, и коротко почему он подходит проекту;
|
|
130
|
+
- дерево основных папок с назначением каждой значимой части;
|
|
131
|
+
- компоненты, модули или слои, их ответственность и границы;
|
|
132
|
+
- допустимые направления зависимостей между частями;
|
|
133
|
+
- ключевые runtime- и data-flow от точки входа до результата;
|
|
134
|
+
- владение данными, хранилища и внешние интеграции;
|
|
135
|
+
- важные архитектурные решения и ограничения.
|
|
136
|
+
|
|
137
|
+
Сначала зафиксируй фактическое текущее состояние. Если архитектура не определена, непоследовательна или не подходит целям проекта, предложи целевой подход и значимые развилки через `AskUserQuestion`. После ответа запиши выбранную целевую архитектуру и явно отдели её от текущего состояния. Не превращай `docs/arch.md` в план миграции или список правил разработки.
|
|
138
|
+
|
|
139
|
+
### 8. Обновить references
|
|
140
|
+
|
|
141
|
+
Сначала определи повторяющиеся типы компонентов, для которых проекту действительно нужен эталон: например, controller, service, repository, handler, job, UI-компонент или тест. Не создавай карточки по универсальному списку — набор должен следовать реальному стеку и структуре проекта. Для нового проекта без реального кода не выдумывай эталоны: оставь индекс пустым или не создавай карточки и сообщи, что references нужно повторно подготовить после появления устойчивых реализаций.
|
|
142
|
+
|
|
143
|
+
Сделай `docs/references.md` коротким индексом:
|
|
144
|
+
|
|
145
|
+
```markdown
|
|
146
|
+
# Эталоны кода
|
|
147
|
+
|
|
148
|
+
| Компонент | Когда применять | Карточка |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| Контроллер | При добавлении HTTP endpoint | [Контроллер](references/controller.md) |
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Индекс содержит ссылки только на карточки. В каждой карточке должны быть:
|
|
154
|
+
|
|
155
|
+
- назначение и границы ответственности компонента;
|
|
156
|
+
- условия, при которых пример применим;
|
|
157
|
+
- один минимальный, законченный и синтаксически цельный пример в fenced code block с указанием языка;
|
|
158
|
+
- короткий разбор элементов примера, которые нужно повторять;
|
|
159
|
+
- допустимые варианты и условия осознанного отклонения.
|
|
160
|
+
|
|
161
|
+
Формируй пример как нормализованный эталон: опирайся на `docs/rules.md`, `docs/arch.md`, установленный стек и устойчивые практики нескольких релевантных файлов, убирай бизнес-детали и используй нейтральные имена. Не копируй целый рабочий файл, не выдумывай отсутствующие зависимости, API, слои или инфраструктуру.
|
|
162
|
+
|
|
163
|
+
Карточка должна быть самодостаточной. Не добавляй в неё Markdown-ссылки, URL, пути к исходным файлам или указания «смотри реализацию в ...». Ссылки на карточки хранятся только в `docs/references.md`.
|
|
164
|
+
|
|
165
|
+
Если ожидаемую форму важного компонента нельзя вывести однозначно, собери все такие категории в один `AskUserQuestion`: покажи найденные варианты и попроси выбрать соглашение. До ответа не создавай и не обновляй спорные карточки. В неинтерактивном запуске заверши работу со статусом `blocked: нужен ответ пользователя`.
|
|
166
|
+
|
|
167
|
+
При обновлении сохрани актуальные карточки и переработай устаревшие примеры, если изменились правила, архитектура, стек или устойчивые практики. Перед удалением карточки, которая больше не соответствует проекту, запроси подтверждение через `AskUserQuestion`; без подтверждения оставь файл и отметь проблему в финале.
|
|
168
|
+
|
|
169
|
+
### 9. Подобрать AI-скилы, агентные роли и MCP
|
|
170
|
+
|
|
171
|
+
После архитектуры, правил и матрицы проверок определи, какие AI-инструменты действительно нужны проекту:
|
|
172
|
+
- доступные `eda-*`, Claude/Codex skills, проектные инструкции и специализированные роли для discovery, планирования, исполнения, ревью, security, accessibility, документации и релиза;
|
|
173
|
+
- проектные скилы или роли, которые оправданы устойчивой доменной, архитектурной или интеграционной спецификой;
|
|
174
|
+
- browser/Playwright MCP и MCP для БД, API, документации, GitHub/GitLab, cloud, observability, дизайна и выбранного стека;
|
|
175
|
+
- инструменты, которые нужно отложить до появления кода, инфраструктуры, команды или повторяемого процесса.
|
|
176
|
+
|
|
177
|
+
Для каждого скила или агента укажи задачу, обязательные источники, артефакт, способ проверки и почему обычной инструкции недостаточно. Для каждого MCP укажи сценарий, данные, минимальные права, риск, тестовое окружение и почему CLI/CI недостаточно. MCP с доступом к продакшену, секретам, платежам или персональным данным вынеси на отдельное подтверждение.
|
|
178
|
+
|
|
179
|
+
Активные подтверждённые правила использования уже доступных инструментов можно кратко записать в `docs/rules.md`. Не записывай ещё не установленные скилы или MCP как действующую возможность и не раздувай ими `AGENTS.md`: перечисли такие рекомендации в финале и предложи отдельный `eda-plan` на внедрение.
|
|
180
|
+
|
|
181
|
+
### 10. Обновить `AGENTS.md`
|
|
182
|
+
|
|
183
|
+
Сделай `AGENTS.md` короткой входной картой для AI-агента. В нём должны быть:
|
|
184
|
+
- краткое описание проекта;
|
|
185
|
+
- ссылки на `docs/rules.md`, `docs/arch.md`, `docs/references.md` и другие действительно обязательные документы из `docs/`;
|
|
186
|
+
- требование прочитать их и следовать им до работы над проектом.
|
|
187
|
+
|
|
188
|
+
Не копируй в `AGENTS.md` правила, архитектуру, полное дерево папок, длинное описание стека, справочник команд или содержимое README. Если старый файл раздут или построен иначе, сократи или перестрой его целиком.
|
|
189
|
+
|
|
190
|
+
### 11. Обновить `CLAUDE.md`
|
|
191
|
+
|
|
192
|
+
Сделай корневой `CLAUDE.md` минимальным указателем на `AGENTS.md`. Обязательный смысл: «Прочитай `AGENTS.md` и следуй всем инструкциям в нём». Не дублируй в `CLAUDE.md` содержимое `AGENTS.md`, правил или архитектуры. Если файл уже содержит полезные самостоятельные указания, сохрани их только когда они не противоречат `AGENTS.md` и действительно нужны именно Claude Code.
|
|
193
|
+
|
|
194
|
+
### 12. Проверить результат
|
|
195
|
+
|
|
196
|
+
Убедись, что:
|
|
197
|
+
- `docs/rules.md` содержит только лаконичные действующие правила;
|
|
198
|
+
- `docs/arch.md` объясняет подход, структуру папок, части системы и их связи без повторения правил;
|
|
199
|
+
- `docs/references.md` ссылается на все актуальные карточки и не содержит самих примеров;
|
|
200
|
+
- каждая карточка самодостаточна, содержит законченный пример кода и не содержит ссылок или неподтверждённых элементов;
|
|
201
|
+
- `AGENTS.md` остаётся коротким и ведёт к обязательным документам;
|
|
202
|
+
- `CLAUDE.md` явно требует читать и соблюдать `AGENTS.md`;
|
|
203
|
+
- экстремальный каталог проверок пройден полностью, для каждой группы есть статус, а принятые команды отражены в `docs/rules.md` без неподтверждённых предложений;
|
|
204
|
+
- browser MCP и MCP выбранного стека оценены отдельно от детерминированных CLI/CI-проверок;
|
|
205
|
+
- выбранные инструменты имеют максимальный применимый строгий профиль, а каждое ослабление явно обосновано;
|
|
206
|
+
- для нового проекта требования, стек и архитектурные драйверы взяты из стартового документа, а архитектура и правила спроектированы внутри `eda-prepare-ai`;
|
|
207
|
+
- AI-скилы, роли и MCP разделены на уже доступные и требующие отдельного внедрения;
|
|
208
|
+
- документы не противоречат проекту и друг другу.
|
|
209
|
+
|
|
210
|
+
### 13. Финал
|
|
211
|
+
|
|
212
|
+
Коротко перечисли созданные и обновлённые файлы, существенные архитектурные решения, строгий профиль ключевых инструментов, число уже имеющихся/принятых/отложенных/неприменимых проверок, их распределение по контурам, доступные и предложенные AI-скилы/роли/MCP, что требует внедрения через `eda-plan`, и вопросы, которые остались неподтверждёнными.
|
|
213
|
+
|
|
214
|
+
## Чего НЕ делать
|
|
215
|
+
|
|
216
|
+
- Править файлы вне разрешённого набора проектной документации.
|
|
217
|
+
- Спрашивать, какие документы обновлять, если пользователь их не назвал: по умолчанию обновляется весь набор.
|
|
218
|
+
- Просить выбрать режим перезаписи для каждого существующего файла.
|
|
219
|
+
- Ограничивать правила фиксированным количеством или разбавлять их пояснениями и предложениями.
|
|
220
|
+
- Дублировать правила и архитектуру в `AGENTS.md` или `CLAUDE.md`.
|
|
221
|
+
- Ссылаться из карточек на код проекта или внешние материалы вместо самодостаточного примера.
|
|
222
|
+
- Создавать спорный эталон без ответа пользователя.
|
|
223
|
+
- Выдавать предлагаемую архитектуру за уже реализованную.
|
|
224
|
+
- Ограничиваться unit-тестами, линтером и typecheck, не проходя весь экстремальный каталог.
|
|
225
|
+
- Записывать неподтверждённые проверки в `docs/rules.md` или подменять детерминированную проверку MCP/AI-анализом.
|
|
226
|
+
- Переоткрывать подтверждённый `eda-new-project` стек без найденного конфликта с требованиями.
|
|
227
|
+
- Выдавать неустановленный инструмент, скил или MCP за доступную возможность проекта.
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-review
|
|
3
|
+
description: 'Оркестрирует полное read-only ревью diff, ветки, PR/MR, коммита, папки или файла через отдельные packaged-агенты correctness, architecture, rules, references, plan alignment, code quality, tests, security, performance, frontend, API, database, documentation и previous reviews. Выбирает применимые проверки по конфигу, объединяет только подтверждённые проблемы, ставит оценку 0–100 и сохраняет итог в docs/reviews/. Не правит код и не запускает другой CLI.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Ревьюер (eda-review)
|
|
7
|
+
|
|
8
|
+
Работай как оркестратор установленных `eda-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их системные prompts в task-сообщения. Определи target и контекст, выбери проверки, запусти агентов, проверь их структурированные ответы, объедини подтверждённые находки и сохрани одно итоговое ревью.
|
|
9
|
+
|
|
10
|
+
## Вход из сообщения пользователя
|
|
11
|
+
|
|
12
|
+
Текст рядом с вызовом скилла в текущем сообщении — главный вход. Сначала разбери target, план, ссылку, ограничения, отключённые или принудительно включённые проверки и разовые модели.
|
|
13
|
+
|
|
14
|
+
Если входа достаточно, продолжай без вопроса. Без аргументов ревьюй незакоммиченный `git diff HEAD`. Ссылка на PR/MR задаёт target однозначно. Если пользователь дал только корень удалённого репозитория, обязательно попроси указать PR/MR, ветку, коммит или файлы; весь репозиторий и последний PR автоматически не выбирай.
|
|
15
|
+
|
|
16
|
+
Разовые указания вида «без performance», «включи database», «architecture на opus» или «tests на gpt-5.6-sol» важнее `docs/settings.yaml` и действуют только на текущий запуск.
|
|
17
|
+
|
|
18
|
+
## Настройки
|
|
19
|
+
|
|
20
|
+
Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version: 2`. Используй `review.agents.<check>.mode` и `review.agents.<check>.model.<platform>`. Если файла нет или версия отличается, используй defaults и добавь предупреждение; настройки v1 не применяй.
|
|
21
|
+
|
|
22
|
+
Допустимые режимы:
|
|
23
|
+
|
|
24
|
+
- `always` — запускать при каждом ревью;
|
|
25
|
+
- `auto` — запускать только когда проверка применима;
|
|
26
|
+
- `off` — не запускать.
|
|
27
|
+
|
|
28
|
+
Допустимые модели по умолчанию: Claude Code — `haiku`, `sonnet`, `opus`; Codex — `gpt-5.6-luna`, `gpt-5.6-terra`, `gpt-5.6-sol`. Неизвестное или отсутствующее значение замени default-значением конкретного агента и добавь предупреждение в покрытие.
|
|
29
|
+
|
|
30
|
+
Если `version: 2` существует, но раздела `review.agents` нет, используй defaults ниже. Устаревшие поля `review.strict`, `review.include_code_quality` и раздел `review-check` не применяй; добавь предупреждение с просьбой перенести настройки вручную. Существующий файл настроек не переписывай.
|
|
31
|
+
|
|
32
|
+
| Проверка | Default mode | Claude | Codex |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| `correctness` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
35
|
+
| `architecture` | `auto` | `opus` | `gpt-5.6-sol` |
|
|
36
|
+
| `rules` | `always` | `haiku` | `gpt-5.6-luna` |
|
|
37
|
+
| `references` | `auto` | `haiku` | `gpt-5.6-luna` |
|
|
38
|
+
| `plan_alignment` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
39
|
+
| `code_quality` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
40
|
+
| `tests` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
41
|
+
| `security` | `auto` | `opus` | `gpt-5.6-sol` |
|
|
42
|
+
| `performance` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
43
|
+
| `frontend` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
44
|
+
| `api` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
45
|
+
| `database` | `auto` | `opus` | `gpt-5.6-sol` |
|
|
46
|
+
| `documentation` | `auto` | `haiku` | `gpt-5.6-luna` |
|
|
47
|
+
| `previous_reviews` | `auto` | `haiku` | `gpt-5.6-luna` |
|
|
48
|
+
|
|
49
|
+
## Вопросы
|
|
50
|
+
|
|
51
|
+
Задавай вопрос только когда target противоречив, дана лишь ссылка на корень репозитория или безопасно выбрать цель невозможно. Вопрос о плане не задавай: используй план только если пользователь указал его или путь определяется однозначно; иначе установи `$PLAN_FILE=none`.
|
|
52
|
+
|
|
53
|
+
- Claude Code: используй `AskUserQuestion`.
|
|
54
|
+
- Codex interactive: используй `request_user_input`, если доступен; иначе задай короткий вопрос с 2–3 вариантами и остановись до ответа.
|
|
55
|
+
- Codex exec и другой неинтерактивный запуск: не читай stdin; верни `blocked: нужен target` с конкретным вопросом.
|
|
56
|
+
|
|
57
|
+
## Подготовить контекст
|
|
58
|
+
|
|
59
|
+
1. Определи `$TARGET`: явный файл, папка, URL PR/MR, ветка, коммит, указанный diff или `git diff HEAD` без аргументов. Для GitHub/GitLab URL получи metadata и diff read-only командами `gh`/`glab`; для другого сервиса используй доступное read-only средство. Если основной diff недоступен, остановись: warning разрешён только для недоступных прошлых обсуждений, а не для самого target.
|
|
60
|
+
2. Прочитай `AGENTS.md`, `CLAUDE.md`, `docs/rules.md`, `docs/arch.md` и сам target настолько, чтобы выбрать проверки и передать агентам точный контекст. На этом шаге не делай собственное code review.
|
|
61
|
+
3. Определи `$PLAN_FILE`. Если его нет, используй `none` и не пытайся восстановить последний план наугад.
|
|
62
|
+
4. Определи `$REFERENCE_FILES`: если план содержит `sources.references`, используй их; иначе через `docs/references.md` выбери только применимые карточки для компонентов target. Если карточек нет, используй `none`.
|
|
63
|
+
5. Сформируй краткий `$REVIEW_CONTEXT`: тип target, base, изменённые области, применимые документы и явные решения пользователя. Не включай в него domain-инструкции агентов.
|
|
64
|
+
|
|
65
|
+
Приоритет решений: подтверждённое решение пользователя → действующие правила → архитектура → применимые карточки.
|
|
66
|
+
|
|
67
|
+
## Выбрать проверки
|
|
68
|
+
|
|
69
|
+
Сначала примени разовые overrides, затем настройки, затем defaults.
|
|
70
|
+
|
|
71
|
+
- `always` включай всегда, `off` всегда пропускай.
|
|
72
|
+
- `architecture` в `auto` включай при изменении границ модулей, зависимостей, публичных контрактов или разделения ответственности.
|
|
73
|
+
- `references` включай только при непустом `$REFERENCE_FILES`.
|
|
74
|
+
- `plan_alignment` включай только при непустом `$PLAN_FILE`.
|
|
75
|
+
- `security` включай для auth, permissions, внешнего ввода, файлов, сети, секретов, криптографии и других границ доверия.
|
|
76
|
+
- `performance` включай для запросов, пакетной обработки, кешей, конкурентности, памяти или горячих путей.
|
|
77
|
+
- `frontend` обязательно включай при изменении компонентов, стилей, клиентских маршрутов, состояния или другой UI-части.
|
|
78
|
+
- `api` включай при изменении routes, handlers, DTO, OpenAPI, GraphQL, RPC или клиент-серверного контракта.
|
|
79
|
+
- `database` включай при изменении миграций, моделей хранения, SQL, схем, индексов или транзакций.
|
|
80
|
+
- `documentation` включай при изменении публичного API, CLI, конфигурации, установки или пользовательского поведения.
|
|
81
|
+
- `previous_reviews` включай для URL PR/MR или другой удалённой цели, у которой могут быть обсуждения ревью.
|
|
82
|
+
|
|
83
|
+
Для каждой проверки сохрани причину `selected` или `skipped`; она попадёт в покрытие.
|
|
84
|
+
|
|
85
|
+
## Запустить packaged-агентов
|
|
86
|
+
|
|
87
|
+
Имя агента получается из имени проверки:
|
|
88
|
+
|
|
89
|
+
- `plan_alignment` → `eda-review-plan-alignment`;
|
|
90
|
+
- `code_quality` → `eda-review-code-quality`;
|
|
91
|
+
- `previous_reviews` → `eda-review-previous-reviews`;
|
|
92
|
+
- остальные → `eda-review-<check>`.
|
|
93
|
+
|
|
94
|
+
В Claude Code запускай установленный custom agent через `Agent` tool. В Codex запускай установленный custom agent через `spawn_agent` или аналог. Передай выбранную модель как runtime override. Если хост не умеет применить выбранную модель или нативные субагенты недоступны, остановись: не выполняй роли главным агентом и не создавай отдельные CLI-процессы.
|
|
95
|
+
|
|
96
|
+
Запусти все выбранные проверки одним параллельным пакетом; если хост ограничивает concurrency, разреши ему поставить лишние задачи в очередь. Каждому агенту передай только:
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
Рабочая директория: <cwd>
|
|
100
|
+
TARGET: <target>
|
|
101
|
+
PLAN_FILE: <path | none>
|
|
102
|
+
REFERENCE_FILES: <paths | none>
|
|
103
|
+
MODEL: <фактически выбранная модель>
|
|
104
|
+
REVIEW_CONTEXT: <краткий общий контекст>
|
|
105
|
+
|
|
106
|
+
Верни результат строго по YAML-контракту установленного агента.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Не вставляй системный prompt агента в task-сообщение.
|
|
110
|
+
|
|
111
|
+
## Проверить ответы и обработать сбои
|
|
112
|
+
|
|
113
|
+
Проверь для каждого ответа `status`, `check`, фактически запрошенный `model` и структуру `findings`. Несовпадение модели считай ошибкой контракта. Находка без конкретного риска и доказательства не подтверждена.
|
|
114
|
+
|
|
115
|
+
- При `blocked`, неверном YAML или отсутствующих обязательных полях один раз повтори того же агента на той же модели с исходным контекстом и описанием ошибки формата.
|
|
116
|
+
- `completed` означает успешно выполненную проверку. `not_applicable` перенеси в skipped с причиной и не повторяй.
|
|
117
|
+
- Если повторно не завершилась любая проверка, кроме `previous_reviews`, остановись без создания итогового файла ревью.
|
|
118
|
+
- Для `previous_reviews` статусы `unavailable` или повторный технический сбой преврати в warning и продолжай. Не утверждай, что старые обсуждения проверены.
|
|
119
|
+
- `previous_reviews` ничего не закрывает удалённо. Актуальные незакрытые замечания добавь в общий набор; исправленные, но открытые треды покажи только в покрытии.
|
|
120
|
+
|
|
121
|
+
## Собрать итог
|
|
122
|
+
|
|
123
|
+
Главный агент выполняет только редакторскую работу над результатами:
|
|
124
|
+
|
|
125
|
+
1. Проверь находки по указанным evidence и отклони неподтверждённые.
|
|
126
|
+
2. Объедини дубли разных агентов в один пункт, сохранив все полезные доказательства.
|
|
127
|
+
3. Распредели проблемы по тяжести и рекомендации `required` или `optional`.
|
|
128
|
+
4. Сам выставь итоговый `score` от 0 до 100 по серьёзности, вероятности, влиянию и общему качеству реализации. Не используй фиксированные вычеты, среднее или минимум оценок агентов. Добавь короткое обоснование числа.
|
|
129
|
+
5. Не выполняй дополнительное самостоятельное ревью и не добавляй новые domain-находки от себя.
|
|
130
|
+
|
|
131
|
+
Ревью содержит только проблемы. Не перечисляй выполненную работу, похвалу и успешные проверки. Исключение — короткий технический раздел покрытия.
|
|
132
|
+
|
|
133
|
+
## Сохранить ревью
|
|
134
|
+
|
|
135
|
+
Создай файл `docs/reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md` только после успешной обработки всех обязательных агентов. Для недоступного `previous_reviews` используй `status: reviewed-with-warnings`, иначе `status: reviewed`.
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
---
|
|
139
|
+
target: <что проверено>
|
|
140
|
+
plan: <docs/plans/... | none>
|
|
141
|
+
score: <0..100>
|
|
142
|
+
status: <reviewed | reviewed-with-warnings>
|
|
143
|
+
date: <YYYY-MM-DD HH:MM>
|
|
144
|
+
checks:
|
|
145
|
+
- name: <check>
|
|
146
|
+
model: <model>
|
|
147
|
+
status: <completed | skipped | warning>
|
|
148
|
+
reason: <почему запущен, пропущен или неполон>
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
# Ревью: <краткое название>
|
|
152
|
+
|
|
153
|
+
## Оценка
|
|
154
|
+
|
|
155
|
+
**<N>/100.** <краткое экспертное обоснование>
|
|
156
|
+
|
|
157
|
+
## Покрытие
|
|
158
|
+
|
|
159
|
+
- **Completed:** <проверки и модели>
|
|
160
|
+
- **Skipped:** <проверки и причины>
|
|
161
|
+
- **Warnings:** <предупреждения или «нет»>
|
|
162
|
+
- **Frontend:** <если запускался: «UI/UX проверены по коду; браузерная проверка не выполнялась»>
|
|
163
|
+
- **Previous reviews:** <актуальные / исправленные, но открытые / недоступны>
|
|
164
|
+
|
|
165
|
+
## Проблемы сверки с планом
|
|
166
|
+
|
|
167
|
+
<Только подтверждённые plan_alignment-проблемы. Если плана нет: «Проверка плана пропущена: план не указан и не найден.»>
|
|
168
|
+
|
|
169
|
+
## Проблемы в коде
|
|
170
|
+
|
|
171
|
+
### 1. <короткий заголовок>
|
|
172
|
+
|
|
173
|
+
<1–3 коротких абзаца: контекст, проблема, практический риск и когда он проявится. Не начинай с внутренних имён.>
|
|
174
|
+
|
|
175
|
+
#### Технические детали
|
|
176
|
+
|
|
177
|
+
- **Тип:** <check>
|
|
178
|
+
- **Тяжесть:** <critical | high | medium | low>
|
|
179
|
+
- **Рекомендация:** <править обязательно | на усмотрение автора>
|
|
180
|
+
- **Файлы:** `<path:line>`
|
|
181
|
+
- **Что подтверждает проблему:** <evidence>
|
|
182
|
+
- **Как исправить:** <общий подход и конкретные шаги>
|
|
183
|
+
- **Тесты:** <что добавить или обновить>
|
|
184
|
+
|
|
185
|
+
## Рекомендации
|
|
186
|
+
|
|
187
|
+
### Править обязательно
|
|
188
|
+
- <номера или «Нет»>
|
|
189
|
+
|
|
190
|
+
### На усмотрение автора
|
|
191
|
+
- <номера или «Нет»>
|
|
192
|
+
|
|
193
|
+
### Не править
|
|
194
|
+
- <только явно отклонённые пункты или «Нет»>
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Основная часть каждого замечания — главный ответ: простой язык, 1–3 коротких абзаца и контекст, понятный без чтения diff или плана. Файлы, строки, SQL, DTO и внутренние имена давай ниже в `Технические детали`.
|
|
198
|
+
|
|
199
|
+
## Финал
|
|
200
|
+
|
|
201
|
+
Коротко сообщи путь к ревью, статус, score, количество обязательных и optional-проблем, completed/skipped/warnings. Предложи `eda-fix-by-review` для исправления или `eda-commit`, если результат приемлем.
|
|
202
|
+
|
|
203
|
+
## Чего НЕ делать
|
|
204
|
+
|
|
205
|
+
- Править код, настройки проекта или удалённые обсуждения.
|
|
206
|
+
- Выполнять специализированную роль главным агентом.
|
|
207
|
+
- Запускать другой CLI или подменять отсутствующих субагентов одним общим ревью.
|
|
208
|
+
- Записывать итоговый файл после повторного сбоя обязательного агента.
|
|
209
|
+
- Выбирать последний PR или весь репозиторий по ссылке на корень.
|
|
210
|
+
- Загружать все карточки references без отбора.
|
|
211
|
+
- Усреднять оценки агентов или считать score по фиксированной формуле.
|
|
212
|
+
- Утверждать, что UI визуально проверен без `eda-manual-test`.
|