公开记录
软件健康报告模式 0.23.0 · 指标 1.13.0 · 2026-07-21 18:33 UTC

antchfx / xpath

XPath package for golang, supports HTML, XML, JSON document query and more

GoMIT★ 743 星标⑂ 98 复刻始于 2016年10月在 GitHub 上查看 ↗

antchfx/xpath 的健康指数为 100 分中的 59 分,处于「中等」区间。 其得分最高的类别是Vitality(71/100),最低的是Security(45/100)。 最近一次更新在 1 天前。 近期的大部分工作由 1 位贡献者完成。

59
总分 / 100
中等

软件健康指数

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

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

评分画像

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

所有权

antchfx组织
27 关注者8 个公开仓库始于 2016年7月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

软件包生态系统

注册表软件包版本月下载量版本数最近发布
Gogithub.com/antchfx/xpathv1.3.7-274 天前

按类别列示的指标

活力

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

71良好 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 1 天前
4.8/36提交节奏 — 52 周中有 7 周有提交
12.2/18提交量 — 最近一年 22 次提交
10/10OpenSSF Scorecard:Maintained — 15 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year22
human_commit_share1
days_since_last_push1
active_weeks_last_year7

发布纪律

84良好
评分方式
27/27有发布版本 — 已发布 27 个发布版本
36/36发布时效 — 最近一次发布版本于 4 天前
12.6/27发布节奏 — 约每 138.6 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count27
latest_release_tagv1.3.7
releases_from_tags
days_since_latest_release4
mean_days_between_releases138.6
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

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

60中等 · 占总体的 18%
评分方式
46.6/60星标 — 743 个星标
16.6/25复刻 — 98 个复刻
5.6/15关注者 — 11 位关注者
所用输入
forks98
stars743
watchers11
growth_stateorganic
growth_factor_pct100

社区健康

50中等
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
0/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template

可持续性与治理

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

64中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
4.1/22.5提交分布 — 头号贡献者编写了 82% 的提交
13.5/13.5贡献者广度 — 25 位贡献者
3/10OpenSSF Scorecard:Contributors — project has 1 contributing companies or organizations -- score normalized to 3
所用输入
bus_factor1
contributors_sampled25
top_contributor_share0.817
评分方式
38.4/46.8议题解决 — 82% 的议题已关闭
32.2/38.3PR 接受 — 已裁定的 PR 中 37/44 已合并
10.5/15OpenSSF Scorecard:Code-Review — Found 12/17 approved changesets -- score normalized to 7
所用输入
merged_prs37
open_issues15
closed_issues69
issue_closed_ratio0.821
closed_unmerged_prs7
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
10.4/25所有者影响力 — antchfx 有 27 位关注者
18.9/25既往记录 — 8 个公开仓库,账户约 9 年
所用输入
followers27
owner_typeOrganization
is_verified
owner_loginantchfx
public_repos8
account_age_days3,648
评分方式
25/25已发布且可解析 — go 上有 1 个软件包
35/35发布时效 — 最近一次发布于 4 天前
20/20版本历史 — 27 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesgithub.com/antchfx/xpath
ecosystemsgo
any_deprecated
min_days_since_publish4

工程质量

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

51中等 · 占总体的 20%

工程实践

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

文档

50中等
评分方式
30/30README
0/25文档目录
0/15文档 / 主页站点
10/10仓库描述
10/10主题标签 — 10 个主题标签
0/10Wiki
所用输入
topicsxpath, golang, xml, html, xpath-patterns, xpath-query, selects-descendants, xpath2, go, go-xml
has_wiki
homepage
has_readme
has_docs_dir
has_description

安全

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

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

安全态势

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

AI 就绪度

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

52中等 · 占总体的 0%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
32/40可读的提交历史 — 100 次人类提交中有 60 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.6
agent_instruction_files
agent_instruction_max_bytes
评分方式
12.6/18一条命令的引导启动 — go.mod(工具链约定,无任务运行器)
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — Go(静态类型)
0/10可复现环境
4/10已体现的代理实践 — 最近 100 次提交中有 2 次由代理编写或署名代理
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0.02
toolchain_manifestsgo.mod
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — Go(静态类型)
55/55可控的文件大小 — 采样的 19 个源文件中有 0 个超过 60KB
所用输入
primary_languageGo
largest_source_bytes30,197
source_files_sampled19
oversized_source_files0

关键数据

743GitHub 星标
25贡献者
22最近 12 个月提交数
1距最近推送天数
27发布版本数
1巴士系数(bus factor)
15开放议题
Go软件包生态系统数

更多细节

Star 与 Fork 历史 743 ★ / 98 ⇿
743Star
98Fork
26发布

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

012525037550062575074298432016-112021-092026-07
主版本 1次版本 3修订 22

每个点涵盖 9 天。

OpenSSF Scorecard 4.5 / 10
4.5综合

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

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

来自 GitHub 依赖图的完整解析依赖集合:0 个直接依赖与 0 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
依赖安全公告 未评估

