ops-dash
Interactive pixel-art command center dashboard. Visual business HQ with instant hotkey navigation to all ops commands, live status indicators, fire alerts, C-suite reports, settings, sharing, and FAQ.
What this skill does
# OPS > DASH — Interactive Command Center
## Runtime Context
Before rendering, load available context:
1. **Preferences**: Read `${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json`
- `owner` — personalize the dashboard header greeting
- `timezone` — display timestamps correctly in status indicators
2. **Daemon health**: Read `${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json`
- If `action_needed` is not null → show a warning banner at the top of the dashboard before the menu
## CLI/API Reference
### bin/ops-dash
| Command | Usage | Output |
|---------|-------|--------|
| `${CLAUDE_PLUGIN_ROOT}/bin/ops-dash` | Render full pixel-art dashboard | Formatted ASCII dashboard |
| `${CLAUDE_PLUGIN_ROOT}/bin/ops-dash 2>/dev/null \|\| echo "DASH_RENDER_FAILED"` | Render with failure detection | Dashboard or `DASH_RENDER_FAILED` sentinel |
The bin script reads `preferences.json` and `daemon-health.json` internally. The skill reads these files separately to check for warnings before invoking the script.
---
## Agent Teams support
If `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` is set, use **Agent Teams** when loading dashboard data in parallel. This enables:
- Agents share context and can coordinate mid-flight
- You can steer priorities in real-time
- Agents report progress as they complete
**Team setup** (only when flag is enabled):
```
TeamCreate("dash-team")
Agent(team_name="dash-team", name="infra-loader", prompt="Gather ECS health, Vercel status, and CI pipeline state")
Agent(team_name="dash-team", name="comms-loader", prompt="Gather unread counts across all configured channels")
Agent(team_name="dash-team", name="projects-loader", prompt="Gather GSD phase, git status, and PRs for all projects")
Agent(team_name="dash-team", name="business-loader", prompt="Gather revenue, Linear sprint, and fire alerts")
```
If the flag is NOT set, use standard fire-and-forget subagents.
## Render dashboard instantly
```!
${CLAUDE_PLUGIN_ROOT}/bin/ops-dash 2>/dev/null || echo "DASH_RENDER_FAILED"
```
## Your task
The dashboard has already rendered above via the shell script. Your job is to **route user input** to the right skill.
**Present the dashboard output as-is** (it's already formatted). Then immediately use AskUserQuestion:
```
Type a number (1-9, 0), letter (a-j), or describe what you need
```
## Routing table
| Input | Route | Description |
|-------|-------|-------------|
| `1`, `go`, `morning`, `briefing` | `/ops:ops-go` | Morning briefing |
| `2`, `inbox`, `unread`, `messages` | `/ops:ops-inbox` | Inbox zero |
| `3`, `fires`, `incidents`, `down` | `/ops:ops-fires` | Fire check |
| `4`, `projects`, `portfolio` | `/ops:ops-projects` | Project dashboard |
| `5`, `next`, `priority`, `what` | `/ops:ops-next` | What's next |
| `6`, `revenue`, `costs`, `money` | `/ops:ops-revenue` | Revenue & costs |
| `7`, `linear`, `sprint`, `board` | `/ops:ops-linear` | Linear sprint |
| `8`, `deploy`, `ship` | `/ops:ops-deploy` | Deploy status |
| `9`, `triage`, `issues` | `/ops:ops-triage` | Triage issues |
| `0`, `speedup`, `clean`, `optimize` | `/ops:ops-speedup` | System speedup |
| `a`, `yolo` | `/ops:ops-yolo` | YOLO mode |
| `b`, `merge`, `prs` | `/ops:ops-merge` | Auto-merge PRs |
| `c`, `setup`, `configure` | `/ops:setup` | Setup wizard |
| `d`, `send`, `comms` | `/ops:ops-comms` | Send message |
| `e`, `report`, `csuite` | Read latest YOLO report | C-suite report |
| `f`, `settings`, `prefs`, `config` | Settings sub-menu | Interactive config |
| `g`, `share` | Share sub-menu | Share your setup |
| `h`, `faq`, `help`, `wiki`, `?` | FAQ sub-menu | Help & FAQ |
| `back`, `dash`, `home` | Re-render dashboard | Return to dash |
---
## C-suite report access (option e)
When user selects `e`:
1. Find latest YOLO session: `ls -td /tmp/yolo-*/ 2>/dev/null | head -1`
2. If found, show a sub-menu:
Display the C-suite header, then use **batched AskUserQuestion** (max 4 options per call):
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OPS > C-SUITE REPORTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
AskUserQuestion call 1:
```
[CEO — Strategic analysis]
[CTO — Technical health]
[CFO — Financial analysis]
[More...]
```
AskUserQuestion call 2 (only if "More..."):
```
[COO — Operations review]
[All — Full Hard Truths report]
[Back to dashboard]
```
Read the selected file and display it. After display, offer `[Back to dashboard]`.
3. If no YOLO reports exist:
```
No C-suite reports yet. Run /ops:ops-yolo to generate one.
b) Back to dashboard
```
---
## Settings sub-menu (option f)
When user selects `f`, read current preferences and present an interactive config editor.
```bash
PREFS="${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json"
cat "$PREFS" 2>/dev/null || echo '{}'
```
```bash
cat "${CLAUDE_PLUGIN_ROOT}/scripts/registry.json" 2>/dev/null || echo '{}'
```
Display the full settings menu as text (for reference), then use **batched AskUserQuestion calls** (max 4 options each) to let the user pick a category:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OPS > SETTINGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PROFILE: Owner=[value] | TZ=[value] | Style=[value]
CHANNELS: Email=[✓/✗] | WA=[✓/✗] | Slack=[✓/✗] | Telegram=[✓/✗]
INTEGRATIONS: AWS=[value] | Sentry=[value] | Linear=[value]
PROJECTS: [N] registered
PLUGIN: v[version]
──────────────────────────────────────────────────────
```
Use AskUserQuestion (max 4 options):
```
What would you like to configure?
[Profile (name/timezone/style)]
[Channels (email/WA/slack/telegram)]
[Integrations & Projects]
[Back to dashboard]
```
On "Profile": use AskUserQuestion with `[Owner name]`, `[Timezone]`, `[Briefing style]`, `[Back]`.
On "Channels": use AskUserQuestion with the 4 channel names (fits in one call).
On "Integrations & Projects": use AskUserQuestion with `[AWS/Sentry/Linear]`, `[View registry]`, `[Add/remove project]`, `[Update plugin / Re-run setup]`.
For each option, use AskUserQuestion to get the new value, then write to preferences.json or registry.json.
**Writing preferences:**
```bash
PREFS="${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json"
# Read existing, merge update, write back
jq --arg key "owner" --arg val "$NEW_VALUE" '.[$key] = $val' "$PREFS" > "${PREFS}.tmp" && mv "${PREFS}.tmp" "$PREFS"
```
After each change, confirm success and return to the settings menu. User can keep making changes or press `b` to go back.
---
## Share sub-menu (option g)
When user selects `g`, generate a shareable summary of their ops setup:
Display the share header, then use **batched AskUserQuestion** (max 4 options per call):
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OPS > SHARE YOUR SETUP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
AskUserQuestion call 1:
```
[Share on X (Twitter)]
[Share via Slack]
[Share via Email]
[More...]
```
AskUserQuestion call 2 (only if "More..."):
```
[Copy to clipboard]
[Export setup guide (markdown)]
[Back to dashboard]
```
### Share content generation
Generate a share-ready message. **Never include secrets, tokens, or private project names.** Only share:
- Plugin version
- Number of integrations configured
- Number of projects managed
- OS and system info
- Feature highlights used
**Template:**
```
I'm running my business from Claude Code with claude-ops v0.3.1
Setup: [N] projects | [N] channels | [OS]
Features: Morning briefing, inbox zero, fire alerts, C-suite AI analysis, system optimizer
Try it: /plugin marketplace add ops-marketplace
#ClaudeCode #DevOps #AI
```
### Share actions
| Option | Action |
|--------|--------|
| X/Twitter | Copy text to clipboard + open `https://twitter.com/intent/tweet?text=...` via `open` (macOS) or `xdg-open` (Linux) |
| Slack | Send via `/ops:ops-comms slacRelated in Data & Analytics
clawarr-suite
IncludedComprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpackerr, Notifiarr, Maintainerr, Kometa, FlareSolverr). Deep library exploration, analytics, dashboard generation, content management, request handling, subtitle management, indexer control, download monitoring, quality profile sync, library cleanup automation, notification routing, collection/overlay management, and media tracker integration (Trakt, Letterboxd, Simkl).
querying-soql
IncludedSOQL query generation, optimization, and analysis with 100-point scoring. Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
habit-flow
IncludedAI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
visualizing-data
IncludedBuilds dashboards, reports, and data-driven interfaces requiring charts, graphs, or visual analytics. Provides systematic framework for selecting appropriate visualizations based on data characteristics and analytical purpose. Includes 24+ visualization types organized by purpose (trends, comparisons, distributions, relationships, flows, hierarchies, geospatial), accessibility patterns (WCAG 2.1 AA compliance), colorblind-safe palettes, and performance optimization strategies. Use when creating visualizations, choosing chart types, displaying data graphically, or designing data interfaces.