Files
admin c1b5e4d966 chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)
- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次)
- .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…),
  目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪
- .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/)
- .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*)
- .gitignore 补:备份件(*.bak-*)
- 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
2026-10-10 23:13:22 +08:00

7.6 KiB
Raw Permalink Blame History

DSH 平台项目 — 工作区指令(DSH 会话必读)

🔴 为什么有这个文件(2026-09-27 实测):DSH 的指令候选只有工作区根的 AGENTS.md / CLAUDE.md(+ .local.md),不读 CODEBUDDY.md ⇒ 本项目此前把全部规则写在 CODEBUDDY.md(15,650 B)里,对 DSH 会话完全不生效(不是被预算截断,是没进候选)。本文件 = 对 DSH 生效的那一层。 📎 完整规则(解释段 / 历史 / 实证 / 命令全文)⇒ 同目录 CODEBUDDY.md(必读)。两份中同名条目冲突时以本文件为准;改任一份 ⇒ 另一份同步。 🔧 PY=E:/ProgramData/.workbuddy/binaries/python/versions/3.13.12/python.exe | WS=E:/ProgramData/AIProject/ai1net-dsh-server | DOC=D:\github\dsh_shenxian\dsh-server-docs | 脚本目录 = $DOC\07-scripts。

0. 动作前三条(必须)

  1. 先跑状态(1 次调用顶十几轮探索):"$PY" "$WS/state.py"(--online 加远端基线)—— 跑完之前不许 Glob/Grep 全库摸底。
  2. 改文件之前先"抢"锁(不是"检查"):bash $DOC\07-scripts/handoff-guard.sh --claim-exec "<会话名>" —— 抢到之前不要动文件;抢不到 ⇒ 停手报告(⛔ 不删锁、不接管,R9)。
  3. 推送前对账:bash scripts/docs-sync-check.sh + PUSH=1 bash "$DOC\07-scripts/handoff-guard.sh"(幽灵文件硬判定)。

1. 提问判据(唯一一条)

只问「超过现有判断方法边界」的问题。

  • 边界内 ⇒ 自决,不要问:技术选型 / 实现路径 / 命名与数据结构 / 调参 / 部署与同步 / 排查方法 / 版本依赖 / 兼容降级 / 方案取舍 / 文档技术内容。「部署上线」属此项 ⇒ 做完即上线;生产变更直接做、只需动手前一句话说明。
  • 边界外 ⇒ 必须问:① 业务目标与优先级 ② 花钱与资源承诺 ③ 对外承诺 ④ 需用户提供的凭据或审批 ⑤ 无客观优劣的偏好 ⑥ 影响面超出本平台 ⑦ 红线门禁 ⑧ 判不准。
  • 判据:有没有客观可判的优劣?有 ⇒ 自决;没有 ⇒ 问。上抛门槛 = 存在真取舍(候选只有优点或只有缺点 ⇒ 自己拍掉)。
  • ⛔ 禁用征询句收尾(「要我…吗 / 请确认 / 你看怎么办」);⛔ 不许捆包(要问红线只问那一句)。
  • 🔴 待拍板内容必须自包含:① 一句话说清要决定什么(不用指代)② 为什么要用户定(影响谁 / 断多久 / 花多少钱 / 会不会丢数据)③ 每个候选写优点 + 缺点 ④ 一轮一问;⛔ 不出现包名 / 路径 / 变量名 / 类名。
  • 📐 排版:首屏 3 行给判定 · 层级 ≤3 · 每节 ≤7 行 · 表格 ≤5 列 · 一条信息只说一次。

3. 红线 R1–R11(任一条命中 ⇒ 先停手;效率论证不构成豁免)

