让 Cursor Agent 稳定与 CodeBoard 看板同步:正确安装 Rules + Skills,并保证 API 地址与正在运行的 CodeBoard 一致。
- CodeBoard 桌面应用已安装并保持运行(关闭后 Agent 无法上报)
- Cursor 已开启 Agent 与 Skills(设置中确认)
- 记下左侧面板显示的 Host:Port(默认
127.0.0.1:2585),下文统称 API 基址,例如http://127.0.0.1:2585
| 机制 | 路径 | 作用 |
|---|---|---|
| Rules | .cursor/rules/*.md |
alwaysApply: true 时每条对话都会注入,保证「先 session_start」等硬约束 |
| Skills | ~/.cursor/skills/<名称>/SKILL.md |
详细流程、curl 示例;由描述匹配或手动启用 |
不要把自定义 Skill 安装到 ~/.cursor/skills-cursor/:该目录为 Cursor 内置技能,升级可能被覆盖,且不符合官方约定。
若你已克隆 CodeBoard 源码仓库:
mkdir -p /你的业务项目/.cursor/rules
cp /绝对路径/codeboard/.cursor/rules/codeboard.md /你的业务项目/.cursor/rules/然后用编辑器打开复制后的 codeboard.md,将文中的 http://127.0.0.1:2585 全部替换为 CodeBoard 左侧面板显示的 API 基址(含端口)。
在目标项目根目录执行;API_BASE 必须与左侧面板一致。
mkdir -p .cursor/rules
API_BASE="http://127.0.0.1:2585" # ← 修改为实际 Host:Port
cat > .cursor/rules/codeboard.md << RULES_EOF
---
description: CodeBoard 看板对接规则 — 每次对话必须与看板同步状态
globs:
alwaysApply: true
---
# CodeBoard 看板对接(强制执行)
你正在一个已接入 CodeBoard 看板的项目中工作。**每次对话都必须按以下流程与看板同步。**
## 看板信息
- API 基址: ${API_BASE}(与 CodeBoard 应用左侧面板一致)
- 项目配置: `.dashboard/project.yaml`(读取 `project_id`)
- 详细 Skill: 业务仓库内若有副本则为 `skills/codeboard/SKILL.md`;否则读 `~/.cursor/skills/codeboard/SKILL.md`
## 强制执行流程
### 对话开始后立即执行(在做任何事之前)
1. 读取 `.dashboard/project.yaml` 获取 `project_id`
2. 立即发送 `session_start`(`task_list` 可先为 `[]`,不要等规划完成),示例(缩进为 Markdown 代码块):
curl -s -X POST ${API_BASE}/api/tasks/update \\
-H "Content-Type: application/json" \\
-d '{"project_id":"<project_id>","session_id":"sess_<时间戳>","task_id":"task_<时间戳>","type":"session_start","goal":"<用户需求简述>","task_list":[]}'
3. 再读取必要记忆(必读 vibe-config)与 Skill 全文
### 规划完成后
4. 再次 `POST /api/tasks/update`,`type` 仍为 `session_start`,**相同** `session_id`,携带完整 `task_list`(勿使用不存在的 `type`)
### 每个任务
5. `task_start` → 执行 → `task_complete`
### 收尾
6. `session_complete`(`summary` 必填)
7. 更新 `.dashboard/memories/` 下 9 类记忆(`session-history.md` 每次必更)
8. `POST /api/memories/<project_id>/sync`,`files` 必须为数组;或在项目根执行 `codeboard memory sync <project_id>`
## 不可违反
- 不可跳过或延后 **session_start**
- 不可省略 **task_start** / **task_complete**
- 不可省略 **session_complete** 的 **summary**
- 不可跳过记忆收录与同步
RULES_EOF注意:此处 heredoc 结束符
RULES_EOF必须顶格、单独一行。若改用<< 'RULES_EOF',则${API_BASE}不会被展开,需生成后手动替换地址。
Cursor 只认 ~/.cursor/skills/<技能目录>/SKILL.md(或项目内 .cursor/skills/,结构相同)。推荐符号链接,这样仓库内 skills/codeboard/references/ 会一并生效。
在已克隆的 CodeBoard 仓库外,任选一终端执行(把 REPO 换成你的绝对路径):
mkdir -p ~/.cursor/skills
REPO="/绝对路径/到/codeboard仓库"
ln -sfn "$REPO/skills/codeboard" ~/.cursor/skills/codeboard
ln -sfn "$REPO/skills/install-codeboard-skills" ~/.cursor/skills/install-codeboard-skills
test -f ~/.cursor/skills/codeboard/SKILL.md && echo "codeboard skill OK"- 启动 CodeBoard,点击左侧面板服务地址旁的 魔法棒
- 生成内容已包含当前 Host:Port
- 保存对话框中请将文件存为:
~/.cursor/skills/codeboard/SKILL.md(若目录不存在先mkdir -p ~/.cursor/skills/codeboard)
单文件模板不含 references/,复杂流程请以仓库 skills/codeboard/ 为准或配合文档使用。
mkdir -p .cursor/skills
REPO="/绝对路径/到/codeboard仓库"
ln -sfn "$REPO/skills/codeboard" .cursor/skills/codeboard打开 Cursor Settings → Rules / Skills,确认 codeboard(及可选 install-codeboard-skills)已启用。修改 ~/.cursor/skills 后如未识别,重启 Cursor。
mkdir -p .dashboard/memories
cat > .dashboard/project.yaml << 'EOF'
project_name: "你的项目名称"
project_description: "项目描述"
project_id: "proj_<时间戳>"
created_at: "<当前时间 ISO>"
EOF
curl -s -X POST http://127.0.0.1:2585/api/projects/register \
-H "Content-Type: application/json" \
-d '{"project_id":"proj_<时间戳>","name":"项目名称","description":"描述"}'将 http://127.0.0.1:2585 换成你的 API 基址。
- CodeBoard 应用正在运行,health 正常:
curl -s <API基址>/api/health - Rules 中 API 与左侧面板 Host:Port 一致
-
~/.cursor/skills/codeboard/SKILL.md存在且 Cursor 已启用该 Skill - 项目根存在
.dashboard/project.yaml且project_id已在看板注册 - 记忆同步:在项目根执行
codeboard memory sync <project_id>(勿在cli/子目录执行,否则找不到.dashboard/memories)
- 用 Cursor 打开已配置的项目,新建 Agent 对话
- 观察是否最先出现对
session_start的curl(早于长篇规划) - 打开 CodeBoard,确认新 Session 卡片出现
- 任务执行过程中有
task_start/task_complete,结束时有session_complete与记忆同步
- 确认
.cursor/rules/codeboard.md存在且 frontmatter 含alwaysApply: true - 重启 Cursor;检查该文件是否被
.cursorignore排除
- 确认路径是
~/.cursor/skills/codeboard/SKILL.md,而不是散落的codeboard-SKILL.md且无父目录 - 勿把自定义内容放进
~/.cursor/skills-cursor/
POST /api/memories/<project_id>/sync的 body 必须为{"files":[...]},见 API.md
- 必须拷贝整个目录:
cp -R <REPO>/skills/codeboard ~/.cursor/skills/codeboard,否则丢失references/
- INSTALL.md — 应用与 CLI 安装
- API.md — 接口说明
- 仓库内
skills/install-codeboard-skills/SKILL.md— 安装步骤的机器可读版