Community写作与编辑github.com

jjanuszczak/margo

Margo 是一款灵感来自 Hugo 的极速演示引擎,可将纯 Markdown 编译成美观且高度可脚本化的幻灯片,专为开发者和 AI 代理设计。

margo 是什么?

Margo(jjanuszczak/margo)是一款受 Hugo 启发、基于 Markdown 的快速演示引擎,旨在为开发者和 AI 代理生成美观且高度可脚本化的幻灯片。它通过类似静态站点生成器的方式将 Markdown 编译成演示文稿,支持命令行工作流,适合 CI/CD 集成。该技能专注于管理 Margo 的发布流程,包括版本准备、构建归档、烟雾测试、GitHub Release 发布以及 Homebrew 软件包更新。它提供两个主要脚本:`prepare_release.py` 用于自动化发布前检查与构建,`verify_release.py` 用于发布后验证。该技能遵循手动发布模型,不引入瓶子(bottles)、GoReleaser 或 homebrew-core 等自动化步骤,除非项目文档明确变更。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add jjanuszczak/margo

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

发布管理器

此技能自动化当前 margo 的发布流程,涉及:

  • scripts/release.sh
  • scripts/homebrew-source-sha.sh
  • docs/HOMEBREW.md 中记录的个性化 tap 模型

工作流

1. 准备一个版本

在仓库根目录下运行准备脚本:

python3 skills/release-manager/scripts/prepare_release.py 0.1.1

此脚本会:

  • 验证请求的版本号
  • 检查本地 Git 状态
  • 使用仓库本地的 GOCACHE 运行 go test ./...
  • 通过 scripts/release.sh 构建发布归档
  • 通过解压并运行 margo version 对每个构建的归档进行冒烟测试
  • 在 dist/release/release-<version>/ 下生成发布清单和后续检查清单

可选参数:

  • --allow-dirty:即使工作目录有未提交更改,也继续执行
  • --skip-go-test:跳过完整的 Go 测试套件
  • --tap-path /path/to/homebrew-margo:包含 tap 相关的后续操作说明

2. 验证已完成的版本

在 Git 标签、GitHub Release 以及可选的 tap 更新完成之后,运行:

python3 skills/release-manager/scripts/verify_release.py 0.1.1 --tap-path /path/to/homebrew-margo

此脚本会:

  • 重新验证构建的归档
  • 在可用时通过 gh 验证 GitHub Release
  • 检查 tap 公式是否指向预期的标签,并且校验和不是占位符
  • 当有 tap 检出可用时,使用 tap 限定的公式名称运行 brew install 或 brew upgrade --build-from-source,然后运行 brew test 和 brew audit --strict

有用的参数:

  • --skip-gh-release-check
  • --skip-brew
  • --brew-formula jjanuszczak/margo/margo

说明

  • 仅在当前仓库的手动发布模型中使用此技能。除非仓库文档发生变更,否则不要引入瓶子(bottles)、GoReleaser 或 homebrew-core 步骤。
  • 建议先运行 prepare_release.py,阅读其生成的检查清单,然后再创建标签或 GitHub Release。
  • 如果在当前环境中无法完成联网的 gh 或 brew 步骤,请向用户报告精确生成的后续任务,而不是宽泛地转述它们。

自我评估

修改技能后,您必须进行验证:

python3 skills/release-manager/evals/runner.py

读取:

  • skills/release-manager/evals/reports/latest_results.json

如果评估失败,请修复脚本或说明,然后重新运行评估,然后再交回工作。

相关技能