用户 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 · 空壳 无。
45 lines
3.0 KiB
Markdown
45 lines
3.0 KiB
Markdown
# 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
|
||
# 方式一:用户级 —— 所有项目都可见(推荐)
|
||
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),但要在部署侧给该插件配目录;默认预设不带这行配置。 |