Files
agents-skills/README.md
T
xuxiang 79a9c13c91 merge: 结构评估先行(本席 47f82df)+ 参数两写法 / selftest / DSH 接法(bae7302)
两条并行改动落在同一批文件上 ⇒ 逐个文件按「谁更对」合入,未整边取用:

【取 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` 对三单正文的段位 / 顺序 / 空壳判定与实况相符。
2026-09-24 10:26:30 +08:00

45 lines
3.1 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.
# 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`) |
```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'
# 方式二:项目级 —— 只在该项目可见
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),但要在部署侧给该插件配目录;默认预设不带这行配置。