Три задачи в temp-репозитории: implementer'ы deepseek-flash, все ревью deepseek-v4-pro. Ревьюер Task 2 независимо нашёл T2.1 (медиана чётной длины противоречит спеке) и T2.2 (нет теста), fix-раунд 1 → 186575c, скоуп-ре-ревью APPROVED, финальное ревью ветки APPROVED. Режим 2 (фоновый контроллер, глубина 2) проверен отдельной пробой: вызов subagent из контроллера прошёл. Артефакты прогона — openspec/changes/dsh-sdd/trial/ (план, спека, брифы, отчёты, ledger), результаты — design.md. По урокам прогона skill sdd уточнён: DONE_WITH_CONCERNS при замеченном расхождении, число тестов в плане — ориентир, повтор при ошибке валидации provider/model. Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
# Review: Task 2 (median)
|
||
|
||
Ревьюер проверял поведение по `SPEC.md` независимо, не полагаясь на concerns
|
||
implementer'а.
|
||
|
||
## Проверенные требования SPEC.md
|
||
|
||
| Требование | Результат |
|
||
|---|---|
|
||
| Нечётная длина — средний элемент | OK: `median([3,1,2]) == 2.0` |
|
||
| Чётная длина — среднее двух средних | **НАРУШЕНО** |
|
||
| Пустой список — `ValueError("empty")` | OK: тип и сообщение совпадают |
|
||
| Не мутирует `values` | OK: `sorted()` копирует, вход не меняется |
|
||
| Возвращает `float` | OK |
|
||
|
||
## Тесты
|
||
|
||
`python3 -m unittest discover -s tests` → `Ran 4 tests ... OK` (exit 0).
|
||
4 теста проходят, но чётная длина не покрыта, поэтому нарушение спеки не
|
||
ловится.
|
||
|
||
## Findings
|
||
|
||
- `T2.1` — `src/stats.py:15` — при чётной длине `median` возвращает верхний
|
||
средний элемент `float(xs[n // 2])`, а `SPEC.md:15` требует среднее двух
|
||
средних: `median([1,2])` → `2.0` вместо `1.5`, `median([1,2,3,4])` → `3.0`
|
||
вместо `2.5`. Исправить: для чётного `n` вернуть
|
||
`float(xs[n//2 - 1] + xs[n//2]) / 2`.
|
||
- `T2.2` — `tests/test_stats.py` — нет теста на чётную длину, поэтому
|
||
нарушение `T2.1` не ловится. Добавить тест `median([1,2]) == 1.5` (и
|
||
`median([1,2,3,4]) == 2.5`) по требованию `SPEC.md:15`.
|
||
|
||
## VERDICT: CHANGES_REQUESTED
|
||
|
||
Находки: `T2.1`, `T2.2`.
|