xuxiang feeafbd70d fix(ticket-management): 采纳复核 —— 段位词表补全 + 评论可执行物提示 + 顺序如实判定
复核回执 R-20260924-103820-a8f2(现状梳理)逐条实跑核对后落地。

【采纳】
- 词表按 #157/#159 真实小节名补齐:`结论`(结论即提案)→ 提案 · `生产实测` → 背景 · `基线` → 效果;
  `取证记录` 进「其他已识别小节」(原报「未归类」是误报)。
- 去掉「更正 / 补充」特例 ⇒ 顺序改按主叙事**如实**判定(复核指出 `## 影响面(实测更正)`
  被错列成「后置小节」);提示语写明「确为更正小节后置时可保留,由人判断」。
- 缺「提案」的措辞给出路:提示「若『结论即提案』或结论为『无需处置』,请显式写一段声明」。
- 评论清单加 `[可执行]` / `[? 非可执行]` 列(启发式:代码围栏或 SQL 关键字)⇒
  「评论只应剩必须可执行物」由人肉核变为机器提示 + 人核;SKILL §8.1/§8.3 同步。
- `selftest` 13 → **20** 条(补 结论即提案 / 基线归效果 / 取证记录 / 可执行物三态 / 方案明细不被「实测」抢走)。

【自查中自己踩的坑(已修 + 加回归用例)】
- 首版把裸词 `实测` 加进背景词表 ⇒ `## 方案明细(…实测代价)` 被抢归「问题背景」,`#158` 误报「顺序 ⚠」。
  改为 `生产实测`,并加 selftest 锁死该回归。

【不采纳(附理由)】
- 「`闸门=不处置` 作为提案的替代」:闸门是断言 4 的受控词表(等口径 / 等取证 / 等部署),
  新增取值属口径变更且会使「不能开工」语义漂移 ⇒ 改用「`## 结论` 可替代提案 + 正文显式声明」,
  **不动闸门词表**;确要加取值请用户拍板。

【验证 · E1 · 本机】
- `node --check` 通过;`selftest` **20/20**;`verify 157 158 159` = **21/21**。
- `assess`:#158 四段全 ✓ · 顺序 OK · 空壳 无 · 两条评论均判 `[可执行]`;
  #157 四段(结果 / 效果未发生 ⇒ 不长空壳)· 顺序 OK;
  #159 ⇒ **顺序 ⚠**(`影响面` 落在 `机制` 之后)—— 如实判定,前移或按更正小节保留由属主定。
2026-09-24 10:44:07 +08:00

agents-skills

可复用的 agent 技能库(执行方法,不含项目结论)。每个技能一个顶层目录 + SKILL.md,按 DSH 的发现规则逐个接到技能根下即可(见「使用」)。

技能清单

技能 覆盖 主要文件
ticket-management Gitea 工单的「人读 + 机读」双面管理,并始终维护结构有效性与整洁性:动工单前先评结构(四段任务全貌 = 问题背景 / 处置提案 / 处置结果 / 效果对比 → 出「落点表」)· 只记要点(改不了全貌的不进工单)· 标题问题域前缀 · 正文首行机读 · 正文自包含 · 来源只进末尾机读引用块 · verify(有效性)+ assess(结构体检)+ 离线 selftest SKILL.md · bin/ticket.mjs · templates/issue.md

约定

  1. 目录式技能:<name>/SKILL.md(顶层,不嵌套)—— 嵌套的 SKILL.md 不会被技能提供方发现。
  2. frontmatter 必须有 name 与 description;description 里写清「什么时候用」,那是唯一发现入口。
  3. 只放「换一个项目还能用吗?能」的东西 —— 项目结论 / 事实不进本仓。
  4. 工具要能自检:脚本必须能在自己的仓里跑通一条最小用例。
  5. 令牌不落盘:脚本从 GITEA_TOKEN 或 --token-file 读,绝不把令牌写进仓库、URL 或提交。

使用(把本仓接到 DSH)

DSH 的技能发现只有一层:技能根下的 <name>/SKILL.md 或平铺 <name>.md,不认嵌套的 **/SKILL.md。所以要把每个技能目录接到技能根下,不能把本仓整体 junction 成 <技能根>/agents-skills(那层里没有 SKILL.md,会发现不到)。

技能根与优先级(同名时 rank 小者胜):

rank 来源 路径
100 项目 <项目根>/.dsh/skills
200 项目 <项目根>/.agents/skills
400 用户 ~/.dsh/skills(即 $DSH_HOME/skills)
# 方式一:用户级 —— 所有项目都可见(推荐;本机已按此接好 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'

# 方式二:项目级 —— 只在该项目可见
New-Item -ItemType Junction -Path '<项目>/.dsh/skills/ticket-management' -Target '<本仓>\ticket-management'

# 方式三:拷一份 —— 与本仓脱钩,之后改动不再同步
Copy-Item -Recurse '<本仓>\ticket-management' '<技能根>\'

junction 指向本仓 ⇒ 在这里改 SKILL.md,DSH 的下一次目录扫描即生效:正文编辑不用重启,也不用重新链接。技能名取自 frontmatter 的 name;技能根下的新增 / 改名 / 删除由 DSH 的目录监视自动发现。

进阶:也可让本仓整体充当一个技能根(@deepseek-ai/dsh-skill-filesystem 的 customSkillDirs,rank 300),但要在部署侧给该插件配目录;默认预设不带这行配置。

S
Description
保存团队内可共享的skills
Readme
67 KiB
Languages
JavaScript 100%