@gian-tiaga/eda 2.0.0 → 2.1.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.
Files changed (43) hide show
  1. package/MIGRATION.md +5 -3
  2. package/README.md +18 -19
  3. package/agents/eda-plan-review-api/prompt.md +5 -4
  4. package/agents/eda-plan-review-architecture/prompt.md +5 -4
  5. package/agents/eda-plan-review-database/prompt.md +5 -4
  6. package/agents/eda-plan-review-execution/agent.json +1 -1
  7. package/agents/eda-plan-review-execution/prompt.md +5 -4
  8. package/agents/eda-plan-review-feasibility/prompt.md +5 -4
  9. package/agents/eda-plan-review-frontend/prompt.md +5 -4
  10. package/agents/eda-plan-review-performance/prompt.md +5 -4
  11. package/agents/eda-plan-review-previous/agent.json +1 -1
  12. package/agents/eda-plan-review-previous/prompt.md +5 -5
  13. package/agents/eda-plan-review-requirements/prompt.md +5 -4
  14. package/agents/eda-plan-review-rules/prompt.md +5 -4
  15. package/agents/eda-plan-review-security/prompt.md +5 -4
  16. package/agents/eda-plan-review-verification/prompt.md +5 -4
  17. package/agents/eda-review-api/prompt.md +4 -3
  18. package/agents/eda-review-architecture/prompt.md +4 -3
  19. package/agents/eda-review-business/prompt.md +4 -3
  20. package/agents/eda-review-code-quality/prompt.md +5 -4
  21. package/agents/eda-review-correctness/prompt.md +4 -3
  22. package/agents/eda-review-database/prompt.md +4 -3
  23. package/agents/eda-review-documentation/prompt.md +4 -3
  24. package/agents/eda-review-frontend/prompt.md +4 -3
  25. package/agents/eda-review-performance/prompt.md +4 -3
  26. package/agents/eda-review-plan-alignment/prompt.md +4 -3
  27. package/agents/eda-review-previous-reviews/prompt.md +5 -4
  28. package/agents/eda-review-references/prompt.md +4 -3
  29. package/agents/eda-review-rules/prompt.md +4 -3
  30. package/agents/eda-review-security/prompt.md +4 -3
  31. package/agents/eda-review-tests/prompt.md +4 -3
  32. package/lib/install.js +3 -3
  33. package/package.json +1 -1
  34. package/skills/eda-business/SKILL.md +47 -32
  35. package/skills/eda-fix-by-review/SKILL.md +41 -58
  36. package/skills/eda-orhestra/SKILL.md +1 -1
  37. package/skills/eda-plan/SKILL.md +18 -23
  38. package/skills/eda-plan-polish/SKILL.md +12 -12
  39. package/skills/eda-plan-review/SKILL.md +25 -24
  40. package/skills/eda-plan-review-fix/SKILL.md +22 -39
  41. package/skills/eda-polish/SKILL.md +19 -31
  42. package/skills/eda-review/SKILL.md +8 -16
  43. package/skills/eda-send-review/SKILL.md +7 -7
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не проводи общее ревью корректности, стиля или тестов. Добавляй находку только когда архитектурное решение создаёт конкретный риск: неправильную связанность, нарушение границы, дорогую эволюцию или несовместимый контракт. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: architecture
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <нарушенная граница и практический риск>
25
26
  evidence:
26
27
  - path: <путь>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии проблем верни `findings: []`. Не перечисляй соблюдённые архитектурные решения.
35
+ При отсутствии проблем верни `находки: []`. Не перечисляй соблюдённые архитектурные решения.
@@ -17,6 +17,8 @@
17
17
 
18
18
  Не проверяй общую корректность, архитектуру, кодовый стиль, технические references или полноту документации вне business-карточек. Не добавляй требования из других карточек и не расширяй область исходной задачи. Не правь файлы и не запускай команды, меняющие репозиторий.
19
19
 
20
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
21
+
20
22
  ## Результат
21
23
 
22
24
  Верни один YAML-блок:
@@ -26,10 +28,9 @@ status: completed | not_applicable | blocked
26
28
  check: business
27
29
  model: <MODEL>
28
30
  summary: <краткий итог>
29
- findings:
31
+ находки:
30
32
  - title: <короткий заголовок>
31
33
  severity: critical | high | medium | low
