Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 1141,
"has_wiki": true,
"homepage": null,
"languages": {
"Shell": 6294,
"Python": 90746,
"JavaScript": 642671
},
"pushed_at": "2026-07-20T00:51:26Z",
"created_at": "2026-01-23T13:29:28Z",
"owner_type": "User",
"updated_at": "2026-07-20T00:51:29Z",
"description": null,
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "JavaScript",
"significant_languages": [
"JavaScript",
"Python"
]
},
"owner": {
"blog": null,
"name": "ranger",
"type": "User",
"login": "rangershi",
"company": null,
"location": null,
"followers": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/6543980?v=4",
"created_at": "2014-01-30T11:54:23Z",
"is_verified": null,
"public_repos": 24,
"account_age_days": 4558
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [],
"recent_commits": [
{
"oid": "a9ee3fba19cc0ea6dac62727181eefe3175ff171",
"body": "变更说明:\n- backend artifact-only 发布跳过目标工程依赖安装\n- 普通 backend、Vercel 与其他命令保留现有依赖检查\n- 增加依赖路由回归测试并升级版本至 0.1.127\n\nCloses: #40",
"is_bot": false,
"headline": "perf(deploy): skip dependencies for artifact release",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-19T12:46:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "886e77a34afd231cd2cc330c1d108f02c5728b30",
"body": null,
"is_bot": false,
"headline": "dx 126",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-19T12:29:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c835ea2b802ec1a978f98943d5801c17f0e8f627",
"body": null,
"is_bot": false,
"headline": "0.1.125",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-19T09:03:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46bae45d4b17d7ea84dd00ea622fe0941f6d5d21",
"body": null,
"is_bot": false,
"headline": "\"version\": \"0.1.124\"",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-19T08:26:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fdd29be11d03b6413085a1c769ae6819cde75de0",
"body": null,
"is_bot": false,
"headline": "\"version\": \"0.1.124\"",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-19T08:26:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6395ba74d02cdd60797bce10372b0f68898a67c7",
"body": null,
"is_bot": false,
"headline": "add fix error",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-19T05:36:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f1732f0ce7376a63a4f4e180f7fdfb0224fb90a",
"body": null,
"is_bot": false,
"headline": "dx add brand",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-19T05:19:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6668fd2ccb59c26c2d4e36254f0bfd146e7b0409",
"body": null,
"is_bot": false,
"headline": "Update package.json",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-11T05:45:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dfd94640a0eaa9eae2341e1e4c59ed9c905bd86a",
"body": "变更说明:\n- 防止隔离开发目录进入仓库状态\n\nRefs: #39",
"is_bot": false,
"headline": "chore: 忽略本地 git worktree 目录",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-11T02:54:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54d2f49fd6222e3c00b3117c3284996932e1ab43",
"body": "变更说明:\n- 按 TDD 拆分回归测试与最小实现步骤\n- 明确门禁和完整测试验证命令\n\nRefs: #39",
"is_bot": false,
"headline": "docs: 添加 backend E2E 参数透传实施计划",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-11T02:54:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1343f428f8d0d6fe2bedc93700c016fe764a8a73",
"body": "变更说明:\n- 记录 shell 行尾注释导致测试参数被截断的根因\n- 明确注释感知参数拼接与 CLI 回归测试方案\n\nRefs: #39",
"is_bot": false,
"headline": "docs: 设计 backend E2E 测试名称透传修复",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-11T02:18:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f41afa95667f09bfd8f019d7be4aef17783459e9",
"body": null,
"is_bot": false,
"headline": "透传 可以指定 运行某一个 E2 测试",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-10T14:08:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "11f91546e7f33d89cb525c74d405c257b71f03ef",
"body": null,
"is_bot": false,
"headline": "增加 flag",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-09T12:47:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d4415f207811e558dc7b81b834a055a56c7eca1",
"body": null,
"is_bot": false,
"headline": "优化技能",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-04T04:14:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2951ae1f77c70c0ad44d024969b965af6fa5a3f5",
"body": null,
"is_bot": false,
"headline": "op handoff",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-02T15:49:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d6ce3dfaf98db01d0b8bf39f7116360b43e9553c",
"body": null,
"is_bot": false,
"headline": "去除自动触发",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-02T09:54:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09a79347b3063e50dcdc8eeb17bdac2e5bf2c69d",
"body": null,
"is_bot": false,
"headline": "update 115",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-07-02T09:48:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1ee3b6f67da07b04ccfbcf21be50cc8fe29ff74",
"body": null,
"is_bot": false,
"headline": "feat: prevent appending maxWorkers for unit tests using Jest --runInBand",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-21T04:09:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc257fad280616b0f9a9bd2932837dbc52a04b4a",
"body": null,
"is_bot": false,
"headline": "feat: enhance documentation for command execution and testing parameters",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-21T03:13:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5cf4ea86f6cf61ce5b24fc6f837f8911d4b9f85",
"body": null,
"is_bot": false,
"headline": "feat: set default test workers to 8 for unit and e2e commands",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-21T03:05:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f500a8c383e27d5209f2b084f2d20ab07a879160",
"body": "…nsion",
"is_bot": false,
"headline": "feat: update version to 0.1.112 and add enum-single-source audit dime…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-20T06:19:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9701082c23ab4ce587595c64429197c3bc28db9d",
"body": "* fix: support multiple unit test paths\n\n变更说明:\n- 放开 test unit 的位置参数上限,保持 e2e 路径必填与非 unit 上限不变。\n- 收集 unit target 后的多个测试路径,按底层 runner 逐个归一化并透传。\n- 增加 unit 多路径参数解析和 Nx/Vitest 路径透传回归测试。\n\nRefs: shitgood-bradford54/ai-monorepo#6424\n\n* chore: sync pnpm lockfile\n\nRemove a stale self-dependency entry that no \n[…]\nage 保持支持多路径\n- 非 unit test usage 继续限制最多三个 positional\n- 增加 e2e usage 额外路径占位符的回归测试\n\nRefs: shitgood-bradford54/ai-monorepo#6424\n\n---------\n\nCo-authored-by: bradford54 <bradford54@users.noreply.github.com>",
"is_bot": false,
"headline": "fix: support multiple unit test paths (#38)",
"author_name": "bradford54",
"author_login": "bradford54",
"committed_at": "2026-06-20T05:24:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ce84f10fedc6307b0e3a881fe0cf14e38bcfb494",
"body": "…ured commands",
"is_bot": false,
"headline": "feat: implement dynamic command registration and execution for config…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-18T00:45:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5da723f0356eecc9cbe61250086c8d8c622d3507",
"body": "… in deployment",
"is_bot": false,
"headline": "feat: update version to 0.1.110 and enhance environment flag handling…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-12T10:15:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61d856485a128271edef9fbb1bbf5421a6d33b1a",
"body": null,
"is_bot": false,
"headline": "feat: implement health check URL support using runtime environment PORT",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-12T09:43:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af73c11c7fea81d3a49dee0837347b8b0f0aeb43",
"body": "…nd deployment",
"is_bot": false,
"headline": "feat: add environment-specific remote configuration support for backe…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-12T07:43:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8666f30b58978ad53677a3e05cba77f219fc6754",
"body": "…ect target resolution",
"is_bot": false,
"headline": "feat: enhance e2e command handling with passthrough arguments and dir…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-11T09:50:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "188df1bffb2ace78565b34c01cc6943189158414",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.106 and modify skill description",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:23:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24a011da9d90226a912856da8639d497abbec66e",
"body": null,
"is_bot": false,
"headline": "Merge branch 'feat/36-purge-deleted-skills'",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:21:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3bce9d0e0e17e750be950a6b90cde85c1b9d91bb",
"body": "* feat: dx initial 清理历史已删除的 skill\n\n变更说明:\n- 硬编码 DELETED_SKILLS 名单(来自 git 历史中曾托管、现已从 skills/ 删除的 skill)\n- 新增 purgeSkills(dir, names):无条件彻底清理软链或真实目录\n- runCodexInitial 在 agents/claude/codex 三处对已删除名单执行 purge,并输出清理统计\n- 补充测试:验证三处的真实副本与软链均被清理,现存 skill 不受影响\n\nRefs: #36\n\n* fix: 修复审查问题 #C1 — 移除对已删除 superpowers \n[…]\n:\n- 将旧 managed skill 测试中的 packaged autospec 替换为 skill-c,避免与 DELETED_SKILLS 护栏冲突\n- 保留用例原语义:验证现存包内 skill 的 codex 旧副本清理与 claude 软链重建\n\nRefs: #36\n\n---------\n\nCo-authored-by: Your Name <mays87510@gmail.com>",
"is_bot": false,
"headline": "feat: dx initial 清理历史已删除的 skill (#37)",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-06-07T02:19:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c740a055f5dfe4de11fe6d43ca02430dc54579b3",
"body": "变更说明:\n- 将旧 managed skill 测试中的 packaged autospec 替换为 skill-c,避免与 DELETED_SKILLS 护栏冲突\n- 保留用例原语义:验证现存包内 skill 的 codex 旧副本清理与 claude 软链重建\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复验证失败 #V1 — 更新现存 skill 测试数据",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:16:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27e38fdb1791a31b30b69c251270cb1c460b2ac1",
"body": "变更说明:\n- 抽出 lstatIfExists 统一处理 ENOENT 与非 ENOENT 错误\n- removeManagedNonSymlinkSkills 与 purgeSkills 共用该探测逻辑,减少重复分支且保持原有清理语义\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #m2 — 复用路径存在性探测",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:15:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80799295eb8c80cbdeecdeb231ad952520b543fb",
"body": "变更说明:\n- assertDirExists 遇到存在但不是目录时直接抛出“不是目录”错误\n- 避免把非目录场景包装成“不存在或不可访问”,提升排障信息准确性\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #m4 — 保留非目录错误语义",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:14:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c90547632f97383f2c7fb4cac16be67fab2843ee",
"body": "变更说明:\n- 在 DELETED_SKILLS 注释中补充 --name-only、sed 提取一级目录名和 sort -u 步骤\n- 明确名单来源是历史一级 skill 目录减去当前现存 skill 名单\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #m3 — 补全历史 skill 名单提取命令",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:14:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "717d93bcc04d065430d17fdea89ecec0ded8c397",
"body": "变更说明:\n- 增加指向 agents 之外目录的 omc-reference 软链残留场景\n- 断言 purge 删除 claude 软链本身且不影响外部 target,避免测试依赖 agents target 被删除的巧合\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #M3 — 独立验证 claude 软链清理",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:14:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fca195d2e39f1ea8baeef3b1d03bea284a49e9a",
"body": "变更说明:\n- 在 dx initial 同步前校验 DELETED_SKILLS 不得与当前包内 skills 重叠,避免刚同步的 skill 被 purge 清掉\n- 增加重叠场景回归测试,确保名单维护错误会快速失败\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #m1 — 增加已删除 skill 名单护栏",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:14:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "298e441b1f9889c623be89d81249d22e9eb43d1c",
"body": "- lstat/rm 遇到非 ENOENT 错误(如权限)时改为 logger.warn 记录并继续,不再 throw\n- 返回值新增 failed 计数,汇总日志在有失败时输出告警\n- 避免单个陈旧副本的清理异常拖垮整个 skill 同步\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #M2 — purgeSkills 改为尽力清理不阻断主流程",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T02:00:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e783431e25e696f677527b8bd89d31a693ea982f",
"body": "- 将 claude 软链目录的 purge 提到 agents/codex 真实副本之前\n- 避免中途失败时残留指向已删除 agents target 的悬空软链\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #M1 — 调整 purge 顺序先清软链宿主",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T01:49:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dbcda1b381494bbc4a307ea764bb63928522559a",
"body": "- commit c6fd8a7 有意删除了 docs/superpowers/specs 与 plans 下的设计文档,\n 但 backend-artifact-deploy-doc-config 测试仍读取这些文件导致 ENOENT 失败\n- 移除对 designSpec/plan 文件的读取与断言,保留仍存在的 README/example README 断言\n\nRefs: #36",
"is_bot": false,
"headline": "fix: 修复审查问题 #C1 — 移除对已删除 superpowers 文档的测试断言",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T01:49:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c9557f81fa29d3527600ef3a5e72b9e8ccf72d7",
"body": "变更说明:\n- 硬编码 DELETED_SKILLS 名单(来自 git 历史中曾托管、现已从 skills/ 删除的 skill)\n- 新增 purgeSkills(dir, names):无条件彻底清理软链或真实目录\n- runCodexInitial 在 agents/claude/codex 三处对已删除名单执行 purge,并输出清理统计\n- 补充测试:验证三处的真实副本与软链均被清理,现存 skill 不受影响\n\nRefs: #36",
"is_bot": false,
"headline": "feat: dx initial 清理历史已删除的 skill",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-07T01:44:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb58b40c3d053e010e2ebc786ae1c2191f34407a",
"body": "…ent guidelines",
"is_bot": false,
"headline": "docs: enhance SKILL.md with detailed review process and issue managem…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-06T14:33:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2ea980ebe6d4d7e540e94a221b122478e8150c56",
"body": "…mensions",
"is_bot": false,
"headline": "feat: add backend audit fixer documentation for various compliance di…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-06-06T14:30:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c6fd8a78bae5e069338e4ccfd43d928a3644c4e7",
"body": null,
"is_bot": false,
"headline": "chore: update .gitignore to exclude .omx and .idea directories",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-19T07:28:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49f540e11c9d2e257e7d1e68e87a0f51d065c316",
"body": "…umentation",
"is_bot": false,
"headline": "chore: update version to 0.1.105 in package.json and add SKILL.md doc…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-19T07:26:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35aabb0b7aab0099d21cb64926a1c31abf7882d1",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.104 in package.json",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-10T03:54:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8d551b6e8b4d047cb508dd97ca81dbedf3bba972",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.101 in package.json",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-09T10:12:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68ea8ef2eb03510c69449d4d02a8898b58920935",
"body": null,
"is_bot": false,
"headline": "fix: ignore tool worktrees in nx graph",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-09T10:12:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b47bbf127bd0adaf3ea5f52473014fab6695c185",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.101 in package.json",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-09T10:08:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5619986d3a18af9e6a52f903bf13e0d40daec511",
"body": null,
"is_bot": false,
"headline": "fix: forward verbose flag to nx",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-09T10:06:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df9b539980f72e03c25fd65f7b6515ea822b05cd",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.101 in package.json",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-09T09:53:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "448e0c430666444b2b434e84acb52ff2a9cbe66e",
"body": null,
"is_bot": false,
"headline": "fix: ignore tool metadata env files",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-09T09:37:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "234831abf9a152cae3c218d6945f635a2bfb17bf",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.100 in package.json",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-05-07T11:40:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be12121f222db48fc72d638a1a954a46edf39411",
"body": "* chore: sync skill templates and initial copy behavior\n\n变更说明:\n- 将 doctor、git-release、multi-pr-feature-delivery 调整为显式调用,清理 doctor 旧固定脚本。\n- 调整 dx initial 对包内 skill 目录的同步逻辑,避免用户目录残留已删除文件。\n- 补充 initial 同步测试和 example 后端制品部署文档。\n\nRefs: #34\n\n* fix: 清理废弃 autospec skill\n\n- 将 autospec 加入 dx initial 的废弃 skill \n[…]\nnitial 目录替换与文档\n\n- 使用备份目录替换官方同名 skill,失败时恢复旧目录\n- 清理上次中断遗留的临时和备份目录\n- 补充 stale temp 清理与替换失败恢复测试\n- 删除 README 中已不存在的 pr-review-loop 章节\n\nRefs: #34\n\n---------\n\nCo-authored-by: Your Name <mays87510@gmail.com>",
"is_bot": false,
"headline": "chore: sync skill templates and initial copy behavior (#35)",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-05-07T11:39:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f6393de4335b4c34b168de9957a252dc84b7655e",
"body": "… documentation",
"is_bot": false,
"headline": "feat: update version to 0.1.99 and add SKILL.md for autospec pipeline…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-17T08:38:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8a85d66bd47dc944b53a447dd6487010182a0d4f",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.98",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-11T09:48:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2be44ac1ff30ea803fd55eeda9f434b13ba0d28d",
"body": "… and implement tests",
"is_bot": false,
"headline": "feat: add check for @prisma/client installation in ensurePrismaClient…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-11T09:48:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ff0cc54c600628ac2d18b881b236178df974a033",
"body": "用户运行 dx help 后不知道可以用 dx help <命令> 查看详细用法,\n在输出末尾加一行引导文字。\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: 全局 help 末尾添加子命令帮助引导提示",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-03T07:57:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1e9bfdaa8af64a8360e5effd6eff206e638e43db",
"body": "…nfig and help generation",
"is_bot": false,
"headline": "docs: update architecture and development documentation for strict co…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T15:32:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7dee57092a6ff8131f65c3c2ba64b25ccfe2b9a",
"body": null,
"is_bot": false,
"headline": "chore: update version to 0.1.97 and add new entries to .gitignore",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T15:24:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22872d7496770c886690197fe9c7145f5c0a32b5",
"body": "refactor: enforce strict dx config and dynamic help",
"is_bot": false,
"headline": "Merge pull request #33 from rangershi/codex/32-strict-dx-config-help",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-04-02T15:15:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c5ed322462dc3ad0922c934ddb36a8bc899d079",
"body": "变更说明:\n- 移除旧的 CLI 与配置兼容层,统一只认 strict 新规范的环境键、命令入口和帮助输出\n- 将 help 切换为配置驱动的 schema/model/renderer 流程,并在运行时增加严格校验\n- 重写 demo/example 文档与配置示例,同时迁移 ai-monorepo 的 dx 配置到最新规范\n\nRefs: #32",
"is_bot": false,
"headline": "refactor: enforce strict dx config and dynamic help",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T15:12:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6eca67ebfc34200c36f6c5ac3708c5a0923f0bd5",
"body": null,
"is_bot": false,
"headline": "Merge branch 'codex/29-support-unit-test-filters'",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T08:09:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d77f4fabd7c9ace66884072be48a6f6022bfb6c8",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 0.1.96",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T08:06:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "59ac6c1c3e10128c85a8414a12164a2678c8a4be",
"body": "fix: normalize e2e file filters for nx targets",
"is_bot": false,
"headline": "Merge pull request #31 from rangershi/codex/29-support-unit-test-filters",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-04-02T08:02:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d45f7157f26222bb43f4b4768c2035ea6a7b11de",
"body": "变更说明:\n- 为 dx test e2e 增加 --name 别名的回归测试,锁定用例名透传行为\n- 修正 nx test:e2e target 的文件路径归一化,在未显式声明 cwd 时优先回退到项目 e2e 目录\n- 保持 quantify 这类非 nx fileCommand 的现有行为不变\n\nRefs: #29",
"is_bot": false,
"headline": "fix: normalize e2e file filters for nx targets",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T07:56:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35dee526b7a411ddb2d89c3a476af45c2289a164",
"body": "fix: support unit test file and case filters in dx",
"is_bot": false,
"headline": "Merge pull request #30 from rangershi/codex/29-support-unit-test-filters",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-04-02T07:50:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d62210d447dd3f5c0ed5cca4c035e0ceabec0575",
"body": "变更说明:\n- 为 dx test unit 增加 --name / --test-name-pattern 别名,并统一映射到 -t\n- 修正 nx test 项目的单测文件路径转发,按项目执行目录改写为相对路径\n- 扩展帮助文档和 CLI 回归测试,覆盖 Jest/Vitest 与 Nx target 场景\n\nRefs: #29",
"is_bot": false,
"headline": "fix: support unit test file and case filters in dx",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T07:45:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8287d1fbc157a8c19570177eac9a85789d4f32e7",
"body": "…nning options",
"is_bot": false,
"headline": "feat: enhance error handling audit script with flexible directory sca…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T04:52:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a45899db61186cba19c4fd0f4f61bc5e5369ea0c",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 0.1.94",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T03:11:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc7e57d6cf0696308e1e453da33d896dc4543143",
"body": "…eature-checks\n\nrefactor: stop doctor from managing codex feature toggles",
"is_bot": false,
"headline": "Merge pull request #28 from rangershi/codex/fix/remove-doctor-codex-f…",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-04-02T03:10:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9ede3f899e684d802d0aef3fc4bfc4de892e30cd",
"body": "The doctor skill should focus on repairing executable tooling and bootstrap\nsteps, not on reading or mutating Codex feature flags. This removes the\nremaining `multi_agent` checks from the skill docs and shell workflow while\nkeeping `dx` installation and `dx initial` intact.\n\nConstraint: Doctor must \n[…]\natures|features enable|features list|experimental true|codex 命令不存在\" skills/doctor -S\nTested: bash -n skills/doctor/scripts/doctor.sh\nNot-tested: End-to-end execution of doctor.sh on a live workstation",
"is_bot": false,
"headline": "Stop doctor from managing Codex feature toggles",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T03:07:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dbb93b2def033306aa4ef2abd8af4735d0182be1",
"body": null,
"is_bot": false,
"headline": "feat: remove deprecated skill directories during initialization",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-02T02:55:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6384970340ee433f794ab9d63a13888735afaddf",
"body": "…e files",
"is_bot": false,
"headline": "chore: update .gitignore to exclude additional configuration and stat…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-01T16:26:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3707638ec7449354159c6ec2c94e110f46e9d2a8",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 0.1.92",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-01T16:25:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "594b1f23c2215a67c139cd53ddf2cd8b3569e7e0",
"body": "…-skill-names\n\nrefactor: clean up doctor behavior and skill naming",
"is_bot": false,
"headline": "Merge pull request #27 from rangershi/codex/fix/26-cleanup-doctor-and…",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-04-01T16:19:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b74da7c8107bcd739767e8110e29e5c144dfd368",
"body": "This change removes the remaining `~/.codex/config.toml` checks and writes\nfrom the doctor skill, while also folding in the current skill renames and\ncleanup changes already present in the working tree so the skills catalog\nlands in one coherent update.\n\nConstraint: Doctor must no longer read or rew\n[…]\nnts\\.orchestrator|agents\\.reviewer|agents\\.spark\" skills/doctor -S\nTested: bash -n skills/doctor/scripts/doctor.sh\nNot-tested: End-to-end execution of doctor.sh against a live workstation\nRelated: #26",
"is_bot": false,
"headline": "Stop doctor from mutating local codex config during skill maintenance",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-01T16:16:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "583ddfa5d324037c535e898729158ec44b066e7c",
"body": "refactor: align packaged skills with repo layout",
"is_bot": false,
"headline": "Merge pull request #25 from rangershi/codex/fix/24-migrate-skills-layout",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-04-01T15:52:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f818a4947711bc39caae03b19abaf36ecd42f566",
"body": "The repository now treats root-level `skills/` as the source of truth, so\nthis change moves tracked skill assets out of the old `codex/` layout,\nadds the newly introduced skill content, and rewrites `dx initial` to do\nonly one job: merge the packaged skills into `~/.codex/skills` and\n`~/.claude/skil\n[…]\nand `dx initial` in the same change\nTested: pnpm test\nTested: npm pack --dry-run\nNot-tested: Running globally installed `dx initial` against a real home directory outside the test harness\nRelated: #24",
"is_bot": false,
"headline": "Align skills packaging with the repo's new bootstrap layout",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-04-01T15:46:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f0b5d06cfde0bb5db353dbc7a58fdd9758425d58",
"body": null,
"is_bot": false,
"headline": "feat: enhance unit test command handling and add path normalization",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-29T15:00:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a3cb2fffaabd3f8aebd078465d04ec8afb7a30d",
"body": "…ompts",
"is_bot": false,
"headline": "feat: update review output format and validation rules in reviewer pr…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-19T06:08:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "200d417c037788df35d4b54eca34cdd2614e1d11",
"body": null,
"is_bot": false,
"headline": "feat: add service URLs to commands and implement URL printing in stack",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-19T03:33:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcfee509570c90a3b16121b463ad2d1908092319",
"body": null,
"is_bot": false,
"headline": "fix: prismaSeed: true 问题",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-17T15:42:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0c8ee1af085df3817b73f8676bef7528a074c87",
"body": "Add configurable prisma db seed step that runs after migration\nand before symlink switch during remote deployment. Controlled\nvia `prismaSeed` config in commands.json (default: false).\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: add prisma-seed phase to backend deploy pipeline",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-17T15:41:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a85d6d6394e7cd5557975e7213399198f71ed3af",
"body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add design spec for deploy backend prisma seed phase",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-17T15:30:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1dfb35791a44c47620bef010d3a279ca82b747fa",
"body": "…tignore",
"is_bot": false,
"headline": "chore: update stagewise version in commands.json and add .omc/ to .gi…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-17T15:20:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1594508c70715831e5f6c2415d320c4691397d0",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 0.1.87",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-16T09:50:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f519b51cc53a8d38d0202b3ecdcafa04a0f22859",
"body": "…targets\n\nfeat: add config-driven guarded e2e target execution",
"is_bot": false,
"headline": "Merge pull request #23 from rangershi/codex/configurable-backend-e2e-…",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-03-16T09:47:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "55fdba9b137cac220f84a834ecc31d2d2ebd9198",
"body": "变更说明:\n- 在 dx test 命令中增加 requiresPath/fileCommand 驱动的 E2E target 约束与执行路径。\n- 禁止对受保护 target 使用无路径执行与 `all` 全量调用。\n- 更新主配置、示例配置、帮助文档与测试覆盖,补充新增 `test/test-command-e2e-targets.test.js`。\n\nRefs: #22",
"is_bot": false,
"headline": "feat: add config-driven guarded e2e target execution",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-16T09:43:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ae6679febb996fa6c5dd98ddbd9c0e3b4da47ae",
"body": null,
"is_bot": false,
"headline": "docs: refine e2e target design and add plan",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-16T09:07:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9fe14331252cc2292aa188fdfd6e57eee9b5122",
"body": null,
"is_bot": false,
"headline": "docs: add configurable backend e2e targets design",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-16T08:52:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5654d337b46edf12f72ecdca3ea542b6dc1c14d3",
"body": "…re preserved",
"is_bot": false,
"headline": "feat: add required codex configuration and ensure existing settings a…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-14T15:17:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ee442d0a5f9354b645ca851448d7b38bb649111",
"body": null,
"is_bot": false,
"headline": "fix: 添加 一些skill 去掉运行时就一些警告噪音",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-14T15:01:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "abd70cb643454efffdd2cd6a5021fa511c87f719",
"body": "…o README",
"is_bot": false,
"headline": "feat: add health check configuration and deployment success summary t…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-13T15:28:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb21eafa76154ecff32d3680c9b16556631dfeab",
"body": null,
"is_bot": false,
"headline": "Merge branch 'codex/fix/20-backend-artifact-deploy'",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-13T10:48:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cc14bd65c10e394b6f77c83312cd169b9dcc2c2",
"body": "…ry and health check configuration",
"is_bot": false,
"headline": "feat: enhance backend artifact deployment with detailed success summa…",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-13T10:46:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a2c210610be1128e29697075fa9b4193f497136",
"body": null,
"is_bot": false,
"headline": "feat: add health check verification to backend artifact deployment",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-13T10:28:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8d8f26057f32b31c2c2711e1b73ff276c7c93a15",
"body": null,
"is_bot": false,
"headline": "fix: bump version to 0.1.83",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-13T01:09:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80edb22cf38d84cd087ea876dd36ae6ef694e72a",
"body": "…eploy\n\nfix: 修复后端制品部署的校验与依赖处理",
"is_bot": false,
"headline": "Merge pull request #21 from rangershi/codex/fix/20-backend-artifact-d…",
"author_name": "ranger",
"author_login": "rangershi",
"committed_at": "2026-03-13T01:07:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7075d4d569fb9f552e44467a5a534b1d2b3253f",
"body": "变更说明:\n- 为制品打包 tar 增加稳定环境变量,并改为使用归档文件名生成 checksum\n- 修正远端 bundle 解压与 checksum 校验逻辑,避免路径不一致导致部署失败\n- 在远端部署返回失败结果时直接抛出阶段化异常\n- 从应用和根包依赖中补齐运行时所需依赖,并补充相关测试覆盖\n\nRefs: #20",
"is_bot": false,
"headline": "fix: 修复后端制品部署的校验与依赖处理",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-12T16:57:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad6efd55eb0c40571bba0fddb2169398850020c9",
"body": null,
"is_bot": false,
"headline": "feat: remove some",
"author_name": "Your Name",
"author_login": "vercel87510",
"committed_at": "2026-03-12T16:14:10Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 0,
"commits_last_year": 261,
"latest_release_at": null,
"latest_release_tag": null,
"releases_from_tags": false,
"days_since_last_push": 5,
"active_weeks_last_year": 21,
"days_since_latest_release": null,
"mean_days_between_releases": null
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": false,
"has_contributing": false,
"health_percentage": 28,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "@ranger1/dx",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@ranger1/dx",
"is_deprecated": false,
"latest_version": "0.1.127",
"repository_url": "https://github.com/rangershi/dx",
"versions_count": 126,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 2653,
"first_published_at": "2026-01-23T14:09:16.920000Z",
"latest_published_at": "2026-07-19T12:48:00.709000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 1,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [
{
"date": "2026-06-18",
"count": 1
}
],
"complete": true,
"collected": 1,
"total_forks": 1
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"example"
],
"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": 35122,
"source_files_sampled": 102,
"oversized_source_files": 0,
"agent_instruction_files": [
"AGENTS.md"
],
"agent_instruction_max_bytes": 145
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 2,
"malicious_count": 0,
"assessed_package": "npm:@ranger1/dx@0.1.127",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "strip-json-comments",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.0.3"
},
{
"name": "yaml",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.8.1"
}
],
"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": 0,
"merged_prs": 21,
"open_issues": 0,
"closed_ratio": 1,
"closed_issues": 19,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "vercel87510",
"commits": 238,
"avatar_url": "https://avatars.githubusercontent.com/u/241711888?v=4"
},
{
"type": "User",
"login": "rangershi",
"commits": 22,
"avatar_url": "https://avatars.githubusercontent.com/u/6543980?v=4"
},
{
"type": "User",
"login": "bradford54",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/188642786?v=4"
}
],
"contributors_sampled": 3,
"top_contributor_share": 0.912
},
"quality_signals": {
"has_ci": false,
"has_tests": true,
"ci_workflows": [],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json",
"pnpm-lock.yaml"
],
"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": 0,
"reason": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
"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 1/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": null,
"reason": "no workflows found",
"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 0 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": null,
"reason": "no dependencies found",
"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": null,
"reason": "No tokens found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "45 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "a9ee3fba19cc0ea6dac62727181eefe3175ff171",
"ran_at": "2026-07-25T10:17:34Z",
"aggregate_score": 2.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": null,
"oldest_open_prs": [],
"last_merged_pr_at": "2026-06-20T05:24:51Z",
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/rangershi/dx",
"host": "github.com",
"name": "dx",
"owner": "rangershi"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 44,
"inputs": {
"security": 40,
"vitality": 47,
"community": 32,
"governance": 58,
"engineering": 40
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "at_risk",
"name": "Vitality",
"value": 47,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 78,
"inputs": {
"commits_last_year": 261,
"human_commit_share": 1,
"days_since_last_push": 5,
"active_weeks_last_year": 21
},
"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": "21/52 weeks with commits",
"points": 14.5,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 21
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "261 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 261
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "critical",
"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": 1,
"inputs": {
"releases_count": 0
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "no releases published",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases_published",
"params": {}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"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": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 5,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 5 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 5
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 32,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 1,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 1
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"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": 0,
"status": "missed",
"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": 0,
"status": "missed",
"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": 57,
"inputs": {
"packages": [
"@ranger1/dx"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 2653
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "2,653 downloads/month across npm",
"points": 45.7,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 2653,
"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": 15,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 3,
"top_contributor_share": 0.912
},
"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 91% of commits",
"points": 2,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 91
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "3 contributors",
"points": 4.1,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 3
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"merged_prs": 21,
"open_issues": 0,
"closed_issues": 19,
"issue_closed_ratio": 1,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "100% of issues closed",
"points": 46.8,
"status": "met",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 100
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "21/21 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 21,
"decided": 21
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 1/30 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": 50,
"inputs": {
"followers": 11,
"owner_type": "User",
"is_verified": null,
"owner_login": "rangershi",
"public_repos": 24,
"account_age_days": 4558
},
"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": "11 followers of rangershi",
"points": 7.8,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 11,
"login": "rangershi"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "24 public repos, account ~12 yr old",
"points": 22.2,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 24
}
},
{
"code": "account_age_years",
"params": {
"years": 12
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"@ranger1/dx"
],
"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": "126 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 126
}
}
],
"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": "at_risk",
"name": "Engineering Quality",
"value": 40,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "critical",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 24,
"inputs": {
"has_ci": false,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": false
},
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": 40,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"dangerous_workflow",
"packaging",
"pinned_dependencies",
"signed_releases",
"token_permissions"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 25,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 13,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 5,
"scorecard_aggregate": 2.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": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"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 1/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no workflows found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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 0 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": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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": "No tokens found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "45 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@ranger1/dx@0.1.127 runtime dependency closure — what installing the published package pulls in — 2 packages. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_published",
"params": {
"package": "npm:@ranger1/dx@0.1.127",
"assessed": 2
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 0,
"affected_packages": 0,
"assessed_packages": 2,
"unassessed_packages": 0,
"affected_by_severity": "none",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "no indirect dependency carries a known advisory",
"points": 25,
"status": "met",
"details": [
{
"code": "no_indirect_advisories",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 2,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"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": "at_risk",
"name": "AI Readiness",
"value": 48,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "moderate",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 58,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.84,
"agent_instruction_files": [
"AGENTS.md"
],
"agent_instruction_max_bytes": 145
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md (stub)",
"points": 18,
"status": "partial",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md"
}
},
{
"code": "agent_instructions_stub",
"params": {}
}
],
"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": "84 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 84,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_pinned_dependencies"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 42,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json",
"pnpm-lock.yaml"
],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.03,
"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": "3 of the last 100 commits agent-authored or agent-credited",
"points": 6,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 3,
"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": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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": 35122,
"source_files_sampled": 102,
"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/102 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 102,
"oversized": 0
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"example"
],
"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": "example",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "example"
}
}
],
"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": [
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-25T10:17:40.564498Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rangershi/dx.svg",
"full_name": "rangershi/dx",
"license_state": "standard",
"license_spdx": "MIT"
}