@gian-tiaga/eda 3.1.1 → 3.2.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/README.md
CHANGED
|
@@ -58,7 +58,7 @@ eda update-all ~/Code
|
|
|
58
58
|
| `eda-manual-test` | Делает ручную smoke/acceptance-проверку после изменений: основной чеклист строит по выполненной задаче и связанному плану/issue/review/fix-отчёту, затем сверяет фактический diff. Применимая business-карточка может добавить только относящийся к задаче инвариант или сценарий; несвязанные карточки не загружаются. Не правит код, не пишет автотесты и не коммитит | `docs/artifacts/manual-tests/` |
|
|
59
59
|
| `eda-polish` | Оркестрирует доводку изменений: запускает полное `eda-review`, затем `eda-fix-by-review` и повторяет цикл до `clean`, отсутствия находок и оценки не ниже 95/100 либо до лимита 5 итераций. Все находки исправляются. Каждый шаг идёт в изолированном нативном субагенте. Не коммитит | `docs/artifacts/reviews/`, `docs/artifacts/review-fixes/` |
|
|
60
60
|
| `eda-send-review` | На `sonnet` / `gpt-5.6-terra` отправляет ревью на GitHub PR через `gh` всегда в едином формате: общий комментарий-сводка плюс комментарии к строкам кода. Без явно указанного типа использует `comment`; `approve` и `request-changes` берёт только из контекста текущего вызова. По настройке может скрыть предыдущие сводки eda-send-review и зарезолвить их inline-треды. По умолчанию шлёт все пункты. Claude-модель закрепляется при установке; Codex-модель хранится как рекомендуемый будущий override | (комментарий в PR) |
|
|
61
|
-
| `eda-commit` | Работает как лёгкий оркестратор одного `haiku` / `gpt-5.6-luna` агента: тот сам собирает git-контекст, выбирает один логический набор файлов, пишет сообщение, точечно коммитит и выполняет явно заданные push/PR/merge-действия. В Claude Code сам оркестратор закреплён за `haiku`; в Codex остаётся на активной модели сессии из-за отсутствия per-skill override. При неоднозначном составе или вероятном секрете агент блокируется до индексации. Если продолжение не задано, предлагает применимые варианты | (git, опционально GitHub PR) |
|
|
61
|
+
| `eda-commit` | Работает как лёгкий оркестратор одного `haiku` / `gpt-5.6-luna` агента: тот сам собирает git-контекст, выбирает один логический набор файлов, пишет сообщение, точечно коммитит и выполняет явно заданные push/PR/merge-действия. В Claude Code сам оркестратор закреплён за `haiku`; в Codex остаётся на активной модели сессии из-за отсутствия per-skill override. При неоднозначном составе или вероятном секрете агент блокируется до индексации. После любого push всегда возвращает ссылку — на существующий PR или на его создание — и спрашивает, создавать ли PR, если его нет. Если продолжение не задано, предлагает применимые варианты | (git, опционально GitHub PR) |
|
|
62
62
|
| `eda-worktree` | На `haiku` / `gpt-5.6-luna` создаёт через пакетного агента git worktree рядом с основным проектом в папке `{name}-work-{n}` и одноимённую ветку. Базу берёт из аргумента или спрашивает | соседняя папка `{name}-work-{n}` |
|
|
63
63
|
| `eda-merge-worktree` | На `haiku` / `gpt-5.6-luna` мержит через пакетного агента ветку из соседнего worktree в текущую ветку. Принимает номер `1`, короткое имя `work-1` или полное имя `{name}-work-1`. Worktree и ветку после merge не удаляет | (git) |
|
|
64
64
|
| `eda-prepare-ai` | Выполняет технический bootstrap нового или существующего проекта: проектирует архитектуру, строгие правила и профиль инструментов, проходит полный каталог автоматических проверок, подбирает применимые AI-скилы, роли и MCP, затем создаёт AI-документацию. Подтверждённые требования, стек и архитектурные драйверы из `eda-new-project` принимает как обязательный вход и не переоткрывает без обнаруженного конфликта. Для пустого проекта не выдумывает reference-карточки и не выдаёт неустановленные инструменты за доступные | `docs/rules.md`, `docs/arch.md`, `docs/references.md`, `docs/references/`, `AGENTS.md`, `CLAUDE.md` |
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
2. Прочитай последние 5–10 коммитов и определи наблюдаемый стиль сообщений.
|
|
35
35
|
3. Получи текущую ветку, upstream, remotes и основную ветку из `origin/HEAD`.
|
|
36
36
|
4. Прочитай `AGENTS.md`, `CLAUDE.md`, `docs/rules.md`, `docs/arch.md` и связанные артефакты из `docs/**`, если они есть и применимы к изменениям.
|
|
37
|
-
5. Проверяй существующий PR текущей
|
|
37
|
+
5. Проверяй существующий PR текущей ветки, когда `USER_REQUEST` или `REQUESTED_ACTIONS` упоминает PR или push.
|
|
38
38
|
6. Определи один логический набор файлов, соответствующий запросу. Отдели несвязанные пользовательские изменения и не включай их.
|
|
39
39
|
7. Проверь выбранные изменения на вероятные секреты, токены, `.env` и локальные артефакты.
|
|
40
40
|
|
|
@@ -57,6 +57,9 @@
|
|
|
57
57
|
- Для push используй существующий upstream, иначе `git push -u origin <branch>`.
|
|
58
58
|
- Для PR определи base по `origin/HEAD`, сначала проверь текущую ветку через `gh pr view`; существующий PR не дублируй.
|
|
59
59
|
- Если PR отсутствует, создай его через `gh pr create`, затем получи фактические номер и URL через `gh`; не угадывай ссылку.
|
|
60
|
+
- После любого выполненного push всегда возвращай ссылку. Если PR текущей ветки есть — `pr.status: existing` и его фактический URL. Если PR нет — `pr.status: absent` и `pr.create_url`: ссылка на создание PR, собранная из фактического URL репозитория (`gh repo view`), base из `origin/HEAD` и имени ветки.
|
|
61
|
+
- Если PR нет, а его создание не запрошено, сам PR не создавай: верни `completed`, `pr.create_url`, вопрос «Создать PR?» и варианты «создать PR» / «оставить ссылку на создание».
|
|
62
|
+
- Если репозиторий не на GitHub или `gh` недоступен, верни `pr.create_url: null` и назови причину в `error`.
|
|
60
63
|
- Force-push всегда требует отдельного подтверждения. Force-push в `main` или `master` запрещён.
|
|
61
64
|
- Если continuation не задан, ничего после коммита не выполняй и верни применимые варианты для вопроса пользователя.
|
|
62
65
|
|
|
@@ -79,9 +82,10 @@ push:
|
|
|
79
82
|
remote: <remote | null>
|
|
80
83
|
branch: <branch | null>
|
|
81
84
|
pr:
|
|
82
|
-
status: skipped | existing | created | failed
|
|
85
|
+
status: skipped | existing | created | absent | failed
|
|
83
86
|
number: <number | null>
|
|
84
87
|
url: <url | null>
|
|
88
|
+
create_url: <url | null>
|
|
85
89
|
merge:
|
|
86
90
|
status: skipped | completed | failed
|
|
87
91
|
current_branch: <branch>
|
|
@@ -98,6 +102,6 @@ options: []
|
|
|
98
102
|
|
|
99
103
|
- `empty` — в рабочем дереве нет изменений для коммита;
|
|
100
104
|
- `committed` — коммит создан, но в `REQUESTED_ACTIONS` не было продолжения; верни применимые варианты;
|
|
101
|
-
- `completed` — вся явно запрошенная цепочка выполнена либо пользователь после коммита выбрал «ничего больше»;
|
|
105
|
+
- `completed` — вся явно запрошенная цепочка выполнена либо пользователь после коммита выбрал «ничего больше»; при `pr.status: absent` после push здесь остаётся вопрос про создание PR;
|
|
102
106
|
- `partial` — часть разрешённой цепочки выполнена, следующая операция завершилась ошибкой без нового вопроса;
|
|
103
107
|
- `blocked` — для безопасного продолжения нужен один ответ пользователя.
|
package/package.json
CHANGED
|
@@ -66,14 +66,13 @@ REQUESTED_ACTIONS:
|
|
|
66
66
|
- `empty` — сообщи, что коммитить нечего, и закончи;
|
|
67
67
|
- `blocked` — задай только конкретный вопрос агента и продолжи его после ответа;
|
|
68
68
|
- `committed` — если продолжение не было задано, задай вопрос из следующего этапа;
|
|
69
|
-
- `completed`
|
|
69
|
+
- `completed` — если push выполнен, а PR нет, задай вопрос из следующего этапа, иначе переходи к финалу;
|
|
70
|
+
- `partial` — переходи к финалу.
|
|
70
71
|
|
|
71
72
|
При продолжении передай тому же агенту исходный `$USER_REQUEST`, актуальные `$REQUESTED_ACTIONS`, полный предыдущий результат и новый ответ пользователя. Не теряй commit hash и уже выполненные действия.
|
|
72
73
|
|
|
73
74
|
### 2. Решить, нужен ли вопрос после коммита
|
|
74
75
|
|
|
75
|
-
Если `$REQUESTED_ACTIONS` не пуст и агент выполнил всю цепочку, сразу переходи к финалу.
|
|
76
|
-
|
|
77
76
|
Если `$REQUESTED_ACTIONS` пуст и статус `committed`, спроси пользователя, используя только применимые варианты, которые вернул executor:
|
|
78
77
|
|
|
79
78
|
- push;
|
|
@@ -81,6 +80,10 @@ REQUESTED_ACTIONS:
|
|
|
81
80
|
- merge в основную ветку, переключение и удаление текущей ветки;
|
|
82
81
|
- ничего больше.
|
|
83
82
|
|
|
83
|
+
Если push выполнен, а PR текущей ветки нет (`pr.status: absent`), спроси один раз, создавать ли PR: «создать PR» или «оставить ссылку на создание». Не спрашивай, если PR уже есть или пользователь его запретил.
|
|
84
|
+
|
|
85
|
+
Если других вопросов нет и вся запрошенная цепочка выполнена, сразу переходи к финалу.
|
|
86
|
+
|
|
84
87
|
Передай выбор тому же `eda-commit-executor` вместе с полным предыдущим результатом. Основной агент команды не выполняет.
|
|
85
88
|
|
|
86
89
|
### 3. Финал
|
|
@@ -93,6 +96,8 @@ REQUESTED_ACTIONS:
|
|
|
93
96
|
- текущую ветку;
|
|
94
97
|
- оставшиеся незакоммиченные файлы.
|
|
95
98
|
|
|
99
|
+
Если push выполнен, ссылка обязательна всегда: URL существующего или созданного PR, иначе `pr.create_url` — ссылку на создание PR. Если executor вернул обе ссылки пустыми, прямо скажи, что ссылку получить не удалось, и назови причину.
|
|
100
|
+
|
|
96
101
|
Для `partial` сначала назови выполненные действия, затем ошибку и следующий безопасный шаг.
|
|
97
102
|
|
|
98
103
|
## Чего НЕ делать
|
|
@@ -102,5 +107,6 @@ REQUESTED_ACTIONS:
|
|
|
102
107
|
- Пересказывать предыдущий результат вместо передачи полного YAML при продолжении.
|
|
103
108
|
- Терять начало `$USER_REQUEST` из-за последующего вопроса или ответа.
|
|
104
109
|
- Спрашивать про push или PR, если пользователь уже явно приказал выполнить их.
|
|
110
|
+
- Заканчивать выполненный push без ссылки на PR или на его создание.
|
|
105
111
|
- Отключать hooks, использовать `--amend`, делать force-push в `main`/`master` или создавать дубликат PR.
|
|
106
112
|
- Делать ревью или править логику кода — это другие скилы.
|