Repository navigation
Fix the tasks eval seed aborting a run once an agent changes the done task - #3787
Conversation
Code Review SummaryNet positive. The tick, set status, untick sequence is sound against the FindingsCritical IssuesNone. Suggested Improvements
Verified, no change needed:
Nitpicks
Tests and verification claimsA unit test is not reasonable here: the failure is an interaction with a live daemon's play rules, and the seed's other pieces have the same property. The PR's verification (seed run twice against the failing state, a 1-rep run that went through all groups, scripts tier) is proportionate for this change. The evidence does not cover the two cases above, since the agent in that run only changed the done task. The claim that the reset is idempotent "whatever an agent did" is stronger than what was tested. AGENTS.md complianceNo lint suppression, no RecommendationApprove with follow-ups: merge is fine as a net improvement. Fold the box scoping into this PR if cheap (it is a few lines); the review and decision resets are worth a fix or an explicit "purge between groups" statement in the same file. |
malibio
left a comment
There was a problem hiding this comment.
Review posted above. Verdict: approve with follow-ups (net positive; scope the box lookup to the task's children, and the review/decision status resets can still be rejected by core play rules). Not merging.
Review addressed (commit 63f26c2)Addressed
Verification (live daemon, because the seed needs one): after a cancelled review task, a reopened done task, a superseded decision and a same-worded box under another task, three seed passes ran with no abort. Review Skipped: none. Scripts tier: 1544 pass. Re-Review DecisionDecision: NO RE-REVIEW NEEDED Rationale: The reviewer approved the base change and called it safe to merge. The follow-ups are confined to a test fixture's seed, and each one was exercised directly against a live daemon in the exact failing state the review described, rather than argued from reading the code. 🤖 Generated with Claude Code |
…seed survives an agent changing it (follows #3763) The seed set the reported task back to done with a plain status update. A play rule refuses a change to done while a checkbox under the task is unchecked, so once an agent had changed that task's status, the next group's seed was rejected and the whole run aborted as an environment fault. The box is now ticked through its content, the status set, and the box unticked again. Verified twice against a live daemon in the state that failed, and by a 1-rep run in which the first scenario's agent changed the task. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…nd decided nodes around their rules - The unticked box is found among the done task's own children, so a box of the same wording an agent made under another task is never ticked in its place. - The review task is reset to in_progress with its blocking edge dropped around the write (a play rule refuses a move to in_progress while a blocker is open); the edge is recorded again after. - The decision's status applies on creation only: the daemon will not move a superseded decision back to accepted, and no later group reads it. - The doc comments say which statuses are put back. The checkbox marker regex is one constant. Verified live against a daemon after a cancelled review task, a reopened done task, a superseded decision and a same-worded box under another task: no abort, the right nodes reset, the stranger box untouched. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
63f26c2 to
a61a3c8
Compare
Summary
Fixes a defect in the
eval:tasksseed that landed in #3783 (issue #3763, already closed).The seed put the reported task back to
donewith a plain status update. A core play rule refuses a change todonewhile a checkbox under the task is unchecked, so once an agent had changed that task's status the next group's seed was rejected and the whole run aborted as an environment fault (exit 2, no results file):The box is now ticked through its content (
checkedis derived from the content and cannot be written), the status set, and the box unticked again. The task ends as done with one unticked box, which is the inconsistency scenario 1 reports.Verification
done, box- [ ], both passes.eval:tasksrun on this change: the first scenario's agent changed the done task (update_task_status), and every later group seeded and scored. No environment fault.Result of that 1-rep run (rewritten, developer-workflow scenario content; E4B)
pass^1 1/5, the same shape as the 3-rep baseline in #3783 (that baseline was measured on the previous wording).
bug-not-reproduciblepasses only because itscreate_nodewas refused. The other four fail for the reasons recorded in #3784.Not covered
The seed itself needs a daemon, so the fix is covered by the live runs above and not by a unit test.
🤖 Generated with Claude Code