SuperAPI AI 工具集

release-code

编程与开发

查看项目

更新于 10-13 15:04

技能介绍

用途

release-code 用于将研究代码仓库准备为可公开发布的状态。它覆盖从安全审计、缺失资产生成,到打版本标签、创建 GitHub Release 的完整流程,主要面向机器学习与研究类项目。

主要能力

1. 发布背景确认

技能会先向用户确认以下信息:

  • 论文信息:标题、作者、会议或期刊及年份、arXiv ID 或 URL(如有)
  • 发布类型:完整代码发布 / 最小可复现包 / 匿名会议投稿
  • 许可证:MIT / Apache-2.0 / CC-BY-4.0 / 其他(默认代码用 MIT,模型与数据用 CC-BY-4.0)
  • 包含内容:训练代码、评估、预训练权重、数据集、Demo
  • 版本标签:例如 v1.0.0(首次发布默认为 v1.0.0)
  • 是否创建带发布说明的 GitHub Release
  • 预训练权重情况:是否可用,以及托管位置(HuggingFace Hub / Google Drive / 项目页面)

2. 仓库审计

技能执行以下检查,并将结果汇总报告给用户:

  • 安全扫描:密钥与凭据。使用 git 日志检查与常见密钥模式 grep,并在可用时优先使用 gitleaks、detect-secrets 等专用扫描器
  • 大文件检查:查找超过 50M 且不应入库的文件
  • 敏感文件模式:检查 .env、.pem、.key、secrets.yaml、credentials.json 等不应公开的文件
  • 既有文件清点:检查 README.md、LICENSE、CITATION.cff、.gitignore、requirements.txt、pyproject.toml、setup.py 是否存在
  • Git 状态:查看变更状态与最近提交
  • 工具链与源码卫生门禁:在工具可用时运行 pre-commit、shellcheck、shfmt、actionlint、nbstripout、lychee、taplo、yamllint 等非破坏性检查,并明确报告被跳过(未安装)的工具

审计发现以三档清单呈现:

  • BLOCKER:发布前必须修复(发现密钥、凭据、大体积二进制文件)
  • WARNING:建议处理(缺少 README、无许可证、无 .gitignore、跳过可选的卫生门禁)
  • OK:状态良好

技能会要求用户先修复阻断项再继续。失败的必需门禁被视为发布阻断项;缺失的可选工具视为跳过,除非项目策略要求。

3. 生成缺失文件

根据既有文件清点结果生成缺失文件;覆盖已存在文件前会先征询用户偏好。

  • LICENSE:缺失时生成对应许可证文件,写入 {PROJECT_ROOT}/LICENSE
  • CITATION.cff:从技能目录模板读取并填充占位符(标题、作者 YAML 列表、年份、会议/期刊、arXiv ID、GitHub 仓库、发布日期的 YYYY-MM-DD),写入 {PROJECT_ROOT}/CITATION.cff
  • README.md:当 README 缺失或过于简略(少于 50 行)时,从模板生成并填充占位符,用户需提供的内容保留 [TODO: ...] 标记。不会覆盖内容充实的现有 README,而是指出缺失章节并提出追加
  • .gitignore:缺失时生成 Python/ML 项目 .gitignore,覆盖 Python 产物、ML 输出(outputs/、wandb/、.ckpt、.pt、.pth、.pkl、runs/、lightning_logs/)、大数据目录与密钥文件等

4. 发布前清单复核

读取技能目录中的 checklist.md,按类别以精简清单呈现,每项标注状态(完成 / 需关注 / 缺失),覆盖仓库卫生、文档、安全、工具链门禁、可复现性、法律等类别。随后询问用户是继续打标签发布,还是先处理上述问题。

5. 提交与打标签

用户确认后:

  • 仅暂存新增或修改的已跟踪文件(不包含未跟踪的 outputs 等),展示暂存差异统计
  • 请用户确认暂存变更后提交,提交信息形如 chore: prepare code for public release ({VERSION})
  • 创建带注释的标签,标签信息包含版本、论文标题、发表会议、论文链接与包含内容
  • 询问是否推送提交与标签到 origin,确认后推送当前分支与标签

6. GitHub Release(可选)

若用户要求创建 GitHub Release:

  • 检查 gh 是否可用
  • 可用时起草发布说明并创建 Release,说明包含论文标题、会议、论文与项目页链接、包含内容、安装命令与 BibTeX 引用
  • gh 不可用时,将发布说明以文本形式打印,供用户自行粘贴到 GitHub

7. 总结与后续建议

打印最终总结,包含生成/更新的文件、提交哈希、标签与推送状态、GitHub Release 链接,并列出建议的后续步骤,例如上传预训练权重、在论文 arXiv 页面添加仓库链接、发布消息、添加 Code 徽章等。

使用方式

该技能以技能目录形式安装,目录结构包含 SKILL.md、checklist.md 以及 templates/ 下的 README_ml_paper.md 与 CITATION.cff 模板。使用流程为:确认发布背景 → 仓库审计 → 生成缺失文件 → 发布前清单复核 → 提交与打标签 → 可选创建 GitHub Release → 输出总结。

技能强调以项目工具链门禁作为证据而非装饰,优先执行非破坏性检查;仅在用户请求或项目策略要求时才运行会修改文件的格式化/修复命令,并在之后审查差异。

匿名投稿处理

当用户说明这是用于匿名会议投稿时:

  • 不创建公开 GitHub Release
  • 不在任何提交文件中包含作者姓名
  • 改用匿名 zip 包:通过 git archive 生成到临时路径
  • 提交前检查 zip 内容是否含可识别作者的信息
  • 提醒用户对提交信息、配置中的个人路径、代码注释中的邮箱地址等进行匿名化

常见模式

  • HuggingFace Hub 模型上传:通过 huggingface_hub 的 HfApi.upload_folder 上传 checkpoints 目录到指定仓库
  • 在 README 中添加 GitHub、arXiv、License 徽章
  • 发布后提交到 paperswithcode.com 以将仓库与论文关联

适用场景与限制

适用场景:机器学习与研究代码仓库准备公开发布,包括开源清理、README/LICENSE/CITATION 补齐、打标签、创建 GitHub Release,以及匿名会议投稿的匿名打包。

限制与说明:技能的具体行为依赖所安装目录中的 SKILL.md、checklist.md 与模板文件;部分门禁工具(如 gitleaks、detect-secrets、shellcheck、lychee 等)为可选项,未安装时会被跳过并明确报告;关于收费、价格、平台支持范围等信息,资料未提供。