roadmap-timeline
Skill142 starsChanged 3 months agoMITView on GitHub
Generates a polished, self-contained HTML roadmap or milestone timeline from any project data — SharePoint lists, pasted tables, or a verbal description. Use when asked to build a project roadmap, product roadmap, migration timeline, release plan, onboarding sequence, run-of-show, phase plan, or any visual schedule showing items over time. Interviews the user if data is incomplete, constructs a validated JSON document, then renders it into a single sandbox-safe HTML file. Chooses between two layouts automatically: horizontal roadmap with swimlanes (for phase-range data) or vertical milestone list (for point-in-time events). No external dependencies — output runs inside a SharePoint sandboxed iframe.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Whatscheap/igly-canvas-plugintheir own version, first seen Oct 17, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Whatscheap/igly-canvas-plugin★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository61 other files it gives its agents.
- analyze-document-librarySkill
- broken-link-auditorSkill
- build-sharepoint-business-solutionSkill
- campaign-storySkill
- convert-cowork-skill-to-sharepointSkill
- copilot-toolboxSkill
- custom-image-taggerSkill
- decision-register-builderSkill
- document-browserSkill
- dossierSkill
- exec-reportSkill
- file-classifierSkill
- find-relevant-skillSkill
- flashcards-dashboardSkill
- generate-site-onboarding-guideSkill
- generate-test-contentSkill
- guest-access-reviewerSkill
- intranet-page-lifecycle-reviewSkill
- invoice-po-reconciliationSkill
- kb-ai-review-liteSkill
- knowledge-readiness-advisorSkill
- learning-designerSkill
- library-cleanupSkill
- list-stylingSkill
- metadata-completeness-auditorSkill
- narrated-story-animationSkill
- news-governance-reviewSkill
- organize-librarySkill
- permission-reportSkill
- project-health-checkSkill
- project-intelligence-change-event-extractionSkill
- project-intelligence-root-cause-analysisSkill
- project-intelligence-timeline-dashboardSkill
- rename-files-date-prefixSkill
- resume-screening-summarizerSkill
- review-councilSkill
- rfp-response-compliance-reviewSkill
- rfp-response-content-finderSkill
- rfp-response-content-generationSkill
- rfp-response-extractionSkill
- rfp-response-proposal-reviewSkill
- rfp-response-quality-tone-reviewSkill
- rfp-response-strategy-synthesisSkill
- scorecard-matrixSkill
- sharepoint-safe-htmlSkill
- site-pages-content-calendarSkill
- site-storage-heatmapSkill
- style-bentoSkill
- style-blueprintSkill
- style-figma-cleanSkill
- style-glassmorphismSkill
- style-high-contrastSkill
- style-monochromeSkill
- style-neobrutalismSkill
- style-pastelSkill
- style-retroSkill
- style-terminalSkill
- sync-blocker-auditorSkill
- team-newsletter-publisherSkill
- topic-explainerSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Check what the user has already provided before asking anything:
- Very specific: line 27
SharePoint lists: Call list_items on the relevant lists.
- Distinctive: line 35
If the data or intent is not fully clear, ask these questions in a single message — not one at a time:
- Very specific: line 59
When data is mixed (some ranges, some points), use roadmap mode and mark point-in-time items as "milestone": true.
- Very specific: line 119
If item_end equals item_start, treat the item as a milestone (diamond) regardless of the milestone flag
- Distinctive: line 125
Run every check before rendering.
- Distinctive: line 181
No external URLs, CDN links, or web fonts in the output HTML.
- Distinctive: line 183
All data values must be pre-rendered into the HTML — the page must be fully correct with JavaScript disabled.
- Distinctive: line 184
Do not generate Python, PowerShell, or any other scripts — output is always the HTML file.
- Distinctive: line 185
Do not render until the validation checklist passes.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Roadmap Timeline
Generates a complete, self-contained HTML visualization by (1) interviewing the user or parsing their data, (2) constructing and validating a JSON document, then (3) rendering that JSON into HTML using assets/roadmap-timeline-template.html. The JSON is the authoritative source of truth; the HTML is fully determined by it.
Step 1: Determine the Data Source
Check what the user has already provided before asking anything:
- SharePoint lists: Call
list_itemson the relevant lists. Read all needed columns before proceeding. - CSV or table pasted in chat: Parse all rows. Do not ask for data you already have.
- Verbal description only: Proceed to Step 2.
Step 2: Interview the User
If the data or intent is not fully clear, ask these questions in a single message — not one at a time:
- Topic: What is this timeline about? (e.g., "Q3 product launch plan," "cloud migration phases," "new employee onboarding")
- Date range: What is the overall span? (start and end dates for the full view)
- Swimlanes / tracks: Are there parallel workstreams or teams? (e.g., "Engineering," "Product," "Marketing") If yes → roadmap mode. If items are point-in-time events only → milestones mode.
- Items: List the phases or milestones with their dates, owners, and status.
- Palette: Warm paper (cream/terra-cotta), deep ink (dark/gold), clean white (white/green), or slate (gray/blue)? Default to slate for roadmaps, warm-paper for milestone lists.
- Footer: Any footer text (date, project name, audience)?
Confirm your understanding before building the JSON.
Step 3: Choose the Rendering Mode
Roadmap mode — use when items have start and end date ranges (duration blocks):
- Items span days, weeks, or months
- Multiple parallel workstreams exist (or a single flat track is still cleaner as roadmap)
- The user mentions "phases," "sprints," "quarters," "swimlanes," or "gantt"
Milestones mode — use when items are point-in-time events:
- Items have a single date (no duration)
- The user mentions "milestones," "deliverables," "checkpoints," "onboarding steps," or "run of show"
When data is mixed (some ranges, some points), use roadmap mode and mark point-in-time items as "milestone": true.
Step 4: Build and Validate the JSON Document
Construct the JSON object. Full schema:
report object
| Field | Required | Description |
title | yes | Report title, shown in header strip |
subtitle | no | Subtitle or context line |
date_range_start | roadmap only | ISO date string, e.g. "2026-01-01" |
date_range_end | roadmap only | ISO date string, e.g. "2026-06-30" |
palette | yes | warm-paper, deep-ink, clean-white, or slate |
footer | no | Footer text |
mode string
"roadmap" or "milestones".
swimlanes array (roadmap mode only)
| Field | Required | Description |
id | yes | Short identifier, e.g. "eng" |
label | yes | Display name, e.g. "Engineering" |
items array
| Field | Required | Description |
id | yes | Unique short identifier, e.g. "item-1" |
title | yes | Display label for the block or card |
swimlane_id | roadmap only | References a swimlane id |
start | yes | ISO date string |
end | roadmap mode | ISO date string (omit for pure milestones mode) |
status | yes | on-track, at-risk, delayed, complete, or planned |
milestone | no | true if this is a point-in-time event within a roadmap |
owner | no | Text name of the owner (no Person column — plain text only) |
description | no | Additional detail shown in tooltip (roadmap) or card body (milestones) |
dependencies | no | Array of id strings; rendered as a text note, not as arrows |
Date-to-Percentage Computation (roadmap mode)
The skill pre-computes all layout positions as percentages. No JavaScript is required for positioning — all values are embedded in the HTML as inline styles.
| Value | Formula |
total_days | Days between date_range_end and date_range_start (inclusive span) |
item_left_pct | ((item_start − date_range_start) / total_days) × 100 |
item_width_pct | ((item_end − item_start) / total_days) × 100 |
today_left_pct | ((today − date_range_start) / total_days) × 100 |
Rules:
- Clamp all results to 0.00–100.00
- Round to 2 decimal places
- Minimum rendered width for any block: 1.50% (so very short items are always visible)
- If
item_endequalsitem_start, treat the item as a milestone (diamond) regardless of themilestoneflag
Today's date is known from the system context. If today falls outside the date range, omit the today-line entirely.
Validation Checklist
Run every check before rendering. Fix any failure before proceeding.
Document level:
modeis"roadmap"or"milestones"report.paletteis one of:warm-paper,deep-ink,clean-white,slateitemsarray has at least one entry- Roadmap mode:
report.date_range_startandreport.date_range_endare present and parseable as ISO dates - Roadmap mode:
date_range_endis afterdate_range_start - Roadmap mode:
swimlanesarray has at least one entry
Per item:
idis unique within theitemsarraytitleis present and non-emptystartis a valid ISO date string- Roadmap mode:
endis present and not beforestart statusis one of:on-track,at-risk,delayed,complete,planned- Roadmap mode:
swimlane_idreferences a valid swimlaneid dependenciesentries (if present) each reference a valid itemiditem_left_pct + item_width_pctdoes not exceed 101 (floating-point tolerance)
Computation check:
- All percentage values computed and clamped to 0–100
- Milestone items have
item_width_pct = 0(rendered as diamonds, not blocks) - Today-line computed only when today is within the date range
Step 5: Render the HTML
Read assets/roadmap-timeline-template.html.
For both modes:
- Replace
{{REPORT_TITLE}}in<title>with a concise page title. - Replace
{{PALETTE_CLASS}}on<body>withpalette-+ palette name. - Replace
{{HEADER}}with the.rpt-headerstrip (title, subtitle, date range). - Replace
{{CONTENT}}with the full rendered visualization (roadmap or milestones). - Replace
{{FOOTER}}with footer text (or empty string). - Replace
{{INLINE_SCRIPT}}with any enhancement JS (tooltip hover, palette switcher if needed).
See references/components.md for the exact HTML structure of each mode.
Roadmap Mode Rendering
Generate the month-marker ruler, then one .swimlane row per swimlane entry. Within each row:
- Render phase blocks as
<div class="phase-block status-{status}">with inlineleftandwidthpercentage styles. - Render milestone items as
<div class="milestone-diamond status-{status}">with inlineleftpercentage style. - Render the today-line as
<div class="today-line">with inlineleftpercentage style (omit if today is out of range).
Milestones Mode Rendering
Group items by phase (if phases are named in description or a group field is provided). For each item render a .milestone-card with a date badge, status dot, title, owner, and description.
Hard Constraints
- No external URLs, CDN links, or web fonts in the output HTML.
- No
<script src>tags. All JavaScript must be inline. - All data values must be pre-rendered into the HTML — the page must be fully correct with JavaScript disabled. JS adds tooltips and animations but must never be required for correctness.
- Do not generate Python, PowerShell, or any other scripts — output is always the HTML file.
- Do not render until the validation checklist passes.
- Owner fields must be plain text — no Person column types.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

