Skip to content

dsh-nowpilot

Verified

@myn_dsh/dsh-nowpilot · v0.69.47 · MIT · Web UI

NowPilot:给超级个体的判断力操作系统。任务/派活/验收/标准库的 DSH 插件——把 AI 变成团队,把你的判断变成系统。

Install

dsh plugin add @myn_dsh/dsh-nowpilot

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

dsh-nowpilot

把 MYN(Master Your Now) 任务管理法做进 DSH:左边是视图,右边是清单,既能自己点,也能让 agent 直接读写你的清单。

它不是又一个待办清单——它守着一套"什么该现在做、什么不该占今天"的规矩,规矩写在代码里(lib/myn-model.js),界面和 agent 都绕不过去。

配套阅读(这些文档不进 npm 包,只在仓库里):SCENARIOS.md 使用场景 · PRODUCT.md 产品设计 · REQUIREMENTS.md 需求规格 · DESIGN.md 总体设计(含实测陷阱) · ROADMAP.md 开发计划 · POSITIONING.md 对外定位(含竞品对比与卖点) · POSITIONING-INTERNAL.md 内部设计取舍 · BUSINESS.md 商业化方案 · LAUNCH-MANUAL.md 落地手册(安装/发码/发布/订阅一步步执行) · DEVELOPING.md 开发与测试 · RELEASE.md 发布流程 · COMPATIBILITY.md DSH 版本兼容性 · MANUAL-SMOKE.md 升级冒烟清单。


它守的规矩

MYN 把"未完成的事"分成三个区,加上两个"以后再看"的落点:

区 判据 含义
目前紧急 开始日期 ≤ 今天 且 高优先级 现在就做。上限 5 条——超了说明你根本没在挑
目前机会 开始日期 ≤ 今天,中优先级 眼前可做,但今天不承诺
目前视线外 低优先级(无论日期) 搁置。低就是低,跟日期无关
我的一天 目前紧急 + 目前目标 今天真正承诺要做的
目前目标 目前机会 ∩ 开始日期 = 今天 一个"伪区":不是状态,是承诺

几条容易被违反、所以在代码里硬保的:

  • 新建默认「中 + 开始日期昨天」 → 落目前机会,绝不占「我的一天」。要今天做,必须显式把开始日期设成今天。
  • 高优先级 = 今天开始。所以"随手提为高"等于"随手承诺今天做"——设高时界面会提醒当前紧急已有几条(X/5)。
  • 截止日期只做提醒,绝不因此升级为紧急。到期未完成显示为橙色,不是红色——红色是"现在就必须做"的专用色。
  • 任何让人从眼前消失的动作,都必须给出看得见的落点(DESIGN.md §5.5)。所以两个"推迟"视图和侧栏徽标都是这个规矩的产物,不是装饰。

平台支持

平台 核心功能(任务 / 派活 / 验收 / 标准库 / 同步 / Word) 桌面悬浮球 创始会员一键安装脚本
Windows 10+ ✅ 完整支持(主开发/测试平台) ✅ 支持 ✅ installer\install-founding.cmd
macOS ✅ 预期可用(Linux CI 覆盖核心,macOS 待真机验证) ❌ 不支持(设置页会显示"仅 Windows"说明) ✅ installer\\macos\\install-founding.sh(系统自带 osascript/JXA,无需 Node)
Linux ✅ 预期可用(CI ubuntu-latest 三版本 Node 全绿) ❌ 不支持 ⚠️ 同 macOS 的 .sh 脚本理论可用,未验证

桌面球是 Windows 专属(WPF + PowerShell 实现);非 Windows 平台宿主会静默跳过球的自动启动,设置页只显示平台说明,不影响其它功能。

界面

