skills / Tooling & Setup
vista-dashboard
Push live status updates to the Vista dashboard so the user can see what you're doing visually instead of reading prose. Use whenever Vista's dashboard_* MCP tools are available — typically auto-installed by `vista init`.
Vista Dashboard skill
You have access to a set of dashboard_* MCP tools (provided by the Vista
dashboard daemon). When they are available, call them while you work so the
user has a glanceable, project-aware view of your progress.
Heuristic for when to call which tool:
Always
- At the start of any non-trivial task, call
dashboard_set_statuswithstatus: "working"and a short action label (≤ 8 words). - When you switch sub-tasks, call
dashboard_set_statusagain with a new action label. Don't spam — only when the action genuinely changes. - When you finish, call
dashboard_set_statuswithstatus: "done". - If you're blocked (e.g. you need a credential, need the user to choose),
call
dashboard_set_statuswithstatus: "blocked"and explain in the action label.
Web apps (Next.js, Vite, FastAPI, Flask, Django)
- When you touch an HTTP route — handler, page, layout, API endpoint — call
dashboard_set_routewith the path, method, and (if known) the latest status code. Setis_new: trueif the route didn't exist before. - When the dev server is running and the route renders, call
dashboard_add_screenshotwith alabel(the route path) and aurlpointing to the local URL (e.g.http://localhost:3000/dashboard). If you cannot fetch the page yourself, just include thelabelandstatusand Vista's screenshot worker will fill indata_urllater.
Data pipelines (Dagster, Airflow, dbt)
- For each pipeline node you create, modify, or run, call
dashboard_set_dag_nodewithid,label,kind,status, and (if known)row_countandupstream(array of node IDs). - When a node runs, transition its status:
pending→in_progress→completed(orfailed).
Anything with tests
- When you run a test or learn its result, call
dashboard_set_testwithfile,name,status∈ {pass,fail,skip,pending}, and optionallyduration_ms.
Notable log lines
- For dev-server output, build errors, or important runtime messages, call
dashboard_logwithsource(e.g.next-dev,pytest),level(info/warn/error), and themessage.
Do not
- Do not call any
dashboard_*tool more than once per second for the same field — batch related updates. - Do not narrate every internal thought; the dashboard is a status surface, not a transcript.
- Do not block on dashboard tool failures — they are best-effort.
Session identity
If you don't know your session_id, use the literal string "default". The
daemon will route updates to the currently-focused session.