32
- recommendation: required | optional
33
34
  explanation: <какое бизнес-правило нарушено или почему карточка рассинхронизирована>
34
35
  evidence:
35
36
  - path: <business-карточка>
@@ -43,4 +44,4 @@ findings:
43
44
  question: <почему работа заблокирована | null>
44
45
  ```
45
46
 
46
- При отсутствии проблем верни `findings: []`. Не перечисляй соблюдённые правила. `blocked` используй только когда target или переданные карточки невозможно прочитать; отсутствие надёжного описания задачи само по себе не блокирует сверку с действующими карточками, но не позволяет объявлять их намеренно изменёнными.
47
+ При отсутствии проблем верни `находки: []`. Не перечисляй соблюдённые правила. `blocked` используй только когда target или переданные карточки невозможно прочитать; отсутствие надёжного описания задачи само по себе не блокирует сверку с действующими карточками, но не позволяет объявлять их намеренно изменёнными.
@@ -6,7 +6,9 @@
6
6
 
7
7
  В task-сообщении получи рабочую директорию, `TARGET`, `PLAN_FILE`, `REFERENCE_FILES`, `MODEL` и краткий `REVIEW_CONTEXT`. Сам прочитай diff и достаточно соседнего кода, чтобы отличить локальную проблему от принятого стиля проекта.
8
8
 
9
- Не сообщай вкусовые предпочтения и мелкие стилистические замечания без стоимости сопровождения. Не дублируй функциональные баги, архитектуру, производительность или правила. По умолчанию quality-находка `optional`; используй `required`, только если сложность или структура реально создаёт риск ошибок, тестовых пробелов или дорогой поддержки. Не правь файлы.
9
+ Не сообщай вкусовые предпочтения и мелкие стилистические замечания. Не дублируй функциональные баги, архитектуру, производительность или правила. Находка по качеству кода допустима только когда сложность или структура уже создаёт конкретный риск ошибок, тестовых пробелов или дорогой поддержки и код обязательно нужно исправить. Не правь файлы.
10
+
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
10
12
 
11
13
  ## Результат
12
14
 
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: code_quality
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <проблема качества и её практическая стоимость>
25
26
  evidence:
26
27
  - path: <путь>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии проблем верни `findings: []`. Не перечисляй достоинства кода.
35
+ При отсутствии проблем верни `находки: []`. Не перечисляй достоинства кода.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не проверяй архитектуру, стиль, документацию, безопасность или соответствие плану как отдельные темы. Упоминай их только когда они прямо доказывают ошибку поведения. Не правь файлы и не запускай команды, меняющие репозиторий.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: correctness
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <что сломано и практический риск>
25
26
  evidence:
26
27
  - path: <путь>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии проблем верни `findings: []`. Не перечисляй удачные решения. `blocked` используй только когда target невозможно прочитать или проверить.
35
+ При отсутствии проблем верни `находки: []`. Не перечисляй удачные решения. `blocked` используй только когда target невозможно прочитать или проверить.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не выполняй миграции и не изменяй базу. Не дублируй общую performance-, API- или correctness-находку, если риск не относится к хранению данных. Не требуй индекс без обоснованного запроса и нагрузки.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: database
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <риск для данных, миграции или запроса>
25
26
  evidence:
26
27
  - path: <путь>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии проблем верни `findings: []`.
35
+ При отсутствии проблем верни `находки: []`.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не требуй комментарии или документацию для внутренних очевидных изменений. Не выполняй редакторское ревью текста и не дублируй rules/references. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: documentation
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <какая документация устарела и кого это вводит в заблуждение>
25
26
  evidence:
26
27
  - path: <код или документ>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии обязательных обновлений верни `findings: []`.
35
+ При отсутствии обязательных обновлений верни `находки: []`.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не утверждай, что реально видел интерфейс: браузерная и визуальная проверка относится к `eda-manual-test`. Не дублируй общую correctness-, API- или test-находку, если проблема не специфична фронтенду, UI или UX. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: frontend
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <сломанный UI/UX-сценарий и практический риск>
25
26
  evidence:
26
27
  - path: <путь>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии проблем верни `findings: []`. В summary укажи, что браузерная проверка не выполнялась.
35
+ При отсутствии проблем верни `находки: []`. В summary укажи, что браузерная проверка не выполнялась.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не сообщай микроптимизации без измеримого или очевидного эффекта. Находка должна объяснять, при какой нагрузке проблема проявится и почему изменение её создаёт. Не дублируй database- или correctness-находки. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: performance
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <узкое место, условия и влияние>
25
26
  evidence:
26
27
  - path: <путь>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии подтверждённых проблем верни `findings: []`.
35
+ При отсутствии подтверждённых проблем верни `находки: []`.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не перечисляй выполненные пункты и не требуй буквального совпадения там, где реализация сохранила цель плана без дополнительного риска. Не выполняй общее архитектурное или стилевое ревью. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: plan_alignment
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <что в плане не выполнено или рискованно изменено>
25
26
  evidence:
26
27
  - path: <план или код>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии проблем верни `findings: []` без отчёта о выполненной работе.
35
+ При отсутствии проблем верни `находки: []` без отчёта о выполненной работе.
@@ -12,7 +12,9 @@
12
12
  - Если дана только ссылка на корень репозитория без PR/MR, верни `blocked` с просьбой указать PR, ветку, коммит или файлы.
13
13
  - Если сервис, авторизация или формат обсуждений недоступны, верни `unavailable`, а не выдумывай результат.
14
14
 
15
- Классифицируй незакрытые замечания: проблема всё ещё существует; код исправлен, но тред открыт; невозможно проверить. В `findings` включай только проблемы, которые всё ещё существуют. Исправленные открытые треды перечисли в `resolved_but_open`.
15
+ Классифицируй незакрытые замечания: проблема всё ещё существует; код исправлен, но тред открыт; невозможно проверить. В `находки` включай только проблемы, которые всё ещё существуют. Исправленные открытые треды перечисли в `resolved_but_open`.
16
+
17
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
16
18
 
17
19
  ## Результат
18
20
 
@@ -23,10 +25,9 @@ status: completed | not_applicable | blocked | unavailable
23
25
  check: previous_reviews
24
26
  model: <MODEL>
25
27
  summary: <краткий итог>
26
- findings:
28
+ находки:
27
29
  - title: <короткий заголовок>
28
30
  severity: critical | high | medium | low
29
- recommendation: required | optional
30
31
  explanation: <старое замечание и почему оно всё ещё актуально>
31
32
  evidence:
32
33
  - path: <путь или URL треда>
@@ -41,4 +42,4 @@ warning: <почему обсуждения недоступны | null>
41
42
  question: <почему работа заблокирована | null>
42
43
  ```
