aide-vscode-parity-roadmap · git:20260826.8da8b03 · 2026-08-26 · sha256 6fd83b547ca7ac80

aide-vscode-parity-roadmap git:20260826.8da8b03C

Immutable. This exact content is served forever at /api/v1/blob/6fd83b547ca7ac80.

# AIDE vs VS Code - Parity Roadmap (master router)

## Mission
Close every gap that makes a developer reach for VS Code instead of AIDE, in dependency order, one SKILL.md per phase (created at phase start, never batched blind). This skill routes; the per-phase skills command.

## Doctrine (inherits aide-arch-foundations)
1. Verify-first: before implementing any phase, run live research for that phase's CURRENT best practice (VS Code release notes, Monaco changelog, ripgrep docs) - this roadmap was drafted from stable knowledge 2026-08-22 and MUST be re-grounded per phase.
2. Every feature rides the existing typed-route + envelope + EventHub architecture (aide-arch-backend-core/wiring). No side channels.
3. Every phase ships behind `npm run check` green + CI success + a manual smoke on a real repo.
4. Public-facing copy rules from CLAUDE.md apply to any user-visible strings.

## Gap Matrix (what VS Code has that AIDE lacks today)
| Area | Gap | Severity | Phase |
|---|---|---|---|
| Command palette / keybindings / settings schema | no unified registry, no user settings JSON, no keybinding resolution | CRITICAL - everything else plugs into it | P1 |
| Quick Open + global search/replace | fuzzy file open, workspace grep (ripgrep), replace-all, symbol search | CRITICAL daily driver | P2 |
| Editor depth | multi-cursor, folding, minimap toggles, sticky scroll, snippets, bracket colorization config | HIGH | P3 |
| SCM UX | gutter diff decorations, hunk staging/unstage, inline blame, timeline/history view | HIGH | P4 |
| Debug depth | conditional/log/hit-count breakpoints, watch pane, hover eval, call-stack click-through | HIGH (DAP fixtures already partial per aide-release-engineering) | P5 |
| Tasks + terminal profiles | tasks runner (build/test presets per language), terminal splits/profiles/shell-integration sequences | MEDIUM-HIGH | P6 |
| Extension API v1 | stable minimal API surface (commands, status bar, diagnostics consumer), capability-gated network, offline marketplace format | HIGH strategic | P7 |
| Theming + icons + accessibility | color theme JSON, icon themes, screen-reader/keyboard-only/high-contrast conformance | MEDIUM | P8 |
| Performance budgets | large-file virtualization numbers, startup budget, watcher debouncing, memory ceiling on 16GB box | MEDIUM but gates all claims | P9 |
| Test explorer | discovery via LSP/test adapters, run/debug single test | MEDIUM | P10 |

Non-goals (explicitly): remote-SSH/container targets, notebooks, web flavor - revisit only after P10.

## Phase order + dependencies
P1 -> P2 -> P3 (P4/P5/P6 can parallel after P2) -> P7 (needs P1) -> P8 -> P9 (continuous, final gate) -> P10.

## Per-phase skill spec (what each future SKILL.md must contain)
Each phase skill MUST include, verbatim structure:
1. `What` - exact modules/files/routes/events to create (typed contracts first).
2. `How` + `Why this way` - code-level decisions with the evidence citation (VS Code impl note or prior verified practice in this repo).
3. `Threat matrix` - table: threat | likelihood | blast radius | mitigation | detection test.
4. `Dependencies` - upstream phases + repo primitives (process manager, EventHub channels, contract regen).
5. `Known bugs/pitfalls` - Windows path traps, IPC flood risks, CI-flake history relevant to the phase.
6. `Gates` - unit + arch tests + perf number + manual real-repo smoke script.

