Invocation
Data format
Describe your timeline in natural language. The skill extracts:- Items — individual tasks, phases, or milestones with start and end dates
- Groups — workstreams or swimlanes that items belong to
| Input | Converted to |
|---|---|
| ”Q1” | 2026-01-01 – 2026-03-31 |
| ”month 1–3” | YYYY-01-01 – YYYY-03-31 |
| ”next sprint” | Two-week window from today |
Workflow
Extract items and groups
Identify tasks/phases (items) and workstreams/swimlanes (groups) from context.
Convert all dates to ISO strings
Translate every vague time reference to
"YYYY-MM-DD" format. Default base date is today.Assign group colors
Give each group a
className and matching CSS color class from the palette in TEMPLATE.md.Write the HTML file
Write a complete self-contained file to
/tmp/timeline.html using the vis-timeline template.Wait for render
Call
mcp__chrome-devtools__wait_for on a group label string that appears after vis-timeline renders. Timeout 10000ms.Take screenshot
Call
mcp__chrome-devtools__take_screenshot and verify all items and group labels are visible.Use cases
Project roadmaps
Lay out a quarterly or annual roadmap with multiple workstreams as swimlanes and milestones as point items.
Gantt charts
Visualize overlapping tasks, dependencies, and phase durations for engineering or operations projects.
Historical timelines
Plot events, releases, or milestones across a historical span to show chronological progression.
Self-review checklist
Before delivering, the skill verifies all of the following:- Screenshot shows all group swimlane labels in the left panel
- Screenshot shows colored item bars spanning correct date ranges
- No items are invisible or rendering as unstyled plain text (CSS CDN loaded)
- Timeline container has explicit pixel height — vis-timeline did not collapse to 0px
- All
start/endvalues in the items array are ISO date strings"YYYY-MM-DD", not relative strings - Every item has a
groupproperty matching a group id - Dark theme CSS overrides are present and text is readable on dark background
wait_forwas called beforetake_screenshot
Golden rules
1. Never use relative date strings
1. Never use relative date strings
Always convert vague references (“month 1”, “Q3”, “next sprint”) to explicit ISO date strings
"YYYY-MM-DD" before passing to vis-timeline. Relative strings will throw a parse error or render at wrong positions.2. Always set explicit pixel height on the container div
2. Always set explicit pixel height on the container div
vis-timeline collapses to 0px without it. Use
height: 500px; width: 100%; at minimum.3. Always include the CSS CDN link tag
3. Always include the CSS CDN link tag
Without the vis-timeline CSS CDN, items render as unstyled plain text with no bar shape or color.
4. Use stack: true when items overlap in time
4. Use stack: true when items overlap in time
stack: false causes overlapping items in the same group to render on top of each other, hiding all but the topmost. Default to stack: true for safety.5. Always assign every item to a group
5. Always assign every item to a group
Ungrouped items pile into a single unlabelled row, defeating swimlane separation.
6. Always call wait_for on a group label before screenshotting
6. Always call wait_for on a group label before screenshotting
The group label only appears after vis-timeline fully renders. Screenshotting before it appears captures a blank or partially-rendered page.
7. Always use new_page for first open
7. Always use new_page for first open
Use
mcp__chrome-devtools__new_page with url: file:///tmp/timeline.html. Use navigate_page with type: reload only for subsequent fixes.Reference files
| File | Contents |
|---|---|
TEMPLATE.md | Complete vis-timeline HTML template, date conversion patterns, color class system, group/item data format |
TROUBLESHOOTING.md | Failure diagnosis table: symptoms, causes, fixes |