B12: /harness-retro — срез метрик, поправки владельца, хвосты закрытия, корпус по сегментам (#29, 0.6.0) #30

Merged
aep merged 10 commits from feat/29-harness-retro into main 2026-10-24 09:08:01 +03:00
Showing only changes of commit e5c00a5442 - Show all commits

View File

@ -133,11 +133,11 @@
- **THEN** в выводе `--corrections` вместо токена стоит `<redacted>`
### Requirement: Хвосты чеклиста закрытия
`retro_leftovers.py <папка проекта>` SHALL искать хвосты по текущему состоянию каждого репозитория проекта (для workspace — из таблицы `| Каталог | Репозиторий | Роль |` в `CLAUDE.md`). Хвост — это:
`retro_leftovers.py <папка проекта>` SHALL искать хвосты по текущему состоянию каждого репозитория проекта (для workspace — из таблицы репозиториев в `CLAUDE.md`). Хвост — это:
- ветка `origin/<ветка>`, слитая в `origin/main`;
- локальная ветка, слитая или с upstream `gone`;
- worktree на такой ветке или `prunable`;
- `.superpowers/sdd/*` в основном checkout или в worktree такой ветки (в worktree активной задачи — не хвост);
- `.superpowers/sdd/*` в основном checkout или в worktree такой ветки;
- неархивный `openspec/changes/<id>/` в `origin/main`;
- отставший или грязный основной checkout.
@ -145,6 +145,10 @@
- **WHEN** ветка `feat/6-x` слита в `origin/main` и есть на `origin`
- **THEN** выводится хвост вида `remote-branch` с подсказкой `git push origin --delete feat/6-x`
#### Scenario: SDD workspace активной задачи
- **WHEN** worktree на неслитой ветке `feat/2` содержит `.superpowers/sdd/plan-y/`
- **THEN** этот каталог хвостом не считается
#### Scenario: Чистый репозиторий
- **WHEN** у репозитория нет слитых веток кроме main, нет worktree, SDD workspace, неархивных changes, и основной checkout совпадает с `origin/main`
- **THEN** список хвостов пуст