Files
automaton/automaton/dashboard
gitea 05c76852a2
CI / build (push) Has been cancelled
v2.0: state enforcement, project scoping, harness integration
State Enforcement (v2.0):
- .state file as single source of truth for task phase
- Approval gates for research, decomposition, design, test_design
- status.py --transition refuses illegal phase transitions
- status.py --validate-folder detects out-of-order artifacts
- status.py --audit checks all tasks for violations
- status.py --create-task is the only valid way to create tasks
- Pre-v2.0 tasks without .state are UNTRACKED -- all commands refuse them
- New --upgrade command bootstraps .state files for existing tasks

Project Scoping:
- --project flag added to all status.py commands across 16+ files
- _find_project_dir errors instead of silently falling back to ~/.automaton/
- --scope-check marks framework files OUT_OF_SCOPE when working on a project
- Dashboard handlers use stored project_root instead of re-detecting from CWD
- Prompts reference ~/.automaton/scripts/vram_detect.py (not {project}/.automaton/)

Harness Integration:
- status.py --can-edit now supports project-level checks (no --task required)
- --can-edit --file checks file scope without --task
- --json output for machine-readable harness integration
- opencode plugin (plugins/automaton-guard/plugin.ts) intercepts edit/write
- Git pre-commit hook (scripts/git-hooks/pre-commit) blocks commits without task
- Formal integration contract (contracts/harness-integration.md)

Other:
- upgrade.sh delegates to status.py --upgrade instead of manual heuristics
- Phase prompts reference --project {project} for multi-project scoping
- 200 tests passing (14 new)
2026-06-15 14:16:46 -04:00
..
…

Automaton Dashboard

Interactive web dashboard for monitoring automaton framework task progress.

Installation

The dashboard is part of the automaton framework. No separate installation is needed.

# From your automaton installation directory
python -m automaton.dashboard

Usage

# Start from the current directory
python -m automaton.dashboard

# Start from a specific project directory
python -m automaton.dashboard /path/to/project

# Custom host/port
python -m automaton.dashboard --host 0.0.0.0 --port 3000

The dashboard opens in your browser at http://localhost:8080.

Scope-Aware

The dashboard automatically detects its scope based on the current working directory:

  • Framework mode: When run from ~/.automaton/, tracks framework development tasks
  • Project mode: When run from a project root (a project that has installed automaton), tracks that project's tasks

Views

Board View (Default)

The primary Kanban board view showing tasks organized by their current phase:

  Backlog (0)  │  Research (1)  │  Design (0)  │  Implement (0)  │  Done (1)  │  Blocked (1)
  ──────────────│────────────────│──────────────│─────────────────│──────────────│──────────────
  — empty —     │ ▸ research-   │              │                 │ ✅ implement │ ❌ bad-impl
                │   task        │              │                 │   task       │
                ────────────────│───────────────│─────────────────│──────────────│──────────────
                ─ empty —       │               ────────────────  │──────────────│──────────────

Statistics View

Shows task statistics including phase distribution, pass/fail rates, and sub-task statistics.

Timeline View

Shows task progress through phases as a timeline with wave visualization for decomposed tasks.

Task Detail Panel

Click any task card to open a detail panel showing:

  • Status badge with a status reason explaining why the task is in its current state
  • Artifacts checklist showing which phase artifacts exist
  • Review controls — approve, request changes, or revoke a previous review
  • Sub-task list with verdict indicators for decomposed tasks
  • Content sections for specification, decomposition, parent context, VRAM configuration, verdict, and bug reports

Keyboard Shortcuts

Key Action
Space Cycle views (Board → Stats → Timeline)
1 Board view
2 Statistics view
3 Timeline view
t Cycle themes (default → dark → light)
r Manual refresh
f Toggle filter bar
s Focus search
? Show help
Esc Close modals / clear search

Configuration

Create a dashboard-config.json file in your project's .automaton/ directory:

{
    "auto_refresh_interval": 2,
    "default_view": "board",
    "column_width": 30,
    "show_timelines": true,
    "theme": "default"
}

Configuration Options

Option Type Default Description
auto_refresh_interval int 2 Seconds between auto-refreshes (1-60)
default_view string "board" View to show on startup
column_width int 30 Minimum width of each column in characters
show_timelines bool true Show time elapsed on cards
theme string "default" Color theme ("default", "dark", "light")

Color Themes

  • Default: Bright colors on dark background
  • Dark: Dimmed colors for a darker appearance
  • Light: Softer colors for light displays

Phase Mapping

Kanban Column Automaton State Artifact
Backlog New No artifacts
Research Research SPEC.md
Decomposition Decomposition SPEC.md + DECOMPOSITION.md
Design Design DESIGN.md
Test Design Test Design TEST_PLAN.md
Implement Implement IMPLEMENTATION.md
Bug Find Bug Find BUG_REPORT.md
Adversarial Bug Find Adversarial Bug Find ADVERSARIAL_BUG_REPORT.md
Doc Review Doc Review DOC_REVIEW.md
Referee Referee VERDICT.md
Done Complete VERDICT.md (PASS)
Blocked Human Intervention VERDICT.md (FAIL/NEEDS_REVIEW)

Architecture

automaton/dashboard/
├── __init__.py          # Package marker
├── __main__.py          # Entry point (python -m automaton.dashboard)
├── config.py            # Configuration management
├── README.md            # This file
├── core/
│   ├── scope.py         # Scope detection (framework vs project mode)
│   ├── task.py          # Task model, state machine, artifact parsing
│   ├── board.py         # Kanban board logic
│   ├── stats.py         # Statistics calculations
│   └── timeline.py      # Timeline data
└── ui/
    ├── app.py           # Web server (HTTP + API endpoints)
    └── html/
        ├── index.html   # Dashboard UI
        ├── styles.css   # All styling (3 themes via CSS variables)
        └── dashboard.js # All UI logic (Kanban, stats, timeline, filtering)

Non-Goals

  • Real-time collaboration — single-user only
  • Task creation/editing — read-only view
  • Notification system — no push notifications
  • Calendar integration — no date-based scheduling
  • External PM tool integration — standalone only