使用说明
天皇
开发团队的协作式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 |
<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图形引擎和看板可视化。