@mingmaple/dsh-handover 0.9.14 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +123 -92
- package/docs/migrate.md +52 -41
- package/docs/releases/0.9.12.md +2 -3
- package/docs/releases/0.9.14.md +1 -5
- package/docs/releases/0.9.22.md +34 -0
- package/docs/releases/1.0.0.md +33 -0
- package/docs/troubleshoot.md +230 -46
- package/package.json +74 -71
- package/scripts/behavior.mjs +398 -0
- package/scripts/blank-dsh.mjs +41 -25
- package/scripts/blank-smoke.mjs +278 -109
- package/scripts/check-docs.mjs +7 -0
- package/scripts/e2e-migration.mjs +2 -2
- package/scripts/office.mjs +3 -3
- package/scripts/portability.mjs +71 -0
- package/scripts/style-gate.mjs +571 -0
- package/src/client.js +1028 -955
- package/src/index.mjs +313 -142
- package/src/lib/absrefs.mjs +1 -1
- package/src/lib/api.mjs +18 -10
- package/src/lib/archive.mjs +1 -1
- package/src/lib/brief.mjs +8 -6
- package/src/lib/config.mjs +23 -8
- package/src/lib/consent.mjs +54 -1
- package/src/lib/docmap.mjs +140 -0
- package/src/lib/drift.mjs +1 -1
- package/src/lib/events.mjs +1 -1
- package/src/lib/facts.mjs +19 -12
- package/src/lib/gates.mjs +30 -6
- package/src/lib/global-task.mjs +69 -0
- package/src/lib/guide.mjs +81 -85
- package/src/lib/handover-io.mjs +69 -6
- package/src/lib/identity.mjs +330 -0
- package/src/lib/legacy.mjs +89 -0
- package/src/lib/lint.mjs +17 -13
- package/src/lib/manual.mjs +135 -59
- package/src/lib/mover.mjs +23 -19
- package/src/lib/names.mjs +14 -19
- package/src/lib/office.mjs +63 -15
- package/src/lib/pack-ops.mjs +11 -11
- package/src/lib/pathkey.mjs +24 -0
- package/src/lib/peer.mjs +4 -4
- package/src/lib/phase.mjs +8 -13
- package/src/lib/profile.mjs +1 -1
- package/src/lib/reminder.mjs +110 -0
- package/src/lib/role.mjs +9 -6
- package/src/lib/scaffold.mjs +68 -26
- package/src/lib/schedule.mjs +5 -6
- package/src/lib/session-create.mjs +3 -3
- package/src/lib/session-ops.mjs +80 -51
- package/src/lib/sessions.mjs +41 -3
- package/src/lib/sevenzip.mjs +10 -1
- package/src/lib/status.mjs +337 -176
- package/src/lib/succession.mjs +16 -16
- package/src/lib/system.mjs +364 -0
- package/src/lib/zstd-log.mjs +1 -1
- package/src/selftest.mjs +6 -6
- package/src/templates/Changelog.skeleton.md +3 -3
- package/src/templates/Charter.skeleton.md +13 -9
- package/src/templates/Handover.global.skeleton.md +20 -13
- package/src/templates/Handover.template.md +89 -0
- package/src/templates/Plan.skeleton.md +34 -0
- package/src/templates/Prompt_Templates.md +101 -20
- package/src/templates/Runtime_Manual.md +263 -122
- package/src/templates/System.skeleton.md +31 -0
- package/src/templates/Systems.global.skeleton.md +13 -0
- package/src/templates/rules/Delegation_Rules.md +45 -0
- package/src/templates/rules/Handover_Rules.md +46 -23
- package/src/templates/rules/Migration_Rules.md +7 -7
- package/src/templates/rules/Misc_Task_Standard.md +17 -10
- package/src/templates/rules/Writing_Rules.md +33 -16
- package/src/templates/standards/README.md +37 -0
- package/src/templates/standards//345/206/231/344/275/234/350/247/204/350/214/203/README.md +120 -0
- package/src/templates/standards//345/206/231/344/275/234/350/247/204/350/214/203//344/276/235/346/215/256_/350/256/272/346/226/207.md +389 -0
- package/src/tools/ho_backup.mjs +135 -0
- package/src/tools/ho_changelog.mjs +4 -4
- package/src/tools/ho_charter.mjs +7 -6
- package/src/tools/ho_checkpoint.mjs +36 -32
- package/src/tools/ho_docmap.mjs +239 -0
- package/src/tools/ho_gate.mjs +11 -5
- package/src/tools/ho_handover.mjs +61 -35
- package/src/tools/ho_office.mjs +46 -5
- package/src/tools/ho_profile.mjs +3 -3
- package/src/tools/ho_sessions.mjs +46 -26
- package/src/tools/ho_status.mjs +251 -0
- package/src/tools/ho_succeed.mjs +3 -3
- package/src/tools/ho_workspace.mjs +146 -42
- package/src/tools/peer.mjs +416 -0
- package/src/tools/ho_brief.mjs +0 -57
- package/src/tools/ho_diag.mjs +0 -87
- package/src/tools/ho_drift.mjs +0 -41
- package/src/tools/ho_init.mjs +0 -82
- package/src/tools/ho_pack.mjs +0 -38
- package/src/tools/ho_phase.mjs +0 -37
- package/src/tools/ho_snapshot.mjs +0 -104
- package/src/tools/ho_tokens.mjs +0 -57
- package/src/tools/peer_list.mjs +0 -37
- package/src/tools/peer_new.mjs +0 -75
- package/src/tools/peer_peek.mjs +0 -41
- package/src/tools/peer_rename.mjs +0 -31
- package/src/tools/peer_send.mjs +0 -52
- package/src/tools/peer_status.mjs +0 -46
|
@@ -1,169 +1,310 @@
|
|
|
1
|
-
# dsh-handover
|
|
1
|
+
# dsh-handover 运行期手册
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 本文是按需取回的手册:系统提示只保留常驻段与指针。需要细节时,用 `ho_charter(doc="runtime")` 取回全文,或用 `section` 参数按节取回。
|
|
4
4
|
>
|
|
5
|
-
>
|
|
6
|
-
>
|
|
5
|
+
> 内置即默认:本文、Charter 骨架、体系注册模板、行动计划模板、交接与台账骨架、提示词模板与规则文档均随插件发布(`dist/templates/`)。工作区同名文件为本地化覆盖,删除后自动回到内置版本,功能不降级。`ho_workspace(action="init")` 将默认口径写入磁盘以便修改,并非使用前提。
|
|
6
|
+
>
|
|
7
|
+
> 分工:两级任务流程、纯窗口线、水位判据、压缩与换任顺序只在会话提示段维护,本文不复述。本文只写插件用法、角色、工具、路径与各类文件的格式。口径冲突时以工作区的 `_Control_Center/rules/` 与 `_Control_Center/standards/` 为准。
|
|
8
|
+
|
|
9
|
+
## 1. 使用方式
|
|
10
|
+
|
|
11
|
+
- 按节取回:`ho_charter(doc="runtime", section="体系注册")`。不传 `section` 时只返回节标题清单,便于先看目录、再取正文。
|
|
12
|
+
- 规则文件取回:`ho_charter(doc="handover_rules" | "migration_rules" | "misc_standard" | "delegation_rules" | "writing_rules")`;`doc="charter"` 取工作区 Charter。
|
|
13
|
+
- 内置兜底:工作区没有对应规则文件时,工具返回插件内置版本并注明来源。空白机器上同样可用。
|
|
14
|
+
- 未接入工作区时(读不到 `_Control_Center`),插件本体仍可用;闸门、交接体检与会话水位 3 项无数据。
|
|
15
|
+
- 插件服务端为纯 Node 实现,Windows、macOS 与 Linux 使用同一套代码。路径比较按平台折叠大小写;归档优先使用 7-Zip,未安装时使用内置 tar.gz。
|
|
7
16
|
|
|
8
|
-
##
|
|
17
|
+
## 2. 角色
|
|
9
18
|
|
|
10
19
|
| 角色 | 判定顺序 | 交接文件 | 可见工具 |
|
|
11
20
|
|---|---|---|---|
|
|
12
|
-
| 全局 | 角色表 →
|
|
13
|
-
| 项目 | 角色表(带项目名)→
|
|
14
|
-
| 杂项 | 角色表(带任务名)→
|
|
15
|
-
| 普通 |
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- `
|
|
30
|
-
- `
|
|
31
|
-
- `
|
|
32
|
-
- `
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- `
|
|
39
|
-
- `
|
|
40
|
-
- `
|
|
41
|
-
- `
|
|
42
|
-
- `
|
|
43
|
-
- `
|
|
44
|
-
- `
|
|
45
|
-
|
|
46
|
-
###
|
|
21
|
+
| 全局 | 角色表 → 标题含「全局」→ 已注册的工作区 | `_Control_Center/records/Global_Handover.md` | 14 个(全部) |
|
|
22
|
+
| 项目 | 角色表(带项目名)→ 会话目录在 `Projects/<名>/` → 首条提示含 `Projects/<名>/` | `_Project_Meta/<项目名>/Handover.md` | 11 个 |
|
|
23
|
+
| 杂项 | 角色表(带任务名)→ 会话目录在 `_Misc/tasks/<任务>/` | `_Misc/tasks/<任务名>/Handover.md` | 10 个 |
|
|
24
|
+
| 普通 | 子会话,或以上均不命中 | 无,不参与交接 | 0 个,不注入提示段 |
|
|
25
|
+
|
|
26
|
+
- 角色表位于 `~/.dsh/storages/dsh-handover.roles.json`,属本机状态,不进仓库、不进迁移包。
|
|
27
|
+
- 子会话默认普通;需要时由全局在角色表中指定。
|
|
28
|
+
- 设定入口:设置页「会话角色」;或由全局调用 `ho_sessions(action="role")`。
|
|
29
|
+
- 全局选项限制:本机已有全局在任时,设置页不提供「全局」选项,`ho_sessions(action="role")` 亦拒绝将其他会话设为全局。同一会话不受此限。
|
|
30
|
+
- 名称注册:会话首次用 `ho_office(action="register")` 注册自身名称,此后不得自行更改。全局可沿用旧名。本机尚无全局时,才允许将当前会话设为全局。
|
|
31
|
+
|
|
32
|
+
## 3. 工具清单
|
|
33
|
+
|
|
34
|
+
共计 14 个入口,不新增工具;能力不足处复用已有入口的 `action` 参数。
|
|
35
|
+
|
|
36
|
+
### 3.1 只读
|
|
37
|
+
|
|
38
|
+
- `ho_status`:会话状态,`view` 分流——`phase`(缺省;水位、压缩次数、锁、建议动作、当前授权)、`brief`(起始简报:水位、闸门、会话清点、漂移、阶段建议)、`diag`(插件自检:服务、调度器、初始化错误、角色与工具集)、`drift`(交接漂移,Δ 为当前轮减交接轮)、`tokens`(token 体检,需会话列表)。
|
|
39
|
+
- `ho_gate`:通用约束条同步复核、交接文档体检、体系注册路径检查,并提示待迁移项。
|
|
40
|
+
- `ho_sessions`:会话清点,兼作角色设定、建立会话、生成提示词、归档与解归档入口。
|
|
41
|
+
- `ho_charter`:按节取规则正文,见 §1。
|
|
42
|
+
- `ho_office`:查询在任,输入「全局」「全局3」「项目名」等,返回现任会话的名称与会话 id;空参数列出全部;`action="register"` 注册本会话名称。
|
|
43
|
+
- `ho_docmap`:本会话的体系注册,`action=read | write | check | plan`,见 §5。
|
|
44
|
+
|
|
45
|
+
### 3.2 写
|
|
46
|
+
|
|
47
|
+
- `ho_handover`:读写、新建、追加、归档本会话自己的交接;整篇重写用 `new`(先归档旧交接再新建空白写入),`write` 只用于首次创建,写入后按角色体检。
|
|
48
|
+
- `ho_checkpoint`:写交接、体检、登记压缩、轮末自动压缩。`resume=continue`(缺省)压缩后续跑;`resume=wait` 表示任务已收尾,压缩后不唤醒。`at_risk=true` 表示关键步骤,只提醒不压缩。
|
|
49
|
+
- `ho_changelog`:按固定表格向台账追加一行。
|
|
50
|
+
- `ho_backup`:`action` 取 `snapshot`(缺省;库快照,逐字节复制、sha256 清单、来源说明)、`check`(打包前置闸门)、`pack`(打包)、`verify`(校验包是否仍为现版)、`restore`(缺省预演,覆盖前备份,从不删除目标文件)。`format=auto | 7z | tar`:本机安装 7-Zip 时生成 `.7z`,否则生成 `.tar.gz`(内置归档器,功能等价)。
|
|
51
|
+
- `ho_workspace`:`action` 取 `init`(首次安装,在指定目录建立全局文件体系,可同时注册工作区)、`scaffold`(在已部署的全局根上补齐缺失目录与说明文件,只新建、不覆盖)、`list`、`create`、`delete`(只删注册)、`migrate`(并入旧文档定位)、`move-probe | move | move-switch | move-cleanup`(移动全局根目录)。
|
|
52
|
+
- `ho_profile`:项目或杂项的骨架注册,由所属会话通读自己的库后写入并校验。
|
|
53
|
+
- `ho_succeed`:换任,用户授权后校验交接、按记录分配编号、建立接任会话、登记在任并投递启动提示词。
|
|
54
|
+
|
|
55
|
+
### 3.3 平级会话
|
|
56
|
+
|
|
57
|
+
- `peer`:`action` 取 `send`(发送消息,`wait=true` 时同一轮等待回复)、`wait`(等待单个回复)、`collect`(列出多个会话,先完成者先返回)、`status`(单会话详情)、`list`(列表)、`peek`(近期会话历史)、`rename`(仅改标题)、`new`(新建)。`list`、`peek`、`rename` 仅全局可用;`send`、`wait`、`collect`、`status` 各角色可用;`new` 全局可用,杂项可建到杂项目录下。`wait` 与 `collect` 的 `timeout_ms` 由助手按任务预估设置,最低 120000。
|
|
58
|
+
|
|
59
|
+
### 3.4 ho_sessions 的动作
|
|
60
|
+
|
|
47
61
|
| action | 作用 | 关键参数 |
|
|
48
62
|
|---|---|---|
|
|
49
63
|
| `list`(缺省) | 会话清点 | `limit`、`warn`、`include_subagents` |
|
|
50
|
-
| `role` |
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
64
|
+
| `role` | 设定会话角色(写角色表、即时收窄工具、可选投递归位指令) | `session_id`、`role`、`project`、`task`、`notify`、`migrate` |
|
|
65
|
+
| `role`+`migrate` | 身份互转方式:`auto`(缺省)先快照再移动;`direct` 不搬旧文件,按模板新建体系 | 同上 |
|
|
66
|
+
| `new` | 建立下一代会话并唤醒,自动投递启动提示词 | `title`、`workspace`、`cwd`、`message`、`project`、`force` |
|
|
67
|
+
| `order` | 远程下达指令:`order=handover` 令其写交接后换任;`order=compact` 为其安排压缩 | `session_id`、`order`、`resume`、`extra`、`force` |
|
|
68
|
+
| `prompt` | 按 `_Control_Center/templates/Prompt_Templates.md` 渲染可直接粘贴的启动提示词 | `kind`、`project`、`task`、`title`、`sessionId`、`globalSessionId` |
|
|
69
|
+
| `place` | 将已存在的会话移入工作区(会话目录须为该工作区根) | `session_id`、`workspace` |
|
|
55
70
|
| `archive` | 归档会话(相当于图形界面的删除) | `session_id`、`force` |
|
|
56
71
|
| `unarchive` | 解除归档 | `session_id` |
|
|
57
72
|
|
|
58
|
-
##
|
|
73
|
+
## 4. 交接路径与结构要求
|
|
59
74
|
|
|
60
|
-
|
|
61
|
-
- 到线流程:`ho_handover` 写交接(体检不通过就拒绝压缩)→ `ho_checkpoint` 登记(`resume=continue|wait`)→ 轮末自动压缩 → 继续时投续跑消息;收尾时不唤醒,等用户派新任务。
|
|
62
|
-
- 第 4 段到线或压缩额度用尽:由在任会话自己换任——写交接 → 请用户在聊天框敲 `/allow-succeed` 授权 → 调 `ho_succeed`(校验交接、分配编号、建立接任会话、登记在任、投递提示词)。全局仍可用 `ho_sessions(action="new")` 手动建立会话,作为自动流程失败时的备选方式。
|
|
63
|
-
- 关键步骤不要压:`ho_checkpoint` 传 `at_risk=true`,它只提醒不压;硬顶 85% 除外。
|
|
64
|
-
- 压缩不可逆:历史会被摘要替换,所以「先把交接写合格」是硬前提。
|
|
65
|
-
- 在任登记表由插件维护:`_Control_Center/records/Office.json` 记每一类会话的现任与会话 id;查现任用 `ho_office`,不起会话时用 `node scripts/office.mjs 全局 全局3`。
|
|
75
|
+
### 4.1 路径
|
|
66
76
|
|
|
67
|
-
|
|
77
|
+
| 角色 | 交接文件 |
|
|
78
|
+
|---|---|
|
|
79
|
+
| 全局 | `_Control_Center/records/Global_Handover.md` |
|
|
80
|
+
| 项目 | `_Project_Meta/<项目名>/Handover.md` |
|
|
81
|
+
| 杂项 | `_Misc/tasks/<任务名>/Handover.md` |
|
|
68
82
|
|
|
69
|
-
|
|
70
|
-
- **项目、杂项**:必须有「正在做的事」(实质内容 ≥30 字)、「下一步待办」(至少一条表格行或列表项);不得残留占位符。
|
|
71
|
-
- 体检命令即工具:`ho_gate`(全部)、`ho_handover` 写后自动体检。
|
|
83
|
+
各类交接不得串用:项目会话读取全局交接,即把其他会话的状态当作自身状态。
|
|
72
84
|
|
|
73
|
-
|
|
85
|
+
### 4.2 结构
|
|
74
86
|
|
|
75
|
-
1
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
6. **续用优先:工序延续不另行建立会话**。子智能体完成后仅转入静止状态(inactive),其对话、已读文件与既定选择均予保留,一次 `send_message` 即可继续。因此**同一批文件的下一道工序**——改尺寸、换文案、出占位版、补变体、修一处细节——必须交回**原作者**,不得另行建立子智能体。另行建立等于令新会话重读同一批文件、重新推断结构,无异于将上一轮的上下文再购置一遍。
|
|
81
|
-
- 检索既有子智能体:以 `list_agents`(仅列直接子项)确认其状态为 inactive,并对照其上一轮交付的文件清单决定派发对象。
|
|
82
|
-
- 续用消息宜简:说明工序、给出脚本或约束、列出文件清单即可,不必重述背景——对方保有原上下文。
|
|
83
|
-
- 仅在三种情形下方可另行建立:原作者上下文将满;新工序与其产物无关;需要**独立复核**其结论(此时应刻意改派他人,并声明属复核)。
|
|
87
|
+
- 全局交接应有 8 节:§0 身份与寻址(含 7 个字段)、§1 正在做的事、§2 下一步、§3 待用户决定、§4 用户要求逐条落位、§5 风险与禁区、§6 关键路径、§7 会话 id 对照。§7 至少一行带 session id,且不得残留「待回填」。
|
|
88
|
+
- 项目与杂项交接应含「正在做的事」(须有实质内容)与「下一步待办」(至少一条表格行或列表项)。
|
|
89
|
+
- 不得残留模板占位符。
|
|
90
|
+
- 交接类文档不设体积上限:不规定字节、行数、页数。体积由结构(只写在途与指针)、书面语与通篇归档重写控制。删减依据为「过期即删」,不以篇幅过长作为删减依据。
|
|
91
|
+
- 体检命令即工具:`ho_gate`(全部)、`ho_handover` 写后自动体检。结论取「通过」「缺节」「不合格」;「缺节」允许压缩,「不合格」须补完再压缩。
|
|
84
92
|
|
|
85
|
-
|
|
93
|
+
### 4.3 固定流程
|
|
86
94
|
|
|
87
|
-
|
|
88
|
-
- **不要索要回执、不要写「每轮报告」**;写完即为完成,证据看文件末态。
|
|
89
|
-
- 换任提示词必须带:新会话自己的 session id、现任全局 session id、它自己的交接绝对路径。
|
|
95
|
+
交接一律重写,不在旧文件上续写。4 步按顺序执行:
|
|
90
96
|
|
|
91
|
-
|
|
97
|
+
1. 读上一份交接:`ho_handover(action="read")`。
|
|
98
|
+
2. 归档上一份交接:`ho_handover(action="archive")`。
|
|
99
|
+
3. 读模板:`_Control_Center/templates/Handover.md`。
|
|
100
|
+
4. 新建空白文件并写入:`ho_handover(action="new", text=…)`。
|
|
92
101
|
|
|
93
|
-
|
|
94
|
-
- 骨架档案由各项目会话自己通读本库后注册(`ho_profile(action=register)`);未注册时按默认骨架运行,`ho_gate` 标「待注册」,不判红。
|
|
95
|
-
- 有缺只**派发**给该项目会话,全局**不代写**项目库内文件。
|
|
102
|
+
已有交接不得用 `action="write"` 改写,该动作只用于首次创建;`action="append"` 只用于会话中途补一行推进状态。模板写明总则、逐节写法与自检,见 `_Control_Center/templates/Handover.md`。
|
|
96
103
|
|
|
97
|
-
##
|
|
104
|
+
## 5. 体系注册
|
|
98
105
|
|
|
99
|
-
1
|
|
100
|
-
2. `ho_pack({action:"pack", kind:"project"|"task"|"global", name:"…"})` 出包,含 manifest、CHECKSUMS、MIGRATION.md 与绝对路径体检。
|
|
101
|
-
3. 换机:解压包 → 装插件 → `ho_pack({action:"verify", pack:"<包>"})` 看是否仍是现版。
|
|
102
|
-
4. `ho_pack({action:"restore", pack:"<包>", dry_run:true})` 预演,确认后 `apply=true`。
|
|
103
|
-
5. **会话本身不迁移**:跨机连续性只靠交接文档。
|
|
106
|
+
### 5.1 路径
|
|
104
107
|
|
|
105
|
-
|
|
108
|
+
| 类别 | 注册文件 |
|
|
109
|
+
|---|---|
|
|
110
|
+
| 全局总注册 | `_Control_Center/records/systems.md`,只列各任务体系文件的路径 |
|
|
111
|
+
| 全局任务 | `_Control_Center/tasks/<任务名>/System.md` |
|
|
112
|
+
| 项目 | `_Project_Meta/<项目名>/System.md` |
|
|
113
|
+
| 杂项 | `_Misc/tasks/<任务名>/System.md` |
|
|
106
114
|
|
|
107
|
-
|
|
108
|
-
- 换盘四步:`ho_workspace(action="move-probe", to=…)` → `action="move"`(复制并逐文件 sha256 校验)→ `action="move-switch"`(派后台助手,退出 DSH 后自动完成改名与建链接;也可双击生成的 `dsh-handover.move.cmd`)→ `action="move-cleanup", confirm=true`。
|
|
109
|
-
- 切换后原路径成为指向新位置的链接(Windows 为 junction,Linux、macOS 为符号链接),注册表、profile 与会话工作目录均无需修改;回退方式为删除链接、并将 `.old-*` 改回原名。
|
|
110
|
-
- 切换必须在 DSH 退出后执行:源目录在 DSH 运行期间被占用,目录改名与建立链接均会失败。
|
|
115
|
+
每个任务一份体系注册,随任务库独立;全局总注册只列路径,不承载各任务正文。
|
|
111
116
|
|
|
112
|
-
|
|
117
|
+
### 5.2 任务级格式
|
|
113
118
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
一级标题写 `# 体系注册(项目「<名>」)`;下设 3 个二级节,标题依次为 `## 目录结构`、`## 规范文件`、`## 计划`。各节内容如下:
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
| 路径 | 用途 |
|
|
123
|
+
|---|---|
|
|
124
|
+
| `Projects/<名>/` | 库根 |
|
|
125
|
+
|
|
126
|
+
| 路径 | 用途 | 何时读 |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| `_Project_Meta/<名>/Handover.md` | 交接 | 开轮前 |
|
|
129
|
+
|
|
130
|
+
- `PLAN.md`:当前行动计划;没有则不写本行。
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
骨架全文见 `_Control_Center/templates/System.skeleton.md`。杂项与全局任务同构,只替换标题中的类别、目录结构与规范文件路径;交接行按 §4.1 填写。
|
|
134
|
+
|
|
135
|
+
### 5.3 全局总注册格式
|
|
136
|
+
|
|
137
|
+
一级标题写 `# 体系注册(全局)`,下设一张 3 列表格:任务、类别、体系文件。示例:
|
|
138
|
+
|
|
139
|
+
```text
|
|
140
|
+
| 任务 | 类别 | 体系文件 |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| Mingent | 项目 | `_Project_Meta/Mingent/System.md` |
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 5.4 写入与生效
|
|
146
|
+
|
|
147
|
+
- `read`:读本会话所属注册;全局读 `systems.md`。
|
|
148
|
+
- `write`:全文替换本注册,逐条校验路径存在;全局写总注册(条目为任务体系文件的路径)。写前留 `.bak`,写后重装本会话提示段。
|
|
149
|
+
- `check`:校验本会话注册(全局校验全部任务注册),返回失效路径与缺失注册。
|
|
150
|
+
- `plan`:`mode=read | write | archive`。`write` 写任务根 `PLAN.md`,旧计划先移到 `_archive/PLAN_<YYYYMMDD_HHMMSS>.md` 再写;`archive` 只归档;`read` 返回正文。计划写入后,确保注册文件「计划」行指向它。
|
|
151
|
+
- 权限:只有本类别在任会话可写;全局不代写项目与杂项的注册;全局总注册仅全局可写。
|
|
152
|
+
- 热更新:提示段装配时以注册文件的 `mtime+size` 为签名,签名变化即重装该会话提示段;写入后立即重装。
|
|
153
|
+
- 注入:全局注入 `systems.md` 内容;项目与杂项注入本注册全文。
|
|
154
|
+
|
|
155
|
+
## 6. 行动计划
|
|
156
|
+
|
|
157
|
+
- 位置:任务根 `PLAN.md`。项目为 `Projects/<名>/<名库>/PLAN.md`,杂项为 `_Misc/tasks/<任务>/PLAN.md`,全局任务为 `_Control_Center/tasks/<任务>/PLAN.md`。
|
|
158
|
+
- 判据:层级二一律编写计划。纯窗口是否超过 40% 决定计划内是否拆分派子智能体。超过则在计划中安排拆分,未超过则按本会话完成编写。子智能体细则见 §12.4。
|
|
159
|
+
- 模板:`src/templates/Plan.skeleton.md`,含目标、步骤、验收、风险、状态 5 节。
|
|
160
|
+
- 建新计划前把旧计划归档到任务根 `_archive/`,归档后不读旧计划。
|
|
161
|
+
- 收尾或换任时计划随任务归档;续跑提示写明「先读交接、再读计划、后执行」。
|
|
162
|
+
- 工具:`ho_docmap(action="plan", mode=…)`;也可用 `ho_sessions(action="prompt")` 生成带计划的启动提示词。
|
|
163
|
+
|
|
164
|
+
## 7. 暂任与协作
|
|
165
|
+
|
|
166
|
+
### 7.1 暂任提示词文件
|
|
167
|
+
|
|
168
|
+
- 位置:任务库根的 `Delegation_Prompt.md`(项目为 `Projects/<名>/<名库>/`,杂项为 `_Misc/tasks/<任务>/`,全局任务为 `_Control_Center/tasks/<任务>/`)。
|
|
169
|
+
- 旧提示词移入任务根 `_archive/`,此后不再读旧文件。
|
|
170
|
+
- 插件不检查该文件是否存在,也不检查是否已归档;文件由会话自己维护。
|
|
171
|
+
|
|
172
|
+
### 7.2 交出与归还
|
|
173
|
+
|
|
174
|
+
- 交出前先刷新交接。交出方仍为该任务的在任者,暂任不改变交接归属。
|
|
175
|
+
- 交出方把暂任提示词写入 `Delegation_Prompt.md`,并在回复中给出可直接复制的文本,由用户转交暂任方。
|
|
176
|
+
- 归还时再次刷新交接,交接的身份字段填暂任者,回复中同样给出可复制文本。
|
|
177
|
+
- 暂任方只写本任务库,不得写 `_Control_Center`、其他项目与其他任务。
|
|
178
|
+
|
|
179
|
+
### 7.3 协作
|
|
180
|
+
|
|
181
|
+
- 两会话可直接用 `peer`(`action="send"`)协作,不必经全局转述。
|
|
182
|
+
- 多会话协作:协调者先用 `peer(action="collab", sessions=[…])` 注册协作,再逐个派发任务,用 `collect` 列出待等待的会话。先完成者先返回,同时完成则一并返回。协作期间,被交办方不得向交办者或同组成员发送明文消息,工具端会拒绝。DeepSeek Harness(DSH)自带的 `send_message` 亦由插件守卫拦截。普通对话无需注册。`collect` 取回全部结果后,限制自动解除。
|
|
183
|
+
- 多会话由全局统筹:全局按任务分派、查询在任、协调时序;各会话默认沉默,不每轮回执。
|
|
184
|
+
- 协作提示词模板见 `_Control_Center/templates/Prompt_Templates.md` §8 与 §9。
|
|
185
|
+
|
|
186
|
+
## 8. 身份、名称与首轮
|
|
187
|
+
|
|
188
|
+
- 冻结名:会话自行注册一次,此后不得自行更改。全局可沿用旧名。本机无全局时,才允许将当前会话设为全局。
|
|
189
|
+
- 名称注册:`ho_office(action="register")`,已有同类在任他人时拒绝;同名重复注册直接拒绝。
|
|
190
|
+
- 首轮指令:普通会话被设为项目或杂项后,插件投递一次性消息。该指令要求先了解既有产出与任务,读取体系模板并初拟体系。随后二选一:全权建立并注册,或与用户讨论定稿后建立并注册。名称须经用户认可,注册后不得自行更改。
|
|
191
|
+
- 身份互转:`ho_sessions(action="role", migrate=auto | direct)`。`auto` 先快照再移动;`direct` 不搬旧文件,按模板新建体系。
|
|
192
|
+
- 快照:源库全库打包(无 7-Zip 时用 tar.gz),存放于 `_Archives/_Global/Backups/身份迁移_<YYYYMMDD_HHMMSS>/`。
|
|
193
|
+
- 项目转杂项:`Projects/<名>/`(含子库)移入 `_Misc/tasks/<名>/`;交接、骨架档案、注册随之改位置。
|
|
194
|
+
- 杂项转项目:`_Misc/tasks/<名>/` 移入 `Projects/<名>/<名库>/`;注册与交接改位置,`Registry.md` 增行。
|
|
195
|
+
- `Office.json` 的类别键改为新类别,旧条目保留在历史中;写前备份 `Office.json`。
|
|
196
|
+
- 互转首轮指令为二选一:迁移,或直接建立。
|
|
197
|
+
|
|
198
|
+
## 9. 迁移与恢复
|
|
199
|
+
|
|
200
|
+
1. `ho_backup({action:"check", items:[…]})` 先过前置闸门:会话静止、交接到位。
|
|
201
|
+
2. `ho_backup({action:"pack", kind:"project" | "task" | "global", name:"…"})` 生成迁移包,含 manifest、CHECKSUMS、MIGRATION.md 与绝对路径体检。
|
|
202
|
+
3. 更换机器:解压包、安装插件、`ho_backup({action:"verify", pack:"<包>"})` 核验包是否仍为现版。
|
|
203
|
+
4. `ho_backup({action:"restore", pack:"<包>", dry_run:true})` 预演,确认后传 `apply=true`。
|
|
204
|
+
5. 会话本身不迁移:跨机连续性仅由交接文档承载。
|
|
205
|
+
6. 旧版文档定位迁移:`ho_workspace(action="migrate")` 检测 `_Control_Center/records/docmap/`,把 `global.md`、`project-<名>.md`、`misc-<任务>.md` 的条目并入对应体系注册;旧目录全部移入 `_Archives/_Global/Backups/1.0-docmap_<YYYYMMDD_HHMMSS>/`,不删除。`ho_gate` 与 `ho_status` 在检测到旧目录时提示「待迁移」。
|
|
206
|
+
|
|
207
|
+
## 10. 设置页与搬迁
|
|
208
|
+
|
|
209
|
+
- 阈值文案为 35% 与 50%,不出现其他提醒阈值。
|
|
210
|
+
- 角色卡:修改角色需再次确认;已有全局在任时,下拉不出现「全局」。
|
|
211
|
+
- 不设文件体系卡,不显示计划与暂任状态;迁移卡不变。
|
|
212
|
+
- 使用说明与工具明细按 1.0 重写,保留 14 个工具。
|
|
213
|
+
- 设置页数据经宿主认证的 `/api` 载体(`/api/dsh-handover`)传输,旧 HTTP 路由仅作回退。页面内直接调用 `fetch` 在本机图形界面会返回 403。
|
|
214
|
+
- 移动全局根目录分 4 步:`ho_workspace(action="move-probe", to=…)` → `action="move"`(复制并逐文件校验 sha256)→ `action="move-switch"`(启动后台助手,退出 DSH 后自动完成改名与建链接;也可双击生成的 `dsh-handover.move.cmd`)→ `action="move-cleanup", confirm=true`。
|
|
215
|
+
- 切换后,原路径成为指向新位置的链接(Windows 为 junction,Linux 与 macOS 为符号链接)。注册表、profile 与会话目录均无需修改。回退方式为删除链接,并将 `.old-*` 改回原名。
|
|
216
|
+
- 切换须在 DSH 退出后执行:源目录在 DSH 运行期间被占用,目录改名与建立链接均会失败。
|
|
117
217
|
|
|
118
218
|
## 11. 首次安装与工作区
|
|
119
219
|
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
- 注册工作区亦可单独执行 `ho_workspace(action="create", path=…, title=…)
|
|
123
|
-
-
|
|
124
|
-
-
|
|
220
|
+
- 2 个入口等价。其一为设置页「首次安装」,可粘贴已存在目录、建立全局文件体系并注册为工作区。其二为在会话中执行 `ho_workspace(action="init", parent=…, register=true)`。
|
|
221
|
+
- 未接入工作区时,闸门、交接体检、会话水位 3 项无数据;插件本体仍可用。
|
|
222
|
+
- 注册工作区亦可单独执行 `ho_workspace(action="create", path=…, title=…)`;删除操作仅移除注册,目录与日志不变。
|
|
223
|
+
- 已部署的工作区在插件新增目录之后,用 `ho_workspace(action="scaffold")` 一次补齐:仅新建缺失项,已有文件不覆盖、内容不改。
|
|
224
|
+
- 首次安装建立的目录为 `_Control_Center/{records,rules,standards,user,templates,tools}`、`Projects`、`_Project_Meta`、`_Misc/tasks`、`_Archives/_Global/Backups`、`_Temp`。
|
|
225
|
+
- 项目与杂项接入后,先读自己的库,再写 `project.profile.json` 或 `task.profile.json`,并用 `ho_profile(action="register")` 注册骨架。
|
|
226
|
+
- 会话标题规范见工作区 Charter;新建会话须当场给出标题。
|
|
125
227
|
|
|
126
228
|
## 12. 提示词预算与增删规则
|
|
127
229
|
|
|
128
|
-
### 12.1
|
|
230
|
+
### 12.1 分层(每轮成本归属)
|
|
129
231
|
|
|
130
232
|
| 层 | 内容 | 何时进入上下文 | 实测参考(加权 token) |
|
|
131
233
|
|---|---|---|---|
|
|
132
|
-
| L0 常驻 |
|
|
133
|
-
| L0 用户内容 | 全局前置提示词(用户开关,默认关闭) | 开启且非空时每轮 |
|
|
134
|
-
| L1 手册 | 本文件 |
|
|
135
|
-
| L2
|
|
234
|
+
| L0 常驻 | 角色段(全局段与项目、杂项段) | 每一轮 | 由冒烟打印实测值,不设上限 |
|
|
235
|
+
| L0 用户内容 | 全局前置提示词(用户开关,默认关闭) | 开启且非空时每轮 | 由用户自管,不计入插件预算 |
|
|
236
|
+
| L1 手册 | 本文件 | 按需取回,可按节取回 | 不设上限,不进每轮 |
|
|
237
|
+
| L2 规则与规范 | 工作区 `_Control_Center/rules/`、`_Control_Center/standards/` | 按需 | 由工作区自管 |
|
|
136
238
|
|
|
137
|
-
> 加权 token
|
|
239
|
+
> 加权 token 算法:CJK 与全角标点每字符 1 token,其余每 4 字符 1 token。实测常量在 `lib/facts.mjs` 的 `TOKEN_BUDGET`;冒烟只打印实测值,不设上限,也不用于拒绝或截断。
|
|
138
240
|
>
|
|
139
|
-
> L0
|
|
241
|
+
> L0 是成本主体:按轮次乘算,只放每轮都要用到的判定。一个会话生命周期内只用几次的流程,一律以指针指向 L1。
|
|
242
|
+
>
|
|
243
|
+
> 同一内容只注入一份;流程规范全文进提示段,不设简版与详版。
|
|
244
|
+
|
|
245
|
+
### 12.2 布局
|
|
140
246
|
|
|
141
|
-
|
|
247
|
+
- 全局段 6 节:身份、权限、任务流程、上下文与压缩、交接与体系、按需取用。
|
|
248
|
+
- 项目与杂项段:写入范围、库根或任务目录、骨架、临时与归档、交接、固定流程、流程文本、体系注册内容、通用规范与写作规范指针、暂任与协作指针、会话间通信。具体行数以实际骨架为准,改动须落在既有行内。
|
|
249
|
+
- 普通会话:不注册任何提示段。
|
|
250
|
+
- 新增内容先在既有节内找位置;找不到位置,说明该内容属于 L1,不新增一节。
|
|
251
|
+
- 选填内容(授权提示、迁移提示行)按需追加,不占位。
|
|
142
252
|
|
|
143
|
-
|
|
144
|
-
- **项目、杂项段**:九行固定——写入范围、库根、骨架、临时与归档、交接、水位与压缩、对外通信、指针;有迁移时另加一行。
|
|
145
|
-
- **普通段**:不注册任何提示段。
|
|
146
|
-
- 新增内容先在既有节内找位置;找不到位置,说明该内容属于 L1,而不是新增一节。
|
|
253
|
+
### 12.3 准入 4 条
|
|
147
254
|
|
|
148
|
-
|
|
255
|
+
1. 每轮都要用到的判定才可进 L0;有明确触发时机的一次性流程,一律写指针。
|
|
256
|
+
2. 同一规则只写一处;由所在节表达作用域,不以重复强调实现。
|
|
257
|
+
3. 进 L0 须指明所属节;无法归属则不进。
|
|
258
|
+
4. 每句都须回答:能否换成指针;不能替代的理由写入 `CHANGELOG`。
|
|
149
259
|
|
|
150
|
-
|
|
151
|
-
2. 同一规则**只写一处**;由所在节表达作用域,不靠重复强调。
|
|
152
|
-
3. 进 L0 必须指明所属节;无法归属则不进。
|
|
153
|
-
4. 每句都须回答:能否换成指针?不能替代的理由是什么(写入 CHANGELOG)。
|
|
260
|
+
### 12.4 子智能体成本与续用
|
|
154
261
|
|
|
155
|
-
|
|
262
|
+
- 先核算成本:每个子智能体是一个独立会话,自带系统提示与任务提示,自身亦需十余步,结论还须回主会话审读。实测一次分模块作业派出 5 个,各自占用 16% 至 20% 上下文,合计约等于另建一个会话。
|
|
263
|
+
- 派发须 3 条判据全部通过:单块 ≥15 步或需读 ≥10 个文件、确需隔离、结果可机械验收。可由脚本批量处理再抽检者,先编写脚本。子智能体数量与单个步数上限写入 `PLAN.md`,随计划一并请用户确认;难以判定时由本会话自行完成。
|
|
264
|
+
- 续用优先:工序延续不另行建立会话。子智能体完成后转入静止状态(inactive),其对话、已读文件与既定选择均保留,一次 `send_message` 即可继续。同一批文件的下一道工序须交回原作者,不得另行建立。检索既有子智能体用 `list_agents` 确认状态,并对照其上一轮交付的文件清单决定派发对象。
|
|
265
|
+
- 仅在 3 种情形下另行建立:原作者上下文将满;新工序与其产物无关;需要独立复核其结论(此时刻意改派他人,并声明属复核)。
|
|
156
266
|
|
|
157
|
-
|
|
158
|
-
- **删**:先查引用(冒烟断言、手册同项、其他角色段)→ 同步删除 L1 与 L0 的重复表述,避免「常驻删了、文档没补」→ 再跑冒烟。
|
|
159
|
-
- **改**:一次改一件事;改完对比体积,超上限即回退,不允许「先合并、下次再压」。
|
|
267
|
+
### 12.5 增删流程
|
|
160
268
|
|
|
161
|
-
|
|
269
|
+
- 增:判定是否每轮需要。若否,写入 L1 并在「按需取用」增加一行指针。若须进入 L0,指明节次。随后运行 `blank-smoke`(体积与结构断言),并在 `CHANGELOG` 记录新增内容、不能改为指针的理由与体积变化。
|
|
270
|
+
- 删:先查引用(冒烟断言、手册同项、其他角色段)。随后同步删除 L1 与 L0 的重复表述,避免常驻段已删除而文档未同步。最后运行冒烟。
|
|
271
|
+
- 改:一次只改一处;修改后记录体积参考值,不设上限(提示词效果优先)。
|
|
162
272
|
|
|
163
|
-
|
|
164
|
-
2. 结构:全局五节、项目九行各出现一次,顺序不变。
|
|
165
|
-
3. 一处一规则:会话间通信规则、压缩授权、交接线各只出现一次。
|
|
166
|
-
4. 禁止回灌:工作流细节(`ho_pack`、`move-probe`、具体命令步骤)不得出现在 L0。
|
|
167
|
-
5. 手册同步:凡 L0 指向的 section 必须在本文中存在且标题可匹配。
|
|
273
|
+
### 12.6 检查清单
|
|
168
274
|
|
|
169
|
-
|
|
275
|
+
1. 体积:只记录实测参考值,不判上限。
|
|
276
|
+
2. 结构:全局段 6 节、项目与杂项各项各出现一次,顺序不变。
|
|
277
|
+
3. 一处一规则:会话间通信、压缩授权、交接线各只出现一次。
|
|
278
|
+
4. 禁止回灌:工作流细节(`ho_backup`、`move-probe`、具体命令步骤)不得出现在 L0。
|
|
279
|
+
5. 手册同步:凡 L0 指向的节须在本文中存在,且标题可匹配。
|
|
280
|
+
|
|
281
|
+
> 结构护栏由测试执行(节次齐全、只出现一次),不依赖人工自查;体积只测量,不判失败。
|
|
282
|
+
|
|
283
|
+
## 13. 授权提示与状态
|
|
284
|
+
|
|
285
|
+
- 授权由用户产生,写入 `~/.dsh/storages/dsh-handover.consent.json`,5 分钟有效、一次性、按会话计。
|
|
286
|
+
- 授权生效后,目标会话的提示段即增加一行:「用户已授权压缩,至 <时刻>(一次性,用后失效)」,或「用户已授权换任,至 <时刻>(一次性,用后失效)」。该行在过期或使用后消失,不占位。
|
|
287
|
+
- 2 种授权可并存,各占一行。
|
|
288
|
+
- `ho_status(view="phase")` 与 `view="brief"` 都有一行「授权」,写明剩余分钟与到期时刻;向用户索要授权后,先查该项,再等待回复。
|
|
289
|
+
- 一次性后台提醒:为每个全局、项目、杂项会话各投一次 35% 与 50% 提醒。投递方式为尾注入:插件工具返回结果时,在结果文本末尾追加一条 `[System Note: …]`,模型下一步立即读到;不改系统提示词(不改写前缀缓存)、不拆回合、不另起消息、不打断工具。模型整轮不调用插件工具时没有注入点,此时助手可用 `ho_status` 读取水位。状态存 `~/.dsh/storages/dsh-handover.reminders.json`。
|
|
290
|
+
- 压缩后的第一次判定跳过:此时投影缓存仍为压缩前的旧水位,以免据虚高读数误投。
|
|
291
|
+
- 不向会话日志写入 developer/message 通知:宿主强校验这类事件必须恰好匹配已打开的轮与步,写入会使会话落入 SessionFormatError 状态。
|
|
292
|
+
|
|
293
|
+
## 14. 通用规范与写作规范
|
|
294
|
+
|
|
295
|
+
- 位置:`_Control_Center/standards/`。一条规范一个子目录,目录名即规范名,正文入口为子目录内的 `README.md`。规范自带的脚本与附件放在同一子目录,不混入 `_Control_Center/tools/`。
|
|
296
|
+
- 作用域:任何角色的会话都可读;新增与改写由全局会话执行,项目与杂项只读。
|
|
297
|
+
- 写入范围:用户提到「把某某写成规范」时,未指明范围即写本会话所在的工作区。仅当用户说「写入通用规范库」「写成通用规范」或「写成共用规范」时,才写本目录。
|
|
298
|
+
- 查找范围:先看本库有无同名规范,再看本目录。2 处都有时按本库那份执行,本目录那份作为通用版本。
|
|
299
|
+
- 写作规范固定存放于 `_Control_Center/standards/写作规范/README.md`(W-01 至 W-42),研究依据在同目录 `依据_论文.md`(只作追溯,不注入提示段)。提示段只放一行指针,不注入条款正文。
|
|
300
|
+
- 与相邻位置的分工:`_Control_Center/rules/` 是工作区自身的运行规则,`_Control_Center/user/` 存放用户内容与写作规则。本目录存放可复用的做法,按名称被引用。
|
|
301
|
+
- 补齐:插件新增目录后,已部署的工作区执行 `ho_workspace(action="scaffold")`;该动作只建缺失项,已有文件不覆盖。
|
|
302
|
+
- 正文只写做法、判据与验收条件,不记某次作业的进度;进度归交接与台账。
|
|
303
|
+
|
|
304
|
+
## 15. 硬规定
|
|
305
|
+
|
|
306
|
+
- 对用户可见的一切一律使用中文,含工具 `description`、选项、清单、表格状态词。
|
|
307
|
+
- 时间一律带偏移书写:`2026-10-23 21:40 +0800`。
|
|
308
|
+
- 不虚构、不越权、不擅自删除;项目库内文件只由该项目会话自己修改。
|
|
309
|
+
- 界面动作写「点击」,不写其他同义单字。
|
|
310
|
+
- 不设发布动作:版本与发布由用户明确要求后另行处理。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 体系注册(项目「<名>」)
|
|
2
|
+
|
|
3
|
+
> 本文件是任务的体系注册,随任务库独立。建立方式:按本骨架填入实际值,用 `ho_docmap(action="write", entries=…)` 或对应入口写入,逐条校验路径存在。全局总注册只列本文件路径,不承载正文。
|
|
4
|
+
>
|
|
5
|
+
> 类别与路径:项目标题写「项目「<名>」」、路径取 `_Project_Meta/<名>/System.md`;杂项标题写「杂项「<任务名>」」、路径取 `_Misc/tasks/<任务>/System.md`;全局任务标题写「全局任务「<任务名>」」、路径取 `_Control_Center/tasks/<任务>/System.md`。目录结构与规范文件按各自实际填写。
|
|
6
|
+
>
|
|
7
|
+
> 「计划」一行指向任务根 `PLAN.md`;计划归档后删除本行。路径一律写工作区相对路径,须真实存在;写入时逐条校验,任一项失效即拒绝写入。
|
|
8
|
+
|
|
9
|
+
## 目录结构
|
|
10
|
+
|
|
11
|
+
| 路径 | 用途 |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `Projects/<名>/` | 库根 |
|
|
14
|
+
| `Projects/<名>/<名库>/` | 代码与文档主体 |
|
|
15
|
+
| `_Temp/<名>/Snapshots/` | 覆盖前快照 |
|
|
16
|
+
| `_Archives/<名>/` | 归档 |
|
|
17
|
+
|
|
18
|
+
## 规范文件
|
|
19
|
+
|
|
20
|
+
| 路径 | 用途 | 何时读 |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `_Project_Meta/<名>/Handover.md` | 交接 | 开轮前 |
|
|
23
|
+
| `_Project_Meta/<名>/System.md` | 本注册 | 开轮前 |
|
|
24
|
+
| `Projects/<名>/<名库>/RULES.md` | 库内规则 | 作业前 |
|
|
25
|
+
| `_Control_Center/rules/Handover_Rules.md` | 交接规范 | 写交接前 |
|
|
26
|
+
| `_Control_Center/standards/写作规范/README.md` | 写作规范 | 写文档前 |
|
|
27
|
+
| `_Control_Center/templates/Prompt_Templates.md` | 会话提示词模板 | 建立会话或暂任前 |
|
|
28
|
+
|
|
29
|
+
## 计划
|
|
30
|
+
|
|
31
|
+
- `PLAN.md`:当前行动计划;没有则不写本行。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 体系注册(全局)
|
|
2
|
+
|
|
3
|
+
> 本文件是全局总注册,位于 `_Control_Center/records/systems.md`,只列各任务体系文件的路径,不承载各任务体系正文。由全局会话维护,项目与杂项不得写入。
|
|
4
|
+
>
|
|
5
|
+
> 新增任务时增加一行;任务改名或体系文件迁移时同步修改本行。类别取「全局任务」「项目」「杂项」三者之一。
|
|
6
|
+
>
|
|
7
|
+
> 体系文件路径:全局任务 `_Control_Center/tasks/<任务名>/System.md`;项目 `_Project_Meta/<项目名>/System.md`;杂项 `_Misc/tasks/<任务名>/System.md`。路径须真实存在;写入时逐条校验,任一项失效即拒绝写入。
|
|
8
|
+
>
|
|
9
|
+
> 写入后立即重装提示段;签名取文件 `mtime+size`,变化即重装。本文件没有任务时保留标题与表头,不写空行。
|
|
10
|
+
|
|
11
|
+
| 任务 | 类别 | 体系文件 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| <任务名> | <项目、杂项、全局任务> | `<工作区相对路径>` |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# 暂任规范(插件自带默认口径)
|
|
2
|
+
|
|
3
|
+
> 暂任指将某任务的执行权临时交由另一会话承担,交出方仍为在任者。暂任不改变交接归属,不换任、不归档。
|
|
4
|
+
> 插件不检查暂任提示词文件是否存在,也不检查是否已归档;本规范只约束会话行为。
|
|
5
|
+
|
|
6
|
+
## 1 适用与边界
|
|
7
|
+
|
|
8
|
+
- 适用:需要并行推进、跨会话接力,或暂由全局或其他会话承接一段工序。
|
|
9
|
+
- 不适用:正式换任用 `ho_succeed`,任务移交按归档与接任流程办理。
|
|
10
|
+
- 暂任方只写本任务库,不得写 `_Control_Center`、其他项目与其他任务。
|
|
11
|
+
- 暂任期间交接由交出方维护;归还时交接的身份字段填暂任者。
|
|
12
|
+
|
|
13
|
+
## 2 文件位置
|
|
14
|
+
|
|
15
|
+
| 类别 | 暂任提示词 | 任务内归档 |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| 项目 | `Projects/<名>/<名库>/Delegation_Prompt.md` | `Projects/<名>/<名库>/_archive/` |
|
|
18
|
+
| 杂项 | `_Misc/tasks/<任务>/Delegation_Prompt.md` | `_Misc/tasks/<任务>/_archive/` |
|
|
19
|
+
| 全局任务 | `_Control_Center/tasks/<任务>/Delegation_Prompt.md` | `_Control_Center/tasks/<任务>/_archive/` |
|
|
20
|
+
|
|
21
|
+
## 3 交出流程
|
|
22
|
+
|
|
23
|
+
1. 刷新交接:写清在途步骤、下一步、风险与禁区、关键路径,并用 `ho_gate` 体检至「通过」或「缺节」。
|
|
24
|
+
2. 拟提示词:写入 `Delegation_Prompt.md`;旧文件移入 `_archive/`,此后不读旧文件。
|
|
25
|
+
3. 提示词应含:任务名与类别、交接绝对路径、体系注册路径、写入范围、可用工具、验收判据、归还要求。可复制骨架见 `_Control_Center/templates/Prompt_Templates.md` §8。
|
|
26
|
+
4. 回复当前用户:给出可直接复制的文本,并说明暂任范围与期限。
|
|
27
|
+
5. 交出方保持沉默,不每轮询问进度;需要协同用 `peer`(`action="send"`)。
|
|
28
|
+
|
|
29
|
+
## 4 归还流程
|
|
30
|
+
|
|
31
|
+
1. 暂任方按提示词完成或终止工序,返回结果与遗留项。
|
|
32
|
+
2. 交出方刷新交接;身份字段填暂任者,写清本次暂任的范围、结果与遗留项。
|
|
33
|
+
3. 回复当前用户:给出可直接复制的归还文本。
|
|
34
|
+
4. 旧的暂任提示词移入 `_archive/`。
|
|
35
|
+
|
|
36
|
+
## 5 与协作的分工
|
|
37
|
+
|
|
38
|
+
- 暂任:同一任务在同一时间只有一个执行方,交出方让出执行权。
|
|
39
|
+
- 协作:2 个会话并行推进同一任务的不同部分,用 `peer` 直接通信;多会话由全局统筹。模板见 `Prompt_Templates.md` §9。
|
|
40
|
+
- 两者都以刷新交接为前置;交接不合格时不得开始暂任或协作。
|
|
41
|
+
|
|
42
|
+
## 6 体检与风险
|
|
43
|
+
|
|
44
|
+
- 暂任前用 `ho_gate` 体检交接;体检未通过时不得开始。
|
|
45
|
+
- 主要风险:暂任方越界写其他目录、提示词与交接不一致、归还时未填身份字段。防护分别为:限定写入范围、以交接为唯一事实来源、归还前逐项核对。
|