rmap is a single-binary Rust CLI that manages portable roadmap data (roadmap/tasks.toml) for any project. This file is rendered from that source — rmap render rewrites only the bytes between the marker pairs below. See DESIGN.md for the schema contract and the Phase 6 HTML render design, and CHANGELOG.md for shipped phases (1–13a).
Focus phase: not set — add [focus] to tasks.toml
gantt
title rmap
dateFormat YYYY-MM-DD
section Phase 6 — HTML render
rmap render --html single-project view :done, 2026-05-14, 2026-05-14
section Phase 7 — rmap watch (optional)
rmap watch FS watcher :done, 2026-05-14, 2026-05-14
rmap watch --json event stream :done, 2026-05-14, 2026-05-14
section Phase 13 — Skills-parity polish
Tasks——vision field + VISION marker pair :done, 2026-05-13, 2026-05-13
Task——branch field on in-progress rows :done, 2026-05-13, 2026-05-13
Excluded-category markers (bug/security/docs) :done, 2026-05-13, 2026-05-13
D/B/U 1..=10 range validation :done, 2026-05-13, 2026-05-13
Task——files_to_modify field :done, 2026-05-13, 2026-05-13
Task——out_of_scope field :done, 2026-05-13, 2026-05-13
delegate.rs section restructure (task-writing.md template) :done, 2026-05-13, 2026-05-13
rmap doctor --threshold-days override :done, 2026-05-14, 2026-05-14
rmap doctor --ac-threshold override :done, 2026-05-14, 2026-05-14
rmap list/next --bundle <name> filter :done, 2026-05-13, 2026-05-13
rmap next --count N returns top-N candidates :done, 2026-05-13, 2026-05-13
rmap bundles selector listing :done, 2026-05-13, 2026-05-13
rmap next-bundle— select one session-sized bundle (Option 1— bundle = session— no subsetting) :done, 2026-05-14, 2026-05-14
rmap status <id> done — auto-fill done_at (and started_at on in_progress) :done, 2026-05-17, 2026-05-17
`rmap depend <src> on <numeric-id>` fails with 'unknown task' when target id is numeric-only :done, 2026-05-17, 2026-05-17
section Phase 14 — Migration tooling
rmap import — emit a paste-ready ROADMAP.md→tasks.toml migration prompt :done, 2026-05-15, 2026-05-15
section Phase 15 — Schema extensions
`Task——implemented` field — record what was actually delivered (required when done) :done, 2026-05-17, 2026-05-17
Milestones — first-class release lines :done, 2026-05-17, 2026-05-17
Upgrade schemars 0.8 → 0.9+ for JSON Schema draft 2020-12 :done, 2026-05-23, 2026-05-23
Task outcome layer — delivered_by + verified fields :done, 2026-05-23, 2026-05-23
rmap validate does not detect duplicate task ids :done, 2026-05-23, 2026-05-23
🎁 schema_parity — additive schema fields (vision, branch, bug/security/docs markers) plus D/B/U range validation.
🎁 delegate_parity — rmap delegate prompt shape matches task-writing.md (files_to_modify, out_of_scope, section restructure).
🎁 doctor_tuning — CLI overrides for rmap doctor's hardcoded thresholds (--threshold-days, --ac-threshold).
Phase 13a (Eff-tier glyph + phase archive collapse) shipped 2026-05-13 — see CHANGELOG.md.
16 tasks. See CHANGELOG.md.
🎁 html_single — rmap render --html single-project static view.
🎁 html_portfolio — rmap render --html --multi cross-repo dashboard.
Full design lives in DESIGN.md § HTML render design (Phase 6).
| Task | Status | Notes |
|---|---|---|
| Task 8 | ✅ | 🎁 html_single · rmap render --html single-project view [D:6/B:7/U:6 → Eff:1.08] 📋 |
| Task 9 | ⬜ | 🎁 html_portfolio · rmap render --html --multi portfolio view [D:6/B:6/U:5 → Eff:0.92] |
🎁 watch_core — FS-watch render loop for live dev.
🎁 watch_stream — optional --json event stream on top of the watch loop.
2 tasks. See CHANGELOG.md.
🎁 import_command — rmap import paste-ready ROADMAP.md→tasks.toml migration prompt.
1 task. See CHANGELOG.md.
🎁 agent_routing — per-task LLM model pinning (Task::model, surfaced by rmap delegate).
| Task | Status | Notes |
|---|---|---|
| Task 19 | ✅ | 🎁 agent_routing · Task::model field — per-task LLM model pinning [D:3/B:5/U:5 → Eff:1.67] 🚀 |
| Task 22 | ✅ | 🎁 schema_implemented · Task::implemented field — record what was actually delivered (required when done) [D:4/B:6/U:7 → Eff:1.62] 🚀 |
| Task 24 | ✅ | 🎁 schema_milestones · Milestones — first-class release lines [D:6/B:8/U:8 → Eff:1.33] 📋 |
| Task 25 | ✅ | 🎁 schema_milestones · 🐛 Backfill creation paths with branch / files_to_modify / cross_repo (converge StdinTask/NewTaskFields mirror) [D:4/B:6/U:6 → Eff:1.5] 🚀 |
| Task 26 | ✅ | 🎁 deps_schemars · Upgrade schemars 0.8 → 0.9+ for JSON Schema draft 2020-12 [D:3/B:3/U:3 → Eff:1.0] 📋 |
| Task 27 | ✅ | 🎁 schema_milestones · Active-milestone preference in rmap next [D:3/B:5/U:6 → Eff:1.83] 🚀 |
| Task 28 | ✅ | 🎁 schema_outcome · Task outcome layer — delivered_by + verified fields [D:4/B:6/U:6 → Eff:1.5] 🚀 |
| Task 29 | ✅ | 🎁 schema_milestones · 🐛 rmap new allocates a colliding task id on a string-id roadmap [D:3/B:7/U:6 → Eff:2.17] 🎯 |
| Task 30 | ✅ | 🎁 schema_milestones · 🐛 rmap validate does not detect duplicate task ids [D:3/B:6/U:5 → Eff:1.83] 🚀 |
| Task 31 | ⬜ | 🎁 doctor_state_drift · rmap doctor: advisories for phase / focus state drift [D:2/B:6/U:7 → Eff:3.25] 🎯 |
| Task 32 | ⬜ | 🎁 doctor_state_drift · rmap doctor: milestone status drift advisories [D:2/B:5/U:6 → Eff:2.75] 🎯 |
| Task 33 | ✅ | 🎁 schema_outcome · --shipped-in flag on rmap status — complete the outcome layer [D:2/B:6/U:6 → Eff:3.0] 🎯 |
| Task 34 | ✅ | 🎁 schema_outcome · --reason flag on rmap status — settable + rendered + auto-cleared blocked_reason [D:3/B:6/U:6 → Eff:2.0] 🎯 |
| Task 35 | ✅ | 🎁 agent_dispatch · rmap ready — parallel-safe dep-satisfied dispatch set [D:3/B:8/U:9 → Eff:2.83] 🎯 |
| Task 36 | ✅ | 🎁 agent_dispatch · dep_layer — topo depth as a computed --json field [D:3/B:6/U:7 → Eff:2.17] 🎯 |
| Task 37 | ✅ | 🎁 agent_dispatch · touches — advisory collision-prediction field [D:3/B:6/U:8 → Eff:2.33] 🎯 |
| Task 38 | ✅ | 🎁 agent_dispatch · handbuild marker + --dispatchable + --fields JSON projection [D:3/B:6/U:7 → Eff:2.17] 🎯 |
| Task 39 | ✅ | 🎁 delegate_targets · Widen delegate targets + assignee set: add grok, antigravity, pi, droid [D:3/B:6/U:7 → Eff:2.17] 🎯 |