协作式看板工具

Mikadojo是一个为开发团队设计的协作式看板工具,支持将复杂目标分解为依赖关系图,并通过AI代理进行管理。

  • by RebelliousSmile
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 RebelliousSmile/mikadojo

使用说明

天皇

开发团队的协作式Mikado/看板。将复杂的目标分解为依赖关系图,直观地跟踪进度,并通过GitHub Issues协调工作——所有这些都是由人工智能代理通过MCP驱动的。

什么是天皇制?

这 天皇方法 是一种处理大规模代码更改的结构化方法。你从一个目标开始,尝试它,发现什么会中断,并递归分解,直到找到没有依赖关系的叶子任务。然后,您自下而上地工作:首先完成叶子任务,然后向上传播,直到目标完成。

Mikadojo将其转化为具有依赖性跟踪、团队协作和AI代理集成的可视化看板。

特性

  • 看板+图形视图 --将你的Mikado图可视化为看板或依赖图(D3/Dagre)
  • MCP服务器 --AI代理(Claude Code)可以通过MCP工具创建图形、添加节点、更新状态
  • 团队协作 --阶段(设计/开发)、自我分配、GitHub问题集成
  • Git同步 --每次更改都是自动提交和推送的,周期性的拉取使每个人保持同步
  • YAML多文件存储 --每个节点一个文件,合并冲突最小

快速开始

# Install
cd mcp-server
pnpm install
pnpm run build

# Run
node dist/index.js

打开 http://localhost:3100 查看看板。

先决条件

  • Node.js 18+
  • pnpm
  • GitHub命令行界面(gh) --可选,GitHub Issues集成和团队功能所必需(gh auth login 进行身份验证)

建筑

一个Express进程(端口3100)提供所有服务:

Browser ──── HTTP ──────► Unified server (port 3100)
                            ├── Web UI (static files)
                            ├── REST API (/api/*)
                            ├── MCP protocol (/mcp)
                            ├── Git sync (auto commit/push/pull)
                            ├── GitHub Issues (via gh CLI)
                            └── File watcher (chokidar)
                                  │
Claude Code ── MCP (HTTP) ──────┘

连接AI代理

配置Claude Code以连接到正在运行的Mikadojo服务器。

项目级别 (.mcp.json 在repo根目录):

{
  "mcpServers": {
    "kanban": {
      "type": "http",
      "url": "http://localhost:3100/mcp"
    }
  }
}

全球 (~/.claude.json):

{
  "mcpServers": {
    "kanban": {
      "type": "http",
      "url": "http://localhost:3100/mcp"
    }
  }
}

添加配置后重新启动Claude Code。

团队工作流程

部署模型

每个开发人员都从自己的git克隆在自己的机器上运行自己的Mikadojo实例。这 gh CLI使用自己的GitHub帐户对每个开发人员进行身份验证。

阶段

图有两个阶段:

阶段 谁 什么
设计 维护者 分解目标,添加/删除/重新组织节点。每个节点都会创建一个GitHub Issue。
发展 所有开发 结构已锁定。开发人员自行分配节点并对其进行处理。

典型流量

  1. 维护者 创建图形并将其分解为节点(设计阶段)
  2. 维护者 锁定图形(lock_graph)--切换到开发阶段
  3. 开发 打开看板板,点击 拿 在可操作节点上——将GitHub问题分配给自己
  4. 开发 正在处理任务,单击 完成 --关闭GitHub问题
  5. 所有更改都是自动提交和推送的。其他开发人员在git pull后看到更新。

回归设计

维护者可以解锁子树(unlock_subtree)只要子树中没有指定节点,就可以对其进行重构。这遵循了天皇原则:根据需要恢复和重新分解。

存储格式

图形存储在YAML目录中 mikado/:

mikado/
  my-project/
    _meta.yaml           # goal, root, version, phase, github config
    setup-ci.yaml        # description, status, depends_on, assignee, issue_number
    write-tests.yaml
    deploy-staging.yaml

节点 id 从文件名派生(否 id YAML中的字段)。

REST API

方法 端点 描述
GET /api/graphs 列出所有图表及其数据
POST /api/graphs/:name/nodes/:id/status 更新节点状态
POST /api/graphs/:name/nodes/:id/assign 自行分配节点(开发阶段)
POST /api/graphs/:name/nodes/:id/unassign 释放节点
GET /api/me 当前GitHub用户名
GET /api/last-change 上次更改的时间戳(用于轮询)

MCP工具

图形管理

工具 说明
list_graphs 列出所有图形名称
get_graph 获取完整的图形数据
create_graph 使用根节点创建新图
delete_graph 删除图形
lock_graph 锁图:设计->开发
unlock_subtree 解锁子树以返回设计

节点管理

工具 说明
get_node 获取特定节点
add_node 添加节点(仅设计阶段)
update_node 更新节点字段
delete_node 删除节点(仅限设计阶段)
update_node_status 更改节点状态
get_actionable_nodes 让节点准备好工作
get_current_user 获取当前GitHub用户名

存储库交互

工具 说明
register_repo 按名称和路径注册仓库
list_repos 列出已注册的仓库
read_repo_directory 列出存储库中的文件
read_repo_file 从仓库中读取文件

配置

环境变量 默认值 描述
PORT 3100 服务器端口
MIKADO_DIR <project-root>/mikado mikado图形目录的路径
GIT_PULL_INTERVAL 30000 Git拉取间隔(毫秒)

运行测试

# Unit tests (108 tests)
cd mcp-server
pnpm run test

# E2E tests (10 tests)
cd ..
pnpm exec playwright test

发展

cd mcp-server
pnpm run dev    # tsx watch mode, no build needed

学分

由...创建 埃马纽埃尔·康拉迪 --原始概念、Mikado图形引擎和看板可视化。

许可证

麻省理工学院