fix(bots): qa-close bug (Closes→Refs) + minor-verdict → follow-up task #712

Merged
lekss361 merged 1 commit from fix/worker-pr-refs-not-closes into main 2026-05-30 11:15:34 +00:00
Collaborator

Найдено живым тестом

Reviewer автономно смержил #710 → linked issue #696 закрылся ДО qa (state=closed + status/qa) → qa-pickup (status/qa & state=open) его не видит → smoke не запустится. #692-694 так же застряли.

Фиксы

1. Closes → Refs (qa-close bug)

  • Worker PR-body писал Closes #N → merge авто-закрывал issue. По FSM закрывать должен qa на status/done, не merge. Теперь worker пишет Refs #N (non-closing) → issue остаётся open → reviewer ставит status/qa → qa подхватывает (open) → smoke → закрывает.
  • auto-backend.md PR-template + git-pr.md note (человеческий PR = Closes; bot = Refs).

2. MINOR → follow-up task (запрос)

  • Reviewer на 🟡 MINOR теперь, кроме merge, заводит ОДИН consolidated follow-up issue для actionable-minor'ов: scope/X status/ready priority/p3 tech-debt, body = work-prompt + "Follow-up из PR #N". Косметику (whitespace/naming) не заводит.
  • auto-code-reviewer.md (ACT+severity) + work-as-reviewer.md. Labels priority/p3 (id63) + tech-debt заведены.

Test plan

  • Новый worker PR → body Refs #N (не Closes) → после merge issue OPEN + status/qa
  • qa-окно подхватывает open status/qa → smoke → status/done + close
  • reviewer MINOR-verdict → создаётся 1 follow-up issue (не спам)

⚠️ Трогает auto-code-reviewer.mdself-extending guard: reviewer-bot НЕ авто-смержит, нужен human merge (это правильно).

## Найдено живым тестом Reviewer автономно смержил #710 → linked issue #696 **закрылся ДО qa** (state=closed + status/qa) → qa-pickup (`status/qa & state=open`) его не видит → smoke не запустится. #692-694 так же застряли. ## Фиксы **1. Closes → Refs (qa-close bug)** - Worker PR-body писал `Closes #N` → merge авто-закрывал issue. По FSM закрывать должен **qa** на `status/done`, не merge. Теперь worker пишет `Refs #N` (non-closing) → issue остаётся open → reviewer ставит `status/qa` → qa подхватывает (open) → smoke → закрывает. - `auto-backend.md` PR-template + `git-pr.md` note (человеческий PR = Closes; bot = Refs). **2. MINOR → follow-up task** (запрос) - Reviewer на 🟡 MINOR теперь, кроме merge, заводит ОДИН consolidated follow-up issue для actionable-minor'ов: `scope/X status/ready priority/p3 tech-debt`, body = work-prompt + "Follow-up из PR #N". Косметику (whitespace/naming) не заводит. - `auto-code-reviewer.md` (ACT+severity) + `work-as-reviewer.md`. Labels `priority/p3` (id63) + `tech-debt` заведены. ## Test plan - [ ] Новый worker PR → body `Refs #N` (не Closes) → после merge issue OPEN + `status/qa` - [ ] qa-окно подхватывает open `status/qa` → smoke → `status/done` + close - [ ] reviewer MINOR-verdict → создаётся 1 follow-up issue (не спам) ⚠️ Трогает `auto-code-reviewer.md` → **self-extending guard: reviewer-bot НЕ авто-смержит, нужен human merge** (это правильно).
bot-reviewer added 1 commit 2026-05-30 11:11:27 +00:00
Найдено живым тестом (reviewer смержил #710 → linked issue #696 закрылся ДО qa).

1. Closes→Refs: worker PR-body писал `Closes #N` → merge авто-закрывал issue →
   qa-pickup (status/qa & state=open) закрытый не видел → smoke не запускался.
   FSM: issue закрывает QA на status/done, не merge. Фикс: worker пишет `Refs #N`.
   - auto-backend.md PR-template + git-pr.md note.

2. MINOR → follow-up task (по запросу): reviewer на 🟡 MINOR теперь, кроме merge,
   заводит ОДИН consolidated follow-up issue для actionable-minor'ов
   (scope/X status/ready priority/p3 tech-debt; body = work-prompt + "Follow-up из PR #N").
   Косметику (whitespace/naming) не заводит — не флудить очередь.
   - auto-code-reviewer.md ACT+severity + work-as-reviewer.md.
   - Заведены labels priority/p3 (id63) + tech-debt.
Author
Collaborator

🔴 BLOCK — human merge required (not auto-mergeable by reviewer bot). Two independent hard-rule triggers:

  1. Self-extending PR. All 4 changed files are guarded workflow/persona files: .claude/agents/auto-code-reviewer.md (reviewer's own merge authority), .claude/agents/auto-backend.md (worker persona/pipeline), .claude/commands/work-as-reviewer.md (persona), .claude/rules/git-pr.md (auto-merge policy). The reviewer bot must never merge changes to its own pipeline — by design.
  2. Author is bot-reviewer (my own identity). The bot never merges its own PR.

This is the correct guard firing — the PR body itself flags it. Not a defect in the change.

Content assessment (advisory, to ease human review): the fix is coherent and addresses a real FSM bug observed live — Closes #N in worker PR bodies auto-closes the linked issue on merge before qa runs, so the qa-pickup query (status/qa & state=open) never sees it and smoke never fires. Switching bot PRs to non-closing Refs #N keeps the issue open through status/qa → qa closes it on status/done. The MINOR→follow-up-task addition is scoped sensibly (one consolidated issue, cosmetics excluded).

→ Flagged status/blocked + needs-human for human merge. Recommend a human verify the diff and merge directly.

<!-- gendesign-review-bot: sha=627189a verdict=changes --> 🔴 **BLOCK — human merge required (not auto-mergeable by reviewer bot).** Two independent hard-rule triggers: 1. **Self-extending PR.** All 4 changed files are guarded workflow/persona files: `.claude/agents/auto-code-reviewer.md` (reviewer's own merge authority), `.claude/agents/auto-backend.md` (worker persona/pipeline), `.claude/commands/work-as-reviewer.md` (persona), `.claude/rules/git-pr.md` (auto-merge policy). The reviewer bot must never merge changes to its own pipeline — by design. 2. **Author is `bot-reviewer`** (my own identity). The bot never merges its own PR. This is the correct guard firing — the PR body itself flags it. **Not a defect in the change.** Content assessment (advisory, to ease human review): the fix is coherent and addresses a real FSM bug observed live — `Closes #N` in worker PR bodies auto-closes the linked issue on merge *before* qa runs, so the qa-pickup query (`status/qa & state=open`) never sees it and smoke never fires. Switching bot PRs to non-closing `Refs #N` keeps the issue open through `status/qa` → qa closes it on `status/done`. The MINOR→follow-up-task addition is scoped sensibly (one consolidated issue, cosmetics excluded). → Flagged `status/blocked` + `needs-human` for human merge. Recommend a human verify the diff and merge directly.
bot-reviewer added the
needs-human
status/blocked
labels 2026-05-30 11:13:34 +00:00
lekss361 merged commit 3e3112f2c3 into main 2026-05-30 11:15:34 +00:00
lekss361 deleted branch fix/worker-pr-refs-not-closes 2026-05-30 11:15:34 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#712
No description provided.