diff --git a/.opencode/skills/run-pipeline/SKILL.md b/.opencode/skills/run-pipeline/SKILL.md index fd5da36..259dc3f 100644 --- a/.opencode/skills/run-pipeline/SKILL.md +++ b/.opencode/skills/run-pipeline/SKILL.md @@ -70,7 +70,7 @@ description: Autonomous PR pipeline executor. Delegates 7 phases to subagents, d ``` Review PR#M в текущем репо (pre-merge, режим docs). 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. 4. Валидируй handoff `docs/handoff/pr-M-*.md`: 4 секции (Что сделано, Почему, Pending, Watch out) заполнены осмысленно (не пустые плейсхолдеры). @@ -101,7 +101,7 @@ Review PR#M в текущем репо (pre-merge, режим docs). ``` Review PR#M в текущем репо. 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"`, грузи каждый через `skill("")`. 4. Проверь: code quality, architecture, error handling, security, testing, diff --git a/docs/decisions/076-pr-179-run-pipeline-origin-head-templates.md b/docs/decisions/076-pr-179-run-pipeline-origin-head-templates.md new file mode 100644 index 0000000..d09c246 --- /dev/null +++ b/docs/decisions/076-pr-179-run-pipeline-origin-head-templates.md @@ -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/...HEAD` в пользу `gh pr diff M` — отклонено: меняет контракт invocation-prompt для саб-агентов и выходит за scope issue #164 (чистый fix). +- Hardcode `origin/main...HEAD` — отклонено: переносит баг на репо с `master`. \ No newline at end of file diff --git a/docs/handoff/pr-179-run-pipeline-origin-head-templates.md b/docs/handoff/pr-179-run-pipeline-origin-head-templates.md new file mode 100644 index 0000000..b0f6c53 --- /dev/null +++ b/docs/handoff/pr-179-run-pipeline-origin-head-templates.md @@ -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 — это нарушило бы ссылки. \ No newline at end of file