公开记录
软件健康报告模式 0.27.0 · 指标 2.5.0 · 2026-07-30 17:18 UTC

Open-Systems-Pharmacology / PK-Sim

PK-Sim® is a comprehensive software tool for whole-body physiologically based pharmacokinetic modeling

C#自定义许可证★ 169 星标⑂ 66 复刻始于 2017年2月在 GitHub 上查看 ↗

Open-Systems-Pharmacology/PK-Sim 的健康指数为 100 分中的 81 分,处于「优秀」区间。 其得分最高的类别是Vitality(90/100),最低的是Community & Adoption(53/100)。 最近一次更新在今天。 近期的大部分工作由 2 位贡献者完成。

81
总分 / 100
优秀

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均,再依据公开记录的分布进行校准,使各等级具有百分位含义;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 34(存在风险)的上限。

81
卓越93-100公开记录中的最高层级(约前 5%);基本满足所有检验标准
优秀80-92各方面均表现强劲;仅有少量不足
良好65-79健康;不足之处有限且可控
中等50-64可接受,但存在明显不足;建议进行审查
薄弱35-49多个领域存在实质性薄弱环节
存在风险20-34存在重大薄弱环节;采用时应保持审慎
危急1-19问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

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

加权总体分 69 经校准后在公布的指数量表上为 81(记录校准 2026-08-02)。

所有权

332 关注者401 个公开仓库始于 2017年1月

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

按类别列示的指标

活力

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

90优秀 · 占总体的 21%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
34.6/36提交节奏 — 52 周中有 50 周有提交
18/18提交量 — 最近一年 525 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year525
human_commit_share1
days_since_last_push0
active_weeks_last_year50

发布纪律

76良好
评分方式
27/27有发布版本 — 已发布 19 个发布版本
36/36发布时效 — 最近一次发布版本于 23 天前
12.6/27发布节奏 — 约每 188.9 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — Project has not signed or included provenance with any releases.
所用输入
releases_count19
latest_release_tagv12.3.173
releases_from_tags
days_since_latest_release23
mean_days_between_releases188.9

社区与采用

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

53中等 · 占总体的 17%
评分方式
36.1/60星标 — 169 个星标
15.1/25复刻 — 66 个复刻
3.9/15关注者 — 6 位关注者
所用输入
forks66
stars169
watchers6
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

51中等
评分方式
22.5/22.5README
16.9/22.5许可证 — 存在许可证文件,但不是可识别的许可证
0/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
readme_badges
has_contributing
has_issue_template
has_code_of_conduct
readme_badge_services
has_pull_request_template

可持续性与治理

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

71良好 · 占总体的 23%
评分方式
25.2/54巴士系数 — 2 位贡献者贡献了半数提交
11.6/22.5提交分布 — 头号贡献者编写了 49% 的提交
13.5/13.5贡献者广度 — 10 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 4 contributing companies or organizations
所用输入
bus_factor2
contributors_sampled10
top_contributor_share0.486
评分方式
33.3/42议题解决 — 79% 的议题已关闭
28.3/30PR 接受 — 已裁定的 PR 中 1,218/1,292 已合并
0/13Newcomer PR acceptance — 30 天内没有首次贡献者的 PR 得到裁决
10.5/15OpenSSF Scorecard:Code-Review — Found 16/22 approved changesets -- score normalized to 7
所用输入
merged_prs1,218
open_issues459
closed_issues1,757
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0.793
closed_unmerged_prs74
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
已排除计分(无数据或不适用):newcomer_pr_acceptance。 其余权重已重新归一化。
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
18.1/25所有者影响力 — Open-Systems-Pharmacology 有 332 位关注者
25/25既往记录 — 401 个公开仓库,账户约 9 年
所用输入
followers332
owner_typeOrganization
is_verified
owner_loginOpen-Systems-Pharmacology
public_repos401
account_age_days3,485

工程质量

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

74良好 · 占总体的 19%

工程实践

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

文档

85优秀
评分方式
30/30README
25/25文档目录
0/15文档 / 主页站点
10/10仓库描述
10/10主题标签 — 2 个主题标签
10/10Wiki
所用输入
topicspk-sim, suite-components
has_wiki
homepage
has_readme
has_docs_dir
has_description

安全

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

56中等 · 占总体的 16%

安全态势

54中等
评分方式
6/7.5Binary-Artifacts — binaries present in source code
4.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.2/2.5CI-Tests — 20 out of 21 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
5.2/7.5Code-Review — Found 16/22 approved changesets -- score normalized to 7
2.5/2.5Contributors — project has 4 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
4/5SAST — SAST tool is not run on all commits -- score normalized to 8
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate5.4
评分方式
14/35直接依赖不含已知公告 — 1 个受影响:Newtonsoft.Json 11.0.2 (high 7.5)
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
33.7/40没有长期未处理的公告 — 1 个携带公告的软件包超过 90 天未处理;最早一条发布于 1,499 天前
所用输入
sourceosv
advisories4
affected_packages3
assessed_packages90
unassessed_packages0
affected_by_severityhigh 2, moderate 1
direct_affected_packages1
已排除计分(无数据或不适用):间接依赖不含已知公告。 其余权重已重新归一化。 已将 90 个已解析依赖与 OSV 比对。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?权重刻意设小(4%):代理工具链是一项真实的维护信号,但完全不具备的仓库仍可达到 100/100。

55中等 · 占总体的 4%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
38.9/40可读的提交历史 — 100 次人类提交中有 73 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.73
agent_instruction_files
agent_instruction_max_bytes
评分方式
12.6/18一条命令的引导启动 — src/PKSim.Assets/PKSim.Assets.csproj, src/PKSim.BatchTool/PKSim.BatchTool.csproj, src/PKSim.CLI.Core/PKSim.CLI.Core.csproj(工具链约定,无任务运行器)
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — C#(静态类型)
0/10可复现环境
10/10已体现的代理实践 — 最近 100 次提交中有 8 次由代理编写或署名代理
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0.08
toolchain_manifestssrc/PKSim.Assets/PKSim.Assets.csproj, src/PKSim.BatchTool/PKSim.BatchTool.csproj, src/PKSim.CLI.Core/PKSim.CLI.Core.csproj, src/PKSim.CLI/PKSim.CLI.csproj, src/PKSim.Core/PKSim.Core.csproj, src/PKSim.Infrastructure/PKSim.Infrastructure.csproj, src/PKSim.Presentation/PKSim.Presentation.csproj, src/PKSim.R/PKSim.R.csproj, src/PKSim.Starter/PKSim.Starter.csproj, src/PKSim.UI/PKSim.UI.csproj, src/PKSim/PKSim.csproj, tests/PKSim.R.Tests/PKSim.R.Tests.csproj, tests/PKSim.Tests/PKSim.Tests.csproj, tests/PKSim.UI.Tests/PKSim.UI.Tests.csproj
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — C#(静态类型)
55/55可控的文件大小 — 采样的 3,708 个源文件中有 3 个超过 60KB
所用输入
primary_languageC#
largest_source_bytes180,785
source_files_sampled3,708
oversized_source_files3
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — examples
所用输入
example_dirsexamples
has_mcp_signal
api_schema_files

关键数据

169GitHub 星标
10贡献者
525最近 12 个月提交数
0距最近推送天数
19发布版本数
2巴士系数(bus factor)
459开放议题
软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

更多细节

Star 与 Fork 历史 0 ★ / 66 ⇿
0Star
66Fork
19发布

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

01325385063756632017-032021-112026-07
主版本 0次版本 0修订 10

每个点涵盖 9 天。

OpenSSF Scorecard 5.4 / 10
5.4综合

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

8Binary-Artifactsbinaries present in source code
6Branch-Protectionbranch protection is not maximal on development and all release branches
9CI-Tests20 out of 21 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
7Code-ReviewFound 16/22 approved changesets -- score normalized to 7
10Contributorsproject has 4 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
10Maintained30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
8SASTSAST tool is not run on all commits -- score normalized to 8
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
直接依赖 89
注册表软件包版本约束清单文件
NuGetOSPSuite.Assets13.0.141src/PKSim.Assets/PKSim.Assets.csproj
NuGetOSPSuite.Assets.Images13.0.141src/PKSim.Assets/PKSim.Assets.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.Assets/PKSim.Assets.csproj
NuGetDevExpress.Win.Design25.2.7src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetOSPSuite.FuncParser5.0.0.3src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetOSPSuite.SimModel5.0.0.80src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetOSPSuite.SimModelSolver_CVODES5.0.0.53src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetMicrosoft.Data.Sqlite10.0.7src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetSQLitePCLRaw.bundle_e_sqlite33.0.3src/PKSim.BatchTool/PKSim.BatchTool.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.CLI.Core/PKSim.CLI.Core.csproj
NuGetOSPSuite.Utility5.0.0.11src/PKSim.CLI.Core/PKSim.CLI.Core.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.CLI.Core/PKSim.CLI.Core.csproj
NuGetOSPSuite.CLI.Core13.0.141src/PKSim.CLI.Core/PKSim.CLI.Core.csproj
NuGetCommandLineParser2.9.1src/PKSim.CLI/PKSim.CLI.csproj
NuGetMicrosoft.Extensions.Logging.Console9.0.2src/PKSim.CLI/PKSim.CLI.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.CLI/PKSim.CLI.csproj
NuGetOSPSuite.Presentation13.0.141src/PKSim.CLI/PKSim.CLI.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.CLI/PKSim.CLI.csproj
NuGetOSPSuite.Utility5.0.0.11src/PKSim.CLI/PKSim.CLI.csproj
NuGetOSPSuite.FuncParser5.0.0.3src/PKSim.CLI/PKSim.CLI.csproj
NuGetOSPSuite.SimModel5.0.0.80src/PKSim.CLI/PKSim.CLI.csproj
NuGetOSPSuite.SimModelSolver_CVODES5.0.0.53src/PKSim.CLI/PKSim.CLI.csproj
NuGetMicrosoft.Data.Sqlite10.0.7src/PKSim.CLI/PKSim.CLI.csproj
NuGetSQLitePCLRaw.bundle_e_sqlite33.0.3src/PKSim.CLI/PKSim.CLI.csproj
NuGetNewtonsoft.Json13.0.3src/PKSim.Core/PKSim.Core.csproj
NuGetOSPSuite.Utility5.0.0.11src/PKSim.Core/PKSim.Core.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.Core/PKSim.Core.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.Core/PKSim.Core.csproj
NuGetOSPSuite.Assets.Images13.0.141src/PKSim.Core/PKSim.Core.csproj
NuGetOSPSuite.Infrastructure.Import13.0.141src/PKSim.Core/PKSim.Core.csproj
NuGetSystem.ComponentModel.Annotations5.0.0src/PKSim.Core/PKSim.Core.csproj
NuGetFluentNHibernate3.4.0src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetLumenWorksCsvReader4.0.0src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetMarkdownLog.NS200.10.1src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetMicrosoft.Extensions.Logging9.0.2src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetMicrosoft.Extensions.Logging.Abstractions9.0.2src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetNewtonsoft.Json.Schema4.0.1src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetNewtonsoft.Json13.0.3src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetNHibernate.Extensions.Sqlite10.0.1src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Infrastructure13.0.141src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Infrastructure.Castle13.0.141src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Infrastructure.Export13.0.141src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Infrastructure.Import13.0.141src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Infrastructure.Serialization13.0.141src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Utility5.0.0.11src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetMicrosoft.Data.Sqlite10.0.7src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetSQLitePCLRaw.bundle_e_sqlite33.0.3src/PKSim.Infrastructure/PKSim.Infrastructure.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.Presentation/PKSim.Presentation.csproj
NuGetOSPSuite.TeXReporting3.0.1.3src/PKSim.Presentation/PKSim.Presentation.csproj
NuGetOSPSuite.Utility5.0.0.11src/PKSim.Presentation/PKSim.Presentation.csproj
NuGetOSPSuite.Presentation13.0.141src/PKSim.Presentation/PKSim.Presentation.csproj
NuGetOSPSuite.Presentation.Serialization13.0.141src/PKSim.Presentation/PKSim.Presentation.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.Presentation/PKSim.Presentation.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.R/PKSim.R.csproj
NuGetOSPSuite.R13.0.141src/PKSim.R/PKSim.R.csproj
NuGetOSPSuite.Utility5.0.0.11src/PKSim.R/PKSim.R.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.R/PKSim.R.csproj
NuGetOSPSuite.FuncParser5.0.0.3src/PKSim.R/PKSim.R.csproj
NuGetOSPSuite.SimModel5.0.0.80src/PKSim.R/PKSim.R.csproj
NuGetOSPSuite.SimModelSolver_CVODES5.0.0.53src/PKSim.R/PKSim.R.csproj
NuGetMicrosoft.Data.Sqlite10.0.7src/PKSim.R/PKSim.R.csproj
NuGetSQLitePCLRaw.bundle_e_sqlite33.0.3src/PKSim.R/PKSim.R.csproj
NuGetOSPSuite.Presentation13.0.141src/PKSim.Starter/PKSim.Starter.csproj
NuGetOSPSuite.UI13.0.141src/PKSim.Starter/PKSim.Starter.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.Starter/PKSim.Starter.csproj
NuGetOSPSuite.Infrastructure13.0.141src/PKSim.Starter/PKSim.Starter.csproj
NuGetMicrosoft.Extensions.Logging9.0.2src/PKSim.UI/PKSim.UI.csproj
NuGetMicrosoft.Extensions.Logging.Debug9.0.2src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.DataBinding4.0.0.5src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.DataBinding.DevExpress7.0.0.6src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.Utility5.0.0.11src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.Presentation13.0.141src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.UI13.0.141src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.Core13.0.141src/PKSim.UI/PKSim.UI.csproj
NuGetDevExpress.Win.Design25.2.7src/PKSim.UI/PKSim.UI.csproj
NuGetOSPSuite.Assets13.0.141src/PKSim/PKSim.csproj
NuGetOSPSuite.Core13.0.141src/PKSim/PKSim.csproj
NuGetOSPSuite.FuncParser5.0.0.3src/PKSim/PKSim.csproj
NuGetOSPSuite.SimModel5.0.0.80src/PKSim/PKSim.csproj
NuGetOSPSuite.SimModelSolver_CVODES5.0.0.53src/PKSim/PKSim.csproj
NuGetMicrosoft.Data.Sqlite10.0.7src/PKSim/PKSim.csproj
NuGetSQLitePCLRaw.bundle_e_sqlite33.0.3src/PKSim/PKSim.csproj
NuGetOSPSuite.Presentation13.0.141src/PKSim/PKSim.csproj
NuGetOSPSuite.TeXReporting3.0.1.3src/PKSim/PKSim.csproj
全部依赖 90

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

