Files
workbuddy_skills/dsh-workflow/SKILL.md
T
admin e03465c398 按用户令提交:把此前未纳管的 9 个技能目录一并入库
用户令逐字:「E:/ProgramData/.workbuddy/skills  提交仓库是指的这里」——
即本目录就是仓库(2026-10-07 已在本目录建仓,见当日日志 §22),本轮把余下未纳管的 9 个技能一并提交。

本次入库(9 个技能,46 个文件):
1、`AI HOT`
2、`draw-ui`
3、`dsh-diagnose`
4、`dsh-knowledge`
5、`dsh-local-env`
6、`dsh-opensource-release`
7、`dsh-workflow`
8、`oil-motion`
9、`skills-security-check`

提交前核对:
· **凭据类扫描**(`*.env` / `*token*` / `*.key` / `*secret*` / `*.pem`)⇒ **零命中** ✓;
· 体积合计约 20 MB(`draw-ui` 12M + `oil-motion` 6.5M 是大头,形态为配图/素材 ——
  仓库 `.gitignore` 里明写「`assets/*.png` 是内容不是产物」⇒ 属刻意入库);
· 运行产物仍按既定规则排除(`__pycache__` / `logs/` / `tmp/` / `.venv/` / `*.egg-info` / `uv.lock` / `.workbuddy/`)。
2026-10-08 22:29:08 +08:00

