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