天皇
开发团队的协作式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。 |
| 发展 | 所有开发 | 结构已锁定。开发人员自行分配节点并对其进行处理。 |
典型流量
- 维护者 创建图形并将其分解为节点(设计阶段)
- 维护者 锁定图形(
lock_graph)--切换到开发阶段 - 开发 打开看板板,点击 拿 在可操作节点上——将GitHub问题分配给自己
- 开发 正在处理任务,单击 完成 --关闭GitHub问题
- 所有更改都是自动提交和推送的。其他开发人员在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 | ` | |
| /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图形引擎和看板可视化。
