docs: create roadmap (4 phases)
This commit is contained in:
@@ -66,25 +66,25 @@ Which phases cover which requirements. Updated during roadmap creation.
|
||||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| DISC-01 | - | Pending |
|
||||
| DISC-02 | - | Pending |
|
||||
| DISC-03 | - | Pending |
|
||||
| DISC-04 | - | Pending |
|
||||
| STATE-01 | - | Pending |
|
||||
| STATE-02 | - | Pending |
|
||||
| STATE-03 | - | Pending |
|
||||
| STATE-04 | - | Pending |
|
||||
| I3-01 | - | Pending |
|
||||
| I3-02 | - | Pending |
|
||||
| I3-03 | - | Pending |
|
||||
| NOTIF-01 | - | Pending |
|
||||
| NOTIF-02 | - | Pending |
|
||||
| DISC-01 | Phase 1 | Pending |
|
||||
| DISC-02 | Phase 1 | Pending |
|
||||
| DISC-03 | Phase 1 | Pending |
|
||||
| DISC-04 | Phase 2 | Pending |
|
||||
| STATE-01 | Phase 1 | Pending |
|
||||
| STATE-02 | Phase 1 | Pending |
|
||||
| STATE-03 | Phase 3 | Pending |
|
||||
| STATE-04 | Phase 2 | Pending |
|
||||
| I3-01 | Phase 2 | Pending |
|
||||
| I3-02 | Phase 2 | Pending |
|
||||
| I3-03 | Phase 4 | Pending |
|
||||
| NOTIF-01 | Phase 4 | Pending |
|
||||
| NOTIF-02 | Phase 4 | Pending |
|
||||
|
||||
**Coverage:**
|
||||
- v1 requirements: 13 total
|
||||
- Mapped to phases: 0
|
||||
- Unmapped: 13 ⚠️
|
||||
- Mapped to phases: 13
|
||||
- Unmapped: 0
|
||||
|
||||
---
|
||||
*Requirements defined: 2026-03-23*
|
||||
*Last updated: 2026-03-23 after initial definition*
|
||||
*Last updated: 2026-03-23 after roadmap creation*
|
||||
|
||||
90
.planning/ROADMAP.md
Normal file
90
.planning/ROADMAP.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Roadmap: vmux
|
||||
|
||||
## Overview
|
||||
|
||||
vmux passe de zero a un cockpit fonctionnel en 4 phases. La Phase 1 valide la detection (trouver les sessions, connaitre leur etat) via un CLI one-shot. La Phase 2 ajoute la persistance (daemon) et l'integration i3 (mapper sessions aux workspaces, switcher). La Phase 3 branche les hooks Claude Code pour une detection push et une distinction fine des types d'attente. La Phase 4 ajoute les notifications desktop et le widget i3bar.
|
||||
|
||||
## Phases
|
||||
|
||||
**Phase Numbering:**
|
||||
- Integer phases (1, 2, 3): Planned milestone work
|
||||
- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)
|
||||
|
||||
Decimal phases appear between their surrounding integers in numeric order.
|
||||
|
||||
- [ ] **Phase 1: Session Discovery** - CLI one-shot qui detecte les sessions Claude Code et affiche leur etat
|
||||
- [ ] **Phase 2: Daemon et i3 Bridge** - Daemon persistant, mapping sessions/workspaces, switch en une action
|
||||
- [ ] **Phase 3: Hook Server** - Detection push via hooks Claude Code, distinction fine des types d'attente
|
||||
- [ ] **Phase 4: Notifications et i3bar** - Alertes desktop et widget statusline
|
||||
|
||||
## Phase Details
|
||||
|
||||
### Phase 1: Session Discovery
|
||||
**Goal**: L'utilisateur peut lancer `vmux list` et voir toutes ses sessions Claude Code actives avec leur etat
|
||||
**Depends on**: Nothing (first phase)
|
||||
**Requirements**: DISC-01, DISC-02, DISC-03, STATE-01, STATE-02
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. `vmux list` affiche toutes les sessions Claude Code actives sur le poste (aucune session manquante)
|
||||
2. Chaque session affiche son cwd, worktree git et branche git
|
||||
3. Chaque session affiche son etat : Working, Needs Input ou Idle
|
||||
4. Chaque session affiche un apercu des dernieres lignes de sortie
|
||||
**Plans**: TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 01-01: TBD
|
||||
- [ ] 01-02: TBD
|
||||
|
||||
### Phase 2: Daemon et i3 Bridge
|
||||
**Goal**: L'utilisateur peut switcher vers n'importe quelle session Claude Code en une action via son workspace i3
|
||||
**Depends on**: Phase 1
|
||||
**Requirements**: DISC-04, I3-01, I3-02, STATE-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. vmuxd tourne en arriere-plan et maintient le registre des sessions a jour
|
||||
2. Chaque session est associee a son workspace i3 (visible dans `vmux list`)
|
||||
3. `vmux switch <session>` bascule vers le workspace i3 correspondant
|
||||
4. L'utilisateur peut attribuer un label humain a une session (`vmux label <session> "review MR !456"`)
|
||||
5. Chaque session en attente affiche le temps ecoule ("depuis 3 min")
|
||||
**Plans**: TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 02-01: TBD
|
||||
- [ ] 02-02: TBD
|
||||
|
||||
### Phase 3: Hook Server
|
||||
**Goal**: Les transitions d'etat sont detectees en moins d'une seconde grace aux hooks push de Claude Code
|
||||
**Depends on**: Phase 2
|
||||
**Requirements**: STATE-03
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. vmuxd recoit les events hook de Claude Code (PreToolUse, PostToolUse, Stop, Notification) sur un port local
|
||||
2. Les transitions d'etat apparaissent dans `vmux list` en moins d'une seconde apres l'event reel
|
||||
3. vmux distingue le type d'attente : permission prompt, question utilisateur, idle prompt
|
||||
**Plans**: TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 03-01: TBD
|
||||
|
||||
### Phase 4: Notifications et i3bar
|
||||
**Goal**: L'utilisateur est notifie passivement quand une session a besoin de lui, sans ouvrir vmux
|
||||
**Depends on**: Phase 3
|
||||
**Requirements**: NOTIF-01, NOTIF-02, I3-03
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. Une notification dunst apparait quand une session passe de "Working" a "Needs Input"
|
||||
2. Le mode focus supprime temporairement les notifications (`vmux focus on/off`)
|
||||
3. Un widget i3bar affiche en temps reel le nombre de sessions et combien attendent de l'input
|
||||
**Plans**: TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 04-01: TBD
|
||||
- [ ] 04-02: TBD
|
||||
|
||||
## Progress
|
||||
|
||||
**Execution Order:**
|
||||
Phases execute in numeric order: 1 -> 2 -> 3 -> 4
|
||||
|
||||
| Phase | Plans Complete | Status | Completed |
|
||||
|-------|----------------|--------|-----------|
|
||||
| 1. Session Discovery | 0/2 | Not started | - |
|
||||
| 2. Daemon et i3 Bridge | 0/2 | Not started | - |
|
||||
| 3. Hook Server | 0/1 | Not started | - |
|
||||
| 4. Notifications et i3bar | 0/2 | Not started | - |
|
||||
60
.planning/STATE.md
Normal file
60
.planning/STATE.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Project State
|
||||
|
||||
## Project Reference
|
||||
|
||||
See: .planning/PROJECT.md (updated 2026-03-23)
|
||||
|
||||
**Core value:** Savoir instantanement quelle session Claude Code a besoin de moi, sans scanner manuellement mes workspaces.
|
||||
**Current focus:** Phase 1 - Session Discovery
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: 1 of 4 (Session Discovery)
|
||||
Plan: 0 of 2 in current phase
|
||||
Status: Ready to plan
|
||||
Last activity: 2026-03-23 — Roadmap created
|
||||
|
||||
Progress: [░░░░░░░░░░] 0%
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
**Velocity:**
|
||||
- Total plans completed: 0
|
||||
- Average duration: -
|
||||
- Total execution time: 0 hours
|
||||
|
||||
**By Phase:**
|
||||
|
||||
| Phase | Plans | Total | Avg/Plan |
|
||||
|-------|-------|-------|----------|
|
||||
| - | - | - | - |
|
||||
|
||||
**Recent Trend:**
|
||||
- Last 5 plans: -
|
||||
- Trend: -
|
||||
|
||||
*Updated after each plan completion*
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
### Decisions
|
||||
|
||||
Decisions are logged in PROJECT.md Key Decisions table.
|
||||
Recent decisions affecting current work:
|
||||
|
||||
- Roadmap: CLI one-shot en Phase 1 (pas de daemon), daemon en Phase 2, hooks en Phase 3
|
||||
- Roadmap: 4 phases derives des 4 categories de requirements
|
||||
|
||||
### Pending Todos
|
||||
|
||||
None yet.
|
||||
|
||||
### Blockers/Concerns
|
||||
|
||||
None yet.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-03-23
|
||||
Stopped at: Roadmap created, ready to plan Phase 1
|
||||
Resume file: None
|
||||
Reference in New Issue
Block a user