公开记录
软件健康报告模式 0.27.0 · 指标 1.13.0 · 2026-07-28 04:18 UTC

IAI-USTC-Quantum / UnifiedQuantum

UnifiedQuantum - A unified, non-commercial quantum computing aggregation framework

PythonApache-2.0★ 1 星标⑂ 4 复刻始于 2026年4月在 GitHub 上查看 ↗

IAI-USTC-Quantum/UnifiedQuantum 的健康指数为 100 分中的 68 分,处于「中等」区间。 其得分最高的类别是Engineering Quality(92/100),最低的是Community & Adoption(43/100)。 最近一次更新在 2 天前。 近期的大部分工作由 1 位贡献者完成。

68
总分 / 100
中等

软件健康指数

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

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

评分画像

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

所有权

7 关注者8 个公开仓库始于 2026年1月

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

软件包生态系统

注册表软件包版本月下载量版本数最近发布
PyPIunified-quantum0.0.16709188 天前

按类别列示的指标

活力

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

82良好 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 2 天前
5.5/36提交节奏 — 52 周中有 8 周有提交
18/18提交量 — 最近一年 385 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year385
human_commit_share1
days_since_last_push2
active_weeks_last_year8

发布纪律

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

社区与采用

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

43存在风险 · 占总体的 18%
评分方式
0/60星标 — 1 个星标
4/25复刻 — 4 个复刻
0/15关注者 — 0 位关注者
所用输入
forks4
stars1
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

85优秀
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(Apache-2.0)
18/18CONTRIBUTING 指南
13.5/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
评分方式
38/80月度下载量 — pypi 合计每月 709 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagesunified-quantum
dependents
ecosystemspypi
total_downloads
monthly_downloads709
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

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

57中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
2.6/22.5提交分布 — 头号贡献者编写了 88% 的提交
4.1/13.5贡献者广度 — 3 位贡献者
3/10OpenSSF Scorecard:Contributors — project has 1 contributing companies or organizations -- score normalized to 3
所用输入
bus_factor1
contributors_sampled3
top_contributor_share0.885
评分方式
41.4/46.8议题解决 — 89% 的议题已关闭
38.2/38.3PR 接受 — 已裁定的 PR 中 83/83 已合并
0/15OpenSSF Scorecard:Code-Review — Found 0/28 approved changesets -- score normalized to 0
所用输入
merged_prs83
open_issues4
closed_issues31
issue_closed_ratio0.886
closed_unmerged_prs0
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
6.5/25所有者影响力 — IAI-USTC-Quantum 有 7 位关注者
7.9/25既往记录 — 8 个公开仓库,账户约 0 年
所用输入
followers7
owner_typeOrganization
is_verified
owner_loginIAI-USTC-Quantum
public_repos8
account_age_days179
评分方式
25/25已发布且可解析 — pypi 上有 1 个软件包
35/35发布时效 — 最近一次发布于 8 天前
20/20版本历史 — 18 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesunified-quantum
ecosystemspypi
any_deprecated
min_days_since_publish8

工程质量

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

92优秀 · 占总体的 20%

工程实践

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

文档

90优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://iai-ustc-quantum.github.io/UnifiedQuantum/
10/10仓库描述
0/10主题标签
10/10Wiki
所用输入
topics
has_wiki
homepagehttps://iai-ustc-quantum.github.io/UnifiedQuantum/
has_readme
has_docs_dir
has_description

安全

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

64中等 · 占总体的 16%

安全态势

55中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 1 out of 1 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/28 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
5/5Fuzzing — project is fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
5/5Pinned-Dependencies — all dependencies are pinned
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 — 无数据
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 22 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5.5
已排除计分(无数据或不适用):signed_releases。 其余权重已重新归一化。
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
25/25间接依赖不含已知公告 — 没有间接依赖携带已知公告
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories0
affected_packages0
assessed_packages57
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
已排除计分(无数据或不适用):没有长期未处理的公告。 其余权重已重新归一化。 比对的是 pypi:unified-quantum@0.0.16 的运行时依赖闭包——安装已发布的软件包时真正被拉取进来的内容——共 57 个软件包。 未对可达性进行分析。

AI 就绪度

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

80良好 · 占总体的 0%
评分方式
45/45代理指令 — .github/copilot-instructions.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 98 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.98
agent_instruction_files.github/copilot-instructions.md
agent_instruction_max_bytes6,675
评分方式
18/18一条命令的引导启动 — docs/Makefile
22/22自动化测试
11/11Lint / 格式化配置
11/11静态类型检查 — frontend/tsconfig.json
10/10可复现环境 — lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 74 次由代理编写或署名代理
0/8自动化维护 — 未观察到自动依赖更新
10/10OpenSSF Scorecard:Pinned-Dependencies — all dependencies are pinned
所用输入
has_nix
has_tests
lockfilespackage-lock.json
has_dockerfile
typed_language
bootstrap_filesdocs/Makefile
has_devcontainer
has_linter_config
typecheck_configsfrontend/tsconfig.json
agent_commit_share0.74
toolchain_manifestsUniqcCpp/Thirdparty/fmt/support/build.gradle
dependency_bot_commit_share0
评分方式
27/45可类型检查的代码 — Python,已配置类型检查(frontend/tsconfig.json)
54/55可控的文件大小 — 采样的 529 个源文件中有 10 个超过 60KB
所用输入
primary_languagePython
largest_source_bytes532,560
source_files_sampled529
oversized_source_files10

机器可读接口

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

关键数据

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

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

更多细节

Star 与 Fork 历史 0 ★ / 4 ⇿
0Star
4Fork
3发布

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

12233312026-042026-042026-04
主版本 0次版本 0修订 2
OpenSSF Scorecard 5.5 / 10
5.5综合

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

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests1 out of 1 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/28 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
10Fuzzingproject is fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
10Pinned-Dependenciesall dependencies are pinned
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
不适用Signed-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities22 existing vulnerabilities detected
直接依赖 19
注册表软件包版本约束清单文件
npmaxios^1.7.9frontend/package.json
npmd3^7.9.0frontend/package.json
npmlucide-react^0.469.0frontend/package.json
npmreact^18.3.1frontend/package.json
npmreact-dom^18.3.1frontend/package.json
npmreact-router-dom^7.1.1frontend/package.json
PyPInumpypyproject.toml
PyPIrequestspyproject.toml
PyPIpyyamlpyproject.toml
PyPIsympypyproject.toml
PyPItyping-extensionspyproject.toml
PyPItyperpyproject.toml
PyPIrichpyproject.toml
PyPIscipypyproject.toml
PyPIfastapipyproject.toml
PyPIuvicornpyproject.toml
PyPIqiskitpyproject.toml
PyPIqiskit-aerpyproject.toml
PyPIqiskit-ibm-runtimepyproject.toml
全部依赖 未采集

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

依赖安全公告 0

安装 pypi:unified-quantum@0.0.16 会引入 57 个包(直接与传递):其中 0 个存在已知公告,0 个为直接依赖。

