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.

16 stars

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

$curl -o ~/.claude/skills/todo-visualizer/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/data-ai/todo-visualizer/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/todo-visualizer/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How todo-visualizer Compares

Feature / Agenttodo-visualizerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

16
from diegosouzapw/awesome-omni-skill

Expert in Three.js, 3D graphics, and interactive 3D visualizations

ux-visualizer

16
from diegosouzapw/awesome-omni-skill

Analyzes source code or requirements to generate high-fidelity screen and state transition diagrams. Specialized in SPA state mapping.

agenttodo

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Execute task planning based on the specified file and manage questions[/todo-task-planning file_path --pr --branch branch_name]

gsd:add-todo

16
from diegosouzapw/awesome-omni-skill

Add a todo item to track tasks

bgo

10
from diegosouzapw/awesome-omni-skill

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.

Coding & Development

a11y-review

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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.