注册表软件包版本关系
NuGetCommandLineParser2.2.1直接
NuGetCommandLineParser2.4.3直接
NuGetCommandLineParser2.9.1直接
NuGetDevExpress.Win.Design25.2.7直接
NuGetFluentNHibernate2.0.3.0直接
NuGetFluentNHibernate3.4.0直接
NuGetLumenWorksCsvReader4.0.0直接
NuGetMarkdownLog.NS200.10.1直接
NuGetMicrosoft.Data.Sqlite10.0.7直接
NuGetMicrosoft.Extensions.Logging9.0.2直接
NuGetMicrosoft.Extensions.Logging.Abstractions2.0.1直接
NuGetMicrosoft.Extensions.Logging.Abstractions2.2.0直接
NuGetMicrosoft.Extensions.Logging.Abstractions9.0.2直接
NuGetMicrosoft.Extensions.Logging.Console9.0.2直接
NuGetMicrosoft.Extensions.Logging.Debug9.0.2直接
NuGetNewtonsoft.Json11.0.2直接
NuGetNewtonsoft.Json13.0.3直接
NuGetNewtonsoft.Json.Schema4.0.1直接
NuGetNHibernate.Extensions.Sqlite10.0.1直接
NuGetOSPSuite.Assets13.0.141直接
NuGetOSPSuite.Assets7.4.0.2直接
NuGetOSPSuite.Assets9.0.1直接
NuGetOSPSuite.Assets.Images13.0.141直接
NuGetOSPSuite.CLI.Core13.0.141直接
NuGetOSPSuite.Core13.0.141直接
NuGetOSPSuite.Core7.4.0.2直接
NuGetOSPSuite.Core9.0.1直接
NuGetOSPSuite.DataBinding2.2.0.2直接
NuGetOSPSuite.DataBinding4.0.0.5直接
NuGetOSPSuite.DataBinding.DevExpress2.2.0.2直接
NuGetOSPSuite.DataBinding.DevExpress7.0.0.6直接
NuGetOSPSuite.FuncParser3.0.1.14直接
NuGetOSPSuite.FuncParser3.0.1.9直接
NuGetOSPSuite.FuncParser5.0.0.3直接
NuGetOSPSuite.Infrastructure13.0.141直接
NuGetOSPSuite.Infrastructure7.4.0.2直接
NuGetOSPSuite.Infrastructure.Castle13.0.141直接
NuGetOSPSuite.Infrastructure.Export13.0.141直接
NuGetOSPSuite.Infrastructure.Import13.0.141直接
NuGetOSPSuite.Infrastructure.Serialization13.0.141直接
NuGetOSPSuite.Presentation13.0.141直接
NuGetOSPSuite.Presentation7.4.0.2直接
NuGetOSPSuite.Presentation9.0.1直接
NuGetOSPSuite.Presentation.Serialization13.0.141直接
NuGetOSPSuite.R13.0.141直接
NuGetOSPSuite.SimModel3.0.1.17直接
NuGetOSPSuite.SimModel3.0.1.27直接
NuGetOSPSuite.SimModel5.0.0.80直接
NuGetOSPSuite.SimModelSolver_CVODES4.0.0.5直接
NuGetOSPSuite.SimModelSolver_CVODES5.0.0.53直接
NuGetOSPSuite.TeXReporting2.1.1.9直接
NuGetOSPSuite.TeXReporting3.0.1.3直接
NuGetOSPSuite.UI13.0.141直接
NuGetOSPSuite.UI7.4.0.2直接
NuGetOSPSuite.Utility3.0.0.3直接
NuGetOSPSuite.Utility3.0.1.7直接
NuGetOSPSuite.Utility5.0.0.11直接
NuGetSQLitePCLRaw.bundle_e_sqlite33.0.3直接
NuGetSystem.ComponentModel.Annotations5.0.0直接
NuGetCastle.Core3.3.3间接
NuGetCastle.Windsor3.4.0间接
NuGetcsmpfit1.1.1间接
NuGetDapper1.50.4间接
NuGetFakeItEasy4.5.1间接
NuGetFakeItEasy8.3.0间接
NuGetIesi.Collections4.0.2间接
NuGetMathNet.Numerics4.4.0间接
NuGetMathNet.Numerics4.7.0间接
NuGetMicrosoft.NET.Test.Sdk17.13.0间接
NuGetNHibernate4.1.1.4000间接
NuGetNorthwoods.GoWin5.2.0间接
NuGetNUnit3.14.0间接
NuGetNUnit3.5.0间接
NuGetNUnit3TestAdapter5.0.0间接
NuGetOSPSuite.BDDHelper2.0.1.4间接
NuGetOSPSuite.BDDHelper4.0.1.1间接
NuGetOSPSuite.DevExpress17.1.5间接
NuGetOSPSuite.DevExpress.Presentation17.1.5间接
NuGetOSPSuite.DevExpress.Presentation18.2.7间接
NuGetOSPSuite.Engine9.0.1间接
NuGetOSPSuite.Serializer2.0.1.4间接
NuGetOSPSuite.SmartXLS2.6.8.2间接
NuGetOSPSuite.SmartXLS2.7.1.9间接
NuGetSharpZipLib0.86.0间接
NuGetSystem.Collections4.0.11间接
NuGetSystem.Console4.0.0间接
NuGetSystem.Data.SQLite.Core1.0.106.0间接
NuGetSystem.ValueTuple4.4.0间接
NuGetWindowsAPICodePack-Core1.1.2间接
NuGetWindowsAPICodePack-Shell1.1.1间接
依赖安全公告 3

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 90 个包,其中也包含从不交付的开发与测试版本固定:3 个存在已知公告,1 个为直接依赖。