没有已知公告影响已评估的依赖。

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 10252,
      "has_wiki": true,
      "homepage": "https://iai-ustc-quantum.github.io/UnifiedQuantum/",
      "languages": {
        "C": 246,
        "C++": 214580,
        "CSS": 31938,
        "HTML": 25037,
        "CMake": 1848,
        "Python": 3040065,
        "JavaScript": 6363,
        "TypeScript": 75507
      },
      "pushed_at": "2026-07-25T06:44:57Z",
      "created_at": "2026-04-18T08:48:56Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-25T06:45:03Z",
      "description": "UnifiedQuantum - A unified, non-commercial quantum computing aggregation framework",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "https://iai-ustc-quantum.github.io/",
      "name": "IAI-USTC Quantum",
      "type": "Organization",
      "login": "IAI-USTC-Quantum",
      "company": null,
      "location": "China",
      "followers": 7,
      "avatar_url": "https://avatars.githubusercontent.com/u/258140349?v=4",
      "created_at": "2026-01-30T03:02:25Z",
      "is_verified": null,
      "public_repos": 8,
      "account_age_days": 179
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.0.16",
          "kind": "patch",
          "published_at": "2026-07-19T14:27:55Z"
        },
        {
          "tag": "v0.0.15",
          "kind": "patch",
          "published_at": "2026-06-04T23:33:28Z"
        },
        {
          "tag": "v0.0.14.post1",
          "kind": "other",
          "published_at": "2026-06-03T07:20:18Z"
        },
        {
          "tag": "v0.0.14",
          "kind": "patch",
          "published_at": "2026-05-18T04:49:50Z"
        },
        {
          "tag": "v0.0.13",
          "kind": "patch",
          "published_at": "2026-05-14T15:19:04Z"
        },
        {
          "tag": "v0.0.12",
          "kind": "patch",
          "published_at": "2026-05-07T12:40:31Z"
        },
        {
          "tag": "v0.0.11.post1",
          "kind": "other",
          "published_at": "2026-05-07T10:26:15Z"
        },
        {
          "tag": "v0.0.11",
          "kind": "patch",
          "published_at": "2026-05-07T09:31:58Z"
        },
        {
          "tag": "v0.0.10",
          "kind": "patch",
          "published_at": "2026-05-04T17:30:34Z"
        },
        {
          "tag": "v0.0.9",
          "kind": "patch",
          "published_at": "2026-05-04T09:05:17Z"
        },
        {
          "tag": "v0.0.8",
          "kind": "patch",
          "published_at": "2026-05-03T14:20:23Z"
        },
        {
          "tag": "v0.0.7.post1",
          "kind": "other",
          "published_at": "2026-05-02T04:15:20Z"
        },
        {
          "tag": "v0.0.7",
          "kind": "patch",
          "published_at": "2026-05-01T15:00:52Z"
        },
        {
          "tag": "v0.0.6",
          "kind": "patch",
          "published_at": "2026-04-29T15:33:31Z"
        },
        {
          "tag": "v0.0.5",
          "kind": "patch",
          "published_at": "2026-04-28T12:32:17Z"
        },
        {
          "tag": "v0.0.4.post1",
          "kind": "other",
          "published_at": "2026-04-21T08:24:40Z"
        },
        {
          "tag": "v0.0.4",
          "kind": "patch",
          "published_at": "2026-04-19T14:36:23Z"
        },
        {
          "tag": "v0.0.3",
          "kind": "patch",
          "published_at": "2026-04-18T14:46:12Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "d6e7ad2ab480ba1222a04a7c20509b1bc6b016f2",
          "body": null,
          "is_bot": false,
          "headline": "update",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-25T06:44:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07f8c337c81bf1ee56c4dbd81a1ab905c78a8a77",
          "body": "Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: drop RISK_REPORT_ROUND_2.md",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-25T02:11:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a07d71694d3251486f8efd54d8d8b175782688ed",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "docs: record the v0.0.17 release candidate",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8b3f55440177455f97be6ed512f94ea0da6d32eb",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "fix: tolerate legacy Windows CLI encodings",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T15:28:34Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "465203d0783d74bbb16588ec1a8b47d056939354",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "ci: expose cross-platform pytest failures",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T15:19:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "880f3f4558a24b326e3c7c47fb81608716fd101b",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "ci: install PyTorch extra for API docs",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T15:11:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ff3f328ff75aacf552feb23643b5193a6690626c",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "ci: validate stabilization branches on push",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T14:58:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "157fa5c00518ec6c5134ed9d3e7ca89d3daac889",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "fix: include controls and QuTiP in gate contracts",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T14:47:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "47fa370ae376967bb2aea766cbafeaf01e925b93",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "ci: enforce cross-repository contract parity",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T14:33:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "dc3fb33a832deeaf9480487fd184ab409bfd6dab",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "docs: refresh executable example artifacts",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T14:30:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "be676fa580f3e0ca1b9c4c4b97dbd45f49f75cd9",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "docs: make strict Sphinx builds warning-free",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T14:29:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e6c9075b12b727f6d567102dfe916e3952bc36a8",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "fix: harden QASM and SQLite row handling",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "976b029285277493947610454f5960aa9cd8b54e",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "ci: harden documentation quality gates",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T13:40:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "64342466c61887d373a1fbd4f58b5f4c847b0047",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "fix: persist task failures and query context",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T13:31:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "377b52a626825180f62028b32d8749fd73acb023",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "fix: stop websocket reconnects after cleanup",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T13:12:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2f36fd8ceac1cb024a6f4c0d7d24bb81f5cb449d",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "fix: align quantum execution semantics",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T13:10:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d1794d11ce4c624bdb20e9f51aba793b6d575865",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: f7b605f2-1455-40e0-9b02-9479bfde7670",
          "is_bot": false,
          "headline": "build: include torchquantum-ng in pytorch extra",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-22T12:39:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5d388c12eab65f8c4f988c759cd654fc9caf3cb8",
          "body": "Preserve every original finding with Chinese fixed, accepted-risk, or delayed status and record the agreed remediation boundaries.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "docs: add second-round risk disposition",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T07:20:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8d7ef6d1c6f0edc06488eab28115c5642ba2d4b0",
          "body": "Update remaining install hints and add complete documentation dependency gating, then refresh generated examples and logs.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "fix: use torchquantum-ng across runtime guidance",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T07:19:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a9b2336cd775707be959c210fdb869d8e8160757",
          "body": "Restore the 0.0.16 report, correct CLI and example paths, document current platform support, and refresh generated example artifacts without local absolute paths.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "docs: repair release notes and user workflows",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T06:59:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "440162cf3f9bd18fefbcd741c3542c55657287d2",
          "body": "Surface targeted parser, cache, and IBM calibration failures instead of silently swallowing them.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "refactor: lazy-load deprecated quafu support",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T06:55:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "540ebf256b689473d018afce16491eea55d3fc7c",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "security: restrict gateway and redact credentials",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T06:31:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a403b47aa52b9835dcf2b24bb141ddd47f52a36e",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "build: fix docs dependencies and native smoke test",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T06:24:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "906699c42b6b5b5e617a3d5afc864658140af285",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "test: verify benchmark fixture integrity",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T06:14:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "77538e6070863682c1e2c393cbd34935d0faf30b",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: 4f90001a-2dd8-4462-8075-c813e6c10d12",
          "is_bot": false,
          "headline": "ci: harden release validation and dependencies",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-21T06:12:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5555b2c29731c0ed06e5bc5c864a4589e59c3849",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove 0.0.16 release report and execution plan",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T14:47:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c09d2ab01fe05d435c295e1374c2c561b879cc81",
          "body": "…ease gate\n\n- Remove RELEASE_REPORT_0.0.15.md from the repository root. Release\n  reports are kept only for the release under validation; older ones\n  remain reachable via git history and tags. (CHANGELOG [0.0.15]'s\n  mention of the file is a historical record.)\n- uniqc-test-before-release SKILL.md: scanning the root for stale\n  RELEASE_REPORT_*/RELEASE_EXECUTION_PLAN_* files is now a First-Steps\n  worktree check, and leftover older-version artifacts are an explicit\n  DO NOT RELEASE condition.",
          "is_bot": false,
          "headline": "chore(release): remove stale 0.0.15 report; make root artifacts a rel…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T14:24:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9c830ad772ec2a4adac67b3c411cd826b7eff22",
          "body": "Release/v0.0.16",
          "is_bot": false,
          "headline": "Merge pull request #118 from IAI-USTC-Quantum/release/v0.0.16",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-07-19T14:15:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a53c9610a9c9adf75335abb08fc2423e3ff4020",
          "body": "- Point the 7_releases landing section at v0.0.16 with first-check items\n- Add v0.0.16 release notes: virtual machines + unified backend state\n  dir, migration notes, known gaps, validation summary\n- CHANGELOG.md [0.0.16] - 2026-07-19 was already rotated in 5d3bf3a",
          "is_bot": false,
          "headline": "docs(release): prepare v0.0.16 release",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T14:03:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "522fc60087b2144a11b87813763bc0e8b391ffed",
          "body": "…NOWN GAPS\n\nSecond execution of /uniqc-test-before-release against the committed\ncandidate b17988b. All seven mandatory phases pass: 2044 passed / 0\nfailed, full docs example suite 49/5/0, CLI/docs aligned, virtual\nmachines verified end-to-end, gateway frontend+API healthy, OriginQ\nlive discovery OK. Gaps are external (IBM token, Quark token, real\nexecution not authorized) or documented (uv sync quark resolver).",
          "is_bot": false,
          "headline": "docs(release): 0.0.16 pre-release validation — verdict RELEASE WITH K…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T13:56:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b18e843ca26bce73bbb06a7dbd0b3be41801e9d4",
          "body": "Full pre-doc execution (49 pass / 5 skip / 0 fail) + Sphinx HTML build\nat HEAD b17988b: stochastic example outputs (task ids, shot counts) and\nthe strict-history range (18 commits, v0.0.15..HEAD).",
          "is_bot": false,
          "headline": "docs: refresh generated artifacts",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T13:56:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "312c18e059e645fb89ebe91decc1181bf6aee426",
          "body": "- gateway.md: config lives in ~/.uniqc/config.yaml (not uniqc.yml);\n  pid/log at ~/.uniqc/cache/gateway.{pid,log}\n- walkthrough.md, 5_webui/index.md: task store is\n  ~/.uniqc/cache/tasks.sqlite (not ~/.uniqc/tasks.db)\n- installation.md: [all] no longer claims the removed [quafu] extra\n\nFound by /uniqc-test-before-release docs-alignment checks.",
          "is_bot": false,
          "headline": "docs: fix stale state paths and [all] extras list",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T13:55:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68de154369393ee115b8007f85727302365eb0d6",
          "body": "…dings\n\nThe committed stub predated the dynamic-circuits C++ bindings: add\nmeasure_qubit() and reset_qubit() to StatevectorSimulator and\nDensityOperatorSimulator, and the control_qubits parameter on qram().\nRegenerated via scripts/stubgen.py + ruff format; type-stub only,\nno runtime change.",
          "is_bot": false,
          "headline": "fix(simulator): regenerate uniqc_cpp stubs for measure/reset/qram bin…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T13:55:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b17988bb3511273cb87e45653c0a15dee7e66770",
          "body": "rich wraps CLI error output at console width; on Windows the long temp\npath pushes the wrap between \"undeclared\" and \"qubit 9\", breaking the\nliteral substring assertion. Collapse whitespace before the check.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(test): normalize whitespace in backend-virtual CLI assertion",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T02:27:49Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5c0d0b3b2a4b1328cc8801527e5b846773004e08",
          "body": "Regenerate tracked auto-generated docs (6_api autoapi rst, best-practices\n_generated examples, example-exec-logs) to match the current codebase,\nincluding the 0.0.16 virtual-machine module. Also document Aliyun/Tencent as\nChina-reachable mirrors carrying quarkcircuit in installation.md, since the\nTUNA mirror 404s on that package and direct PyPI is frequently blocked.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: refresh generated artifacts and note quark mirror alternatives",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T02:09:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5d3bf3a57b43158ea1c72246d54eba41011546a8",
          "body": "Move the user-defined noisy virtual machines and unified backend state\ndirectory entries from [Unreleased] into a dated [0.0.16] section and\nreset [Unreleased].\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(changelog): section dated entries under [0.0.16]",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T01:17:49Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fea3d8ba4e8a34814fc715f15bc0cbc9baf5eae5",
          "body": "… state dir\n\nAdd `dummy:virtual:<name>`: YAML-defined noisy virtual machines under\n~/.uniqc/backend/virtual/ declaring qubits, coupling topology, and a\nlayered gate error model (uniform/per-gate-type/per-instance\ndepolarizing, T1/T2 thermal relaxation, per-qubit readout), usable\nanywhere a backend i\n[…]\n-cache/.\n\nValidation: RELEASE_REPORT_0.0.16.md (default tests 2044 passed / 0\nfailed; best-practices 12/12; docs HTML build + Gateway green).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(backends): user-defined noisy virtual machines + unified backend…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-19T01:07:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d7001b7d48a5d64ccfb563b7129f73827c068d85",
          "body": "random.sample() rejects set/dict populations in Python 3.11+ (it only\nwarned in 3.10), raising \"Population must be a sequence\" and breaking\nrandom-control-qubit generation on 3.11+. Wrap the remaining-qubit set\nin sorted() so it stays a sequence.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(circuit-builder): sort set before random.sample (Python 3.11+)",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-17T12:08:49Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d415aaf6e153eddd64c97fc0d97b93fc6da603c5",
          "body": "qiskit 2.x rejects self-coupled edges (e.g. the single-qubit virtual\nbackend's (0, 0)) that older versions tolerated, yielding a 0-qubit\ncoupling map that rejects every circuit and masked the timeline\nduration-check test. Self-loops carry no routing constraint, so filter\nthem and transpile without a coupling map when nothing remains.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(compile): drop self-loop topology edges for qiskit 2.x coupling map",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-17T11:54:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6b1c3964971ce28f187054a2f1f46169bee054b6",
          "body": "Port the still-relevant OriginIR-ext hardening from feat/verify-v2-uniqc-ir,\nadapted to main's CREG architecture:\n- handle_qram_call: strict re.fullmatch raises on malformed lines instead of\n  silently mis-parsing (trailing garbage, empty controlled_by()).\n- originir_base_parser: reject duplicate QR\n[…]\nbranch already\nexist in main; the named-memory reference checks don't apply to the CREG\nmodel and were dropped along with dynamic_program.py.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(originir): reject duplicate QRAMDECL and malformed QRAM call lines",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-17T10:35:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5d5ba3b526d13538fa6c43ea6bfb061ef25b510c",
          "body": "Give OriginIR-ext a Parameter/Parameters-compatible layer so symbolic\nparametric circuits serialize, parse back, and bind end-to-end:\n\n- Serialize unbound circuits with a `PARAM name`/`PARAM name[size]` header\n  and inline sympy expressions in gate angle slots (e.g. `(2*theta + phi/3)`,\n  `(alpha[2]\n[…]\nde (fixing the stale `unbind()` example); add a runnable round-trip\nexample.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 07cdc1b2-7486-4eba-a191-e21edf2492a2",
          "is_bot": false,
          "headline": "feat(originir-ext): symbolic Parameter/Parameters round-trip",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-17T03:28:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "79723e9c4d6aa804e8db665339ede3d376203d84",
          "body": "Add docs/source/2_advanced/dynamic_circuits.md: a full prose guide to the\nCREG-based classical / control-flow extension — the three-layer design\n(C++ backend / OpcodeSimulator+CREG / OriginIR_ext_Simulator), the CREG model\nand endianness, the OriginIR-ext syntax reference (MEASURE/RESET, AND/OR/XOR/\n[…]\ne, and the\nscope/limitations. Wire it into the 2_advanced simulator toctree.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "docs(2_advanced): add dynamic-circuits design + usage guide",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T14:06:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e115875932777045ce53d90499c393ed0e445ef8",
          "body": "Extend the OriginIR-ext spec module docstring to describe the CREG-based\nclassical / control-flow extension (mid-circuit MEASURE, RESET, AND/OR/XOR/\nMOV/NOT bit instructions, QIF/QELSE/QWHILE, and the boolean condition grammar),\nnoting it is OriginIR-ext-only (no QASM/cloud export).\n\nAdd examples/2_\n[…]\nc version churn, none of which\nreflects a behavior change from this feature.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "docs(originir-ext): document classical/control-flow extension + example",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T13:43:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "97a184930ccba069449faefad6875907f6249ff7",
          "body": "Add test_originir_ext_dynamic.py covering the Circuit CREG API (creg/\nmeasure_to/reset/classical instructions/QIF-QELSE/QWHILE, error cases,\ncopy independence), OriginIR-ext round-trip idempotence, QASM/official-export\nrejection, OriginIR_ext_Simulator semantics (deterministic + statistical\nfeedback\n[…]\n int passed to c_* builders is a CREG bit index; imm(1) is the\nimmediate 1).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "test(circuit): comprehensive dynamic OriginIR-ext tests + imm() helper",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T13:29:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "65a96d19d4f42a14becc3f2e01bf80363b484ad1",
          "body": "Wire the CREG-aware dynamic simulator into the local execution paths:\n\n- DummyAdapter._simulate now detects classical/control-flow programs and runs\n  them via _simulate_dynamic (per-shot OriginIR_ext_Simulator sampling), keying\n  counts by CREG bitstring width (c0 = rightmost/LSB).\n- DummyAdapter.d\n[…]\nOriginIR_ext_Simulator exposes n_cbit (CREG width of last resolved program).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "feat: route dynamic OriginIR-ext circuits to OriginIR_ext_Simulator",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T13:23:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "338d3d98ee0d246b6eebc36f083a3ac1e0fec756",
          "body": "New BaseSimulator subclass that interprets QIF/QWHILE control flow over a\nclassical/control-flow program tree, driving OpcodeSimulator (which owns the\nCREG) for gates, MEASURE->CREG, RESET, and AND/OR/XOR/MOV/NOT. Results come\nfrom per-shot re-execution: each shot runs the whole program from a fresh\n[…]\nt infinite loops.\nWorks on both statevector and density_matrix C++ backends.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "feat(simulator): add OriginIR_ext_Simulator for dynamic programs",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T13:16:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "53bfb133298813d3fffa450b5f0f6bd70c2a4305",
          "body": "…amic API\n\nRip out the old named-memory dynamic subsystem (dynamic_program.py,\ndynamic_executor.py, CDECL/CMEASURE/CASSIGN/declare_memory/cmeasure/cassign)\nand rebuild the Circuit builder around the CREG model:\n\n- creg(size): declare classical-register size (auto-grows to referenced bits)\n- measure_\n[…]\n -> originir -> from_originir) is\nidempotent; core suite green (161 passed).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "feat(circuit): replace named-memory subsystem with CREG-addressed dyn…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T13:11:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4a6c7fd033b12e85a99f808f3335cb824e6b710f",
          "body": "…deSimulator\n\nOpcodeSimulator now owns the runtime classical-register (CREG) store\n(one bit per address) and executes non-gate opcodes against it:\ninit_creg/get_cbit/set_cbit/creg_value (c[0] = LSB), simulate_measure\n(collapse qubit -> write CREG bit), simulate_reset, and simulate_classical\n(AND/OR/XOR/MOV/NOT). Quantum gate dispatch and the C++ backend are unchanged.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "feat(simulator): add CREG store + classical/measure/reset ops to Opco…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T12:59:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2a836f3c57a68cd363b5142754b5bbaab5252ea7",
          "body": "Introduce classical_program.py: the condition AST (BitRef/ConstBit/NotCond/\nBinCond) with a parser accepting lowercase keywords (and/or/xor/not) and\nsymbols (& | ^ ~) interchangeably plus parentheses; classical-instruction\noperands (CREG bit or 0/1 immediate); program-tree nodes (GateOp/MeasureOp/\nR\n[…]\nnamic OriginIR-ext\nsubsystem that replaces the previous named-memory design.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 57c74b55-f612-406b-a314-4df5b0bda976",
          "is_bot": false,
          "headline": "feat(circuit): add CREG-based classical/control-flow program tree",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T12:56:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "571c89873d428f7f1708aeecdc862c46b6f7942e",
          "body": null,
          "is_bot": false,
          "headline": "update OriginIR-ext. Refactor DEF section definition",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-16T12:20:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2c3b9fbe580aef110d9f24b13bfbaafb8b1ffde",
          "body": "Add controlled QRAM simulation plus structured measurement, reset, assignment, conditional, and bounded-loop execution.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\nCopilot-Session: e77781b9-3f13-469a-95b8-da91822f399f",
          "is_bot": false,
          "headline": "feat(uniqc): execute dynamic OriginIR-ext programs",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-07-15T08:57:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f568609c7e3fb9e90afd700d8f3f0b0697ba92c3",
          "body": "…rams\n\nThe CHANGELOG for 0.0.15 advertised Circuit.has_param as a public,\nTorchQuantum-aligned query, but the implemented method was named\nCircuit.has_tensor_params(). Add a no-argument has_param property that\ndelegates to has_tensor_params() so both names are valid and the\nTorchQuantum-style spelli\n[…]\nder/test_circuit_param_map.py\n- Update CHANGELOG.md 0.0.15 entry to cite both names and clarify the\n  property/keyword distinction\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(circuit): add Circuit.has_param property alias for has_tensor_pa…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T13:07:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9f35ec9b75d8ca371a91d690311631b586701df9",
          "body": "Refreshes the committed pre-rendered documentation set so it matches\nHEAD as of 0.0.15 release:\n\n- docs/source/_generated/examples/** — re-runs of all best-practice,\n  basic, and advanced example notebooks; figure SVGs and stdout/counts\n  blocks reflect the latest simulator outputs (stochastic varia\n[…]\noduced by:\n  uv run python scripts/build_docs.py\n  cd docs && uv run make html\n\nCloses gap G-worktree in RELEASE_REPORT_0.0.15.md.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs(0.0.15): regenerate example execution logs and add qram API page",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T12:06:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4f32a146bb76c5feff59f9c405b88c979b683238",
          "body": "scripts/stubgen.py followed by ruff format produces a stub file that\nincludes the new qram method on both DensityOperatorSimulator and\nStatevectorSimulator (added by the QRAM PR #117 C++ extension).\nWithout this regeneration, type checkers and IDE autocomplete miss\nthe QRAM execution path.\n\nCloses gap G-stubs in RELEASE_REPORT_0.0.15.md.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(simulator): regenerate pybind11 stubs for qram instruction",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T12:06:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8169e81a0b8ebaddb6708b1559ab58f7900fba61",
          "body": "Claude Code and the Copilot CLI both write per-repo state under\n.claude/ (skills metadata and live worktrees under .claude/worktrees/).\nThese are local-machine agent artifacts and must never be committed.\nAdding the rule alongside the existing .vscode/ block.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(git): ignore .claude/ agent worktree directory",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T12:06:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "820605ef2cefe6286d54317777b186cac1b6263c",
          "body": "The 0.0.15 Added entry described the new differentiable expectation\nhelper as simulator.expectation(); the actual public path is\nuniqc.expectation() (top-level lazy export from\nuniqc.torch_adapter.expectation). simulator.expectation does not\nresolve via any documented import path. Clarify the user-f\n[…]\ning entry\nto use `from uniqc import expectation` and the canonical call form.\n\nCloses gap G-changelog in RELEASE_REPORT_0.0.15.md.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs(changelog): correct expectation() API path in 0.0.15 entry",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T12:06:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "68c705d15db876ec63140c8f43b408d144da51f9",
          "body": "…tation\n\nThe Result.expectation() docstring \"Note\" pointed users at the\nuniqc.analyzer module for complex observables, but that module was\nremoved during the 0.0.x → 0.1.0 deprecation alignment. The current\nbackend-agnostic differentiable expectation API is uniqc.expectation\n(top-level lazy export a\n[…]\nc/__init__.py:223), which supports\narbitrary Hamiltonians from a statevector.\n\nCloses gap G-docstring in RELEASE_REPORT_0.0.15.md.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs(result): replace stale uniqc.analyzer reference with uniqc.expec…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T12:06:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4c29e293c53993e8859fab7a83955bf7f229f0ad",
          "body": "…xt API\n\nThe v0.0.15 release notes and CHANGELOG advertised a non-existent\n`uniqc.originir_ext.to_originir()` module and a non-existent `GLIST`\ngate-list primitive for headline feature #115. The real API surface is:\n\n- Converter: `uniqc.compile.convert_originir_ext_to_originir()`\n  (also reachable a\n[…]\node change. Caught by the uniqc-test-before-release skill; verified by\nruntime import probe and an ISWAP-decomposition smoke test.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs(0.0.15): fix CHANGELOG and release notes to cite real OriginIR-e…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T07:14:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "32c60298f18a5410f49275c3688e2620c87f9b5d",
          "body": "The torchquantum fork pulls in tensorflow>=2.4.1 as a transitive dep, and\ntensorflow currently has no wheels for CPython 3.14 (cp314). That caused\nuv pip install to fail in both the Pytest Coverage and Build-and-test\nworkflows on the 3.14 matrix entries.\n\nSkip the torchquantum install plus the torch\n[…]\n14 only; the 3.10-3.13 entries still exercise the\ntorchquantum integration. Re-enable once upstream tensorflow ships cp314\nwheels.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci: skip torchquantum install + tests on Python 3.14",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T06:11:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "17bd640fad9266c17f974d34ce5a005a1d65f64d",
          "body": "…rsion guards\n\n- Register QRAM in originir_ext_spec.py (qubit=-1, param=0)\n- Add QRAM section to originir.md with QRAMDECL syntax, call syntax, and Python API examples\n- Implement black-box visualization in timeline.py (single spanning rectangle with dark border)\n- Add CircuitTranslationError guards\n[…]\n(convert_oir_to_qasm, convert_originir_ext_to_originir)\n- Add CompilationFailedError guard in compiler.py (compile_with_config, compile_full)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(qram): add ext-spec registration, docs, visualization, and conve…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T05:58:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4579a59c13bd11548b403077167406caebaa055b",
          "body": "…cation policy\n\n- Native PyTorch parameter integration (param_map/param_dict/has_param/set_param_last)\n- Backend-agnostic differentiable simulator.expectation()\n- OriginIR-ext superset language with to_originir converter\n- Python 3.14 support (requires-python >=3.10,<3.15)\n  - [originq] and [quark] \n[…]\nosed (QiskitAdapter refactor)\n- New best-practice example: 11_native_torch_training\n- Pre-release SKILL.md paths realigned to actual codebase\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: v0.0.15 release — PyTorch param integration, Python 3.14, depre…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-04T05:58:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "929d676f097eafa333d0ff43db30be163feb07aa",
          "body": "feat(qram): add QRAM instruction with C++ simulation support",
          "is_bot": false,
          "headline": "Merge pull request #117 from IAI-USTC-Quantum/feat/qram-instruction",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-06-03T15:20:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42a4551341f2413230ad7b1b8923401f0f35615f",
          "body": "Add Quantum RAM (QRAM) feature to originir-ext: QRAMDECL for declaration,\nqram_name syntax for calls (same pattern as BARRIER). QRAM is an independent\ndata object injected into the simulator; the quantum operation is\n|addr⟩|data⟩ → |addr⟩|data ⊕ d[addr]⟩ (XOR-based, self-inverse).\n\n- C++: qram_permu\n[…]\negistration\n- Simulator: qram_registry with shared list reference to C++ layer\n- 32 tests covering parsing, roundtrip, simulation, involution\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(qram): add QRAM instruction with C++ simulation support",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T15:06:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "653ae8c5aee5ed70ffc8d07f78318fd259861b08",
          "body": "Feat/circuit param map",
          "is_bot": false,
          "headline": "Merge pull request #116 from IAI-USTC-Quantum/feat/circuit-param-map",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-06-03T15:04:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68450bc7930af5cd3d3247e55c1e820f8023a762",
          "body": "set_param_last on an empty circuit now correctly raises IndexError\ninstead of silently writing to param_map[-1].\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(circuit): raise IndexError on set_param_last with empty circuit",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T14:48:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ddf38676855da018cb24f503caa2153dd256d932",
          "body": "- New example: 11_native_torch_training.py — demonstrates three param\n  styles (has_param, param_dict, tensor) with VQE convergence plot\n- Updated pytorch.md: add \"原生训练(推荐)\" section covering expectation(),\n  has_param, param_dict, and comparison table vs old QuantumLayer\n- Updated index.md and README.md: add example 11 to coverage matrix\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add native torch training best practice and update pytorch guide",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T13:05:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3c795bdadc4ec6e9ca1f4fbd67e07822aa9f15b1",
          "body": "- Add `trainable` flag: `has_param=True, trainable=False` creates frozen params\n- Add `init_params`: custom initialization (scalar or list), default Uniform(-π, π)\n- Param shape follows TQ convention: `[1, num_params]` (always 2D)\n- Default init changed from N(0, 0.1) to Uniform(-π, π)\n\nUsage matche\n[…]\n       # frozen\n    c.ry(0, has_param=True, init_params=0.5)           # custom init\n    c.u3(0, has_param=True, init_params=[0.1, 0.2, 0.3])\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(circuit): align has_param with TorchQuantum conventions",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T12:59:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "db1149d4ac3ffe2a75b38a8665be95284a5c7e2e",
          "body": "Gate methods now accept has_param=True to auto-create trainable parameters:\n\n    c = Circuit(2)\n    c.ry(0, has_param=True)   # auto-creates nn.Parameter\n    c.ry(1, has_param=True)\n    c.rz(0, has_param=True)\n    c.cnot(0, 1)\n\n    # Access params:\n    c.params                    # all auto-created \n[…]\n with expectation():\n    e = expectation(c, [(\"ZZ\", 1.0)])\n    e.backward()\n\nNo explicit nn.Parameter definition needed. Backward compatible.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(circuit): add has_param for automatic nn.Parameter creation",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T12:39:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f1e0d6c6ab37a0a23027bf5e11fab7919ebe2bd4",
          "body": "Circuit now accepts an optional param_dict:\n\n    params = {\"theta\": nn.Parameter(torch.tensor(0.5))}\n    c = Circuit(1, param_dict=params)\n    c.ry(0, \"theta\")   # resolved via param_dict → auto-registered in param_map\n\nString params in gate methods are resolved through param_dict before\ntensor detection. Mixed string/float in multi-param gates (e.g. U3)\nis supported. Backward compatible — works without param_dict.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(circuit): add param_dict for named parameter references",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T12:32:49Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "327645983767372474c74d7ba545756900d5fd43",
          "body": "Gate methods now accept torch.Tensor directly:\n\n    c.ry(0, theta)          # tensor auto-registered in param_map\n    c.u3(0, t[0], t[1], t[2])  # mixed float/tensor supported\n\nThe opcode still stores a float placeholder for serialization/C++ compat;\nthe tensor goes into param_map automatically. No more manual set_param_last.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(circuit): auto-register tensor params in add_gate",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T12:27:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ba0405f0470869b37a46fb500ff9c59cd8fc9e92",
          "body": "Add expectation(circuit, hamiltonian, param_map, backend=\"virtual\") — a\nbackend-agnostic function for computing differentiable ⟨ψ|H|ψ⟩ values.\n\n- \"virtual\" backend: native PyTorch statevector simulation, fully\n  differentiable, no external deps beyond torch. Executes circuit once,\n  computes all Pau\n[…]\ndes 33 tests covering gate correctness, gradient flow, Hamiltonian\naccumulation, param_map integration, backend routing, and HEA convergence.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(simulator): add backend-agnostic differentiable expectation()",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T12:15:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a6128e0624286cc493feb6c066ede14d8b77d4eb",
          "body": "Add param_map dict to Circuit, mapping opcode index to torch.Tensor,\nenabling differentiable circuit execution without TorchQuantum dependency.\n\nNew methods: set_param, set_param_last, get_param, tensor_params (property),\nhas_tensor_params. copy() updated to preserve param_map (shared tensor refs).\n\nThis is the foundation for a native differentiable statevector simulator.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(circuit): add param_map for native tensor parameter support",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T12:03:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "01fb7111f8bd757d2c0091c6997ac26385a6ee30",
          "body": "feat: add OriginIR-ext superset language with converter to official O…",
          "is_bot": false,
          "headline": "Merge pull request #115 from IAI-USTC-Quantum/feature/originir-ext",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-06-03T11:56:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44e79d6a436af2e3ea420f6ec77dd8999cead41e",
          "body": "…riginIR\n\nSeparate the internal \"OriginIR\" into two distinct specifications:\n- **OriginIR** (official): the subset accepted by OriginQ cloud service\n  (H/X/Y/Z/S/SX/T/I, RX/RY/RZ/U1/U2/U3, CNOT/CZ/SWAP/TOFFOLI/CSWAP,\n  CONTROL/ENDCONTROL, DAGGER/ENDDAGGER blocks)\n- **OriginIR-ext** (superset): Unifi\n[…]\nxt\"` (new default for \"auto\")\n- Documentation: originir_official.md, originir_relationship.md\n- 29 tests with matrix equivalence verification\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add OriginIR-ext superset language with converter to official O…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T10:57:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6dcdac437c50222a6cab79459d1af822a10b5ac5",
          "body": "…ing-opcode\n\nfix(error_model): pass qubit list instead of splitting into separate …",
          "is_bot": false,
          "headline": "Merge pull request #114 from IAI-USTC-Quantum/fix/two-qubit-depolariz…",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-06-03T06:31:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a62298ba4a498079dfc875d3ab101e13df428d5",
          "body": "ErrorLoader_GateSpecificError.insert_error converted qubits to a tuple\nfor dictionary lookup, then passed that tuple to generate_error_opcode.\nTwoQubitDepolarizing and PauliError2Q check isinstance(qubits, list),\nso the tuple was rejected with \"requires two qubits\".  Convert back to\nlist before call\n[…]\noth\n  TwoQubitDepolarizing and PauliError2Q\n- propagation through all three ErrorLoader variants\n- subscript safety (the exact failure mode of #113)\n- multiple two-qubit gates and mixed 1q/2q circuits",
          "is_bot": false,
          "headline": "fix(error_model): qubits tuple/list mismatch in GateSpecificError loader",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T06:25:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e0f620389efbf5731113f9c7b3487b5f22de8d4",
          "body": "…opcodes\n\nTwoQubitDepolarizing and PauliError2Q generated one opcode per qubit\n(integer), but the execution layer (opcode_simulator) expects a single\nopcode whose qubit field is the full [q0, q1] list.  This caused\n`TypeError: 'int' object is not subscriptable` when running two-qubit\nnoise channels (CNOT, CZ, XX, YY, ZZ, etc.).\n\nFixes #113",
          "is_bot": false,
          "headline": "fix(error_model): pass qubit list instead of splitting into separate …",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-06-03T04:42:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e0cbe4ac959ddf3ee27b0b20ca4f1abd5070301",
          "body": "Release v0.0.14",
          "is_bot": false,
          "headline": "Merge pull request #108 from IAI-USTC-Quantum/release/v0.0.14",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-05-18T04:48:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cc4461baa0e2633bfab82596cad9928cf1ef7b4",
          "body": "- Update CHANGELOG.md with release notes\n- Move [Unreleased] changes to [0.0.14] section\n- Add release notes to docs/source/7_releases/index.md\n\nCo-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(release): prepare v0.0.14 release",
          "author_name": "Agony5757",
          "author_login": "Agony5757",
          "committed_at": "2026-05-18T00:01:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "735aa5edf90463b2158a36ca56606b3f48cc2877",
          "body": "…satz stubs\n\n- Move 3 stale apidoc stubs from docs/source/uniqc.algorithms.core.ansatz*.rst\n  (their pre-6_api locations) to the canonical docs/source/6_api/ tree, which\n  eliminates 7 Sphinx warnings: 4 'duplicate object description' (ansatz, hva,\n  hva.hva), 3 broken toctree refs (hea, qaoa_ansatz\n[…]\ne\npages). pytest uniqc/test → 1684 passed, 270 skipped. Pre-release report at\nfiles/release-evidence/REPORT.md (verdict: RELEASE).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: regenerate apidoc, examples, and release history; drop stale an…",
          "author_name": "GitHub Copilot CLI",
          "author_login": "Copilot",
          "committed_at": "2026-05-17T23:54:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "dfcb540cc29f5b52ac5e6a8894f789384549256a",
          "body": "…sion\n\nOn Windows, Path.stat().st_mtime is recorded with NTFS 100 ns precision\nwhile time.time() returns a coarser float, so 'now - mtime' can be a\ntiny negative number (~-2.38e-7) immediately after writing the file.\nThis caused test_chip_cache_info_reports_metadata to fail on the\nwindows-latest CI job.\n\nClamp age_seconds at 0 in both chip_cache and backend_cache.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(cache): clamp age_seconds to non-negative for Windows clock preci…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T15:24:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fd2014a208c23e5cec8bac1f2385ed4156ba69ba",
          "body": "…ents-phase1\n\nchore(coverage): phase 1+4+5+2 coverage improvements",
          "is_bot": false,
          "headline": "Merge pull request #107 from IAI-USTC-Quantum/chore/coverage-improvem…",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-05-17T15:10:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bce06a4892f0b4a99f40dd6a983e53f40df531dc",
          "body": "POSIX file-mode bits aren't enforced on Windows (st_mode is always\n0o666 for writable files), so test_save_config_sets_restrictive_perms\nfails there. Skip on win32.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "test(config): skip file-mode assertion on Windows",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T14:59:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5be82e7215becf01315f207154aecd8dbfb89f72",
          "body": "PowerShell (Windows default) doesn't accept the backslash line\ncontinuation used in the multi-line pytest commands, so add\n`shell: bash` to the three pytest steps in build_and_test.yml.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci(windows): force bash shell for multi-line pytest invocations",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T14:50:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3786539981fe9f8244455a11ce0c8a6859325183",
          "body": "…pickle)\n\nThe earlier split-into-two-runs fix wasn't enough: installing torchquantum\nbrings 'dill' as a transitive dep, and just having dill importable (let\nalone imported) is what makes qiskit's Qubit pickle path fail with\n\"Tried to instantiate class 'Qubit._from_owned', but it does not exist\".\n\nRe\n[…]\nill-free environment, and the torchquantum-touching\ntests run in their own pytest invocation against the post-install\nenvironment.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci: install torchquantum AFTER main pytest (dill breaks qiskit Qubit …",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T14:33:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d742cbf1272e0186e0d56b3f0cd2981f13c1e31d",
          "body": "Once torchquantum is installed and imported, torch's C++ class registry\nplus the transitive dill dependency cause qiskit's pickle path for\nqiskit.circuit.Qubit to fail in test_transpiler_qiskit (\"Tried to\ninstantiate class 'Qubit._from_owned', but it does not exist\").\n\nThe workflow already hinted at\n[…]\n- uniqc/test/simulator/test_simulator_factory.py  (imports\n    TORCHQUANTUM_AVAILABLE from uniqc.simulator.torchquantum_simulator)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci: split torchquantum-touching tests into a separate pytest invocation",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T14:25:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2a8d72643801ffc4365c6e5e1d31479d995aac33",
          "body": "Phase 1 (housekeeping that immediately lifts the headline number):\n* pyproject.toml: add [tool.coverage.run] with omit list (tests, _version.py,\n  __init__.py) so the per-package denominator only counts production code.\n* codecov.yml: mirror the same ignore list so Codecov drops test files,\n  genera\n[…]\non-cloud): 57 % → 66 %. Adding torchquantum in CI is\nexpected to push it further once the torch training modules actually\nexecute.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore(coverage): phase 1+4+5+2 coverage improvements",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T13:20:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2a6f58e7a1b64514f3db9f107fb2d0fbc25fbd10",
          "body": "…form\n\ndocs: use canonical 'provider:chip' backend form everywhere",
          "is_bot": false,
          "headline": "Merge pull request #106 from IAI-USTC-Quantum/docs/canonical-backend-…",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-05-17T12:16:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a30737168ad1f98337fa0f6482541caa7f49bd62",
          "body": "Update all docs and code examples to the canonical `backend='provider:chip'`\nform (e.g. `'originq:WK_C180'`, `'quafu:ScQ-P18'`) instead of the legacy\nsplit `backend='originq', backend_name='WK_C180'` form.\n\nAlso drop the now-redundant `backend=` kwarg from `wait_for_result` /\n`query_task` examples —\n[…]\ne\n`submit_task` docstring legacy example, and the backward-compat tests in\n`test_doc_basic_usage.py` are intentionally left as-is.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: use canonical 'provider:chip' backend form everywhere",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T12:03:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6245c79d5353868b042ee3a992ffa343e822331b",
          "body": "Fix/audit p0 p1",
          "is_bot": false,
          "headline": "Merge pull request #104 from IAI-USTC-Quantum/fix/audit-p0-p1",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-05-17T11:44:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91bd9f2e09bfe9672dfbedb6ab0991d4ca3595bb",
          "body": "Fix/audit p2 p3",
          "is_bot": false,
          "headline": "Merge pull request #105 from IAI-USTC-Quantum/fix/audit-p2-p3",
          "author_name": "Agony",
          "author_login": "Agony5757",
          "committed_at": "2026-05-17T11:19:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aed7b7d06e58b2bfc13623cdd6d565fdcdf1aee0",
          "body": "1092 auto-fixable issues resolved (1465 → 329 ruff findings, F821 stays 0).\n184 files reformatted.\n\nHighlights:\n- F401: 152 → 57 unused imports removed\n- F811: 10 → 4 redefinitions cleared\n- F841: 23 → 21 unused vars cleared\n- UP006: 255 → 0 (legacy typing.List/Dict → list/dict)\n- UP045: 147 → 1 (Op\n[…]\nling whitespace\n- I001: 134 → 0 import ordering\n\nNo behavior change; full pytest suite still 1430 passed / 270 skipped / 0 failed.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "style: apply ruff --fix and ruff format across uniqc/",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T10:39:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3c19b755455c720f96036c4516aae1a533891b1a",
          "body": null,
          "is_bot": false,
          "headline": "merge: _route_with_fidelity fix + tiny-circuit test",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T10:38:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52eeb45f6b7a87bc2e2d07401ec3fb85342bd4a8",
          "body": null,
          "is_bot": false,
          "headline": "merge: test coverage (zne, vqe-h2, qaoa-maxcut)",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T10:38:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa245cb6c24afc83b22c8d0749b3b0374d1faf30",
          "body": null,
          "is_bot": false,
          "headline": "merge: code cleanup (M-1, M-2, M-4)",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T10:38:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9992eeec1aa7953f5ca513cec6116f8635ff4bd0",
          "body": "…it + large-chip\n\n- compiler.py: l2p dict now covers every logical qubit (identity fallback for shorts);\n  _estimate_circuit_fidelity_from_lines treats missing sq/tq fidelity as 1.0 and\n  always sorts edge tuples before tq_fid lookup\n- test_doc_basic_usage.py: drop xfail on test_chip_backed_dummy (was 'pre-existing router bug')\n- new test: test_route_with_fidelity_tiny_circuit.py covers the regression path\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(compiler): _route_with_fidelity no longer KeyErrors on tiny-circu…",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T10:38:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1ce15ab87475b8655147074ffd806e167424c3fc",
          "body": "- test_zne_extrapolation.py: invalid-depth raise + linear/richardson/exponential fits\n- test_vqe_h2_workflow.py: locks in H2/STO-3G ground-state energy in chemical-accuracy band\n- test_qaoa_maxcut_workflow.py: 3-node triangle MaxCut finds near-optimum cut at p=1\n\nCloses 3 of the 10 high-priority test recommendations from the audit (§6).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "test: add ZNE extrapolation, VQE H2 chemistry, QAOA maxcut regressions",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T10:31:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5bef5c05be1270c671a8f87ed1984ee28aa27f31",
          "body": "…raise-from\n\n- M-1: visualization/timeline.py drops shadowed local TimelineDurationError class\n- M-2: pauli_expectation.py:77 comment corrected (qubit 0 = LSB per house convention)\n- M-4: 20 B904 sites updated to 'raise ... from e' across ansatz/cli/compile/qasm/qiskit\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "refactor(cleanup): M-1 timeline shadow, M-2 endian comment, M-4 B904 …",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T10:29:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cf36f98b61e9faffd4780807671b3e46ed6332fe",
          "body": null,
          "is_bot": false,
          "headline": "merge: CI meta fixes (H-7, H-8, H-9)",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T09:11:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c34771464cee6399883d4cb2eb04806509314e4b",
          "body": null,
          "is_bot": false,
          "headline": "merge: docs/examples fixes (C-5, C-6, M-10, M-11, M-12)",
          "author_name": "Agony5757",
          "author_login": null,
          "committed_at": "2026-05-17T09:11:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 18,
      "commits_last_year": 385,
      "latest_release_at": "2026-07-19T14:27:55Z",
      "latest_release_tag": "v0.0.16",
      "releases_from_tags": false,
      "days_since_last_push": 2,
      "active_weeks_last_year": 8,
      "days_since_latest_release": 8,
      "mean_days_between_releases": 8.5
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "unified-quantum",
          "exists": true,
          "license": null,
          "keywords": [
            "Development Status :: 5 - Production/Stable",
            "Intended Audience :: Developers",
            "Intended Audience :: Science/Research",
            "Operating System :: Microsoft :: Windows",
            "Operating System :: POSIX",
            "Operating System :: Unix",
            "Programming Language :: C++",
            "Programming Language :: Python",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3 :: Only",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Programming Language :: Python :: 3.14",
            "Topic :: Scientific/Engineering :: Artificial Intelligence"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/unified-quantum/",
          "is_deprecated": false,
          "latest_version": "0.0.16",
          "repository_url": "https://github.com/IAI-USTC-Quantum/UnifiedQuantum.git",
          "versions_count": 18,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 709,
          "first_published_at": "2026-04-18T11:38:21.959534Z",
          "latest_published_at": "2026-07-19T14:41:02.692466Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 8
        }
      ]
    },
    "popularity": {
      "forks": 4,
      "stars": 1,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-04-18",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 1
          },
          {
            "date": "2026-04-23",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 3,
        "total_forks": 4
      },
      "star_history": null,
      "open_issues_and_prs": 4
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "docs/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "frontend/tsconfig.json"
      ],
      "toolchain_manifests": [
        "UniqcCpp/Thirdparty/fmt/support/build.gradle"
      ],
      "largest_source_bytes": 532560,
      "source_files_sampled": 529,
      "oversized_source_files": 10,
      "agent_instruction_files": [
        ".github/copilot-instructions.md"
      ],
      "agent_instruction_max_bytes": 6675
    },
    "dependencies": {
      "manifests": [
        "frontend/package.json",
        "pyproject.toml",
        "setup.py"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 57,
        "malicious_count": 0,
        "assessed_package": "pypi:unified-quantum@0.0.16",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "axios",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.7.9"
        },
        {
          "name": "d3",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.9.0"
        },
        {
          "name": "lucide-react",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.469.0"
        },
        {
          "name": "react",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^18.3.1"
        },
        {
          "name": "react-dom",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^18.3.1"
        },
        {
          "name": "react-router-dom",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.1.1"
        },
        {
          "name": "numpy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "requests",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "pyyaml",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "sympy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "typing-extensions",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "typer",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "rich",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "scipy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "fastapi",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "uvicorn",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "qiskit",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "qiskit-aer",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "qiskit-ibm-runtime",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 83,
        "open_issues": 4,
        "closed_ratio": 0.886,
        "closed_issues": 31,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "Agony5757",
          "commits": 201,
          "avatar_url": "https://avatars.githubusercontent.com/u/14315492?v=4"
        },
        {
          "type": "User",
          "login": "TMYTiMidlY",
          "commits": 25,
          "avatar_url": "https://avatars.githubusercontent.com/u/93774927?v=4"
        },
        {
          "type": "User",
          "login": "yowakkojay",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/219454023?v=4"
        }
      ],
      "contributors_sampled": 3,
      "top_contributor_share": 0.885
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build_and_test.yml",
        "contract_parity.yml",
        "docs.yml",
        "pypi-publish.yml",
        "pytest_coverage.yml",
        "python_build_wheel.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/28 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 10,
            "reason": "project is fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 10,
            "reason": "all dependencies are pinned",
            "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": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "22 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "d6e7ad2ab480ba1222a04a7c20509b1bc6b016f2",
        "ran_at": "2026-07-28T04:18:35Z",
        "aggregate_score": 5.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-25T06:47:17Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-19T14:15:59Z",
      "ci_last_conclusion": "FAILURE",
      "oldest_open_issues": [
        {
          "number": 109,
          "created_at": "2026-05-28T03:24:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 110,
          "created_at": "2026-05-28T03:24:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 111,
          "created_at": "2026-05-28T03:24:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 112,
          "created_at": "2026-05-28T03:24:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/IAI-USTC-Quantum/UnifiedQuantum",
    "host": "github.com",
    "name": "UnifiedQuantum",
    "owner": "IAI-USTC-Quantum"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 68,
      "inputs": {
        "security": 64,
        "vitality": 82,
        "community": 43,
        "governance": 57,
        "engineering": 92
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 82,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "commits_last_year": 385,
              "human_commit_share": 1,
              "days_since_last_push": 2,
              "active_weeks_last_year": 8
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "8/52 weeks with commits",
                "points": 5.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 8
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "385 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 385
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 18,
              "latest_release_tag": "v0.0.16",
              "releases_from_tags": false,
              "days_since_latest_release": 8,
              "mean_days_between_releases": 8.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "18 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 8 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 8
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~8.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 8.5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 43,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 4,
            "inputs": {
              "forks": 4,
              "stars": 1,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "4 forks",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "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 (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "at_risk",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 48,
            "inputs": {
              "packages": [
                "unified-quantum"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 709
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "709 downloads/month across pypi",
                "points": 38,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 709,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 57,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 19,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 3,
              "top_contributor_share": 0.885
            },
            "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 88% of commits",
                "points": 2.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 88
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "3 contributors",
                "points": 4.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 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": 80,
            "inputs": {
              "merged_prs": 83,
              "open_issues": 4,
              "closed_issues": 31,
              "issue_closed_ratio": 0.886,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "89% of issues closed",
                "points": 41.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 89
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "83/83 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 83,
                      "decided": 83
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "followers": 7,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "IAI-USTC-Quantum",
              "public_repos": 8,
              "account_age_days": 179
            },
            "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": "7 followers of IAI-USTC-Quantum",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 7,
                      "login": "IAI-USTC-Quantum"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "8 public repos, account ~0 yr old",
                "points": 7.9,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 8
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "unified-quantum"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 8
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 8 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 8
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "18 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 92,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "6 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "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": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "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": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": "https://iai-ustc-quantum.github.io/UnifiedQuantum/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://iai-ustc-quantum.github.io/UnifiedQuantum/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 64,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 55,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 5.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": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is fuzzed",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "all dependencies are pinned",
                "points": 5,
                "status": "met",
                "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": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "22 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:unified-quantum@0.0.16 runtime dependency closure — what installing the published package pulls in — 57 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:unified-quantum@0.0.16",
                  "assessed": 57
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 57,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 57,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "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": 1
            },
            "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": "good",
        "name": "AI Readiness",
        "value": 80,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.98,
              "agent_instruction_files": [
                ".github/copilot-instructions.md"
              ],
              "agent_instruction_max_bytes": 6675
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".github/copilot-instructions.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/copilot-instructions.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "98 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 98,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [
                "docs/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "frontend/tsconfig.json"
              ],
              "agent_commit_share": 0.74,
              "toolchain_manifests": [
                "UniqcCpp/Thirdparty/fmt/support/build.gradle"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "docs/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "docs/Makefile"
                    }
                  }
                ],
                "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": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "frontend/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "frontend/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "74 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 74,
                      "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": "all dependencies are pinned",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 532560,
              "source_files_sampled": 529,
              "oversized_source_files": 10
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (frontend/tsconfig.json)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "frontend/tsconfig.json",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "10/529 source files over 60KB",
                "points": 54,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 529,
                      "oversized": 10
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-28T04:18:45.765270Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/i/IAI-USTC-Quantum/UnifiedQuantum.svg",
  "full_name": "IAI-USTC-Quantum/UnifiedQuantum",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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

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

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