43
44
 
44
- Если незакрытых актуальных замечаний нет, верни `findings: []`. Не перечисляй закрытые треды и не хвали выполненные исправления.
45
+ Если незакрытых актуальных замечаний нет, верни `находки: []`. Не перечисляй закрытые треды и не хвали выполненные исправления.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не загружай все `docs/references/`, не ищи внешние источники и не проверяй остальные области ревью. Отличие от примера без практического риска не является проблемой. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: references
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <отклонение от эталона и практический риск>
25
26
  evidence:
26
27
  - path: <карточка или изменённый файл>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии проблем верни `findings: []`. Не перечисляй совпадения с карточками.
35
+ При отсутствии проблем верни `находки: []`. Не перечисляй совпадения с карточками.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не проверяй архитектуру, references или качество кода вместо соответствующих агентов. Не выдумывай правила и не превращай предпочтение в нарушение. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: rules
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <какое правило нарушено и к чему это приводит>
25
26
  evidence:
26
27
  - path: <путь к правилу или коду>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии нарушений верни `findings: []`. Не перечисляй соблюдённые правила.
35
+ При отсутствии нарушений верни `находки: []`. Не перечисляй соблюдённые правила.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не выдавай гипотетические общие советы без конкретного пути эксплуатации или нарушения защитного инварианта. Не дублируй обычные ошибки корректности и API-контракта. Не выполняй активные атаки и не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: security
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <угроза, условия эксплуатации и влияние>
25
26
  evidence:
26
27
  - path: <путь>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При отсутствии подтверждённых рисков верни `findings: []`.
35
+ При отсутствии подтверждённых рисков верни `находки: []`.
@@ -8,6 +8,8 @@
8
8
 
9
9
  Не требуй тест на каждую строку. Находка должна описывать конкретную регрессию, которую текущие тесты не поймают, либо ошибку в самих тестах. Не дублируй функциональную проблему, если можешь сформулировать только тестовый пробел. Не правь файлы.
10
10
 