软件包版本关系严重程度公告数修复版本
Newtonsoft.Json11.0.2直接113.0.1
SharpZipLib0.86.0间接21.3.3
NHibernate4.1.1.4000间接15.5.2

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

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "pk-sim",
        "suite-components"
      ],
      "is_fork": false,
      "size_kb": 285721,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C#": 11240007,
        "TeX": 8767,
        "Ruby": 7909,
        "Batchfile": 508,
        "Rich Text Format": 133918
      },
      "pushed_at": "2026-07-29T17:59:07Z",
      "created_at": "2017-02-10T14:58:51Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-29T17:59:33Z",
      "description": "PK-Sim® is a comprehensive software tool for whole-body physiologically based pharmacokinetic modeling",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "develop",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "C#",
      "significant_languages": [
        "C#"
      ]
    },
    "owner": {
      "blog": "http://setup.open-systems-pharmacology.org",
      "name": "Open Systems Pharmacology",
      "type": "Organization",
      "login": "Open-Systems-Pharmacology",
      "company": null,
      "location": null,
      "followers": 332,
      "avatar_url": "https://avatars.githubusercontent.com/u/25098323?v=4",
      "created_at": "2017-01-13T08:36:59Z",
      "is_verified": null,
      "public_repos": 401,
      "account_age_days": 3485
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v12.3.173",
          "kind": "patch",
          "published_at": "2026-07-07T09:31:45Z"
        },
        {
          "tag": "v12.3.137",
          "kind": "patch",
          "published_at": "2026-06-01T10:01:50Z"
        },
        {
          "tag": "v12.2.112",
          "kind": "patch",
          "published_at": "2026-01-12T10:49:41Z"
        },
        {
          "tag": "v12.1.222",
          "kind": "patch",
          "published_at": "2025-09-18T09:12:15Z"
        },
        {
          "tag": "v12.0.440",
          "kind": "patch",
          "published_at": "2025-02-10T14:33:13Z"
        },
        {
          "tag": "v11.3.208",
          "kind": "patch",
          "published_at": "2024-04-10T10:52:23Z"
        },
        {
          "tag": "v11.2.142",
          "kind": "patch",
          "published_at": "2023-05-03T10:14:50Z"
        },
        {
          "tag": "v11.1.137",
          "kind": "patch",
          "published_at": "2023-02-01T16:43:00Z"
        },
        {
          "tag": "v11.0.150",
          "kind": "patch",
          "published_at": "2022-05-19T08:35:08Z"
        },
        {
          "tag": "v10.0.257",
          "kind": "patch",
          "published_at": "2021-11-10T17:08:46Z"
        },
        {
          "tag": "v9.1",
          "kind": "other",
          "published_at": "2020-07-22T16:51:57Z"
        },
        {
          "tag": "v9.0",
          "kind": "other",
          "published_at": "2020-06-21T14:30:01Z"
        },
        {
          "tag": "v8.0",
          "kind": "other",
          "published_at": "2019-06-18T14:00:35Z"
        },
        {
          "tag": "v7.4.0.127",
          "kind": "other",
          "published_at": "2019-01-09T15:13:34Z"
        },
        {
          "tag": "v7.3.0.42",
          "kind": "other",
          "published_at": "2018-06-12T14:00:51Z"
        },
        {
          "tag": "v7.2.2.3",
          "kind": "other",
          "published_at": "2018-04-24T16:07:16Z"
        },
        {
          "tag": "v7.2.1.2",
          "kind": "other",
          "published_at": "2017-12-19T17:50:54Z"
        },
        {
          "tag": "v7.2.0.143",
          "kind": "other",
          "published_at": "2017-12-01T17:46:00Z"
        },
        {
          "tag": "v7.1.0.63",
          "kind": "other",
          "published_at": "2017-05-30T14:05:16Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "c3579de05f8a5d932592659cbaff7d863cf794bf",
          "body": "Bump OSPSuite.Core to 13.0.141 and OSPSuite.Utility to 5.0.0.11, which contain\nthe FileHelper.TryOpenFile fix.",
          "is_bot": false,
          "headline": "Fixes #3397 Open exported files again (#3646)",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-29T17:59:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d358017bd1c0525053b9af01af23db0755dd732",
          "body": "…643)\n\n* Fixes #3514 Propagate the molecule rename of an expression profile\n\nRenaming an expression profile renamed the molecule in the individual only in\nmemory: RenameMoleculeReferenceInSimulationSubjectCommand never set its\nBuildingBlockId, so the building block was neither flagged as changed nor\n[…]\ne.\nThey did not follow the rename of an expression profile molecule, so the paths no\nlonger resolved and the variability silently disappeared from the distribution\nview and from the population export.",
          "is_bot": false,
          "headline": "Fixes #3639 Rename the molecule in the population parameter paths (#3…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-29T15:29:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "66db646e493f6fa4a360dc488ac234c5ae25aa4f",
          "body": "…3637)\n\n* Fixes #3514 Propagate the molecule rename of an expression profile\n\nRenaming an expression profile renamed the molecule in the individual only in\nmemory: RenameMoleculeReferenceInSimulationSubjectCommand never set its\nBuildingBlockId, so the building block was neither flagged as changed no\n[…]\ntion, so the command can invert\nitself. It is currently only used inside a macro command that is discarded, but\non its own it can now be undone.\n\n* Remove redundant comment in the standalone undo spec",
          "is_bot": false,
          "headline": "Fixes #3514 Propagate the molecule rename of an expression profile (#…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-28T20:11:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0e4a59aefa3f9d2836c03a24afcadc5406614f92",
          "body": "Modules created for a PK-Sim simulation inherited the Core default of\nOverwrite. In v13 Overwrite fully replaces passive transports and\nobservers by name, so combining two PK-Sim modules in MoBi drops the\nmolecule include lists of the first module and simulation creation\nfails. Extend reproduces the effective v12 behavior.",
          "is_bot": false,
          "headline": "Fixes #3635 Default PK-Sim modules to Extend merge behavior (#3636)",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-28T15:30:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3452bf367ec73ac76f267ae2d784c541fad7d64d",
          "body": "… (#3630)\n\n* Fixes #3622 Convert projects to the new oral absorption model for v13\n\nThe new oral absorption / particle dissolution model added parameters and\ncontainers across most building blocks and redefined the lumen parameters.\nProjects saved before v13 are brought in line with it by cloning th\n[…]\nc.com>\n\n* #3622 Drop the inaccurate \"expensive\" note on the compound template\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #3622 Convert projects to the new oral absorption model for v13…",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-07-28T12:42:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7e541fd670f4fc9a0fbe2148d11895e59d132f8c",
          "body": "…(#3626)\n\nThe two projects used by ProcessToProcessBuilderMapperSpecs were re-saved\nas V13 files in 44038308, so XmlSerializationManager ran no converters at\nall and the specs passed vacuously while PK-Sim itself failed to load the\nsame projects.\n\n- Restore Mucosa_MultipleTransportDirections and Muc\n[…]\nconversion does not add the new PBBM lumen segment parameters\n(Volume, Bile Salt concentration, pH, ...) to converted individuals.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #3619 Restore project conversion coverage in integration tests …",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-07-27T15:46:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8d4b36ec7a6b91b4d43a662c7191ddf89549fe0f",
          "body": "The group-by submenu now omits the icon entirely (as PK-Sim's observed-data grouping menu does) instead of passing EmptyIcon, which still rendered a default icon slot. The Species category template drops its explicit icon so both it and Molecule use the single-argument ClassificationTemplate constructor.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Remove icons from building-block group-by menu items",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-24T19:46:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "dfbb17f79077d5e38a23d01490d8633495bd6437",
          "body": "Reuse the OSP Classification mechanism (already used for observed data and simulations) so every building-block type can hold user-created subfolders in the explorer tree.\n\n- Add 8 Classifiable wrappers (Compound, Formulation, Individual, Population, Protocol, Event, ObserverSet, ExpressionProfile) \n[…]\n-by for Individuals (by species) and Expression Profiles (by molecule).\n\nRequires OSPSuite.Core 13.0.138 for the new ClassificationType values.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #1435 Add subfolders for building blocks",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-24T19:46:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5baad64b09007fa2c90ffb2e243ad0ecaa84b42a",
          "body": "The PKSim.UI assembly (Views/WinForms) is not exercised by the test\ninfrastructure. Exclude the whole UI module instead of only its Views source\nfolder, so the coverage percentage reflects testable code.",
          "is_bot": false,
          "headline": "Exclude the UI layer from coverage",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-24T19:37:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b44aec507edc7917f05e3745102b407c98783894",
          "body": "JetBrains dotCover 2026.2 cannot generate a coverage report on .NET 10\n(console runner hangs/crashes - DCVR-13230). The shared coverage action now\nruns dotnet test with the Microsoft Code Coverage collector, which supports\nnet10 and emits cobertura for codecov. Replace dotcover.xml with a\ncoverage.runsettings carrying the module/source exclusions, and drop the\nobsolete xml-configuration input from the coverage workflow.",
          "is_bot": false,
          "headline": "Replace dotcover.xml with coverage.runsettings for dotnet test",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-24T15:51:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d37f1b5014daacaadb2918c4b2858f5f96588edb",
          "body": "… folders (#3628)",
          "is_bot": false,
          "headline": "Fixes #3627 Update dotcover.xml test assembly paths to net10.0 output…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-23T15:13:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0bd4e5a2798dbb72ee2c4674a36bb22dab5891dc",
          "body": "… use square legend marker for infusions (#3629)",
          "is_bot": false,
          "headline": "Fixes #3621 Refresh simple protocol chart on infusion time change and…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-23T14:39:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48a92cd173409c6ed6afa2ff2a137e15f3a7a0cf",
          "body": "…n tests\" (#3625)\n\nThis reverts commit b5085b902216a5b94821a48286aa61f6071dbcf6.",
          "is_bot": false,
          "headline": "Revert \"Fixes #3619 Restore project conversion coverage in integratio…",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-07-23T04:22:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5085b902216a5b94821a48286aa61f6071dbcf6",
          "body": "The two projects used by ProcessToProcessBuilderMapperSpecs were re-saved\nas V13 files in 44038308, so XmlSerializationManager ran no converters at\nall and the specs passed vacuously while PK-Sim itself failed to load the\nsame projects.\n\n- Restore Mucosa_MultipleTransportDirections and MucosaInflux_\n[…]\nconversion does not add the new PBBM lumen segment parameters\n(Volume, Bile Salt concentration, pH, ...) to converted individuals.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #3619 Restore project conversion coverage in integration tests",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-07-23T04:08:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0e714bff1c655f7f2614f41b1056e65ec8ae021e",
          "body": null,
          "is_bot": false,
          "headline": "update core",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-22T16:09:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0466a073c3c62b836680aa84018b3f87741b8ee8",
          "body": "…e-parameter-set-partial-support-for-population-simulation\n\nFixes #3458 Support overwrite parameter sets in population simulations",
          "is_bot": false,
          "headline": "Merge pull request #3613 from Open-Systems-Pharmacology/3458-overwrit…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-21T18:14:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c45df50dc4a72bfa75d712858e11685ea22bbe0",
          "body": "…-compound-implications-for-overwriteparameterset\n\nFixes #3482 Renaming compound implications for OverwriteParameterSet",
          "is_bot": false,
          "headline": "Merge pull request #3612 from Open-Systems-Pharmacology/3482-renaming…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-20T17:31:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f7be16d70421e3ebe42755749a42f5699f6d2f0",
          "body": "Apply a compound's selected overwrite parameter set in population\nsimulations, parallel to individual simulations. Overwritten parameters\nare locked with CanBeVariedInPopulation=false so the population keeps the\nfixed value, and any advanced parameter already defined for such a path\nis removed so per-individual sampling cannot override it at run time.\n\nCommitting simulation parameter values back into a compound overwrite\nparameter set stays limited to individual simulations.",
          "is_bot": false,
          "headline": "Fixes #3458 Support overwrite parameter sets in population simulations",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-20T17:27:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc00012c80c2c39e88b62d9508e3f84e299317db",
          "body": "…hanges\n\nWhen a compound is renamed (explicit rename, import forcing a rename, or\nclone), the compound name embedded in the parameter paths of its\nOverwriteParameterSets is now updated so the paths stay resolvable.\n\n- OverwriteParameterSet.ChangeCompoundName rewrites the compound-name\n  segment in e\n[…]\nockTask.ChangeCompoundNameInOverwriteParameterSets method.\n- OverwriteParameterSetsPresenter now reloads the grid on RenamedEvent so\n  the displayed paths refresh after a rename (including undo/redo).",
          "is_bot": false,
          "headline": "Fixes #3482 Update overwrite parameter paths when the compound name c…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-20T14:57:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "676f04e8afe468418435eaf8e3d4b614fdaa5966",
          "body": "Fix broken link in nightly badge",
          "is_bot": false,
          "headline": "Merge pull request #3611 from Open-Systems-Pharmacology/Yuri05-patch-1",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-17T13:44:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2aea1e19fd745dccd917c953b1696328f8a6fd1",
          "body": null,
          "is_bot": false,
          "headline": "Fix broken link in nightly badge",
          "author_name": "Juri Solodenko",
          "author_login": "Yuri05",
          "committed_at": "2026-07-16T15:00:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df00dcd4b5644e1232a5dfeb82564cde58a0aa41",
          "body": "Merge V13 into develop",
          "is_bot": false,
          "headline": "Merge pull request #3610 from Open-Systems-Pharmacology/V13",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-16T14:41:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3c783554a00db261d753d0595a919848ee532bd",
          "body": "…erge",
          "is_bot": false,
          "headline": "Retarget workflow triggers from V13 to develop for the V13->develop m…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-16T14:28:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "860c3da56c76c125160d0c03c099f70dc775cc9f",
          "body": null,
          "is_bot": false,
          "headline": "Update OSPSuite.Core packages to 13.0.134",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-16T14:24:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74f9890f147ce57118f380a7dc6f06ac95429f1e",
          "body": "…rite_parameter_set\n\nMerge overwrite parameter set feature into V13",
          "is_bot": false,
          "headline": "Merge pull request #3609 from Open-Systems-Pharmacology/feature/overw…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-16T14:22:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f34d997dcd7da26755f0bfa05545cbc723a7cdf",
          "body": "…meter_set",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/V13' into feature/overwrite_para…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-16T14:08:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef675d3f86d96d457db379db8ce4c521fb182589",
          "body": "… building block on MoBi export (#3605)\n\n* Fixes #3437 Merge overwrite parameter set values into ParameterValues building block on MoBi export\n\nOverwrite parameter sets are applied to the constructed model as Compound-type\nparameters, so PKSimParameterValuesCreator (which only captures changed\nSimul\n[…]\neter sets are applied to the parameter values on MoBi export\n\nAddresses PR review feedback: guard against regressions by verifying the export\npath invokes the overwrite parameter set application task.",
          "is_bot": false,
          "headline": "Fixes #3437 Merge overwrite parameter set values into ParameterValues…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-16T14:01:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e3c65e2d50f3e27104a012ede258982d95c427ae",
          "body": "…#3608)\n\n* Fixes #3607 Register CorePKSimXmlSerializerRepository in CLIApplicationStartup\n\n3e6d0a9 (#3537) moved IPKSimXmlSerializerRepository registration from\nInfrastructureRegister to the individual bootstraps but missed\nPKSim.Starter.CLIApplicationStartup, so every SnapshotExchange entry\npoint f\n[…]\ner\ndoes not cover MinimalImplementations — PKSim.CLI and PKSim.R register\nall of these explicitly. Mirror the same three registrations in the\nStarter so LazyLoadTask and observed-data mapping resolve.",
          "is_bot": false,
          "headline": "Fixes #3607 Register missing headless services for SnapshotExchange (…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-16T14:01:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b2234369a2d7577c6eba83aee4e84782c01dcfb7",
          "body": "# Conflicts:\n#\t.github/workflows/build-nightly_12.3.yml",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/develop' into V13",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-15T18:05:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bc469a6d695fc9d4836efcdc67921ff0f45d102",
          "body": "…604)",
          "is_bot": false,
          "headline": "Allow re-use of an administration protocol for multiple compounds (#3…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-15T12:20:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37cd437067f1947ab410010e3f37c5327dcebc3d",
          "body": "…10.0-windows in rakefile.rb (#3601)\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix build-nightly: update target framework from net8.0-windows to net…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-07-14T10:17:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "137e07e60f05554c2229a72c21dfd234e6d423ca",
          "body": "* Guard ValueOriginRepository.Start to stop re-mapping value origins on every lookup\n\nValueOriginRepository was hand-rolled without the already-started guard that the\nother StartableRepository implementations have, so every FindBy/ValueOriginFor call\nre-mapped all value origins from scratch. During \n[…]\nlueOrigin> base (like the other ORM repositories)\nfor the run-once guard instead of the hand-rolled Start()/_started, so the\none-time value-origin mapping comes from the framework. Behavior unchanged.",
          "is_bot": false,
          "headline": "Reduce PK-Sim startup time (#3596)",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-13T14:36:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "34e1ee1cfdf60706c55d193d447acfaebabb0bab",
          "body": "…); bump OSPSuite.* to 13.0.131 (#3595)",
          "is_bot": false,
          "headline": "Return population simulations from LoadSimulationsFromSnapshot (#3592…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-04T16:34:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7617934a187ed8d58e4e6ca0a7dac1cc40b59296",
          "body": "Co-authored-by: Yuri05 <Yuri05@github.com>",
          "is_bot": false,
          "headline": "Fix testlog location (#3593)",
          "author_name": "Juri Solodenko",
          "author_login": "Yuri05",
          "committed_at": "2026-07-03T11:35:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d086f855c917f028ebcabbe1d243096c6d7cb17",
          "body": "…#3587)\n\nApply each compound's selected OverwriteParameterSet to the matching\nsimulation parameters after model construction (post keyword replacement).\nApplied parameters become BuildingBlockType=Compound and point at the\ncompound building block so subsequent edits follow normal compound logic.\nUnresolved paths abort simulation creation with a clear error listing them.",
          "is_bot": false,
          "headline": "Fixes #3434 Apply overwrite parameter set during model construction (…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-07-03T11:34:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d25e5ddaef8515bee78902529a011c308926c919",
          "body": "…sh-progress\n\nFixes #3584 Route startup splash progress through a splash-thread EventPublisher",
          "is_bot": false,
          "headline": "Merge pull request #3588 from Open-Systems-Pharmacology/3584-fix-spla…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-30T15:45:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f786e1ade70ad177cd5682f80a187383fd3918f",
          "body": "…tepclraw-vulnerability\n\nFixes #3585 Override SQLitePCLRaw.bundle_e_sqlite3 to 3.0.3 to clear CVE-2025-6965",
          "is_bot": false,
          "headline": "Merge pull request #3586 from Open-Systems-Pharmacology/3585-fix-sqli…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-30T12:42:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "448176cee36ef5339da8e756b81e3ea4e48e3d60",
          "body": "…ntPublisher\n\nOSPSuite.Utility 5.0.0.9+ dispatches EventPublisher events via Post (async) instead\nof Send when SynchronizationContext.Current != the captured context. During the\npre-message-loop startup window that made splash progress queue on the busy main\nthread (bar jumps to 100%) and set splash\n[…]\nEventPublisher bound to the splash\nthread's own SynchronizationContext, make the splash view/presenter singletons, and\nregister the UI thread so the shared EventPublisher singleton uses its Send path.",
          "is_bot": false,
          "headline": "Fixes #3584 Route startup splash progress through a splash-thread Eve…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-26T19:09:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba0be07a99d04b85f45211c3e280fc9136bdc9c6",
          "body": "…uite.Utility to 5.0.0.10",
          "is_bot": false,
          "headline": "Update OSPSuite.* to 13.0.130 (includes the Core SQLite fix) and OSPS…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-26T16:22:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fef695a9a1aa85ed83745423c03fafe6a251a7ff",
          "body": "… (DQS) compatibility\n\nSQLite 3.50 (shipped via SQLitePCLRaw/SourceGear.sqlite3) disables double-quoted\nstring literals (DQS) by default, so the value comparison building_block_type =\n\"INDIVIDUAL\" in two views was parsed as an identifier and failed at runtime.\nSwitch to the standard single-quoted string literal.",
          "is_bot": false,
          "headline": "Fix double-quoted string literals in PKSimDB views for SQLite >= 3.50…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-26T16:01:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5262f1ccf98a75259859c881c1ffd8573c529c66",
          "body": "…CVE-2025-6965 (NU1903)",
          "is_bot": false,
          "headline": "Fixes #3585 Override SQLitePCLRaw.bundle_e_sqlite3 to 3.0.3 to clear …",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-26T15:34:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2df9918801f9e036f92deb920ef4c5a5d807cf2e",
          "body": "…ctive-mol-weight-validation-rounding\n\nFixes #3580 Effective molecular weight validation no longer depends on display-unit round-trip",
          "is_bot": false,
          "headline": "Merge pull request #3581 from Open-Systems-Pharmacology/fix-3580-effe…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-23T16:27:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "378ab8ea88fdc0cf9da0e2aea385a591de8b43c8",
          "body": "…n display-unit round-trip\n\nThe rule converted the candidate value display->base and compared it to the\nparameter's formula value. That base<->g/mol conversion round-trip is bit-exact\nfor most values but off by ~1 ULP for a sparse subset, so for certain mol\nweight/halogen combinations the equality g\n[…]\nweight is a formula-only calculation (derived from molecular\nweight and halogen count) and is never edited directly, so the rule now simply\nvalidates the parameter's current value against its minimum.",
          "is_bot": false,
          "headline": "Fixes #3580 Effective molecular weight validation no longer depends o…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-18T18:14:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "de10511411396805fa72348d6c2a2c2252df904f",
          "body": "…-simulations-null-configuration\n\nFixes #3574 SnapshotTask returns simulations with a null SimulationConfiguration",
          "is_bot": false,
          "headline": "Merge pull request #3575 from Open-Systems-Pharmacology/3574-snapshot…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-16T15:30:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d1116d7410b4a1f7b14bba638ed08b216cdbf04",
          "body": "…uration\n\nA PK-Sim domain Simulation does not carry a SimulationConfiguration, so\nwrapping it directly into an R Simulation threw a NullReferenceException when\nbuilding the simulation builder. Map each loaded simulation to a\nModelCoreSimulation via ISimulationConfigurationTask.CreateFor and\nISimulationToModelCoreSimulationMapper.MapFrom so it behaves like a\npkml-loaded simulation.\n\nFixes #3574",
          "is_bot": false,
          "headline": "Wrap snapshot-loaded simulations as ModelCoreSimulation with a config…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-16T14:58:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6939a19fd68dd887f2f31d847d5c5c3d65c29784",
          "body": null,
          "is_bot": false,
          "headline": "update core",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-15T19:20:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c7096f59ab4e456888e14e8bc382068cabaf7cc",
          "body": "…-visualization\n\nInfusion visualization #3273",
          "is_bot": false,
          "headline": "Merge pull request #3572 from Open-Systems-Pharmacology/3273-infusion…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-15T16:56:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6cca05d124c54868a6ffa8eecfedc5a178ed2656",
          "body": "…ate commit (#3555)\n\n* Fixes #3554 Preserve untouched entries on overwrite parameter set update commit\n\nThe update path in CommitSimulationParametersTask removed every existing\nentry whose path was not currently in the change tracker, but parameters\ncommitted in a previous round are also untracked, \n[…]\nes the stored set value (and is not tracked\nor being recommitted). Untouched entries pass the value comparison and\nremain in the set.\n\n* Restore param tags on updateExistingSetsCommand\n\n* add comments",
          "is_bot": false,
          "headline": "Fixes #3554 Preserve untouched entries on overwrite parameter set upd…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-11T13:58:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0fbcb9bfd8165053dab782c5977b490c5da0c598",
          "body": null,
          "is_bot": false,
          "headline": "pr feedback",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-11T13:56:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b81ae80c9f3d7e6e101b63206fac314c88f4241",
          "body": "Infusion administrations were drawn as fixed-width bars centered on their start time instead of spanning the infusion duration. The protocol chart now renders each infusion as an area rectangle covering [start, start + infusion time] (height = dose) - one series per infusion so overlapping infusions stay readable - and extends the x-axis to cover infusions that end after the protocol end time. Bolus/oral administrations are unchanged.",
          "is_bot": false,
          "headline": "Show infusion duration in the protocol administration chart",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-11T13:19:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e21a2ac710257ad797ae7c182bba91728eade8b8",
          "body": "…meter_set",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/V13' into feature/overwrite_para…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-09T15:37:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca3540797b892e657aaaca81ae62fb205d8a6481",
          "body": "Remove redundant usings and sort imports",
          "is_bot": false,
          "headline": "Merge pull request #3571 from Open-Systems-Pharmacology/cleanup_usings",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-09T14:06:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dcd6da782c8cd57fb074df5d023393bfdb1cb4da",
          "body": "Optimize using directives across the files flagged by a ReSharper\ninspection: drop redundant usings and sort the remainder (System-first,\nmatching the prevailing convention). Also folds in minor formatting\ntidy-ups already in progress for FlatContainerRepository,\nParameterSetUpdater, and ParameterDistributionRepositorySpecs.",
          "is_bot": false,
          "headline": "Remove redundant usings and sort imports",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-09T13:52:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a96817e9037d6394a79db9289a304dfdea1012b2",
          "body": "Remove dead code in PKSim",
          "is_bot": false,
          "headline": "Merge pull request #3569 from Open-Systems-Pharmacology/remove-dead-code",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-03T19:29:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98771f85bcb833a818b6f0ea09598a48cbb44d92",
          "body": null,
          "is_bot": false,
          "headline": "update core",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-03T19:13:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8623a419ecc0c058b0e5b9702cbb10ed1b7b6b27",
          "body": "Re-checked the R-reachable PKSim.Core/.Infrastructure/.Assets surface against the OSPSuite-R reflection manifest (which names only PKSim.Core.Snapshots.ParameterRange). After the DI / group-resolution rescue (report and markdown builders, NHibernate ORM mappings, project converters, and spec factori\n[…]\neptions, 3 events, 5 extension classes, DataNamingService, and 5 dead constant groups (PageTransfer, Reporting, Comparison, Distribution, SimulationResults). Build + PKSim.Tests + PKSim.R.Tests green.",
          "is_bot": false,
          "headline": "Remove dead code in R-reachable PKSim assemblies (R-manifest-cleared)",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-03T17:40:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f14d9e90381c1c4e83afd21c493fb8680bd3d4bb",
          "body": "…_into_V13\n\nMerge develop into V13",
          "is_bot": false,
          "headline": "Merge pull request #3570 from Open-Systems-Pharmacology/merge_develop…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-03T16:31:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "720462b1392621b1dea832505700bedc69d0ea81",
          "body": "Brings develop's recent fixes into V13:\n- #3511 Distributed parameter overwrite loses distribution\n- #3530 Modified distributed parameters not exported to snapshot\n- #3534 Do not export ontogeny factor parameters in Individual snapshot\n- #3548 Update dimensions\n- #3562 Reset of distributed individua\n[…]\nt.Data.Sqlite stack).\nV13's project-structure changes preserved: removed PKSim.Assets.Images,\nPKSimRDependencyResolution, and build-nightly_12.3.yml; kept the\nPKSim.UI.Starter -> PKSim.Starter rename.",
          "is_bot": false,
          "headline": "Merge branch 'develop' into V13",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-03T15:09:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a9c4b67ba0cf01d5571c79b49d4080a51ac68da9",
          "body": "EntityRules and EmptyRepresentationInfo (PKSim.Core) had no production references, only a serializer-coverage skip-list entry each, and were verified unreachable from R (rSharp/OSPSuite-R).",
          "is_bot": false,
          "headline": "Remove dead code referenced only by tests",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-03T14:39:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "095d76a15fe01c130a0d4f470196f1423dc1ce86",
          "body": "Removes unused types, interface methods (declaration + all implementors),\nand unreferenced methods in the non-R-reachable assemblies. Candidates were\nflagged by ReSharper inspectcode and confirmed unused via Roslyn\nFindReferencesAsync. DI-registered, group-resolved (context menus,\nserializers), refl\n[…]\n icon-registry members\nwere excluded; the R-reachable surface is deferred for a separate R-verified pass.\n\nBuild and unit suites (PKSim.Tests, PKSim.UI.Tests) remain green and\nunchanged from baseline.",
          "is_bot": false,
          "headline": "Remove dead code in PKSim.Presentation and PKSim.UI",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-06-02T20:27:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e0b1abc494d00d585254c3e511ff39ba59ea821f",
          "body": "…3.0.118\n\nupdate_core_13.0.118",
          "is_bot": false,
          "headline": "Merge pull request #3567 from Open-Systems-Pharmacology/update_core_1…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-29T21:32:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c275821bfe09f59f2cdebbbde58a7bc989aa446d",
          "body": null,
          "is_bot": false,
          "headline": "update_core_13.0.118",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-29T20:35:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7c9338852fa02e79d5c6257dc66e1f628b179f9",
          "body": "Update building block templates",
          "is_bot": false,
          "headline": "Merge pull request #3566 from Yuri05/update_BB_Templates_12.3",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-29T16:03:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14963b221a31aa5e79ddc6c8c2b86086bb8379b0",
          "body": null,
          "is_bot": false,
          "headline": "Update building block templates",
          "author_name": "Yuri05",
          "author_login": null,
          "committed_at": "2026-05-29T15:20:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1974daad1e8359ec13bb15b3596c773254f18a1",
          "body": "…n does not work (#3564)\n\nDistributed parameters in the simulation model (Model.Root) are built with DefaultValue=null. A distributed organ volume's DefaultValue is computed per-individual by CreateIndividualAlgorithm and lives only on the individual instance, so the model build (working from static\n[…]\nalue onto the matching distributed model parameter after model creation, mirroring how molecule parameters are already reconciled.\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #3562 Reset of distributed individual parameters in a simulatio…",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-05-28T07:35:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "79d2ebb2c2d543defe73b3eac645efab0c4674a3",
          "body": "…-snapshot-exchange\n\nFixes #3560 Add headless snapshot exchange to PKSim.R.Exchange",
          "is_bot": false,
          "headline": "Merge pull request #3563 from Open-Systems-Pharmacology/3560-headless…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-27T20:33:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8634ec34273512d866da277b6663079138977e09",
          "body": "PKSim.R.Exchange.SnapshotExchange (CreateModule, CreateIndividualBuildingBlock,\nCreateExpressionProfileBuildingBlock) is a headless counterpart to\nPKSim.Starter.SnapshotExchange, resolving services from the R Api container so MoBi\ncan convert PK-Sim modules from a snapshot without the UI/Presentation-laden\nPKSim.Starter.dll.\n\nLoadSimulationsFromSnapshot now passes runSimulations: false so it only loads the\nsimulations; running them is left to the caller.",
          "is_bot": false,
          "headline": "Fixes #3560 Add headless snapshot exchange to PKSim.R.Exchange",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-27T15:38:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81ac72d699eb977df1c9f8321a754364c762ee03",
          "body": "…(#3561)\n\n* Add new regression test for #3530\n\n* Fixes #3530 Modified distributed parameters not exported to snapshot\n\nWhen a distributed parameter (e.g. an organ volume) is modified in a\nsimulation and committed back to its template building block, the\nparent IDistributedParameter must end up with \n[…]\notect the branch if the order is\never rearranged.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #3530 Modified distributed parameters not exported to snapshot …",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-05-27T12:00:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e080ce9abc0a5f87e3ec1d9a44d9b897fa536315",
          "body": "…cally-add-observed-data-for-comparisons\n\nFixes #3096 Automatically add observed data to simulation comparisons",
          "is_bot": false,
          "headline": "Merge pull request #3553 from Open-Systems-Pharmacology/3096-automati…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-26T13:11:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed2768df46f98c9d2b2c3bcf8a595cc2bc547b07",
          "body": "…ulations-from-snapshot\n\nFixes #3556 Load simulations from a PK-Sim snapshot",
          "is_bot": false,
          "headline": "Merge pull request #3558 from Open-Systems-Pharmacology/3556-load-sim…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-26T12:32:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae8a0deb3b5501f166e0e902d604a158ccb53d9e",
          "body": null,
          "is_bot": false,
          "headline": "Document case-sensitive name matching in LoadSimulationsFromSnapshot",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-25T18:03:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b778e29a17a873f7f841dbede5f6cdca074f44c3",
          "body": null,
          "is_bot": false,
          "headline": "Unwrap async exceptions with GetAwaiter().GetResult()",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-25T18:02:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e67937410380067558129b76117a2cf675e9363b",
          "body": null,
          "is_bot": false,
          "headline": "Return empty array when snapshot load yields no project",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-25T17:04:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5012e38468d4aef08719f18859b33a9eee37d1b5",
          "body": "…sk specs",
          "is_bot": false,
          "headline": "Use unique temp folders instead of hard-coded C:\\ paths in SnapshotTa…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-25T17:02:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adaceaada5d803f9d6dbe49ab8dd2045938851b8",
          "body": null,
          "is_bot": false,
          "headline": "Return OSPSuite.R.Domain.Simulation[] from LoadSimulationsFromSnapshot",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-25T16:57:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0daa15d071d6c55ca05eb512318f336293e97407",
          "body": null,
          "is_bot": false,
          "headline": "Fixes #3556 Load simulations from a PK-Sim snapshot",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-25T16:52:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b5952d5ac0926a988c444970f57cfed08d99a2e",
          "body": "…meter_set",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/V13' into feature/overwrite_para…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-25T12:45:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8e4613738d6905ae2c2c3d3c3cf52b3238262fd",
          "body": null,
          "is_bot": false,
          "headline": "Drop explanatory comment on time-profile filter",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-22T18:15:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8adc7abd5e26b3419257429cd8bff2bafe04c766",
          "body": "…arts\n\nOther simulation chart types (PredictedVsObserved, ResidualsVsTime, etc.)\ncould otherwise win the FirstOrDefault match and propagate unintended\nstyling to the comparison.\n\nAddresses review comment on #3553.",
          "is_bot": false,
          "headline": "Restrict individual comparison source-curve lookup to time profile ch…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-22T18:14:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b7bf89ed399fa78504375caf582746084f4c253",
          "body": "Drag/drop or task-created comparisons now also display the observed\ndata referenced by the included simulations, with curve styling copied\nfrom each simulation's own time-profile charts.\n\nCentralizes the observed-data-from-simulations logic in a new\nObservedDataInComparisonTask used by SimulationCom\n[…]\nulationComparisonPresenter,\nso every entry point (initial creation, configure dialog, drag/drop of\na simulation, creating a new time-profile analysis on an existing\ncomparison) gets the same behavior.",
          "is_bot": false,
          "headline": "Fixes #3096 Automatically add observed data to simulation comparisons",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-22T17:42:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "079bb9b867328ddf9a33bf4cd329d9b69cadcc38",
          "body": null,
          "is_bot": false,
          "headline": "update core",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-21T21:40:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "765911705c5f7552cd495933769c14069d259fe3",
          "body": "…nal-age-unit-display\n\nFixes #3549 IndividualBuildingBlock displays gestational age with wrong unit conversion",
          "is_bot": false,
          "headline": "Merge pull request #3552 from Open-Systems-Pharmacology/3549-gestatio…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-20T19:08:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69ccbcc39f87afedb99cd7b797774bf4022017cd",
          "body": "Co-authored-by: Yuri05 <Yuri05@github.com>",
          "is_bot": false,
          "headline": "Fixes #3548 Update dimensions (#3550)",
          "author_name": "Juri Solodenko",
          "author_login": "Yuri05",
          "committed_at": "2026-05-20T16:33:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cacb955b3088a7a533dcd954e720e2594a7ec11",
          "body": "…ng unit conversion",
          "is_bot": false,
          "headline": "Fixes #3549 IndividualBuildingBlock displays gestational age with wro…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-20T13:59:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6b299d62b355a8d54555ed72be4a405a1f55f5d",
          "body": "…cross-platform\n\nFixes #3537 Make PKSim.R honestly net10.0 cross-platform",
          "is_bot": false,
          "headline": "Merge pull request #3547 from Open-Systems-Pharmacology/3537-pksim-r-…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-20T11:44:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ba73e1d38cd3cd0849a2684b5b4a03331a1d951",
          "body": null,
          "is_bot": false,
          "headline": "update core",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-19T17:34:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7847fa8213fa41547d30498478d42a1d229347e3",
          "body": null,
          "is_bot": false,
          "headline": "Document CLISimulationChartsLoader.LoadChartsFor no-op intent",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-19T14:24:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e6d0a984cf8564a50895d51e5c1e3af01d4c6e4",
          "body": "Restore src/PKSim.R/PKSim.R.csproj (and PKSim.R.Tests.csproj) from the\ntemporary net10.0-windows landed in #3533 back to honest cross-platform\nnet10.0 by removing OSPSuite.Presentation and PKSim.Presentation from\nPKSim.Infrastructure's transitive closure.\n\n- src/PKSim.R/PKSim.R.csproj               \n[…]\nProjectRef)\n\nVerification:\n- dotnet nuget why src/PKSim.R/PKSim.R.csproj OSPSuite.Presentation\n  reports no path.\n- PKSim.R.Tests: 31/31 pass.\n- PKSim.Tests:   5092/5098 pass (6 pre-existing skipped).",
          "is_bot": false,
          "headline": "Fixes #3537 Make PKSim.R honestly net10.0 cross-platform",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-19T14:01:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "55bfc85ae93ebc850033cf1b67c43c0b5da66f11",
          "body": "…3.0.111\n\nupdate core",
          "is_bot": false,
          "headline": "Merge pull request #3540 from Open-Systems-Pharmacology/update_core_1…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-14T13:19:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11d57843c06dbe9678429355611a841b883c3fb1",
          "body": null,
          "is_bot": false,
          "headline": "update core",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-14T13:06:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8c3452dce8bf1d3eb70a4981d588e4265a4661c",
          "body": "…application-icon-refactor\n\nFixes #3533 Consume OSPSuite.Core ApplicationIcon refactor (13.0.110)",
          "is_bot": false,
          "headline": "Merge pull request #3539 from Open-Systems-Pharmacology/3533-consume-…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-13T14:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3663413a3b17af1ab6e5193ed75d2c62bf630cf",
          "body": "Bumps OSPSuite.* references to 13.0.110, which ships both #2858\n(ApplicationIcon is a pure cross-platform resource library, Windows rendering\nrelocated) and #2864 (ApplicationIconExtensions moved from OSPSuite.UI to\nOSPSuite.Presentation).\n\nMechanical call-site updates for the removed implicit Appli\n[…]\npdated to match;\nAbout.bmp deleted as dead. The deleted ApplicationImage wrapper class from\nOSPSuite.Assets is replaced by direct use of System.Drawing.Image inside the\nrelocated ApplicationImages.cs.",
          "is_bot": false,
          "headline": "Fixes #3533 Consume OSPSuite.Core ApplicationIcon refactor",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-13T13:11:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "11077b16434fa559bc064dbf626519935e33b0bb",
          "body": "…apshot (#3538)\n\nOntogeny factor and ontogeny factor table parameters are owned by the\nexpression profile building block. Including them in the Individual\nsnapshot caused \"Snapshot parameter ... was not found\" warnings on\nreload, since they only exist after the expression profile is added.",
          "is_bot": false,
          "headline": "Fixes #3534 Do not export ontogeny factor parameters in Individual sn…",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-05-10T18:51:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "689f5d561dd25a26862338a4aab75c1854876c25",
          "body": "* Fixes #3511 Distributed parameter overwrite loses distribution\n\nAdd integration tests covering the issue: when a distributed parameter\nis overwritten in the individual (e.g. Liver Volume) and a simulation\nis built from that individual, the resulting simulation parameter must\nremain distributed (Di\n[…]\nh\nthe overwritten value), not collapse to a plain constant parameter.\n\nThe actual fix lives in OSPSuite.Core (Open-Systems-Pharmacology/OSPSuite.Core#2838).\n\n* Update OSPSuite.Core packages to 12.3.32",
          "is_bot": false,
          "headline": "Fixes #3511 Distributed parameter overwrite loses distribution (#3532)",
          "author_name": "Michael Sevestre",
          "author_login": "msevestre",
          "committed_at": "2026-05-09T16:10:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "63cad1d6bb4c718aa2571a54abb14f10c0f0cfae",
          "body": "…to-net10",
          "is_bot": false,
          "headline": "Merge pull request #3536 from Open-Systems-Pharmacology/3535-upgrade-…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-08T20:31:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0c649c4eeb4bd6d4de88fc8d17a923bfd98b06a",
          "body": "Workflow-level env exposed the secret to every job in the workflow,\nincluding unrelated ones like get-latest-commit-timespan and the\ncleanup-job. Move it onto the dotnet build step that produces signed/\npublished outputs so the secret is only injected where it's actually\nneeded.",
          "is_bot": false,
          "headline": "Scope DevExpress_License to the Build step that ships artifacts",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-08T19:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d94e4775942d11c8190b5e197491a7258ecd593",
          "body": null,
          "is_bot": false,
          "headline": "Fall back to windows-latest when GHA_DEFAULT_RUNNER_WINDOWS is unset",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-08T19:51:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b32477dfd5fe306c3afc931f024c7ea653788575",
          "body": "… to 10.0.1",
          "is_bot": false,
          "headline": "Bump Microsoft.Data.Sqlite to 10.0.7 and NHibernate.Extensions.Sqlite…",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-08T18:19:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "317a4f17d4a8625470bc56f87f550b5efc2128a2",
          "body": null,
          "is_bot": false,
          "headline": "Always upload test log artifact even on test failure",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-08T18:01:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c082e883053b9a83f8c276a620ec9e58ff06665d",
          "body": null,
          "is_bot": false,
          "headline": "Fixes #3535 Upgrade to .NET 10",
          "author_name": "Robert McIntosh",
          "author_login": "rwmcintosh",
          "committed_at": "2026-05-08T18:00:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 19,
      "commits_last_year": 525,
      "latest_release_at": "2026-07-07T09:31:45Z",
      "latest_release_tag": "v12.3.173",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 50,
      "days_since_latest_release": 23,
      "mean_days_between_releases": 188.9
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 66,
      "stars": 169,
      "watchers": 6,
      "fork_history": {
        "days": [
          {
            "date": "2017-03-28",
            "count": 1
          },
          {
            "date": "2017-12-09",
            "count": 1
          },
          {
            "date": "2018-01-12",
            "count": 1
          },
          {
            "date": "2018-05-22",
            "count": 1
          },
          {
            "date": "2018-06-01",
            "count": 1
          },
          {
            "date": "2018-07-25",
            "count": 1
          },
          {
            "date": "2018-08-16",
            "count": 1
          },
          {
            "date": "2018-09-13",
            "count": 1
          },
          {
            "date": "2018-09-18",
            "count": 1
          },
          {
            "date": "2018-11-04",
            "count": 1
          },
          {
            "date": "2019-03-13",
            "count": 1
          },
          {
            "date": "2019-04-08",
            "count": 1
          },
          {
            "date": "2019-06-07",
            "count": 1
          },
          {
            "date": "2019-06-19",
            "count": 1
          },
          {
            "date": "2019-06-27",
            "count": 1
          },
          {
            "date": "2019-08-05",
            "count": 1
          },
          {
            "date": "2019-08-14",
            "count": 1
          },
          {
            "date": "2019-11-08",
            "count": 1
          },
          {
            "date": "2019-11-28",
            "count": 1
          },
          {
            "date": "2020-01-02",
            "count": 1
          },
          {
            "date": "2020-01-16",
            "count": 1
          },
          {
            "date": "2020-02-06",
            "count": 1
          },
          {
            "date": "2020-03-26",
            "count": 1
          },
          {
            "date": "2020-06-10",
            "count": 1
          },
          {
            "date": "2020-06-12",
            "count": 1
          },
          {
            "date": "2020-06-14",
            "count": 1
          },
          {
            "date": "2020-07-02",
            "count": 1
          },
          {
            "date": "2021-07-16",
            "count": 1
          },
          {
            "date": "2021-08-23",
            "count": 1
          },
          {
            "date": "2021-10-23",
            "count": 1
          },
          {
            "date": "2021-10-24",
            "count": 1
          },
          {
            "date": "2021-12-15",
            "count": 1
          },
          {
            "date": "2022-02-07",
            "count": 1
          },
          {
            "date": "2022-03-08",
            "count": 1
          },
          {
            "date": "2022-03-14",
            "count": 1
          },
          {
            "date": "2022-03-24",
            "count": 1
          },
          {
            "date": "2023-01-19",
            "count": 1
          },
          {
            "date": "2023-06-06",
            "count": 1
          },
          {
            "date": "2023-07-14",
            "count": 1
          },
          {
            "date": "2023-07-21",
            "count": 1
          },
          {
            "date": "2023-08-10",
            "count": 1
          },
          {
            "date": "2023-10-16",
            "count": 1
          },
          {
            "date": "2023-12-16",
            "count": 1
          },
          {
            "date": "2024-04-25",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 1
          },
          {
            "date": "2024-11-24",
            "count": 1
          },
          {
            "date": "2025-02-18",
            "count": 1
          },
          {
            "date": "2025-02-24",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-04-16",
            "count": 1
          },
          {
            "date": "2025-06-12",
            "count": 1
          },
          {
            "date": "2025-07-07",
            "count": 1
          },
          {
            "date": "2025-07-17",
            "count": 1
          },
          {
            "date": "2025-07-29",
            "count": 1
          },
          {
            "date": "2025-10-23",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 1
          },
          {
            "date": "2025-11-20",
            "count": 1
          },
          {
            "date": "2025-12-19",
            "count": 1
          },
          {
            "date": "2026-02-05",
            "count": 1
          },
          {
            "date": "2026-03-01",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 2
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-07-23",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 66,
        "total_forks": 66
      },
      "star_history": null,
      "open_issues_and_prs": 461
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "src/PKSim.Assets/PKSim.Assets.csproj",
        "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
        "src/PKSim.CLI.Core/PKSim.CLI.Core.csproj",
        "src/PKSim.CLI/PKSim.CLI.csproj",
        "src/PKSim.Core/PKSim.Core.csproj",
        "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
        "src/PKSim.Presentation/PKSim.Presentation.csproj",
        "src/PKSim.R/PKSim.R.csproj",
        "src/PKSim.Starter/PKSim.Starter.csproj",
        "src/PKSim.UI/PKSim.UI.csproj",
        "src/PKSim/PKSim.csproj",
        "tests/PKSim.R.Tests/PKSim.R.Tests.csproj",
        "tests/PKSim.Tests/PKSim.Tests.csproj",
        "tests/PKSim.UI.Tests/PKSim.UI.Tests.csproj"
      ],
      "largest_source_bytes": 180785,
      "source_files_sampled": 3708,
      "oversized_source_files": 3,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "Newtonsoft.Json",
            "direct": true,
            "version": "11.0.2",
            "severity": "high",
            "ecosystem": "nuget",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-5crp-9r3c-p9vr"
            ],
            "fixed_version": "13.0.1",
            "advisory_count": 1,
            "oldest_advisory_days": 1499
          },
          {
            "name": "SharpZipLib",
            "direct": false,
            "version": "0.86.0",
            "severity": "high",
            "ecosystem": "nuget",
            "cvss_score": 7.3,
            "advisory_ids": [
              "GHSA-cqj4-m2pc-v9m5",
              "GHSA-m22m-h4rf-pwq3"
            ],
            "fixed_version": "1.3.3",
            "advisory_count": 2,
            "oldest_advisory_days": 1640
          },
          {
            "name": "NHibernate",
            "direct": false,
            "version": "4.1.1.4000",
            "severity": "moderate",
            "ecosystem": "nuget",
            "cvss_score": 5.9,
            "advisory_ids": [
              "GHSA-fg4q-ccq8-3r5q"
            ],
            "fixed_version": "5.5.2",
            "advisory_count": 1,
            "oldest_advisory_days": 752
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 2,
          "moderate": 1
        },
        "advisory_count": 4,
        "affected_count": 3,
        "assessed_count": 90,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 1
      },
      "ecosystems": [],
      "dependencies": [
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.Assets/PKSim.Assets.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Assets.Images",
          "manifest": "src/PKSim.Assets/PKSim.Assets.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.Assets/PKSim.Assets.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "DevExpress.Win.Design",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "25.2.7"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.FuncParser",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.3"
        },
        {
          "name": "OSPSuite.SimModel",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.80"
        },
        {
          "name": "OSPSuite.SimModelSolver_CVODES",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.53"
        },
        {
          "name": "Microsoft.Data.Sqlite",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "SQLitePCLRaw.bundle_e_sqlite3",
          "manifest": "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.3"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.CLI.Core/PKSim.CLI.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Utility",
          "manifest": "src/PKSim.CLI.Core/PKSim.CLI.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.11"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.CLI.Core/PKSim.CLI.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.CLI.Core",
          "manifest": "src/PKSim.CLI.Core/PKSim.CLI.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "CommandLineParser",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "2.9.1"
        },
        {
          "name": "Microsoft.Extensions.Logging.Console",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "9.0.2"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Presentation",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Utility",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.11"
        },
        {
          "name": "OSPSuite.FuncParser",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.3"
        },
        {
          "name": "OSPSuite.SimModel",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.80"
        },
        {
          "name": "OSPSuite.SimModelSolver_CVODES",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.53"
        },
        {
          "name": "Microsoft.Data.Sqlite",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "SQLitePCLRaw.bundle_e_sqlite3",
          "manifest": "src/PKSim.CLI/PKSim.CLI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.3"
        },
        {
          "name": "Newtonsoft.Json",
          "manifest": "src/PKSim.Core/PKSim.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.3"
        },
        {
          "name": "OSPSuite.Utility",
          "manifest": "src/PKSim.Core/PKSim.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.11"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.Core/PKSim.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.Core/PKSim.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Assets.Images",
          "manifest": "src/PKSim.Core/PKSim.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Infrastructure.Import",
          "manifest": "src/PKSim.Core/PKSim.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "System.ComponentModel.Annotations",
          "manifest": "src/PKSim.Core/PKSim.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0"
        },
        {
          "name": "FluentNHibernate",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.4.0"
        },
        {
          "name": "LumenWorksCsvReader",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "4.0.0"
        },
        {
          "name": "MarkdownLog.NS20",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "0.10.1"
        },
        {
          "name": "Microsoft.Extensions.Logging",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "9.0.2"
        },
        {
          "name": "Microsoft.Extensions.Logging.Abstractions",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "9.0.2"
        },
        {
          "name": "Newtonsoft.Json.Schema",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "4.0.1"
        },
        {
          "name": "Newtonsoft.Json",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.3"
        },
        {
          "name": "NHibernate.Extensions.Sqlite",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.1"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Infrastructure",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Infrastructure.Castle",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Infrastructure.Export",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Infrastructure.Import",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Infrastructure.Serialization",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Utility",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.11"
        },
        {
          "name": "Microsoft.Data.Sqlite",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "SQLitePCLRaw.bundle_e_sqlite3",
          "manifest": "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.3"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.Presentation/PKSim.Presentation.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.TeXReporting",
          "manifest": "src/PKSim.Presentation/PKSim.Presentation.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.1.3"
        },
        {
          "name": "OSPSuite.Utility",
          "manifest": "src/PKSim.Presentation/PKSim.Presentation.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.11"
        },
        {
          "name": "OSPSuite.Presentation",
          "manifest": "src/PKSim.Presentation/PKSim.Presentation.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Presentation.Serialization",
          "manifest": "src/PKSim.Presentation/PKSim.Presentation.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.Presentation/PKSim.Presentation.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.R",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Utility",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.11"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.FuncParser",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.3"
        },
        {
          "name": "OSPSuite.SimModel",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.80"
        },
        {
          "name": "OSPSuite.SimModelSolver_CVODES",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.53"
        },
        {
          "name": "Microsoft.Data.Sqlite",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "SQLitePCLRaw.bundle_e_sqlite3",
          "manifest": "src/PKSim.R/PKSim.R.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.3"
        },
        {
          "name": "OSPSuite.Presentation",
          "manifest": "src/PKSim.Starter/PKSim.Starter.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.UI",
          "manifest": "src/PKSim.Starter/PKSim.Starter.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.Starter/PKSim.Starter.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Infrastructure",
          "manifest": "src/PKSim.Starter/PKSim.Starter.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "Microsoft.Extensions.Logging",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "9.0.2"
        },
        {
          "name": "Microsoft.Extensions.Logging.Debug",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "9.0.2"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.DataBinding",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "4.0.0.5"
        },
        {
          "name": "OSPSuite.DataBinding.DevExpress",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "7.0.0.6"
        },
        {
          "name": "OSPSuite.Utility",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.11"
        },
        {
          "name": "OSPSuite.Presentation",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.UI",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "DevExpress.Win.Design",
          "manifest": "src/PKSim.UI/PKSim.UI.csproj",
          "ecosystem": "nuget",
          "version_constraint": "25.2.7"
        },
        {
          "name": "OSPSuite.Assets",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.Core",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.FuncParser",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.3"
        },
        {
          "name": "OSPSuite.SimModel",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.80"
        },
        {
          "name": "OSPSuite.SimModelSolver_CVODES",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "5.0.0.53"
        },
        {
          "name": "Microsoft.Data.Sqlite",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "SQLitePCLRaw.bundle_e_sqlite3",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.3"
        },
        {
          "name": "OSPSuite.Presentation",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "13.0.141"
        },
        {
          "name": "OSPSuite.TeXReporting",
          "manifest": "src/PKSim/PKSim.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.1.3"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "CommandLineParser",
            "direct": true,
            "version": "2.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "CommandLineParser",
            "direct": true,
            "version": "2.4.3",
            "ecosystem": "nuget"
          },
          {
            "name": "CommandLineParser",
            "direct": true,
            "version": "2.9.1",
            "ecosystem": "nuget"
          },
          {
            "name": "DevExpress.Win.Design",
            "direct": true,
            "version": "25.2.7",
            "ecosystem": "nuget"
          },
          {
            "name": "FluentNHibernate",
            "direct": true,
            "version": "2.0.3.0",
            "ecosystem": "nuget"
          },
          {
            "name": "FluentNHibernate",
            "direct": true,
            "version": "3.4.0",
            "ecosystem": "nuget"
          },
          {
            "name": "LumenWorksCsvReader",
            "direct": true,
            "version": "4.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "MarkdownLog.NS20",
            "direct": true,
            "version": "0.10.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Data.Sqlite",
            "direct": true,
            "version": "10.0.7",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging",
            "direct": true,
            "version": "9.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Abstractions",
            "direct": true,
            "version": "2.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Abstractions",
            "direct": true,
            "version": "2.2.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Abstractions",
            "direct": true,
            "version": "9.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Console",
            "direct": true,
            "version": "9.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Debug",
            "direct": true,
            "version": "9.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Newtonsoft.Json",
            "direct": true,
            "version": "11.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Newtonsoft.Json",
            "direct": true,
            "version": "13.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "Newtonsoft.Json.Schema",
            "direct": true,
            "version": "4.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "NHibernate.Extensions.Sqlite",
            "direct": true,
            "version": "10.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Assets",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Assets",
            "direct": true,
            "version": "7.4.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Assets",
            "direct": true,
            "version": "9.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Assets.Images",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.CLI.Core",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Core",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Core",
            "direct": true,
            "version": "7.4.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Core",
            "direct": true,
            "version": "9.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.DataBinding",
            "direct": true,
            "version": "2.2.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.DataBinding",
            "direct": true,
            "version": "4.0.0.5",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.DataBinding.DevExpress",
            "direct": true,
            "version": "2.2.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.DataBinding.DevExpress",
            "direct": true,
            "version": "7.0.0.6",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.FuncParser",
            "direct": true,
            "version": "3.0.1.14",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.FuncParser",
            "direct": true,
            "version": "3.0.1.9",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.FuncParser",
            "direct": true,
            "version": "5.0.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Infrastructure",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Infrastructure",
            "direct": true,
            "version": "7.4.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Infrastructure.Castle",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Infrastructure.Export",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Infrastructure.Import",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Infrastructure.Serialization",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Presentation",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Presentation",
            "direct": true,
            "version": "7.4.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Presentation",
            "direct": true,
            "version": "9.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Presentation.Serialization",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.R",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.SimModel",
            "direct": true,
            "version": "3.0.1.17",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.SimModel",
            "direct": true,
            "version": "3.0.1.27",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.SimModel",
            "direct": true,
            "version": "5.0.0.80",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.SimModelSolver_CVODES",
            "direct": true,
            "version": "4.0.0.5",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.SimModelSolver_CVODES",
            "direct": true,
            "version": "5.0.0.53",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.TeXReporting",
            "direct": true,
            "version": "2.1.1.9",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.TeXReporting",
            "direct": true,
            "version": "3.0.1.3",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.UI",
            "direct": true,
            "version": "13.0.141",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.UI",
            "direct": true,
            "version": "7.4.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Utility",
            "direct": true,
            "version": "3.0.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Utility",
            "direct": true,
            "version": "3.0.1.7",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Utility",
            "direct": true,
            "version": "5.0.0.11",
            "ecosystem": "nuget"
          },
          {
            "name": "SQLitePCLRaw.bundle_e_sqlite3",
            "direct": true,
            "version": "3.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "System.ComponentModel.Annotations",
            "direct": true,
            "version": "5.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Castle.Core",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "nuget"
          },
          {
            "name": "Castle.Windsor",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "nuget"
          },
          {
            "name": "csmpfit",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Dapper",
            "direct": false,
            "version": "1.50.4",
            "ecosystem": "nuget"
          },
          {
            "name": "FakeItEasy",
            "direct": false,
            "version": "4.5.1",
            "ecosystem": "nuget"
          },
          {
            "name": "FakeItEasy",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Iesi.Collections",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "MathNet.Numerics",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "nuget"
          },
          {
            "name": "MathNet.Numerics",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": "17.13.0",
            "ecosystem": "nuget"
          },
          {
            "name": "NHibernate",
            "direct": false,
            "version": "4.1.1.4000",
            "ecosystem": "nuget"
          },
          {
            "name": "Northwoods.GoWin",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "nuget"
          },
          {
            "name": "NUnit",
            "direct": false,
            "version": "3.14.0",
            "ecosystem": "nuget"
          },
          {
            "name": "NUnit",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "nuget"
          },
          {
            "name": "NUnit3TestAdapter",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.BDDHelper",
            "direct": false,
            "version": "2.0.1.4",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.BDDHelper",
            "direct": false,
            "version": "4.0.1.1",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.DevExpress",
            "direct": false,
            "version": "17.1.5",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.DevExpress.Presentation",
            "direct": false,
            "version": "17.1.5",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.DevExpress.Presentation",
            "direct": false,
            "version": "18.2.7",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Engine",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.Serializer",
            "direct": false,
            "version": "2.0.1.4",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.SmartXLS",
            "direct": false,
            "version": "2.6.8.2",
            "ecosystem": "nuget"
          },
          {
            "name": "OSPSuite.SmartXLS",
            "direct": false,
            "version": "2.7.1.9",
            "ecosystem": "nuget"
          },
          {
            "name": "SharpZipLib",
            "direct": false,
            "version": "0.86.0",
            "ecosystem": "nuget"
          },
          {
            "name": "System.Collections",
            "direct": false,
            "version": "4.0.11",
            "ecosystem": "nuget"
          },
          {
            "name": "System.Console",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "System.Data.SQLite.Core",
            "direct": false,
            "version": "1.0.106.0",
            "ecosystem": "nuget"
          },
          {
            "name": "System.ValueTuple",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "nuget"
          },
          {
            "name": "WindowsAPICodePack-Core",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "nuget"
          },
          {
            "name": "WindowsAPICodePack-Shell",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "nuget"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 90,
        "direct_count": 59,
        "indirect_count": 31
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 2,
        "merged_prs": 1218,
        "open_issues": 459,
        "closed_ratio": 0.793,
        "closed_issues": 1757,
        "closed_unmerged_prs": 74
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "msevestre",
          "commits": 760,
          "avatar_url": "https://avatars.githubusercontent.com/u/1041237?v=4"
        },
        {
          "type": "User",
          "login": "rwmcintosh",
          "commits": 585,
          "avatar_url": "https://avatars.githubusercontent.com/u/261477?v=4"
        },
        {
          "type": "User",
          "login": "benjaperez1983",
          "commits": 87,
          "avatar_url": "https://avatars.githubusercontent.com/u/108261271?v=4"
        },
        {
          "type": "User",
          "login": "Yuri05",
          "commits": 76,
          "avatar_url": "https://avatars.githubusercontent.com/u/25061876?v=4"
        },
        {
          "type": "User",
          "login": "georgeDaskalakis",
          "commits": 20,
          "avatar_url": "https://avatars.githubusercontent.com/u/37107428?v=4"
        },
        {
          "type": "User",
          "login": "abdelr",
          "commits": 18,
          "avatar_url": "https://avatars.githubusercontent.com/u/7632459?v=4"
        },
        {
          "type": "User",
          "login": "felixedd",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/39590719?v=4"
        },
        {
          "type": "User",
          "login": "PavelBal",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/25903040?v=4"
        },
        {
          "type": "User",
          "login": "egonw",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/26721?v=4"
        },
        {
          "type": "User",
          "login": "peterdew",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/27804639?v=4"
        }
      ],
      "contributors_sampled": 10,
      "top_contributor_share": 0.486
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build-and-publish_v13.yml",
        "build-and-test.yml",
        "build-nightly_v13.yml",
        "codeql.yml",
        "coverage.yml",
        "nightly-badge.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 8,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 6,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 9,
            "reason": "20 out of 21 merged PRs checked by a CI test -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 7,
            "reason": "Found 16/22 approved changesets -- score normalized to 7",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 4 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 9,
            "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 20 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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 8,
            "reason": "SAST tool is not run on all commits -- score normalized to 8",
            "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": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "c3579de05f8a5d932592659cbaff7d863cf794bf",
        "ran_at": "2026-07-30T17:18:25Z",
        "aggregate_score": 5.4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-30T04:59:56Z",
      "oldest_open_prs": [
        {
          "number": 3617,
          "created_at": "2026-07-22T03:56:40Z",
          "last_comment_at": "2026-07-22T03:56:46Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 3644,
          "created_at": "2026-07-29T04:45:29Z",
          "last_comment_at": "2026-07-29T15:59:29Z",
          "last_comment_author": "Yuri05"
        }
      ],
      "last_merged_pr_at": "2026-07-29T17:59:06Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 4,
          "created_at": "2017-03-08T12:35:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 6,
          "created_at": "2017-03-08T12:59:08Z",
          "last_comment_at": "2017-06-08T17:19:18Z",
          "last_comment_author": "TheiBa"
        },
        {
          "number": 7,
          "created_at": "2017-03-08T13:02:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 8,
          "created_at": "2017-03-08T13:03:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 9,
          "created_at": "2017-03-08T14:14:50Z",
          "last_comment_at": "2017-05-03T14:00:23Z",
          "last_comment_author": "Incei"
        },
        {
          "number": 10,
          "created_at": "2017-03-08T14:23:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 11,
          "created_at": "2017-03-08T14:25:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 88,
          "created_at": "2017-04-06T11:50:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 104,
          "created_at": "2017-04-12T12:50:15Z",
          "last_comment_at": "2017-07-03T17:46:58Z",
          "last_comment_author": "msevestre"
        },
        {
          "number": 121,
          "created_at": "2017-04-21T10:13:42Z",
          "last_comment_at": "2017-04-24T14:51:58Z",
          "last_comment_author": "hdiedam"
        },
        {
          "number": 154,
          "created_at": "2017-05-08T16:03:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 171,
          "created_at": "2017-05-19T13:06:47Z",
          "last_comment_at": "2018-08-23T08:38:11Z",
          "last_comment_author": "Yuri05"
        },
        {
          "number": 172,
          "created_at": "2017-05-19T16:38:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 173,
          "created_at": "2017-05-19T16:40:57Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 175,
          "created_at": "2017-05-22T12:42:36Z",
          "last_comment_at": "2018-01-19T18:19:01Z",
          "last_comment_author": "msevestre"
        },
        {
          "number": 243,
          "created_at": "2017-07-13T01:00:04Z",
          "last_comment_at": "2023-09-25T09:41:05Z",
          "last_comment_author": "PavelBal"
        },
        {
          "number": 244,
          "created_at": "2017-07-14T08:29:14Z",
          "last_comment_at": "2017-07-14T14:53:19Z",
          "last_comment_author": "msevestre"
        },
        {
          "number": 252,
          "created_at": "2017-07-31T16:08:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 299,
          "created_at": "2017-09-01T10:25:39Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 302,
          "created_at": "2017-09-01T17:11:45Z",
          "last_comment_at": "2017-09-06T13:21:16Z",
          "last_comment_author": "msevestre"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Open-Systems-Pharmacology/PK-Sim",
    "host": "github.com",
    "name": "PK-Sim",
    "owner": "Open-Systems-Pharmacology"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 69 is calibrated to 81 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 69,
            "calibrated": 81,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 81,
      "inputs": {
        "security": 56,
        "vitality": 90,
        "community": 53,
        "governance": 71,
        "calibration": "2026-08-02",
        "engineering": 74,
        "ai_readiness": 55,
        "weighted_overall_raw": 69
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 90,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "exceptional",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "commits_last_year": 525,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 50
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "50/52 weeks with commits",
                "points": 34.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 50
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "525 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 525
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "releases_count": 19,
              "latest_release_tag": "v12.3.173",
              "releases_from_tags": false,
              "days_since_latest_release": 23,
              "mean_days_between_releases": 188.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "19 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 23 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 23
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~188.9 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 188.9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 6,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 6 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 53,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "forks": 66,
              "stars": 169,
              "watchers": 6,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "169 stars",
                "points": 36.1,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 169
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "66 forks",
                "points": 15.1,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 66
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "6 watchers",
                "points": 3.9,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 71,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 10,
              "top_contributor_share": 0.486
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 49% of commits",
                "points": 11.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 49
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "10 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 83,
            "inputs": {
              "merged_prs": 1218,
              "open_issues": 459,
              "closed_issues": 1757,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.793,
              "closed_unmerged_prs": 74,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "79% of issues closed",
                "points": 33.3,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 79
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1218/1292 decided PRs merged",
                "points": 28.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1218,
                      "decided": 1292
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 16/22 approved changesets -- score normalized to 7",
                "points": 10.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 73,
            "inputs": {
              "followers": 332,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "Open-Systems-Pharmacology",
              "public_repos": 401,
              "account_age_days": 3485
            },
            "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": "332 followers of Open-Systems-Pharmacology",
                "points": 18.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 332,
                      "login": "Open-Systems-Pharmacology"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "401 public repos, account ~9 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 401
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 74,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "20 out of 21 merged PRs checked by a CI test -- score normalized to 9",
                "points": 18,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "topics": [
                "pk-sim",
                "suite-components"
              ],
              "has_wiki": true,
              "homepage": null,
              "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "2 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": 56,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 5.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "20 out of 21 merged PRs checked by a CI test -- score normalized to 9",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 16/22 approved changesets -- score normalized to 7",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 20 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": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 8",
                "points": 4,
                "status": "partial",
                "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": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "moderate",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 90 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 90
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 64,
            "inputs": {
              "source": "osv",
              "advisories": 4,
              "affected_packages": 3,
              "assessed_packages": 90,
              "unassessed_packages": 0,
              "affected_by_severity": "high 2, moderate 1",
              "direct_affected_packages": 1
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "1 affected: Newtonsoft.Json 11.0.2 (high 7.5)",
                "points": 14,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "Newtonsoft.Json 11.0.2 (high 7.5)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 1499 days ago",
                "points": 33.7,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 1,
                      "oldest": 1499
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "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": 90,
              "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": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 12
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 55,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "weak",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 39,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.73,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "73 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 38.9,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 73,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.08,
              "toolchain_manifests": [
                "src/PKSim.Assets/PKSim.Assets.csproj",
                "src/PKSim.BatchTool/PKSim.BatchTool.csproj",
                "src/PKSim.CLI.Core/PKSim.CLI.Core.csproj",
                "src/PKSim.CLI/PKSim.CLI.csproj",
                "src/PKSim.Core/PKSim.Core.csproj",
                "src/PKSim.Infrastructure/PKSim.Infrastructure.csproj",
                "src/PKSim.Presentation/PKSim.Presentation.csproj",
                "src/PKSim.R/PKSim.R.csproj",
                "src/PKSim.Starter/PKSim.Starter.csproj",
                "src/PKSim.UI/PKSim.UI.csproj",
                "src/PKSim/PKSim.csproj",
                "tests/PKSim.R.Tests/PKSim.R.Tests.csproj",
                "tests/PKSim.Tests/PKSim.Tests.csproj",
                "tests/PKSim.UI.Tests/PKSim.UI.Tests.csproj"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "src/PKSim.Assets/PKSim.Assets.csproj, src/PKSim.BatchTool/PKSim.BatchTool.csproj, src/PKSim.CLI.Core/PKSim.CLI.Core.csproj (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "src/PKSim.Assets/PKSim.Assets.csproj, src/PKSim.BatchTool/PKSim.BatchTool.csproj, src/PKSim.CLI.Core/PKSim.CLI.Core.csproj"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "C# (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "8 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 8,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "C#",
              "largest_source_bytes": 180785,
              "source_files_sampled": 3708,
              "oversized_source_files": 3
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C# (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "3/3708 source files over 60KB",
                "points": 55,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 3708,
                      "oversized": 3
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "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? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [],
      "labels": [],
      "scores": {},
      "primary": null,
      "evidence": [],
      "artifacts": [],
      "confidence": "none",
      "host_extension": false,
      "runs_as_process": false,
      "consumed_by_code": false
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-30T17:18:59.814559Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/o/Open-Systems-Pharmacology/PK-Sim.svg",
  "full_name": "Open-Systems-Pharmacology/PK-Sim",
  "license_state": "custom",
  "license_spdx": null
}

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

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

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