Public record
Software health reportschema 0.27.0 · metrics 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#Custom license★ 169 stars⑂ 66 forkssince Feb 2017View on GitHub ↗

Open-Systems-Pharmacology/PK-Sim holds a health index of 81 out of 100, placing it in the Excellent band. It scores highest on Vitality (90/100) and lowest on Community & Adoption (53/100). It was last updated today. 2 contributors account for most of its recent work.

81
overall / 100
Excellent

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean, calibrated against the distribution of the public record so bands carry percentile meaning; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At Risk ceiling of 34.

81
Exceptional93-100The record's top tier (≈ top 5%); essentially all checked criteria met
Excellent80-92Strong across the board; minor gaps
Good65-79Healthy; gaps are limited and manageable
Moderate50-64Acceptable with notable gaps; review recommended
Weak35-49Material weaknesses across several areas
At Risk20-34Significant weaknesses; adoption warrants caution
Critical1-19Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

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

The weighted overall 69 is calibrated to 81 on the published index scale (record calibration 2026-08-02).

Ownership

332 followers401 public repossince Jan 2017

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

Metrics by category

Vitality

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

90Excellent · 21% of overall
How it's scored
36/36Push recency — last push 0 days ago
34.6/36Commit cadence — 50/52 weeks with commits
18/18Commit volume — 525 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year525
human_commit_share1
days_since_last_push0
active_weeks_last_year50
How it's scored
27/27Ships releases — 19 releases published
36/36Release recency — latest release 23 days ago
12.6/27Release cadence — a release every ~188.9 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count19
latest_release_tagv12.3.173
releases_from_tagsno
days_since_latest_release23
mean_days_between_releases188.9

Community & Adoption

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

53Moderate · 17% of overall
How it's scored
36.1/60Stars — 169 stars
15.1/25Forks — 66 forks
3.9/15Watchers — 6 watchers
Inputs used
forks66
stars169
watchers6
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
16.9/22.5License — license file present, not a recognized license
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
readme_badges
has_contributingno
has_issue_templateno
has_code_of_conductno
readme_badge_services
has_pull_request_templateyes

Sustainability & Governance

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

71Good · 23% of overall
How it's scored
25.2/54Bus factor — 2 contributor(s) cover half of all commits
11.6/22.5Commit distribution — top contributor authored 49% of commits
13.5/13.5Contributor breadth — 10 contributors
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Inputs used
bus_factor2
contributors_sampled10
top_contributor_share0.486
How it's scored
33.3/42Issue resolution — 79% of issues closed
28.3/30PR acceptance — 1,218/1,292 decided PRs merged
0/13Newcomer PR acceptance — no first-time contributor's PR decided in 30d
10.5/15OpenSSF Scorecard: Code-Review — Found 16/22 approved changesets -- score normalized to 7
Inputs used
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
Excluded from scoring (no data or not applicable): newcomer_pr_acceptance. Remaining weights renormalized.
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
18.1/25Owner reach — 332 followers of Open-Systems-Pharmacology
25/25Track record — 401 public repos, account ~9 yr old
Inputs used
followers332
owner_typeOrganization
is_verified
owner_loginOpen-Systems-Pharmacology
public_repos401
account_age_days3,485

Engineering Quality

Are baseline engineering and documentation practices in place?

74Good · 19% of overall
How it's scored
24/24CI workflows — 6 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
18/20OpenSSF Scorecard: CI-Tests — 20 out of 21 merged PRs checked by a CI test -- score normalized to 9
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentation

85Excellent
How it's scored
30/30README
25/25Documentation directory
0/15Documentation / homepage site
10/10Repository description
10/10Topics — 2 topics
10/10Wiki
Inputs used
topicspk-sim, suite-components
has_wikiyes
homepage
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

56Moderate · 16% of overall
How it's scored
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.5License — 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
Inputs used
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate5.4
How it's scored
14/35Direct dependencies free of known advisories — 1 affected: Newtonsoft.Json 11.0.2 (high 7.5)
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
33.7/40No advisories left outstanding — 1 advisory-carrying package(s) unaddressed past 90 days; oldest published 1,499 days ago
Inputs used
sourceosv
advisories4
affected_packages3
assessed_packages90
unassessed_packages0
affected_by_severityhigh 2, moderate 1
direct_affected_packages1
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.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight (4%): agent tooling is a real maintenance signal, but a repository with none can still reach 100/100.

55Moderate · 4% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
38.9/40Legible commit history — 73 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.73
agent_instruction_files
agent_instruction_max_bytes
How it's scored
12.6/18One-command bootstrap — 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)
22/22Automated tests
0/11Lint / format config
11/11Static type checking — C# (statically typed)
0/10Reproducible environment
10/10Demonstrated agent practice — 8 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfiles
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configno
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
How it's scored
45/45Type-checkable code — C# (statically typed)
55/55Manageable file sizes — 3/3,708 source files over 60KB
Inputs used
primary_languageC#
largest_source_bytes180,785
source_files_sampled3,708
oversized_source_files3
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_files

Key facts

169GitHub stars
10contributors
525commits, last 12 months
0days since last push
19releases
2bus factor
459open issues
package ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 66 ⇿
0Stars
66Forks
19Releases

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

01325385063756632017-032021-112026-07
Major 0Minor 0Patch 10

Each point covers 9 days.

OpenSSF Scorecard 5.4 / 10
5.4aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-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
Direct dependencies 89
RegistryPackageVersion constraintManifest
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
All dependencies 90

Full resolved dependency set from the GitHub dependency graph: 59 direct and 31 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

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

This repository publishes no package the index resolves, so its own dependency graph was assessed — 90 packages, which also include development and test pins that never ship: 3 carry known advisories, of which 1 are direct.

PackageVersionRelationSeverityAdvisoriesFixed in
Newtonsoft.Json11.0.2directhigh113.0.1
SharpZipLib0.86.0indirecthigh21.3.3
NHibernate4.1.1.4000indirectmoderate15.5.2

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

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "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
}

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

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

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