关于 megalinter
用于在代码库中运行 MegaLinter 检查、应用修复并再次验证的技能,指导编码 Agent 选择本地或 CI 流程,并遵循分支和规则变更限制。
主要功能
- 01检测 MegaLinter 配置与 CI 状态
- 02本地运行检查或监看 CI
- 03修复问题并重新检查
- 04最多进行三轮修复与复查
- 05委派任务给可用的子 Agent
适用场景
- 01诊断代码库中的 lint 错误
- 02修复并复查 CI 错误
- 03编辑后运行定向检查
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oxsecurity/ megalinter --skill megalinter安装后在 Claude Code 中输入/megalinter确认已加载。
详细介绍
MegaLinter 编排器
你负责在此代码库中编排 MegaLinter。MegaLinter 是一个汇集了 100 多个代码检查器的超级检查器,以 Docker 镜像的形式运行(通过 npx mega-linter-runner 在本地运行),或作为 CI 作业运行。
工作流
- 检测代码库状态:
- 没有
.mega-linter.yml,也没有 MegaLinter CI 工作流文件 → 先运行megalinter-setup技能。 - 存在配置 → 转到第 2 步。
- 没有
- 收集错误,使用
megalinter-check技能:- 如果 MegaLinter CI 作业目前正在运行,或刚刚在当前分支/PR 上失败 → 使用其监视模式。
- 否则 → 使用其本地模式(需要容器引擎 — docker 或 podman;如果缺少,技能会处理询问用户是否安装/启动容器引擎的事宜)。本地运行会消耗大量资源(MegaLinter 基于 Docker,需要性能良好的计算机配置和稳定的互联网连接,还可能下载数 GB 的镜像),因此,如果也可以通过 CI 运行(代码库中有 MegaLinter CI 工作流 — 例如推送分支或创建 PR),通常建议使用 CI:询问用户希望采用哪种方式(如果你的平台支持结构化提问,请优先推荐 CI),而不是默认选择本地运行。
- 如果发现错误,使用收集到的错误列表运行
megalinter-fix技能。 - 重新检查:修复后,再次运行
megalinter-check— 在本地模式下,优先使用其针对性重新检查(仅针对之前失败的代码检查器和已修复文件,并行运行独立的代码检查器)。 - 最多重复第 3-4 步 3 次。如果 3 轮后仍有错误,则停止并报告剩余错误,并提供建议(手动修复、禁用规则或禁用代码检查器)。
- 性能:如果
megalinter-check报告了slow_linters(即使检查全部通过),也要在此循环结束时向用户转达性能优化建议 — 只提出加速方案,未经同意不得应用。
规则
- 绝不在默认分支(
main/master)上提交或推送:先创建类似megalinter/fix-<topic>的分支。 - 禁用任何代码检查器或规则之前,以及推送提交之前,都要先询问用户。
- 绝不强制推送,只有一种例外:当 MegaLinter 本身将
[MegaLinter] Apply linters fixes提交推送到受监视的分支时,megalinter-check会在其前面加上 🤖 前缀,并使用--force-with-lease重新推送,以重新触发 CI 检查(条件见其“MegaLinter auto-fix commits”部分)。绝不使用普通的--force,也绝不在其他情况下强制推送。 - 每个阶段结束后,都要向用户简要说明当前状态(发现的错误、已应用的修复、剩余错误)。
优化:子 Agent(Claude Code 及兼容的 Agent)
如果你的环境支持启动子 Agent(例如 Task/Agent 工具),且提供了 megalinter-watcher、megalinter-runner、megalinter-fixer Agent 定义:
- 作为 Agent 插件安装(Claude Code、Cursor、Copilot)时,它们会随插件提供。有些平台会以带命名空间的名称列出(
megalinter:megalinter-watcher),其他平台则使用不带命名空间的名称。 - 作为技能安装时,
megalinter-setup技能会将它们复制到你所用平台的 Agent 文件夹中(例如.claude/agents/、.opencode/agent/、.github/agents/,文件名以.agent.md结尾),并使用不带命名空间的名称。
使用平台实际列出的任一种形式;如果两种都不可用,则改为内联执行。
然后:
- 将 CI 监视委派给
megalinter-watcher,将本地运行委派给megalinter-runner— 它们会避免将冗长日志带入上下文,只返回简明的错误列表。 - 为每个失败的代码检查器分派一个
megalinter-fixer,以并行修复多个代码检查器的问题。
如果无法使用子 Agent,则按照技能说明内联完成每个步骤。
评论
支持 Markdown