Public record
Software health reportschema 0.26.0 · metrics 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 stars⑂ 692 forkssince Mar 2026View on GitHub ↗

jnMetaCode/superpowers-zh holds a health index of 70 out of 100, placing it in the Good band. It scores highest on Vitality (84/100) and lowest on Security (45/100). It was last updated 5 days ago. A single contributor accounts for most of its recent work.

70
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

70
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

AI不止语Personal account
682 followers120 public repossince Apr 2015 jnMetaCode@qq.com

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

84Good · 22% of overall
How it's scored
36/36Push recency — last push 5 days ago
10.4/36Commit cadence — 15/52 weeks with commits
18/18Commit volume — 153 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year153
human_commit_share1
days_since_last_push5
active_weeks_last_year15

Release discipline

100Excellent
How it's scored
27/27Ships releases — 5 releases published
36/36Release recency — latest release 5 days ago
27/27Release cadence — a release every ~18.2 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count5
latest_release_tagv1.7.1
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases18.2
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

79Good · 18% of overall
How it's scored
60/60Stars — 7,136 stars
23.7/25Forks — 692 forks
8/15Watchers — 28 watchers
Inputs used
forks692
stars7,136
watchers28
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
0/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingno
has_issue_templateno
has_code_of_conductyes
has_pull_request_templateyes
How it's scored
54/80Monthly downloads — 11,280 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagessuperpowers-zh
dependents
ecosystemsnpm
total_downloads
monthly_downloads11,280
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

58Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
1/22.5Commit distribution — top contributor authored 95% of commits
5.4/13.5Contributor breadth — 4 contributors
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Inputs used
bus_factor1
contributors_sampled4
top_contributor_share0.954
How it's scored
27.8/46.8Issue resolution — 60% of issues closed
35.5/38.3PR acceptance — 51/55 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/20 approved changesets -- score normalized to 0
Inputs used
merged_prs51
open_issues15
closed_issues22
issue_closed_ratio0.595
closed_unmerged_prs4
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
20.4/25Owner reach — 682 followers of jnMetaCode
25/25Track record — 120 public repos, account ~11 yr old
Inputs used
followers682
owner_typeUser
is_verified
owner_loginjnMetaCode
public_repos120
account_age_days4,107
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 1 package(s) on npm
35/35Publish recency — latest publish 5 days ago
20/20Version history — 17 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagessuperpowers-zh
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Engineering Quality

Are baseline engineering and documentation practices in place?

81Good · 20% of overall
How it's scored
24/24CI workflows — 3 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 19 out of 19 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentation

100Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://sp.aiolaola.com
10/10Repository description
10/10Topics — 16 topics
10/10Wiki
Inputs used
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_wikiyes
homepagehttps://sp.aiolaola.com
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

45At risk · 16% of overall
How it's scored
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.5License — 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 — no data
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 — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4.5
Excluded from scoring (no data or not applicable): packaging, signed_releases. Remaining weights renormalized.

AI Readiness

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.

55Moderate · 0% of overall
How it's scored
45/45Agent instructions — AGENTS.md, CLAUDE.md, GEMINI.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 98 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.98
agent_instruction_filesAGENTS.md, CLAUDE.md, GEMINI.md
agent_instruction_max_bytes8,071
How it's scored
0/18One-command bootstrap
22/22Automated tests
0/11Lint / format config
0/11Static type checking
10/10Reproducible environment — lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
0/8Automated maintenance — no automated dependency updates observed
6/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 6
Inputs used
has_nixno
has_testsyes
lockfilespackage-lock.json
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
How it's scored
0/45Type-checkable code — JavaScript without a type-check config
55/55Manageable file sizes — 0/21 source files over 60KB
Inputs used
primary_languageJavaScript
largest_source_bytes55,561
source_files_sampled21
oversized_source_files0
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_files

Key facts

7,136GitHub stars
4contributors
153commits, last 12 months
5days since last push
5releases
1bus factor
15open issues
npmpackage ecosystems

Data collection 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

More detail

Star and fork history 0 ★ / 692 ⇿
0Stars
692Forks
5Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

0125250375500625750688162026-032026-052026-07
Major 0Minor 3Patch 2
OpenSSF Scorecard 4.5 / 10
4.5aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).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
n/aPackagingpackaging 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
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
All dependencies not collected

The resolved dependency set could not be collected for this report: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Raw JSON report machine-readable
{
  "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"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.26.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.