跪拜 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 ↗