session-mechanism:术语表收敛到一处 + 「宿主」改正式名 WorkBuddy 本体
用户令:「宿主 这个词要优化,看看产品规划技能中是如何优化这些难懂的词」。 口径借 product-planning 的语体规范(references/stage-proto-doc/references/doc-language-spec.md §2.1–§2.4):技术实现名不当正式名;正式名取界面实显名/术语表/行业通用词;一个东西一个名;首次出现给全称。 - architecture.md §7 立为「术语唯一天条真源」:正式名「宿主」→「WorkBuddy 本体」,表加「旧称/别再叫」列, 并入 collab-detail §11 的独有条目(设备接入·本地反代/覆盖网络节点·中继客户端/棒/会话);新增 §7.1 写词的规矩。 - collab-detail.md §11 的两张表删除、改为指针。实测打架:§11 写「宿主提供五样(含执行体·会话)」, 而 architecture.md 与 collab-detail §1 都写「四样」⇒ 同一条两处两说。§11.1 命名铁律原文保留。 - SKILL.md:description 的悬空指向「见文首术语表」(本包从没有术语表)改为「见 architecture.md §7 术语」; 「现状地图」首屏加一行「宿主 = WorkBuddy 本体」。 - 01-文档索引.md 加一行(看不懂的词 → architecture §7);06 的 B⑧ 加术语正本指针。 新增自测 t_term_table_single_source(3 项):全包只许一处 `| 正式名 |` 表头且必须是 architecture.md、 正本里不许再出现「| **宿主** |」。已做变异对照(塞第二张表 ⇒ 报红;复原 ⇒ 绿)。
This commit is contained in:
1 parent
ed9ed847bd
commit
a46b914a80
6 files changed
+77
-23
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: session-mechanism
|
name: session-mechanism
|
||||||
description: 「**会话机制 + 多会话执行**」的合并总入口(原 `multi-session-collab` + `workbuddy-session-forensics` 已并入本包)。🔴 **2026-10-05 起会话只三类:主会话 + 任务会话 + 检查会话**(唤醒/跟进/队列上报**已整套退役**;**任务会话=旧称「执行会话」,同一个角色**)|🔴 **2026-10-03 起「上报」整套真删**——现行机制=**常驻程序 `collabd.py` 接收(`--report` 写台账)+ 处理(建检查会话排期)**(⛔ 「协作程序」是 10-03 已退役的旧称,见文首术语表),⛔ **队列变化不再自动通知任何人**,要落事得**显式建执行会话**。两段可分别加载:① **会话机制** —— 管「会话怎么活下去、怎么不哑掉、怎么不失忆、跨机器怎么一键装好」:治「会话卡住 / 一直转圈 / 发消息没反应 / 界面不刷新」「会话日志涨到上限把界面顶死」「上下文爆了要换会话 / 接续会话怎么开」「抢锁 / 执行锁 / 并发 / 别的会话在动」「钩子没生效 / 钩子把我也拦住了」「换一台电脑要重装这一堆钩子」「某个历史会话当时到底干了啥」。② **多会话执行** —— 管「一个主会话带多个执行会话把需求做完」:治「多个会话协同但工期被拖长 / 有会话在干等 / 链条断了没人接 / 分不清『真完成』还是『只排了下一棒』/ 问清主会话·执行会话两类怎么分(**接续会话是撞阈值时的「形态」,⛔ 不是第 3 类**)」。🔴 **主触发句(2026-10-03 用户定案)**:用户说「**使用执行会话完成 XXXX 目标**」「**继续 XXXX 目标**」时**直接走本技能**(=要派执行会话去把一个目标做完/接着做)。🔴🔴 **未装即装(2026-10-14 用户令)**:说「使用项目机制完成目标:XXXX」时,若本区 **没装机制** ⇒ **当场跑 `install.py --apply --workspace <本区根>` 装好,再往下走**(装机制是这条链的第一环,⛔ 不报成阻碍、⛔ 不绕过机制直接干、⛔ 装完不停手)。其他触发:「怎么协同多个会话」「别的会话都在干等」「任务没推进」「链条断了」「你监督这些会话」「会话卡住」「日志要爆了」「换机器怎么配」「升级 / 安装这套机制」。核心=**会话机制三件套(钩子 + 锁 + 日志闸)全局生效** + **执行两条通道各走各的**(派活靠自动化/收结果直读宿主库/机械判定下沉到常驻程序/人只看一个看板)+ **一键配置 `install.py`**(换机器不手抄绝对路径)。
|
description: 「**会话机制 + 多会话执行**」的合并总入口(原 `multi-session-collab` + `workbuddy-session-forensics` 已并入本包)。🔴 **2026-10-05 起会话只三类:主会话 + 任务会话 + 检查会话**(唤醒/跟进/队列上报**已整套退役**;**任务会话=旧称「执行会话」,同一个角色**)|🔴 **2026-10-03 起「上报」整套真删**——现行机制=**常驻程序 `collabd.py` 接收(`--report` 写台账)+ 处理(建检查会话排期)**(⛔ 「协作程序」是 10-03 已退役的旧称,见 architecture.md §7 术语),⛔ **队列变化不再自动通知任何人**,要落事得**显式建执行会话**。两段可分别加载:① **会话机制** —— 管「会话怎么活下去、怎么不哑掉、怎么不失忆、跨机器怎么一键装好」:治「会话卡住 / 一直转圈 / 发消息没反应 / 界面不刷新」「会话日志涨到上限把界面顶死」「上下文爆了要换会话 / 接续会话怎么开」「抢锁 / 执行锁 / 并发 / 别的会话在动」「钩子没生效 / 钩子把我也拦住了」「换一台电脑要重装这一堆钩子」「某个历史会话当时到底干了啥」。② **多会话执行** —— 管「一个主会话带多个执行会话把需求做完」:治「多个会话协同但工期被拖长 / 有会话在干等 / 链条断了没人接 / 分不清『真完成』还是『只排了下一棒』/ 问清主会话·执行会话两类怎么分(**接续会话是撞阈值时的「形态」,⛔ 不是第 3 类**)」。🔴 **主触发句(2026-10-03 用户定案)**:用户说「**使用执行会话完成 XXXX 目标**」「**继续 XXXX 目标**」时**直接走本技能**(=要派执行会话去把一个目标做完/接着做)。🔴🔴 **未装即装(2026-10-14 用户令)**:说「使用项目机制完成目标:XXXX」时,若本区 **没装机制** ⇒ **当场跑 `install.py --apply --workspace <本区根>` 装好,再往下走**(装机制是这条链的第一环,⛔ 不报成阻碍、⛔ 不绕过机制直接干、⛔ 装完不停手)。其他触发:「怎么协同多个会话」「别的会话都在干等」「任务没推进」「链条断了」「你监督这些会话」「会话卡住」「日志要爆了」「换机器怎么配」「升级 / 安装这套机制」。核心=**会话机制三件套(钩子 + 锁 + 日志闸)全局生效** + **执行两条通道各走各的**(派活靠自动化/收结果直读宿主库/机械判定下沉到常驻程序/人只看一个看板)+ **一键配置 `install.py`**(换机器不手抄绝对路径)。
|
||||||
version: 1.3.0
|
version: 1.3.0
|
||||||
updated_at: 2026-10-05
|
updated_at: 2026-10-05
|
||||||
last_change: |-
|
last_change: |-
|
||||||
@@ -133,6 +133,10 @@ agent_created: true
|
|||||||
|
|
||||||
## 🗺️ 现状地图(2026-10-05 · ⛔ 看机制**先读这一屏**,读完再往下)
|
## 🗺️ 现状地图(2026-10-05 · ⛔ 看机制**先读这一屏**,读完再往下)
|
||||||
|
|
||||||
|
> 🔴 **先把词对上(2026-10-15)**:正文里旧写的「**宿主**」= **`WorkBuddy 本体`** ——
|
||||||
|
> 装在本机、跑着会话与技能的那个程序。术语正本 ⇒ `references/architecture.md §7 术语`;
|
||||||
|
> 「宿主」「协作程序」「垫片」这类旧词,一律照那张表换成正式名(**新写的**按正式名,存量旧文不动字)。
|
||||||
|
|
||||||
**三类会话(⛔ 只有三类,没有第四类)**
|
**三类会话(⛔ 只有三类,没有第四类)**
|
||||||
|
|
||||||
| 角色 | **谁创建它** | 它干什么 | 怎么停 |
|
| 角色 | **谁创建它** | 它干什么 | 怎么停 |
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
| 查某个历史会话干了啥 | `forensics.md` | — |
|
| 查某个历史会话干了啥 | `forensics.md` | — |
|
||||||
| 任务图/多会话分工 | `taskgraph.md` + `collab.md` | — |
|
| 任务图/多会话分工 | `taskgraph.md` + `collab.md` | — |
|
||||||
| 怎么回话/排版 | `03-回复排版-核心块.md` + `02-功能优先协作协议.md` | — |
|
| 怎么回话/排版 | `03-回复排版-核心块.md` + `02-功能优先协作协议.md` | — |
|
||||||
|
| **读到看不懂的词/要写新词**(「宿主是什么」「术语」「这个词看不懂」) | `architecture.md §7 术语`(唯一正本) | — |
|
||||||
| **盘点技能库/技能已无作用**(「盘点技能库」「技能库体检」「技能清单」) | `05-技能库盘点规程.md` | 其余全部 |
|
| **盘点技能库/技能已无作用**(「盘点技能库」「技能库体检」「技能清单」) | `05-技能库盘点规程.md` | 其余全部 |
|
||||||
| **优化技能本身/这条规则写在哪**(「优化技能」「技能怎么改更好」「梳理技能」「技能太长」) | `06-技能优化规程.md` | 其余全部 |
|
| **优化技能本身/这条规则写在哪**(「优化技能」「技能怎么改更好」「梳理技能」「技能太长」) | `06-技能优化规程.md` | 其余全部 |
|
||||||
| 对方甩来一句没头绪的话 | `02-功能优先协作协议.md` | — |
|
| 对方甩来一句没头绪的话 | `02-功能优先协作协议.md` | — |
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
|
|
||||||
**⑧ 命名一致**
|
**⑧ 命名一致**
|
||||||
同一概念在全包用同一个叫法。改名前先列**伴随物清单**(只改主体必留隐患)。
|
同一概念在全包用同一个叫法。改名前先列**伴随物清单**(只改主体必留隐患)。
|
||||||
|
📌 本包的术语正式名与旧称映射,**唯一天条真源**是 `references/architecture.md §7 术语`(⛔ 别另抄一张表 —— 抄了必打架)。
|
||||||
|
|
||||||
**⑨ 正文不自相矛盾**
|
**⑨ 正文不自相矛盾**
|
||||||
同一件事在技能里出现两种写法(尤其"正文"与"规则段"之间)⇒ 逐条对,留一处。
|
同一件事在技能里出现两种写法(尤其"正文"与"规则段"之间)⇒ 逐条对,留一处。
|
||||||
|
|||||||
@@ -952,15 +952,33 @@
|
|||||||
|
|
||||||
## 7 术语(说话/写文档一律用这一列)
|
## 7 术语(说话/写文档一律用这一列)
|
||||||
|
|
||||||
| 正式名 | 实体 |
|
🔴 **本节是术语的唯一天条真源**(2026-10-15 收敛):别处只准引用,⛔ 不许另抄一张表。
|
||||||
|---|---|
|
实测教训:`collab-detail.md §11` 曾另存一张,把「宿主」写成提供**五样**(含"执行体·会话"),
|
||||||
| **宿主** | WorkBuddy 本体(地基) |
|
而本节正文写的是**四样** —— 同一件事两处两说,读的人无从判断谁对。
|
||||||
| **主会话** | 工作区入口会话(判断 + 派活) |
|
|
||||||
| **任务会话** | 被派出去的一次性会话("一棒一线") |
|
| 正式名 | 实体 | 旧称/别再叫 |
|
||||||
| **常驻程序** | 持有队列、收上报、判定/告警/看板/单例(⛔ 不派活) |
|
|---|---|---|
|
||||||
| **投递** | 逐条读队列、发通知与唤醒、机械判定 |
|
| **WorkBuddy 本体** | 装在本机、跑着会话与技能的那个程序(=地基,⛔ 不是第 6 个主体)。它只提供**四样**:状态(三张只读表)/调度(自动化排期=**唯一能开新会话的通道**)/事件(钩子)/互斥(域锁) | 「宿主」「平台」「服务端」 |
|
||||||
| **看板** | 用户唯一入口 |
|
| **主会话** | 工作区入口会话(判断 + 派活) | —— |
|
||||||
| **需求台账** | 常驻程序持有的**唯一**需求状态存放处(**四态**:待执行/执行中/已完成/有阻碍)—— ⛔ 不另开第二处 |
|
| **任务会话** | 被派出去的一次性会话("一棒一线") | 「执行会话」 |
|
||||||
|
| **常驻程序** | 持有队列、收上报、判定/告警/看板/单例(⛔ 不派活) | 「协作程序」「协作守护程序」「机械层」「判定层」 |
|
||||||
|
| **投递** | 逐条读队列、发通知与唤醒、机械判定 | 「机械层程序」「看门狗」 |
|
||||||
|
| **会话** | 执行体:「读—判—写」;一次性、可替换 | —— |
|
||||||
|
| **棒** | 一次派活 = 一个会话(「一棒一线」) | —— |
|
||||||
|
| **看板** | 用户唯一入口(只读旁路 · 异步快照) | ⛔ 别把 `digest.md`(机械摘要)当用户入口 |
|
||||||
|
| **需求台账** | 常驻程序持有的**唯一**需求状态存放处(**四态**:待执行/执行中/已完成/有阻碍)—— ⛔ 不另开第二处 | —— |
|
||||||
|
| **设备接入 · 本地反代** | `dsh-client` · 真身 `@dsh-client/device-shim`(`127.0.0.1:20090`):只绑回环的 HTTP+WS 反代,进程内注入本机 DSH 的会话凭据 | 「垫片」「shim」「薄垫片」 |
|
||||||
|
| **覆盖网络节点 · 中继客户端** | `dsh-client` · `<Repo>/lib/net/relay/main.js --client`,由 `overlay-node-daemon.ps1` 监护 | 「设备侧 worker」「worker」「节点进程」 |
|
||||||
|
|
||||||
|
### 7.1 写词的规矩(2026-10-15 立 · 口径借 `product-planning` 的语体规范)
|
||||||
|
|
||||||
|
- 🔴 **正式名取「读者看得懂」的那个**:界面实显名 > 已确认术语表 > 行业通用词。
|
||||||
|
技术实现名(进程、锁、数据库)不上正式名 —— 「宿主」指的就是 WorkBuddy 那个进程,属此类 ⇒ 正式名改 **`WorkBuddy 本体`**。
|
||||||
|
- 🔴 **一个东西一个名**:首次出现写**全称**,之后用上表的正式名;⛔ 不另造简称。
|
||||||
|
(用户 2026-09-30 明令:「垫片」「worker」这类抽象词禁用,一律写「`系统` · `功能名`」。)
|
||||||
|
- 🔴 **旧称只作映射**:读到「宿主」「协作程序」「垫片」等旧词 ⇒ 照上表换成正式名。
|
||||||
|
存量旧文**不动字**(改一处带一片,风险大于收益);**新写的、以及动到那一行时顺手改的**,一律用正式名。
|
||||||
|
- 📌 判据来源:`product-planning` 的 `references/stage-proto-doc/references/doc-language-spec.md` §2.1–§2.4。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -919,20 +919,11 @@ headless chrome /附着用户 Chrome** ⇒ **不许擅自开浏览器**。但"
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 11 🔴 术语表(**说话/写文档一律用「正式名」这一列**)
|
## 11 🔴 术语表
|
||||||
|
|
||||||
> 2026-09-29 用户指出"宿主是什么/机械程序又是什么,之前只提过**投递**和**常驻程序**" —— 属实:**同一个程序在文件里有 4 个名字**,图当然读不懂。**以本表为准。**
|
> 🔴 **正本已收敛到一处**(2026-10-15):术语表**只有一份** ⇒ `references/architecture.md §7 术语`(说话/写文档一律用那一列)。
|
||||||
|
> 本节不再维护表格 —— 曾因两处各存一张而打架:本节写「宿主提供**五样**(含执行体·会话)」,而 `architecture.md §7` 与本节 §1 都写**四样**。
|
||||||
| 正式名 | 实体(在哪) | 干什么 | ⛔ 别再叫它 |
|
> 本节只保留**不在正本里**的那部分 ⇒ 下面是 §11.1 命名铁律原文(用户 2026-09-30 明令)。
|
||||||
|---|---|---|---|
|
|
||||||
| **宿主** | WorkBuddy 本体 | 提供五样:状态(只读 3 表)/**调度**(自动化排期)/**事件**(钩子)/执行体(会话)/互斥(域锁) | 「平台」「服务端」 |
|
|
||||||
| **投递** | `advance-watch.py`(`.workbuddy/tools/`) | 零 token 机械判定:直读 `automation_runs`、判靶点/锁,写 `advance.md` + `needs-ai.json`。⛔ 不派活/不开会话/不联网/不读口令 | 「机械层程序」「机械程序」「看门狗」 |
|
|
||||||
| **常驻程序** | `collabd.py`(自述"协作守护程序") | 队列闸门(`NEXT.md`)+ **唤醒投递** + 证据分级/真空/断链告警/体检/看板覆写。**⛔ 不做派活** | 「判定层」「常驻程序」「机械层」 |
|
|
||||||
| **会话** | `sessions` 表 | 执行体:「读—判—写」;**一次性**、可替换 | —— |
|
|
||||||
| **棒** | 一次派活 = 一个会话 | 同一件事的执行单位(「一棒一线」) | —— |
|
|
||||||
| **看板** | `boards/会话看板/board.py --serve` → `boards/会话看板/board.html` | **用户唯一入口**(只读旁路 · 异步快照) | ⛔ 别把 `digest.md`(机械摘要)当用户入口;⛔ 也别再提已退役的 `交付物/手机接入-实时状态.md` |
|
|
||||||
| **设备接入 · 本地反代** | `dsh-client` · 真身 `@dsh-client/device-shim`(`127.0.0.1:20090`) | 只绑回环的 HTTP+WS 反代,**在进程内注入本机 DSH 的会话凭据**,供覆盖网络中继从设备入口访问桌面 DSH。⚠️ 该包已标「已退役」,计划并入 `@dsh-local/ai1net` 的第 6 块模块**M6「设备接入」**,但**尚未落地**(仓库里还没有 `ai1net` 包) | ⛔ 别再叫它「**垫片**」「shim」「薄垫片」 |
|
|
||||||
| **覆盖网络节点 · 中继客户端** | `dsh-client` · `<Repo>/lib/net/relay/main.js --client`,由 `overlay-node-daemon.ps1` 监护 | 本机作为**节点**接入覆盖网络:向中继注册(`registered host=… accepted=[20090]`)、维护长连、转发流 | ⛔ 别再叫它「**设备侧 worker**」「worker」「节点进程」 |
|
|
||||||
|
|
||||||
### 11.1 🔴 命名铁律(用户 2026-09-30 明令)
|
### 11.1 🔴 命名铁律(用户 2026-09-30 明令)
|
||||||
|
|
||||||
|
|||||||
@@ -7881,5 +7881,44 @@ def t_skill_entry_triggers_same_source():
|
|||||||
return rows
|
return rows
|
||||||
|
|
||||||
|
|
||||||
|
@case("🔴 术语表只能有一处正本(⛔ 两处必打架 —— 2026-10-15 实测「五样/四样」)")
|
||||||
|
def t_term_table_single_source():
|
||||||
|
"""🔴 2026-10-15 立(本轮整改"宿主"一词时实测踩到)。
|
||||||
|
|
||||||
|
判据来源:`references/06-技能优化规程.md` 的 **B⑥ 单一真源**。
|
||||||
|
|
||||||
|
实测:`architecture.md §7` 与 `collab-detail.md §11` 各存一张术语表,
|
||||||
|
且对「宿主」给出不同内容 —— 一处写提供**四样**、一处写**五样**(多"执行体·会话")。
|
||||||
|
已收敛:`architecture.md §7` 是唯一正本,`collab-detail.md §11` 改为指针。
|
||||||
|
⇒ 判据落在**全包只有一处**带 `| 正式名 |` 表头的表,且那处必须是 `architecture.md`。
|
||||||
|
"""
|
||||||
|
rows = []
|
||||||
|
hits = []
|
||||||
|
for p in sorted((HERE.parent / "references").glob("*.md")):
|
||||||
|
try:
|
||||||
|
t = p.read_text(encoding="utf-8", errors="replace")
|
||||||
|
except Exception:
|
||||||
|
continue
|
||||||
|
n = t.count("| 正式名 |")
|
||||||
|
if n:
|
||||||
|
hits.append((p.name, n))
|
||||||
|
try:
|
||||||
|
sk = (HERE.parent / "SKILL.md").read_text(encoding="utf-8", errors="replace")
|
||||||
|
if sk.count("| 正式名 |"):
|
||||||
|
hits.append(("SKILL.md", sk.count("| 正式名 |")))
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
rows.append(("带术语表表头的文件数(应=1,实测 %d:%s)"
|
||||||
|
% (len(hits), ", ".join(a for a, _ in hits) or "无"), len(hits) == 1))
|
||||||
|
rows.append(("唯一那处是 architecture.md(术语正本)",
|
||||||
|
bool(hits) and hits[0][0] == "architecture.md"))
|
||||||
|
rows.append(("术语表里已没有「宿主」当正式名(应改成 WorkBuddy 本体)",
|
||||||
|
bool(hits) and "| **宿主** |" not in
|
||||||
|
(HERE.parent / "references" / "architecture.md")
|
||||||
|
.read_text(encoding="utf-8", errors="replace")))
|
||||||
|
return rows
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
Reference in new issue
Block a user