npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ganttmd

v1.12.1

Published

Markdown-native 项目进度管理工具,面向 AI Agent 开发场景。

Readme

GanttMD

npm version license

GanttMD 是一个 Markdown 原生的任务状态治理工具,面向有 AI Agent 参与的软件项目。

任务数据以 .ganttmd/ 目录保存在项目内,工具通过 ganttmd CLI 安装在项目外。它提供校验、看板、运行态聚合和 follow-up 治理能力——不替代需求文档、PR 评审或项目管理平台。

安装

npm install -g ganttmd

验证安装:

ganttmd --version
ganttmd --help

本仓库本地开发时可直接安装当前工作树:

cd /path/to/GanttMD
npm install -g .

如果只是验证本仓库当前实现,建议先跑一次:

npm test

快速开始

在目标项目根目录执行:

ganttmd init                              # 创建 .ganttmd/ 骨架,不覆盖已有文件
ganttmd doctor                            # 先看 schema 和健康状态
ganttmd validate                          # 校验任务结构(0 warning 才继续)
ganttmd project add . --id demo --name Demo
ganttmd start --no-open                   # 启动看板 → http://127.0.0.1:7777

目标项目只提交 .ganttmd/ 目录:

your-project/
  AGENTS.md
  .ganttmd/
    config.yaml
    followups.md
    runs.md
    tasks/
      product.md
      engineering.md
      quality.md

项目只保存 .ganttmd/ 数据,工具本体不提交到目标项目。

ganttmd init 当前会补齐这 5 个最小文件,但不会覆盖已有内容:

  • .ganttmd/README.md
  • .ganttmd/config.yaml
  • .ganttmd/tasks/main.md
  • .ganttmd/followups.md
  • .ganttmd/runs.md

如果项目需要自定义看板里的“复制指令”,直接在 .ganttmd/config.yamlagent_command 配置块;可在 templates.default 写统一模板,也可按状态配置 todoreviewblocked 等模板。

初始化后第一步不是继续堆样例,而是把 tasks/main.md 里的示例任务替换成项目真实任务,再执行 doctorvalidate

新项目起步建议

不要第一天就写太细。推荐起步规模:

  • 3 个里程碑,2-4 个任务文件,10-20 个任务。
  • 每个任务只写必要字段(id、title、status、dependencies)。
  • 等项目真实推进一轮后,再补 next_actionacceptancesource_docs 的细节。

务必把 docs/Agent协作规则模板.md 复制到项目根目录 AGENTS.md——Agent 不会天然知道 GanttMD 的存在,必须通过 AGENTS.md 明确告诉它任务文件在哪、怎么领取、怎么完成。

任务文件示例

### API-001 实现笔记同步 API

```ganttmd-task
id: API-001
title: 实现笔记同步 API
status: todo
dependencies: [SPEC-001]
milestone: M1
track: backend
domain: sync
priority: P0
source_docs: [docs/architecture.md]
next_action: 实现保存接口和版本冲突响应
acceptance: [保存接口幂等, 版本冲突返回 409, 错误响应含可读 message]
evidence: []
```

补充说明可以写在任务块外面。

命令行

| 命令 | 用途 | |---|---| | ganttmd init [path] | 创建 .ganttmd/ 骨架,不覆盖已有文件 | | ganttmd validate [path] [--json] | 校验任务、follow-up、run 和 checklist | | ganttmd doctor [path] [--json] | 检查 schema 版本和项目健康 | | ganttmd migrate [path] [--apply] | 迁移 schema(默认 dry-run) | | ganttmd upgrade [path] [--apply] [--json] | 执行安全升级:补齐托管说明、schema,并受控清理已废弃旧文件 | | ganttmd project add <path> [--id <id>] [--name <name>] | 登记项目到本机看板 | | ganttmd project list [--json] | 查看已登记项目 | | ganttmd project remove <id-or-path> | 移除登记(不删项目数据) | | ganttmd start [--port 7777] [--no-open] | 后台启动看板服务,可禁止自动打开浏览器 | | ganttmd stop [--json] | 关闭看板服务 | | ganttmd status [--json] | 查看服务状态 | | ganttmd serve [--port 7777] | 前台启动服务(调试用) | | ganttmd static [path] [--out dir] | 导出离线静态看板 | | ganttmd template eject [path] [--dry-run] | 把内置 Agent 指令模板追加到 config.yamlagent_command 配置块 |

validate --jsondoctor --json 的返回码可直接用于 CI 阻断。

要自定义看板「复制指令」的文案,修改 .ganttmd/config.yamlagent_command 配置块即可。ganttmd template eject 可以把内置模板追加成可编辑的 agent_command 配置。详见 SCHEMA.md §9.4。

升级与迁移边界

  • ganttmd doctorvalidatestatusstart/stop 只读项目数据,不改 .ganttmd/
  • ganttmd upgrade 是推荐入口:默认 dry-run,--apply 时才写盘。
  • 当前 upgrade 会做三类安全动作:补 config.yamlganttmd.schema_version、升级托管的 .ganttmd/README.md、删除命中白名单且内容仍是旧样板的废弃文件。
  • 当前废弃白名单示例包括:.task-card.mdmilestones/overview.mdviews/timeline.json
  • 命中废弃白名单但内容已被用户改过的文件不会自动删除,只会报 warning。
  • upgrade --apply 写盘前会在 .ganttmd/.backup/<timestamp>/upgrade/ 生成备份。
  • ganttmd migrate 仍保留为低层 schema 迁移命令;只处理 config.yamlschema_version

详细操作见 安装、更新、卸载与迁移

看板视图

启动后访问 http://127.0.0.1:7777,内置六种视图:

  • 执行视角 — 按可接手顺序展示任务,自动推荐下一步
  • 里程碑视角 — 按里程碑分组,显示阶段进度
  • 主线视角 — 按 track 分组(spec / backend / frontend / infra / quality)
  • 模块视角 — 按 domain 分组(业务域或能力域)
  • 风险视角 — 聚合阻塞任务、未清理 follow-up 和严重健康问题
  • Follow-up — 管理后续事项、决策和延期项;支持 全部待处理等待用户裁决延期复查高风险事项已转正式任务已关闭 等多选标签。已转正式任务的卡片会读取关联任务状态;关联任务已完成时进入已完成分组,阶段标签和任务状态分开显示。

可通过 .ganttmd/config.yaml 配置启用的视图和默认视图:

views:
  enabled: [execution, milestone, track, module, risk, followup]
  default: execution

适用场景

  • AI Agent 需要明确的"下一步做什么"
  • 依赖和阻塞关系频繁变更,人工对齐成本高
  • follow-up 常留在聊天里,需要收口到可追踪清单
  • 交付需要可验证证据链(evidence、verification)

不适合: 全栈项目管理(Jira/Linear)、10 人以上团队协作、强实时看板、需求文档本身。

文档

许可证

ISC