Archive completed tasks, add cleanup commands, self-documenting dashboard UI
CI / build (push) Has been cancelled

- Archive 79 completed framework-dev tasks from tasks/ -> tasks/complete/
- status.py: add --cleanup-done and --install-cleanup-schedule commands
- Add scripts/automaton-cleanup.sh for periodic task archiving
- Dashboard: rename 'Background' tab -> 'Agent', 'Cleanup' agent -> 'Completed Task Archiver', remove redundant group headers and pill badges, dim inactive agent placeholders
- .rules.md: add Self-Documenting UI Names rule
- New tests: test_cleanup_done.py, expanded test_app.py and test_task.py
This commit is contained in:
Lap Tran
2026-06-24 22:43:33 -04:00
parent e13513faaa
commit 4a2301b077
572 changed files with 856 additions and 101 deletions
@@ -0,0 +1 @@
complete
@@ -0,0 +1,2 @@
research:approved|2026-06-22T14:28:48.687322+00:00|user
code_review:approved|2026-06-22T14:36:53.683838+00:00|user
@@ -0,0 +1,12 @@
# Adversarial Bug Report: fix-test-plan-phase-mapping
## Attack Vectors Tested
1. **Task with both TEST_PLAN.md and IMPLEMENTATION.md**: IMPLEMENTATION.md is checked first in both status.py and task.py, so it correctly maps to `code_review` — no regression
2. **Task with TEST_PLAN.md only**: Maps to `test_design` — correct
3. **Task with TEST_PLAN.md and CODE_REVIEW.md**: CODE_REVIEW.md checked first → `bug_find` — correct
4. **Case sensitivity of filenames**: Artifact check uses exact string match — `test_plan.md` (lowercase) would not match `TEST_PLAN.md` — this is existing behavior, not a new issue
## Findings
No bugs found.
## Verdict: PASS
@@ -0,0 +1,9 @@
# Bug Report: fix-test-plan-phase-mapping
## Scope
Reviewed `scripts/status.py` and `automaton/dashboard/core/task.py` for TEST_PLAN.md phase mapping.
## Findings
No bugs found. Both locations now correctly map TEST_PLAN.md to `test_design`. Tasks with both TEST_PLAN.md and IMPLEMENTATION.md still correctly map to `code_review` (IMPLEMENTATION.md checked first).
## Verdict: PASS
@@ -0,0 +1,19 @@
# Code Review: fix-test-plan-phase-mapping
## Reviewed Files
- `scripts/status.py` (line 348-349: `_infer_state_from_artifacts()`)
- `automaton/dashboard/core/task.py` (line 548-549: `determine_task_state()`)
- `tests/test_task.py`
## Changes
Changed `TEST_PLAN.md` mapping from `implement` → `test_design` in both `status.py` and dashboard `task.py`.
## Analysis
- **Correctness**: `TEST_PLAN.md` is produced during the `test_design` phase, not `implement`. The workflow is: `test_design` → (approval) → `implement`. TEST_PLAN.md is the output of `test_design`, so it should map to `test_design`.
- **Consistency**: Both `status.py` and dashboard `task.py` now use the same mapping
- **Test updates**: Existing tests updated to assert `TEST_DESIGN` instead of `IMPLEMENT`, and new test added for `--upgrade` inference
- **No regression**: Tasks with both TEST_PLAN.md and IMPLEMENTATION.md still correctly map to `code_review` (because IMPLEMENTATION.md is checked first)
## Verdict: PASS
The fix is correct, minimal, and consistent across both enforcement and dashboard code.
@@ -0,0 +1,12 @@
# Doc Review: fix-test-plan-phase-mapping
## Documentation Impact
No documentation changes needed. The phase mapping fix aligns the code with the documented workflow (TEST_PLAN.md is produced during test_design phase, not implement).
## Checklist
- [x] AGENTS.md LEGAL_TRANSITIONS already show `test_design` → `implement` (TEST_PLAN.md is test_design output)
- [x] prompts/workflow.md phase descriptions already correct
- [x] No user-facing documentation referenced the old (buggy) mapping
- [x] CHANGELOG.md will be updated for the release
## Verdict: PASS
@@ -0,0 +1,22 @@
# Implementation: fix-test-plan-phase-mapping
## Bug
Both `status.py:_infer_state_from_artifacts()` and the dashboard's `determine_task_state()` mapped `TEST_PLAN.md` to the `implement` phase. But `TEST_PLAN.md` is produced during the `test_design` phase, not `implement`. This caused:
- `--upgrade` to bootstrap incorrect `.state` for tasks with TEST_PLAN.md
- Dashboard to show `IMPLEMENT` instead of `TEST_DESIGN` for tasks that have a test plan but no implementation yet
## Fix
Changed the mapping in both locations:
1. `scripts/status.py:348-349`: `TEST_PLAN.md` → `test_design` (was `implement`)
2. `automaton/dashboard/core/task.py:548-549`: `TEST_PLAN.md` → `TaskState.TEST_DESIGN` (was `TaskState.IMPLEMENT`)
## Files Changed
- `scripts/status.py` (line 348-349): Changed return value from `"implement"` to `"test_design"`
- `automaton/dashboard/core/task.py` (line 548-549): Changed return from `TaskState.IMPLEMENT` to `TaskState.TEST_DESIGN`
- `tests/test_task.py`: Updated `test_implementation_from_test_plan` and `test_test_plan_shows_implement` to assert `TEST_DESIGN` instead of `IMPLEMENT`
## Tests
- `test_implementation_from_test_plan`: Now asserts `TaskState.TEST_DESIGN`
- `test_test_plan_shows_test_design` (renamed from `test_test_plan_shows_implement`): Asserts `TaskState.TEST_DESIGN`
- `test_test_plan_maps_to_test_design` in `test_status.py`: Verifies `--upgrade` infers `test_design` for TEST_PLAN.md
- All 249 tests pass
@@ -0,0 +1,13 @@
# Spec: fix-test-plan-phase-mapping
## Problem
`scripts/status.py:344` (`_infer_state_from_artifacts`) maps `TEST_PLAN.md` (without `IMPLEMENTATION.md`) to `"implement"`. But `TEST_PLAN.md` is the artifact of the `test_design` phase. The dashboard's `task.py:510-511` has the same mapping.
## Fix
Map `TEST_PLAN.md` (without `IMPLEMENTATION.md`) to `"test_design"` in both `status.py:_infer_state_from_artifacts()` and `automaton/dashboard/core/task.py:determine_task_state()`.
## Acceptance Criteria
- A task with SPEC.md + TEST_PLAN.md (no IMPLEMENTATION.md) infers as `test_design`, not `implement`
- A task with IMPLEMENTATION.md still infers as `implement`/`code_review`
- Existing tests still pass
- Add test for the TEST_PLAN-only case
@@ -0,0 +1,13 @@
# Verdict: fix-test-plan-phase-mapping
## Status: PASS
## Summary
Fixed TEST_PLAN.md phase mapping from `implement` to `test_design` in both `status.py:_infer_state_from_artifacts()` and dashboard `task.py:determine_task_state()`. Tests updated to assert correct mapping. No regressions — tasks with both TEST_PLAN.md and IMPLEMENTATION.md still correctly map to `code_review`.
## Artifacts
- IMPLEMENTATION.md: Complete
- CODE_REVIEW.md: PASS
- BUG_REPORT.md: No bugs found
- ADVERSARIAL_BUG_REPORT.md: No bugs found
- DOC_REVIEW.md: PASS