技术调研方法论 · 第 2 课

第①层展开:项目健康度怎么读

30 分钟初筛不是走马观花——每个信号都有"读法"。这一课教你区分承诺性信号与历史信号、识别五面红旗,并用 OpenSSF Scorecard 把一半工作自动化。

⏱ 约 18 分钟 📌 前置:第 1 课(三层漏斗) 📎 调研手册 📎 术语表

知识点一:承诺性信号 vs 历史信号

初筛最常见的错误,是把历史信号(star 数、提交总数、fork 数——项目曾经多受欢迎)当成承诺性信号(发版节奏、维护方性质、issue 响应——项目未来还会不会有人管)。淘汰与保留只看后者:

信号怎么读注意
维护方性质组织主页 + 贡献者分布:机构/基金会 > 多公司共维护 > 单公司 > 个人。看最近一年的提交是否集中在一个人手里(bus factor)。bus factor = 1 且该维护者近期失活,是最直接的死亡信号
发版节奏Releases 页:有无可预期的节奏。EnergyPlus 的"每年 3 月、9 月"就是教科书级节奏。一年无发版不等于死——完成态的小工具常年不发版。区分弃坑与成熟:看维护者是否仍在回应 issue
Issue 响应抽查最近 10 条 issue:维护者多久出现?有实质回复还是机器人标签?再看 10 条已关闭的:是解决关闭还是 stale-bot 自动关闭?issue 总数不是信号——EnergyPlus 开放 issue 800+,对 40k 提交的项目属正常
License 与治理LICENSE 文件之外,翻一眼 CHANGELOG/公告:license 变更史(近年多个知名项目从开源改为受限许可);双许可/CLA 是否影响你的使用方式。双许可本身是常见合法模式,要核对的是"你的用法落在哪一侧"
文档生态有系统文档站(非只有 README);社区渠道里有活人互相回答问题。文档"存在"不够,抽一个你关心的主题搜搜看能否查到

知识点二:Scorecard 把一半检查自动化

OpenSSF Scorecard(Linux 基金会 OpenSSF 项目)对任意 GitHub 仓库跑 26+ 项检查,每项 0-10 分:

scorecard --repo=github.com/NatLabRockies/EnergyPlus
# 只跑关心的检查项:
scorecard --repo=github.com/NatLabRockies/EnergyPlus \
  --checks=Maintained,Code-Review,CI-Tests,Security-Policy --show-details

初筛阶段重点看四项:Maintained(近 90 天活跃度)、Code-Review(合入是否经过评审)、CI-Tests(有没有持续测试)、Security-Policy(有没有安全响应通道)。

分数的正确用法 Scorecard 分数是对比参考,不是绝对门槛:"候选 A 7.2 / 候选 B 3.1"有意义,"低于 6 分淘汰"没有——检查项的权重未必符合你的场景。低分项要人工核因Code-Review 低分可能只是单人小工具的工作流使然。反过来,高分也只证明工程实践好,代替不了定位与 license 的语义判断——那是人的活。

知识点三:五面红旗(任一出现,慎之又慎)

  1. bus factor = 1 且失活:唯一维护者最近 3 个月没有任何活动。
  2. 发版停滞且无解释:一年以上无发版,issue 里问"还维护吗"无人回应。
  3. issue 只进不出:新 issue 无人应答,关闭全靠 stale-bot。
  4. license 风向变动:历史上改过 license,或母公司近期有商业化动作——今天的 BSD 不保证明天。
  5. fork 分裂:社区因治理矛盾出走建 fork(往往意味着上游已不可信,但也可能 fork 才是该选的)。

对照 EnergyPlus:机构出资(DOE)、国家实验室维护、半年一发版、CI 完整——五面红旗一面不占,这就是"健康度高"结论的完整依据链。

随堂测验

1. 候选项目一年没发新版,正确的下一步是?
2. OpenSSF Scorecard 分数的正确用法是?
3. 下列哪个是最危险的红旗信号?

实战练习(20 分钟)

从你的团队当前真实依赖里挑一个核心开源组件(框架、中间件、关键库均可):

  1. 按知识点一的五组信号人工初筛,每组写一行结论;
  2. 装了 Go 环境的话,对它跑一次 scorecard --repo=...,找出最低分的检查项并人工核因
  3. 回答:如果今天重新选型,它还能通过第①层吗?有没有红旗是你们引入时没看的?

把结论发回对话里,我来点评——重点看:你引用的是承诺性信号还是历史信号。

课后延伸

主推资料源OpenSSF Scorecard 仓库 README——26+ 检查项每项的判定逻辑都有文档,读一遍等于过一遍开源工程实践清单。

💬 对某个信号拿不准(比如怎么判断双许可影响)——回到对话里直接提问。

← 第 1 课:三层漏斗 第 3 课:能力对标与评估矩阵 →