dsh-yunxiao-taskboard
v1.6.1
Published
DeepSeek Harness plugin: Aliyun Yunxiao requirements and defects kanban by status, with detail drawer, comment feed and posting, work item editing, image preview, one-click session dispatch, Req/Bug creation, and native tools for status transitions, work
Maintainers
Readme
dsh-yunxiao-taskboard
DeepSeek Harness(DSH)插件:把阿里云云效的需求和缺陷按状态看板展示,点开即看详情,可一键派到工作区处理。
数据实时读云效 OpenAPI,本地不另存工作项。
✨ 功能
- 📋 按状态看板 - 需求 / 缺陷分栏,按状态列展示,支持关键词与编号检索
- ✍️ 新建需求 / 缺陷 - 选择项目、类别和项目成员负责人;支持标题与描述,不支持附件
- 🔍 详情抽屉 - 状态、负责人、创建人、类型、项目、时间、描述(富文本排版保留)、附件
- 💬 评论展示与发布 - 详情抽屉内按时间展示评论(Markdown / 富文本均可读),可直接发布 Markdown 评论
- ✏️ 需求编辑 - 详情内编辑标题、描述和负责人;未改动的字段不提交,未改描述时保留原富文本;含图片/表格的描述改前需二次确认
- 🖼️ 图片预览 - 描述内图片经 Host 换取 OSS 直链,点开弹层等比预览,不跳转不下载
- 🚀 一键派发 - 「处理」按钮选择工作区,直接起会话并预填 prompt
- 📝 改动留档 -
yunxiao_comment把每次改动写成需求评论,推送后把 Codeup 提交关联到需求 - 🛠️ 原生工具 -
yunxiao_workitems(查询)、yunxiao_project_members(选择负责人)、yunxiao_create_workitem(创建 Req/Bug)、yunxiao_transition(流转状态)、yunxiao_comment(评论留档 / 关联提交) - 🔐 令牌只在 Host - 令牌不出 Host 进程,前端不回显、不进日志
- 🔄 版本更新提醒 - 右上角显示当前版本;npm 有新版本时显示最新版号并可一键升级(重启 DSH 生效)
📸 截图
看板:需求 / 缺陷分栏按状态展示,卡片可拖拽流转,支持编号检索与优先级、负责人筛选。

详情:状态、负责人、类型、时间等字段,描述按原富文本排版展示(图片、附件同源)。

📦 安装
以 npm 组合包分发:dsh-yunxiao-taskboard,按组合包安装,无需本地目录。要求 DSH >= 0.2.1-rc.3(声明在 engines.dsh,兼容后续版本)。
Web:侧边栏「插件」→「添加插件」→ 搜索框填 dsh-yunxiao-taskboard → 安装。
交给 Agent:plugin_manager → install_bundle,target 填 dsh-yunxiao-taskboard。
CLI:
dsh plugin --profile <profile> add dsh-yunxiao-taskboardCLI 只装依赖,还要在「插件」页启用 dsh-yunxiao-taskboard 组合包(等价于在 profile 的 dsh.profile.bundles 里追加)。
安装后刷新 DSH Web,在插件设置里填令牌(配置见下)。
⚙️ 配置
插件 Config(设置页可改),非空值优先,空值退回环境变量:
| 字段 | 必填 | 空值退回 | 说明 |
| --- | --- | --- | --- |
| token | 是 | YUNXIAO_API_KEY | 云效个人访问令牌,writeOnly |
| organizationId | 中心版必填 | YUNXIAO_ORG_ID | Region 版留空 |
| baseUrl | 否 | YUNXIAO_API_BASE_URL → https://openapi-rdc.aliyuncs.com | Region 版填组织域名 |
| edition | 否 | 由 organizationId 是否为空推断 | center / region |
请求头固定 x-yunxiao-token。
✍️ 新建需求与缺陷
看板中的「新建需求/缺陷」会按当前项目与类别创建工作项。负责人必须从该项目成员列表中明确选择;AI 使用 yunxiao_project_members 查询后,再通过 yunxiao_create_workitem 创建,不能猜测负责人 ID。首版不含附件上传。
💬 评论与需求编辑
详情抽屉下半部分展示评论列表(按创建时间倒序),并在同一处发布评论:正文以 Markdown 保存,支持 Ctrl/⌘+Enter 快捷发布。发布后自动刷新评论列表。
点详情右上角「编辑」可修改标题、描述和负责人:
- 负责人列表来自当前项目成员;不选则保持原负责人。
- 描述只在改动时提交,并按 Markdown 重新排版;不改描述不会覆盖云效原有富文本内容。
- 原描述含图片或表格时,保存会先提示并需要再点一次「仍然保存」,避免静默丢失内容。
- 保存或评论成功后若详情/评论刷新失败,会提示「已保存,但刷新失败」,不会误报为保存失败。
部分写入操作要求令牌具备工作项写权限,权限不足时保存或评论会失败并在界面上给出原因。
📝 需求改动留档
开发需求/缺陷时用 yunxiao_comment 把改动写进工作项评论列表,推送后把 Codeup 提交关联到工作项:
yunxiao_comment({
id: 'EVXU-1095',
content: '## 改动\n- 科目余额表打印支持边距调整\n- 已验证 A4/A5 打印',
commits: [{ sha: 'abc1234', title: 'feat(print): 打印边距可调', url: 'https://codeup.aliyun.com/<组>/<库>/commit/abc1234' }],
})content以 Markdown 写到评论列表;提交列表会自动补在正文末尾(正文已提到的提交不重复)。commits[].url是 Codeup 提交页地址,插件用代码库列表反查关联接口要的代码库 id;反查不到时改传projectId。- 提交关联失败不回滚评论:返回值里
commits逐个给出linked和失败原因。 - 云效偶尔会在写入关联记录后同步 appshell 失败,POST 报错但记录已存在;插件会回查关联列表核对真实结果,已写入的返回
linked: true并带note,重试时已关联的提交直接返回alreadyLinked: true,不会重复关联。 - 提交信息里带
#EVXU-1095时云效本身也会自动关联,双保险。
🧪 开发
node --test # 覆盖创建校验、成员选择、连接解析、看板、流转、评论列表与发布、需求编辑、客户端纯函数与版本比较发布(files 白名单已限定包内容,prepublishOnly 先跑测试):
npm pack --dry-run # 核对 tarball 内容
npm publish # publishConfig.access = public代码结构:
index.js Host 侧插件入口(工具注册、/yunxiao 路由)
client.js Client 侧看板与详情 UI
server/ 云效 API 封装、连接配置、看板逻辑
test/ node:test 单测
docs/superpowers/ 设计规格与实施计划📄 License
MIT
