roadmap
Generate a product roadmap with MoSCoW-prioritized features, phases, and milestones. Optionally includes competitor analysis via --with-competitor flag. Results stored in Mem0 as ECL-FEAT items (not ECL-IDEA).
From eclipse-toolsnpx claudepluginhub eldertek/eclipse-tools --plugin eclipse-toolsThis skill uses the workspace's default tool permissions.
Eclipse Roadmap Pipeline
You orchestrate the roadmap generation workflow in up to 3 phases.
Phase 1: Discovery
- Dispatch
roadmap-discoveryagent with the project root path - Agent analyzes project files → returns discovery JSON
- Store/update ECL-CTX in Mem0 with tech stack info from discovery
- If agent returns invalid JSON → log error, STOP ("Discovery failed, cannot generate roadmap")
Phase 2: Competitor Analysis (optional)
Only if $ARGUMENTS contains "--with-competitor":
- Reuse the
competitor-researcheragent (same agent as/eclipse-tools:competitor— no duplication) - Pass discovery context to the agent (project name, type, audience)
- Pass list of already-analyzed competitors from Mem0 (if any)
- Agent returns competitor JSON
- Store ECL-COMP items in Mem0 (same mapping logic as competitor skill)
- Generate derived ECL-IDEA items from high-opportunity gaps (same logic as competitor skill)
If agent fails or returns invalid JSON: log warning, continue to Phase 3 without competitor data. Never block the roadmap.
If --with-competitor NOT specified: skip this phase entirely.
Phase 3: Feature Generation
-
Dispatch
roadmap-featuresagent with:- Discovery JSON from Phase 1
- Competitor JSON from Phase 2 (if available, otherwise omit)
- List of existing Mem0 items for this project_id (for dedup)
-
Prompt:
Generate a feature roadmap for this project.
Discovery context:
[discovery JSON]
[If available:]
Competitor analysis:
[competitor JSON]
Existing items (avoid duplicates):
[Mem0 summary: fingerprints + ids + status + titles]
Return a single JSON object with vision, phases, milestones, and features.
Every feature must have testable acceptance_criteria.
- Validate agent output:
- Must be valid JSON
- Must have
phases[]andfeatures[] - Must have at least 3 features
- If invalid → log error, display what we have, suggest re-running
Phase 4: Persist
For each feature in agent output:
-
Generate
ECL-FEAT-{NNNN}(sequential from highest existing) -
Map agent's local IDs (feature-1 → ECL-FEAT-0001)
-
Store with full schema:
{ "schema_version": 2, "project_id": "[project_id]", "id": "ECL-FEAT-0001", "fingerprint": "sha256(normalize(title))[:16]", "title": "[from agent]", "description": "[from agent]", "type": "roadmap_feature", "source": "roadmap", "status": "draft", "priority": "[must/should/could/wont → mapped to critical/high/medium/low]", "complexity": "[from agent]", "impact": "[from agent]", "phase": "[phase_id]", "milestone": "[milestone_id]", "dependencies": "[mapped to ECL-FEAT-* IDs]", "acceptance_criteria": "[from agent, must be testable]", "competitor_insight_ids": "[mapped to ECL-COMP-* if applicable]", "evidence": [ { "type": "discovery", "observation": "[why this feature matters, from discovery context]" } ], "derived_from": null, "design_ref": null, "plan_ref": null, "created_at": "[now]", "updated_at": "[now]", "last_action_at": "[now]" } -
Run deduplication before each write (exact fingerprint + Jaccard)
-
Priority mapping: must→critical, should→high, could→medium, wont→low
Phase 5: Display
Roadmap Generated — [project_name]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vision: [one_liner from discovery]
Audience: [primary_persona]
Competitor insights: [yes/no + count if yes]
Phase 1: Foundation / MVP
Milestone: [title]
MUST [ECL-FEAT-0001] [feature title]
MUST [ECL-FEAT-0002] [feature title]
Phase 2: Enhancement
Milestone: [title]
SHOULD [ECL-FEAT-0003] [feature title]
SHOULD [ECL-FEAT-0004] [feature title]
Phase 3: Growth
Milestone: [title]
COULD [ECL-FEAT-0005] [feature title]
Phase 4: Vision
WONT [ECL-FEAT-0006] [feature title] (future)
Total: [N] features ([M] MUST, [O] SHOULD, [P] COULD, [Q] WONT)
Saved as drafts in Mem0. Use /eclipse-tools:next to triage.
Mode Degrade (sans Mem0)
If Mem0 unavailable:
- Run discovery and feature generation normally
- Display the full roadmap to user
- Warn: "Mem0 unavailable — roadmap not persisted."
- Do NOT attempt any Mem0 writes
Important: ECL-FEAT vs ECL-IDEA
- Features from roadmap are stored as ECL-FEAT (not ECL-IDEA)
- They appear in
/eclipse-tools:nextdashboard alongside ECL-IDEA items - They follow the same lifecycle (draft → accepted → designed → planned → building → done)
- The
nextskill displays both types in the same dashboard
TODO
- Ensure
nextskill handles ECL-FEAT items in its dashboard queries (not just ECL-IDEA)