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。