Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-28 04:18 UTC

IAI-USTC-Quantum / UnifiedQuantum

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

PythonApache-2.0★ 1 estrella⑂ 4 forksdesde abr 2026Ver en GitHub ↗

IAI-USTC-Quantum/UnifiedQuantum tiene un índice de salud de 68 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Engineering Quality (92/100) y la más baja, Community & Adoption (43/100). Se actualizó por última vez hace 2 días. Una sola persona concentra la mayor parte del trabajo reciente.

68
global / 100
Moderado

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

68
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

IAI-USTC QuantumOrganización
7 seguidores8 repositorios públicosdesde ene 2026

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
PyPIunified-quantum0.0.1670918hace 8 días

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

82Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 2 días
5.5/36Cadencia de commits — 8/52 semanas con commits
18/18Volumen de commits — 385 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year385
human_commit_share1
days_since_last_push2
active_weeks_last_year8
Cómo se puntúa
27/27Publica versiones — 18 versiones publicadas
36/36Recencia de las versiones — última versión hace 8 días
27/27Cadencia de publicación — una versión cada ~8,5 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count18
latest_release_tagv0.0.16
releases_from_tagsno
days_since_latest_release8
mean_days_between_releases8,5
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

43En riesgo · 18% del índice global
Cómo se puntúa
0/60Estrellas — 1 estrellas
4/25Forks — 4 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks4
stars1
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (Apache-2.0)
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_templateno
Cómo se puntúa
38/80Descargas mensuales — 709 descargas/mes en pypi
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesunified-quantum
dependents
ecosystemspypi
total_downloads
monthly_downloads709
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

57Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
2.6/22.5Distribución de commits — el principal contribuyente firma el 88% de los commits
4.1/13.5Amplitud de contribuyentes — 3 contribuyentes
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Datos de entrada utilizados
bus_factor1
contributors_sampled3
top_contributor_share0,885
Cómo se puntúa
41.4/46.8Resolución de issues — 89% de issues cerradas
38.2/38.3Aceptación de PR — 83/83 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/28 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs83
open_issues4
closed_issues31
issue_closed_ratio0,886
closed_unmerged_prs0
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
6.5/25Alcance del propietario — 7 seguidores de IAI-USTC-Quantum
7.9/25Trayectoria — 8 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers7
owner_typeOrganization
is_verified
owner_loginIAI-USTC-Quantum
public_repos8
account_age_days179
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en pypi
35/35Recencia de publicación — última publicación hace 8 días
20/20Historial de versiones — 18 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesunified-quantum
ecosystemspypi
any_deprecatedno
min_days_since_publish8

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

92Excelente · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 6 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter
9.6/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 1 out of 1 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_config
has_precommit_config

Documentación

90Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://iai-ustc-quantum.github.io/UnifiedQuantum/
10/10Descripción del repositorio
0/10Topics
10/10Wiki
Datos de entrada utilizados
topics
has_wiki
homepagehttps://iai-ustc-quantum.github.io/UnifiedQuantum/
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

64Moderado · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 1 out of 1 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/28 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
5/5Fuzzing — project is fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
5/5Pinned-Dependencies — all dependencies are pinned
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 22 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5,5
Excluidos de la puntuación (sin datos o no aplicable): signed_releases. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories0
affected_packages0
assessed_packages57
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejó el cierre de dependencias en tiempo de ejecución de pypi:unified-quantum@0.0.16 —lo que arrastra la instalación del paquete publicado—: 57 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

80Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — .github/copilot-instructions.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 98 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,98
agent_instruction_files.github/copilot-instructions.md
agent_instruction_max_bytes6675
Cómo se puntúa
18/18Arranque con un solo comando — docs/Makefile
22/22Pruebas automatizadas
11/11Configuración de lint / formato
11/11Verificación estática de tipos — frontend/tsconfig.json
10/10Entorno reproducible — lockfile
10/10Práctica demostrada con agentes — 74 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json
has_dockerfileno
typed_languageno
bootstrap_filesdocs/Makefile
has_devcontainerno
has_linter_config
typecheck_configsfrontend/tsconfig.json
agent_commit_share0,74
toolchain_manifestsUniqcCpp/Thirdparty/fmt/support/build.gradle
dependency_bot_commit_share0
Cómo se puntúa
27/45Código verificable por tipos — Python con configuración de verificación de tipos (frontend/tsconfig.json)
54/55Tamaños de archivo manejables — 10/529 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languagePython
largest_source_bytes532.560
source_files_sampled529
oversized_source_files10
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — examples
Datos de entrada utilizados
example_dirsexamples
has_mcp_signalno
api_schema_files

Datos clave

1estrellas de GitHub
3contribuidores
385commits en los últimos 12 meses
2días desde el último push
18versiones publicadas
1factor bus
4issues abiertas
npm, PyPIecosistemas de paquetes

Advertencias de recopilación de datos

  • 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

Más detalle

Historial de estrellas y forks 0 ★ / 4 ⇿
0Estrellas
4Forks
3Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

12233312026-042026-042026-04
Mayor 0Menor 0Parche 2
OpenSSF Scorecard 5.5 / 10
5.5agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-28 04:18 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests1 out of 1 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/28 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
10Fuzzingproject is fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
10Pinned-Dependenciesall dependencies are pinned
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities22 existing vulnerabilities detected
Dependencias directas 19
RegistroPaqueteRestricción de versiónManifiesto
npmaxios^1.7.9frontend/package.json
npmd3^7.9.0frontend/package.json
npmlucide-react^0.469.0frontend/package.json
npmreact^18.3.1frontend/package.json
npmreact-dom^18.3.1frontend/package.json
npmreact-router-dom^7.1.1frontend/package.json
PyPInumpypyproject.toml
PyPIrequestspyproject.toml
PyPIpyyamlpyproject.toml
PyPIsympypyproject.toml
PyPItyping-extensionspyproject.toml
PyPItyperpyproject.toml
PyPIrichpyproject.toml
PyPIscipypyproject.toml
PyPIfastapipyproject.toml
PyPIuvicornpyproject.toml
PyPIqiskitpyproject.toml
PyPIqiskit-aerpyproject.toml
PyPIqiskit-ibm-runtimepyproject.toml
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Avisos de dependencias 0

Instalar pypi:unified-quantum@0.0.16 arrastra 57 paquetes, directos y transitivos: 0 tienen avisos conocidos, de los cuales 0 son dependencias directas.

Ningún aviso conocido afecta a las dependencias evaluadas.

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

Informe JSON sin procesar legible por máquina
{
  "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"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasPyPI.