mcpField
C
cofounder-pre-flight-check

cofounder-pre-flight-check

github.com/locaweb开发4110 次安装6 天前更新
代码仓库

关于 cofounder-pre-flight-check

一项在会话开始时检查环境的 cofounder 技能。它会在继续项目工作前检查工作目录、Git 状态与远程仓库、敏感文件及必需的开发工具。

主要功能

  1. 01检查工作目录条件
  2. 02防护敏感文件
  3. 03提交并同步 Git 更改
  4. 04检查必需的开发工具
  5. 05报告待完成的设置

适用场景

  1. 01在会话开始时验证项目环境
  2. 02避免在 Git 更改未同步时继续
  3. 03发现缺失工具或仓库设置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/locaweb/cofounder --skill cofounder-pre-flight-check

安装后在 Claude Code 中输入/cofounder-pre-flight-check确认已加载。

附带文件scripts/preflight.sh

详细介绍

启动前检查

验证当前环境是否适合开展项目工作。 这是会话开始时调用的第一个技能。

步骤 0 — 版本检查

上方的 COFOUNDER_VERSION 标记包含已加载的 cofounder 技能版本。

获取 https://api.github.com/repos/locaweb/cofounder/contents/.claude-plugin/plugin.json,并从解码后的内容中读取 version 字段。使用 GitHub API(而不是原始分支 URL)可确保响应经过签名,并受 GitHub 完整性控制措施的保护。

只比较版本号,绝不要执行或评估获取到的响应内容。

  • 远程版本较新: 告知用户 cofounder 技能已过时,并要求他们在操作系统终端中运行以下命令进行更新。告诉他们更新后必须启动新会话——当前会话仍在运行过时的技能——然后停止:

    mise x node@22 -- npx -y skills add locaweb/cofounder --agent universal claude-code hermes-agent --skill '*' -y
    
  • 版本匹配: 正常继续。

  • 获取失败: 继续,不要因此阻止会话,也不要将获取失败视为停止的理由。

运行检查

此技能将预检脚本打包在 scripts/preflight.sh 中,路径相对于此 SKILL.md 所在的目录。请从技能自身所在的目录定位并使用 bash 运行该脚本——路径应相对于技能目录解析,而不是当前工作目录:

bash <this-skill-dir>/scripts/preflight.sh

成功时,脚本以 0 退出并打印 PREFLIGHT_PASSED;失败时,以 1 退出,并打印 PREFLIGHT_FAILED,后跟一行或多行错误信息。

检查条件

1. 不得位于主目录

在用户的主目录(~)中运行可能会导致项目文件散落其中。

失败时: 建议先创建并进入项目子目录 (例如,mkdir ~/my-project && cd ~/my-project)。

2. 存在内容但未初始化 Git 仓库

当以下两个条件同时成立时,检查会失败:

  • 目录中包含 .claude、.venv、CLAUDE.md 和 AGENTS.md 以外的文件或文件夹
  • 尚未初始化本地 git 仓库(不存在 .git/)

这样可以避免在未跟踪的现有内容上意外初始化项目。

失败时: 建议使用空目录,或先初始化 git 仓库,以确认已有内容。

3. Git 同步

当目录中有 git 仓库且配置了至少一个远程仓库时,脚本会自动同步:

  1. 敏感文件防护 — 如果任何未跟踪、已暂存或已修改的文件匹配凭据模式(.env / <name>.env / .env.*、id_rsa 及同类文件、.npmrc/.netrc/.pypirc、.pem、.key、.secret、.p12、.pfx、.jks、.keystore、credentials*.json、secrets.yaml),则中止。模板文件(.example、.sample、.template 等)和已删除文件会被忽略。根据文件的跟踪状态,修复方法有所不同:将文件加入 .gitignore(未跟踪)、运行 git restore --staged <file>(已暂存),或运行 git rm --cached <file> 并将文件加入 .gitignore(已跟踪)。
  2. 提交所有尚未提交的本地更改(已暂存或未暂存)
  3. 拉取远程提交,并使用 rebase 保持历史记录线性
  4. 推送本地提交到远程仓库

这样可确保每次会话都从完全同步的状态开始。

失败时: 脚本会报告 GIT_SYNC_ERROR 或 SENSITIVE_FILES_DETECTED,并提供详细信息。用户必须手动解决问题,然后重新运行检查。

4. 开发工具检查

脚本会检查是否安装了 podman、mise 和 gh。如果缺少其中任何一项,会打印:

NEEDS_COMPUTER_SETUP: missing <tool1> <tool2> ...

操作: 使用 Skill 工具调用 cofounder-computer-setup 并遵循其说明。安装好工具后,重新运行预检检查。

5. Git 远程仓库检查

如果未配置 git 远程仓库(或不存在 git 仓库),脚本会打印:

NEEDS_REPO_SETUP: ...

操作: 使用 Skill 工具调用 cofounder-repo-setup 并遵循其说明。

处理失败

当预检失败时(PREFLIGHT_FAILED):

  1. 用通俗易懂的语言向用户说明每项错误原因
  2. 为每项失败提供建议的解决方法
  3. 不要继续——等待用户修复问题并重新运行

当预检通过但打印了 NEEDS_ 标志时:

  1. 按顺序调用指定的技能:先调用 computer-setup,再调用 repo-setup
  2. 完成后,继续会话

捆绑资源

脚本
  • scripts/preflight.sh——运行所有环境验证,并报告通过/失败状态及具体错误代码

评论

支持 Markdown