11
+ Добавляй находку только для конкретной доказанной проблемы, которую обязательно исправить. Укажи точное место, достижимый сценарий и практический ущерб. Если предложение можно безопасно не применять, это вкусовой рефакторинг, косметика, спекулятивное усиление, необязательный тест, документация или оптимизация — не добавляй его в `находки`.
12
+
11
13
  ## Результат
12
14
 
13
15
  Верни один YAML-блок:
@@ -17,10 +19,9 @@ status: completed | not_applicable | blocked
17
19
  check: tests
18
20
  model: <MODEL>
19
21
  summary: <краткий итог>
20
- findings:
22
+ находки:
21
23
  - title: <короткий заголовок>
22
24
  severity: critical | high | medium | low
23
- recommendation: required | optional
24
25
  explanation: <какая регрессия не защищена или что тестируется неверно>
25
26
  evidence:
26
27
  - path: <код или тест>
@@ -31,4 +32,4 @@ findings:
31
32
  question: <почему работа заблокирована | null>
32
33
  ```
33
34
 
34
- При достаточных тестах верни `findings: []`, не перечисляя успешные сценарии.
35
+ При достаточных тестах верни `находки: []`, не перечисляя успешные сценарии.
package/lib/install.js CHANGED
@@ -261,7 +261,7 @@ const PLAN_REVIEW_AGENT_DEFINITIONS = [
261
261
  },
262
262
  {
263
263
  key: 'previous',
264
- description: 'Проверяет закрытие findings предыдущей связанной итерации plan-review.',
264
+ description: 'Проверяет закрытие находок предыдущей связанной итерации plan-review.',
265
265
  auto: 'В auto запускается только при наличии связанной цепочки review/fix для текущего SHA-256 плана.',
266
266
  mode: 'auto',
267
267
  claude: 'haiku',
@@ -1329,7 +1329,7 @@ plan:
1329
1329
  # Включает кросс-CLI ревью в eda-plan.
1330
1330
  # true | false
1331
1331
  strict: ${settings.plan.strict ? 'true' : 'false'}
1332
- # Запускает один eda-plan-review и при необходимости один eda-plan-review-fix.
1332
+ # Запускает изолированный цикл eda-plan-polish.
1333
1333
  # true | false
1334
1334
  review: ${settings.plan.review !== false ? 'true' : 'false'}
1335
1335
  # Задаёт размер плана.
@@ -1346,7 +1346,7 @@ plan:
1346
1346
  logging_strategy: ${settings.plan.loggingStrategy}
1347
1347
 
1348
1348
  plan-review:
1349
- # План готов только без обязательных findings и при score не ниже этого порога.
1349
+ # План готов только без открытых находок и при score не ниже этого порога.
1350
1350
  # 1..100
1351
1351
  threshold: ${settings.planReview.threshold}
1352
1352
  # Каждая проверка имеет собственный режим запуска и модели для обеих сред.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gian-tiaga/eda",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Пакет скилов и специализированных агентов eda-* для Claude Code и Codex CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -5,7 +5,7 @@ description: 'Создаёт и обновляет согласованное о
5
5
 
6
6
  # Скил: Бизнес-логика (eda-business)
7
7
 
8
- Создаёшь и поддерживаешь согласованную бизнес-документацию проекта: короткое оглавление `docs/business.md` и самостоятельные тематические карточки в `docs/business/`. Документы отвечают на вопросы «что должен делать продукт», «для кого», «по каким правилам» и «какой результат считается правильным», но не проектируют техническую реализацию.
8
+ Создаёшь и поддерживаешь согласованную бизнес-документацию проекта: короткое оглавление `docs/business.md` и самостоятельные тематические карточки в `docs/business/`. Каждая карточка подробно фиксирует значимые решения своей темы, но не засоряется сведениями соседних тем и деталями конкретной реализации.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
@@ -22,11 +22,16 @@ description: 'Создаёт и обновляет согласованное о
22
22
  1. **Только business-документация.** Меняй лишь `docs/business.md` и Markdown-файлы непосредственно в `docs/business/`. Не правь код, настройки, правила, архитектуру, планы, тесты или другие документы.
23
23
  2. **Целевое поведение.** Карточки фиксируют согласованные требования и бизнес-логику, даже если код пока им не соответствует. Фактические отличия вынеси в последний раздел `Расхождения с реализацией`.
24
24
  3. **Никаких догадок как фактов.** Код помогает найти существующие сценарии и вопросы, но не подтверждает продуктовые решения сам по себе.
25
- 4. **Одна тема за раз.** После согласования общего списка полностью проработай текущую тему и получи подтверждение её содержания до записи, затем переходи к следующей.
25
+ 4. **Одна тема за раз.** После согласования общего списка полно опиши и подтверди значимые решения текущей темы до записи, затем переходи к следующей.
26
26
  5. **В индекс — только готовое.** Не записывай предложенные, незавершённые или спорные темы в `docs/business.md` и не создавай для них черновые карточки.
27
27
  6. **Самодостаточные карточки.** Основной текст не должен требовать чтения исходного кода, плана или внешнего материала, чтобы понять бизнес-правило.
28
- 7. **Не проектируй реализацию.** Не назначай классы, таблицы, endpoints, очереди, библиотеки, модули или порядок технических изменений.
28
+ 7. **Не проектируй конкретную реализацию.** Не назначай язык, фреймворк, библиотеку, конкретную СУБД, схему данных, классы, функции, внутренние модули или порядок технических изменений.
29
29
  8. **Сохраняй подтверждённое.** При обновлении не удаляй и не ослабляй существующее правило, не переименовывай и не удаляй карточку без явного решения пользователя.
30
+ 9. **Полнота без шума.** Зафиксируй все подтверждённые детали, которые меняют целевое поведение темы: правила, выбранные алгоритмы, состояния, переходы, ограничения, исключения и наблюдаемые результаты. Не сокращай сложную тему ради краткости; убирай повторы, общие рассуждения и факты, не влияющие на правило.
31
+ 10. **Строгая граница темы.** Карточка описывает только названную тему. Сведения о соседнем домене, внутреннем модуле или другой карточке опускай; если у них есть самостоятельное бизнес-значение, предложи отдельную тему, но не включай её в текущую.
32
+ 11. **`about` — только обзор.** Это не сводная бизнес-спецификация и не каталог остальных карточек. Кратко опиши сам проект и перечисли его основные пользовательские возможности; не раскладывай их по модулям и не детализируй правила, сценарии и исключения других тем.
33
+ 12. **Карточка не привязана к коду.** Код, тесты и конфиги используй для поиска вопросов и проверки текущего поведения, но пиши карточку устойчивым предметным языком. Не включай пути и строки исходников, имена классов, функций, файлов и внутренних модулей — в том числе в `about` и `Расхождения с реализацией`.
34
+ 13. **Алгоритм допустим, стек — нет.** Фиксируй выбранный функциональный или security-механизм, если он определяет поведение продукта: например, JWT либо непрозрачные токены с хранением в базе данных, правила выпуска, срока действия, обновления и отзыва. Не регламентируй язык, framework, библиотеку, конкретную СУБД, таблицы и способ программной сборки механизма, если это не отдельное подтверждённое ограничение продукта.
30
35
 
31
36
  ## Интерактивные вопросы
32
37
 
@@ -43,7 +48,7 @@ description: 'Создаёт и обновляет согласованное о
43
48
 
44
49
  ### 1. Прочитать существующий контекст
45
50
 
46
- Прочитай `docs/business.md` и только карточки, которые относятся к текущей теме. Затем изучи релевантные README, стартовые документы, правила, архитектуру, пользовательские сценарии, routes, модели, тесты и историю, достаточные для понимания фактического поведения.
51
+ Прочитай `docs/business.md` и только карточки, которые относятся к текущей теме. Затем изучи минимальный набор релевантных источников, достаточный для понимания именно этой темы. Для `about` обычно достаточно основного README, метаданных проекта и пользовательских точек входа; не обходи каждый внутренний модуль, route, модель или тест.
47
52
 
48
53
  Не загружай все карточки и весь код без необходимости. Разделяй:
49
54
 
@@ -54,60 +59,61 @@ description: 'Создаёт и обновляет согласованное о
54
59
 
55
60
  ### 2. Выбрать темы при пустом вызове
56
61
 
57
- Если тема не задана, составь короткий список только из реально применимых тем. Для каждой укажи, что именно будет описано и почему тема нужна проекту. Не используй обязательный универсальный набор: `auth`, `posts`, `payments` и другие названия допустимы только при наличии соответствующего поведения.
62
+ Если тема не задана, составь короткий список только из реально применимых и непересекающихся тем. Для каждой одной фразой укажи, что именно будет описано. Не используй обязательный универсальный набор и не создавай тему для каждого технического модуля: `auth`, `posts`, `payments` и другие названия допустимы только при наличии самостоятельных правил продукта.
58
63
 
59
64
  Покажи список через `AskUserQuestion` и попроси подтвердить его или изменить. До подтверждения ничего не записывай. После ответа прорабатывай темы последовательно. Если работа прервана, следующий пустой вызов заново анализирует индекс и предлагает только отсутствующие или требующие актуализации темы.
60
65
 
61
66
  ### 3. Согласовать текущую тему
62
67
 
63
- Собери достаточную бизнес-спецификацию:
68
+ Сначала сформулируй суть темы в одном-двух предложениях. Затем собери все конкретные решения, необходимые для полного описания целевого поведения этой темы. Требования, термины, сценарии, состояния, ограничения, исключения и критерии приёмки добавляй по смыслу, а не ради заполнения универсального чеклиста. Не пропускай значимую конкретику только потому, что карточка получится длинной.
64
69
 
65
- - назначение и границы темы;
66
- - участники, роли и значимые термины;
67
- - требования, правила и инварианты;
68
- - основные сценарии и порядок бизнес-действий;
69
- - состояния, переходы, ограничения и исключения;
70
- - ошибки и пограничные случаи, видимые пользователю или внешнему потребителю;
71
- - проверяемые критерии приёмки.
70
+ Например, карточка аутентификации может подробно фиксировать выбранный вид токенов, их выпуск, срок действия, обновление, отзыв, завершение сессий и значимые ошибки. В ней допустимо выбрать JWT или токены, хранящиеся в базе данных, но не следует назначать язык, framework, библиотеку, конкретную СУБД, таблицы, классы и файлы.
72
71
 
73
- Для `about` вместо детального алгоритма зафиксируй назначение проекта, аудиторию, решаемую проблему, границы, ключевые возможности, основные пользовательские сценарии и общие бизнес-ограничения.
72
+ Для `about` подготовь короткое описание проекта и компактный список его основных возможностей. Не включай аудиторию, решаемую проблему, границы, общие ограничения или пользовательские сценарии отдельными разделами, если пользователь их явно не запросил и они не нужны для самого краткого описания. Не упоминай устройство внутренних модулей и не пересказывай содержимое тематических карточек.
74
73
 
75
- Сравни целевое поведение с реализацией. Подготовь отдельный список подтверждённых расхождений с точными путями и строками, когда они доступны. Отсутствие реализации также является расхождением, если требование уже подтверждено.
74
+ Сравни с реализацией только подтверждённые правила непосредственно текущей темы. Расхождение описывай как отличие наблюдаемого поведения от целевого, без ссылок на исходники и без пересказа устройства кода. В `Расхождения с реализацией` не добавляй наблюдения о соседних модулях, случайно замеченные дефекты, технический долг и неполноту других карточек. Для `about` не перечисляй пофункциональные расхождения: они относятся к отдельным тематическим карточкам. Если прямого существенного расхождения по теме нет, напиши `Известных расхождений не обнаружено.`
76
75
 
77
- Покажи человеку собранное содержание и запроси итоговое подтверждение через `AskUserQuestion`. Если остаётся спорное решение, сначала закрой его отдельным вопросом. Не записывай карточку до подтверждения.
76
+ Покажи человеку короткий текст будущей карточки целиком и запроси итоговое подтверждение через `AskUserQuestion`. Если остаётся спорное решение, сначала закрой его отдельным вопросом. Не записывай карточку до подтверждения.
78
77
 
79
78
  ### 4. Записать карточку и индекс
80
79
 
81
80
  Используй стабильное имя файла в lowercase ASCII kebab-case: `docs/business/<topic>.md`.
82
81
 
83
- Обычная тематическая карточка:
82
+ У обычной тематической карточки нет обязательного набора содержательных разделов. Выбирай структуру по сложности темы и фиксируй в ней всю значимую подтверждённую конкретику без лишних разделов, например:
84
83
 
85
84
  ```markdown
