skill-lint
$
npx mdskill add cat-xierluo/legal-skills/skill-lintAudit skill compliance and generate structured reports.
- Validates directory structure and frontmatter requirements.
- Depends on glob tools and YAML parsers for scanning.
- Decides checks by enforcing SKILL-DEV-GUIDE.md rules.
- Delivers findings via a structured audit report.
SKILL.md
.github/skills/skill-lintView on GitHub ↗
--- name: skill-lint homepage: https://github.com/cat-xierluo/legal-skills author: 杨卫薪律师(微信ywxlaw) version: "1.3.0" description: Skill 格式审查工具,基于 SKILL-DEV-GUIDE.md 规范对技能进行合规性审计。本技能应在用户需要审查 skill 格式合规性、检查文档与代码一致性、识别冗余内容、生成技能审计报告时使用。不要用于:代码审查、功能测试、非 skill 项目。 license: MIT License - 详见 LICENSE.txt --- # Skill 格式审查工具 对指定的 skill 进行格式合规性审查,生成结构化的审计报告。 ## 审查流程 ### 1. 扫描目标技能 使用 Glob 工具列出技能目录下的所有文件: ``` <skill-path>/ ├── **/*.md ├── **/*.py ├── **/*.yaml ├── **/*.json └── ... ``` ### 2. 检查目录结构 验证是否符合标准目录结构: ``` skill-name/ ├── SKILL.md # 必需 ├── LICENSE.txt # 可选 ├── references/ # 可选 ├── scripts/ # 可选 └── assets/ # 可选 ``` **检查项**: - [ ] SKILL.md 是否存在 - [ ] 是否有不规范的目录(如 `test/`、`docs/` 应改为 `references/`) - [ ] 是否有不应提交的文件(如 `__pycache__/`、`.env`) ### 3. 检查 Frontmatter 解析 SKILL.md 的 YAML frontmatter: ```yaml --- name: skill-name description: 功能描述。本技能应在...时使用 license: MIT License - 详见 LICENSE.txt --- ``` **检查项**: - [ ] `name` 字段是否存在且格式正确 - [ ] `description` 字段是否存在 - [ ] `description` 是否使用第三人称("本技能应在...时使用") - [ ] `description` 是否包含触发场景描述 - [ ] `description` 是否包含负向触发条件("不要用于...") - [ ] `description` 长度是否 ≤ 1024 字符 - [ ] 是否有 `license` 字段 - [ ] 是否有多余的 `version` 字段(应删除) ### 4. 检查 SKILL.md 行数 **检查项**: - [ ] SKILL.md 行数是否 ≤ 500 行(超出应拆分到 references/) ### 5. 检查目录层级 **检查项**: - [ ] `references/` 是否为扁平结构(只允许一级子目录) - [ ] `scripts/` 是否为扁平结构(只允许一级子目录) - [ ] `assets/` 是否为扁平结构(只允许一级子目录) ### 6. 检查文档一致性 扫描所有 `.md` 文件,提取引用的文件路径: **提取模式**: - `scripts/xxx.py` - `assets/xxx.yaml` - `references/xxx.md` - 相对路径引用 **检查项**: - [ ] 引用的脚本文件是否存在 - [ ] 引用的配置文件是否存在 - [ ] 引用的参考文档是否存在 - [ ] README.md 是否与 SKILL.md 内容重复 ### 7. 检查冗余内容 **检查项**: - [ ] 是否有根目录 README.md(应删除,与 SKILL.md 重复) - [ ] references/ 中的文档是否都引用了实际存在的文件 - [ ] 是否有过时的文档(描述已废弃的功能) - [ ] SKILL.md 中是否有大段代码(>20行应移至 scripts/) ### 8. 检查配置文件 **检查项**: - [ ] 配置模板是否使用 `*.example.*` 命名 - [ ] 实际配置文件是否被 .gitignore 忽略 - [ ] config.example.yaml 的字段是否与实际代码匹配 ### 9. 检查技能协作规范 **检查项**: - [ ] 是否直接引用其他技能的内部脚本路径(应改为自然语言描述) - [ ] 协作描述是否使用松耦合方式 ### 10. 检查模块化设计 **检查项**: - [ ] 独立功能是否解耦到单独脚本 - [ ] 是否存在跨 skill 直接调用内部脚本(应通过 AI 协调) ### 11. 检查安全审计 **检查项**: - [ ] 无硬编码 API keys - [ ] 无危险删除命令(`rm -rf ~`、`rm -rf /`、`rm -rf $HOME`) - [ ] 删除命令是否使用安全方式(trash 或 find -delete) ### 12. 检查输出模式 **检查项**: - [ ] 是否提供输出格式模板(对于需要一致性输出的技能) - [ ] 模板严格度是否适中(严格需求用 `ALWAYS`,灵活需求用 `use your best judgment`) - [ ] 是否提供输入/输出示例(对于质量关键的输出) - [ ] 示例是否覆盖典型场景(至少 2-3 个) ### 13. 检查工作流模式 **检查项**: - [ ] 复杂任务是否有流程概览(步骤编号清晰) - [ ] 是否有条件分支逻辑(使用粗体问题 + 箭头指向) - [ ] 每个分支是否有完整的执行步骤 ### 14. 检查 CHANGELOG 规范 **检查项**: - [ ] 是否存在 `CHANGELOG.md` 文件(推荐有) - [ ] 格式是否符合规范(版本号 + 日期 + 变更内容) - [ ] 版本号是否遵循语义化版本(v1.0.0 格式) - [ ] 日期格式是否统一(YYYY-MM-DD) - [ ] 变更类型是否清晰(新增/修改/修复/移除) **CHANGELOG 格式规范**: ```markdown # Changelog All notable changes to this skill will be documented in this file. ## [v1.1.0] - 2026-02-24 ### 新增 - 添加了 XXX 功能 ### 修改 - 优化了 YYY 逻辑 ### 修复 - 修复了 ZZZ 问题 ## [v1.0.0] - 2026-02-01 ### 新增 - 初始版本发布 ``` ### 15. 检查版本号管理 **检查项**: - [ ] SKILL.md frontmatter 中是否有多余的 `version` 字段(应删除) - [ ] 版本信息是否统一在 `CHANGELOG.md` 中管理 - [ ] 如有版本号,是否与 CHANGELOG.md 最新版本一致 **注意**:版本号不应出现在 SKILL.md 的 frontmatter 中,所有版本变更应在 CHANGELOG.md 中记录。 ### 16. 检查可编排性设计 对于可能参与复杂工作流编排的技能,检查以下项: **检查项**: - [ ] 是否有明确的输入/输出声明(在 SKILL.md 中) - [ ] 是否遵循单一职责原则(每个 Skill 只做一件事) - [ ] 是否具有幂等性(多次执行结果相同) - [ ] 复杂编排是否有 `references/workflow.md` **输入/输出声明格式**: ```markdown ## 输入/输出 ### 输入 - 必需:`--input` 参数说明 - 可选:`--flag` 参数说明 ### 输出 - 输出文件:`output/path.md` 说明 - 副作用:如创建目录、修改文件等 ``` **单一职责检查**: - 技能是否只完成一个核心任务 - 是否有多个不相关的功能混在一起 **幂等性检查**: - 多次运行是否产生相同结果 - 是否有累积效应(如追加写入而非覆盖) ## 生成审查报告 ### 报告格式 ```markdown # [skill-name] 格式审查报告 **审查时间**: YYYY-MM-DD HH:MM **技能路径**: /path/to/skill ## 审查摘要 | 检查项 | 状态 | 问题数 | |--------|------|--------| | 目录结构 | ✅/⚠️/❌ | N | | Frontmatter | ✅/⚠️/❌ | N | | SKILL.md 行数 | ✅/⚠️ | N | | 目录层级 | ✅/⚠️ | N | | 文档一致性 | ✅/⚠️/❌ | N | | 冗余内容 | ✅/⚠️/❌ | N | | 配置文件 | ✅/⚠️/❌ | N | | 技能协作 | ✅/⚠️/❌ | N | | 模块化设计 | ✅/⚠️/❌ | N | | 安全审计 | ✅/⚠️/❌ | N | | 输出模式 | ✅/⚠️/❌ | N | | 工作流模式 | ✅/⚠️/❌ | N | | CHANGELOG | ✅/⚠️/❌ | N | | 版本号管理 | ✅/⚠️/❌ | N | | 可编排性 | ✅/⚠️/❌ | N | ## 详细问题 ### 严重问题(必须修复) 1. **[问题标题]** - 位置: `文件路径:行号` - 规范: 违反的规范条款 - 建议: 具体修复建议 ### 建议优化 1. **[问题标题]** - 位置: `文件路径` - 建议: 优化建议 ### 信息提示 - [提示信息] ## 建议操作 ### 删除文件 | 文件路径 | 原因 | |----------|------| | `path/to/file.md` | 与 SKILL.md 重复 | | `path/to/old.md` | 引用不存在的脚本 | ### 更新文件 | 文件路径 | 修改内容 | |----------|----------| | `SKILL.md` | 更新 description 格式 | | `config.example.yaml` | 移除未使用的字段 | ### 新增文件 | 文件路径 | 用途 | |----------|------| | `assets/config.example.yaml` | 配置模板 | ## 审查完成 - 总问题数: N - 严重问题: N - 建议优化: N - 信息提示: N ``` ## 使用方法 用户提供要审查的技能路径,AI 执行以下步骤: 1. 使用 Glob 列出技能目录所有文件 2. 使用 Read 读取 SKILL.md 和其他关键文件 3. 按检查清单逐项检查 4. 生成结构化审查报告 ## 规范参考 详细检查清单见 [references/skill-standards.md](references/skill-standards.md) 规范依据:项目根目录的 `SKILL-DEV-GUIDE.md`
More from cat-xierluo/legal-skills
- clawhub-sync将本地开发的 Skills 批量同步到 ClawHub 平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步。本技能应在用户需要将本地 skills 发布到 ClawHub、批量同步技能、检查发布状态时使用。
- code2patent从已开发代码项目中提取技术实现证据,围绕候选专利方案生成技术交底书,并以“权利要求布局卡 → 发明专利初稿”两步法继续生成接近可申报版的中国发明专利起草材料。触发场景包括:读取代码仓库后撰写技术交底书、将人工总结的专利方案映射到具体实现、从代码中挖掘可专利技术方案、为专利代理师准备权利要求布局和发明专利初稿。
- course-generator从多个文献内容中系统化提取并生成结构化课程。支持 1-100+ 个文献文件,智能识别内容类型(转录/文献/混合),自动进行主题识别、课程大纲生成、总览与章节内容撰写。采用可选模块架构,适应不同类型内容(理论/实践/案例/历史等)。本技能应在用户需要将多个文献整理为系统化课程、生成学习材料、处理转录内容、或从复杂文稿中提取结构化内容时使用。
- court-sms本技能应在用户收到法院短信(文书送达、立案通知、开庭提醒等)时使用,自动提取案号、当事人、下载链接,下载文书并归档到对应案件目录。
- de-ai-polish检测并去除文章中的AI化表述模式,用于写作润色、文本优化、去AI腔。
- douyin-batch-download抖音视频批量下载工具 - 基于 F2 框架实现高效、增量的视频下载功能。支持单个/批量博主下载,自动 Cookie 管理,差量更新机制。本技能应在用户需要批量下载特定博主视频、服务器部署自动化下载、或定期更新视频库时使用。
- funasr-transcribe使用本地 FunASR 服务将音频或视频文件转录为带时间戳的 Markdown 文件,支持 mp4、mov、mp3、wav、m4a 等常见格式。本技能应在用户需要语音转文字、会议记录、视频字幕、播客转录时使用。
- git-batch-commit智能 Git 批量提交工具。当用户说 "git 提交"、"git commit"、"批量提交"、"拆分提交"、"整理提交" 时使用,或者当用户暂存了多个不同类型的文件需要分开提交时使用。自动将混合的文件修改按类型分类(依赖管理、文档更新、license 文件、配置、源代码等),并创建多个清晰聚焦的提交,使用标准化的提交信息格式。帮助保持清晰的 Git 历史,确保每个提交都有单一、明确的目的。使用英文前缀(docs:、feat:、fix: 等)加中文内容,支持 GitHub 彩色标签显示。
- github-star-managerGitHub Star 项目管理工具,支持从内容自动发现并 Star 项目,同步追踪更新,生成可视化 Dashboard
- legal-proposal-generator根据案件材料或沟通记录生成各类法律服务文档(诉讼方案、咨询报告、非诉方案、建议书、沟通报告、案件分析摘要等)。本技能应在用户需要将案件材料、咨询记录或沟通内容整理为专业法律文档时使用。