0.2.2: судья отличает правки воркера от грязи, которая была до него #2

Merged
anton merged 2 commits from fix/dirty-tree-evidence into main 2026-09-20 17:46:08 +03:00
Owner

Коммит c831b1c лежал НЕОТПРАВЛЕННЫМ в старом чекауте ~/pro/claude-plugins-root/foreman-supervisor: версии 0.2.0/0.2.1 уходили из другого чекаута и прошли мимо него. Дворецкий контура это и поймал (инвариант core: bin/foreman-claude.py изменён относительно замороженного скелета). Перенёс cherry-pick'ом, чтобы знание не умерло вместе с каталогом.

Суть правки: на первом реальном задании рабочее дерево держало 19 чужих незакоммиченных файлов; судья принял их за свидетельства этого прогона и на 20-й секунде выдал off track 85 % / needs human 80 % — политика остановила воркера, который ещё ничего не сделал. Прогрев не спасал, потому что грязное дерево считалось свидетельством.

Прогон: 19 passed in 0.19s.

Коммит `c831b1c` лежал НЕОТПРАВЛЕННЫМ в старом чекауте `~/pro/claude-plugins-root/foreman-supervisor`: версии 0.2.0/0.2.1 уходили из другого чекаута и прошли мимо него. Дворецкий контура это и поймал (инвариант `core`: `bin/foreman-claude.py` изменён относительно замороженного скелета). Перенёс cherry-pick'ом, чтобы знание не умерло вместе с каталогом. Суть правки: на первом реальном задании рабочее дерево держало 19 чужих незакоммиченных файлов; судья принял их за свидетельства этого прогона и на 20-й секунде выдал off track 85 % / needs human 80 % — политика остановила воркера, который ещё ничего не сделал. Прогрев не спасал, потому что грязное дерево считалось свидетельством. Прогон: `19 passed in 0.19s`.
anton added 2 commits 2026-09-20 17:46:02 +03:00
Found on the first real job (the investigation dataset): its tree held 19 unrelated
uncommitted files — someone else's webfetch cache and an edit in progress. The judge
was shown them as the evidence of this run, so at 20 seconds it reported work off
track 85% / needs human 80% and the policy stopped a worker that had done nothing
wrong yet. Warm-up did not save it either, because a dirty tree counted as evidence.

Now the first assessment records the tree's baseline, and only files appearing after
it count as this run's work. The prompt states both sets separately, so the judge can
see what the worker did and what it merely inherited.

Also renames the evidence field to changed_by_this_run — the old name invited exactly
the reading that caused the false stop.

14 offline tests pass, including the two new ones for this case.

Refs kotkan/dreamcore-mp#179

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Коммит нашёлся неотправленным в старом чекауте ~/pro/claude-plugins-root/foreman-supervisor
(локальный c831b1c, в origin его не было — версии 0.2.0/0.2.1 ушли из другого чекаута мимо него).
Перенесён сюда cherry-pick'ом, чтобы знание не потерялось вместе с тем каталогом.

Суть правки автора: на первом реальном задании дерево держало 19 чужих незакоммиченных файлов,
судья принял их за свидетельства этого прогона и на 20-й секунде дал off track 85 % / needs human
80 % — политика остановила воркера, который ещё ничего не сделал. Прогрев не спасал: грязное
дерево считалось свидетельством.

Прогон: 19 passed.
anton merged commit 1d3f92617e into main 2026-09-20 17:46:08 +03:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kotkan/claude-plugin-foreman-supervisor#2