Files
Endless 6c4f3a166e Add CI to build skills.json to developers (#31)
🤖 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>
2026-05-21 21:10:47 +08:00
..