diff --git a/session-mechanism/SKILL.md b/session-mechanism/SKILL.md index fa37a9f..687ee85 100644 --- a/session-mechanism/SKILL.md +++ b/session-mechanism/SKILL.md @@ -68,7 +68,7 @@ agent_created: true ⚠️ 那篇里还有**文档四条规则**(分类索引/结论在最前/历史倒排·新的在前/单条 ≤6 KB)—— **⛔ 只写进工作区日志的规矩 = 没立**(10-04 实证:一条红线立在对的地方,换会话照样读不到)。 -## 🔴🔴 第 0 步:加载门槛(2026-10-05 立 · ⛔ 这是**第一条**,在十条禁令之前) +## 🔴🔴 第 0 步:加载门槛(2026-10-05 立 · ⛔ 这是**第一条**,在十一条禁令之前) > **判据(一句话)**:**用户说了触发句 ⇒ 第 0 步是先加载本技能,然后才动手。⛔ 没有"我大概知道"这条捷径。** @@ -111,7 +111,7 @@ agent_created: true - **⛔ 装完不停手**:装机 ≠ 完成目标。装完**继续**把触发句那个目标接下去(起常驻 → 查目标 → 派这一轮任务会话)。 ⛔ 不许在装完或 `--verify` 全绿处停下、回头问"要不要继续干"—— 那是把已授权的事重新要签字。 -## 🚨 十条禁令(2026-10-05 立 · ⛔ 每条都栽过,栽一次就重来一遍) +## 🚨 十一条禁令(2026-10-05 立 · 2026-10-14 加第 11 条 · ⛔ 每条都栽过,栽一次就重来一遍) > 用户 2026-10-05 原话:「**你不要给我知道了,你给我记下来,每次都是知道了,知道了,过一会儿又忘了**」。 > ⇒ 所以这些话不放日志、不放事后复盘,**放在每次加载都会读到的地方**。⛔ 改任何东西之前先过一遍。 @@ -126,6 +126,10 @@ agent_created: true 8、⛔ **凡"东西自己反复触发",第一步读它的调度定义**(触发条件/重复间隔),⛔ 别从现象反推。 9、⛔ **验证通过的结论,落点只能是技能**(`SKILL.md` 第一屏 或 `references/`),⛔ 不许只写工作区日志。 10、⛔ **用户说"你知道了"时,⛔ 不许回答"知道了"** —— 去把它写成上面这种条文。 +11、⛔ **包内代码不许留盘符字面量**(2026-10-14 用户令:「能用相对路径的都要用相对路径」)—— + 引用**本包自己的**文件一律从 `__file__` 推导;**推不出来的**(工作区根/配置目录/文档库根)读本包 `env/roots.env`。 + ⛔ 也不许"推不出来就回落到一个猜的盘符" —— 要**如实报错 + 留痕**(静默扫空与"本机真没有"表现一样,最难查)。 + 📌 判据见 §0「路径一律用相对」。 ## 🗺️ 现状地图(2026-10-05 · ⛔ 看机制**先读这一屏**,读完再往下) @@ -426,7 +430,14 @@ python .workbuddy/collab/collabd.py --set-life 进行中 --by "主会话" 🔴🔴 **未装即装(2026-10-14 用户令)**:用户说「使用项目机制完成目标:XXXX」而本区没装 ⇒ **先 `--apply --workspace <本区根>` 装好再干活**(判据与停止线见上面「第 0 步的连体动作」)。 🔴 **`--workspace` 要点名本区绝对路径**:`roots.env` 里 `DSH_WS_ROOT` 可能指向别的工作区(实测本机指向 `ai1net-dsh-server`)⇒ ⛔ 不让它顶替,装到别区 = 静默错归属。 🔴 **包内目录怎么分(2026-10-11 用户令:「脚本是脚本 配置是配置」)**:**每台机器各不同**的配置一律放本包 **`env/`**(`env/roots.env` 本机生成、不入库;`env/roots.env.example` 是入库样例);`scripts/` 只留通用代码。仓根 `.gitignore` 只放行 `env/**/*.example`。 -🔴🔴 **看板一律进 `boards/<看板名>/`(2026-10-14 用户令:「把这两个看板都纳入会话技能中,分两个看板文件夹」)**:**自带页面的看板程序**(页面 + 脚本 + 启动器)**整包**放本包 `boards/` 下一个看板一个文件夹 ⇒ ⛔ 别把看板的 `.py` 散在 `scripts/`、页面散在 `assets/`(那样一个看板的东西分两处,改的时候必漏)。现有两个:`boards/会话看板/`(会话架构看板 · 端口 20099)/`boards/项目管理界面/`(项目+任务看板 · 端口 20100)。🔑 判据:**装进来的是"一个能跑起来的界面"⇒ 进 `boards/`;是"被别的程序调用的机制代码"⇒ 进 `scripts/`;是"纯样式或模板"⇒ 进 `assets/`**。 +🔴🔴 **看板一律进 `boards/<看板名>/`(2026-10-14 用户令:「把这两个看板都纳入会话技能中,分两个看板文件夹」)**:**自带页面的看板程序**(页面 + 脚本 + 启动器)**整包**放本包 `boards/` 下一个看板一个文件夹 ⇒ ⛔ 别把看板的 `.py` 散在 `scripts/`、页面散在 `assets/`(那样一个看板的东西分两处,改的时候必漏)。现有两个:`boards/会话看板/`(会话架构看板 · 端口 20099)/`boards/项目看板/`(项目+任务看板 · 端口 20100)。🔑 判据:**装进来的是"一个能跑起来的界面"⇒ 进 `boards/`;是"被别的程序调用的机制代码"⇒ 进 `scripts/`;是"纯样式或模板"⇒ 进 `assets/`**。 + +🔴🔴 **路径一律用相对(2026-10-14 用户令:「会话技能中 能用相对路径的都要用相对路径」)**:包内脚本引用**自己的**文件(`scripts/`、`boards/`、`references/`、`assets/`)一律从 `__file__` 上跳推导,⛔ **不写盘符、不写用户目录**。🔑 **判据问一句:「这个根能不能从『我自己的位置』推出来?」** +- **能**(本包自己的目录)⇒ 推导。例:`boards/项目看板/project-board.py` 取包根=`HERE.parent.parent`(上跳两级),⛔ 不写 `"E:/ProgramData/.workbuddy/skills/session-mechanism"`。 +- **不能**(工作区根、文档库根、宿主配置目录 —— 技能包跟它们**没有任何相对关系**)⇒ 那是「本机各不同的配置」⇒ **读本包 `env/roots.env`**(`DSH_AIROOT`/`DSH_WS_ROOT`/`CODEBUDDY_CONFIG_DIR`/`DSH_DOCS_ROOT`),⛔ 不在代码里留盘符字面量。 +- **推不出来 ⇒ 如实报错 + 留痕**(⛔ 不许静默扫空 —— "扫不到"与"本机真没有"表现完全一样,是最难查的一类假象)。 +- ⚠️ **文档/注释里的绝对路径不在此列**(举例、历史取证、报障记录照写 —— 那是证据,改了反而不忠实)。本条只管**会真正被执行的代码**。 +- 📌 落点:`boards/项目看板/project-board.py`(`_sm_load_roots()` + 技能根上跳两级 + `WS_ROOTS` 从 `DSH_AIROOT` 推导)、`scripts/selftest.py`(生产区定位改为扫 `DSH_AIROOT` 下兄弟区,⛔ 不写死某个区名)。 **⓪ 我要动手(建判据/写验收/报"已完成"/任何带"现在·已·还差"的结论)** ⇒ **先读 `references/00-动手前必过.md`**(🔴 **动手层**,2026-10-04 建,只有三条动作:① 查状态**问程序自己**,⛔ 不许 glob/手拼路径 ② 引用任何读数**先看它什么时候写的** ③ 写判据**先让基线全绿**再谈抓得住 —— 每条都对应当天真实翻车,且都已落判据不许退化)。 diff --git a/session-mechanism/boards/项目管理界面/project-board-launch.py b/session-mechanism/boards/项目看板/project-board-launch.py similarity index 96% rename from session-mechanism/boards/项目管理界面/project-board-launch.py rename to session-mechanism/boards/项目看板/project-board-launch.py index c5db773..cba0362 100644 --- a/session-mechanism/boards/项目管理界面/project-board-launch.py +++ b/session-mechanism/boards/项目看板/project-board-launch.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -"""项目管理界面的**启动器**(计划任务动作指向它,⛔ 不许直起 `project-board.py`)。 +"""项目看板的**启动器**(计划任务动作指向它,⛔ 不许直起 `project-board.py`)。 ## 为什么必须有这一层(同族 P0-73/74) diff --git a/session-mechanism/boards/项目管理界面/project-board.html b/session-mechanism/boards/项目看板/project-board.html similarity index 99% rename from session-mechanism/boards/项目管理界面/project-board.html rename to session-mechanism/boards/项目看板/project-board.html index 22b3485..8db5c9b 100644 --- a/session-mechanism/boards/项目管理界面/project-board.html +++ b/session-mechanism/boards/项目看板/project-board.html @@ -3,7 +3,7 @@ -项目管理 · 执行任务 +项目看板 · 执行任务