跪拜 Guibai
← All articles
Frontend · JavaScript · Vue.js

Progress Reports Die When Every Git Commit Updates the Kanban Board

By 阳火锅 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Progress tracking that depends on memory or separate tools consistently drifts from reality. Hooking into `git commit` — the one action every developer already performs — eliminates the reporting gap without adding a new workflow, and the offline queue means it works even when the network doesn't.

Summary

MaDu is a lightweight progress-tracking tool built around a single idea: commit code, and the kanban updates itself. A CLI hook intercepts `git commit` and prompts the developer to select a task, bug, and progress percentage from a numbered list. The commit message gets formatted with a task ID and progress marker, and the data syncs to a web dashboard. Offline commits queue locally and upload when connectivity returns.

The web platform shows projects with battery-style progress bars (red below 30%, blue 30–79%, green 80%+), member commit logs, and auto-generated daily, weekly, and monthly reports. AI features handle three friction points: pasting a PRD or uploading a .docx auto-splits it into structured tasks; `git diff` analysis suggests a commit message; and a one-click report generator turns commit records into prose summaries.

A quick-command mode lets experienced users bypass the interactive prompts entirely — `madu done --task TASK-1001 --progress 70 --type task-iteration -m "message"` does the commit and the reporting in one line. The tool targets teams of 5–20 developers who find Jira too heavy and manual tracking too unreliable.

Takeaways
A `madu init` command registers a project; afterward, every `git commit` triggers an interactive prompt to select a task, bug, and progress percentage.
Commit messages are auto-formatted as `[TASK-1001] description (Progress: 70%)` and synced to a web dashboard.
Offline commits are stored locally and automatically uploaded when the network becomes available.
A web kanban displays projects with color-coded battery progress bars and per-member commit logs.
Pasting a PRD or uploading a .docx file lets AI split the requirements into a structured task list that can be batch-created.
AI generates commit-message suggestions from `git diff` and assembles daily, weekly, and monthly reports from commit records.
A `madu done` shortcut command bypasses the interactive prompts for experienced users who want a single-line commit-and-report.
The CLI only pulls tasks assigned to the current user, and recently used tasks are pinned to the top of the selection list.
Planned features include deadline alerts, burndown charts, task dependencies, and CI/CD result write-back.
Conclusions

The core insight is that progress reporting fails because it's a separate act from the work itself; attaching it to `git commit` makes it a side effect rather than a chore.

The offline queue design acknowledges a real-world condition — developers commit on trains, planes, and in coffee shops — that most SaaS project tools ignore.

MaDu explicitly positions itself between "too heavy" and "nothing," targeting the 5–20 person team gap where Jira is overkill but a spreadsheet is chaos.

The AI features are applied to three narrow, high-friction tasks (PRD breakdown, commit message writing, report generation) rather than attempting a broad AI assistant, which keeps scope manageable.

Concepts & terms
Commit hook (MaDu CLI)
A post-commit or prepare-commit-msg hook that intercepts `git commit`, presents an interactive terminal prompt to select a task and progress, and formats the commit message with task metadata before syncing to a web platform.
Offline queue with auto-retry
When the network is unavailable, progress data is serialized to local storage and automatically pushed to the server once connectivity is restored, so commits never block on a network call.
Battery-style progress bar
A visual progress indicator that changes color by threshold: red below 30%, blue from 30% to 79%, and green at 80% or above, giving an at-a-glance status without reading a number.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