todo-visualizer
Read local Markdown TODO files (supports Chinese/English), analyze task completion status, and generate beautiful single-page HTML dashboards with timeline visualization, interactive task lists, and persistent progress tracking.
Best use case
todo-visualizer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Read local Markdown TODO files (supports Chinese/English), analyze task completion status, and generate beautiful single-page HTML dashboards with timeline visualization, interactive task lists, and persistent progress tracking.
Teams using todo-visualizer should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/todo-visualizer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How todo-visualizer Compares
| Feature / Agent | todo-visualizer | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Read local Markdown TODO files (supports Chinese/English), analyze task completion status, and generate beautiful single-page HTML dashboards with timeline visualization, interactive task lists, and persistent progress tracking.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Todo Visualizer Agent Skill
## When to Use
Use this skill when the user wants to:
- Visualize TODO files in an interactive dashboard
- Track task completion progress
- Generate HTML reports from markdown TODOs (especially for learning roadmaps)
- Analyze timelines containing weeks/days (supports "Week/Day" and "第X周/第X天" formats)
## How to Use
Follow these steps to generate an HTML dashboard from a TODO file:
### Step 1: Read the TODO File
Use the `Read` tool to read the markdown TODO file path provided by the user.
### Step 2: Analyze the Content
Use LLM analysis to extract and structure the information.
**IMPORTANT**: You should check the `examples/` directory for reference formats if the input file structure is complex.
- `examples/table_style.md`: Standard table format
- `examples/list_style.md`: Standard Markdown list format (`- [ ]`)
- `examples/mixed_style.md`: Mixed format
**Extraction Rules:**
1. **Identify the structure**: Look for sections representing time periods.
* **Weeks**: "Week 1", "第一周", "Week One", etc.
* **Days**: "Day 1", "第一天", "Monday", "周一", etc.
* **If no explicit timeline**: Group tasks by their Headers (H1, H2) as "Weeks" or "Categories".
2. **Extract tasks**: Parse each task with its associated metadata.
* **Focus**: Often found in table columns like "Focus", "重点", "主题".
* **Tasks**: The actual work items.
* **Nested Lists**: Flatten nested tasks into the main list but preserve hierarchy in the text (e.g., "Parent > Child"). Count every checkbox as a task.
3. **Detect completion status**: Analyze patterns that indicate completed vs incomplete tasks.
* **Completed**: `✓`, `DONE`, `✅`, `[x]`, `[X]`, `完成`, `已完成`.
* **Incomplete**: Empty cells, `[ ]`, `TODO`, `未开始`.
* **Note**: If a row has mixed signals, prioritize explicit completion markers.
4. **Organize by timeline**: Structure tasks chronologically.
### Step 3: Read the Template
Read the HTML template from `assets/template.html` using the `Read` tool.
### Step 4: Inject the Data
Replace the placeholder data in the template with the extracted TODO information.
You need to replace the `const todoData = { ... };` block in the script.
**Data Structure Requirements:**
* `title`: Document title (e.g., "Linux Learning Roadmap").
* `weeks`: Array of week objects.
* `weekNumber`: Integer (1, 2, ...).
* `title`: Display title (e.g., "Week 1: Basics" or "第一周:基础知识").
* `days`: Array of day objects.
* `day`: Display string (e.g., "Day 1" or "Section 1").
* `focus`: (Optional) Focus area string.
* `tasks`: Array of task objects.
* `id`: Unique string ID (e.g., "w1-d1-1").
* `text`: Task description.
* `completed`: Boolean `true` or `false`.
* `totalTasks`: Integer count.
* `completedTasks`: Integer count.
### Step 5: Write the Output
Use the `Write` tool to save the generated HTML to a file (e.g., `todo-dashboard.html`) in the **same directory** as the source TODO file.
* If the user provided a specific output filename, use it.
* Otherwise, append `.html` to the original filename or use `dashboard.html`.
## Example
### Input (List Format)
```markdown
# Project Alpha
## Phase 1
- [x] Setup Repo
- [ ] Design DB
- [ ] Users Table
- [ ] Posts Table
```
### Extracted Data Structure
```json
{
"title": "Project Alpha",
"weeks": [
{
"weekNumber": 1,
"title": "Phase 1",
"days": [
{
"day": "Tasks",
"focus": "General",
"tasks": [
{
"id": "1-1",
"text": "Setup Repo",
"completed": true
},
{
"id": "1-2",
"text": "Design DB",
"completed": false
},
{
"id": "1-3",
"text": "Design DB > Users Table",
"completed": false
},
{
"id": "1-4",
"text": "Design DB > Posts Table",
"completed": false
}
]
}
]
}
],
"totalTasks": 4,
"completedTasks": 1
}
```
## Constraints
- **Single HTML output**: The output must be a single, self-contained HTML file.
- **Client-side only**: No backend dependencies.
- **Local Storage**: The template handles local storage, you just provide the initial state.
- **Encoding**: Ensure UTF-8 encoding for Chinese character support.
- **Robustness**: If completion status is ambiguous, default to `false`.Related Skills
3d-visualizer
Expert in Three.js, 3D graphics, and interactive 3D visualizations
ux-visualizer
Analyzes source code or requirements to generate high-fidelity screen and state transition diagrams. Specialized in SPA state mapping.
agenttodo
Manage tasks via the AgentTodo REST API — a shared execution layer for humans and AI agents. Use when the user asks to create, list, update, or manage tasks, todos, projects, or agent feedback.
adding-todos
Use this skill to capture an idea, task, or issue that surfaces during a Kata session as a structured todo for later work. This skill creates markdown todo files in the .planning/todos/pending directory with relevant metadata and content extracted from the conversation. Triggers include "add todo", "capture todo", "new todo", and "create todo".
todo-task-planning
Execute task planning based on the specified file and manage questions[/todo-task-planning file_path --pr --branch branch_name]
gsd:add-todo
Add a todo item to track tasks
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
a11y-review
Controleer toegankelijkheid conform WCAG 2.1 AA. Gebruik bij het reviewen van templates, CSS of HTML, of wanneer de gebruiker vraagt om toegankelijkheid te checken.
a11y-personas
Library of accessibility personas representing people with various disabilities, impairments, and situational limitations. Use this skill when users ask about disability types, accessibility personas, user needs for specific conditions, how people with disabilities use technology, assistive technology users, or designing for accessibility. Triggers on requests about blindness, deafness, cognitive disabilities, motor impairments, low vision, screen readers, sign language, autism, ADHD, temporary disabilities, or any question about "how would a person with X use this".
a11y-debugging
Uses Chrome DevTools MCP for accessibility (a11y) debugging and auditing based on web.dev guidelines. Use when testing semantic HTML, ARIA labels, focus states, keyboard navigation, tap targets, and color contrast.
a11y-annotation-generator
Adds accessibility annotations (ARIA labels, roles, alt text) to make web content accessible. Use when user asks to "add accessibility", "make accessible", "add aria labels", "wcag compliance", or "screen reader support".
a-share-analysis
Comprehensive China A-share stock analysis covering fundamental analysis, technical analysis, policy impact assessment, and market-specific features (T+1 trading, price limits, northbound capital flow). Use when user asks about A股分析, Chinese mainland stocks, Shanghai/Shenzhen listed stocks, or needs analysis considering China market characteristics.