┌──────────────┬────────────────────────────────────────────────┐
│ 总览         │ MYN 任务                       已同步 13:07 刷新│
│ 我的一天   3 │ [高][中] [☆] [ 记一条任务… ] [📅] [今天做] [记入]│
│ 目前任务   4 │ [搜索任务…] [全折叠] [全展开]      ← 只在总览显示 │
│ 目前视线外 2 │ 目前紧急 1 · 目前机会 3 · 目前视线外 2          │
│ 推迟执行   2 │ ▾ 我的一天                                     │
│ 推迟回顾   4 │   ☆ 测试目前紧急任务  [今天先不做] 目前紧急 …   │
│ 收件箱     0 │   ★ 测试目前目标任务  [今天先不做] 目前目标 …   │
│ 已完成     1 │ ▾ 目前任务                                     │
│ 已丢弃     2 │   ☆ 回复客户邮件  明天到期 [今天做] 目前目标 …  │
└──────────────┴────────────────────────────────────────────────┘
  • 侧栏:9 个视图 + 条数徽标。徽标不是装饰——视图可以切走,但"任务被推到哪儿去了"必须一直看得见。
  • 总览:所有区堆在一起,每个区可单独折叠;全折叠 / 全展开 一键。
  • 搜索(总览):按标题 / 备注 / 标签匹配。命中的区自动展开,没命中的维持原样。
  • 右键菜单按区不同:目前任务 → 推迟执行…;目前视线外 → 推迟回顾…;两个推迟视图 → 编辑… / 取消推迟;已完成 / 已丢弃 → 编辑… / 恢复 / 删除。
  • 多选:单击选中,Shift 连选,Ctrl/⌘ 加选。选中后右键即批量操作(推迟 / 恢复 / 删除)。右键落在没选中的行上时只对那一行动手——防止误伤。
  • 行内操作:+ 点选截止日期(点一下弹日历,清空即删除);悬停出现 ⤒ ↑ ↓ ⤓ 调整次序;双击整行打开编辑弹窗。
  • 拖动排序:同一区内上下拖动重排。在推迟视图里跨日期组拖动 = 改期到那一天(只改开始日期,不动优先级)。
  • 已完成 / 已丢弃:按完成 / 丢弃日期降序。丢弃是软删,所以能在这里恢复(放回目前机会)或彻底删除(二次确认)。

给 agent 的三个工具

装了插件,会话里的 agent 就能直接操作你的清单:

工具 用途
myn_capture 快速记一条。只给标题即可,默认「中 + 昨天」→ 落目前机会。传 today: true 或 startDate: 今天 才进「我的一天」;传 priority: high 会自动设为今天开始
myn_today 今日工作单:我的一天(目前紧急 + 目前目标)+ 目前机会 + 收件箱待处理数
myn_list 按视图列任务:current(目前任务)/ all(未完成)/ over-horizon / done / candidate 等

破坏性操作刻意不开放给 agent:彻底删除、清空数据这些只能人在界面上点(信任边界见 DESIGN.md)。

安装

发布之后(最省事):

dsh plugin --profile desktop add @myn_dsh/dsh-nowpilot

从未发布的本地 checkout 装:

dsh plugin --profile desktop add "link:D:\path\to\dsh-nowpilot"

装完必须在 dsh.profile.bundles 里看到这个名字才算启用;没出现就是没生效,别去界面上找。

改动怎么生效:

改了什么 要做什么
lib/myn-model.js(领域模型) 重启 DSH
lib/index.js(宿主半边) 重启 DSH
lib/client.js(浏览器半边) 刷新页面

数据放在哪

落在 DSH 的 storageDomain 上:领域名 myn,version: 1,layout: 'per-record',四张表:

表 内容
tasks 任务(含开始日期、优先级、截止日期、星标、标签、状态、紧急起始日等)
outcomes 关联成果(SOC,阶段 2 起用)
prompt_templates 派活提示词模板(阶段 3 起用)
inbox 收件箱碎片(阶段 2 起用)

数据与备份:设置页的「数据与备份」卡片显示真实数据目录(可一键打开/复制路径),并在目录位于 OneDrive / iCloud / Dropbox 等云盘时给出提示(可以备份、换机同步,但不要两台机器同时开 DSH)。 「导出全部数据」产出 nowpilot-backup JSON 数据包(任务 / 收件箱 / 标准 / 模板 / 词表全量), 「从数据包恢复」用于换机或救援——恢复前宿主会自动在本机留一份「恢复前快照」。 数据本来就不进 npm 包(见 RELEASE.md),所以备份与迁移是使用者的责任边界,不是安装副作用。

领域模型是唯一真源:分桶、排序、日期推导、状态流转全部在 lib/myn-model.js(纯函数、零依赖)。宿主和客户端都不重写规则——客户端连"这条属于哪一格"都不自己判断,而是用宿主下发的 sortGroup / label / regionChanged。

架构

