两条并行改动落在同一批文件上 ⇒ 逐个文件按「谁更对」合入,未整边取用: 【取 bae7302】 - bin/ticket.mjs parseArgs:取值型选项 `--x=v` 与 `--x v` 两种写法都收(本席旧版只认等号); 本席新增的 `--dump` 一并纳入 VALUE_OPTS。 - bin/ticket.mjs `selftest`(不联网、不需要令牌)—— 本席在其上补 4 条 §8 结构判定用例(共 13 条)。 - README「接到 DSH」整节:技能发现只有一层、逐技能 junction、rank 表、用户级接法 (本席原稿「整仓当作技能根」是错的,已弃)。 - SKILL §6「参数写法的坑(已修 · 留档)」;templates 的「域内层级用 - 而非 /」提示行。 【取本席】 - SKILL:闸门 A 先评结构(§8.0)+ 闸门 B 只记要点(§8.2)+ 四段任务全貌(§8.1) + 结构有效性与整洁性自检(§8.3);修 §1 规则 2 与 §2 的双括号/单括号自相矛盾。 - bin/ticket.mjs:assess / update / comments(含 --dump 删前备份)/ comment-add / comment-del。 - templates:正文改四段骨架。README:技能清单行。 【同步废止的旧口径】 - SKILL §9「`--repo` 必须用等号形式」⇒ 改为「两种写法都可 · 旧口径已废止」,并指向 §6 成因留档。 【验证 · E1 · 本机】 - `node --check` 通过;`selftest` 13/13;`verify 157 158 159` = 21/21; - 两种参数写法各跑一次 `verify` 均 7/7;`assess` 对三单正文的段位 / 顺序 / 空壳判定与实况相符。
3.1 KiB
3.1 KiB
agents-skills
可复用的 agent 技能库(执行方法,不含项目结论)。每个技能一个顶层目录 +
SKILL.md,按 DSH 的发现规则逐个接到技能根下即可(见「使用」)。
技能清单
| 技能 | 覆盖 | 主要文件 |
|---|---|---|
ticket-management |
Gitea 工单的「人读 + 机读」双面管理,并始终维护结构有效性与整洁性:动工单前先评结构(四段任务全貌 = 问题背景 / 处置提案 / 处置结果 / 效果对比 → 出「落点表」)· 只记要点(改不了全貌的不进工单)· 标题问题域前缀 · 正文首行机读 · 正文自包含 · 来源只进末尾机读引用块 · verify(有效性)+ assess(结构体检)+ 离线 selftest |
SKILL.md · bin/ticket.mjs · templates/issue.md |
约定
- 目录式技能:
<name>/SKILL.md(顶层,不嵌套)—— 嵌套的SKILL.md不会被技能提供方发现。 - frontmatter 必须有
name与description;description里写清「什么时候用」,那是唯一发现入口。 - 只放「换一个项目还能用吗?能」的东西 —— 项目结论 / 事实不进本仓。
- 工具要能自检:脚本必须能在自己的仓里跑通一条最小用例。
- 令牌不落盘:脚本从
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),但要在部署侧给该插件配目录;默认预设不带这行配置。