2.2 KiB
CODE_REVIEW: move-completed-tasks-to-complete-folder
Reviewed Files
scripts/status.py--_task_dirfallback (lines 246-249),cmd_transitionmove (lines 601-610)tests/test_move_completed.py-- 9 testsCHANGELOG.md-- task 9 entry
Findings
1. _task_dir fallback
The fallback checks base / "complete" / task_name when base / task_name doesn't exist. This is correct. The regular path takes priority over the completed path, so active tasks are always found first. Subtask paths (with "/") are not checked against the completed dir -- this is acceptable because subtasks are always parented to active tasks and are never completed independently.
Verdict: PASS
2. cmd_transition move
The move logic:
- Computes
tasks_root = task_path.parent-- this istasks/for a regular task - Creates
complete_dir = tasks_root / "complete"-- creates if missing - Refuses if
destalready exists - Renames
task_pathtodest
One edge case: if a task is human_intervention → complete, _auto_update_verdict_on_complete modifies VERDICT.md in task_path before the rename. The modified file is then moved to the completed location. Correct.
Verdict: PASS
3. Test coverage
9 tests cover:
_task_dirregular, fallback, and preference (3 tests)_all_task_dirsexclusion (1 test)- Directory move, creation, create-task refusal, transition refusal, state read (5 tests)
Verdict: PASS
4. Edge cases
--auditon completed tasks: Not affected because_all_task_dirsdoesn't scantasks/complete/.- Loop-owned tasks: If a loop's
current_taskpoints to a completed task, the audit at line 954 checks_task_dir(ltask, args.project).exists()which will find the completed task via fallback. Correct. --transitionfrom complete:LEGAL_TRANSITIONS.get("complete", [])returns[], so any transition is refused.--create-taskwith completed name:_task_dirfinds the completed path,task_path.exists()returns True, and the error is printed. Correct.
Verdict: PASS
Summary
All 4 review areas pass. The implementation is minimal, correct, and well-tested. 9 new tests. Full suite: 433 passed.
Overall verdict: APPROVED