From a70eaae12572bcb48a9eac453477e3cb7fa6c25b Mon Sep 17 00:00:00 2001 From: XuXiang Date: Thu, 24 Sep 2026 10:50:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(ticket-management)!:=20=E3=80=8C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=85=A8=E8=B2=8C=E3=80=8D=E5=9B=9B=E6=AE=B5=20?= =?UTF-8?q?=E2=86=92=20=E4=BA=94=E6=AE=B5=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=BF=85=E5=A4=87=E6=AE=B5=E3=80=8C=E7=BB=8F=E9=AA=8C=E6=95=99?= =?UTF-8?q?=E8=AE=AD=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户 2026-09-24 指出漏了一个要点:**经验教训**也应是**重点结构**的一部分。 【改动】 - SKILL §8.1:正文骨架加第 ⑤ 段 `## 经验教训`(**必备**,排在 `效果对比` 之后)—— 必须是**可复用结论**(对象 + 动作 / 判据);**尚未定性写「暂无(原因)」**, **不许留空壳,也不许写「加强测试」这类套话**。 - §8.2 闸门 B:**四问 → 五问**(新增「它给出『下次怎么避免 / 怎么做』的可复用结论吗?」)。 - §8.3 整洁性自检:加「经验教训须是可复用结论、非套话;未定性须显式写『暂无(原因)』」。 - §3.2 骨架 / §8.0 定全貌 / §8.1 标题 / §5 assess 表 / §7 分工注 / §8.3 有效性 —— 措辞全部同步。 - `bin/ticket.mjs`:`SECTIONS` 加第 5 段(词表 `经验教训` / `教训` / `复盘`);`assess` 表头改「五段」; **必备段缺失提示按段区分**(教训 ⇒ 指「暂无(原因)」;提案 ⇒ 指「结论即提案 / 无需处置」); `selftest` 20 → **21**。 - `templates/issue.md` 加 `## 经验教训`;README 技能行改「五段任务全貌」。 - (顺带更正)README 里「本机已按此接好 ticket-management」**与实测不符**(本机无该 junction)⇒ 去掉机器特有断言 —— 可复用文档不写本地状态。 【验证 · E1 · 本机】 - `node --check` 通过;`selftest` **21/21**;`grep 四段|四问` ⇒ **0 残留**。 - `assess 158`(真跑)⇒ 五段中**恰好第 ⑤ 段未识别**(正是用户指出的缺口,`#158` 待补经验教训); 顺序 OK · 空壳 无。 - 合成「五段齐」正文 ⇒ 五段全 ✓ · 顺序 OK · 空壳 无。 --- README.md | 4 +-- ticket-management/SKILL.md | 37 ++++++++++++++++------------ ticket-management/bin/ticket.mjs | 25 ++++++++++++------- ticket-management/templates/issue.md | 4 +++ 4 files changed, 43 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index f847747..9ea29c8 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ | 技能 | 覆盖 | 主要文件 | |---|---|---| -| `ticket-management` | Gitea 工单的「人读 + 机读」双面管理,并**始终维护结构有效性与整洁性**:**动工单前先评结构**(四段任务全貌 = 问题背景 / 处置提案 / 处置结果 / 效果对比 → 出「落点表」)· **只记要点**(改不了全貌的不进工单)· 标题问题域前缀 · 正文首行机读 · 正文自包含 · 来源只进末尾机读引用块 · `verify`(有效性)+ `assess`(结构体检)+ 离线 `selftest` | `SKILL.md` · `bin/ticket.mjs` · `templates/issue.md` | +| `ticket-management` | Gitea 工单的「人读 + 机读」双面管理,并**始终维护结构有效性与整洁性**:**动工单前先评结构**(五段任务全貌 = 问题背景 / 处置提案 / 处置结果 / 效果对比 / **经验教训** → 出「落点表」)· **只记要点**(改不了全貌的不进工单)· 标题问题域前缀 · 正文首行机读 · 正文自包含 · 来源只进末尾机读引用块 · `verify`(有效性)+ `assess`(结构体检)+ 离线 `selftest` | `SKILL.md` · `bin/ticket.mjs` · `templates/issue.md` | ## 约定 @@ -29,7 +29,7 @@ DSH 的技能发现**只有一层**:技能根下的 `/SKILL.md` 或平 | 400 | 用户 | `~/.dsh/skills`(即 `$DSH_HOME/skills`) | ```powershell -# 方式一:用户级 —— 所有项目都可见(推荐;本机已按此接好 ticket-management) +# 方式一:用户级 —— 所有项目都可见(推荐) New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.dsh\skills" New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\skills\ticket-management" -Target '<本仓>\ticket-management' diff --git a/ticket-management/SKILL.md b/ticket-management/SKILL.md index cf2bad2..9a209b5 100644 --- a/ticket-management/SKILL.md +++ b/ticket-management/SKILL.md @@ -1,6 +1,6 @@ --- name: ticket-management -description: 用 Gitea 工单库做「人读 + 机读」双面管理,并**始终维护工单的结构有效性与整洁性**。**动工单(新建或更新)前先做结构评估**:把本轮信息按「问题背景 / 处置提案 / 处置结果 / 效果对比」四段**任务全貌**出「落点表」,再过「只记要点」四问闸门(改不了全貌的不进工单);正文 = 现行唯一权威叙事,评论只留必须可执行物,外部来源只进末尾机读引用块。含 bin/ticket.mjs 的 labels/milestones/list/verify/assess/create/update/comments/comment-add/comment-del/rename,以及不联网、不需要令牌的 selftest 自检。适用于:建单、更新工单正文或评论、整理精简既有工单、校验工单是否合规、用 API 读写 Gitea issue。 +description: 用 Gitea 工单库做「人读 + 机读」双面管理,并**始终维护工单的结构有效性与整洁性**。**动工单(新建或更新)前先做结构评估**:把本轮信息按「问题背景 / 处置提案 / 处置结果 / 效果对比 / 经验教训」五段**任务全貌**出「落点表」,再过「只记要点」五问闸门(改不了全貌的不进工单);正文 = 现行唯一权威叙事,评论只留必须可执行物,外部来源只进末尾机读引用块。含 bin/ticket.mjs 的 labels/milestones/list/verify/assess/create/update/comments/comment-add/comment-del/rename,以及不联网、不需要令牌的 selftest 自检。适用于:建单、更新工单正文或评论、整理精简既有工单、校验工单是否合规、用 API 读写 Gitea issue。 --- # ticket-management(Gitea 工单管理) @@ -17,7 +17,7 @@ description: 用 Gitea 工单库做「人读 + 机读」双面管理,并**始 > **动工单(新建或更新)前必过两条前置闸门** —— 它们是本技能的**第一动作**,不能事后补: > - **闸门 A · 先评结构**(§8.0):先出**落点表**(本轮每条信息落在**正文哪一段 / 评论 / 外部**),再落笔。**没有落点表,不许改工单。** -> - **闸门 B · 只记要点**(§8.2):每条候选信息过**四问** —— **改变不了「任务全貌」的,一律不进工单**(工单不是日志)。 +> - **闸门 B · 只记要点**(§8.2):每条候选信息过**五问** —— **改变不了「任务全貌」的,一律不进工单**(工单不是日志)。 > > **改完必过第三条**:**§8.3 自检 + `verify`(§7)全过**,才算改完(见规则 4)。 @@ -47,15 +47,16 @@ description: 用 Gitea 工单库做「人读 + 机读」双面管理,并**始 - 枚举建议:`闸门`=可开工|等口径|等取证|等部署 · `优先级`=立即|本迭代|排队 · `类型`=安全|数据|性能|可用|债务 · `端`=后端|前端|小程序|运维 · `环境`=正式服|测服 · `证据`=E1|E2|需生产取证。 - 若标题出现闸门段,**必须与 `闸门=` 一致**。 -### 3.2 正文其余(人读)= 「任务全貌」四段 +### 3.2 正文其余(人读)= 「任务全貌」五段 ## 问题背景 现象 · 影响面 · 根因(含证据锚点)· 复现 ## 处置提案 打算怎么做 / 已选路线 / 为什么;执行窗口与风险;回退 ## 处置结果 实际做了什么 · 当前状态 ← 未发生就整段不写 ## 效果对比 改前 vs 改后:指标 + 口径 + 时点 ← 未测就整段不写 - (可选补段)## 验收判据 / ## 反证条件 / ## 遗留 + ## 经验教训 下次怎么避免 / 怎么做(可复用) ← 必备;未定性写「暂无(原因)」 + (其他小节)## 验收判据 / ## 反证条件 / ## 遗留 / ## 取证记录 -- **段序固定**(背景 → 提案 → 结果 → 效果);**未发生的段不写空壳**(宁缺不空);**判据 / 反证 / 遗留**放四段之后。 +- **段序固定**(背景 → 提案 → 结果 → 效果 → 教训);**未发生的段不写空壳**(宁缺不空);**判据 / 反证 / 遗留 / 取证记录**放五段之后。 - 证据锚点 = 仓库相对路径:行 + permalink(§4)。**取舍与粒度见 §8.1 / §8.2。** ### 3.3 末尾 = 机读引用块(人读渲染不可见) @@ -108,7 +109,7 @@ node bin/ticket.mjs rename 142 --repo=xbc/xbc --domain=平台 [--gate=等口径] | `labels` / `milestones` / `list` | 读(标签 id 是创建时唯一可传的形式) | `read:issue` | | `verify ` | **校验**(只读):见 §7 七项断言(含标签非空) | `read:issue` | | `selftest` | **自检**(不联网、不需要令牌):解析器两种写法 + §7 七项断言正反 + §8 结构判定 | 无 | -| `assess ` / `assess --body-file=f` | **结构评估**(只读):四段现状 / 缺段 / 空壳段 + 评论清单 ⇒ §8.0 落点表底稿 | `read:issue` | +| `assess ` / `assess --body-file=f` | **结构评估**(只读):五段现状 / 缺段 / 空壳段 + 评论清单 ⇒ §8.0 落点表底稿 | `read:issue` | | `create` | 建单(**先按标题查重**;**`--label` 必传**,缺失 / id 不存在 ⇒ 拒建) | `write:issue` | | `update ` | 改正文(**标题与正文同一次 PATCH**,§8.1 第 4 条);过自检,不过 ⇒ 拒改 | `write:issue` | | `comments ` | 评论清单(id / 字数 / 首行);`--dump=f` = 全量备份(**删前必做**) | `read:issue` | @@ -138,7 +139,7 @@ node bin/ticket.mjs rename 142 --repo=xbc/xbc --domain=平台 [--gate=等口径] 6. 正文若含 ` +- <对象>:<下次怎么避免 / 怎么做(可复用到别的单)> + ## 判据与遗留 **验收判据**:<通过 / 失败怎么判>