JSON-Rohbericht maschinenlesbar
{
"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"
}