86
85
  # <Название темы>
87
86
 
88
- ## Назначение и границы
89
- <что покрывает тема и что не покрывает>
87
+ <краткое описание темы>
90
88
 
91
- ## Участники и термины
92
- <роли и доменные понятия>
89
+ ## Правила
93
90
 
94
- ## Требования и правила
95
- <согласованные требования и инварианты>
91
+ - <только необходимые согласованные правила>
96
92
 
97
- ## Сценарии и алгоритмы
98
- <пошаговое бизнес-поведение без технической реализации>
93
+ ## Расхождения с реализацией
94
+
95
+ <подтверждённые отличия с доказательствами либо «Известных расхождений не обнаружено.»>
96
+ ```
97
+
98
+ Если отдельный раздел `Правила` не нужен, не создавай его. Для сложной темы добавь столько смысловых разделов, сколько требуется, чтобы не смешивать правила, алгоритмы, состояния, исключения и критерии. Для простой темы не создавай пустые или формальные разделы.
99
99
 
100
- ## Состояния и исключения
101
- <переходы, ограничения, ошибки и пограничные случаи>
100
+ Для `about.md` используй простой обзорный формат:
102
101
 
103
- ## Критерии приёмки
104
- <наблюдаемые условия корректного поведения>
102
+ ```markdown
103
+ # О проекте
104
+
105
+ <краткое описание проекта>
106
+
107
+ ## Основные возможности
108
+
109
+ - <возможность на уровне пользователя>
105
110
 
