公开记录
软件健康报告模式 0.26.0 · 指标 1.13.0 · 2026-07-22 14:53 UTC

jnMetaCode / superpowers-zh

🦸 AI 编程超能力 · 中文增强版 — superpowers(116k+ ⭐)完整汉化 + 6 个中国原创 skills,让 Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI 等 16 款 AI 编程工具真正会干活

JavaScript · ShellMIT★ 7,136 星标⑂ 692 复刻始于 2026年3月在 GitHub 上查看 ↗

jnMetaCode/superpowers-zh 的健康指数为 100 分中的 70 分,处于「良好」区间。 其得分最高的类别是Vitality(84/100),最低的是Security(45/100)。 最近一次更新在 5 天前。 近期的大部分工作由 1 位贡献者完成。

70
总分 / 100
良好

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

70
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

AI不止语个人账户
682 关注者120 个公开仓库始于 2015年4月 jnMetaCode@qq.com

该仓库由个人账户拥有。相较于组织支持的项目,单一所有者项目的延续性风险更高。

软件包生态系统

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

84良好 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 5 天前
10.4/36提交节奏 — 52 周中有 15 周有提交
18/18提交量 — 最近一年 153 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year153
human_commit_share1
days_since_last_push5
active_weeks_last_year15

发布纪律

100优秀
评分方式
27/27有发布版本 — 已发布 5 个发布版本
36/36发布时效 — 最近一次发布版本于 5 天前
27/27发布节奏 — 约每 18.2 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count5
latest_release_tagv1.7.1
releases_from_tags
days_since_latest_release5
mean_days_between_releases18.2
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

79良好 · 占总体的 18%
评分方式
60/60星标 — 7,136 个星标
23.7/25复刻 — 692 个复刻
8/15关注者 — 28 位关注者
所用输入
forks692
stars7,136
watchers28
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

72良好
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
0/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template
评分方式
54/80月度下载量 — npm 合计每月 11,280 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagessuperpowers-zh
dependents
ecosystemsnpm
total_downloads
monthly_downloads11,280
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

58中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
1/22.5提交分布 — 头号贡献者编写了 95% 的提交
5.4/13.5贡献者广度 — 4 位贡献者
3/10OpenSSF Scorecard:Contributors — project has 1 contributing companies or organizations -- score normalized to 3
所用输入
bus_factor1
contributors_sampled4
top_contributor_share0.954
评分方式
27.8/46.8议题解决 — 60% 的议题已关闭
35.5/38.3PR 接受 — 已裁定的 PR 中 51/55 已合并
0/15OpenSSF Scorecard:Code-Review — Found 0/20 approved changesets -- score normalized to 0
所用输入
merged_prs51
open_issues15
closed_issues22
issue_closed_ratio0.595
closed_unmerged_prs4
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
20.4/25所有者影响力 — jnMetaCode 有 682 位关注者
25/25既往记录 — 120 个公开仓库,账户约 11 年
所用输入
followers682
owner_typeUser
is_verified
owner_loginjnMetaCode
public_repos120
account_age_days4,107
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — npm 上有 1 个软件包
35/35发布时效 — 最近一次发布于 5 天前
20/20版本历史 — 17 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagessuperpowers-zh
ecosystemsnpm
any_deprecated
min_days_since_publish5

工程质量

基础的工程与文档实践是否到位?

81良好 · 占总体的 20%

工程实践

68中等
评分方式
24/24CI 工作流 — 3 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
0/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 19 out of 19 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

100优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://sp.aiolaola.com
10/10仓库描述
10/10主题标签 — 16 个主题标签
10/10Wiki
所用输入
topicsai-coding, chinese, claude-code, cursor, mcp, skills, superpowers, tdd, agent-skills, agentic-coding, code-review, kiro, npm-package, prompt-engineering, trae, gemini-cli
has_wiki
homepagehttps://sp.aiolaola.com
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

45存在风险 · 占总体的 16%

安全态势

45存在风险
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 19 out of 19 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/20 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
3/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 6
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4.5
已排除计分(无数据或不适用):packaging, signed_releases。 其余权重已重新归一化。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

55中等 · 占总体的 0%
评分方式
45/45代理指令 — AGENTS.md, CLAUDE.md, GEMINI.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 98 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.98
agent_instruction_filesAGENTS.md, CLAUDE.md, GEMINI.md
agent_instruction_max_bytes8,071
评分方式
0/18一条命令的引导启动
22/22自动化测试
0/11Lint / 格式化配置
0/11静态类型检查
10/10可复现环境 — lockfile
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
0/8自动化维护 — 未观察到自动依赖更新
6/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 6
所用输入
has_nix
has_tests
lockfilespackage-lock.json
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
评分方式
0/45可类型检查的代码 — JavaScript,未配置类型检查
55/55可控的文件大小 — 采样的 21 个源文件中有 0 个超过 60KB
所用输入
primary_languageJavaScript
largest_source_bytes55,561
source_files_sampled21
oversized_source_files0

机器可读接口

40存在风险
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — examples
所用输入
example_dirsexamples
has_mcp_signal
api_schema_files

关键数据

7,136GitHub 星标
4贡献者
153最近 12 个月提交数
5距最近推送天数
5发布版本数
1巴士系数(bus factor)
15开放议题
npm软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository
  • deps.dev does not index npm:superpowers-zh@1.7.1; advisories assessed against the repository dependency graph instead

更多细节

Star 与 Fork 历史 0 ★ / 692 ⇿
0Star
692Fork
5发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

0125250375500625750688162026-032026-052026-07
主版本 0次版本 3修订 2
OpenSSF Scorecard 4.5 / 10
4.5综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-22 14:52 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests19 out of 19 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/20 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
6Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 6
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
全部依赖 未采集

