mirror of
https://github.com/longbridge/skills.git
synced 2026-09-14 20:37:00 +08:00
6c4f3a166e
🤖 Auto-generated by Endless task [#20](https://endless.longbridge-inc.com/projects/developers/tasks/20). Initiated by: Huacnlee Li Huashun ## 背景 `longbridge/skills` 仓库已积累了 125 个 skill,但 `longbridge/developers` 站点的 Skill 页面仍显示原有的 30 个条目。两个仓库之间没有自动同步机制,每次 `skills` 更新后必须手动修改 developers 里的 TypeScript catalog 文件,导致信息严重滞后。 本次改动在 `longbridge/skills` 侧新增 CI 自动化:push 到 `main` 时,读取所有 `skills/<slug>/SKILL.md` frontmatter,生成 `skills.json`,并自动向 `longbridge/developers` 提交 PR 更新该文件,使 Skill 页面始终反映最新 skill 列表。 ## 摘要 - 解决的问题:新增 skill 后 developers 站点 Skill 页面不自动更新,需人工维护 TypeScript catalog - 做了什么: - 新增 `scripts/build-skills-json.py`:遍历 `skills/<slug>/SKILL.md`,用 pyyaml 提取 frontmatter,输出 `skills.json`(含 slug、name、description、metadata) - 新增 `.github/workflows/update-skills-json.yml`:push to main 时运行 build 脚本,clone `longbridge/developers`,若 `skills.json` 有变更则推分支并用 `gh pr create` 开 PR - 为什么这样做: - 复用已有的 `DEVELOPERS_DISPATCH_TOKEN` secret,无需新增权限配置 - `git diff --quiet` 检测无变更时跳过 PR,避免噪音 - 用 Python + pyyaml 解析 YAML frontmatter,GitHub Actions `ubuntu-latest` 环境天然支持,可靠性高 - 如何验证: 1. 在 skills 仓库根目录执行 `pip install pyyaml && python3 scripts/build-skills-json.py`,应输出 `Generated skills.json with 125 skills` 2. 向 `main` 推一个测试 commit,确认 Actions 运行并在 `longbridge/developers` 产生 PR ## 修改 | 文件 | 改动内容 | |---|---| | `scripts/build-skills-json.py` | 新增:遍历所有 SKILL.md frontmatter,生成 skills.json | | `.github/workflows/update-skills-json.yml` | 新增:push to main 触发,生成并 PR 同步 skills.json 到 developers | ## 关键决策 用 Python + pyyaml 而非 Node.js:pyyaml 在 `ubuntu-latest` runner 上预置,且能正确处理 SKILL.md 里的 `description: |` 多行 YAML 字符串,无需额外 npm 依赖或 package.json。 --------- Co-authored-by: Huacnlee Li Huashun <huacnlee@longbridge-inc.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Jason Lee <huacnlee@gmail.com>