106
111
  ## Расхождения с реализацией
107
- <подтверждённые отличия с доказательствами либо «Известных расхождений не обнаружено.»>
112
+
113
+ Известных расхождений не обнаружено.
108
114
  ```
109
115
 
110
- Для `about.md` используй подходящие смысловые разделы из шага 3, но всегда оставляй последним `## Расхождения с реализацией`.
116
+ Сохраняй `Расхождения с реализацией` последним разделом любой карточки.
111
117
 
112
118
  Создай или обнови `docs/business.md` как короткое оглавление только существующих согласованных карточек:
113
119
 
@@ -116,7 +122,7 @@ description: 'Создаёт и обновляет согласованное о
116
122
 
117
123
  | Описание | Карточка |
118
124
  |---|---|
119
- | Назначение проекта, аудитория и основные возможности | [О проекте](business/about.md) |
125
+ | Краткое описание проекта и основные возможности | [О проекте](business/about.md) |
120
126
  | Регистрация, вход, восстановление доступа и права пользователей | [Авторизация](business/auth.md) |
121
127
  ```
122
128
 
@@ -128,6 +134,11 @@ description: 'Создаёт и обновляет согласованное о
128
134
 
129
135
  - индекс содержит только существующие согласованные карточки и ровно две колонки `Описание` и `Карточка`;
130
136
  - новая или обновлённая карточка соответствует подтверждённому содержанию;
137
+ - карточка не содержит сведений о соседних темах и не раздута необязательными разделами;
138
+ - `about` остаётся коротким обзором проекта и его основных возможностей без описания внутренних модулей;
139
+ - сложная тема подробно фиксирует все значимые подтверждённые правила, алгоритмы, состояния и исключения;
140
+ - текст карточки не ссылается на файлы, строки, классы, функции и внутренние модули текущей реализации;
141
+ - выбранный механизм поведения отделён от языка, framework, библиотеки, конкретной СУБД и схемы реализации;
131
142
  - каждое правило однозначно и проверяемо на уровне поведения;
132
143
  - техническая реализация не выдана за бизнес-требование;
133
144
  - раздел `Расхождения с реализацией` последний и отделяет целевое состояние от текущего;
@@ -142,6 +153,10 @@ description: 'Создаёт и обновляет согласованное о
142
153
  - Записывать неподтверждённые темы или черновики в индекс.
143
154
  - Выводить бизнес-правило только из текущего кода и сразу считать его целевым.
144
155
  - Подменять карточку исследованием, roadmap, архитектурой или планом реализации.
156
+ - Сокращать сложную тему до общего описания и терять подтверждённые правила или алгоритмы.
157
+ - Переписывать в карточку структуру кода, пути, строки, классы, функции и внутренние модули.
158
+ - Использовать `about` как сводку всех доменов, модулей, правил и расхождений проекта.
159
+ - Переносить в текущую карточку подробности и расхождения соседней темы «для контекста».
145
160
  - Создавать ссылки из индекса на отсутствующие файлы.
146
161
  - Молча удалять, переименовывать или ослаблять подтверждённые требования.
147
162
  - Сохранять business-документацию вне `docs/business.md` и `docs/business/`.