本报告未能采集到解析后的依赖集合:GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "ai-coding",
        "chinese",
        "claude-code",
        "cursor",
        "mcp",
        "skills",
        "superpowers",
        "tdd",
        "agent-skills",
        "agentic-coding",
        "code-review",
        "kiro",
        "npm-package",
        "prompt-engineering",
        "trae",
        "gemini-cli"
      ],
      "is_fork": false,
      "size_kb": 2721,
      "has_wiki": true,
      "homepage": "https://sp.aiolaola.com",
      "languages": {
        "CSS": 20690,
        "HTML": 8094,
        "Shell": 151096,
        "Python": 6733,
        "Batchfile": 1460,
        "JavaScript": 246998,
        "TypeScript": 9337
      },
      "pushed_at": "2026-07-17T13:15:52Z",
      "created_at": "2026-03-20T00:12:39Z",
      "owner_type": "User",
      "updated_at": "2026-07-22T14:31:31Z",
      "description": "🦸 AI 编程超能力 · 中文增强版 — superpowers(116k+ ⭐)完整汉化 + 6 个中国原创 skills,让 Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI 等 16 款 AI 编程工具真正会干活",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "JavaScript",
      "significant_languages": [
        "JavaScript",
        "Shell"
      ]
    },
    "owner": {
      "blog": null,
      "name": "AI不止语",
      "type": "User",
      "login": "jnMetaCode",
      "company": " jnMetaCode@qq.com",
      "location": null,
      "followers": 682,
      "avatar_url": "https://avatars.githubusercontent.com/u/12096460?v=4",
      "created_at": "2015-04-24T08:21:49Z",
      "is_verified": null,
      "public_repos": 120,
      "account_age_days": 4107
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.7.1",
          "kind": "patch",
          "published_at": "2026-07-17T13:16:19Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2026-07-13T21:31:25Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2026-06-20T02:19:54Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2026-05-10T14:57:49Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2026-05-05T15:07:27Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "c9d153941291068f928fd313faf181a48301dee1",
          "body": "npm 1.7.0 发布在 SDD v6 合并(#108)之前,tarball 不含新内容,故 bump patch 发版:\n- 双审查者合并为 task-reviewer-prompt.md、新增 scripts/(review-package/sdd-workspace/task-brief)\n- SKILL/implementer 补 v6 契约、删 v5 双 reviewer\n- 7 个清单版本同步至 1.7.1\n\n关联 #89 #19",
          "is_bot": false,
          "headline": "chore(release): v1.7.1 —— subagent-driven-development 对齐上游 v6 重写",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-17T13:15:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7885ca06228b40e8a55ec429367a84d00000b88",
          "body": "对齐 obra/superpowers v6.0.0+(当前 v6.1.1)对 subagent-driven-development 的重写:\n\n- 双审查者(规格 + 代码质量)合并为单个 task-reviewer-prompt.md,一次读 diff 出两个结论\n- 新增 scripts/:review-package(生成审查包)、sdd-workspace(工作树临时区)、task-brief(抽取单任务简报)\n- SKILL.md 补齐 v6 新增章节:起飞前计划审查、处理审查者 ⚠️ 事项、构造审查者提示词、文件交接、持久化进度(ledger)\n- implementer-pr\n[…]\nspec-reviewer-prompt.md / code-quality-reviewer-prompt.md\n\n中文 fork 适配:task-brief 的 awk 同时匹配英文 \"Task N\" 与中文 \"任务 N\" 标题,\n使 writing-plans 产出的中文计划也能抽取任务。review-package / sdd-workspace 与上游逐字节一致。\n\n关联 #89 #19",
          "is_bot": false,
          "headline": "feat(sdd): 同步上游 v6 子智能体驱动开发重写(合并审查者 + scripts/) (#108)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-17T13:04:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9abe32c1d7367e46528912a456589d23bdb79d1a",
          "body": "- 补上赞助商最终文案中的「支持 GLM-5.2」卖点(#105 因暂存区失误合入的是上一版文案)\n- 按原文断句改回短句,体验金一句用 <br><br> 单独成段\n- 简繁两版同步",
          "is_bot": false,
          "headline": "docs(readme): 更新优云智算赞助文案至最终版 (#106)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-15T11:39:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7126feff5e41d74190ae8e130365e2f1d81e882f",
          "body": "- README.md / README.zh-Hant.md 恢复「❤️ 赞助商」版块(沿用 a65c3ed 的双列表格格式),首位赞助商优云智算\n- banner 取自赞助商物料,压至 800×368 / 75KB(原图 1919×884 / 1.2MB),README 显示宽度 380px\n- 原顶部「想赞助支持本项目」单行 callout 并入版块标题,避免同屏重复",
          "is_bot": false,
          "headline": "docs(readme): 新增赞助商 — 优云智算(UCloud) (#105)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-15T11:37:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "970a4373b9f92a846901372a48881a3386a0d580",
          "body": "- 官网页脚「扫码关注」由微信 + 抖音两张码扩为三张,新增 X/Twitter 二维码(扫码/点击直达 x.com/jnMetaCode)\n- 三语(简/繁/EN)同步 qrX 文案;二维码卡与 figcaption 可点击\n- 新增静态资源 qr-x.png(build 时拷入 dist/assets)\n- qr-card 链接样式:继承色、hover 下划线,避免默认蓝色",
          "is_bot": false,
          "headline": "feat(site): 扫码关注区新增 X/Twitter 二维码 (#104)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-14T07:45:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26d581aa5071f537583281cd412536b7b5e3c52a",
          "body": "- README.md / README.zh-Hant.md 顶部新增「v1.7.0 更新亮点」callout(全局安装 / CodeBuddy+CodeArts / 繁体三语),链到 RELEASE-NOTES.zh.md\n- 项目规模表的支持工具列表补上 CodeBuddy(腾讯)/ CodeArts(华为云码道),与标题「20 款」及 v1.7.0 一致",
          "is_bot": false,
          "headline": "docs(readme): 顶部加 v1.7.0 更新亮点 + 工具表补齐至 20 款 (#103)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-14T07:38:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84026e57664cbb4d042f22b816db250f84890d62",
          "body": null,
          "is_bot": false,
          "headline": "docs: 补全 v1.7.0 release note(CodeBuddy/CodeArts/繁体/赞助下架) (#102)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T21:30:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe254ec35f9dd7612577a216aa3d8eabcae5aca6",
          "body": "顶部加语言切换栏(简体中文 | 繁體中文 | English 上游),\n新增完整繁体 README(353 行、与简体版对齐),台港自然术语\n(程式碼/專案/除錯/計畫/全域/檔案/伺服器/相容 等)。\n\n日文不纳入本仓库(仓库定位为「中文增强版」,chinese-* skill 与\n中文 skill 正文对日本用户无意义;日文应作独立 superpowers-ja)。\n\n维护说明:简体 README 改动时需同步繁体版。",
          "is_bot": false,
          "headline": "docs: README 多语言支持 + 繁体(README.zh-Hant.md) (#101)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T14:43:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ba77fa64e56b20d2a5653b0665978d43d868079",
          "body": "把站点从写死 zh/en 重构为语言列表 LANGS 驱动,新增语言只需加一项\n+ 写一个 T.<code> 对象即可 drop-in。首个新增语言:繁体中文。\n\n- LANGS 配置化:首页生成、skill 详情页、语言切换器、hreflang、\n  sitemap 全部按 LANGS 循环\n- 语言切换器从二选一(中文↔EN)改为多语言链接\n- render 分支由 `=== 'zh'` 改为 `=== 'en'`,非英文语言默认走中文内容\n  (繁体 skill 卡片/正文用中文,仅外壳翻译,与 en 站策略一致)\n- T.zht:手写繁体(台港自然用词:軟體/程式碼/專案/預設/除錯/\n[…]\n/使用者/檔案 等;处理 發/後/裡/雲/麵 等一简对多繁),不引入\n  OpenCC 依赖\n- 收尾日志按语言数动态输出\n\n日文暂缓:公开营销文案需母语审校,避免机翻上线砸品牌。\n\n测试:构建 63 页(3 语言 × (首页+20 skill));en/zh 站零回归;\n繁体 htmlLang=zh-Hant、skill 卡片用中文标题、语言切换/hreflang/\nsitemap 三语言齐全。",
          "is_bot": false,
          "headline": "feat(site): 多语言架构 + 繁体(zh-Hant)站点 (#100)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T14:33:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "01319b5b02a01644bce595bfcf5a2f6121ff882c",
          "body": "华为云 CodeArts Doer 的 skills 目录为 .codeartsdoer/skills/(用户在 #20 确认)。\n本次做 skills-only 适配:检测 .codeartsdoer/ 或 --tool codearts 安装,\n靠 CodeArts 自身 skill 发现加载。其 bootstrap/指令文件约定未证实,\n故不生成 bootstrap(docs 已说明,若不自动触发可手动点名 skill)。\n\n- bin: TARGET(.codeartsdoer/skills,检测 .codeartsdoer)+ 别名\n  (codearts/codeartsdoer/huawei)\n- 工具数 19 → 20:README/站点/package/FAQ/stats 同步\n- docs/README.codearts.md(含自动触发的诚实说明 + 求证请求)\n- audit TOOLS 加 codearts\n\n测试:audit 124 PASS/0 FAIL(含 codearts 装/幂等/卸载)、全局套件 50/50\n回归、站点重建工具数 20。",
          "is_bot": false,
          "headline": "feat: 新增华为云码道 CodeArts 支持(skills-only,关 #20) (#99)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T13:56:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd651cd1c62b30a8da20896c2880cc3fd024a6bf",
          "body": "CodeBuddy 加载机制类似同类 IDE:项目根 CODEBUDDY.md 作 bootstrap,\nskills 放 .codebuddy/skills/。仅项目级(用户级加载路径未证实,暂不做全局)。\n\n- bin: 加 TARGET(检测 .codebuddy / CODEBUDDY.md)+ 别名(codebuddy/-cn/-code)\n  + CODEBUDDY.md bootstrap 生成 + 卸载哨兵清理\n- 工具数 18 → 19:README/站点/package.json/FAQ/stats 全量同步\n- docs/README.codebuddy.md 中文使用文档;audit TOOLS 加 codebuddy\n- 站点 FAQ 与工具列表补 CodeBuddy\n\n测试:audit 122 PASS/0 FAIL(含 codebuddy 装/幂等/卸载)、全局套件 50/50\n回归无破、站点重建 42 页工具数 19。",
          "is_bot": false,
          "headline": "feat: 新增 CodeBuddy(腾讯 AI IDE)工具支持(关 #18 #75) (#98)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T13:43:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d423a1aec5599a6959fc5751ca16dc8e0f3235b",
          "body": "site/README.md 仍建议旧域名 superpowers.aibuzhiyu.com,\n实际线上与 SITE_URL/sitemap/canonical 均已是 sp.aiolaola.com,统一。",
          "is_bot": false,
          "headline": "docs(site): 部署文档域名更新为当前线上 sp.aiolaola.com",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T12:36:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a50f0ae9d1e235b862e4d01d54c7173f86f906e",
          "body": "移除 README 与官网的赞助商板块(含 5Cookie Code 展示卡、logo、\n中英文案、.sponsor 样式、资源复制与图片文件)。按需求仅在 README\n保留一行赞助联系方式(jnMetaCode@qq.com),官网 footer 联系邮箱不变。\n\n站点重建 42 页正常、dist 零赞助残留、无悬空引用与破图。",
          "is_bot": false,
          "headline": "chore: 下架赞助商展示,仅保留赞助联系方式",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T12:36:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9c6ca7c898b59b7fc0ad7afaa6b0211bd1047a8",
          "body": "多项目用户此前需逐个项目 npx 安装。新增 --global:一次装到工具的\n用户级目录(如 ~/.claude/skills),所有项目共享,更新只需重装一次。\n项目级(默认)优先、全局兜底,二者可共存。\n\n- 支持全局的 7 款工具,均逐一核对各工具 docs 声明的真实加载路径,\n  不臆造无效路径;其余工具明确报错并引导项目级安装\n- Codex 全局装到 ~/.agents/skills(docs 确认其启动扫描该目录,\n  而非 ~/.codex/skills)\n- Gemini / Antigravity 有意不纳入通用 --global(各有专属全局方式),\n  报错指向对应\n[…]\n模式跳过\n- 版本 1.6.1 → 1.7.0,同步 6 个 plugin manifest\n- 顺带修 package.json description 残留的 159k+ → 250k+\n\n隔离自动化测试 50/50 通过:项目级回归、7 款全局工具装卸、数据保全\n(含全局 CLAUDE.md 保留用户个人指令)、幂等性、非全局工具拒绝并\n指向 docs、自动检测、home 护栏、参数健壮性。",
          "is_bot": false,
          "headline": "feat: 支持全局安装 --global(关 #21)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T12:36:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cc2afbaf1bb9f03b39e4a3cf91db9db70700ae7e",
          "body": "obra/superpowers 已达 252k+,站点与 README 原写 233k+ 偏低。\n统一改为 250k+(取整、随增长仍成立),site/dist 由 CI 部署时重建。",
          "is_bot": false,
          "headline": "chore: 刷新上游 star 数 233k→250k(站点 + README)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T12:36:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3fe5ba31cc4ac383499287a1965d55e23d2c1e2",
          "body": null,
          "is_bot": false,
          "headline": "chore: 同步上游 v6.1.0/v6.1.1(bootstrap 精简 + Codex 插件清单修复)(#94)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-07-13T12:30:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b72378bb1d7153cbfa31ae7316300d353866d62e",
          "body": "feat(site): 导航补「支持工具」+「学习」入口",
          "is_bot": false,
          "headline": "Merge pull request #81 from jnMetaCode/feat/nav-tools-learn",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-23T15:29:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "960bf78e68c8d6112d6a9ca0dd502410322ab2c5",
          "body": "- 支持工具(#tools):i18n 和区块本就有、但漏在导航里,补上\n- 学习 ↗:链到 aiOlaOla 学习平台(带 utm_source=sp1 来源追踪)\n导航:特性/安装/Skills/支持工具/FAQ/学习/GitHub/语言/主题",
          "is_bot": false,
          "headline": "feat(site): 顶部导航补「支持工具」+「学习」入口",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-23T15:29:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "89f41829b24e175f2955829f58946f87cc3286b3",
          "body": "fix(site): HTML no-store 防边缘缓存",
          "is_bot": false,
          "headline": "Merge pull request #80 from jnMetaCode/fix/html-no-store",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T20:52:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adcf60f4a55c4e66fd51a486f6441e141eda7319",
          "body": null,
          "is_bot": false,
          "headline": "fix(site): HTML 用 Cache-Control no-store,尝试绕过 zone Browser Cache TTL 覆盖",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T20:52:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d9abe7191b52b0b5219a23d85de641204a58e6ab",
          "body": "fix(site): clean URL HTML 不再被边缘缓存",
          "is_bot": false,
          "headline": "Merge pull request #79 from jnMetaCode/fix/cache-clean-urls",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T20:29:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bdec5dae71c4de259e4922808e96499401b9619",
          "body": "之前不缓存规则是 /*.html,只匹配 .html 结尾路径;但 Cloudflare 服务的是\nclean URL(/、/skills/x、/en/x,不带 .html),这些 HTML 没拿到 no-cache 头\n→ 被边缘缓存 → 部署后用户仍看到旧内容(如刚加的 aiOlaOla CTA 不显示)。\n\n改为:/* 默认 max-age=0 must-revalidate(覆盖所有 clean URL HTML);带版本\n号的 styles.css/app.js 与 /assets/* 由更具体规则覆盖为长缓存 immutable。",
          "is_bot": false,
          "headline": "fix(site): clean URL 的 HTML 不再被边缘缓存(修复看到旧内容)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T20:28:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5706d8d473c159d46d9a5444b93a6ebeb4bcd054",
          "body": "feat(site): aiOlaOla 学习 CTA + utm_source=sp1 来源标记",
          "is_bot": false,
          "headline": "Merge pull request #78 from jnMetaCode/feat/aiolaola-cta-utm",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T20:25:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18ff5715518b4280b3b3a71e60458f1758147712",
          "body": "- 首页 CTA 区新增\"免费学 AI 编程 · aiOlaOla\"主按钮(书改为次按钮)\n- 页脚生态区 aiolaola 链接带 utm_source=sp1\n- 全部用 apex aiolaola.com(避免 www→apex 308 跳转),UTM 让 aiOlaOla\n  的 GA 能识别来自 sp.aiolaola.com 的流量(source=sp1)",
          "is_bot": false,
          "headline": "feat(site): 加 aiOlaOla 学习平台 CTA + 来源标记 utm_source=sp1",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T20:25:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f0d0cec8d2ba65694d19e6623722da4075fe541",
          "body": "feat(site): 百度站长验证 meta",
          "is_bot": false,
          "headline": "Merge pull request #77 from jnMetaCode/feat/baidu-verify",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T19:55:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ab4e559492195b5aad18156f3b7f7a55eae929c",
          "body": null,
          "is_bot": false,
          "headline": "feat(site): 加百度站长验证 meta (codeva-5WLzyP9gcN)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T19:55:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "619497730e8c424cedf2adcfaa53402498af4b89",
          "body": "feat(site): 补齐 SEO(robots/sitemap/canonical/hreflang/og)",
          "is_bot": false,
          "headline": "Merge pull request #76 from jnMetaCode/feat/site-seo",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T18:02:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e272c1dba47c26a29d103fddf85ab5f3db8d627",
          "body": "之前站点缺 SEO 基建,搜索引擎难发现/收录。本次补齐:\n- robots.txt(allow all + Sitemap 指向)\n- sitemap.xml(42 个页面:中/英首页 + 20 skill × 2 语言,带 lastmod/priority)\n- 每页 <link canonical>(clean URL)\n- hreflang 中英互链 + x-default(双语站正确归类)\n- og:url / og:image / twitter:card\n\n验证:重建 42 页;robots/sitemap 生成;详情页 SEO 标签齐全;CSP 126\n内联脚本 0 缺失,不受影响。",
          "is_bot": false,
          "headline": "feat(site): 补齐 SEO 基础设施(robots/sitemap/canonical/hreflang/og)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-22T18:02:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "384838150f1ba1e193ed2ca1b2dc36d5c1033972",
          "body": "fix(site): 资源用绝对路径,根治相对路径导致样式丢失",
          "is_bot": false,
          "headline": "Merge pull request #73 from jnMetaCode/fix/site-absolute-asset-paths",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-20T02:39:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3e3b3684c34ae194d4222341ad2cd2b4bb0a404",
          "body": "详情页/子路径页面若相对引用 styles.css/app.js,在某些情况下(如缓存旧\nHTML、Cloudflare 把不存在路径回退成 200-HTML)会解析到 /skills/styles.css\n等不存在的路径,返回 HTML 而非 CSS,叠加 X-Content-Type-Options: nosniff\n被浏览器拒绝应用 → 整页无样式。\n\n站点部署在域名根,改为绝对路径根治:styles.css / app.js / favicon /\nbrand svg / 扫码二维码 全部 ${base}X → /X,与页面层级/缓存无关、永远正确。\n页面导航链接保持 ${base}(跨语言导航逻辑不变)。\n\n验证:重建 42 页,详情页/EN 资源均为 / 绝对路径,无相对 CSS 引用;\nCSP 126 内联脚本 0 缺失。",
          "is_bot": false,
          "headline": "fix(site): 资源用绝对路径,根治相对路径导致的样式丢失",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-20T02:39:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f54d7363df9faffc8f868ea1897ab637eb97dcad",
          "body": "对齐上游 v6.0.0 移除固定 N-任务审查检查点的理念(与 #58 SDD 同方向):\n\"每完成 3 个任务后暂停回顾\" → \"执行过程中持续留意\"。纳入 v1.6.0。",
          "is_bot": false,
          "headline": "sync(v6): executing-plans 用\"持续自查\"替代\"每3任务暂停审查\"",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-20T02:18:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8d9c9cb011353f2a4e7fd8fdf4bceac3394e64f",
          "body": "对齐上游 v6.0.0 实质变更 + 新增 Kimi/Pi 两款 harness 支持:\n- Kimi Code 支持(#59,关 #37)\n- Pi (oh-my-pi) 支持(#60,关 #44)\n- brainstorm 可视化伴侣安全模型(#58,每会话密钥 + 安全头)\n- worktree 移除旧全局目录(#57)+ hooks/session-start v6(#58)\n- opencode 测试修复(#72)\n\n版本号同步:package.json + 5 个 plugin 清单 + marketplace + gemini-extension。",
          "is_bot": false,
          "headline": "chore(release): v1.6.0",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-20T02:17:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1d63a6a64796def50d770c6a6c60e7273753dd8",
          "body": null,
          "is_bot": false,
          "headline": "docs: aiOlaOla CTA 链接补 UTM 来源追踪",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-20T01:47:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df5e7d4cbe1a3f59ee260be7c338eaa684edbc39",
          "body": "fix(test): opencode setup.sh 不再拷不存在的 lib/",
          "is_bot": false,
          "headline": "Merge pull request #72 from jnMetaCode/fix/opencode-test-setup",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-20T01:09:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b494acfa12175164def4c58e31e33f3ac9bd2218",
          "body": "tests/opencode/setup.sh 从上游照搬了 `cp -r $REPO_ROOT/lib`,但本 fork\n没有 lib/ 目录,导致 test-plugin-loading.sh 在 setup 阶段就 cp 失败、\n整个 opencode 测试套件飘红(既有问题,CI 不跑、不拦门)。\n\n本 fork 的 opencode 插件(.opencode/plugins/superpowers.js)自包含、\n仅 readFileSync 读取 ../../skills,不依赖 lib,故删除该多余拷贝。\n\n验证:bash tests/opencode/run-tests.sh → STATUS: PASSED(1 passed/0 failed)。",
          "is_bot": false,
          "headline": "fix(test): opencode setup.sh 不再拷不存在的 lib/",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-20T01:09:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f04ef713ead73389665f5b7b1428859eeb015885",
          "body": "feat(pi): 新增 Pi (oh-my-pi) harness 支持(关 #44,对齐上游 v6.0.0)",
          "is_bot": false,
          "headline": "Merge pull request #60 from jnMetaCode/sync/v6-pi-harness",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T23:24:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3349d47c631b71afaf0e8542aae1232d31839f2",
          "body": "# Conflicts:\n#\tREADME.md",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into sync/v6-pi-harness",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T23:24:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "483621d8bdb8a3c14510df2f8df73befa003faa1",
          "body": "feat(kimi): 新增 Kimi Code harness 支持(关 #37,对齐上游 v6.0.0)",
          "is_bot": false,
          "headline": "Merge pull request #59 from jnMetaCode/sync/v6-kimi-harness",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T23:22:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c72ab425b6065494270c1c391b364bb9c072453d",
          "body": "sync(v6): 移除旧全局 worktree 目录引用,对齐上游 v6.0.0",
          "is_bot": false,
          "headline": "Merge pull request #57 from jnMetaCode/sync/v6-worktree-cleanup",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T23:21:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df9214dc6cc8a02cc0e66664bec8eb0fdd5b98b3",
          "body": "sync(v6): brainstorm 安全模型 + hooks/session-start 对齐上游 v6.0.0(修复 main 审计红)",
          "is_bot": false,
          "headline": "Merge pull request #58 from jnMetaCode/sync/v6-brainstorm-hooks",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T23:19:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f09539cbe1488fa24af0222c52b52aca69e6e78",
          "body": "交流段:公众号二维码改左右紧凑布局",
          "is_bot": false,
          "headline": "Merge pull request #70 from jnMetaCode/chore/wechat-qr-layout",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T23:05:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19e758e7658ef0a433c2ce1238867c03d17e5a83",
          "body": "aiolaola 块从顶部移回正文",
          "is_bot": false,
          "headline": "Merge pull request #71 from jnMetaCode/chore/aiolaola-top-to-body",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T23:04:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "600795e88e1e5add8d5e48319eb351c2edcc5186",
          "body": "去掉顶部 aiolaola:start/end 块,把免费配套学习放回正文原位置(含本仓钩子)。",
          "is_bot": false,
          "headline": "docs: aiolaola 块从顶部移回正文(顶部太靠前压住标题)",
          "author_name": "AI不止语",
          "author_login": "asdtasdt",
          "committed_at": "2026-06-19T22:56:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f1b32c827d6a4a46175b0ce68c4c9060f0c4bbf",
          "body": "二维码与公众号文字/渠道并排,不再竖排占大段高度。原渠道内容全保留。",
          "is_bot": false,
          "headline": "docs: 交流段公众号二维码改左右紧凑布局(省竖向空间)",
          "author_name": "AI不止语",
          "author_login": "asdtasdt",
          "committed_at": "2026-06-19T22:16:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c68a9ebeb6645f4d9a018d541cc0a1b4b642e85c",
          "body": "去重:删正文里重复的免费配套学习行(顶部标记块已有)",
          "is_bot": false,
          "headline": "Merge pull request #69 from jnMetaCode/chore/dedup-aiolaola-block",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T22:11:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07aaf695d695f8d6b465407e2303a0fe80c2e542",
          "body": null,
          "is_bot": false,
          "headline": "docs: 去掉正文里重复的免费配套学习行(顶部 aiolaola 标记块已有)",
          "author_name": "AI不止语",
          "author_login": "asdtasdt",
          "committed_at": "2026-06-19T22:04:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff99c5528953363c571ef57a50242a9039cacdb8",
          "body": "feat(site): 页脚+README 扫码关注(公众号+抖音二维码)",
          "is_bot": false,
          "headline": "Merge pull request #68 from jnMetaCode/feat/follow-qr",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T22:04:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc1148887e3af899f49dd0ee8183b9cac2c57fd6",
          "body": "- 官网页脚新增\"扫码关注\"区块:公众号 AI不止语 + 抖音 @AI不止语(AIBZY)\n  两张二维码并排展示(中英 i18n + 响应式)\n- README 交流区在公众号文案处嵌入公众号二维码\n- 二维码自托管于 assets/,CSP img-src 'self' 已允许,无需放行外域\n\n资源:site/template/assets/qr-{wechat,douyin}.jpg(站点)、assets/qr-wechat.jpg\n(README);build.mjs 增加拷贝逻辑 + 页脚 figure 区块 + i18n 文案;\nstyles.css 增加 .foot-qr/.qr-card 样式。\n\n验证:重建 42 页;两张 QR 拷入 dist;页脚区块生成;CSP 不受影响。",
          "is_bot": false,
          "headline": "feat(site): 页脚 + README 增加扫码关注(公众号 + 抖音二维码)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T22:04:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54d0e94776130e1e2ea6371e91f799d8da7133c7",
          "body": "feat(site): 接入 Google Analytics (G-L02QK4EVDL) + CSP 放行",
          "is_bot": false,
          "headline": "Merge pull request #67 from jnMetaCode/feat/google-analytics",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:56:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f494d818e6b1bad47ca092236291f00e3a94a26",
          "body": "在每页 <head> 加入 gtag.js(异步加载器 + 内联 config)。\n\n同步放行严格 CSP(否则 GA 被拦):\n- script-src 增加 https://www.googletagmanager.com(加载器);内联 config\n  块由 CSP hash 收集器自动加白名单\n- connect-src 增加 google-analytics / analytics.google / googletagmanager\n  (上报埋点)\n- img-src 增加 google-analytics / googletagmanager(beacon)\n\n验证:重建 42 页;GA 代码在 head;CSP 含上述域名;全站 126 处内联脚本\nhash 全命中 CSP(0 缺失,站点不被打断、GA 内联可执行)。",
          "is_bot": false,
          "headline": "feat(site): 接入 Google Analytics (gtag.js, G-L02QK4EVDL)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:56:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1b0cbe41157d38404c80a0ce3ec256240c69d46",
          "body": "fix(site): CSS/JS 内容 hash 版本号,根治边缘缓存样式不更新",
          "is_bot": false,
          "headline": "Merge pull request #66 from jnMetaCode/fix/css-cache-busting",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:52:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3933c228589e7dc226fb08c373f3be08985ef0f4",
          "body": "问题:styles.css/app.js 设了 max-age=86400,Cloudflare 边缘缓存旧版,\n部署 CSS 改动后用户仍看到旧样式(详情页排版修复一度不可见)。\n\n修复:HTML 引用改为 styles.css?v=<hash> / app.js?v=<hash>,hash 取文件\n内容 sha256 前 10 位。内容变→URL 变→边缘按新 key 取新文件(立即生效);\n内容不变→URL 不变→继续命中长缓存。HTML 本身 max-age=0 始终新鲜,\n保证总是引用到最新版本号。\n\n验证:重建 42 页,首页与详情页 CSS/JS 引用均带 ?v=hash。",
          "is_bot": false,
          "headline": "fix(site): CSS/JS 加内容 hash 版本号,根治边缘缓存导致的样式不更新",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:52:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e1c14551e3fff720b2ed936c0b836c67709d183",
          "body": "fix(site): 详情页排版居中 + star 233k + 页脚加 X/Twitter",
          "is_bot": false,
          "headline": "Merge pull request #65 from jnMetaCode/docs/update-star-count",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:47:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ceb92f3536a8ca3b3a3a504cc8c318739b0c520c",
          "body": "- styles.css: .doc 容器补 margin:0 auto + 左右 24px 内边距,修复 skill\n  详情页正文紧贴左边缘、右侧大片空白的排版问题\n- build.mjs / README: 上游 star 数 159k+ → 233k+(实际 233,268)\n- build.mjs: 页脚生态区新增 X / Twitter(https://x.com/jnMetaCode)\n\n验证:重建 42 页;.doc 居中边距生效;无 159k 残留;X/Twitter 入页脚。",
          "is_bot": false,
          "headline": "fix(site): 详情页排版居中 + star 数更新 233k + 页脚加 X/Twitter",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:47:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48fc58f41e60862a2d1dac0fe6e18d62a59279b0",
          "body": "docs(site): 去掉 fork 框定与上游链接,页脚增加生态/社区入口",
          "is_bot": false,
          "headline": "Merge pull request #64 from jnMetaCode/site/footer-update",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:36:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4340c987b20aabeb003cbb70bb396bf34592f5b4",
          "body": "按项目方要求,官网不再以\"基于 obra/superpowers 的中文增强 fork\"自我定位:\n- 页脚版权改为 © 2026 superpowers-zh · MIT License(中英)\n- 移除页脚资源区的\"上游 obra/superpowers\"链接(中英)\n- FAQ\"和上游关系\"条改写为\"superpowers-zh 有哪些独特价值\",以独立中文\n  项目视角介绍,不再用 fork 框定(中英)\n- 页脚新增「生态」列:aiOlaOla(从零学会 AI 编程)、公众号 AI不止语、\n  姐妹项目;「社区」列新增联系邮箱\n\n验证:重建 42 页;页脚/FAQ 的 fork 字样与上游链接已清除;新链接均已注入。",
          "is_bot": false,
          "headline": "docs(site): 去掉 fork 框定与上游链接,页脚增加生态/社区入口",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:36:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e44f43c044e6dd9e9145b954d4ba50638f88fb5",
          "body": "docs: README 顶部增加官网徽章(sp.aiolaola.com)",
          "is_bot": false,
          "headline": "Merge pull request #63 from jnMetaCode/docs/site-link",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:22:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d81febfe96ddae07e3a4ad3118c387c2856611f0",
          "body": "官网已上线 https://sp.aiolaola.com(Cloudflare Pages,中英双语,\n20 个 skill 在线浏览)。在徽章区首位加官网入口,便于用户访问。",
          "is_bot": false,
          "headline": "docs: README 顶部增加官网徽章(sp.aiolaola.com)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:22:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05238fb875a2b1c23fed77b158aa6c85d68f9978",
          "body": "fix(ci): 部署前确保 Cloudflare Pages 项目存在(修复首次部署 Project not found)",
          "is_bot": false,
          "headline": "Merge pull request #62 from jnMetaCode/fix/site-deploy-bootstrap",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:04:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09af7860f3c82ef10f169771e3d33b1fa7b645af",
          "body": "首次部署因 \"Project not found\" 失败——wrangler pages deploy 不会自动\n创建项目。新增一步 wrangler pages project create(幂等,已存在则跳过),\n用已配置的 CLOUDFLARE_API_TOKEN(含 Pages:Edit 权限)自动建项目,\n使 CI 全自动完成\"建项目 + 部署\",无需手动在面板创建。",
          "is_bot": false,
          "headline": "fix(ci): 部署前确保 Cloudflare Pages 项目存在",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T21:04:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc5841fd0a5febc967d918adaa2759dc6a63c371",
          "body": "feat(site): 新增项目官网(静态站点 + Cloudflare Pages 自动部署)",
          "is_bot": false,
          "headline": "Merge pull request #61 from jnMetaCode/feat/site",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T20:51:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e26c26f3df98b498fdcff882402b77c15e0e4b6c",
          "body": "部署 job 持有可写的 Cloudflare API token,第三方 action 用可变标签\n(@v3 等)存在标签劫持/供应链风险。改为 commit SHA 固定,附版本注释:\n\n- actions/checkout@34e1148… # v4\n- actions/setup-node@49933ea… # v4\n- cloudflare/wrangler-action@9acf94a… # v3\n\nSHA 与 GitHub 当前标签解析一致(checkout/setup-node 的 SHA 也与既往\nCI 日志中运行器解析的值吻合)。YAML 已校验合法。",
          "is_bot": false,
          "headline": "harden(ci): deploy-site workflow 的 action 全部 SHA 固定(供应链加固)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T20:18:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0aa3344f6fdc175ba4fab7768bcae21562240c36",
          "body": "安全审核发现两处防御纵深缺口(当前内容可信、非活跃漏洞,但公开站应补齐):\n\n1. 部署站 _headers 此前只有 Cache-Control,缺所有安全响应头。\n   现新增全站 /* 头:\n   - Content-Security-Policy:default-src 'self';script-src 'self' + 本站\n     内联脚本的 SHA-256 hash(构建时从生成 HTML 实测,禁用 unsafe-inline/\n     unsafe-eval 又不误伤自有脚本);style-src 'self';object-src 'none';\n     base-\n[…]\nta:/vbscript: 等可执行 scheme,并转义引号防\n   属性逃逸。\n\n验证:重建 42 页成功;独立核验全站 84 处内联脚本的 hash 全部命中 CSP\n白名单(0 缺失 → CSP 不会打断站点);链接净化单测 5/5(正常/锚点/相对\n保留,javascript:/data: 中和为 #);站点正常外链完好。外部资源仅 <a>\n导航链接,不受 default-src 影响。",
          "is_bot": false,
          "headline": "harden(site): 站点安全加固——严格 CSP + 安全响应头 + 链接 scheme 净化",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T20:16:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c8a4ebd93085176ee1607440fd7ad1841963557c",
          "body": "为 superpowers-zh 增加官方站点:用 site/build.mjs 从 skills/ 与模板生成\n中英双语静态站(42 页:中/英首页 + 20 skill × 2 语言详情),部署到\nCloudflare Pages。\n\n- site/build.mjs + site/md.mjs + site/template/:站点生成器源码\n- site/README.md:站点说明\n- .gitignore:忽略 site/dist/(构建产物不入库,CI 重建)\n- .github/workflows/deploy-site.yml:push 到 main 且 site/ 或 sk\n[…]\ne\n  (需仓库 Secrets:CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID)\n- package.json:加 site / site:deploy 脚本\n\n验证:node site/build.mjs 构建成功,生成 42 页到 site/dist;\nsite/dist 已确认被 gitignore 排除、未入库;build.mjs 无硬编码密钥。",
          "is_bot": false,
          "headline": "feat(site): 新增项目官网(静态站点生成 + Cloudflare Pages 自动部署)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T20:06:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c354572305e807891e5b480e00ecebad5afb7af8",
          "body": null,
          "is_bot": false,
          "headline": "docs: 顶部加 aiOlaOla 免费配套学习 CTA + 姐妹项目互链",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T19:44:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4909388f3517a6f66c45dfe455b7b2d0eea30e4a",
          "body": "issue #44:Pi 像 opencode 一样开放,skill:// 能直接用,已验证可手动使用,\n希望原生支持。上游 obra/superpowers 在 v6.0.0 已用扩展模型原生集成 Pi,\n本提交把同样的集成方式落到本 fork。\n\nPi 走扩展模型,通过 package.json 的 pi 字段声明,直接指向仓库现有\nskills/,不复制 skill、无运行时依赖。扩展内容中立——读取 fork 现有的\n中文 using-superpowers/SKILL.md 自动注入,故扩展代码逐字节照搬上游。\n\n- .pi/extensions/superpowers.ts:注册 \n[…]\n 静态 0 FAIL;README→docs/README.pi.md 链接可解析。\n\n注:扩展是 TS(仅 import type,运行时无类型依赖),Node 22.6–23.5 需\n--experimental-strip-types(run-tests.sh 已带),23.6+ 默认支持。\nPi 内实际 skill 触发需在 Pi 内验证(与本 fork 其它 harness 同样限制)。",
          "is_bot": false,
          "headline": "feat(pi): 新增 Pi (oh-my-pi) harness 支持(关 #44,对齐上游 v6.0.0)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T18:53:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af4c03c1e059f7eb552df7c7b3e15a752964a0fd",
          "body": "issue #37:Kimi Code 已支持 Skills 能力,希望原生支持。上游 obra/superpowers\n在 v6.0.0 已用插件清单模型原生集成 Kimi,本提交把同样的集成方式落到本 fork。\n\nKimi 走插件清单模型(与 CC plugin 同类),直接指向仓库现有 skills/,\n不复制 skill、不建 symlink、不装 hook、无运行时依赖,因此无需改 npx\n安装器(安装器面向需要复制 skills 的工具)。\n\n- .kimi-plugin/plugin.json:fork 品牌清单,skills 指向 ./skills/,\n  sessionSt\n[…]\nests.sh 通过;manifest 合法 JSON;版本同步双机制\n均含 kimi 条目;scripts/audit.sh 静态校验 0 FAIL;README→docs/README.kimi.md\n链接可解析。\n\n注:Kimi 实际 skill 自动触发需在 Kimi Code 内验证(与本 fork 其它 harness\n同样限制),清单结构已对齐上游 v6.0.0 经过验证的集成方式。",
          "is_bot": false,
          "headline": "feat(kimi): 新增 Kimi Code harness 支持(对齐上游 v6.0.0 集成模型)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T18:37:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8ca12c26e35e230318066321f6b63f1dd0c00c1d",
          "body": "上游 v6.0.0 给 brainstorm 可视化伴侣服务器重写了安全模型:之前服务器\n监听 loopback 但无任何鉴权,任意本地浏览器标签页都能读取 brainstorm\n屏幕/文件、或向正在运行的 agent 会话注入事件(prompt injection)。新模型\n用每会话密钥(?key=<token> 或会话 cookie)门禁所有端点,并加一组安全头\n(X-Frame-Options: DENY、CSP frame-ancestors none、Cross-Origin-Resource-Policy\nsame-origin 等)。本 fork 此前停留在旧无鉴权版本。\n\n改动\n[…]\nrotocol 32 / helper 15 / browser-launcher 3 / auth 20 / branding 7 /\nserver 33 / lifecycle 13 / start 4 / stop 7,0 failed)。所有 17 个文件\n与上游 main 逐字节一致。\n\n修复 CI「全量审计」中 brainstorm script 漂移项。关联 #19(v6 同步追踪)",
          "is_bot": false,
          "headline": "sync(v6): brainstorm 可视化伴侣安全模型 + 测试套件对齐上游 v6.0.0",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T17:57:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "316e8314769c492288147acee862bf5057258470",
          "body": "- 移除 legacy ~/.config/superpowers/skills 迁移警告块及其 warning_escaped\n  注入(上游 v6.0.0 已删;与 v6 清理 ~/.config/superpowers/ 一致)\n- 三处 printf 输出补 | cat,对齐上游输出行为\n\n验证:与上游 v6.0.3 逐字一致;实际运行 hook,三个平台分支\n(CURSOR_PLUGIN_ROOT / CLAUDE_PLUGIN_ROOT / COPILOT_CLI) 均输出合法\nJSON(字段分别为 additional_context / hookSpecificOutput.additionalContext\n/ additionalContext)。注入内容仍为本 fork 的中文 using-superpowers SKILL.md。\n\n关联 #19(v6 同步追踪)",
          "is_bot": false,
          "headline": "sync(v6): hooks/session-start 对齐上游 v6.0.0",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T17:48:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8dc606d3ecb850906aee971890ea42a4b269153f",
          "body": "配套学习文案统一(免费 + 统一书名)",
          "is_bot": false,
          "headline": "Merge pull request #56 from jnMetaCode/chore/aiolaola-unify",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T15:34:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b0cdda5a282fd48a9acd3545ca7a2c37a7a36cc",
          "body": "链接文字用「从零学会 AI 编程」,统一书名《AI 编程实战三卷书》,与其他仓对齐。",
          "is_bot": false,
          "headline": "docs: 配套学习文案统一(从零学会 AI 编程 + 书名《AI 编程实战三卷书》)",
          "author_name": "AI不止语",
          "author_login": "asdtasdt",
          "committed_at": "2026-06-19T15:21:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf5f6da176dd46c0f128c36ff0656d9e67680aea",
          "body": "上游 v6.0.0 废弃了 ~/.config/superpowers/worktrees/ 全局目录,worktree\n统一落到项目内 .worktrees/。本提交同步该行为变更:\n\n- using-git-worktrees: 删除目录选择中的全局目录分支、安全验证豁免说明、\n  创建代码块里的全局路径分支及快速参考表行;目录优先级表述改为\n  「明确 instructions > 现有项目本地目录 > 默认」。顺带修复既有的步骤\n  编号缺口(0,1,3,4 → 0,1,2,3)并校正 3 处步骤交叉引用,使其与上游\n  v6.0.3 标题结构逐行对齐。\n- finishing-a-development-branch: 两处 worktree 清理判定移除全局目录。\n\n验证:scripts/audit.sh 78 PASS / 0 FAIL;与上游 v6.0.3 原文标题结构\n对齐;两文件无 ~/.config/superpowers 残留。description 未改,skill\n触发行为不变。\n\n关联 #19(v6 同步追踪)",
          "is_bot": false,
          "headline": "sync(v6): 移除旧全局 worktree 目录引用,对齐上游 v6.0.0",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T12:23:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4ec471513882d5068aad8e8e1557718d14837d0",
          "body": "配套阅读链接改为 aiOlaOla 平台 (aiolaola.com)",
          "is_bot": false,
          "headline": "Merge pull request #55 from jnMetaCode/chore/aiolaola-link",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-19T02:43:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6fa4084156688394bde79ba7e9d395cd00b34a7",
          "body": "原指向单本书 book.aibuzhiyu.com,改为母平台 aiOlaOla:\n180 节免费课 + 《方法论三卷书》+ 实战社区,一个账号解锁全部。",
          "is_bot": false,
          "headline": "docs: 配套阅读改为 aiOlaOla 平台(aiolaola.com)",
          "author_name": "AI不止语",
          "author_login": "asdtasdt",
          "committed_at": "2026-06-19T02:40:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc3be50f83ea7fbd6638ea565c659de8ad097774",
          "body": null,
          "is_bot": false,
          "headline": "docs: 相关项目生态新增 codepet(码宠 桌面养成桌宠),项目数更正为八个",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-17T20:50:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83083ba324b7ff47b4dcb491ca5f2403440c1b57",
          "body": "#51 把 README 链接改成 docs/README.agents.md,但实际文档文件仍是\ndocs/README.antigravity.md(PR 只就地改了内容、未改文件名),导致 404。\n将链接指回真实文件名。bin 与文档内容已统一为 .agents/skills(经官方文档核实)。",
          "is_bot": false,
          "headline": "docs(readme): 修复 Antigravity 安装指南死链 (#51 跟进)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-16T22:49:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d504ed756597f272c73d672e3dc36a34573d54f",
          "body": "参考官方文档https://antigravity.google/docs/skills,将引导目录从.antigravity修改为.agents",
          "is_bot": false,
          "headline": "fix(Antigravity): 修复Antigravity安装引导文件目录错误问题 (#51)",
          "author_name": "Drolese",
          "author_login": "Drolese",
          "committed_at": "2026-06-16T22:48:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "952fc29a39a65df6c374944215003e61816465c9",
          "body": "…(#49)\n\nHermes Agent convention requires SKILL.md frontmatter to include\nversion, license, and metadata.hermes.tags (see skill-authoring.md).\nAll 20 skills in this repo were missing these fields.\n\nThis fix adds:\n- version (1.0.0)\n- license (MIT)\n- metadata.hermes.tags (auto-generated per skill)\n\nAudited by: Hermes Skill Auditor (30 rules x 100 points)\nBefore: avg 60/100 (C grade) -> After: avg 70/100 (B grade)\n\nCo-authored-by: shunfeng8421 <shunfeng8421@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: add version, license, and metadata.hermes.tags to all 20 skills …",
          "author_name": "blueQ",
          "author_login": "shunfeng8421",
          "committed_at": "2026-06-16T22:45:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76019ce9d68cb0248b09e9787c9a1316efbd6adf",
          "body": "零参数 npx superpowers-zh 自动检测不到任何工具目录时,原本会静默兜底\n安装到 .claude/skills/。但 Antigravity / Trae 等工具不一定在项目里留下\n检测目录(如 .antigravity/),这些工具的用户因此被误装成默认目标,且因\n文件实际落在 .claude/ 而非预期目录,卸载时显示成功但文件依旧存在。\n\n改为:检测落空时明确报错并列出 --tool 用法后退出,不做任何安装。\n带 .claude/ 目录的项目仍会被自动检测命中,裸命令安装行为不变。\n\n修复 #33。",
          "is_bot": false,
          "headline": "fix(install): 检测落空时不再静默兜底安装 (#33) (#43)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-16T22:45:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26d157fc0835c59cd953119f922810379d323047",
          "body": null,
          "is_bot": false,
          "headline": "docs: 相关项目生态新增 local-agent-toolkit;本仓库 skills 支持 skillet 一键安装",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-12T23:20:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75aea1834c81b38b30872105983431a4aeffe1fc",
          "body": null,
          "is_bot": false,
          "headline": "Merge: 新增赞助商版块 5Cookie Code + 效果对比表移位",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-12T22:12:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bff7ec29c98d166b054c1feb6d18e1011596775",
          "body": null,
          "is_bot": false,
          "headline": "docs(readme): 效果对比表移到「这是什么?」章节下",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-12T22:11:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a65c3ed0dcac8b9e18f189ee93f23e33ca344d40",
          "body": "在「这是什么?」上方新增「❤️ 赞助商」版块,首位赞助商\n5Cookie Code(logo + 描述 + aff 链接),标题旁附招赞助语。",
          "is_bot": false,
          "headline": "docs(readme): 新增赞助商版块 — 5Cookie Code",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-12T22:09:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a388c685165cf9451ae280d70a8a9b5e794cc64",
          "body": "安装器实际把各 skill 复制到 .trae/skills/,并在\n.trae/rules/superpowers-zh.md 生成 bootstrap 规则。旧文档让用户把\nskills 往 .trae/rules/ 拷,会误导。对齐安装器真实行为,并注明手动复制\n不会生成自动触发规则。",
          "is_bot": false,
          "headline": "docs(trae): 修正手动安装路径 .trae/rules → .trae/skills",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-06-02T12:51:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5d64cd2678ab94acd735673e6279b42b5658019",
          "body": "- .gitignore: 加 .qoder/ 和 .trae/(这两个工具走 bootstrap 模式,\n  会在仓库根目录写 <tool>/rules/superpowers-zh.md + <tool>/skills/,\n  之前漏配导致本地装一次就有 21 个 untracked 项)\n- package.json: repository.url 加 git+ 前缀,消掉 npm publish 的\n  auto-correct warning(npm 端 v1.5.0 已被自动 corrected 入库,\n  此修复仅影响本地 manifest,不需要发 patch)",
          "is_bot": false,
          "headline": "chore: 补 .gitignore 漏配 + 修 repository.url 格式",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-24T09:32:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3202b18e430631d76276c16b94cf642754a552ee",
          "body": "- package.json + 5 个 plugin manifest: 1.4.0 → 1.5.0\n- RELEASE-NOTES.zh.md: 新增 v1.5.0 段,描述 Qoder 适配、Rules schema\n  来源说明、设计取舍\n- skills/using-superpowers/references/qoder-tools.md: 新增工具映射 ref\n  (Qoder 大部分工具同名 CC,仅 EnterPlanMode → EnterSpecMode 差异;\n  附 Task agent 类型表 + Quest MCP 工具清单)\n- skills/using-sup\n[…]\n发版前验证:\n- 6 处版本号全部 1.5.0\n- 18 款工具 install + 二次幂等 + uninstall 全跑通\n- bootstrap 工具(Qoder + Trae)rule 文件内容正确写入与卸载清理\n- audit 96 PASS / 0 FAIL\n- npm pack --dry-run 确认 docs/README.qoder.md + qoder-tools.md 入包",
          "is_bot": false,
          "headline": "chore: release v1.5.0 — Qoder 适配 + qoder-tools.md ref",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-20T21:56:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "725977b4222a7cabb04b36ace27e0544ad498abe",
          "body": "closes #26, closes #34\n\n## 改动\n\n- bin/superpowers-zh.js: TARGETS 加 Qoder (`.qoder/skills`, detect `.qoder`),\n  TOOL_ALIASES 加 `qoder`,新增 `generateQoderBootstrap()` 生成\n  `.qoder/rules/superpowers-zh.md`(`trigger: always_on` + `alwaysApply: true`)\n- scripts/audit.sh: TOOLS 加 qoder,17→18\n- 3 个 plugin ma\n[…]\n隐式匹配。\n\n## 验证\n\n- 端到端:--tool qoder 装、自动检测、二次幂等、卸载(20 skills + 1 bootstrap\n  全部清掉,0 残留)\n- bootstrap 文件 skill 列表(20)与实际 skills/ 目录数(20)一致\n- 全量 audit: 96 PASS / 0 FAIL(18 款工具完整 install + 幂等 + uninstall 跑通)",
          "is_bot": false,
          "headline": "feat: 加 Qoder 适配(第 18 款工具)— skills + always_on bootstrap rule",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-20T16:56:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2399664f11a431aaed3c6d1f86af73e1e5c77872",
          "body": "新仓库:https://github.com/jnMetaCode/ai-shortfilm-prompts\n内容:Mx-Shell《丧尸清道夫》5 段式视频提示词方法论\n适用:Seedance / 小云雀 / Sora / 可灵 / 即梦等模型",
          "is_bot": false,
          "headline": "docs: 在姊妹项目表加 ai-shortfilm-prompts",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-18T16:40:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e79a147b085b65dbb0232de004b442197a1de73",
          "body": null,
          "is_bot": false,
          "headline": "docs: add cross-link banner to AI 编程实战三卷书",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-14T16:09:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a8d4e471ef178089c133118f64571f66a11ec33",
          "body": "* docs(meta): 修 \"6 中国原创\" 文案漂移,准确反映 14+4+2 拆分\n\n5 处描述把 skill 数量写成 \"14 翻译 + 6 中国原创\",但实际只有 4 个 chinese-*\n(chinese-code-review / chinese-commit-conventions / chinese-documentation /\nchinese-git-workflow)是中国原创;另外 2 个(mcp-builder / workflow-runner)\n是上游 v5.0+ 已删除但本 fork 保留的 skill,不是中国原创。\n\n- 结构化描述(3 个 plugin\n[…]\n1 \"6 国产原创\" 同性质漂移\n\n跟前一 commit 同性质——\"国产原创\" 语义明确指 chinese-original,\nmcp-builder/workflow-runner 是上游翻译版不是国产原创。\n\n剩余 L44/46/L122/L133/L134 用的是 \"中国特色\"(china-specific)\n框架,可以包含 fork-specific 历史保留,留给跟进 PR 单独处理。",
          "is_bot": false,
          "headline": "docs(meta): 修 \"6 中国原创\" 文案漂移,准确反映 14+4+2 拆分 (#27)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-12T10:36:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c5b4fa446bde1b0ce67d38029d199ab69d366220",
          "body": "跟 PR #28 + #30 + #31 一起构成 v1.4.0 的完整内容。本 PR 仅做发布层\n(版本号 bump + plugin manifest 同步 + release notes),不动 skill 内容。\n\n版本号 1.3.0 → 1.4.0:\n- package.json\n- .claude-plugin/plugin.json + marketplace.json\n- .cursor-plugin/plugin.json\n- .codex-plugin/plugin.json\n- gemini-extension.json(之前卡在 1.1.6,本次顺带追上)\n\n工具链小修\n[…]\n确标注每项的上游 ref + 本 fork PR 号。\n\n注意:本 PR 应在 #28 + #30 + #31 merge 之后才 merge —— 顺序错了\n会导致 release notes 描述的 PR 在 git log 里还没有。\n\n不影响:\n- 上游 marketplace 安装路径(仍按主站路径正常工作)\n- 现有 npm 用户向后兼容(npx superpowers-zh 仍可用)",
          "is_bot": false,
          "headline": "chore: release v1.4.0 — 上游漂移 P0 全量修复 + 防回归基建 (#32)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-12T10:14:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "98ce0041938dbd417ec38e7b486d708fb6aa86e4",
          "body": "防回归基建:把本轮全量质量审计的 4 类检查打包成可重复运行的脚本,\n每次 PR 自动跑,发现漂移立刻拦下。\n\nscripts/audit.sh:\n1. 静态校验:JSON parse、SKILL.md frontmatter、symlink、hook 可执行性\n2. Installer 功能:17 款工具装 / 重装(幂等)/ 卸载全跑一遍\n3. 上游对齐:hooks 4 文件 + brainstorm scripts 3 文件 + 14 翻译 skill\n   结构层级(H1-H4 标题数)+ code-reviewer.md self-contained 版结构\n4. 交叉引用:READ\n[…]\n测:\n- main 分支跑:92 PASS / 2 WARN / 8 FAIL(捕获到所有已知漂移)\n- chore/sync-upstream-p0-drift(PR #30)跑:97 PASS / 2 WARN / 0 FAIL(PR 修复后全绿)\n\n后续:PR #28 + #30 merge 后,main 上 FAIL 应归零(WARN 只剩 executing-plans\n主动扩写一项)。",
          "is_bot": false,
          "headline": "chore(ci): 加 audit 脚本 + workflow 自动检测上游漂移 (#31)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-12T10:13:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "559ba914e0cc683e08bc33d03e80f0f47cfe550e",
          "body": "… 引用) (#30)\n\n* chore(skills): 同步上游 P0 漂移修复(hooks-cursor + brainstorm + code-reviewer 引用)\n\n来自质量审计的 3 个 P0 缺陷,全部是上游漂移类(\"主站有的我们没跟\"),逐项 cherry-pick / 翻译同步:\n\n1. hooks/hooks-cursor.json:command 从直接调 unix shell 脚本改回上游的\n   polyglot wrapper \"./hooks/run-hook.cmd session-start\"。修复 Windows\n   Cursor 用户 hook 完全\n[…]\n6 header == 我方 6 header(结构 1:1 对齐)\n\n不在范围:reviewer-prompt.md 其他文件(spec/plan-document-reviewer-prompt.md、\nsubagent-driven-development/*-prompt.md)的翻译漂移——已确认全是\ntranslation drift(H 数对齐 1:1),无结构漂移,本 PR 不动。",
          "is_bot": false,
          "headline": "chore(skills): 同步上游 P0 漂移修复(hooks-cursor + brainstorm + code-reviewer…",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-12T10:09:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "473b01114c7a9382e9c37ac71e243f4629446a03",
          "body": "把 upstream/main v5.1.0 在 using-git-worktrees + finishing-a-development-branch\n两个 skill 上的行为变更逐字翻译同步过来。属于上游修复 obra/superpowers#991\n(subagent 自动创建嵌套 worktree、清理误删 harness-managed workspace)。\n\nusing-git-worktrees:\n- 新增 Step 0:GIT_DIR vs GIT_COMMON 检测现有隔离,submodule 守卫\n- 新增创建前同意流程(除非 instructions 已声明偏好)\n\n[…]\nv5.1.0 requesting-code-review)→ 下一批\n- subagent 节奏调整 (v5.1.0 subagent-driven-development) → 下一批\n- brainstorm server.cjs 脚本结构同步 (v5.0.6 CONTENT_DIR/STATE_DIR) → 单独 PR\n\nRefs: jnMetaCode/superpowers-zh#19",
          "is_bot": false,
          "headline": "chore(skills): 同步上游 v5.1.0 worktree 安全修复(issue #19 第一批) (#28)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-12T10:08:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "132b6584914f41601068e481490a9497b603de4c",
          "body": "npm registry 页面顶部显示的 description 字段写的是 99k+,但 README\n已经更新到 159k+(上游 obra/superpowers 现状)。统一一下避免 npm\n访客看到过时 marketing 文案。\n\n下次 release(v1.4.0 或 v1.3.1)npm publish 会把更新后的 description\n带到 npm registry。",
          "is_bot": false,
          "headline": "docs(package): description 里 superpowers star 数 99k+ → 159k+ 对齐 README",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-11T15:25:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bc9acde1466162686502f6a4d3157dde04f9bc9",
          "body": "OpenClaw 安装指南的\"使用\"段写\"输入 /brainstorming 开始头脑风暴\"和\n\"输入 /commit 使用中文提交规范\"——这两条都是过时引用:\n\n- `/brainstorming` 不是有效 slash command(commands/ 目录在 v5.1.0 已删,\n  且我们的 commands/ 里也从来没有 brainstorming 这个名字)\n- `/commit` 完全不存在(我们没有 commit 这个 skill;可能想表达\n  chinese-commit-conventions,但 slash command 形式也不存在)\n- 即便 commands/ 还在的年代,OpenClaw 也不一定把 skill 自动暴露为\n  slash command\n\n改写为 OpenClaw 实际生效的触发方式:AI 通过 skill frontmatter 的\ndescription 字段自主选择 skill。文档同时给出 4 个高频触发场景示例,\n并说明强制触发的方式(在指令里点名 skill)。",
          "is_bot": false,
          "headline": "docs(openclaw): 移除 stale slash command 引用,改自然语言触发 (#25)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-11T13:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31fb8e317bede7b6434215070715e16de18350d1",
          "body": "群友反馈:「superpowers-zh 是不是只有 skills,没 hooks/commands/agents 不完整?」\n\n实际原因不是 plugin 缺失(v1.3.0 起 skills + hooks + 4 套 manifest 齐全;\ncommands/ agents/ 是上游 v5.1.0 主动删的 deprecated 内容,能力已收敛进 skills),\n而是本仓库 README \"方式二:手动安装\" 段只展示 cp -r skills,没说还要复制\nhooks/ 和生成 bootstrap,导致用户自己 cp 后 skills 不会自动触发。\n\n改动:\n- 标题改为「方式\n[…]\nidelity,仅作备选)」\n- 顶部加 ⚠️ 提示框,列清 plugin 完整组成(skills + hooks + bootstrap + manifest)\n  与手动 cp 实际丢失的内容(hooks 不配置、bootstrap 不生成、skills 不自动触发)\n- 强烈推荐回方式一 npx superpowers-zh,把手动 cp 限定在「npx 不可用的极端\n  无网络环境」备选位",
          "is_bot": false,
          "headline": "docs(readme): 手动安装段加 low-fidelity 警示,避免误以为 cp skills 等于完整 plugin (#24)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-10T15:44:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6c1fe583e831f9af33acd742e1dd2293b9890a7a",
          "body": null,
          "is_bot": false,
          "headline": "chore: release v1.3.0 — 跟上游 v5.1.0 对齐 + 修 marketplace.json drift",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-10T14:57:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "acff43a04cb40128a52688057beb33eeec9164d8",
          "body": null,
          "is_bot": false,
          "headline": "docs: 补 RELEASE-NOTES.zh.md v1.3.0 段 — #23 marketplace.json drift 修复",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-10T14:56:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48c4d0d41787bdf8d3b940e165576b7c52a9b6d1",
          "body": "补上之前简化版未实现的 plugins.0.version 路径,把\n.claude-plugin/marketplace.json 纳入版本同步目标。\n\n修复 marketplace.json 卡在 1.1.8 的老漂移(自 v1.1.8 起没动过):\nplugins[0].version 1.1.8 -> 1.2.1(追上其他 4 个 manifest)。\n\n实现:\n- TARGETS 改为对象数组 { path, field },对齐上游 .version-bump.json 格式\n- field='version' 走顶层 regex(保留原行为)\n- field='plugins.0\n[…]\n组首项)\n- 都用 regex 替换而非 JSON.stringify,保持原文件格式(缩进/数组写法等)\n\n测试:\n- 升级场景 1.2.1 → 1.3.0:4 个 manifest 全部同步\n- 幂等性:版本相同时输出 \"already at\"\n- 边界:marketplace.json 其他字段完全未动(diff 仅 version 一行)\n- npm pack:90 文件 228KB 不变",
          "is_bot": false,
          "headline": "fix(scripts): sync-plugin-version 支持嵌套字段路径 (#23)",
          "author_name": "AI不止语",
          "author_login": "jnMetaCode",
          "committed_at": "2026-05-10T14:48:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 5,
      "commits_last_year": 153,
      "latest_release_at": "2026-07-17T13:16:19Z",
      "latest_release_tag": "v1.7.1",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 15,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 18.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 71,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "superpowers-zh",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "superpowers",
            "claude-code",
            "cursor",
            "codex",
            "gemini",
            "kiro",
            "deerflow",
            "trae",
            "antigravity",
            "openclaw",
            "windsurf",
            "aider",
            "opencode",
            "qwen",
            "vscode",
            "copilot",
            "hermes",
            "hermes-agent",
            "claw-code",
            "qoder",
            "codebuddy",
            "codearts",
            "ai-coding",
            "skills",
            "chinese",
            "中文",
            "tdd",
            "debugging",
            "code-review",
            "pi-package"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/superpowers-zh",
          "is_deprecated": false,
          "latest_version": "1.7.1",
          "repository_url": "https://github.com/jnMetaCode/superpowers-zh",
          "versions_count": 17,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 11280,
          "first_published_at": "2026-03-20T03:28:41.304000Z",
          "latest_published_at": "2026-07-17T13:15:22.104000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 692,
      "stars": 7136,
      "watchers": 28,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-20",
            "count": 2
          },
          {
            "date": "2026-03-21",
            "count": 2
          },
          {
            "date": "2026-03-22",
            "count": 5
          },
          {
            "date": "2026-03-23",
            "count": 2
          },
          {
            "date": "2026-03-24",
            "count": 6
          },
          {
            "date": "2026-03-25",
            "count": 2
          },
          {
            "date": "2026-03-26",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 5
          },
          {
            "date": "2026-03-28",
            "count": 4
          },
          {
            "date": "2026-03-29",
            "count": 5
          },
          {
            "date": "2026-03-30",
            "count": 2
          },
          {
            "date": "2026-03-31",
            "count": 3
          },
          {
            "date": "2026-04-01",
            "count": 6
          },
          {
            "date": "2026-04-02",
            "count": 8
          },
          {
            "date": "2026-04-03",
            "count": 1
          },
          {
            "date": "2026-04-04",
            "count": 1
          },
          {
            "date": "2026-04-05",
            "count": 3
          },
          {
            "date": "2026-04-07",
            "count": 4
          },
          {
            "date": "2026-04-08",
            "count": 5
          },
          {
            "date": "2026-04-09",
            "count": 5
          },
          {
            "date": "2026-04-10",
            "count": 4
          },
          {
            "date": "2026-04-11",
            "count": 2
          },
          {
            "date": "2026-04-12",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 6
          },
          {
            "date": "2026-04-14",
            "count": 5
          },
          {
            "date": "2026-04-15",
            "count": 7
          },
          {
            "date": "2026-04-16",
            "count": 7
          },
          {
            "date": "2026-04-17",
            "count": 8
          },
          {
            "date": "2026-04-18",
            "count": 3
          },
          {
            "date": "2026-04-19",
            "count": 2
          },
          {
            "date": "2026-04-20",
            "count": 5
          },
          {
            "date": "2026-04-21",
            "count": 5
          },
          {
            "date": "2026-04-22",
            "count": 11
          },
          {
            "date": "2026-04-23",
            "count": 9
          },
          {
            "date": "2026-04-24",
            "count": 10
          },
          {
            "date": "2026-04-25",
            "count": 4
          },
          {
            "date": "2026-04-26",
            "count": 4
          },
          {
            "date": "2026-04-27",
            "count": 3
          },
          {
            "date": "2026-04-28",
            "count": 6
          },
          {
            "date": "2026-04-29",
            "count": 8
          },
          {
            "date": "2026-04-30",
            "count": 4
          },
          {
            "date": "2026-05-01",
            "count": 7
          },
          {
            "date": "2026-05-02",
            "count": 3
          },
          {
            "date": "2026-05-03",
            "count": 9
          },
          {
            "date": "2026-05-04",
            "count": 9
          },
          {
            "date": "2026-05-05",
            "count": 7
          },
          {
            "date": "2026-05-06",
            "count": 10
          },
          {
            "date": "2026-05-07",
            "count": 9
          },
          {
            "date": "2026-05-08",
            "count": 7
          },
          {
            "date": "2026-05-09",
            "count": 6
          },
          {
            "date": "2026-05-10",
            "count": 5
          },
          {
            "date": "2026-05-11",
            "count": 10
          },
          {
            "date": "2026-05-12",
            "count": 15
          },
          {
            "date": "2026-05-13",
            "count": 16
          },
          {
            "date": "2026-05-14",
            "count": 14
          },
          {
            "date": "2026-05-15",
            "count": 3
          },
          {
            "date": "2026-05-16",
            "count": 6
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 7
          },
          {
            "date": "2026-05-19",
            "count": 9
          },
          {
            "date": "2026-05-20",
            "count": 4
          },
          {
            "date": "2026-05-21",
            "count": 10
          },
          {
            "date": "2026-05-22",
            "count": 8
          },
          {
            "date": "2026-05-23",
            "count": 5
          },
          {
            "date": "2026-05-24",
            "count": 3
          },
          {
            "date": "2026-05-25",
            "count": 4
          },
          {
            "date": "2026-05-26",
            "count": 9
          },
          {
            "date": "2026-05-27",
            "count": 9
          },
          {
            "date": "2026-05-28",
            "count": 5
          },
          {
            "date": "2026-05-29",
            "count": 11
          },
          {
            "date": "2026-05-30",
            "count": 4
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 4
          },
          {
            "date": "2026-06-02",
            "count": 9
          },
          {
            "date": "2026-06-03",
            "count": 10
          },
          {
            "date": "2026-06-04",
            "count": 7
          },
          {
            "date": "2026-06-05",
            "count": 8
          },
          {
            "date": "2026-06-06",
            "count": 2
          },
          {
            "date": "2026-06-07",
            "count": 7
          },
          {
            "date": "2026-06-08",
            "count": 8
          },
          {
            "date": "2026-06-09",
            "count": 9
          },
          {
            "date": "2026-06-10",
            "count": 8
          },
          {
            "date": "2026-06-11",
            "count": 2
          },
          {
            "date": "2026-06-12",
            "count": 8
          },
          {
            "date": "2026-06-13",
            "count": 10
          },
          {
            "date": "2026-06-14",
            "count": 2
          },
          {
            "date": "2026-06-15",
            "count": 6
          },
          {
            "date": "2026-06-16",
            "count": 7
          },
          {
            "date": "2026-06-17",
            "count": 5
          },
          {
            "date": "2026-06-18",
            "count": 5
          },
          {
            "date": "2026-06-19",
            "count": 1
          },
          {
            "date": "2026-06-20",
            "count": 5
          },
          {
            "date": "2026-06-21",
            "count": 4
          },
          {
            "date": "2026-06-22",
            "count": 10
          },
          {
            "date": "2026-06-23",
            "count": 6
          },
          {
            "date": "2026-06-24",
            "count": 9
          },
          {
            "date": "2026-06-25",
            "count": 2
          },
          {
            "date": "2026-06-26",
            "count": 6
          },
          {
            "date": "2026-06-27",
            "count": 2
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 5
          },
          {
            "date": "2026-06-30",
            "count": 6
          },
          {
            "date": "2026-07-01",
            "count": 5
          },
          {
            "date": "2026-07-02",
            "count": 9
          },
          {
            "date": "2026-07-04",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 5
          },
          {
            "date": "2026-07-06",
            "count": 4
          },
          {
            "date": "2026-07-07",
            "count": 6
          },
          {
            "date": "2026-07-08",
            "count": 8
          },
          {
            "date": "2026-07-09",
            "count": 7
          },
          {
            "date": "2026-07-10",
            "count": 10
          },
          {
            "date": "2026-07-11",
            "count": 4
          },
          {
            "date": "2026-07-12",
            "count": 2
          },
          {
            "date": "2026-07-13",
            "count": 5
          },
          {
            "date": "2026-07-14",
            "count": 1
          },
          {
            "date": "2026-07-15",
            "count": 9
          },
          {
            "date": "2026-07-16",
            "count": 5
          },
          {
            "date": "2026-07-18",
            "count": 3
          },
          {
            "date": "2026-07-19",
            "count": 1
          },
          {
            "date": "2026-07-20",
            "count": 5
          },
          {
            "date": "2026-07-21",
            "count": 5
          },
          {
            "date": "2026-07-22",
            "count": 7
          }
        ],
        "complete": true,
        "collected": 688,
        "total_forks": 692
      },
      "star_history": null,
      "open_issues_and_prs": 18
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 55561,
      "source_files_sampled": 21,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md",
        "GEMINI.md"
      ],
      "agent_instruction_max_bytes": 8071
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 3,
        "merged_prs": 51,
        "open_issues": 15,
        "closed_ratio": 0.595,
        "closed_issues": 22,
        "closed_unmerged_prs": 4
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "jnMetaCode",
          "commits": 146,
          "avatar_url": "https://avatars.githubusercontent.com/u/12096460?v=4"
        },
        {
          "type": "User",
          "login": "asdtasdt",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/100402768?v=4"
        },
        {
          "type": "User",
          "login": "Drolese",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/92971177?v=4"
        },
        {
          "type": "User",
          "login": "shunfeng8421",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/37066911?v=4"
        }
      ],
      "contributors_sampled": 4,
      "top_contributor_share": 0.954
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "audit.yml",
        "ci.yml",
        "deploy-site.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "19 out of 19 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/20 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 6,
            "reason": "dependency not pinned by hash detected -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "c9d153941291068f928fd313faf181a48301dee1",
        "ran_at": "2026-07-22T14:52:46Z",
        "aggregate_score": 4.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-18T13:56:10Z",
      "oldest_open_prs": [
        {
          "number": 38,
          "created_at": "2026-05-23T11:15:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 47,
          "created_at": "2026-06-09T08:02:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 91,
          "created_at": "2026-07-05T12:23:49Z",
          "last_comment_at": "2026-07-05T12:24:28Z",
          "last_comment_author": "qicesun"
        }
      ],
      "last_merged_pr_at": "2026-07-17T13:04:07Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 19,
          "created_at": "2026-05-05T14:56:29Z",
          "last_comment_at": "2026-06-19T23:35:04Z",
          "last_comment_author": "jnMetaCode"
        },
        {
          "number": 35,
          "created_at": "2026-05-16T07:04:18Z",
          "last_comment_at": "2026-06-10T06:44:52Z",
          "last_comment_author": "CrazyProgrammerPeng"
        },
        {
          "number": 39,
          "created_at": "2026-05-25T09:41:37Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 40,
          "created_at": "2026-05-26T02:21:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 42,
          "created_at": "2026-05-29T06:18:41Z",
          "last_comment_at": "2026-07-06T03:51:51Z",
          "last_comment_author": "TigoTin"
        },
        {
          "number": 45,
          "created_at": "2026-06-05T00:17:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 48,
          "created_at": "2026-06-11T02:19:43Z",
          "last_comment_at": "2026-06-17T03:10:17Z",
          "last_comment_author": "WangHHY19931001"
        },
        {
          "number": 54,
          "created_at": "2026-06-17T02:34:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 74,
          "created_at": "2026-06-22T08:03:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 88,
          "created_at": "2026-06-30T16:24:56Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 92,
          "created_at": "2026-07-05T12:24:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 93,
          "created_at": "2026-07-05T12:24:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 95,
          "created_at": "2026-07-08T09:47:55Z",
          "last_comment_at": "2026-07-10T06:15:25Z",
          "last_comment_author": "yutian81"
        },
        {
          "number": 97,
          "created_at": "2026-07-13T07:37:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 107,
          "created_at": "2026-07-16T01:16:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/jnMetaCode/superpowers-zh",
    "host": "github.com",
    "name": "superpowers-zh",
    "owner": "jnMetaCode"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 70,
      "inputs": {
        "security": 45,
        "vitality": 84,
        "community": 79,
        "governance": 58,
        "engineering": 81
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 84,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "commits_last_year": 153,
              "human_commit_share": 1,
              "days_since_last_push": 5,
              "active_weeks_last_year": 15
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "15/52 weeks with commits",
                "points": 10.4,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 15
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "153 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 153
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 5,
              "latest_release_tag": "v1.7.1",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 18.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "5 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~18.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 18.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 79,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "forks": 692,
              "stars": 7136,
              "watchers": 28,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "7,136 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 7136
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "692 forks",
                "points": 23.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 692
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "28 watchers",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 68,
            "inputs": {
              "packages": [
                "superpowers-zh"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 11280
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "11,280 downloads/month across npm",
                "points": 54,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 11280,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 58,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 18,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 4,
              "top_contributor_share": 0.954
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 95% of commits",
                "points": 1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 95
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "4 contributors",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "merged_prs": 51,
              "open_issues": 15,
              "closed_issues": 22,
              "issue_closed_ratio": 0.595,
              "closed_unmerged_prs": 4
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "60% of issues closed",
                "points": 27.8,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 60
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "51/55 decided PRs merged",
                "points": 35.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 51,
                      "decided": 55
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/20 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 69,
            "inputs": {
              "followers": 682,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "jnMetaCode",
              "public_repos": 120,
              "account_age_days": 4107
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "682 followers of jnMetaCode",
                "points": 20.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 682,
                      "login": "jnMetaCode"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "120 public repos, account ~11 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 120
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 11
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "superpowers-zh"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "17 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 17
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 81,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "19 out of 19 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "ai-coding",
                "chinese",
                "claude-code",
                "cursor",
                "mcp",
                "skills",
                "superpowers",
                "tdd",
                "agent-skills",
                "agentic-coding",
                "code-review",
                "kiro",
                "npm-package",
                "prompt-engineering",
                "trae",
                "gemini-cli"
              ],
              "has_wiki": true,
              "homepage": "https://sp.aiolaola.com",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://sp.aiolaola.com",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "16 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 16
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 45,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 45,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 4.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "19 out of 19 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/20 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 6",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 2
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 55,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.98,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md",
                "GEMINI.md"
              ],
              "agent_instruction_max_bytes": 8071
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md, GEMINI.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md, GEMINI.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "98 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 98,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 38,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "JavaScript",
              "largest_source_bytes": 55561,
              "source_files_sampled": 21,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "JavaScript without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "JavaScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/21 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 21,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
    "deps.dev does not index npm:superpowers-zh@1.7.1; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T14:53:02.363598Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/j/jnMetaCode/superpowers-zh.svg",
  "full_name": "jnMetaCode/superpowers-zh",
  "license_state": "standard",
  "license_spdx": "MIT"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.26.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计npm.