Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install seb155-atlas-plugin-dist-atlas-core-skills-mission-controlgit clone https://github.com/seb155/atlas-plugin.gitcp atlas-plugin/SKILL.MD ~/.claude/skills/seb155-atlas-plugin-dist-atlas-core-skills-mission-control/SKILL.md---
name: mission-control
description: "ATLAS Mission Control — terminal session router and convergent dashboard across all AXOIQ products. Use when 'mission control', 'what should I do', 'qu'est-ce qu'on fait', 'show me the roadmap', 'where are we', 'panorama', '/mission-control', or when user picks 'AXOIQ Dev' from the L0 router at session start."
mode: [engineering, personal]
effort: medium
see_also: [atlas-assist, session-pickup, memory-dream, vision-alignment, morning-brief]
user-invocable: true
---
# Mission Control — Terminal-native convergent project dashboard
> Aggregates per-product ROADMAPs + recent handoffs + backlog actions + decisions into a 3-phase progressive dashboard. Read-only in MVP. Terminal-only (ASCII + markdown, fits 100 cols).
## When to Use
- User asks "qu'est-ce qu'on fait" / "what should I do" / "où on en est"
- L0 router (atlas-assist) routes "AXOIQ Dev" choice here
- Explicit invocation : `/mission-control`, `/atlas mission`
- Session start after stale handoff (>3 days)
- Before /a-handoff to verify what was actually accomplished vs claimed
## The 3 phases
```
[Invocation]
↓
[Phase 1 — PANORAMA] Vue globale 7 produits (1 écran)
↓ HITL : dive | start action | filter | refresh
[Phase 2 — DEEP DIVE] Vue détaillée 1 produit (1 écran)
↓ HITL : start | filter | back | switch
[Phase 3 — ACTION START] Briefing + worktree (POST-MVP, scaffolded)
```
## Subcommands (suggested entry points)
| Command | Phases | Time | Action |
|---------|--------|------|--------|
| `/mission-control` | 1 (default 30d) | ~2m | Phase 1 PANORAMA |
| `/mission-control dive <product>` | 1+2 | ~3m | Direct to Phase 2 |
| `/mission-control --period 7d` | 1 | ~2m | Last week scope |
| `/mission-control --severity P0` | 1 | ~2m | Filter to P0 only |
| `/mission-control report` | 1 read-only | ~1m | No HITL, no action prompt |
## Filters (apply via AskUserQuestion mid-flow)
| Filter | Default | Values |
|--------|---------|--------|
| `period` | 30d | 7d / 14d / 30d / all |
| `user` | seb | seb / dev1 / dev2 / all (multi-user schema, single in MVP) |
| `severity` | all | P0 / P1 / P2 / P3 / all |
| `type` | all | feature / bug / audit / infra / lesson / all |
| `bloquer` | false | true / false |
| `product` | all | synapse / atlas-plugin / devhub / cloud-portal / brain / synapse-pitch / homelab / all |
Filter state is in-memory only (not persisted across sessions).
## Phase 1 — PANORAMA
### Data collection
Invoke the helper script :
```bash
ATLAS_WS="${ATLAS_WS:-$HOME/workspace_atlas/projects/axoiq-workspace}"
python3 "$(dirname "${BASH_SOURCE[0]:-$0}")/scripts/collect-product-status.py" \
--workspace "$ATLAS_WS" --period 30d
```
The script outputs JSON on stdout :
```json
{
"products": {
"synapse": { "shipped": 3, "progress": 2, "blocked": 1, "next": 4, "last_update": "2026-05-08" },
"atlas-plugin": { ... },
...
},
"blockers": [
{ "title": "Forgejo signing won't sign: nokey", "products": ["all"], "since": "2026-05-09" },
...
],
"totals": { "handoffs_30d": 135, "backlog_wi": 445, "adrs": 23, "products_active": 7 },
"context": { "date": "2026-05-11", "time": "10:52 EDT", "user": "seb" }
}
```
### Render visual layout
See `references/visual-layouts.md` for the full template. Inline form :
```
╭─ 🏛️ ATLAS MISSION CONTROL ──────────────── {date} {time} ─╮
│ {n_products} produits │ {handoffs_30d} handoffs/30j │ │
│ {backlog_wi} backlog WI │ {adrs} ADRs │
│ Filters: [user={user}] [period={period}] [severity=all] │
╰────────────────────────────────────────────────────────────╯
╭─ Produits ─────────────────────────────────────────────────╮
│ │ SHIPPED │ PROGRESS │ BLOCKED │ NEXT │ Update│
│ {product 1} │ N │ N │ N ⬤ │ N │ {date}│
...
╰────────────────────────────────────────────────────────────╯
╭─ 🔴 BLOCKERS GLOBAUX (N) ──────────────────────────────────╮
│ 1. {blocker title} → {impact} │
...
╰────────────────────────────────────────────────────────────╯
╭─ 🎯 TOP 5 NEXT BEST ACTIONS (ranked) ─────────────────────╮
│ 1. [P0/{product}] {title} ({effort}) │
...
╰────────────────────────────────────────────────────────────╯
```
### Action ranking
After collect, invoke :
```bash
python3 "$(dirname "${BASH_SOURCE[0]:-$0}")/scripts/rank-actions.py" \
--state-json < state.json --top 5
```
Heuristic detail in `references/action-ranking.md`. Default :
1. Severity weight : P0=100, P1=50, P2=10, P3=1
2. Effort penalty : XS=0, S=5, M=15, L=30, XL=50 (smaller is better when tied)
3. Source recency : handoff <7d = +20, 7-14d = +10, 14-30d = +5, >30d = +0
4. Blocker bonus : action that unblocks N other items = +10*N
### HITL gate at end of Phase 1
Ask via `AskUserQuestion` :
| Option | Action |
|--------|--------|
| Dive into project | Phase 2 with selected product |
| Start action #N | Phase 3 with selected action (POST-MVP) |
| Change filters | Re-run Phase 1 with new filters |
| Refresh data | Re-invoke collect-product-status.py |
| Exit | End mission-control, no action |
## Phase 2 — DEEP DIVE
### Data collection (per product)
```bash
python3 "$(dirname "${BASH_SOURCE[0]:-$0}")/scripts/collect-product-status.py" \
--workspace "$ATLAS_WS" --product <name> --deep --period 30d
```
Returns enriched JSON :
```json
{
"product": "synapse",
"metadata": { "version": "0.2.6", "owner": "seb", "url": "synapse.axoiq.com" },
"objectives": [
{ "name": "GM Sprint 1→2", "effort_h": 60, "progress_pct": 75, "status": "blocked" },
...
],
"last_7d_handoffs": [
{ "date": "2026-05-07", "title": "R-NEW12 RAG fix", "outcome": "shipped" },
...
],
"actions_filtered": [...],
"recent_adrs": [...]
}
```
### Visual layout (see references/visual-layouts.md)
```
╭─ {emoji} {product} · Roadmap {quarter} · {version} ────────╮
│ Owner: {owner} │ {n_handoffs}/30j │ Last update: {date} │
│ Filters: [period=30d] [severity={sev}] [type={type}] │
╰────────────────────────────────────────────────────────────╯
╭─ 🎯 {quarter} OBJECTIVES (N) ──────────────────────────────╮
│ {name} ({effort}) {progress_bar} {pct}% │ {note} │
...
╰────────────────────────────────────────────────────────────╯
╭─ 🔄 LAST 7 DAYS ({N} handoffs) ───────────────────────────╮
│ ✅ SHIPPED ({n}): │
│ • {item} │
│ 🟡 IN PROGRESS ({n}): │
│ • {item} │
│ 🔴 BLOCKED ({n}): │
│ • {item} │
╰────────────────────────────────────────────────────────────╯
╭─ 📋 ACTIONS (filtered ≤{sev}) ────────────────────────────╮
│ # │ Sev │ Title │ Effort│ Src │
│ N │ Px │ {title} │ {e} │ {s} │
...
╰────────────────────────────────────────────────────────────╯
╭─ 📜 RECENT DECISIONS (affects {product}) ─────────────────╮
│ • ADR-{N} {title} ({date}) │
...
╰────────────────────────────────────────────────────────────╯
```
### HITL gate at end of Phase 2
| Option | Action |
|--------|--------|
| Start action #N | Phase 3 (POST-MVP) |
| Change filter | Re-run Phase 2 with new filters |
| Back to PANORAMA | Phase 1 |
| Switch project | Phase 2 with different product |
| Exit | End mission-control |
### Supported products in MVP
Phase 2 deep-dive validated for 3 products only :
- ✅ Synapse (`products/synapse/ROADMAP.md`)
- ✅ ATLAS Plugin (`products/atlas-plugin/ROADMAP.md`)
- ✅ DevHub (`products/devhub/ROADMAP.md`)
TODO Post-MVP (graceful fallback : show basic info from ROADMAP.md frontmatter, no objectives parsing) :
- ⏳ Brain (`products/brain/ROADMAP.md`)
- ⏳ Cloud Portal (`products/cloud-portal/ROADMAP.md`)
- ⏳ Synapse-Pitch (`products/synapse-pitch/ROADMAP.md`)
- ⏳ Homelab (`products/homelab/ROADMAP.md`)
## Phase 3 — ACTION START (POST-MVP, scaffolded only)
Pull the selected action's full briefing :
- Source handoff path → read full handoff
- Plan parent → `.blueprint/plans/{plan-name}.md`
- Acceptance criteria → from backlog WI file
- Generate briefing template per atlas-assist `Plan-Anchored Development` section
Output a confirmation prompt :
```
╭─ 🎯 ACTION START: {title} ──────────────────────────────────╮
│ Severity: {Pn} │ Effort: {effort} │ Source: {handoff_date} │
│ │
│ Source handoff: {path} │
│ Plan parent: {path} │
│ Worktree: feat/{slug} │
│ │
│ Acceptance criteria: │
│ - [ ] {criterion 1} │
│ - [ ] {criterion 2} │
│ │
│ Confirm start ? [y]es | [n]o | [a]mend │
╰──────────────────────────────────────────────────────────────╯
```
On `y` → spawn worktree (`atlas-dev-addon:git-worktrees` skill) and inject briefing.
**Status MVP** : This phase is documented but NOT auto-invoked. User must manually invoke `atlas-dev-addon:workflow-feature` or `executing-plans` after selecting an action.
## Data sources (read-only)
All paths relative to `$ATLAS_WS = ~/workspace_atlas/projects/axoiq-workspace` :
| Source | Path | Phase | Read by |
|--------|------|-------|---------|
| Per-product roadmaps | `products/{p}/ROADMAP.md` | 1, 2 | collect-product-status.py |
| Handoffs (period filtered) | `handoffs/2026/{MM}/{user}/*.md` | 1, 2 | collect-product-status.py |
| Backlog index | `backlog/_index.sqlite` | 1, 2 | collect-product-status.py |
| Backlog WI files | `backlog/{_inbox,critical}/*.md` | 2, 3 | on-demand fetch |
| Decisions | `decisions/*.md` | 2 | collect-product-status.py |
| Ecosystem map | `ROADMAP.md` (top) | 1 | header summary |
| Workspace config | `.atlas/workspace.yml`, `.atlas/users.yml` | 1 | product list + owner map |
Full schema details : `references/data-sources.md`.
## Non-negotiable rules
- **READ-ONLY in MVP** : No writes to `products/{p}/ROADMAP.md` from mission-control. Updates go through `handoff-dream` skill (future) or manual edit.
- **HITL EVERY phase boundary** : User picks via AskUserQuestion at end of Phase 1, Phase 2. No auto-progression.
- **TERMINAL-FRIENDLY** : All layouts must fit 100-col width. No horizontal scroll.
- **CONTEXT-RESPECT** : If `~/.atlas/runtime/mode.json` is `personal`, suggest light/personal actions, not heavy refactors.
- **GRACEFUL DEGRADE** : Missing roadmap / missing handoff / corrupt sqlite → warn but render what's available.
## Red Flags (STOP)
- ❌ Inventing actions not in handoffs/backlog (rank-actions must cite source)
- ❌ Showing >5 actions in top list (information overload — strict 5 max)
- ❌ Crashing on missing data (degrade gracefully with "(no data)" placeholder)
- ❌ Writing to ROADMAP.md from mission-control (separation of concerns; that's `handoff-dream`)
- ❌ Auto-firing Phase 3 (POST-MVP — user must explicitly confirm action start)
## See also
- `atlas-core:atlas-assist` — L0 router that routes here on "AXOIQ Dev" choice
- `atlas-core:session-pickup` — alternative entry for resuming specific handoff
- `atlas-core:memory-dream` — pattern source for multi-phase HITL skill
- `atlas-dev-addon:vision-alignment` — for new ideas that don't fit existing roadmap
- `atlas-dev-addon:executing-plans` — natural next-step after Phase 3 confirms
---
*Mission Control v0.1 (MVP) · Last update 2026-05-11 · See references/ for details*