fix(run-pipeline): replace origin/master with origin/HEAD in templates B and C (#179)
* fix(run-pipeline): replace origin/master with origin/HEAD in templates B and C * docs(handoff): add handoff and ADR for run-pipeline origin/HEAD fix * docs(handoff): set PR number --------- Co-authored-by: opencode-agent <agent@opencode.local>
This commit is contained in:
parent
39de98dc95
commit
f67a9298cc
3 changed files with 36 additions and 2 deletions
|
|
@ -70,7 +70,7 @@ description: Autonomous PR pipeline executor. Delegates 7 phases to subagents, d
|
||||||
```
|
```
|
||||||
Review PR#M в текущем репо (pre-merge, режим docs).
|
Review PR#M в текущем репо (pre-merge, режим docs).
|
||||||
1. `gh pr checkout M`.
|
1. `gh pr checkout M`.
|
||||||
2. Анализируй структурные изменения: `git diff origin/master...HEAD --stat`.
|
2. Анализируй структурные изменения: `git diff origin/HEAD...HEAD --stat`.
|
||||||
3. Сравни с `docs/project-map/` — обнови если structural changes.
|
3. Сравни с `docs/project-map/` — обнови если structural changes.
|
||||||
4. Валидируй handoff `docs/handoff/pr-M-*.md`: 4 секции (Что сделано, Почему,
|
4. Валидируй handoff `docs/handoff/pr-M-*.md`: 4 секции (Что сделано, Почему,
|
||||||
Pending, Watch out) заполнены осмысленно (не пустые плейсхолдеры).
|
Pending, Watch out) заполнены осмысленно (не пустые плейсхолдеры).
|
||||||
|
|
@ -101,7 +101,7 @@ Review PR#M в текущем репо (pre-merge, режим docs).
|
||||||
```
|
```
|
||||||
Review PR#M в текущем репо.
|
Review PR#M в текущем репо.
|
||||||
1. `gh pr view M --json headRefName,body,title`.
|
1. `gh pr view M --json headRefName,body,title`.
|
||||||
2. `git diff origin/master...HEAD`.
|
2. `git diff origin/HEAD...HEAD`.
|
||||||
3. Load project skills: `find .opencode/skills/ -name "SKILL.md"`, грузи каждый
|
3. Load project skills: `find .opencode/skills/ -name "SKILL.md"`, грузи каждый
|
||||||
через `skill("<name>")`.
|
через `skill("<name>")`.
|
||||||
4. Проверь: code quality, architecture, error handling, security, testing,
|
4. Проверь: code quality, architecture, error handling, security, testing,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
# ADR-076: Replace origin/master with origin/HEAD in run-pipeline templates B and C (PR #179)
|
||||||
|
|
||||||
|
## Статус
|
||||||
|
Accepted (2026-07-31)
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
`.opencode/skills/run-pipeline/SKILL.md` содержал два шаблона для саб-агентов (Template B — docs-review, Template C — code_review) с захардкоженным `origin/master...HEAD`. На репозиториях с default branch `main` (а не `master`) это падает с `fatal: ambiguous argument 'origin/master...HEAD'`. PR #163 уже устранил аналогичную проблему в `docs-reviewer.md`, но `run-pipeline/SKILL.md` остался вне scope. Зеркало `~/.config/opencode/skills/run-pipeline/SKILL.md` рассинхронизировано не было (содержало те же устаревшие строки).
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
Заменить `origin/master...HEAD` → `origin/HEAD...HEAD` в обоих шаблонах (line 73 Template B, line 104 Template C) в repo-local `.opencode/` и в зеркале `~/.config/opencode/`. `origin/HEAD` — git-симлинк на default branch репо, детерминированно работает независимо от имени default branch (`master`/`main`).
|
||||||
|
|
||||||
|
## Альтернативы
|
||||||
|
- Полностью drop `origin/<branch>...HEAD` в пользу `gh pr diff M` — отклонено: меняет контракт invocation-prompt для саб-агентов и выходит за scope issue #164 (чистый fix).
|
||||||
|
- Hardcode `origin/main...HEAD` — отклонено: переносит баг на репо с `master`.
|
||||||
20
docs/handoff/pr-179-run-pipeline-origin-head-templates.md
Normal file
20
docs/handoff/pr-179-run-pipeline-origin-head-templates.md
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
pr: 179
|
||||||
|
title: fix(run-pipeline): replace origin/master with origin/HEAD in templates B and C
|
||||||
|
---
|
||||||
|
|
||||||
|
## Что сделано
|
||||||
|
- Заменены `origin/master...HEAD` → `origin/HEAD...HEAD` в `.opencode/skills/run-pipeline/SKILL.md`:
|
||||||
|
- Line 73 (Template B, docs-review): `git diff origin/master...HEAD --stat` → `git diff origin/HEAD...HEAD --stat`
|
||||||
|
- Line 104 (Template C, code_review): `git diff origin/master...HEAD` → `git diff origin/HEAD...HEAD`
|
||||||
|
- Синхронизировано зеркало `~/.config/opencode/skills/run-pipeline/SKILL.md` (идентичные замены на lines 73 и 104).
|
||||||
|
- Подтверждено: `grep -rn "origin/master" .opencode/` → 0 совпадений; `grep -rn "origin/HEAD" .opencode/skills/run-pipeline/SKILL.md` → 2 совпадения (lines 73, 104).
|
||||||
|
|
||||||
|
## Почему
|
||||||
|
PR #163 устранил `origin/master...HEAD` → `origin/HEAD...HEAD` в `docs-reviewer.md`, но в `run-pipeline/SKILL.md` остались два устаревших вхождения (Template B и Template C). Эти шаблоны копируются оркестратором в invocation-prompt саб-агентам. На репо с default branch `main` (как текущий репо) `origin/master...HEAD` падает с `fatal: ambiguous argument`. `origin/HEAD` детерминированно указывает на default branch независимо от его имени (`master`/`main`).
|
||||||
|
|
||||||
|
## Pending
|
||||||
|
—
|
||||||
|
|
||||||
|
## Watch out
|
||||||
|
- **ADR #076 коллизия нумерации (issue #176).** scaffold-handoff.sh вычисляет следующий номер ADR как `count(files) + 1`, а не `max(existing numbers) + 1`. В репо уже существовал `075-pr-178-*` (для PR #178 — хронологически позже), поэтому новый ADR для PR #164 получил `076` — номер больше, чем у PR #178. Это не блокирующая косметическая коллизия: ADR остаётся читаемым и однозначно связан с этим PR через slug. Не чинил (вне scope, см. issue #176). Не ренумеровал существующие ADR — это нарушило бы ссылки.
|
||||||
Loading…
Add table
Reference in a new issue