81 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: dsh-workflow
description: DSH 多租户平台(ai1net.com / dshs,服务器 47.77.182.89)**作业流程总入口** —— 覆盖两半:① **平台功能改造与优化的完整工作流**(用户提出平台需求 / 改造 / 优化 / 缺陷修复 / 功能调研,或要求"按既有流程执行 / 沉淀 / 整理处理机制"时;含**红线 R1–R11 原文速查**与档案模板)② **长任务「多棒自动接力」编排**(「自动新建会话接续处理」「接力跑下去」「多步骤任务自动推进」「跑完一棒自动接下一棒」「无人值守推进」,或一个任务预计要跨 ≥3 个会话 / 超过一个上下文窗口时)。核心 = **六阶段工作流**(需求识别→调研→规划→开发→验证→归档)+ **红线 R1–R11(任一条命中 ⇒ 先停手)** + 档案模板 + 并行调度协议(三把锁)+ **六件套 prompt 骨架** + **登记门禁(要拍板的先等拍板)** + **收尾四件套** + 七条实测防护 + **排期两条铁律**。判据实体在主干,**全文在 `references/`(2 档)**。⚠️ **分工**:本技能管「**怎么落地**」;「怎么想、怎么定」⇒ `session-mechanism`;「本机环境」⇒ `dsh-local-env`。
version: 1.0.0
updated_at: 2026-09-28
last_change: 【2026-09-28】**由 `dsh-change-workflow` + `dsh-auto-handoff-chain`(v1.7.5)合并而成**(两个原名退役)。按 `dsh-knowledge-upkeep §10`「主干 + 详情档」形态:判据实体留主干、全文下沉 `references/`(**内容守恒:逐行 0 丢失**,含原 frontmatter 变更历史)。⚠️ 两者**不是同一层**(一个是"一次改造的六阶段"、一个是"跨会话接力的编排机制",属**互补**)⇒ 合并只做「**单一入口 + 分诊**」,⛔ **不把两套判据混成一套**,各自全文原样保留为独立详情档。⚠️ **并按对账结论处置了版本分叉**:`change-workflow` 的**文档库版为超集且更新**(红线 **R1–R11** + 已按 2026-09-21 修订的 R8「开发环境直接做」;本机版 R1–R8 是其真子集且 R8 为旧措辞)⇒ 取**文档库版**,并并入其「🔵 作用域 + 宿主落点对照」块;`auto-handoff-chain` 本机版为**超集**(多 §3.1.3「投单 ≠ 启动」等 60 行)⇒ 取**本机版**。⛔ 未删任何判据,⛔ 未丢掉任何一条红线。
agent_created: true
---
# dsh-workflow — DSH 平台作业流程总入口
> ## 🔴 第 0 步:先分诊(两个层次别混)
>
> | 情形 | 去哪 | 一句话 |
> |---|---|---|
> | **一次**平台改造 / 优化 / 缺陷修复 / 功能调研(要落地) | **§1 六阶段** | 单次任务的完整流程 |
> | 判断某事**该不该做 / 怎么选型** | ⛔ 不属本技能 ⇒ `session-mechanism` | — |
> | 任务**要跨多个会话 / 超过一个上下文窗口**,要无人值守推进 | **§2 多棒自动接力** | 把长任务拆成棒次链条 |
> | 只是**一条**自动化接续(做完即停) | 两者都用:§1 出活、§2 排棒 | — |
---
## 1. 平台改造六阶段(一次改造怎么落地)
**六阶段**:**需求识别**(先盘点再动手,⛔ 勿跳步)→ **调研**(**源码级实证优先**,⛔ 禁止只靠文档推断)→ **规划**(文档先行,方案确认后动工)→ **开发**(小步 + 备份 + 逐条验证)→ **验证**(全链路 + 浏览器实测 + 清理)→ **归档清理**(文档同步 + 三层沉淀)。
## 🔴 红线 R1–R11(原文速查 · 任一条命中 ⇒ **先停手**;效率论证不构成豁免)
1. 禁止启动 dsh 时自动获取最新版本(升级走独立流程)。
2. **不改官方 dsh 主程序与缓存**;扩展只走 profile 层官方插件机制。
3. **client bundle 严禁 `exports.default = apply`**(或任何 default 函数导出)。
4. **R4|禁止借真实账号(admin/guest)的会话跑测试**(⚠️ 旧理由已自 2026-09-20 失效 —— 已改为多会话并存)。
5. **R5|权限可见面只准收窄,扩大必须先确认**。
6. **R7|禁止未经确认的批量 / 全仓写入**。
7. **R8|生产变更知会**(2026-09-21 修订)—— 开发环境服务器 ⇒ **直接做**,只需动手前一句说明 + 攒批;⛔ **不是"先取得确认"**。
8. **R9|⛔ 绝对禁止「人工删锁 / 接管」** —— 锁**只能由持有者自己释放**;抢不到 = 终点 ⇒ 只读、报告、结束。
9. **R10|⛔ 绝不以 root(或非该实例 uid)运行 / 触碰用户实例的东西**。
10. **R11|⛔ 只做正向迭代** —— 十维判据(目标/方向/架构/功能/性能/安全/交互/UI/便利性/扩展性)**是否让任一维净变差**?命中 ⇒ **立即停下复盘**。
> 📂 **R5/R7/R8 的由来与完整判据** ⇒ `references/dsh-change-workflow/02-红线详解-R5-R7-R8.md`(判「算不算批量写入 / 要不要先知会 / 是扩大还是收窄」时**必读**)
**另两条硬机制**:**并行调度协议**(按**冲突域**定并行度 + **三把锁**:全局执行锁 / 单级占用锁 / 服务器侧操作锁)|**档案模板**(改造档案的固定骨架)。
📂 **全文 ⇒ `references/00-平台改造六阶段.md`**(含六阶段细目、红线完整原文与解释、档案模板、并行调度详解、运维锚点与取证、插件与数据源口径、实例可见面与共享边界、浏览器验证栈)
📂 **附属档目录 ⇒ `references/dsh-change-workflow/`**(`00-平台速查` · `01-档案模板` · `02-红线详解-R5-R7-R8` · `03-沙箱与技能机制` · `04-运维锚点与取证` · `05-插件与数据源口径` · `06-实例可见面与共享边界` · `07-并行调度详解` · `08-浏览器验证栈详解`)
---
## 2. 多棒自动接力(跨会话长任务怎么编排)
**形态**:`规划棒①(出交接单)→ 执行棒①(照单落地)→ 规划棒② → …` —— 每棒 = **一个全新会话 + 一条一次性自动化**,做完**自己把下一棒排上**,**全程零人工点击**。
⇒ 这是「**规划与执行分离**」从纪律变成**机制**:规划棒**物理上碰不到生产**。
**六件套 prompt 骨架(照抄填空)**:① 状态单点 → ② 唯一执行依据指针 → ③ **全局锁** → ④ 单一动作 → ⑤ **成本纪律** → ⑥ **收尾四件套**。
**收尾四件套(缺一即算未完成)**:① 释放锁 ② **过登记门禁**后登记下一棒 + **用陈述句告知用户** ③ 把入口「本轮动作」推进到再下一棒 ④ 写工作区日志。
> ⚠️ 第 ② 件是**唯一会"断链"的地方**,也是**钩子做不到**的地方(钩子不能创建会话 / 自动化)。
🔴 **登记门禁(顺序不可颠倒)**:**先判「是不是要拍板」,未命中才轮到「候选排不排得出优劣」**。下一棒若含**边界外事项** ⇒ **不登记**,停下等拍板;拍板到手后再建。
🔴 **排期两条铁律**:**同一时刻只挂一个**;首个(唯一)接续棒 = **收口 + 3~4 分钟**(🔴 2026-10-01 用户口径:「接续会话 时间缩短 3-4 分钟即可」⇒ 原 5~8 作废)。⚠️ **改时间不会触发** ⇒ 重排**必须新建**一条。
🔴 **七条实测防护**(都是真踩过的):断链 / 双开 / once 不转完成态 / 跨过拍板点 / 下一棒定太晚 / **投单 ≠ 启动**(工单不会自己变成动作 ⇒ 光投单+加指针,automation 全表可能**无一条**)/ 工作区归属与 `cwds` 归一(⛔ 错一字面即裂组,且**裂组会自我强化**)。
📂 **全文 ⇒ `references/01-多棒自动接力.md`**(含六件套骨架原文与为什么长成这样、收尾陈述句模板、七条防护、实测成本基线(连续 8 棒零断链)、工作区归属五律、活库改动铁律、§3.1.3「投单 ≠ 启动」、域锁四个"假绿"坑、落地清单)
📂 **附属档 ⇒ `references/dsh-auto-handoff-chain/`**(`chain_report.py` · `audit-mirror.py`)
---
## 3. 详情档索引(跨档引用按此表定位)
| 档 | 覆盖的原技能 | 原章节 |
|---|---|---|
| `references/00-平台改造六阶段.md` | `dsh-change-workflow`(**文档库超集版**,全文) | 阶段 0 需求识别 / 阶段 1 调研 / 阶段 2 规划 / 阶段 3 开发 / 阶段 4 验证 / 阶段 5 归档清理 / **红线 R1–R11 原文速查** / 并行调度 / 三把锁 / 档案模板 / 变更历史 |
| `references/01-多棒自动接力.md` | `dsh-auto-handoff-chain`(**v1.7.5 本机超集版**,全文) | §0 分工 / §1 形态 / §2 六件套骨架 / §3 收尾四件套与登记门禁 / §4 防护 / §5 成本基线 / §6 落地清单(含 §3.1.3「投单 ≠ 启动」) |
| `references/dsh-change-workflow/` | 原附属档 | 9 档(平台速查 / 档案模板 / 红线详解 R5·R7·R8 / 沙箱与技能机制 / 运维锚点与取证 / 插件与数据源口径 / 实例可见面与共享边界 / 并行调度详解 / 浏览器验证栈详解) |
| `references/dsh-auto-handoff-chain/` | 原附属档 | `chain_report.py` · `audit-mirror.py` |
🔴 **两个原名已退役**(`dsh-change-workflow` / `dsh-auto-handoff-chain`)⇒ 别处见到按本技能对应档读。
⚠️ **为什么保留为两档而不是揉成一份**:两者**层次不同**(单次改造 vs 跨会话接力),属**互补**而非重复 ⇒ 唯一入口在主干,⛔ 判据不混。
⚠️ **红线以本档为准**:`references/00` 里是 **R1–R11**(含 R9/R10/R11);若在别处看到只到 **R8** 的旧清单,**以本档为准**(那是 2026-09-21 之前的版本)。