mcpField
G
guardfile

guardfile

本地服务
github.com/CloudCorpRecords版本控制01 周前更新

关于 guardfile

guardfile 检查提供的仓库文件中是否存在 DCO、CLA、changesets 和 sign-off 四类贡献规则。它仅依据输入内容生成报告,列出证据路径、缺失项和整体完整状态。

主要功能

  1. 01检测 DCO、CLA、changesets 和 sign-off
  2. 02根据文件路径或内容匹配规则
  3. 03列出排序且不重复的证据路径
  4. 04报告已满足和缺失的规则
  5. 05在本地校验输入

适用场景

  1. 01发布前检查贡献要求
  2. 02审查仓库文件中的规则证据
  3. 03找出缺失的 DCO、CLA、changeset 或 sign-off

MCP 相关

MCP 服务提供 `extract_guardrails` 工具,接收仓库相对路径和文件内容,并返回检测到的规则、证据、缺失项及完整状态。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-guardfile": {
"command": "npx",
"args": [
"-y",
"@reneturcios/guardfile"
]
}
}
}
启动命令npx -y @reneturcios/guardfile

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/guardfile0.1.0
ocighcr.io/cloudcorprecords/guardfile:0.1.0

工具

1

收录的工具列表 · 更新于 1 周前

参数类型必填说明
filesarray是要检查的仓库文件(至少一个)

详细介绍

guardfile

仓库可以声称有各种贡献保障措施——为提交签名、同意许可条款、添加变更集——但只有能指出落实每项措施的文件,这些说法才有意义。guardfile 会帮你指出这些文件:你把仓库的文件交给它,它就会返回一份可核验的报告,列出实际存在的保障措施及各自的证据。

它通过固定规则检测四种保障措施:

  • DCO — 文件名(不含路径)恰好为 DCO(不区分大小写),或任意内容提及 Developer Certificate of Origin。
  • CLA — 文件名(不含路径)以 CLA 开头(不区分大小写,例如 CLA.md),或任意内容提及 Contributor License Agreement。
  • changesets — 路径包含 .changeset/、以 /.changeset 结尾、恰好为 .changeset,或任意内容提及 @changesets/ 作用域。
  • sign-off — 任意内容包含 Signed-off-by: 行。冒号是规则的一部分:仅提及 Signed-off-by 不计入。

所有内容匹配均不区分大小写。报告会列出触发每项保障措施的路径,并按顺序排序;即使同一文件通过路径和内容同时触发同一项保障措施,每条路径也最多出现一次。除四项判定结果外,报告还会给出已具备的数量、缺失项名称(固定顺序为 dco、cla、changeset、signoff),以及仅在四项全部具备时才为 true 的 complete 标记。

输入格式错误——文件列表缺失或为空、条目不是对象、路径缺失、为空或重复,或内容缺失或不是字符串——都会导致验证错误,并指出出错路径(例如 files[1].content must be a string),且不会生成部分报告。计算过程纯粹且仅在本地进行:不访问网络、不需要配置,也不会读取你传入内容之外的任何文件。

命令行工具

npx @reneturcios/guardfile extract --input args.json
npx @reneturcios/guardfile --version

args.json 包含完整的参数对象:

{
  "files": [
    { "path": "DCO", "content": "Developer Certificate of Origin\n\nVersion 1.1" },
    { "path": "docs/contributing.md", "content": "Please add a Signed-off-by: line." },
    { "path": ".changeset/bright-foxes-jump.md", "content": "---\n\"pkg\": patch\n---\n" }
  ]
}

报告以 JSON 格式输出:

{
  "guardrails": {
    "dco": { "present": true, "evidence": ["DCO"] },
    "cla": { "present": false, "evidence": [] },
    "changeset": { "present": true, "evidence": [".changeset/bright-foxes-jump.md"] },
    "signoff": { "present": true, "evidence": ["docs/contributing.md"] }
  },
  "present_count": 3,
  "missing": ["cla"],
  "complete": false
}

退出代码:成功时为 0,运行时错误时为 1(包括无法读取或无效的输入文件,或无效输入),用法错误时为 2。

MCP 服务

npx -y @reneturcios/guardfile mcp

MCP 客户端配置:

{
  "mcpServers": {
    "guardfile": {
      "command": "npx",
      "args": ["-y", "@reneturcios/guardfile", "mcp"]
    }
  }
}
工具
  • extract_guardrails — 从仓库文件中提取保障措施。
    • files(数组,必填,至少一个)— 仓库文件,采用 {path, content} 对象;path 是仓库相对路径,且在集合中唯一;content 是文件内容,可以为空

返回 {guardrails, present_count, missing, complete}。

Docker

docker run -i ghcr.io/cloudcorprecords/guardfile
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/guardfile extract --input /w/args.json

开发

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (pure local, no network)
npm run dev     # run the CLI from source

许可证

MIT — Copyright (c) 2026 Rene Turcios

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。