c6e66baa19
- web/: phosphor 调度台风格纯静态看板,审批闸内联 accept/reject(拒绝必填意见),WS 实时 - src/api/static.ts: 手写静态服务(路径穿越防护),daemon 接入 - src/mcp/: stdio MCP server,@modelcontextprotocol/sdk 1.29.0,12 工具薄封装 REST - src/cli/: 零依赖 CLI(project/task/next/approvals/import-todo),旧 todo.json 导入器 - 实测: pangolin 18 条旧任务导入 45 条;端到端验证通过 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
49 lines
1.9 KiB
Markdown
49 lines
1.9 KiB
Markdown
# maestro
|
||
|
||
多项目 TODO 管理与 Agent 执行系统(本地优先 daemon · Node/TypeScript)。
|
||
|
||
按任务复杂度(Hard / Medium / Easy)分级驱动审批闸,用后台 agent(Claude Code)在隔离 git worktree 自动执行可执行任务,改动不自动合并、等你审。
|
||
|
||
- 完整设计见 **[DESIGN.md](./DESIGN.md)**。
|
||
- 当前状态:**脚手架 + 基础模型/状态机/schema**(Phase 1 起步)。
|
||
|
||
## 结构
|
||
```
|
||
src/model/ 复杂度、状态机、实体类型(已落地)
|
||
src/store/ SQLite schema + 访问层
|
||
src/api/ REST + WebSocket
|
||
src/mcp/ MCP server(给 Claude Code)
|
||
src/executor/ Agent SDK 封装、worktree 管理、verify
|
||
src/daemon/ maestrod 入口、编排器、worker
|
||
web/ 看板 cli/ maestro CLI
|
||
```
|
||
|
||
## 开发
|
||
```bash
|
||
npm install
|
||
npm run typecheck # tsc --noEmit
|
||
npm run build # → dist/
|
||
npm run dev # 启动 daemon(开发)
|
||
```
|
||
|
||
> 依赖版本为初始值;MCP SDK 与 Claude Agent SDK 在 Phase 2 接入时按官方文档核定后再加。
|
||
|
||
## 接入 Claude Code(MCP)
|
||
|
||
先 `npm run build`,并保证 maestrod 在跑(`npm run dev`,默认 http://127.0.0.1:4517)。两种接法:
|
||
|
||
```bash
|
||
# 方式一:claude mcp add(在要接入的项目里执行)
|
||
claude mcp add maestro -e MAESTRO_URL=http://127.0.0.1:4517 -- node /绝对路径/maestro/dist/mcp/index.js
|
||
```
|
||
|
||
```jsonc
|
||
// 方式二:项目根放 .mcp.json(模板见本仓库 .mcp.json.example)
|
||
{ "mcpServers": { "maestro": {
|
||
"command": "node",
|
||
"args": ["/绝对路径/maestro/dist/mcp/index.js"],
|
||
"env": { "MAESTRO_URL": "http://127.0.0.1:4517" } } } }
|
||
```
|
||
|
||
工具:`list_projects` / `create_project` / `list_tasks` / `get_task` / `create_task` / `decompose_task` / `write_plan` / `write_spec` / `write_operations` / `update_status` / `get_next_executable` / `get_pending_approvals`(只读;accept/reject 在 Web 看板做)。
|