文件 半边 职责
lib/myn-model.js 无(纯函数) 领域模型。分桶 / 排序 / 状态流转 / 回顾 / 导出导入,唯一真源
lib/store.js 宿主 storageDomain 薄封装:只做落盘取盘,不做任何判定
lib/index.js 宿主 Cordis 插件:Config、初始化、RPC 端点(19 个)、三个 agent 工具、系统提示词注入
lib/client.js 浏览器 面板 + 侧栏 + 浮层(编辑弹窗 / 右键菜单 / 确认卡 / 推迟卡片),shell.overlay + main + sidebar.panellist 三个槽

一条往返(点一条任务的「✓」):

浏览器  rpc.call('/myn', 'complete', { id })
   │
宿主    取任务 → 模型算流转 → 落库 → 回 { ok:true, value:{ id, state } }
   │
浏览器  load() 重拉快照 → 重渲染

失败必须看得见:rpcCall 永不拒绝(所有失败归成错误信封);每个 handler 都过一层 guard(同步抛错 / Promise 拒绝 → 弹一张带堆栈的错误卡);再加一道全局网兜住漏网的未捕获错误。所以"点了没反应"这类静默失败在这套代码里是设计上要消灭的。

开发与测试

三套测试,820 项,纯 Node 跑,秒级:

npm test                  # 三套一起跑(骨架 155 + 模型 514 + 功能 151)
npm run test:model        # 只跑领域模型(改分桶规则必跑)
npm run test:skeleton     # 只跑宿主契约自检
npm run test:features     # 只跑浏览器半边功能测试
npm run pack:check        # 核对发布产物清单
套 覆盖
test/myn-model.test.cjs 模型:规则矩阵、排序、日期推导、状态流转、不变式、导出导入
test/selfcheck.cjs 宿主:插件外形、19 个 RPC 端点的成功 / 错误信封、三个工具、快照形状、Config
test/example-feature.test.cjs 浏览器:渲染、点击、菜单、拖动、多选、折叠、搜索、错误兜底

三级测试循环(纯 Node → 独立 profile → desktop profile)、harness.cjs API、常见"插件不加载"原因:见 DEVELOPING.md。

兼容性

  • 目标 DSH 0.2.0-rc.2;兼容性矩阵、升级判定规则与 0.3 的预判断点见 COMPATIBILITY.md。
  • 插件启动会做一次契约探针(只查形状,不查版本),结果显示在 设置页「运行环境」 (快照字段 contract);缺什么会直接点名,不用猜。
  • 升级/发布前按 MANUAL-SMOKE.md 跑 5 分钟真机 smoke。
  • 原规则:peerDependencies 用预发布写法 ^0.2.0-rc.1(^0.1.x 这类范围在预发布运行时上必然不满足,会被静默跳过)。升级 DSH 时同步改它,并改自检里的目标版本断言。
  • 零构建:lib/*.js 直接就是产物,type: module,无打包步骤。
  • CI:.github/workflows/ci.yml(Node 20/22/24 三档跑 npm test + 校验产物含 lib/client.js)。

发布

npm 包只发代码、不发用户数据。

  • 包里只有 15 个文件:lib/*.js(宿主 / 浏览器 / 模型 / 存储封装 / Word 导出 / 模板包)、 desktop/*(悬浮球脚本)、cordis.patch.yml 与三份文档;files 白名单之外的东西不会上传。
  • 用户数据由 DSH 的 storageDomain 落在本机 ~/.dsh/storages/myn (tasks / inbox / judgment_standards / prompt_templates / meta), 升级或回滚 npm 包都不动它;换机需要手动拷贝这个目录(或用标准库的导入/导出)。
  • 数据结构变更只允许向后兼容(新字段给默认值,老记录读取时兜底),不假设能迁移用户老数据。

发版流程(version → CHANGELOG → npm test → commit → tag → 部署验证 → 数据备份)、 产物清单核对、发布后真装验证与踩坑记录:见 RELEASE.md。

现状

阶段 0(集成去风险)、阶段 1(数据层 + 录入 + 视图)、阶段 1.5(排序 / 推迟 / 多选 / 收尾视图 / 搜索)已完成。 阶段 2(收件箱界面 + 拆解 + 日周回顾 + 定时提醒)、阶段 3(派发验收)、阶段 4(导出导入 UI)、阶段 5(邮箱摄入)待做 —— 见 ROADMAP.md。

改动记录见 CHANGELOG.md,发布流程见 RELEASE.md。