🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

任务票管理 rqwj/oh-my-ticket

DeepSeek Harnessv0.6.5
rqwj13 天前有提交已提供中文文档扫描:含敏感能力

给智能体用的工单工具

36.5/100
综合分
2
GitHub 星标
20
npm 周下载
—/5
用户评分

数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-oh-my-ticket
npm 源 · dsh-oh-my-ticket 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · dev
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.1-rc.5 下真实安装成功,但当前 dsh 已更新至 0.2.2-rc.1,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/11/01·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/07·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 13 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-oh-my-ticket @ 0.6.5
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/7 20:55:55

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
  • 读取本地文件
    lib/index.js:6279
    if (!existsSync(path)) return false;
  • 读取本地文件
    lib/index.js:6281
    accessSync(path, constants.X_OK);
  • 读取本地文件
    lib/index.js:6411
    const raw = readFileSync(join(dir, "descriptor.json"), "utf8");
  • 执行外部命令来自配置/变量
    lib/index.js:6449
    const child = spawn(binary, [
  • 读取本地文件
    lib/index.js:7202
    const parsed = JSON.parse(readFileSync(file, "utf8"));
  • 写入本地文件
    lib/index.js:7206
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/index.js:7207
    writeFileSync(file, `${JSON.stringify({ principalIds: ids }, null, 2)}\n`, "utf8");
  • 读取本地文件
    lib/index.js:7368
    if (!existsSync(local)) return void 0;
  • 读取本地文件
    lib/index.js:7391
    if (cwd !== void 0 && existsSync(join(cwd, ".omt"))) {
  • 发起网络请求
    lib/index.js:15502
    const outcome = await approval.request({
  • 写入剪贴板
    lib/client.js:3261
    navigator.clipboard?.writeText(text);
扫描于 2026/11/7(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cosmokit@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-input-trigger@deepseek-ai/dsh-skill@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 五级任务树拆解计划
  • 批量交给模型执行
  • 智能体工单工具

README

由 DeepSeek 最新模型翻译生成
Oh-My-Ticket(OMT) DSH 的 ticket 管理插件:Epic → Story → [SubStory] → Ticket → [SubTicket] 五级任务体系, SQLite 存元数据与层级关系,Markdown 存正文。ticket 随项目走(.omt/ 目录可直接进 git),模型通过工具创建/推进,人通过三种可切换的 UI 展现方式浏览与管理; run 机制支持把一批 ticket 交给模型批量执行,全程有状态机、进度与信任策略兜底。 插件启用后,完整 OMT 操作规范默认写入系统提示,不必先 load omt skill。 设置页可追加约定,并从已装 skill 勾选拆票 skill;实质性开发(新功能 / 重新对接 / 改造)以及提到 ticket / 拆任务 / 节点 id 时进入 OMT 阶段并 load 绑定 skill。
展开完整文档(README 剩余 1 节)
Oh-My-Ticket(OMT)

DSH 的 ticket 管理插件:Epic → Story → [SubStory] → Ticket → [SubTicket] 五级任务体系, SQLite 存元数据与层级关系,Markdown 存正文。ticket 随项目走(.omt/ 目录可直接进 git),模型通过工具创建/推进,人通过三种可切换的 UI 展现方式浏览与管理; run 机制支持把一批 ticket 交给模型批量执行,全程有状态机、进度与信任策略兜底。
插件启用后,完整 OMT 操作规范默认写入系统提示,不必先 load omt skill。
设置页可追加约定,并从已装 skill 勾选拆票 skill;实质性开发(新功能 / 重新对接 / 改造)以及提到 ticket / 拆任务 / 节点 id 时进入 OMT 阶段并 load 绑定 skill。

image-20260819114848240

✨ 功能特性

三种展现方式,一键切换

同一份 ticket 树,三种外壳共享同一套过滤/排序/搜索交互:

- 左侧抽屉:shell.overlay 浮层,顶部 OMT 按钮开合,宽度可拖拽记忆
- 浮窗:自由拖拽移动、右下角缩放,位置尺寸持久化;浮窗激活时 OMT Tab 自动隐藏并回退 Chat
- OMT Tab:注册进会话视图环,与 Chat | Trajectory 并列,可"弹出为浮窗"

完整的树交互

- 类型徽章(E/S/SS/T/ST)、状态点(归档空心化)、优先级信号条(P1–P3 渐强着色)
- 搜索、类型/状态/优先级多选过滤、优先级排序、编号显示开关;过滤器状态自动保存到工作区 .omt/ui-filters.json,刷新自动恢复,面板内一键重置
- 归档独立维度(与生命周期状态正交,归档只读)、折叠状态跨会话记忆
- 窄视口适配(<640px 抽屉全宽、拖拽把手退役)、键盘焦点环规范
- 变更即时推送:自有 SSE 通道(/omt/events),模型改完 UI 立刻刷新

文档详情面板

- 选中节点即在右侧 details 列打开完整文档(动态遮蔽,关闭自动恢复原工具详情)
- 标题/状态/优先级/归档操作、追加进度记录、相对时间展示
- "执行"按钮:把 ticket 引用进输入框提交执行,执行中状态展示并锁定面板操作

模型与 UI 双向联动

- @ 输入触发器:引用 ticket 进对话(候选排序 + 状态着色)
- 输入框上方引用条、激活 ticket 状态条
- 每轮对话末尾自动展示"相关 ticket"列表(来源:@ 引用 ∪ 工具调用 ∪ UI 操作)

Workspace 归属

- 工作区根目录存在 .omt/ 时 ticket 随项目走(可进 git),否则回退全局 home (插件 config > OMT_HOME > ~/.omt)
- 创建 Epic 时弹窗选择归属;id 跨 home 全局唯一
- 树跟随当前会话的工作区自动切换

Run 批量执行

把一批 Ticket/SubTicket 快照成有序 run,交给模型逐项认领、执行、如实报告:

- item 状态机:pending → running → done / failed / blocked / skipped / interrupted,另有信任策略态 awaiting_confirmation——非 report 的裸 done 需人在 run 详情确认或打回
- 续跑:run 可 pause/resume,interrupted 项 retry 后重新入队;idle 续跑 nudge 自动提醒
- UI 联动:Runs 区块展示列表/详情/进度统计,树行"▸▸"一键加入 run;从 UI 触发「开始执行」会自动唤醒执行会话进入 claim 循环
- 执行上下文注入:claim 成功即时读取祖先链(Epic → Story → SubStory → 父 Ticket)正文作为只读背景返回,16 KiB 预算内最近父级优先,截断显式标记,单点读取失败降级不阻塞
- 祖先激活:ticket 开工(置 in_progress 或 claim 成功)自动点亮仍为 open 的祖先链;done/blocked/skipped 祖先永不重开,归档祖先静默跳过

🤖 模型工具

| 工具 | 用途 |
| omt_create | 创建节点(Epic/Story/SubStory/Ticket/SubTicket),层级合法性校验 |
| omt_list | 列出节点(类型/状态过滤,关键词搜索) |
| omt_show | 节点详情(元信息、正文、父子清单),toolview 渲染为 Markdown 文档 |
| omt_update | 标题/状态/优先级/归档,替换正文或追加进度记录 |
| omt_move | 移动节点(连同子树) |
| omt_reindex | 磁盘 markdown 手工修改后重建 SQLite 索引 |
| omt_run_create | 创建 run:按顺序快照 Ticket/SubTicket 为执行批次 |
| omt_run_list | 列出 run(状态过滤 + 成员进度统计) |
| omt_run_show | 查看 run 详情:配置、成员状态、执行者谱系、attempts、last_error |
| omt_run_control | start / pause / resume / cancel / retry(nodeId) / remove(nodeId) |
| omt_run_claim | 原子认领下一项并绑定执行者;返回只读祖先上下文,激活 open 祖先 |
| omt_run_report | 报告单项结果(done/failed/blocked/skipped),note 记入 ticket 进度 |

内嵌两个技能:omt 讲 ticket 体系的操作规范与状态流转约定,omt-runs 讲 run 批次纪律(创建/认领/报告/续跑响应)。

运行时配置(home / runtime dir)的解析契约见 docs/runtime/config.md——参数 > 环境变量 > 默认值,多端一致,由跨层 parity 测试锁定。

📦 安装

本仓库构建并打包:
pnpm install && pnpm build && npm pack # → dsh-oh-my-ticket-0.6.6.tgz

安装进目标 DSH profile(profile 的 dsh.profile.bundles 依次为): @deepseek-ai/dsh-base, @deepseek-ai/dsh-web-app, dsh-oh-my-ticket
pnpm dsh plugin --profile <profile> add /path/to/dsh-oh-my-ticket-0.6.6.tgz

或直接从 npm 安装已发布版本:
pnpm dsh plugin --profile <profile> add dsh-oh-my-ticket@0.6.6

daemon 二进制随主包以 optionalDependency 自动带入(@oh-my-ticket/darwin-arm64),也可经 brew / install.sh / GitHub Release 独立获取。

在工作区根目录 mkdir .omt,该项目就有独立的 ticket 库(随项目进 git)。
安装/升级后需重启 dsh web 进程,新版本的工具与 UI 才会生效。

🛠 开发

安装依赖

@deepseek-ai/ 依赖自 0.1.2-alpha.x 起已发布到 npm,克隆仓库后直接:

pnpm install

host 半构建会把 dsh-tools / schemastery / cosmokit 内联进 lib/index.js (发布包自包含,运行时不再解析任何 @deepseek-ai/);浏览器半的 ui-primitives / ui-slots 是运行时外部依赖(模块表提供),不安装、类型由 src/client/externals.d.ts 的结构化声明提供。

日常开发

pnpm build # lib/index.js(host 半)+ lib/client.js(浏览器半)
pnpm watch # 增量重建
pnpm typecheck # tsc --noEmit
pnpm test # 根目录 vitest 套件(desktop 套件需在 apps/desktop 单独运行)
pnpm sync-version <version> # 统一升级四端版本号(Cargo.toml 为权威源)

仓库结构

├── package.json # dsh.bundle + dsh.client 双 manifest ├── cordis.patch.yml # 组合层:insert omt 行 ├── tsdown.config.ts # host 半 + client bundle 构建 ├── src/ │ ├── index.ts # host 插件入口(daemon client + 工具/skill/hook 注册) │ ├── host/ │ │ ├── service/rpc/events # daemon 生命周期、浏览器 RPC 与 SSE 推送 │ │ ├── tools/skill # omt_* 工具面 + omt / omt-runs skill │ │ ├── running/recent/idle-hook/disposed-hook/notify-hook # 执行态与提醒 │ │ └── ui-state.ts # 过滤器持久化(ui-filters.json) │ └── client/ │ ├── index.ts # 浏览器半入口(slot 注册装配) │ ├── controller.ts # snapshot stores 与全部异步流 │ └── components/ # TicketPanel(共享树面板)+ Drawer/FloatWindow/TicketTab 三壳 │ # + DocPanel/RunsView/RunPicker/TurnTickets 等 ├── crates/ # ticket/domain 权威:daemon、CLI/MCP、存储与共享 Rust client ├── packages/client-ts/ # TS daemon 客户端(discover-or-spawn、握手、RPC、事件流重放) ├── apps/desktop/ # Tauri 桌面端 + 本地 harness/agent 执行平面及独立测试套件 ├── tests/ # 根目录 vitest 单测(desktop 测试位于 apps/desktop/tests) └── .omt/tickets/ # 本项目的 ticket 库(SQLite 索引已 gitignore,可 omt_reindex 重建)

📚 设计文档

- 可行性分析:FEASIBILITY.md
- 代码证据调研:RESEARCH-dsh-ticket-plugin.md
- 执行计划:EXECUTION-PLAN.md
- 开发笔记:docs/dsh-plugin-dev-notes.md

License

MIT
预览分享卡片长什么样 ↓rqwj/oh-my-ticket
分享 · DeepSeek Harness Hub
rqwj/oh-my-ticket

给智能体用的工单工具

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部