@gian-tiaga/eda 0.6.1 → 0.7.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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: eda-fix-by-review
3
- description: 'Применяет замечания из ревью (`docs/reviews/...`) или из текста рядом с вызовом к коду. Перед правками читает `docs/rules.md` и `docs/arch.md` и строго следует им. Бесспорные («править обязательно») — правит сразу; «на усмотрение» — спрашивает интерактивно; «не править» — пропускает. После всех правок — полный прогон тестов и линтеров. Отчёт сохраняется в `docs/review-fixes/`. Не делает само ревью (это `eda-review`), не коммитит (это `eda-commit`). Вопросы задаёт только когда без ответа нельзя безопасно продолжать.'
3
+ description: 'Применяет замечания из ревью (`docs/reviews/...`) или из текста рядом с вызовом к коду. Перед правками читает `docs/rules.md` и `docs/arch.md` и строго следует им. Бесспорные («править обязательно») — правит сразу; «на усмотрение» — спрашивает интерактивно, кроме явного режима `apply-optional`, где применяет их без вопроса. «Не править» — пропускает. После всех правок — полный прогон тестов и линтеров. Отчёт сохраняется в `docs/review-fixes/`. Не делает само ревью и не коммитит.'
4
4
  ---
5
5
 
6
6
  # Скил: Исправитель по ревью (eda-fix-by-review)
@@ -13,16 +13,19 @@ description: 'Применяет замечания из ревью (`docs/revie
13
13
 
14
14
  Если этого входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не ту задачу. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
15
15
 
16
+ ## Режим запуска
17
+
18
+ Обычный режим: «Править обязательно» применяешь сразу, «На усмотрение автора» выносишь через `AskUserQuestion`, «Не править» пропускаешь.
19
+
20
+ Режим `apply-optional`: применяешь «Править обязательно» и «На усмотрение автора» без вопроса. Этот режим нужен для `eda-polish`, где пользователь заранее разрешил автоматическую доводку по optional-замечаниям. Пункты «Не править» всё равно пропускаешь.
21
+
16
22
  ## Главные правила
17
23
 
18
24
  1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`, если есть, и строго следуй им. Это рамка проекта. Один раз в начале.
19
25
  2. **Интерактивные вопросы** — по разделу ниже.
20
26
  3. **Не переформулируй замечания.** Применяй то, что написано в ревью. Если непонятно — спроси через `AskUserQuestion`.
21
27
  4. **Не делаешь само ревью и не коммитишь.** Только применяешь замечания и пишешь отчёт.
22
- 5. **Логика по группам ревью:**
23
- - «Править обязательно» — правишь сразу, без вопросов.
24
- - «На усмотрение автора» — спроси через `AskUserQuestion` (объединяй до 4 пунктов за раунд: применить / пропустить / переформулировать).
25
- - «Не править» — пропускаешь молча, в отчёте отметь как «осознанно не применено».
28
+ 5. **Логика по группам ревью:** «Править обязательно» — правишь сразу; «На усмотрение автора» — спроси через `AskUserQuestion`, кроме режима `apply-optional`; «Не править» — пропускаешь и отмечаешь в отчёте.
26
29
  6. **Тесты — внутри той же правки.** Замечание касается поведения → правка кода + тесты к ней в одном шаге, точечно прогнал.
27
30
  7. **Финальный полный прогон тестов и линтеров — обязателен.** В конце, не на каждой правке.
28
31
  8. **Простой язык** в формулировках и сообщениях. **Таблицы** для отчёта о фиксах.
@@ -34,17 +37,12 @@ description: 'Применяет замечания из ревью (`docs/revie
34
37
  - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
35
38
  - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
36
39
  - Не запускай команды, которые ждут интерактивного ввода в терминале; перед такими командами спроси в хост-интерфейсе или остановись с `blocked`.
37
- - Для исправления кода это правило важнее требования довести фиксы до конца: не применяй пункты «на усмотрение автора», не переформулируй замечания и не правь чужие/несвязанные поломки вместо ответа пользователя.
40
+ - Для исправления кода это правило важнее требования довести фиксы до конца: не применяй пункты «на усмотрение автора» без ответа пользователя, кроме явного режима `apply-optional`; не переформулируй замечания и не правь чужие/несвязанные поломки вместо ответа пользователя.
38
41
 
39
42
  ## Этапы
40
43
 
41
44
  ### 1. Выбрать ревью
42
- Сначала разбери текст рядом с вызовом:
43
- - если указан путь к ревью — используй его как `$REVIEW_FILE`;
44
- - если указано название ревью или часть названия — найди совпадение в `docs/reviews/`;
45
- - если написано «последнее ревью» — возьми самый новый файл из `docs/reviews/`;
46
- - если указаны номера замечаний — применяй только эти пункты, сохрани фильтр в отчёте;
47
- - если сами замечания вставлены в сообщение — используй режим `$REVIEW_SOURCE=review_text`, не выбирай файл ревью и сохрани отчёт с `review: text`.
45
+ Сначала разбери текст рядом с вызовом: путь к ревью, название или часть названия, «последнее ревью», номера замечаний или вставленный текст замечаний. Если замечания вставлены в сообщение — используй режим `$REVIEW_SOURCE=review_text`, не выбирай файл ревью и сохрани отчёт с `review: text`.
48
46
 
49
47
  Если найдено ровно одно ревью — используй режим `$REVIEW_SOURCE=review_file` и продолжай без вопроса. Если замечания даны текстом — используй режим `$REVIEW_SOURCE=review_text` и продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста и вход не содержит замечания — остановись с понятным вопросом или статусом `blocked: нужно ревью`.