本报告未能完成公告比对:No resolved dependencies to assess

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "xpath",
        "golang",
        "xml",
        "html",
        "xpath-patterns",
        "xpath-query",
        "selects-descendants",
        "xpath2",
        "go",
        "go-xml"
      ],
      "is_fork": false,
      "size_kb": 264,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "Go": 188055
      },
      "pushed_at": "2026-07-20T05:51:29Z",
      "created_at": "2016-10-09T05:51:24Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T05:51:36Z",
      "description": "XPath package for golang, supports HTML, XML, JSON document query and more",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "Organization",
      "login": "antchfx",
      "company": null,
      "location": null,
      "followers": 27,
      "avatar_url": "https://avatars.githubusercontent.com/u/20632257?v=4",
      "created_at": "2016-07-25T01:51:16Z",
      "is_verified": null,
      "public_repos": 8,
      "account_age_days": 3648
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.3.7",
          "kind": "patch",
          "published_at": "2026-07-17T12:06:02Z"
        },
        {
          "tag": "v1.3.6",
          "kind": "patch",
          "published_at": "2026-02-23T07:10:29Z"
        },
        {
          "tag": "v1.3.5",
          "kind": "patch",
          "published_at": "2025-08-18T07:27:28Z"
        },
        {
          "tag": "v1.3.4",
          "kind": "patch",
          "published_at": "2025-04-05T12:57:52Z"
        },
        {
          "tag": "v1.3.3",
          "kind": "patch",
          "published_at": "2024-12-16T16:08:56Z"
        },
        {
          "tag": "v1.3.2",
          "kind": "patch",
          "published_at": "2024-10-05T12:54:48Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2024-06-24T02:57:25Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2024-04-04T11:23:33Z"
        },
        {
          "tag": "v1.2.5",
          "kind": "patch",
          "published_at": "2023-10-26T15:56:38Z"
        },
        {
          "tag": "v1.2.4",
          "kind": "patch",
          "published_at": "2023-02-15T16:48:32Z"
        },
        {
          "tag": "v1.2.3",
          "kind": "patch",
          "published_at": "2023-01-26T11:32:28Z"
        },
        {
          "tag": "v1.2.2",
          "kind": "patch",
          "published_at": "2023-01-11T15:04:34Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2022-05-25T12:29:35Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2021-06-03T08:23:12Z"
        },
        {
          "tag": "v1.1.11",
          "kind": "patch",
          "published_at": "2020-11-22T17:16:45Z"
        },
        {
          "tag": "v1.1.10",
          "kind": "patch",
          "published_at": "2020-07-13T02:14:45Z"
        },
        {
          "tag": "v1.1.9",
          "kind": "patch",
          "published_at": "2020-06-17T03:22:59Z"
        },
        {
          "tag": "v1.1.8",
          "kind": "patch",
          "published_at": "2020-05-15T15:45:04Z"
        },
        {
          "tag": "v1.1.7",
          "kind": "patch",
          "published_at": "2020-05-08T16:44:23Z"
        },
        {
          "tag": "v1.1.6",
          "kind": "patch",
          "published_at": "2020-04-23T01:18:54Z"
        },
        {
          "tag": "v1.1.5",
          "kind": "patch",
          "published_at": "2020-04-08T04:41:39Z"
        },
        {
          "tag": "v1.1.4",
          "kind": "patch",
          "published_at": "2020-01-10T10:42:00Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2019-12-30T10:39:04Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2019-11-21T01:35:25Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2019-11-10T02:35:56Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2019-10-04T02:27:27Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2019-06-08T03:05:25Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "d666d4b6f3b570811b144144414971401472b83c",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #130: Fix `name*expr` lexing XPath §3.7 specification",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-20T05:51:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb27328c5211a63fce899f11bac089e1f4b948a3",
          "body": "…xpressions",
          "is_bot": false,
          "headline": "Merge PR #129: Fix handling of undeclared variables like `$test` in e…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-20T05:26:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d32f25b139dfc68ca4d7270f8f9fa9b5e31f86e",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #128 (fix: `round()` and `mod` operator)",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-20T05:05:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "401df5966a6bf3b3f6342c9191874a947717f823",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #127",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-20T04:56:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c1d918f6895afef80ed72cdc3e5890834bda63d",
          "body": "isName treated '*' as a name character, so scanName consumed it: an expression like\nprice*0.01 (no surrounding spaces) was lexed as a single name \"price*0.01\" instead of\nname · MultiplyOperator · number, yielding an empty node-set → NaN at evaluation.\n\nDrop '*' from isName. Namespace wildcards (pref\n[…]\n':'\nbranch, and *, //*, child::* reach the parser via the dedicated '*' token, so none of\nthem go through isName — they keep working (covered by the added test).\n\nFixes the '*' case discussed in #126.",
          "is_bot": false,
          "headline": "parse: '*' is not a name character (XPath 1.0 §3.7)",
          "author_name": "alonsoalpizar",
          "author_login": "alonsoalpizar",
          "committed_at": "2026-07-19T18:54:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "52c3ea60e94e7015941ca6c49d083c9c6f7aeacb",
          "body": "processNode had no case for variable nodes, so a variable used inside a larger\nexpression such as \"$x/@attr\" left a nil sub-query behind that panicked when\nthe expression was later selected. A bare \"$x\" already errored because the nil\nreached the caller, and this extends the same undeclared variable error to the\nnested case so compilation fails cleanly.",
          "is_bot": false,
          "headline": "Reject undeclared variables nested in an expression",
          "author_name": "Arunesh Dwivedi",
          "author_login": "AruneshDwivedi",
          "committed_at": "2026-07-19T17:33:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0594b224db7eb8fb896fd3053c9675f4df198316",
          "body": "round() rounded halves away from zero and dropped the non-finite cases via the\nint cast (REC 4.4); it now returns a number like ceiling()/floor(), so halves\nround toward +Infinity and NaN/+-Infinity pass through. Since it no longer needs\nthe go1.10-only math.Round it moves next to roundFunc.\n\nmod truncated its operands to int and panicked on a zero divisor; math.Mod is\nthe truncating remainder the spec requires (REC 3.5), with NaN for mod by zero.",
          "is_bot": false,
          "headline": "fix: round() and mod follow the XPath 1.0 numeric spec",
          "author_name": "Vincent Gao",
          "author_login": "gaoflow",
          "committed_at": "2026-07-19T15:15:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b44084cfec29d75f752c3c1e20fb04e97f8bfa7",
          "body": null,
          "is_bot": false,
          "headline": "fix XPath comparison coercion edge cases",
          "author_name": "Floze",
          "author_login": "floze-the-genius",
          "committed_at": "2026-07-19T14:46:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43837f1f452dc44f6bf41ff67d6b0b7c1fbc7851",
          "body": "…' < '10'`,`//Moneda = 1`",
          "is_bot": false,
          "headline": "#126,fix the following boolean expression: `'14' > 0`,`'abc' = 1`,`'2…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-19T13:13:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30af867683691e0c15d4d0849443ec418a2928f7",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #125",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-19T12:02:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f534f1da8d7becc84603340fa8af9401f13c344c",
          "body": "strconv.FormatFloat(_, 'g', -1) emits scientific notation and Go's\n+Inf/-Inf/-0 tokens, but XPath 1.0 (REC 4.2) requires finite numbers in\ndecimal form with no exponent, \"Infinity\"/\"-Infinity\" for the\ninfinities, \"NaN\", and \"0\" for negative zero. Add formatNumber\nfollowing that rule and use it in as\n[…]\n only\nhandled string and node-set, so concat('id-', 5, '-x') returned 'id--x'.\nRoute each argument through asString so number and boolean arguments are\nstringified the same way string() converts them.",
          "is_bot": false,
          "headline": "Format numbers per XPath 1.0 string() rules",
          "author_name": "Vincent Gao",
          "author_login": "gaoflow",
          "committed_at": "2026-07-18T15:18:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3baa0aaa920d99ff698359a6f6a5bf4b26755518",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #124",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-17T05:34:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01a7d85909b7053532e2e9d29821fe659aca75e3",
          "body": "Predicate evaluation on a left-hand numeric operand can leave the shared\nnavigator on a different node before the right-hand operand runs. Snapshot\nand restore the operator context around each operand, with eager number\ncoercion, and add regression tests.",
          "is_bot": false,
          "headline": "Fix numeric operator operand context isolation",
          "author_name": "Dave Thompson",
          "author_login": "3leapsdave",
          "committed_at": "2026-07-16T10:50:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d645baed50e0ccf0201cb696779bc7badfdc5bbd",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #123",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-07-08T01:48:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eca28236872d897b97b17a7e6d7d18ae8d779124",
          "body": "A \"//name\" step compiles to a mergeQuery, whose Select only rebuilds its\nnode list when the cached iterator is nil. Every other node-set query clears\nthat field in Evaluate; mergeQuery did not, so re-evaluating one compiled\nexpression against a different document reused the previous document's nodes.\n\nFixes #122\n\nSigned-off-by: Charlie Tonneslan <cst0520@gmail.com>",
          "is_bot": false,
          "headline": "query: reset mergeQuery iterator in Evaluate",
          "author_name": "Charlie Tonneslan",
          "author_login": "c-tonneslan",
          "committed_at": "2026-07-06T15:22:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afd4762cc342af56345a3fb4002a59281fcab494",
          "body": null,
          "is_bot": false,
          "headline": "fix #121",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-02-21T13:32:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8ced8f559cd68fc4aedfc87f21599d1190c0852",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #120",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2026-02-14T08:07:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c92c3ebebbdd67f715161810f97ecfbcaa47921e",
          "body": "When evaluating expressions like (//author)[last()], the last() function\nwas counting sibling nodes per-parent instead of counting the total nodes\nin the grouped result set. This caused incorrect matches when group\nmembers came from different parent nodes.\n\nThe fix ensures that b.firstInput is alway\n[…]\nhe\nnodeGroup case, and adds handling for *groupQuery in the lastFuncQuery\nconversion, using a cloned query to avoid consuming the shared input.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix last() predicate on grouped expressions",
          "author_name": "Mislav Marohnić",
          "author_login": "mislav",
          "committed_at": "2026-02-13T15:26:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3cbab9750ea36cbae6f967ebbf29b9eda0e841bf",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #119",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2025-11-10T05:55:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02c01b0b4051e7edd1bf40f3d595cc9143936aaa",
          "body": "The XPath expression with chained predicates on the ancestor axis was not\nworking correctly. For example:\n  //*[@itemprop=\"author\"][ancestor::*[@itemscope][1][@itemtype=\"Comment\"]]\n\nThis expression should find all elements with @itemprop=\"author\" whose first\n@itemscope ancestor has @itemtype=\"Commen\n[…]\neset, allowing\nthe query to work correctly for each evaluation.\n\n💁 Unit test by Mislav\n🤖 Implementation by [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix chained predicates on ancestor axis",
          "author_name": "Mislav Marohnić",
          "author_login": "mislav",
          "committed_at": "2025-11-09T21:33:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "511abd57bc74e9644fe27f4e52b559065e686e92",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #117",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2025-08-18T07:09:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "060b15493444a0e6c5a232022516e434818f7391",
          "body": "The expression `/ancestor::div[1]` should select only the first \"div\" node\nwhile traversing up the document tree, but this wasn't the case.\n\nThis fixes positional predicates by having ancestorQuery implement the Position\ninterface.\n\nThe test was written by hand by me and the implementation was helped by GitHub\nCopilot w/ GPT-5.",
          "is_bot": false,
          "headline": "Fix positional predicate for the \"ancestor\" axis",
          "author_name": "Mislav Marohnić",
          "author_login": "mislav",
          "committed_at": "2025-08-17T20:17:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d50c252d867285812177ffd3ff0924104ffb1eb",
          "body": null,
          "is_bot": false,
          "headline": "fix #112,#113",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2025-04-21T13:35:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9e198da9fb170a229c9c7e27d52e1a350636f4c",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #111",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2025-04-05T12:44:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fcb882bece30fe7d4d8f5069fed13f95a726e62f",
          "body": null,
          "is_bot": false,
          "headline": "improve getHashCode by removing fmt.Sprintf",
          "author_name": "WeiJian",
          "author_login": "wjc4",
          "committed_at": "2025-04-05T02:52:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ffdfaece66b0000a8627916a714c1a4cf989944e",
          "body": null,
          "is_bot": false,
          "headline": "add benchmark test to measure getHashCode performance",
          "author_name": "WeiJian",
          "author_login": "wjc4",
          "committed_at": "2025-04-05T02:52:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "06f9e3051a21c48e01800ef5ac28111904de3a90",
          "body": null,
          "is_bot": false,
          "headline": "fix example run error on playground. #110",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2025-03-01T14:33:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a139d00358e4fe4568db5e940317edd9e121bd3f",
          "body": null,
          "is_bot": false,
          "headline": "fix #109",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2025-02-16T08:18:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "140466744b50e97f4ce64e8b1c9352170102200c",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #107",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2025-02-07T09:24:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8513c1e7c8c3c95870ed2f9c27c23ad868a28e80",
          "body": null,
          "is_bot": false,
          "headline": "Add support for regexp in xpath replace function",
          "author_name": "Lauri Huotari",
          "author_login": "Mrflatt",
          "committed_at": "2025-02-05T16:25:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7d323fde082a4b9aff0ad6e216c14c75ae39b1e",
          "body": null,
          "is_bot": false,
          "headline": "fix non-English characters query: #106, #99",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-12-16T11:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b94a535ab23860dd4fbaf6f5d3fbd55fddea32c9",
          "body": null,
          "is_bot": false,
          "headline": "fix #104",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-10-05T12:18:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47df8f8078a309c6e4ee738df0e6a5878d91315e",
          "body": "Test for conjunction of expressions",
          "is_bot": false,
          "headline": "Merge pull request #103 from AidanDelaney/feat/add-test-conjunction",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-09-10T03:21:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a712b004def95f618489d8e7452e7f1996f0f961",
          "body": "Demonstrate that `and` is supported as an operator between\nexpressions",
          "is_bot": false,
          "headline": "Test for conjunction of expressions",
          "author_name": "Aidan Delaney",
          "author_login": "AidanDelaney",
          "committed_at": "2024-09-07T08:02:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18b075e247e7c37c0456afdf2ac9fc01d70490d8",
          "body": null,
          "is_bot": false,
          "headline": "fix #102",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-07-29T14:06:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d37f8b238aed36a39413d4eef7bd8ed0563d3e23",
          "body": null,
          "is_bot": false,
          "headline": "fix #101",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-07-28T11:35:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14e235f5e127e9a750a9b6b2f76a27220d1cfd18",
          "body": null,
          "is_bot": false,
          "headline": "fix 99. add non-english letter test.",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-07-24T04:24:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4286dabda0362abdf9b12bf20a00f9f39139d262",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #100",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-07-24T03:23:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8678aba8332338c4c00c9819ebdc8f8fb8b0c40",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove not needed unicode checks",
          "author_name": "Ludmil Simeonov",
          "author_login": null,
          "committed_at": "2024-07-23T12:55:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b38b781912f5cf033bcfd5ea5f67aa68072b564a",
          "body": null,
          "is_bot": false,
          "headline": "feat: Cyrillic and greek support",
          "author_name": "Ludmil Simeonov",
          "author_login": null,
          "committed_at": "2024-07-19T15:22:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5481aef473ee298d297387f5b69e2768df09e0c4",
          "body": "…query` packages re-use the cached element in some cases. #94",
          "is_bot": false,
          "headline": "#98. remove the duplicate elements filter, avoid `htmlquery` and `xml…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-06-23T12:03:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b4638b370e898a9d10709464b8cd460b7dcfd0c",
          "body": null,
          "is_bot": false,
          "headline": "#96, allows node-set numeric operator on `+`, `-`, `*`, `MOD()`, `DIV()`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-04-09T13:53:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5116a248cb421592fcc3b6c5b0bf56220e754480",
          "body": null,
          "is_bot": false,
          "headline": "fix: converting an empty node set to a number should return NaN",
          "author_name": "Guillaume Brunerie",
          "author_login": "guillaumebrunerie",
          "committed_at": "2024-04-08T14:05:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79952826f8ad1bee7d396bf35c516397f335017b",
          "body": null,
          "is_bot": false,
          "headline": "docs: update `lower-case()` fuction. close #95",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-04-03T13:22:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c8da2788f2e473dfc2cb3cf3f5e53e8039947c4",
          "body": null,
          "is_bot": false,
          "headline": " fix test: map iteration order is random",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-04-03T13:12:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebf2b764831364a79e510b7c1170026969fd218a",
          "body": null,
          "is_bot": false,
          "headline": "remove unused code https://github.com/antchfx/htmlquery/issues/52",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-04-02T17:09:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9362c3b0212535e3d4650f8edb77155afdc592b",
          "body": null,
          "is_bot": false,
          "headline": "#95,new function `lower-case`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-31T05:22:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "360713b5c2c34ac9bf32b5561fefa93a96722133",
          "body": null,
          "is_bot": false,
          "headline": "minor fix",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-30T14:40:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36675962f4e4387d8e6b9b22cae289844b12e2d4",
          "body": null,
          "is_bot": false,
          "headline": "fix #94",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-30T06:40:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61656460cd65164a72b69a1bdbd6d0504a3488f5",
          "body": null,
          "is_bot": false,
          "headline": "update tests",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-30T04:58:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec5c80c382aee53ffde98195c466ee3505426dea",
          "body": null,
          "is_bot": false,
          "headline": "update test cases",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-30T04:28:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be7a99a6a26a7b02bcb51fdc19e047f7efbe4471",
          "body": null,
          "is_bot": false,
          "headline": "update `namespace_uri()` test case",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-30T03:58:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0cd1973cceb5118d950738e5c94638114fb1304",
          "body": null,
          "is_bot": false,
          "headline": "update test cases",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-29T15:56:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a154602e79d035e40b2adc22b007550aa97a613",
          "body": null,
          "is_bot": false,
          "headline": "#72 , keeping the duplicate elements on query with parent `../..`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-29T12:04:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb0f52e00dc8d01bfde97c9a44972796a027ecdc",
          "body": null,
          "is_bot": false,
          "headline": "add & fix test issues #93",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-28T06:12:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed2f6ee6ff2a4066b9ea6b35db2868d4d2154cb5",
          "body": "- minor fix some issue",
          "is_bot": false,
          "headline": "- fix #93, new `mergeQuery` and `descendantOverDescendantQuery`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-28T06:01:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45f8e353451e468ce961c8dade029366985e3730",
          "body": null,
          "is_bot": false,
          "headline": "update README.md",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-25T12:56:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae2b67d1b9dbee3cc003b0793c235809758fc697",
          "body": null,
          "is_bot": false,
          "headline": "update new test cases",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-25T12:56:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70e7f924e38ee732789496b223e63eb70c4ec157",
          "body": null,
          "is_bot": false,
          "headline": "minor fixs",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-24T12:23:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b2d2dc0881138d1a3efa99304be3108aec938c7",
          "body": null,
          "is_bot": false,
          "headline": "add new xpath preficate tests.",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-23T17:10:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "583681cbc67120f1ea9cda329b03a77a664167a3",
          "body": "…orial.com/xml/xpath-node-test.php` as test",
          "is_bot": false,
          "headline": "add new xpath node tests. using new XML example from `https://way2tut…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-23T13:36:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd68ce40e63d7bdde9d0f108ab9a9b8aeccd49c5",
          "body": null,
          "is_bot": false,
          "headline": "update `build status` badge",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-20T15:16:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ab1a261940a1451a9d90199d364417e2dd79a37",
          "body": null,
          "is_bot": false,
          "headline": "remove the deprecated `.travis.yml`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-20T15:09:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70d1fc4ae1411c15deb83bc45863d3e18efcd133",
          "body": null,
          "is_bot": false,
          "headline": "update `testing.yml`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-20T15:03:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b134af7837147e43cf1d1e241c103472e44113a",
          "body": null,
          "is_bot": false,
          "headline": "update `coverage.yml`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-20T14:54:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a298f995235c40aa67f0beec8f9fb382db347f2",
          "body": null,
          "is_bot": false,
          "headline": "fix `testing.yml`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-19T17:44:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99384444efe45ad3ed3fcf8da0b6dc2eb9231754",
          "body": null,
          "is_bot": false,
          "headline": "fix `testing.yml`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-19T17:42:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcbae38f723c8979f3768a3bf87b285f3462b448",
          "body": null,
          "is_bot": false,
          "headline": "`testing.yml`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-19T17:34:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46862f7241629801913ad916afdafed3fb61c77d",
          "body": null,
          "is_bot": false,
          "headline": "`coverage.yml`",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2024-03-19T17:23:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f86ee5a6c2840795dcc6ea1b84ecf02e383bdec0",
          "body": null,
          "is_bot": false,
          "headline": "fix #92",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2023-10-26T05:34:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "588960cceeace49841c2669e17a7a51f891e541b",
          "body": "Implement string-join function",
          "is_bot": false,
          "headline": "Merge PR #88 from srebhan/string_join",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2023-05-05T06:46:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86ac085c3cea540200890c8379ed1f0cb879bef0",
          "body": null,
          "is_bot": false,
          "headline": "Update documentation",
          "author_name": "Sven Rebhan",
          "author_login": "srebhan",
          "committed_at": "2023-05-03T18:45:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9427308fc1755facbdcfd8105afc5bf7f7462460",
          "body": null,
          "is_bot": false,
          "headline": "Implement string-join()",
          "author_name": "Sven Rebhan",
          "author_login": "srebhan",
          "committed_at": "2023-05-03T18:45:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fa1ebb4798a54d1bc0284c38df4276784a7200b",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR '#86'",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2023-04-04T13:31:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ba0e514feb9220cbd1c69074d3e27363c76de43",
          "body": null,
          "is_bot": false,
          "headline": "errCh for benchmark goroutines",
          "author_name": "Lars Lehtonen",
          "author_login": "alrs",
          "committed_at": "2023-04-04T00:11:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adca7e38c5100b38a225d9224bf5eedcd865a277",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '#82'",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2023-02-15T06:37:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f16ad5c2d02a4f5d86b4b518df88fdce799fd105",
          "body": null,
          "is_bot": false,
          "headline": "add CompileWithNS",
          "author_name": "Richqrd",
          "author_login": "tingstad",
          "committed_at": "2023-02-03T11:53:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef5e98cfafae35410654abe22b4d3b2a39f71088",
          "body": null,
          "is_bot": false,
          "headline": "fix `last()` #76,#78",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2023-01-26T11:24:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6c2a7221973446a0dbf66edee0b45de5450f429",
          "body": "…lquery/issues/58], rollback to `Clone()` method supports concurrent query. #76,#78",
          "is_bot": false,
          "headline": "fix goroutines deadlock (htmlquery#58)[https://github.com/antchfx/htm…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2023-01-26T07:54:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba368a603dd4fbdce369eb76a2636e41444a929b",
          "body": "…ode(Self:false) for the next descendants nodes.",
          "is_bot": false,
          "headline": "fix https://github.com/antchfx/htmlquery/issues/52 Skip the current n…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2022-09-19T12:17:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfece7e444f00ae3aea4086a84ba9afdc0b93783",
          "body": null,
          "is_bot": false,
          "headline": "add `cacheQuery` to fix `last()` not working on subgroup. #76, #78",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2022-07-08T15:09:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2afacf4bcd5536643f2cf5387d734ed9ed21acc9",
          "body": null,
          "is_bot": false,
          "headline": "fix #74",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2022-05-21T15:35:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a0d04af5359b64d459025fc67dee0e5144f2bca",
          "body": "…[@b='../../@b']",
          "is_bot": false,
          "headline": "fix #75, supports filter expression using parent expression, like //a…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2022-05-21T06:04:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5da9b3e862b789b08d7d56b17c03d1f52bff54c1",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch '#72'",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2022-03-25T16:09:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c9e2d2087e151110ea492f75fcb08c30499ca2b",
          "body": "… searching for text nodes.",
          "is_bot": false,
          "headline": "fix(Following Sibling): Following Sibling does not work properly when…",
          "author_name": "Baroukh Ovadia",
          "author_login": null,
          "committed_at": "2022-03-24T20:11:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "696d1234f878e2c59321bb58cbc838250b1191e0",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR '#68'",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2021-09-25T03:04:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac0c19117c372a46698d2b11afff5d02e59808dd",
          "body": null,
          "is_bot": false,
          "headline": "add `(a/b)` expression and remove changelog",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2021-09-25T02:51:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d9cc617a6088a9b091b58f37aaefabddc266fbf5",
          "body": null,
          "is_bot": false,
          "headline": "Formatting.",
          "author_name": "Sven Rebhan",
          "author_login": "DocLambda",
          "committed_at": "2021-09-23T22:00:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ed399c1e3ea2d944bcb558dcd252b8bfccef606",
          "body": "…e converted to a number.",
          "is_bot": false,
          "headline": "Make all floating-point functions return NaN if arguments could not b…",
          "author_name": "Sven Rebhan",
          "author_login": "DocLambda",
          "committed_at": "2021-09-23T22:00:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50cf86ee613f95d93bcb5fad63ffd495c5a3c3a2",
          "body": "…ix #https://github.com/antchfx/htmlquery/issues/42",
          "is_bot": false,
          "headline": "add `groupQuery`, supports grouping node query, (xpath expression). f…",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2021-06-03T08:16:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd2afb821d43992abcefe1c70b1b41af5b640179",
          "body": null,
          "is_bot": false,
          "headline": "merge PR #58, supports `matches` XPath function. close #57",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2020-11-22T16:50:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e66c45d20399f1386aebf2ae568548adaa4ed531",
          "body": null,
          "is_bot": false,
          "headline": "wording update for matchesFunc",
          "author_name": "JF Technology",
          "author_login": "jf-tech",
          "committed_at": "2020-11-22T08:59:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8db18a030c436d03b1e06887a1d0c4670640217",
          "body": null,
          "is_bot": false,
          "headline": "add loadingcache rationale comment",
          "author_name": "JF Technology",
          "author_login": "jf-tech",
          "committed_at": "2020-11-22T08:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a7d19cb1a345bc07aedc95b1a237aee54e343f6",
          "body": null,
          "is_bot": false,
          "headline": "revert doc_test.go",
          "author_name": "JF Technology",
          "author_login": "jf-tech",
          "committed_at": "2020-11-22T08:36:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4cd31b6d62f72c79f8443a954882b7f9122f9e0c",
          "body": "See details in https://github.com/antchfx/xpath/issues/57.\n\nAlso created a number of `assert????` helpers in `assert_test.go` and moved `assertPanic` into it.",
          "is_bot": false,
          "headline": "Implement `matches` XPath function.",
          "author_name": "JF Technology",
          "author_login": "jf-tech",
          "committed_at": "2020-11-22T08:30:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5d9242ed21be6cae3717a1b422cfc1e7a1ce7d6",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #56",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2020-10-25T11:51:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdecca36bee24d92b376a7e644c9f1eb091402ad",
          "body": null,
          "is_bot": false,
          "headline": "add go.mod",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2020-10-25T05:18:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd14a124c6f9df8ddac8655cdf0406936267d847",
          "body": "Name LocalName, and NameSpace functions take a query argument. Clone the argument before running Select on it to get the first matching node on every evaluation",
          "is_bot": false,
          "headline": "Allow multiple evaulations of functions",
          "author_name": "Alec",
          "author_login": "AlecY",
          "committed_at": "2020-10-23T15:31:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ceb1934faab18f81bd18685d65e3903ae213c32",
          "body": "Support multiplication operator processing",
          "is_bot": false,
          "headline": "Merge pull request #54 from dutta-partha/support_mul_op",
          "author_name": "zhengchun",
          "author_login": "zhengchun",
          "committed_at": "2020-10-10T15:41:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6259715c19719b8c203e26afdf38353fdf6e614",
          "body": null,
          "is_bot": false,
          "headline": "Update build.go",
          "author_name": "Partha Dutta",
          "author_login": "dutta-partha",
          "committed_at": "2020-10-09T15:21:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 27,
      "commits_last_year": 22,
      "latest_release_at": "2026-07-17T12:06:02Z",
      "latest_release_tag": "v1.3.7",
      "releases_from_tags": false,
      "days_since_last_push": 1,
      "active_weeks_last_year": 7,
      "days_since_latest_release": 4,
      "mean_days_between_releases": 138.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/antchfx/xpath",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/antchfx/xpath",
          "is_deprecated": false,
          "latest_version": "v1.3.7",
          "repository_url": "https://github.com/antchfx/xpath",
          "versions_count": 27,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T05:34:51Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        }
      ]
    },
    "popularity": {
      "forks": 98,
      "stars": 743,
      "watchers": 11,
      "fork_history": {
        "days": [
          {
            "date": "2017-06-20",
            "count": 1
          },
          {
            "date": "2017-08-18",
            "count": 1
          },
          {
            "date": "2017-09-08",
            "count": 1
          },
          {
            "date": "2017-09-25",
            "count": 1
          },
          {
            "date": "2018-02-13",
            "count": 1
          },
          {
            "date": "2018-02-25",
            "count": 1
          },
          {
            "date": "2018-05-06",
            "count": 1
          },
          {
            "date": "2018-06-13",
            "count": 1
          },
          {
            "date": "2018-06-26",
            "count": 1
          },
          {
            "date": "2018-08-10",
            "count": 1
          },
          {
            "date": "2018-08-14",
            "count": 1
          },
          {
            "date": "2018-08-21",
            "count": 1
          },
          {
            "date": "2018-10-18",
            "count": 1
          },
          {
            "date": "2018-11-15",
            "count": 1
          },
          {
            "date": "2018-11-26",
            "count": 1
          },
          {
            "date": "2018-12-10",
            "count": 1
          },
          {
            "date": "2019-03-03",
            "count": 1
          },
          {
            "date": "2019-03-15",
            "count": 2
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-07-26",
            "count": 1
          },
          {
            "date": "2019-07-30",
            "count": 1
          },
          {
            "date": "2019-09-19",
            "count": 1
          },
          {
            "date": "2019-11-11",
            "count": 1
          },
          {
            "date": "2019-11-24",
            "count": 1
          },
          {
            "date": "2019-12-10",
            "count": 1
          },
          {
            "date": "2019-12-19",
            "count": 1
          },
          {
            "date": "2019-12-30",
            "count": 1
          },
          {
            "date": "2020-01-08",
            "count": 1
          },
          {
            "date": "2020-01-28",
            "count": 1
          },
          {
            "date": "2020-03-07",
            "count": 1
          },
          {
            "date": "2020-06-12",
            "count": 1
          },
          {
            "date": "2020-06-23",
            "count": 1
          },
          {
            "date": "2020-07-23",
            "count": 1
          },
          {
            "date": "2020-07-24",
            "count": 1
          },
          {
            "date": "2020-10-04",
            "count": 1
          },
          {
            "date": "2020-10-06",
            "count": 1
          },
          {
            "date": "2020-10-09",
            "count": 1
          },
          {
            "date": "2020-10-23",
            "count": 1
          },
          {
            "date": "2020-12-02",
            "count": 1
          },
          {
            "date": "2021-01-06",
            "count": 1
          },
          {
            "date": "2021-01-20",
            "count": 1
          },
          {
            "date": "2021-01-23",
            "count": 1
          },
          {
            "date": "2021-02-09",
            "count": 1
          },
          {
            "date": "2021-02-12",
            "count": 1
          },
          {
            "date": "2021-03-05",
            "count": 1
          },
          {
            "date": "2021-04-22",
            "count": 1
          },
          {
            "date": "2021-06-28",
            "count": 1
          },
          {
            "date": "2021-08-02",
            "count": 1
          },
          {
            "date": "2021-08-28",
            "count": 1
          },
          {
            "date": "2021-09-23",
            "count": 1
          },
          {
            "date": "2021-12-04",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 1
          },
          {
            "date": "2022-01-22",
            "count": 1
          },
          {
            "date": "2022-01-24",
            "count": 1
          },
          {
            "date": "2022-02-17",
            "count": 2
          },
          {
            "date": "2022-02-24",
            "count": 1
          },
          {
            "date": "2022-03-24",
            "count": 1
          },
          {
            "date": "2022-06-02",
            "count": 1
          },
          {
            "date": "2022-06-18",
            "count": 1
          },
          {
            "date": "2022-07-28",
            "count": 1
          },
          {
            "date": "2022-10-01",
            "count": 1
          },
          {
            "date": "2022-11-04",
            "count": 1
          },
          {
            "date": "2023-02-20",
            "count": 1
          },
          {
            "date": "2023-03-17",
            "count": 1
          },
          {
            "date": "2023-03-30",
            "count": 1
          },
          {
            "date": "2023-05-03",
            "count": 1
          },
          {
            "date": "2023-07-04",
            "count": 2
          },
          {
            "date": "2023-09-25",
            "count": 1
          },
          {
            "date": "2023-10-24",
            "count": 1
          },
          {
            "date": "2023-12-25",
            "count": 1
          },
          {
            "date": "2024-04-08",
            "count": 1
          },
          {
            "date": "2024-05-09",
            "count": 1
          },
          {
            "date": "2024-05-16",
            "count": 1
          },
          {
            "date": "2024-05-28",
            "count": 1
          },
          {
            "date": "2024-07-19",
            "count": 1
          },
          {
            "date": "2024-09-07",
            "count": 1
          },
          {
            "date": "2024-09-23",
            "count": 1
          },
          {
            "date": "2024-10-01",
            "count": 1
          },
          {
            "date": "2024-10-07",
            "count": 1
          },
          {
            "date": "2025-01-03",
            "count": 1
          },
          {
            "date": "2025-02-05",
            "count": 1
          },
          {
            "date": "2025-04-05",
            "count": 1
          },
          {
            "date": "2025-04-18",
            "count": 1
          },
          {
            "date": "2025-05-29",
            "count": 1
          },
          {
            "date": "2025-06-03",
            "count": 1
          },
          {
            "date": "2025-08-17",
            "count": 1
          },
          {
            "date": "2025-08-20",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          },
          {
            "date": "2026-07-18",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 3
          }
        ],
        "complete": true,
        "collected": 98,
        "total_forks": 98
      },
      "star_history": {
        "days": [
          {
            "date": "2016-11-14",
            "count": 1
          },
          {
            "date": "2016-11-23",
            "count": 1
          },
          {
            "date": "2016-11-24",
            "count": 1
          },
          {
            "date": "2016-12-31",
            "count": 1
          },
          {
            "date": "2017-03-15",
            "count": 2
          },
          {
            "date": "2017-05-14",
            "count": 1
          },
          {
            "date": "2017-05-16",
            "count": 1
          },
          {
            "date": "2017-05-28",
            "count": 1
          },
          {
            "date": "2017-06-09",
            "count": 1
          },
          {
            "date": "2017-06-12",
            "count": 2
          },
          {
            "date": "2017-06-13",
            "count": 1
          },
          {
            "date": "2017-06-25",
            "count": 1
          },
          {
            "date": "2017-06-30",
            "count": 1
          },
          {
            "date": "2017-07-10",
            "count": 1
          },
          {
            "date": "2017-07-16",
            "count": 1
          },
          {
            "date": "2017-07-19",
            "count": 1
          },
          {
            "date": "2017-08-08",
            "count": 1
          },
          {
            "date": "2017-08-22",
            "count": 2
          },
          {
            "date": "2017-08-23",
            "count": 2
          },
          {
            "date": "2017-09-01",
            "count": 1
          },
          {
            "date": "2017-09-21",
            "count": 1
          },
          {
            "date": "2017-09-22",
            "count": 1
          },
          {
            "date": "2017-10-11",
            "count": 1
          },
          {
            "date": "2017-10-28",
            "count": 1
          },
          {
            "date": "2017-11-06",
            "count": 1
          },
          {
            "date": "2017-11-11",
            "count": 1
          },
          {
            "date": "2017-12-05",
            "count": 1
          },
          {
            "date": "2017-12-16",
            "count": 1
          },
          {
            "date": "2018-01-06",
            "count": 1
          },
          {
            "date": "2018-01-09",
            "count": 1
          },
          {
            "date": "2018-01-10",
            "count": 1
          },
          {
            "date": "2018-01-12",
            "count": 1
          },
          {
            "date": "2018-01-18",
            "count": 1
          },
          {
            "date": "2018-01-24",
            "count": 1
          },
          {
            "date": "2018-01-25",
            "count": 1
          },
          {
            "date": "2018-01-29",
            "count": 1
          },
          {
            "date": "2018-02-19",
            "count": 1
          },
          {
            "date": "2018-03-14",
            "count": 1
          },
          {
            "date": "2018-03-21",
            "count": 1
          },
          {
            "date": "2018-03-25",
            "count": 2
          },
          {
            "date": "2018-03-26",
            "count": 1
          },
          {
            "date": "2018-03-29",
            "count": 1
          },
          {
            "date": "2018-04-02",
            "count": 1
          },
          {
            "date": "2018-04-03",
            "count": 1
          },
          {
            "date": "2018-04-17",
            "count": 1
          },
          {
            "date": "2018-04-25",
            "count": 1
          },
          {
            "date": "2018-04-30",
            "count": 1
          },
          {
            "date": "2018-05-06",
            "count": 1
          },
          {
            "date": "2018-05-17",
            "count": 2
          },
          {
            "date": "2018-06-03",
            "count": 1
          },
          {
            "date": "2018-06-12",
            "count": 1
          },
          {
            "date": "2018-07-02",
            "count": 1
          },
          {
            "date": "2018-07-21",
            "count": 1
          },
          {
            "date": "2018-07-22",
            "count": 1
          },
          {
            "date": "2018-07-27",
            "count": 1
          },
          {
            "date": "2018-08-02",
            "count": 1
          },
          {
            "date": "2018-08-13",
            "count": 1
          },
          {
            "date": "2018-08-14",
            "count": 7
          },
          {
            "date": "2018-08-15",
            "count": 1
          },
          {
            "date": "2018-08-20",
            "count": 1
          },
          {
            "date": "2018-08-21",
            "count": 1
          },
          {
            "date": "2018-08-24",
            "count": 1
          },
          {
            "date": "2018-09-02",
            "count": 1
          },
          {
            "date": "2018-09-19",
            "count": 1
          },
          {
            "date": "2018-09-24",
            "count": 1
          },
          {
            "date": "2018-09-25",
            "count": 1
          },
          {
            "date": "2018-10-11",
            "count": 1
          },
          {
            "date": "2018-10-12",
            "count": 1
          },
          {
            "date": "2018-10-29",
            "count": 1
          },
          {
            "date": "2018-10-30",
            "count": 1
          },
          {
            "date": "2018-11-05",
            "count": 1
          },
          {
            "date": "2018-11-06",
            "count": 1
          },
          {
            "date": "2018-11-11",
            "count": 1
          },
          {
            "date": "2018-11-22",
            "count": 1
          },
          {
            "date": "2018-11-30",
            "count": 1
          },
          {
            "date": "2018-12-01",
            "count": 1
          },
          {
            "date": "2018-12-10",
            "count": 1
          },
          {
            "date": "2018-12-14",
            "count": 1
          },
          {
            "date": "2018-12-18",
            "count": 1
          },
          {
            "date": "2018-12-21",
            "count": 1
          },
          {
            "date": "2018-12-31",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 2
          },
          {
            "date": "2019-01-05",
            "count": 1
          },
          {
            "date": "2019-01-06",
            "count": 1
          },
          {
            "date": "2019-01-14",
            "count": 1
          },
          {
            "date": "2019-01-22",
            "count": 1
          },
          {
            "date": "2019-01-28",
            "count": 1
          },
          {
            "date": "2019-01-30",
            "count": 2
          },
          {
            "date": "2019-02-06",
            "count": 1
          },
          {
            "date": "2019-02-10",
            "count": 1
          },
          {
            "date": "2019-02-15",
            "count": 1
          },
          {
            "date": "2019-02-18",
            "count": 1
          },
          {
            "date": "2019-02-22",
            "count": 1
          },
          {
            "date": "2019-02-28",
            "count": 1
          },
          {
            "date": "2019-03-03",
            "count": 1
          },
          {
            "date": "2019-03-10",
            "count": 1
          },
          {
            "date": "2019-03-11",
            "count": 1
          },
          {
            "date": "2019-03-20",
            "count": 1
          },
          {
            "date": "2019-03-21",
            "count": 2
          },
          {
            "date": "2019-03-22",
            "count": 1
          },
          {
            "date": "2019-03-25",
            "count": 1
          },
          {
            "date": "2019-04-02",
            "count": 1
          },
          {
            "date": "2019-04-09",
            "count": 1
          },
          {
            "date": "2019-04-15",
            "count": 1
          },
          {
            "date": "2019-04-16",
            "count": 1
          },
          {
            "date": "2019-04-28",
            "count": 1
          },
          {
            "date": "2019-05-11",
            "count": 1
          },
          {
            "date": "2019-05-15",
            "count": 1
          },
          {
            "date": "2019-05-18",
            "count": 1
          },
          {
            "date": "2019-05-24",
            "count": 1
          },
          {
            "date": "2019-05-25",
            "count": 1
          },
          {
            "date": "2019-06-01",
            "count": 1
          },
          {
            "date": "2019-06-06",
            "count": 2
          },
          {
            "date": "2019-06-12",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 1
          },
          {
            "date": "2019-06-28",
            "count": 2
          },
          {
            "date": "2019-06-30",
            "count": 1
          },
          {
            "date": "2019-07-01",
            "count": 1
          },
          {
            "date": "2019-07-03",
            "count": 2
          },
          {
            "date": "2019-07-04",
            "count": 1
          },
          {
            "date": "2019-07-10",
            "count": 1
          },
          {
            "date": "2019-07-11",
            "count": 1
          },
          {
            "date": "2019-07-13",
            "count": 1
          },
          {
            "date": "2019-07-17",
            "count": 1
          },
          {
            "date": "2019-07-22",
            "count": 1
          },
          {
            "date": "2019-07-24",
            "count": 1
          },
          {
            "date": "2019-07-25",
            "count": 1
          },
          {
            "date": "2019-07-26",
            "count": 3
          },
          {
            "date": "2019-08-06",
            "count": 2
          },
          {
            "date": "2019-08-07",
            "count": 1
          },
          {
            "date": "2019-08-08",
            "count": 1
          },
          {
            "date": "2019-08-13",
            "count": 1
          },
          {
            "date": "2019-08-17",
            "count": 1
          },
          {
            "date": "2019-08-22",
            "count": 1
          },
          {
            "date": "2019-08-25",
            "count": 1
          },
          {
            "date": "2019-08-30",
            "count": 1
          },
          {
            "date": "2019-09-05",
            "count": 1
          },
          {
            "date": "2019-09-06",
            "count": 2
          },
          {
            "date": "2019-09-09",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 1
          },
          {
            "date": "2019-09-15",
            "count": 1
          },
          {
            "date": "2019-09-20",
            "count": 1
          },
          {
            "date": "2019-09-24",
            "count": 1
          },
          {
            "date": "2019-10-21",
            "count": 1
          },
          {
            "date": "2019-10-22",
            "count": 1
          },
          {
            "date": "2019-10-23",
            "count": 1
          },
          {
            "date": "2019-10-26",
            "count": 1
          },
          {
            "date": "2019-10-28",
            "count": 1
          },
          {
            "date": "2019-10-31",
            "count": 1
          },
          {
            "date": "2019-11-08",
            "count": 2
          },
          {
            "date": "2019-11-11",
            "count": 1
          },
          {
            "date": "2019-11-14",
            "count": 1
          },
          {
            "date": "2019-11-20",
            "count": 1
          },
          {
            "date": "2019-11-22",
            "count": 2
          },
          {
            "date": "2019-12-06",
            "count": 1
          },
          {
            "date": "2019-12-12",
            "count": 1
          },
          {
            "date": "2019-12-13",
            "count": 2
          },
          {
            "date": "2019-12-15",
            "count": 1
          },
          {
            "date": "2019-12-26",
            "count": 1
          },
          {
            "date": "2019-12-30",
            "count": 1
          },
          {
            "date": "2019-12-31",
            "count": 1
          },
          {
            "date": "2020-01-04",
            "count": 1
          },
          {
            "date": "2020-01-05",
            "count": 2
          },
          {
            "date": "2020-01-07",
            "count": 1
          },
          {
            "date": "2020-01-08",
            "count": 1
          },
          {
            "date": "2020-01-10",
            "count": 1
          },
          {
            "date": "2020-01-13",
            "count": 1
          },
          {
            "date": "2020-01-15",
            "count": 1
          },
          {
            "date": "2020-01-16",
            "count": 18
          },
          {
            "date": "2020-01-17",
            "count": 19
          },
          {
            "date": "2020-01-18",
            "count": 3
          },
          {
            "date": "2020-01-19",
            "count": 3
          },
          {
            "date": "2020-01-20",
            "count": 1
          },
          {
            "date": "2020-01-22",
            "count": 3
          },
          {
            "date": "2020-01-23",
            "count": 1
          },
          {
            "date": "2020-01-30",
            "count": 3
          },
          {
            "date": "2020-01-31",
            "count": 2
          },
          {
            "date": "2020-02-06",
            "count": 2
          },
          {
            "date": "2020-02-09",
            "count": 1
          },
          {
            "date": "2020-02-11",
            "count": 1
          },
          {
            "date": "2020-02-13",
            "count": 1
          },
          {
            "date": "2020-02-16",
            "count": 1
          },
          {
            "date": "2020-02-18",
            "count": 1
          },
          {
            "date": "2020-02-22",
            "count": 1
          },
          {
            "date": "2020-02-25",
            "count": 1
          },
          {
            "date": "2020-02-29",
            "count": 1
          },
          {
            "date": "2020-03-03",
            "count": 1
          },
          {
            "date": "2020-03-06",
            "count": 1
          },
          {
            "date": "2020-03-13",
            "count": 1
          },
          {
            "date": "2020-03-14",
            "count": 1
          },
          {
            "date": "2020-03-18",
            "count": 2
          },
          {
            "date": "2020-04-01",
            "count": 1
          },
          {
            "date": "2020-04-04",
            "count": 1
          },
          {
            "date": "2020-04-17",
            "count": 2
          },
          {
            "date": "2020-04-18",
            "count": 1
          },
          {
            "date": "2020-04-19",
            "count": 1
          },
          {
            "date": "2020-04-26",
            "count": 1
          },
          {
            "date": "2020-04-29",
            "count": 1
          },
          {
            "date": "2020-05-07",
            "count": 2
          },
          {
            "date": "2020-05-18",
            "count": 1
          },
          {
            "date": "2020-05-19",
            "count": 1
          },
          {
            "date": "2020-05-21",
            "count": 1
          },
          {
            "date": "2020-05-30",
            "count": 1
          },
          {
            "date": "2020-06-02",
            "count": 1
          },
          {
            "date": "2020-06-03",
            "count": 2
          },
          {
            "date": "2020-06-04",
            "count": 1
          },
          {
            "date": "2020-06-11",
            "count": 1
          },
          {
            "date": "2020-06-14",
            "count": 1
          },
          {
            "date": "2020-06-15",
            "count": 1
          },
          {
            "date": "2020-06-18",
            "count": 2
          },
          {
            "date": "2020-06-21",
            "count": 1
          },
          {
            "date": "2020-06-29",
            "count": 1
          },
          {
            "date": "2020-07-01",
            "count": 1
          },
          {
            "date": "2020-07-02",
            "count": 1
          },
          {
            "date": "2020-07-04",
            "count": 1
          },
          {
            "date": "2020-07-06",
            "count": 2
          },
          {
            "date": "2020-07-08",
            "count": 1
          },
          {
            "date": "2020-07-13",
            "count": 1
          },
          {
            "date": "2020-07-16",
            "count": 1
          },
          {
            "date": "2020-07-24",
            "count": 1
          },
          {
            "date": "2020-07-29",
            "count": 1
          },
          {
            "date": "2020-08-03",
            "count": 1
          },
          {
            "date": "2020-08-12",
            "count": 1
          },
          {
            "date": "2020-08-17",
            "count": 1
          },
          {
            "date": "2020-08-21",
            "count": 1
          },
          {
            "date": "2020-08-25",
            "count": 1
          },
          {
            "date": "2020-09-04",
            "count": 1
          },
          {
            "date": "2020-09-08",
            "count": 1
          },
          {
            "date": "2020-09-12",
            "count": 1
          },
          {
            "date": "2020-09-18",
            "count": 1
          },
          {
            "date": "2020-09-25",
            "count": 1
          },
          {
            "date": "2020-09-26",
            "count": 1
          },
          {
            "date": "2020-09-28",
            "count": 1
          },
          {
            "date": "2020-09-29",
            "count": 1
          },
          {
            "date": "2020-10-01",
            "count": 3
          },
          {
            "date": "2020-10-15",
            "count": 1
          },
          {
            "date": "2020-10-21",
            "count": 1
          },
          {
            "date": "2020-10-22",
            "count": 1
          },
          {
            "date": "2020-10-26",
            "count": 1
          },
          {
            "date": "2020-10-27",
            "count": 1
          },
          {
            "date": "2020-11-01",
            "count": 1
          },
          {
            "date": "2020-11-02",
            "count": 1
          },
          {
            "date": "2020-11-05",
            "count": 1
          },
          {
            "date": "2020-11-09",
            "count": 1
          },
          {
            "date": "2020-11-10",
            "count": 2
          },
          {
            "date": "2020-11-11",
            "count": 1
          },
          {
            "date": "2020-11-15",
            "count": 1
          },
          {
            "date": "2020-11-16",
            "count": 1
          },
          {
            "date": "2020-11-17",
            "count": 1
          },
          {
            "date": "2020-11-22",
            "count": 1
          },
          {
            "date": "2020-11-24",
            "count": 2
          },
          {
            "date": "2020-12-10",
            "count": 1
          },
          {
            "date": "2020-12-11",
            "count": 1
          },
          {
            "date": "2020-12-19",
            "count": 1
          },
          {
            "date": "2020-12-23",
            "count": 3
          },
          {
            "date": "2020-12-24",
            "count": 1
          },
          {
            "date": "2021-01-03",
            "count": 1
          },
          {
            "date": "2021-01-07",
            "count": 1
          },
          {
            "date": "2021-01-11",
            "count": 1
          },
          {
            "date": "2021-01-12",
            "count": 1
          },
          {
            "date": "2021-01-13",
            "count": 1
          },
          {
            "date": "2021-01-18",
            "count": 1
          },
          {
            "date": "2021-01-25",
            "count": 1
          },
          {
            "date": "2021-01-26",
            "count": 1
          },
          {
            "date": "2021-02-03",
            "count": 1
          },
          {
            "date": "2021-02-15",
            "count": 1
          },
          {
            "date": "2021-03-03",
            "count": 1
          },
          {
            "date": "2021-03-07",
            "count": 1
          },
          {
            "date": "2021-03-10",
            "count": 1
          },
          {
            "date": "2021-03-16",
            "count": 1
          },
          {
            "date": "2021-03-17",
            "count": 2
          },
          {
            "date": "2021-03-21",
            "count": 1
          },
          {
            "date": "2021-03-26",
            "count": 1
          },
          {
            "date": "2021-04-02",
            "count": 2
          },
          {
            "date": "2021-04-03",
            "count": 1
          },
          {
            "date": "2021-04-13",
            "count": 1
          },
          {
            "date": "2021-04-14",
            "count": 1
          },
          {
            "date": "2021-04-15",
            "count": 1
          },
          {
            "date": "2021-04-16",
            "count": 1
          },
          {
            "date": "2021-04-20",
            "count": 2
          },
          {
            "date": "2021-04-23",
            "count": 1
          },
          {
            "date": "2021-04-26",
            "count": 1
          },
          {
            "date": "2021-04-27",
            "count": 2
          },
          {
            "date": "2021-04-30",
            "count": 1
          },
          {
            "date": "2021-05-01",
            "count": 2
          },
          {
            "date": "2021-05-14",
            "count": 1
          },
          {
            "date": "2021-05-16",
            "count": 1
          },
          {
            "date": "2021-05-18",
            "count": 1
          },
          {
            "date": "2021-05-21",
            "count": 1
          },
          {
            "date": "2021-06-20",
            "count": 1
          },
          {
            "date": "2021-06-23",
            "count": 1
          },
          {
            "date": "2021-07-09",
            "count": 1
          },
          {
            "date": "2021-07-14",
            "count": 1
          },
          {
            "date": "2021-07-16",
            "count": 1
          },
          {
            "date": "2021-07-20",
            "count": 2
          },
          {
            "date": "2021-07-27",
            "count": 1
          },
          {
            "date": "2021-07-28",
            "count": 2
          },
          {
            "date": "2021-07-31",
            "count": 1
          },
          {
            "date": "2021-08-06",
            "count": 2
          },
          {
            "date": "2021-08-08",
            "count": 1
          },
          {
            "date": "2021-08-12",
            "count": 1
          },
          {
            "date": "2021-08-13",
            "count": 1
          },
          {
            "date": "2021-09-03",
            "count": 1
          },
          {
            "date": "2021-09-13",
            "count": 1
          },
          {
            "date": "2021-09-19",
            "count": 1
          },
          {
            "date": "2021-09-26",
            "count": 1
          },
          {
            "date": "2021-09-29",
            "count": 1
          },
          {
            "date": "2021-10-04",
            "count": 1
          },
          {
            "date": "2021-10-06",
            "count": 1
          },
          {
            "date": "2021-10-10",
            "count": 1
          },
          {
            "date": "2021-10-17",
            "count": 1
          },
          {
            "date": "2021-10-21",
            "count": 1
          },
          {
            "date": "2021-10-29",
            "count": 1
          },
          {
            "date": "2021-10-31",
            "count": 1
          },
          {
            "date": "2021-11-01",
            "count": 1
          },
          {
            "date": "2021-11-04",
            "count": 1
          },
          {
            "date": "2021-11-05",
            "count": 1
          },
          {
            "date": "2021-11-07",
            "count": 1
          },
          {
            "date": "2021-11-12",
            "count": 1
          },
          {
            "date": "2021-11-13",
            "count": 1
          },
          {
            "date": "2021-11-18",
            "count": 1
          },
          {
            "date": "2021-11-21",
            "count": 1
          },
          {
            "date": "2021-11-22",
            "count": 1
          },
          {
            "date": "2021-11-30",
            "count": 1
          },
          {
            "date": "2021-12-03",
            "count": 1
          },
          {
            "date": "2021-12-16",
            "count": 1
          },
          {
            "date": "2021-12-19",
            "count": 1
          },
          {
            "date": "2021-12-20",
            "count": 1
          },
          {
            "date": "2021-12-24",
            "count": 1
          },
          {
            "date": "2021-12-27",
            "count": 1
          },
          {
            "date": "2021-12-29",
            "count": 1
          },
          {
            "date": "2021-12-30",
            "count": 2
          },
          {
            "date": "2022-01-05",
            "count": 1
          },
          {
            "date": "2022-01-12",
            "count": 2
          },
          {
            "date": "2022-01-20",
            "count": 1
          },
          {
            "date": "2022-01-21",
            "count": 1
          },
          {
            "date": "2022-01-22",
            "count": 2
          },
          {
            "date": "2022-01-24",
            "count": 1
          },
          {
            "date": "2022-01-26",
            "count": 1
          },
          {
            "date": "2022-01-27",
            "count": 1
          },
          {
            "date": "2022-02-05",
            "count": 1
          },
          {
            "date": "2022-02-14",
            "count": 1
          },
          {
            "date": "2022-02-15",
            "count": 1
          },
          {
            "date": "2022-02-16",
            "count": 1
          },
          {
            "date": "2022-02-24",
            "count": 1
          },
          {
            "date": "2022-03-03",
            "count": 1
          },
          {
            "date": "2022-03-05",
            "count": 1
          },
          {
            "date": "2022-03-10",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-03-29",
            "count": 1
          },
          {
            "date": "2022-04-02",
            "count": 1
          },
          {
            "date": "2022-04-05",
            "count": 1
          },
          {
            "date": "2022-04-08",
            "count": 1
          },
          {
            "date": "2022-04-16",
            "count": 1
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-23",
            "count": 1
          },
          {
            "date": "2022-04-24",
            "count": 1
          },
          {
            "date": "2022-04-25",
            "count": 1
          },
          {
            "date": "2022-04-28",
            "count": 1
          },
          {
            "date": "2022-05-01",
            "count": 1
          },
          {
            "date": "2022-05-04",
            "count": 1
          },
          {
            "date": "2022-05-07",
            "count": 1
          },
          {
            "date": "2022-05-08",
            "count": 1
          },
          {
            "date": "2022-05-27",
            "count": 1
          },
          {
            "date": "2022-05-30",
            "count": 1
          },
          {
            "date": "2022-06-09",
            "count": 2
          },
          {
            "date": "2022-06-10",
            "count": 1
          },
          {
            "date": "2022-06-14",
            "count": 2
          },
          {
            "date": "2022-06-20",
            "count": 1
          },
          {
            "date": "2022-06-21",
            "count": 2
          },
          {
            "date": "2022-06-22",
            "count": 1
          },
          {
            "date": "2022-06-29",
            "count": 1
          },
          {
            "date": "2022-07-05",
            "count": 2
          },
          {
            "date": "2022-07-06",
            "count": 1
          },
          {
            "date": "2022-07-19",
            "count": 1
          },
          {
            "date": "2022-07-28",
            "count": 1
          },
          {
            "date": "2022-08-04",
            "count": 1
          },
          {
            "date": "2022-08-07",
            "count": 1
          },
          {
            "date": "2022-08-08",
            "count": 4
          },
          {
            "date": "2022-08-09",
            "count": 2
          },
          {
            "date": "2022-08-10",
            "count": 1
          },
          {
            "date": "2022-08-11",
            "count": 1
          },
          {
            "date": "2022-08-12",
            "count": 1
          },
          {
            "date": "2022-08-17",
            "count": 1
          },
          {
            "date": "2022-08-20",
            "count": 1
          },
          {
            "date": "2022-08-25",
            "count": 1
          },
          {
            "date": "2022-09-08",
            "count": 1
          },
          {
            "date": "2022-09-10",
            "count": 1
          },
          {
            "date": "2022-09-13",
            "count": 1
          },
          {
            "date": "2022-09-20",
            "count": 1
          },
          {
            "date": "2022-09-25",
            "count": 1
          },
          {
            "date": "2022-09-27",
            "count": 2
          },
          {
            "date": "2022-09-28",
            "count": 1
          },
          {
            "date": "2022-09-30",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 1
          },
          {
            "date": "2022-10-11",
            "count": 2
          },
          {
            "date": "2022-10-15",
            "count": 1
          },
          {
            "date": "2022-10-23",
            "count": 1
          },
          {
            "date": "2022-10-25",
            "count": 1
          },
          {
            "date": "2022-10-26",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2022-11-03",
            "count": 1
          },
          {
            "date": "2022-11-06",
            "count": 1
          },
          {
            "date": "2022-11-10",
            "count": 1
          },
          {
            "date": "2022-11-18",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-11-25",
            "count": 1
          },
          {
            "date": "2022-11-26",
            "count": 1
          },
          {
            "date": "2022-12-02",
            "count": 1
          },
          {
            "date": "2022-12-12",
            "count": 1
          },
          {
            "date": "2022-12-26",
            "count": 1
          },
          {
            "date": "2022-12-27",
            "count": 1
          },
          {
            "date": "2022-12-28",
            "count": 1
          },
          {
            "date": "2023-01-09",
            "count": 1
          },
          {
            "date": "2023-01-17",
            "count": 1
          },
          {
            "date": "2023-01-21",
            "count": 1
          },
          {
            "date": "2023-01-24",
            "count": 3
          },
          {
            "date": "2023-01-25",
            "count": 1
          },
          {
            "date": "2023-01-26",
            "count": 1
          },
          {
            "date": "2023-01-29",
            "count": 1
          },
          {
            "date": "2023-01-31",
            "count": 2
          },
          {
            "date": "2023-02-09",
            "count": 1
          },
          {
            "date": "2023-02-10",
            "count": 1
          },
          {
            "date": "2023-02-14",
            "count": 1
          },
          {
            "date": "2023-02-16",
            "count": 2
          },
          {
            "date": "2023-02-18",
            "count": 1
          },
          {
            "date": "2023-02-19",
            "count": 1
          },
          {
            "date": "2023-02-20",
            "count": 1
          },
          {
            "date": "2023-02-21",
            "count": 1
          },
          {
            "date": "2023-02-26",
            "count": 1
          },
          {
            "date": "2023-02-28",
            "count": 1
          },
          {
            "date": "2023-03-02",
            "count": 2
          },
          {
            "date": "2023-03-04",
            "count": 1
          },
          {
            "date": "2023-03-09",
            "count": 1
          },
          {
            "date": "2023-03-16",
            "count": 1
          },
          {
            "date": "2023-03-21",
            "count": 1
          },
          {
            "date": "2023-03-31",
            "count": 1
          },
          {
            "date": "2023-04-04",
            "count": 1
          },
          {
            "date": "2023-04-08",
            "count": 1
          },
          {
            "date": "2023-04-09",
            "count": 1
          },
          {
            "date": "2023-04-16",
            "count": 1
          },
          {
            "date": "2023-04-21",
            "count": 1
          },
          {
            "date": "2023-04-25",
            "count": 1
          },
          {
            "date": "2023-04-27",
            "count": 6
          },
          {
            "date": "2023-05-04",
            "count": 1
          },
          {
            "date": "2023-05-06",
            "count": 1
          },
          {
            "date": "2023-05-09",
            "count": 1
          },
          {
            "date": "2023-05-29",
            "count": 1
          },
          {
            "date": "2023-05-30",
            "count": 2
          },
          {
            "date": "2023-06-03",
            "count": 1
          },
          {
            "date": "2023-06-09",
            "count": 1
          },
          {
            "date": "2023-06-12",
            "count": 1
          },
          {
            "date": "2023-06-26",
            "count": 1
          },
          {
            "date": "2023-06-29",
            "count": 1
          },
          {
            "date": "2023-06-30",
            "count": 1
          },
          {
            "date": "2023-07-08",
            "count": 1
          },
          {
            "date": "2023-07-10",
            "count": 3
          },
          {
            "date": "2023-07-11",
            "count": 1
          },
          {
            "date": "2023-07-14",
            "count": 1
          },
          {
            "date": "2023-07-22",
            "count": 1
          },
          {
            "date": "2023-07-26",
            "count": 1
          },
          {
            "date": "2023-08-01",
            "count": 1
          },
          {
            "date": "2023-09-01",
            "count": 1
          },
          {
            "date": "2023-09-10",
            "count": 1
          },
          {
            "date": "2023-09-20",
            "count": 1
          },
          {
            "date": "2023-09-29",
            "count": 1
          },
          {
            "date": "2023-10-04",
            "count": 1
          },
          {
            "date": "2023-10-05",
            "count": 1
          },
          {
            "date": "2023-10-08",
            "count": 1
          },
          {
            "date": "2023-10-14",
            "count": 1
          },
          {
            "date": "2023-10-20",
            "count": 1
          },
          {
            "date": "2023-10-23",
            "count": 1
          },
          {
            "date": "2023-10-24",
            "count": 2
          },
          {
            "date": "2023-11-02",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-09",
            "count": 1
          },
          {
            "date": "2023-11-17",
            "count": 1
          },
          {
            "date": "2023-11-19",
            "count": 1
          },
          {
            "date": "2023-11-23",
            "count": 1
          },
          {
            "date": "2023-11-26",
            "count": 1
          },
          {
            "date": "2023-11-29",
            "count": 1
          },
          {
            "date": "2023-12-06",
            "count": 1
          },
          {
            "date": "2023-12-12",
            "count": 1
          },
          {
            "date": "2023-12-13",
            "count": 1
          },
          {
            "date": "2023-12-19",
            "count": 1
          },
          {
            "date": "2023-12-24",
            "count": 1
          },
          {
            "date": "2023-12-25",
            "count": 2
          },
          {
            "date": "2023-12-29",
            "count": 1
          },
          {
            "date": "2024-01-04",
            "count": 2
          },
          {
            "date": "2024-01-07",
            "count": 1
          },
          {
            "date": "2024-01-08",
            "count": 1
          },
          {
            "date": "2024-01-11",
            "count": 2
          },
          {
            "date": "2024-01-15",
            "count": 1
          },
          {
            "date": "2024-01-18",
            "count": 1
          },
          {
            "date": "2024-01-19",
            "count": 1
          },
          {
            "date": "2024-01-26",
            "count": 2
          },
          {
            "date": "2024-01-29",
            "count": 1
          },
          {
            "date": "2024-01-30",
            "count": 1
          },
          {
            "date": "2024-02-11",
            "count": 1
          },
          {
            "date": "2024-02-12",
            "count": 2
          },
          {
            "date": "2024-02-15",
            "count": 1
          },
          {
            "date": "2024-02-22",
            "count": 1
          },
          {
            "date": "2024-03-06",
            "count": 1
          },
          {
            "date": "2024-03-08",
            "count": 1
          },
          {
            "date": "2024-03-12",
            "count": 1
          },
          {
            "date": "2024-03-20",
            "count": 1
          },
          {
            "date": "2024-03-22",
            "count": 1
          },
          {
            "date": "2024-03-28",
            "count": 1
          },
          {
            "date": "2024-04-04",
            "count": 1
          },
          {
            "date": "2024-04-06",
            "count": 1
          },
          {
            "date": "2024-04-13",
            "count": 1
          },
          {
            "date": "2024-04-17",
            "count": 1
          },
          {
            "date": "2024-04-18",
            "count": 1
          },
          {
            "date": "2024-04-22",
            "count": 1
          },
          {
            "date": "2024-04-26",
            "count": 1
          },
          {
            "date": "2024-04-30",
            "count": 1
          },
          {
            "date": "2024-05-09",
            "count": 1
          },
          {
            "date": "2024-05-18",
            "count": 1
          },
          {
            "date": "2024-05-19",
            "count": 1
          },
          {
            "date": "2024-05-21",
            "count": 1
          },
          {
            "date": "2024-05-28",
            "count": 1
          },
          {
            "date": "2024-06-01",
            "count": 1
          },
          {
            "date": "2024-06-08",
            "count": 1
          },
          {
            "date": "2024-06-09",
            "count": 1
          },
          {
            "date": "2024-06-12",
            "count": 1
          },
          {
            "date": "2024-06-26",
            "count": 1
          },
          {
            "date": "2024-06-30",
            "count": 1
          },
          {
            "date": "2024-07-05",
            "count": 1
          },
          {
            "date": "2024-07-17",
            "count": 1
          },
          {
            "date": "2024-07-27",
            "count": 1
          },
          {
            "date": "2024-07-30",
            "count": 1
          },
          {
            "date": "2024-08-01",
            "count": 4
          },
          {
            "date": "2024-08-06",
            "count": 1
          },
          {
            "date": "2024-08-15",
            "count": 1
          },
          {
            "date": "2024-08-19",
            "count": 1
          },
          {
            "date": "2024-08-22",
            "count": 1
          },
          {
            "date": "2024-09-05",
            "count": 2
          },
          {
            "date": "2024-09-09",
            "count": 1
          },
          {
            "date": "2024-09-13",
            "count": 1
          },
          {
            "date": "2024-09-14",
            "count": 1
          },
          {
            "date": "2024-09-18",
            "count": 1
          },
          {
            "date": "2024-09-24",
            "count": 1
          },
          {
            "date": "2024-09-26",
            "count": 1
          },
          {
            "date": "2024-09-27",
            "count": 1
          },
          {
            "date": "2024-10-08",
            "count": 2
          },
          {
            "date": "2024-10-09",
            "count": 1
          },
          {
            "date": "2024-10-12",
            "count": 1
          },
          {
            "date": "2024-10-18",
            "count": 1
          },
          {
            "date": "2024-10-24",
            "count": 1
          },
          {
            "date": "2024-11-04",
            "count": 1
          },
          {
            "date": "2024-11-10",
            "count": 1
          },
          {
            "date": "2024-11-11",
            "count": 1
          },
          {
            "date": "2024-11-13",
            "count": 1
          },
          {
            "date": "2024-11-17",
            "count": 1
          },
          {
            "date": "2024-11-24",
            "count": 1
          },
          {
            "date": "2025-01-06",
            "count": 1
          },
          {
            "date": "2025-01-13",
            "count": 1
          },
          {
            "date": "2025-02-07",
            "count": 1
          },
          {
            "date": "2025-02-08",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-03-10",
            "count": 1
          },
          {
            "date": "2025-03-12",
            "count": 2
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-03-16",
            "count": 1
          },
          {
            "date": "2025-04-03",
            "count": 1
          },
          {
            "date": "2025-04-04",
            "count": 1
          },
          {
            "date": "2025-04-05",
            "count": 1
          },
          {
            "date": "2025-04-07",
            "count": 2
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-22",
            "count": 1
          },
          {
            "date": "2025-04-25",
            "count": 1
          },
          {
            "date": "2025-04-28",
            "count": 1
          },
          {
            "date": "2025-05-03",
            "count": 1
          },
          {
            "date": "2025-05-05",
            "count": 1
          },
          {
            "date": "2025-05-06",
            "count": 1
          },
          {
            "date": "2025-05-07",
            "count": 1
          },
          {
            "date": "2025-05-14",
            "count": 1
          },
          {
            "date": "2025-05-20",
            "count": 1
          },
          {
            "date": "2025-06-05",
            "count": 1
          },
          {
            "date": "2025-06-08",
            "count": 1
          },
          {
            "date": "2025-06-10",
            "count": 1
          },
          {
            "date": "2025-07-04",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 1
          },
          {
            "date": "2025-07-15",
            "count": 2
          },
          {
            "date": "2025-07-24",
            "count": 1
          },
          {
            "date": "2025-08-20",
            "count": 1
          },
          {
            "date": "2025-08-21",
            "count": 1
          },
          {
            "date": "2025-09-10",
            "count": 1
          },
          {
            "date": "2025-09-22",
            "count": 1
          },
          {
            "date": "2025-09-26",
            "count": 1
          },
          {
            "date": "2025-10-08",
            "count": 1
          },
          {
            "date": "2025-10-31",
            "count": 1
          },
          {
            "date": "2025-11-11",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 1
          },
          {
            "date": "2025-11-26",
            "count": 1
          },
          {
            "date": "2025-12-14",
            "count": 1
          },
          {
            "date": "2026-01-07",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 1
          },
          {
            "date": "2026-01-12",
            "count": 2
          },
          {
            "date": "2026-04-04",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 2
          },
          {
            "date": "2026-05-01",
            "count": 1
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-24",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 742,
        "total_stars": 743
      },
      "open_issues_and_prs": 17
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 30197,
      "source_files_sampled": 19,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": "No resolved dependencies to assess",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [],
        "collected": true,
        "truncated": false,
        "total_count": 0,
        "direct_count": 0,
        "indirect_count": 0
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 2,
        "merged_prs": 37,
        "open_issues": 15,
        "closed_ratio": 0.821,
        "closed_issues": 69,
        "closed_unmerged_prs": 7
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "zhengchun",
          "commits": 178,
          "avatar_url": "https://avatars.githubusercontent.com/u/5097328?v=4"
        },
        {
          "type": "User",
          "login": "lazize",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/10844307?v=4"
        },
        {
          "type": "User",
          "login": "jf-tech",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/57098161?v=4"
        },
        {
          "type": "User",
          "login": "mislav",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/887?v=4"
        },
        {
          "type": "User",
          "login": "d-g-laptev",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/7941773?v=4"
        },
        {
          "type": "User",
          "login": "srebhan",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/36194019?v=4"
        },
        {
          "type": "User",
          "login": "DocLambda",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/11217448?v=4"
        },
        {
          "type": "User",
          "login": "gaoflow",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/3355843?v=4"
        },
        {
          "type": "User",
          "login": "wjc4",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/22910666?v=4"
        },
        {
          "type": "User",
          "login": "minherz",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/3994488?v=4"
        }
      ],
      "contributors_sampled": 25,
      "top_contributor_share": 0.817
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "coverage.yml",
        "testing.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "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": 2,
            "reason": "3 out of 12 merged PRs checked by a CI test -- score normalized to 2",
            "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": 7,
            "reason": "Found 12/17 approved changesets -- score normalized to 7",
            "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": "15 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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "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": "d666d4b6f3b570811b144144414971401472b83c",
        "ran_at": "2026-07-21T18:33:34Z",
        "aggregate_score": 4.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/antchfx/xpath",
    "host": "github.com",
    "name": "xpath",
    "owner": "antchfx"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 59,
      "inputs": {
        "security": 45,
        "vitality": 71,
        "community": 60,
        "governance": 64,
        "engineering": 51
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 71,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "commits_last_year": 22,
              "human_commit_share": 1,
              "days_since_last_push": 1,
              "active_weeks_last_year": 7
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "7/52 weeks with commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "22 commits in the last year",
                "points": 12.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 22
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "15 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": "good",
            "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": 84,
            "inputs": {
              "releases_count": 27,
              "latest_release_tag": "v1.3.7",
              "releases_from_tags": false,
              "days_since_latest_release": 4,
              "mean_days_between_releases": 138.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "27 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~138.6 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 138.6
                    }
                  }
                ],
                "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": 1,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 1 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 60,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "forks": 98,
              "stars": 743,
              "watchers": 11,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "743 stars",
                "points": 46.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 743
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "98 forks",
                "points": 16.6,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 98
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "11 watchers",
                "points": 5.6,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "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
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 64,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 30,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 25,
              "top_contributor_share": 0.817
            },
            "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 82% of commits",
                "points": 4.1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 82
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "25 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 25
                    }
                  }
                ],
                "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": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "merged_prs": 37,
              "open_issues": 15,
              "closed_issues": 69,
              "issue_closed_ratio": 0.821,
              "closed_unmerged_prs": 7
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "82% of issues closed",
                "points": 38.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 82
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "37/44 decided PRs merged",
                "points": 32.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 37,
                      "decided": 44
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 12/17 approved changesets -- score normalized to 7",
                "points": 10.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 59,
            "inputs": {
              "followers": 27,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "antchfx",
              "public_repos": 8,
              "account_age_days": 3648
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "27 followers of antchfx",
                "points": 10.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 27,
                      "login": "antchfx"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "8 public repos, account ~9 yr old",
                "points": 18.9,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 8
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/antchfx/xpath"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 4
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 4 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "27 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 51,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 52,
            "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": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": "3 out of 12 merged PRs checked by a CI test -- score normalized to 2",
                "points": 4,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [
                "xpath",
                "golang",
                "xml",
                "html",
                "xpath-patterns",
                "xpath-query",
                "selects-descendants",
                "xpath2",
                "go",
                "go-xml"
              ],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "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": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "10 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "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": "3 out of 12 merged PRs checked by a CI test -- score normalized to 2",
                "points": 0.5,
                "status": "partial",
                "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 12/17 approved changesets -- score normalized to 7",
                "points": 5.2,
                "status": "partial",
                "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": "15 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": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": 6
            },
            "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": 52,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.6,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "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": "60 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 32,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 60,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.02,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "go.mod (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "go.mod"
                    }
                  }
                ],
                "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": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "2 of the last 100 commits agent-authored or agent-credited",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 2,
                      "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 30197,
              "source_files_sampled": 19,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/19 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 19,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "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": [],
  "report_type": "repository",
  "generated_at": "2026-07-21T18:33:56.737078Z",
  "schema_version": "0.23.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/antchfx/xpath.svg",
  "full_name": "antchfx/xpath",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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