update.sh now checks the current project after pulling latest changes.
If it detects stale prompt/contract/script copies or tasks at the
deprecated root-level location, it prompts the user to run migration.
No more needing to know about migrate-project.sh separately.
Both framework and project tasks now live in .automaton/tasks/.
Every project has a .automaton/ directory, so no need for special
scope-based path logic. Removed the dual-convention gap.
Changes:
- Dashboard _find_tasks_dir() and _get_review_path() always use
{root}/.automaton/tasks/ — no scope branching
- migrate-project.sh: moves tasks/ -> .automaton/tasks/ during upgrade
- Orchestrator prompt: all task path references updated to
{project}/.automaton/tasks/
The additive extension model refactor moved prompts/contracts/scripts into
.automaton/ but never addressed where tasks live. Two conventions existed:
framework keeps tasks in .automaton/tasks/, Orchestrator creates project
tasks at tasks/.
Fixes:
- Dashboard _find_tasks_dir() now scope-aware: framework mode prefers
.automaton/tasks/, project mode prefers tasks/ at project root
- migrate-project.sh: if tasks exist in .automaton/tasks/ (old model),
move them to tasks/ (project root)
- Orchestrator prompt: documents that tasks location depends on scope
- Add automaton.pth to user site-packages so python -m automaton.dashboard
works from any working directory, not just ~/.automaton/
- Add scripts/dashboard.sh as a convenience wrapper with PYTHONPATH