Public record
Software health reportschema 0.27.0 · metrics 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 star⑂ 4 forkssince Apr 2026View on GitHub ↗

IAI-USTC-Quantum/UnifiedQuantum holds a health index of 68 out of 100, placing it in the Moderate band. It scores highest on Engineering Quality (92/100) and lowest on Community & Adoption (43/100). It was last updated 2 days ago. A single contributor accounts for most of its recent work.

68
overall / 100
Moderate

Software health index

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

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

Score profile

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

Ownership

IAI-USTC QuantumOrganization
7 followers8 public repossince Jan 2026

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publish
PyPIunified-quantum0.0.16709188 days ago

Metrics by category

Vitality

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

82Good · 22% of overall
How it's scored
36/36Push recency — last push 2 days ago
5.5/36Commit cadence — 8/52 weeks with commits
18/18Commit volume — 385 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year385
human_commit_share1
days_since_last_push2
active_weeks_last_year8

Release discipline

100Excellent
How it's scored
27/27Ships releases — 18 releases published
36/36Release recency — latest release 8 days ago
27/27Release cadence — a release every ~8.5 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count18
latest_release_tagv0.0.16
releases_from_tagsno
days_since_latest_release8
mean_days_between_releases8.5
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

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

43At risk · 18% of overall
How it's scored
0/60Stars — 1 stars
4/25Forks — 4 forks
0/15Watchers — 0 watchers
Inputs used
forks4
stars1
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Community health

85Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductyes
has_pull_request_templateno
How it's scored
38/80Monthly downloads — 709 downloads/month across pypi
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesunified-quantum
dependents
ecosystemspypi
total_downloads
monthly_downloads709
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

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

57Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
2.6/22.5Commit distribution — top contributor authored 88% of commits
4.1/13.5Contributor breadth — 3 contributors
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Inputs used
bus_factor1
contributors_sampled3
top_contributor_share0.885
How it's scored
41.4/46.8Issue resolution — 89% of issues closed
38.2/38.3PR acceptance — 83/83 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/28 approved changesets -- score normalized to 0
Inputs used
merged_prs83
open_issues4
closed_issues31
issue_closed_ratio0.886
closed_unmerged_prs0
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
6.5/25Owner reach — 7 followers of IAI-USTC-Quantum
7.9/25Track record — 8 public repos, account ~0 yr old
Inputs used
followers7
owner_typeOrganization
is_verified
owner_loginIAI-USTC-Quantum
public_repos8
account_age_days179
How it's scored
25/25Published & resolvable — 1 package(s) on pypi
35/35Publish recency — latest publish 8 days ago
20/20Version history — 18 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesunified-quantum
ecosystemspypi
any_deprecatedno
min_days_since_publish8

Engineering Quality

Are baseline engineering and documentation practices in place?

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

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://iai-ustc-quantum.github.io/UnifiedQuantum/
10/10Repository description
0/10Topics
10/10Wiki
Inputs used
topics
has_wikiyes
homepagehttps://iai-ustc-quantum.github.io/UnifiedQuantum/
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

64Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 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.5License — 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 — no data
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 22 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5.5
Excluded from scoring (no data or not applicable): signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages57
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
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.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

80Good · 0% of overall
How it's scored
45/45Agent instructions — .github/copilot-instructions.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 98 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.98
agent_instruction_files.github/copilot-instructions.md
agent_instruction_max_bytes6,675
How it's scored
18/18One-command bootstrap — docs/Makefile
22/22Automated tests
11/11Lint / format config
11/11Static type checking — frontend/tsconfig.json
10/10Reproducible environment — lockfile
10/10Demonstrated agent practice — 74 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Inputs used
has_nixno
has_testsyes
lockfilespackage-lock.json
has_dockerfileno
typed_languageno
bootstrap_filesdocs/Makefile
has_devcontainerno
has_linter_configyes
typecheck_configsfrontend/tsconfig.json
agent_commit_share0.74
toolchain_manifestsUniqcCpp/Thirdparty/fmt/support/build.gradle
dependency_bot_commit_share0
How it's scored
27/45Type-checkable code — Python with type-check config (frontend/tsconfig.json)
54/55Manageable file sizes — 10/529 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes532,560
source_files_sampled529
oversized_source_files10
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_files

Key facts

1GitHub stars
3contributors
385commits, last 12 months
2days since last push
18releases
1bus factor
4open issues
npm, PyPIpackage ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 4 ⇿
0Stars
4Forks
3Releases

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

12233312026-042026-042026-04
Major 0Minor 0Patch 2
OpenSSF Scorecard 5.5 / 10
5.5aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-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
n/aSigned-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities22 existing vulnerabilities detected
Direct dependencies 19
RegistryPackageVersion constraintManifest
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
All dependencies not collected

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

Dependency advisories 0

Installing pypi:unified-quantum@0.0.16 pulls in 57 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

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

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

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

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