fix(ticket-management): 参数两种写法都收 + 新增 selftest + 模板域分隔符改连字符

- bin/ticket.mjs: parseArgs 同时接受 --x=v 与 --x v(仅取值型选项,布尔开关不吃后一个参数);
  新增 selftest 子命令(不联网、不需要令牌),覆盖解析器 3 条与断言正反 5 条
- SKILL.md: §5 命令块补 selftest 与「两种写法等价」;子命令表补 selftest 行;
  §6 留档 403/405 假故障的成因(示例写空格、实现只认等号);frontmatter description 补 selftest
- templates/issue.md: 域层级分隔符 / → -(断言 3 按 - 取 L1,斜杠版照抄必挂)

验证:node bin/ticket.mjs selftest → 8/8,退出码 0
This commit is contained in:
2026-09-24 10:16:49 +08:00
parent 47226f78be
commit bae73025f1
4 changed files with 71 additions and 14 deletions
+26 -7
View File
@@ -1,6 +1,6 @@
# agents-skills
> 可复用的 **agent 技能库**(执行方法,不含项目结论)。每个技能一个**顶层目录** + `SKILL.md`,因此本仓**可以直接作为技能根**(如 junction 到 `<项目>/.dsh/skills` 后由 DSH 发现)。
> 可复用的 **agent 技能库**(执行方法,不含项目结论)。每个技能一个**顶层目录** + `SKILL.md`,按 DSH 的发现规则逐个接到技能根下即可(见「使用」)。
## 技能清单
@@ -16,11 +16,30 @@
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
# 方式一:作为技能根之一(Windows 目录 junction)
New-Item -ItemType Junction -Path '<项目>/.dsh/skills/agents-skills' -Target '<本仓路径>'
# 方式二:只取一个技能
Copy-Item -Recurse '<本仓>/ticket-management' '<项目>/.dsh/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),但要在部署侧给该插件配目录;默认预设不带这行配置。