## Threat matrix (program-wide, applies to every phase)
| Threat | Radius | Mitigation |
|---|---|---|
| Renderer jank from unvirtualized lists (search results, palette) | whole-app feel | virtualize from day one; measure with 100k-item fixture |
| EventHub channel flooding (watchers, search streaming) | UI freeze, memory | coalesce/debounce server-side; bounded ring buffers; backpressure test |
| Breaking typed contracts mid-phase | compile gate red | contracts-first edits; `npm run contracts` regen in same commit |
| Windows-only path/watcher bugs escaping local dev | CI vs local divergence | keep EBUSY/ENOTEMPTY retry pattern; POSIX-path normalization at route edge |
| Command injection via tasks/terminal/user-named commands | security | argv arrays only, no shell string concat; deny-list shell metacharacters at boundary |
| Extension/plugin escape (network, fs) | security | capability-gated permissions (pattern exists in aide-release-engineering); default-deny network |
| Perf regressions silently shipping | credibility | P9 budgets asserted in CI (startup ms, search latency on fixture repo) |
| Scope creep per phase | schedule drift | phase skill fixes the file list; additions need new decision entry |

## Current verified baseline (2026-08-22)
- 62 documented OpenAPI routes; academy (learner/hints/exercises) + training pipeline (dataset store/QLoRA runner/fail-closed export) shipped CI-green at 4494dd3.
- DAP waitFor budget 90s after runner-slowness flake (see aide-ci-diagnostics).
- Known blockers tracked in aide-release-engineering (installer smoke, DAP fixture completeness) fold into P5.

## Execution protocol for each phase session
1. Load this skill + the phase's arch skill (e.g., P4 -> aide-arch-git).
2. Live-research refresh (websearch: official docs/changelogs only).
3. Write the phase SKILL.md following "Per-phase skill spec" above.
4. Implement contracts -> service -> routes -> wiring -> tests -> battery -> commit -> CI watch.
5. Update AGENT_NOTES journal + continuous-improvement writebacks.

## Re-prioritization 2026-08-25 (usage data, FlouState 11805 sessions + PanDev heartbeat + GitKraken/DORA 2026)

- **Debug depth (was P5/HIGH) -> DEFER to post-release.** Measured reality: developers spend 1.4% of editor time in debugger UI; 75% never open it. Real debugging = console output + reading code, which the cockpit terminal drawer + diagnostics rail already cover. Do not build breakpoint UI before W9.
- **Search & Replace (P2): split.** Find-in-files SHIPPED in cockpit E1. Replace-in-files stays HIGH - maintenance work is 23.7% of editor time and needs approval-gated multi-file rewrite via the existing diff pipeline (E1.1).
- **Settings persistence: elevated to CRITICAL-adjacent.** Cockpit currently remembers nothing across reloads (selected engine, panel state). Session store exists daemon-side (/api/session GET/PUT); wire engine selection + UI state on boot.
- **SCM UX (P4): partially shipped** - branches/history/push-consent live (E3). Remaining: gutter diff decorations (requires Monaco delta decorations vs HEAD content), inline blame (low usage evidence - defer).
- **Palette/keybindings (P1): palette SHIPPED. Keybinding customization remains (user JSON overrides over hardcoded map) - MEDIUM, after settings persistence.
- **New differentiator confirmed by DORA-2026 rework-rate adoption:** per-SHIP telemetry (shipped v0 in ships.log) + provenance chips are the AI-era parity surface VS Code lacks entirely - keep investing here over feature-count parity.
- Editor depth P3: Monaco gives multi-cursor/folding free; minimap toggle + sticky scroll = trivial config flags when requested. Snippets = defer.

## R-series added 2026-08-25 (evidence: Golubev et al. 2021, 1167 devs)

- **Rename Symbol = #1 refactoring (85.8% IDE adoption, 65.7% regular)** + Find All References + format-on-save(opt-in) -> NEW skill aide-rseries-refactor governs; slots into cockpit BEFORE W6 (maintenance work = 23.7pct of editor time and these are its core tools).
- Trust law from the study: PREVIEW + UNDO drive refactoring-tool adoption - the preview card is the product, never apply silently.