# 禁令 / 判据
R1 不自动升级 dsh —— 升级须走独立"测试 → 评估 → 修复"流程
R2 不改官方 dsh 主程序与缓存 —— @deepseek-ai/dsh 零改动;扩展只走 profile 层官方插件机制
R3 client bundle 禁 exports.default —— 只导出 apply + inject
R4 不用真实账号测登录 —— 用临时 session(mksess.cjs 直插),用完即删
R5 权限只准收窄 —— 凡扩大(新挂载 / 放开遮蔽 / 暴露平台目录或 env / 放宽 nft / 提档位)⇒ 先出「权限影响评估」并取得确认
R6 先查已有资产再动手 —— 可用技能 → 本机 / 项目已有技能与记忆
R7 禁未经确认的批量 / 全仓写入 —— 只做被明确要求的事;禁全库遍历·通配符改写 / 批量换行符改动 / cp -r 覆盖 / git add -A;>10 文件 ⇒ 先出清单 + 确认;本机不是沙箱(scp 会传导到生产)
R7-边界 R7 只管「不是我的 lane」:我 lane 内的细节(部署 / 重启 / 改配置 / 跑自己的脚本 / 改自己的插件)⇒ 直接做;别人的 / 归属不明 ⇒ 只报告、不动手。判据看归属
R8 生产变更:47.77.182.89 是开发环境服务器 ⇒ 重启 / 停 scope / drain / 改配额·env / nginx·nft 直接做。两条自律:动手前一句话说明 + 不可逆操作(删数据 / 迁 DB / 清目录)先报清单
R9 ⛔⛔ 绝对禁止「人工删锁 / 接管」 —— 锁只能由持有者自己释放;抢不到锁唯一合规 = 停手 + 报告用户(处置权只属用户本人)
R10 ⛔ 绝不以 root(或非该实例 uid)运行 / 触碰用户实例的东西 —— ① 验证 / 冒烟 / 探针必须以该 uid 运行或进 bwrap 沙箱 ② 确需 root ⇒ 收尾必 find <home> -user root -exec chown <uid>:<uid> {} + ③ 实例起不来先看属主 / EACCES,别先怀疑 OOM
R11 ⛔ 只做正向迭代 —— 十维(目标 / 方向 / 架构 / 功能 / 性能 / 安全 / 交互 / UI / 便利性 / 扩展性)任一维净变差 ⇒ 立即停下复盘;⛔ 禁"必要代价 / 后续再优化 / 藏进交付不写"

4. 提交边界

未明确要求 ⇒ 不 commit / 不 push / 不同步仓库;用户说了才做,且只 add 自己改的文件。⛔ 三类禁入库:tmp/ |中间产物(_tmp_seq*/、_中间产物*/)|$DOC\05-交接单/ 下的会话交接单。提交前自查 git diff --cached --name-only 命中三类别 ⇒ 立即 git reset。

5. 规划与执行分离

规划会话只产出交接单(8 段必填),不 ssh、不改码、不重启、不 scp;落地交另一个执行会话(不读其上下文)。

6. 并发纪律(要点)

  • 共享文件只用精确片段替换,⛔ 禁整文件覆盖;⚠️ 机制层(config·crypto·isolation·index·scripts·CODEBUDDY.md·锁与钩子本身)必须独占。
  • 抢锁必须"校验结果":① 检查退出码(⛔ 不接管道 —— grep 会吃掉退出码)② 复读锁文件断言是自己的。
  • ✅ 锁只管写不管读;⚠️ 会改本地状态的命令(git fetch/checkout/stash/reset/switch、任何写盘)不算读 ⇒ 要持锁。
  • 🔓 释放时机 = 交付闭环走完(台账 → 四件套 → 提交 + 对账 → 归档);要等用户拍板 ⇒ 先释放再等;完工反序释放;结束语必须对锁状态负责。

7. 环境要点(反复踩过)

  • ⚠️ 本机 bash 的 PATH 常丢 ⇒ 每条命令前置 PATH 导出(PortableGit/versions/1.2.0 下的 usr/bin + mingw64/bin;git.exe 只在 mingw64/bin);⛔ 别把 /c/Windows/System32 放前面。🔴 调用间不共享 shell 状态。
  • 其余(转 LF / Node 22 / 禁 py_compile / pnpm / 会话取证 / 推送核验)⇒ CODEBUDDY.md §7 + §D。

8. 收尾与交付门禁

  • 收尾四件套:① 落地件(绝对路径)② 校验命令与真实读数(⛔ 不是自述)③ 台账 / 入口回填 ④ 下一棒登记,或写清「不登记 + 原因」。
  • 🔴 本机改完 ≠ 交付:必须走完生效链路并在用户可见面复验(src/ 改动 → build 出 lib/;client bundle → 重建;profile / 插件 → 重启实例)。
  • 结束语必须对状态变更负责:写明「未留下后台进程 / 未建会话 / 无待跑任务」,或点名遗留物 + 原因 + 下一步。

⛔ 本文件与 CODEBUDDY.md 必须双份同步(两个工作区副本亦然);只改一份 = 静默漂移。