name: 技能维基园艺 description: 维护技能维基健康 - 检查链接、命名、交叉引用和覆盖率 when_to_use: 当添加、移除或重组技能时,或定期维护维基健康并验证链接 version: 1.1.0 languages: bash
技能维基园艺
概述
技能维基需要定期维护以保持健康:链接损坏、技能被孤立、命名漂移、索引文件不同步。
核心原则: 自动化健康检查,以保持维基质量,无需手动检查消耗令牌。
使用时机
运行园艺后:
- 添加新技能
- 移除或重命名技能
- 重组类别
- 更新交叉引用
- 怀疑链接损坏
定期维护:
- 活跃开发期间每周
- 稳定期间每月
快速健康检查
# 运行所有检查
~/.claude/skills/meta/gardening-skills-wiki/garden.sh
# 或运行特定检查
~/.claude/skills/meta/gardening-skills-wiki/check-links.sh
~/.claude/skills/meta/gardening-skills-wiki/check-naming.sh
~/.claude/skills/meta/gardening-skills-wiki/check-index-coverage.sh
# 分析搜索差距(缺少哪些技能)
~/.claude/skills/meta/gardening-skills-wiki/analyze-search-gaps.sh
主脚本运行所有检查并提供健康报告。
检查内容
1. 链接验证 (check-links.sh)
检查:
- 反引号包裹的
@链接 - 反引号禁用解析 - 相对路径如 skills/ 或 skills/gardening-skills-wiki/~/ - 应使用 skills/ 绝对路径
- 所有
skills/引用解析到现有文件 - 索引文件中引用的技能存在
- 孤立技能(不在任何索引中)
修复:
- 从 @ 引用中移除反引号
- 将 skills/ 和 skills/gardening-skills-wiki/~/ 相对路径转换为 skills/ 绝对路径
- 更新损坏的 skills/ 引用到正确路径
- 将孤立技能添加到其类别索引
- 移除对已删除技能的引用
2. 命名一致性 (check-naming.sh)
检查:
- 目录名称为连字符式
- 目录名称无大写或下划线
- 前置字段存在(name、description、when_to_use、version、type)
- 技能名称使用主动语态(非“如何…”)
- 空目录
修复:
- 重命名目录为连字符式
- 添加缺失的前置字段
- 移除空目录
- 重命名以使用主动语态
3. 索引覆盖率 (check-index-coverage.sh)
检查:
- 所有技能在其类别索引中列出
- 所有类别索引文件从主索引链接
- 技能在索引条目中有描述
修复:
- 添加缺失技能到索引文件
- 添加类别链接到主索引
- 为索引条目添加描述
常见问题及修复
损坏链接
❌ 损坏:skills/debugging/root-cause-tracing
目标:/path/to/skills/debugging/root-cause-tracing/SKILL.md
修复: 更新引用路径 - 技能可能已移动或重命名。
孤立技能
⚠️ 孤立:test-invariants/SKILL.md 不在 testing/INDEX.md 中
修复: 添加到类别索引:
- skills/gardening-skills-wiki/test-invariants - 技能描述
反引号包裹链接
❌ 反引号包裹:skills/testing/condition-based-waiting 在第 31 行
文件:getting-started/SKILL.md
修复:移除反引号 - 使用裸 @ 引用
修复: 移除反引号:
# ❌ 错误 - 反引号禁用链接解析
`skills/testing/condition-based-waiting`
# ✅ 正确 - 裸 @ 引用
skills/testing/condition-based-waiting
相对路径链接
❌ 相对路径:skills/testing 在 coding/SKILL.md 中
修复:使用 skills/ 绝对路径代替
修复: 转换为绝对路径:
# ❌ 错误 - 相对路径脆弱
skills/testing/condition-based-waiting
# ✅ 正确 - skills/ 绝对路径
skills/testing/condition-based-waiting
命名问题
⚠️ 混合大小写:TestingPatterns(应为连字符式)
修复: 重命名目录:
cd ~/.claude/skills/testing
mv TestingPatterns testing-patterns
# 更新所有对旧名称的引用
缺失索引
❌ 未索引:condition-based-waiting/SKILL.md
修复: 添加到 testing/INDEX.md:
## 可用技能
- skills/gardening-skills-wiki/condition-based-waiting - 用条件轮询替换超时
空目录
⚠️ 空目录:event-based-testing
修复: 如果不再需要,移除:
rm -rf ~/.claude/skills/event-based-testing
命名约定
目录名称
- 格式: 连字符式(小写带连字符)
- 过程技能: 适当使用动名词(
creating-skills、testing-skills) - 模式技能: 使用核心概念(
flatten-with-flags、test-invariants) - 避免: 混合大小写、下划线、被动语态开头(“how-to-”)
前置字段要求
必需字段:
name:人类可读名称description:单行摘要when_to_use:症状和情境(CSO关键)version:语义版本
可选字段:
languages:适用语言dependencies:所需工具context:特殊上下文(如“AI辅助开发”)
自动化工作流
添加新技能后
# 1. 创建技能
mkdir -p ~/.claude/skills/category/new-skill
vim ~/.claude/skills/category/new-skill/SKILL.md
# 2. 添加到类别索引
vim ~/.claude/skills/category/INDEX.md
# 3. 运行健康检查
~/.claude/skills/meta/gardening-skills-wiki/garden.sh
# 4. 修复报告的任何问题
重组后
# 1. 移动/重命名技能
mv ~/.claude/skills/old-category/skill ~/.claude/skills/new-category/
# 2. 更新所有引用(grep 查找旧路径)
grep -r "skills/gardening-skills-wiki/old-category/skill" ~/.claude/skills/
# 3. 运行健康检查
~/.claude/skills/meta/gardening-skills-wiki/garden.sh
# 4. 修复损坏链接
定期维护
# 月度:运行完整健康检查
~/.claude/skills/meta/gardening-skills-wiki/garden.sh
# 审查并修复:
# - ❌ 错误(损坏链接、缺失技能)
# - ⚠️ 警告(命名、空目录)
脚本
garden.sh(主脚本)
运行所有健康检查并提供全面报告。
用法:
~/.claude/skills/meta/gardening-skills-wiki/garden.sh [skills_dir]
check-links.sh
验证所有 @ 引用和交叉链接。
检查:
- 反引号包裹的
@链接(禁用解析) - 相对路径(
skills/或skills/gardening-skills-wiki/~/)- 应为skills/ @引用解析到现有文件- 索引文件中的技能存在
- 孤立技能检测
check-naming.sh
验证命名约定和前置字段。
检查:
- 目录名称格式
- 前置字段完整性
- 空目录
check-index-coverage.sh
验证索引完整性。
检查:
- 技能在类别索引中列出
- 类别在主索引中链接
- 描述存在
快速参考
| 问题 | 脚本 | 修复 |
|---|---|---|
| 反引号包裹链接 | check-links.sh |
从 @ 引用中移除反引号 |
| 相对路径 | check-links.sh |
转换为 skills/ 绝对路径 |
| 损坏链接 | check-links.sh |
更新 @ 引用 |
| 孤立技能 | check-links.sh |
添加到索引 |
| 命名问题 | check-naming.sh |
重命名目录 |
| 空目录 | check-naming.sh |
使用 rm -rf 移除 |
| 缺失索引 | check-index-coverage.sh |
添加到 INDEX.md |
| 无描述 | check-index-coverage.sh |
添加到索引条目 |
输出符号
- ✅ 通过 - 项目正确
- ❌ 错误 - 必须修复(损坏链接、缺失技能)
- ⚠️ 警告 - 应修复(命名、空目录)
- ℹ️ 信息 - 信息性(无需操作)
与工作流集成
提交技能更改前:
~/.claude/skills/meta/gardening-skills-wiki/garden.sh
# 修复所有 ❌ 错误
# 考虑修复 ⚠️ 警告
git add .
git commit -m "添加/更新技能"
当链接可疑时:
~/.claude/skills/meta/gardening-skills-wiki/check-links.sh
当索引似乎不完整时:
~/.claude/skills/meta/gardening-skills-wiki/check-index-coverage.sh
常见合理化
| 借口 | 现实 |
|---|---|
| “将手动检查链接” | 自动化检查更快更全面 |
| “索引可能没问题” | 孤立技能发生 - 总是验证 |
| “命名不重要” | 一致性有助于发现和维护 |
| “空目录无害” | 杂乱混淆未来维护者 |
| “可跳过定期检查” | 问题累积 - 定期维护防止大清理 |
现实影响
无园艺:
- 紧急任务中发现损坏链接
- 孤立技能从未发现
- 命名随时间漂移
- 索引文件不同步
有园艺:
- 30秒健康检查及早发现问题
- 自动化验证防止手动检查
- 一致结构有助于发现
- 维基保持可维护性
底线
不要手动检查 - 自动化检查。
更改后和定期运行 garden.sh。立即修复 ❌ 错误,方便时处理 ⚠️ 警告。
维护良好的维基 = 可发现的技能 = 可重用知识。