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/ 知识文件,按口径入库)
This commit is contained in:
1 parent
30b46dbd0c
commit
c1b5e4d966
735 files changed
+153192
-2415
No files matched your search
@@ -0,0 +1,67 @@
|
||||
# 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` 必须双份同步**(两个工作区副本亦然);只改一份 = 静默漂移。
|
||||
Reference in new issue
Block a user