skill 管理,后缀为public可以被git commit
diff
-.agents
+.agents/*
+!.agents/skills/
+.agents/skills/*
+!.agents/skills/*-public/
修改逻辑
- 旧规则 :
/.agents,直接把整个.agents目录全部忽略,目录内所有文件都不会进 git。 - 新规则
+.agents/*:忽略.agents下全部内容+!.agents/skills/:例外,不忽略 skills 文件夹本身+.agents/skills/*:忽略 skills 下大部分文件+!.agents/skills/*‑public/:例外,所有名字以-public结尾的 skill 目录纳入版本控制
效果:
.agents/根下其他文件全部忽略
.agents/skills/里面,只有xxx‑public的技能目录会被 git 跟踪;skills 内其它目录依旧被忽略 正好满足:维护 skill,只提交 public 对外技能,本地私有技能不上库。
目录行为示例
csharp
.agents
├─ junk.json # 被忽略 ✖
└─ skills
├─ my‑private‑skill # 被忽略 ✖
└─ demo‑public # !例外,会被git提交 ✔
小坑提醒(gitignore 语法陷阱)
必须先
*.agents/*整体忽略,再!做反向;如果直接写
!.agents/skills/*‑public/,前面没有忽略父目录,规则不会生效。你这份 diff 的写法是标准正确写法。