50
48
 
@@ -58,7 +56,7 @@ description: 'Применяет замечания из ревью (`docs/revie
58
56
  ### 3. Применить замечания
59
57
  Раздели пункты ревью по группам (берёшь из раздела «Рекомендации»):
60
58
  - **Править обязательно** → правишь сразу. Если меняешь поведение — добавь точечный тест в этой же правке.
61
- - **На усмотрение автора** → собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя.
59
+ - **На усмотрение автора** → в обычном режиме собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя; в режиме `apply-optional` применяй сразу без вопроса.
62
60
  - **Не править** → пропусти.
63
61
 
64
62
  Останавливайся и спрашивай, если: замечание непонятно / противоречит коду / задевает рискованное вне ревью (удаление, миграции, секреты).
@@ -107,7 +105,7 @@ status: done
107
105
  ## Чего НЕ делать
108
106
  - Делать само ревью — это `eda-review`.
109
107
  - Коммитить, пушить — это `eda-commit`.
110
- - Применять «на усмотрение» молча только через `AskUserQuestion`.
108
+ - Применять «на усмотрение» молча без явного режима `apply-optional`.
111
109
  - Игнорировать «не править» и пробовать «на всякий случай» — это нарушает решение ревью.
112
110
  - Гонять полный сьют и линтеры на каждой правке — только в конце.
113
111
  - Пропускать финальную проверку.
package/skills/eda-fix.md CHANGED
@@ -7,13 +7,6 @@ description: 'Делает обычные фиксы по плану, файлу
7
7
 
8
8
  Делаешь конкретные исправления и сохраняешь отчёт, чтобы потом было понятно, что и почему правилось. Это не выполнение большого плана и не фиксы по ревью: вход может быть короткой строкой, баг-репортом, файлом плана или списком задач.
9
9
 
10
- ## Режимы вызова
11
-
12
- | Режим | Запуск | Что делает |
13
- |---|---|---|
14
- | По контексту | `eda-fix <что исправить>` | Делает фиксы по тексту пользователя |
15
- | По плану | `eda-fix docs/plans/<file>.md` | Делает фиксы по указанному плану |
16
-
17
10
  ## Вход из сообщения пользователя
18
11
 
19
12
  Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, задачу, путь к файлу, режим, ограничения и прямые указания.
@@ -41,11 +34,7 @@ description: 'Делает обычные фиксы по плану, файлу
41
34
  ## Этапы
42
35
 
43
36
  ### 1. Определить задачу
44
- Определи `$FIX_CONTEXT`:
45
- - если передан путь к файлу — прочитай его;
46
- - если это план из `docs/plans/` — используй его как план фикса;
47
- - если передан текст — используй его как контекст;
48
- - если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
37
+ Определи `$FIX_CONTEXT`: путь к файлу прочитай, план из `docs/plans/` используй как план фикса, текст используй как контекст. Если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
49
38
 
50
39
  ### 2. Прочитать рамку проекта
51
40
  Прочитай `docs/rules.md` и `docs/arch.md`, если есть, и строго следуй им. Если `$FIX_CONTEXT` ссылается на research, review, issue или другой файл — прочитай и его.
@@ -7,14 +7,6 @@ description: 'Мержит ветку из соседнего git worktree `{nam
7
7
 
8
8
  Мержишь ветку из соседнего worktree в текущую ветку. Этот скил не чистит worktree после merge: папка и ветка остаются на месте.
9
9
 
10
- ## Режимы вызова
11
-
12
- | Режим | Запуск | Что делает |
13
- |---|---|---|
14
- | По номеру | `eda-merge-worktree 1` | Мержит ветку из `{name}-work-1` |
15
- | По короткому имени | `eda-merge-worktree work-1` | Мержит ветку из `{name}-work-1` |
16
- | По полному имени | `eda-merge-worktree app-work-1` | Мержит ветку из указанного worktree |
17
-
18
10
  ## Вход из сообщения пользователя
19
11
 
20
12
  Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: номер worktree, короткое имя `work-<n>`, полное имя `{name}-work-<n>`, ограничения и прямые указания.
@@ -70,9 +62,7 @@ git rev-parse --abbrev-ref HEAD
70
62
 
71
63
  Из `git worktree list --porcelain` найди запись, у которой basename пути равен `$WORKTREE_NAME`.
72
64
 
73
- Для найденной записи определи:
74
- - `$SOURCE_WORKTREE_PATH`;
75
- - `$SOURCE_BRANCH` из строки `branch refs/heads/<name>`.
65
+ Для найденной записи определи `$SOURCE_WORKTREE_PATH` и `$SOURCE_BRANCH` из строки `branch refs/heads/<name>`.
76
66
 
77
67
  Если worktree не найден — остановись и покажи доступные варианты. Если исходный worktree в detached HEAD или ветку определить нельзя — остановись: нечего безопасно мержить по имени ветки.
78
68
 
@@ -115,12 +105,7 @@ git merge "$SOURCE_BRANCH"
115
105
 
116
106
  ### 6. Финал
117
107
 
118
- Короткое сообщение:
119
- - какая ветка смержена;
120
- - в какую текущую ветку;
121
- - из какого worktree;
122
- - статус результата (`merged`, `already up to date` или `conflict`);
123
- - явно: worktree и исходная ветка не удалялись.
108
+ Короткое сообщение: какая ветка смержена, в какую текущую ветку, из какого worktree, статус результата (`merged`, `already up to date` или `conflict`) и явно: worktree и исходная ветка не удалялись.
124
109
 
125
110
  ## Чего НЕ делать
126
111