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:
Sergey 2026-07-31 21:47:31 +03:00 committed by GitHub
parent 39de98dc95
commit f67a9298cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 36 additions and 2 deletions

View file

@ -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,

View file

@ -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`.

View 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 — это нарушило бы ссылки.