Files
xuxiang a70eaae125 feat(ticket-management)!: 「任务全貌」四段 → 五段,新增必备段「经验教训」
用户 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 · 空壳 无。
2026-09-24 10:50:33 +08:00

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