# apple/coremltools — health index 91/100 (Excellent)

> Inspection of the public repository apple/coremltools by inspect.software. It holds a health index of 91 out of 100, placing it in the Excellent band. The index is a signal derived from publicly visible practice, not a warranty, a security audit, or an endorsement, and it is independent of payment.

- Repository: https://github.com/apple/coremltools
- Report page: https://inspect.software/software/apple/coremltools
- Full JSON report: https://inspect.software/api/repositories/apple/coremltools/report
- Badge: https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/apple/coremltools.svg
- Inspected: 2026-08-12
- Methodology: metrics 2.10.0, report schema 0.31.0 (https://inspect.software/methodology.md)

## Category summary

| Category | Weight | Index | Band |
|---|---|---|---|
| Vitality | 21% | 75/100 | Good |
| Community & Adoption | 17% | 91/100 | Excellent |
| Sustainability & Governance | 23% | 91/100 | Excellent |
| Engineering Quality | 19% | 70/100 | Good |
| Security | 16% | 54/100 | Moderate |
| AI Readiness | 4% | 68/100 | Good |

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

## Repository facts

| Field | Value |
|---|---|
| Description | Core ML tools contain supporting tools for Core ML model conversion, editing, and validation. |
| Classification | library |
| Homepage | https://coremltools.readme.io |
| Primary language | Python |
| License | BSD-3-Clause |
| Stars | 5,384 |
| Forks | 828 |
| Created | 2017-06-30 |
| Last push | 2026-08-11 |
| Latest release | 9.0 |
| Commits (last year) | 76 |
| Bus factor | 6 |
| Topics | coremltools, tensorflow, pytorch, coreml, machine-learning, model-converter, model-conversion |

## Published packages

| Registry | Package | Latest | Monthly downloads |
|---|---|---|---|
| pypi | coremltools | 9.0 | — |

## Vitality — 75/100 (Good)

Is the project alive — is code being written and are releases shipping? Weight: 21% of the overall index.

### Development activity — 83/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Push recency | met | 36 / 36 | last push 1 days ago |
| Commit cadence | partial | 20.1 / 36 | 29/52 weeks with commits |
| Commit volume | partial | 16.9 / 18 | 76 commits in the last year |
| OpenSSF Scorecard: Maintained | met | 10 / 10 | 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10 |

### Release discipline — 63/100 (Moderate)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Ships releases | met | 27 / 27 | 45 releases published |
| Release recency | partial | 16.2 / 36 | latest release 275 days ago |
| Release cadence | partial | 19.8 / 27 | a release every ~82.3 days |
| OpenSSF Scorecard: Signed-Releases | not met | 0 / 10 | Project has not signed or included provenance with any releases. |

### Abandonment — 100/100 (Exceptional)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Project is still maintained | met | 100 / 100 | last human commit 11 days ago |

## Community & Adoption — 91/100 (Excellent)

Does the project have users, downloads, attention, and a welcoming setup for contributors? Weight: 17% of the overall index.

### Popularity & adoption — 96/100 (Exceptional)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Stars | met | 60 / 60 | 5,384 stars |
| Forks | partial | 24.3 / 25 | 828 forks |
| Watchers | partial | 11.5 / 15 | 120 watchers |

### Community health — 85/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| README | met | 22.5 / 22.5 | — |
| License | met | 22.5 / 22.5 | recognized license (BSD-3-Clause) |
| CONTRIBUTING guide | met | 18 / 18 | — |
| Code of conduct | met | 13.5 / 13.5 | — |
| Issue template | not met | 0 / 7.2 | — |
| PR template | not met | 0 / 6.3 | — |

## Sustainability & Governance — 91/100 (Excellent)

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep? Weight: 23% of the overall index.

### Maintainer resilience (bus factor) — 92/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Bus factor | partial | 48.6 / 54 | 6 contributor(s) cover half of all commits |
| Commit distribution | partial | 19.4 / 22.5 | top contributor authored 14% of commits |
| Contributor breadth | met | 13.5 / 13.5 | 100 contributors |
| OpenSSF Scorecard: Contributors | met | 10 / 10 | project has 22 contributing companies or organizations |

### Issue & PR responsiveness — 80/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Issue resolution | partial | 31.6 / 42 | 75% of issues closed |
| PR acceptance | partial | 25.8 / 30 | 944/1096 decided PRs merged |
| Newcomer PR acceptance | partial | 7.2 / 13 | 5/9 first-time contributors' PRs merged in 30d |
| OpenSSF Scorecard: Code-Review | met | 15 / 15 | all changesets reviewed |

### Ownership & stewardship — 100/100 (Exceptional)

Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Ownership backing | met | 30 / 30 | organization-owned |
| Verified domain | excluded | 0 / 20 | verified-domain status not read for this organization |
| Owner reach | met | 25 / 25 | 39,507 followers of apple |
| Track record | met | 25 / 25 | 437 public repos, account ~11 yr old |

### Package maintenance — 91/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Published & resolvable | met | 25 / 25 | 1 package(s) on pypi |
| Publish recency | partial | 26 / 35 | latest publish 275 days ago |
| Version history | met | 20 / 20 | 56 published versions |
| Not deprecated | met | 20 / 20 | active, not deprecated or yanked |

## Engineering Quality — 70/100 (Good)

Are baseline engineering and documentation practices in place? Weight: 19% of the overall index.

### Engineering practices — 50/100 (Moderate)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| CI workflows | not met | 0 / 24 | — |
| Tests present | met | 24 / 24 | — |
| Linter config | met | 16 / 16 | .pylintrc, tox.ini |
| Pre-commit hooks | met | 9.6 / 9.6 | — |
| .editorconfig | not met | 0 / 6.4 | — |
| OpenSSF Scorecard: CI-Tests | not met | 0 / 20 | 0 out of 30 merged PRs checked by a CI test -- score normalized to 0 |

### Documentation — 100/100 (Exceptional)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| README | met | 30 / 30 | — |
| Documentation directory | met | 25 / 25 | — |
| Documentation / homepage site | met | 15 / 15 | https://coremltools.readme.io |
| Repository description | met | 10 / 10 | — |
| Topics | met | 10 / 10 | 7 topics |
| Wiki | met | 10 / 10 | — |

## Security — 54/100 (Moderate)

Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure? Weight: 16% of the overall index.

### Security posture — 43/100 (Weak)

Excluded from scoring (no data or not applicable): Branch-Protection, Dangerous-Workflow, Packaging, Token-Permissions. Remaining weights renormalized.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Binary-Artifacts | met | 7.5 / 7.5 | no binaries found in the repo |
| Branch-Protection | excluded | 0 / 7.5 | internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md |
| CI-Tests | not met | 0 / 2.5 | 0 out of 30 merged PRs checked by a CI test -- score normalized to 0 |
| CII-Best-Practices | not met | 0 / 2.5 | no effort to earn an OpenSSF best practices badge detected |
| Code-Review | met | 7.5 / 7.5 | all changesets reviewed |
| Contributors | met | 2.5 / 2.5 | project has 22 contributing companies or organizations |
| Dangerous-Workflow | excluded | 0 / 10 | no workflows found |
| Dependency-Update-Tool | not met | 0 / 7.5 | no update tool detected |
| Fuzzing | not met | 0 / 5 | project is not fuzzed |
| License | met | 2.5 / 2.5 | license file detected |
| Maintained | met | 7.5 / 7.5 | 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10 |
| Packaging | excluded | 0 / 5 | packaging workflow not detected |
| Pinned-Dependencies | not met | 0 / 5 | dependency not pinned by hash detected -- score normalized to 0 |
| SAST | not met | 0 / 5 | SAST tool is not run on all commits -- score normalized to 0 |
| Security-Policy | met | 5 / 5 | security policy file detected |
| Signed-Releases | not met | 0 / 7.5 | Project has not signed or included provenance with any releases. |
| Token-Permissions | excluded | 0 / 7.5 | No tokens found |
| Vulnerabilities | not met | 0 / 7.5 | 32 existing vulnerabilities detected |

### Dependency advisories — 100/100 (Exceptional)

Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:coremltools@9.0 runtime dependency closure — what installing the published package pulls in — 11 packages. Reachability is not analyzed.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Direct dependencies free of known advisories | met | 35 / 35 | no direct dependency carries a known advisory |
| Indirect dependencies free of known advisories | met | 25 / 25 | no indirect dependency carries a known advisory |
| No advisories left outstanding | excluded | 0 / 40 | no advisory carries a publication date |

### Malicious dependencies — 100/100 (Exceptional)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| No dependency reported as a malicious package | met | 100 / 100 | no dependency is reported as a malicious package |

### High-Risk Jurisdiction Exposure — 100/100 (Exceptional)

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.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Policy exposure multiplier | met | 100 / 100 | no confirmed policy-scope location match |

## AI Readiness — 68/100 (Good)

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).

### Agent context & guidance — 40/100 (Weak)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Agent instructions | not met | 0 / 45 | no CLAUDE.md / AGENTS.md / editor rules |
| Machine-readable docs (llms.txt) | not met | 0 / 15 | — |
| Legible commit history | met | 40 / 40 | 99 of 100 human commits state their intent (structured subject or explanatory body) |

### Verify loop (build / test / typecheck) — 74/100 (Good)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| One-command bootstrap | met | 18 / 18 | Makefile, coremltools/converters/mil/Makefile, deps/pybind11/noxfile.py, docs-guides/Makefile, docs/Makefile, mlmodel/docs/Makefile |
| Automated tests | met | 22 / 22 | — |
| Lint / format config | met | 11 / 11 | .pylintrc, tox.ini |
| Static type checking | met | 11 / 11 | deps/pybind11/pybind11/py.typed |
| Reproducible environment | met | 10 / 10 | Dockerfile |
| Demonstrated agent practice | partial | 2 / 10 | 1 of the last 100 commits agent-authored or agent-credited |
| Automated maintenance | not met | 0 / 8 | no automated dependency updates observed |
| OpenSSF Scorecard: Pinned-Dependencies | not met | 0 / 10 | dependency not pinned by hash detected -- score normalized to 0 |

### Code legibility for models — 79/100 (Good)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Type-checkable code | partial | 27 / 45 | Python with type-check config (deps/pybind11/pybind11/py.typed) |
| Manageable file sizes | partial | 51.9 / 55 | 145/2571 source files over 60KB |

### Machine-readable interfaces — 100/100 (Exceptional)

Excluded from scoring (no data or not applicable): MCP server. Remaining weights renormalized.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| API schema (OpenAPI/GraphQL/proto) | met | 40 / 40 | deps/protobuf/benchmarks/benchmarks.proto, deps/protobuf/benchmarks/datasets/google_message1/proto2/benchmark_message1_proto2.proto, deps/protobuf/benchmarks/datasets/google_message1/proto3/benchmark_message1_proto3.proto, deps/protobuf/benchmarks/datasets/google_message2/benchmark_message2.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_1.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_2.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_3.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_4.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_5.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_6.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_7.proto, deps/protobuf/benchmarks/datasets/google_message3/benchmark_message3_8.proto, deps/protobuf/benchmarks/datasets/google_message4/benchmark_message4.proto, deps/protobuf/benchmarks/datasets/google_message4/benchmark_message4_1.proto, deps/protobuf/benchmarks/datasets/google_message4/benchmark_message4_2.proto, deps/protobuf/benchmarks/datasets/google_message4/benchmark_message4_3.proto, deps/protobuf/benchmarks/google_size.proto, deps/protobuf/conformance/conformance.proto, deps/protobuf/csharp/compatibility_tests/v3.0.0/protos/csharp/protos/unittest_issues.proto, deps/protobuf/csharp/compatibility_tests/v3.0.0/protos/src/google/protobuf/map_unittest_proto3.proto, deps/protobuf/csharp/compatibility_tests/v3.0.0/protos/src/google/protobuf/unittest_import_proto3.proto, deps/protobuf/csharp/compatibility_tests/v3.0.0/protos/src/google/protobuf/unittest_import_public_proto3.proto, deps/protobuf/csharp/compatibility_tests/v3.0.0/protos/src/google/protobuf/unittest_proto3.proto, deps/protobuf/csharp/compatibility_tests/v3.0.0/protos/src/google/protobuf/unittest_well_known_types.proto, deps/protobuf/csharp/protos/map_unittest_proto3.proto, deps/protobuf/csharp/protos/old_extensions1.proto, deps/protobuf/csharp/protos/old_extensions2.proto, deps/protobuf/csharp/protos/unittest.proto, deps/protobuf/csharp/protos/unittest_custom_options_proto3.proto, deps/protobuf/csharp/protos/unittest_import.proto, deps/protobuf/csharp/protos/unittest_import_proto3.proto, deps/protobuf/csharp/protos/unittest_import_public.proto, deps/protobuf/csharp/protos/unittest_import_public_proto3.proto, deps/protobuf/csharp/protos/unittest_issue6936_a.proto, deps/protobuf/csharp/protos/unittest_issue6936_b.proto, deps/protobuf/csharp/protos/unittest_issue6936_c.proto, deps/protobuf/csharp/protos/unittest_issues.proto, deps/protobuf/csharp/protos/unittest_proto3.proto, deps/protobuf/csharp/protos/unittest_selfreferential_options.proto, deps/protobuf/csharp/src/Google.Protobuf.Benchmarks/wrapper_benchmark_messages.proto, deps/protobuf/examples/addressbook.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/any_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/cached_field_size_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/deprecated_file.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/field_presence_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/lazy_fields_lite.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/lite_equals_and_hash.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/map_for_proto2_lite_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/map_for_proto2_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/map_initialization_order_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/map_lite_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/map_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/message_lite_extension_util_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/multiple_files_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/nested_builders_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/nested_extension.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/nested_extension_lite.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/non_nested_extension.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/non_nested_extension_lite.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/outer_class_name_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/outer_class_name_test2.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/outer_class_name_test3.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/packed_field_test.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/proto2_message.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/proto2_message_lite.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/proto2_unknown_enum_values.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/proto3_message.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/proto3_message_lite.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/test_bad_identifiers.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/test_check_utf8.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/test_check_utf8_size.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/test_custom_options.proto, deps/protobuf/java/core/src/test/proto/com/google/protobuf/wrappers_test.proto, deps/protobuf/java/kotlin/src/test/proto/com/google/protobuf/evil_names_proto2.proto, deps/protobuf/java/kotlin/src/test/proto/com/google/protobuf/evil_names_proto3.proto, deps/protobuf/java/kotlin/src/test/proto/com/google/protobuf/example_extensible_message.proto, deps/protobuf/java/kotlin/src/test/proto/com/google/protobuf/multiple_files_proto3.proto, deps/protobuf/java/util/src/test/proto/com/google/protobuf/util/json_test.proto, deps/protobuf/js/commonjs/test6/test6.proto, deps/protobuf/js/commonjs/test7/test7.proto, deps/protobuf/js/compatibility_tests/v3.0.0/commonjs/test6/test6.proto, deps/protobuf/js/compatibility_tests/v3.0.0/commonjs/test7/test7.proto, deps/protobuf/js/compatibility_tests/v3.0.0/data.proto, deps/protobuf/js/compatibility_tests/v3.0.0/proto3_test.proto, deps/protobuf/js/compatibility_tests/v3.0.0/test.proto, deps/protobuf/js/compatibility_tests/v3.0.0/test2.proto, deps/protobuf/js/compatibility_tests/v3.0.0/test3.proto, deps/protobuf/js/compatibility_tests/v3.0.0/test4.proto, deps/protobuf/js/compatibility_tests/v3.0.0/test5.proto, deps/protobuf/js/compatibility_tests/v3.0.0/testbinary.proto, deps/protobuf/js/compatibility_tests/v3.0.0/testempty.proto, deps/protobuf/js/compatibility_tests/v3.1.0/commonjs/test6/test6.proto, deps/protobuf/js/compatibility_tests/v3.1.0/commonjs/test7/test7.proto, deps/protobuf/js/compatibility_tests/v3.1.0/data.proto, deps/protobuf/js/compatibility_tests/v3.1.0/proto3_test.proto, deps/protobuf/js/compatibility_tests/v3.1.0/test.proto, deps/protobuf/js/compatibility_tests/v3.1.0/test2.proto, deps/protobuf/js/compatibility_tests/v3.1.0/test3.proto, deps/protobuf/js/compatibility_tests/v3.1.0/test4.proto, deps/protobuf/js/compatibility_tests/v3.1.0/test5.proto, deps/protobuf/js/compatibility_tests/v3.1.0/testbinary.proto, deps/protobuf/js/compatibility_tests/v3.1.0/testempty.proto, deps/protobuf/js/data.proto, deps/protobuf/js/proto3_test.proto, deps/protobuf/js/test.proto, deps/protobuf/js/test10.proto, deps/protobuf/js/test11.proto, deps/protobuf/js/test12.proto, deps/protobuf/js/test13.proto, deps/protobuf/js/test14.proto, deps/protobuf/js/test15.proto, deps/protobuf/js/test2.proto, deps/protobuf/js/test3.proto, deps/protobuf/js/test4.proto, deps/protobuf/js/test5.proto, deps/protobuf/js/test8.proto, deps/protobuf/js/test9.proto, deps/protobuf/js/testbinary.proto, deps/protobuf/js/testempty.proto, deps/protobuf/js/testlargenumbers.proto, deps/protobuf/objectivec/Tests/unittest_cycle.proto, deps/protobuf/objectivec/Tests/unittest_deprecated.proto, deps/protobuf/objectivec/Tests/unittest_deprecated_file.proto, deps/protobuf/objectivec/Tests/unittest_extension_chain_a.proto, deps/protobuf/objectivec/Tests/unittest_extension_chain_b.proto, deps/protobuf/objectivec/Tests/unittest_extension_chain_c.proto, deps/protobuf/objectivec/Tests/unittest_extension_chain_d.proto, deps/protobuf/objectivec/Tests/unittest_extension_chain_e.proto, deps/protobuf/objectivec/Tests/unittest_extension_chain_f.proto, deps/protobuf/objectivec/Tests/unittest_extension_chain_g.proto, deps/protobuf/objectivec/Tests/unittest_objc.proto, deps/protobuf/objectivec/Tests/unittest_objc_options.proto, deps/protobuf/objectivec/Tests/unittest_objc_startup.proto, deps/protobuf/objectivec/Tests/unittest_runtime_proto2.proto, deps/protobuf/objectivec/Tests/unittest_runtime_proto3.proto, deps/protobuf/php/tests/proto/empty/echo.proto, deps/protobuf/php/tests/proto/test.proto, deps/protobuf/php/tests/proto/test_descriptors.proto, deps/protobuf/php/tests/proto/test_empty_php_namespace.proto, deps/protobuf/php/tests/proto/test_import_descriptor_proto.proto, deps/protobuf/php/tests/proto/test_include.proto, deps/protobuf/php/tests/proto/test_no_namespace.proto, deps/protobuf/php/tests/proto/test_php_namespace.proto, deps/protobuf/php/tests/proto/test_prefix.proto, deps/protobuf/php/tests/proto/test_reserved_enum_lower.proto, deps/protobuf/php/tests/proto/test_reserved_enum_upper.proto, deps/protobuf/php/tests/proto/test_reserved_enum_value_lower.proto, deps/protobuf/php/tests/proto/test_reserved_enum_value_upper.proto, deps/protobuf/php/tests/proto/test_reserved_message_lower.proto, deps/protobuf/php/tests/proto/test_reserved_message_upper.proto, deps/protobuf/php/tests/proto/test_service.proto, deps/protobuf/php/tests/proto/test_service_namespace.proto, deps/protobuf/php/tests/proto/test_wrapper_type_setters.proto, deps/protobuf/python/google/protobuf/internal/any_test.proto, deps/protobuf/python/google/protobuf/internal/descriptor_pool_test1.proto, deps/protobuf/python/google/protobuf/internal/descriptor_pool_test2.proto, deps/protobuf/python/google/protobuf/internal/factory_test1.proto, deps/protobuf/python/google/protobuf/internal/factory_test2.proto, deps/protobuf/python/google/protobuf/internal/file_options_test.proto, deps/protobuf/python/google/protobuf/internal/import_test_package/inner.proto, deps/protobuf/python/google/protobuf/internal/import_test_package/outer.proto, deps/protobuf/python/google/protobuf/internal/message_set_extensions.proto, deps/protobuf/python/google/protobuf/internal/missing_enum_values.proto, deps/protobuf/python/google/protobuf/internal/more_extensions.proto, deps/protobuf/python/google/protobuf/internal/more_extensions_dynamic.proto, deps/protobuf/python/google/protobuf/internal/more_messages.proto, deps/protobuf/python/google/protobuf/internal/no_package.proto, deps/protobuf/python/google/protobuf/internal/packed_field_test.proto, deps/protobuf/python/google/protobuf/internal/test_bad_identifiers.proto, deps/protobuf/python/google/protobuf/internal/test_proto3_optional.proto, deps/protobuf/python/google/protobuf/pyext/proto2_api_test.proto, deps/protobuf/python/google/protobuf/pyext/python.proto, deps/protobuf/ruby/compatibility_tests/v3.0.0/tests/generated_code.proto, deps/protobuf/ruby/compatibility_tests/v3.0.0/tests/test_import.proto, deps/protobuf/ruby/src/main/sentinel.proto, deps/protobuf/ruby/tests/basic_test.proto, deps/protobuf/ruby/tests/basic_test_proto2.proto, deps/protobuf/ruby/tests/generated_code.proto, deps/protobuf/ruby/tests/generated_code_proto2.proto, deps/protobuf/ruby/tests/multi_level_nesting_test.proto, deps/protobuf/ruby/tests/test_import.proto, deps/protobuf/ruby/tests/test_import_proto2.proto, deps/protobuf/ruby/tests/test_ruby_package.proto, deps/protobuf/ruby/tests/test_ruby_package_proto2.proto, deps/protobuf/src/google/protobuf/any.proto, deps/protobuf/src/google/protobuf/any_test.proto, deps/protobuf/src/google/protobuf/api.proto, deps/protobuf/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto, deps/protobuf/src/google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto, deps/protobuf/src/google/protobuf/compiler/plugin.proto, deps/protobuf/src/google/protobuf/compiler/ruby/ruby_generated_code.proto, deps/protobuf/src/google/protobuf/compiler/ruby/ruby_generated_code_proto2.proto, deps/protobuf/src/google/protobuf/compiler/ruby/ruby_generated_code_proto2_import.proto, deps/protobuf/src/google/protobuf/compiler/ruby/ruby_generated_pkg_explicit.proto, deps/protobuf/src/google/protobuf/compiler/ruby/ruby_generated_pkg_explicit_legacy.proto, deps/protobuf/src/google/protobuf/compiler/ruby/ruby_generated_pkg_implicit.proto, deps/protobuf/src/google/protobuf/descriptor.proto, deps/protobuf/src/google/protobuf/duration.proto, deps/protobuf/src/google/protobuf/empty.proto, deps/protobuf/src/google/protobuf/field_mask.proto, deps/protobuf/src/google/protobuf/map_lite_unittest.proto, deps/protobuf/src/google/protobuf/map_proto2_unittest.proto, deps/protobuf/src/google/protobuf/map_unittest.proto, deps/protobuf/src/google/protobuf/source_context.proto, deps/protobuf/src/google/protobuf/struct.proto, deps/protobuf/src/google/protobuf/test_messages_proto2.proto, deps/protobuf/src/google/protobuf/test_messages_proto3.proto, deps/protobuf/src/google/protobuf/timestamp.proto, deps/protobuf/src/google/protobuf/type.proto, deps/protobuf/src/google/protobuf/unittest.proto, deps/protobuf/src/google/protobuf/unittest_arena.proto, deps/protobuf/src/google/protobuf/unittest_custom_options.proto, deps/protobuf/src/google/protobuf/unittest_drop_unknown_fields.proto, deps/protobuf/src/google/protobuf/unittest_embed_optimize_for.proto, deps/protobuf/src/google/protobuf/unittest_empty.proto, deps/protobuf/src/google/protobuf/unittest_enormous_descriptor.proto, deps/protobuf/src/google/protobuf/unittest_import.proto, deps/protobuf/src/google/protobuf/unittest_import_lite.proto, deps/protobuf/src/google/protobuf/unittest_import_public.proto, deps/protobuf/src/google/protobuf/unittest_import_public_lite.proto, deps/protobuf/src/google/protobuf/unittest_lazy_dependencies.proto, deps/protobuf/src/google/protobuf/unittest_lazy_dependencies_custom_option.proto, deps/protobuf/src/google/protobuf/unittest_lazy_dependencies_enum.proto, deps/protobuf/src/google/protobuf/unittest_lite.proto, deps/protobuf/src/google/protobuf/unittest_lite_imports_nonlite.proto, deps/protobuf/src/google/protobuf/unittest_mset.proto, deps/protobuf/src/google/protobuf/unittest_mset_wire_format.proto, deps/protobuf/src/google/protobuf/unittest_no_field_presence.proto, deps/protobuf/src/google/protobuf/unittest_no_generic_services.proto, deps/protobuf/src/google/protobuf/unittest_optimize_for.proto, deps/protobuf/src/google/protobuf/unittest_preserve_unknown_enum.proto, deps/protobuf/src/google/protobuf/unittest_preserve_unknown_enum2.proto, deps/protobuf/src/google/protobuf/unittest_proto3.proto, deps/protobuf/src/google/protobuf/unittest_proto3_arena.proto, deps/protobuf/src/google/protobuf/unittest_proto3_arena_lite.proto, deps/protobuf/src/google/protobuf/unittest_proto3_lite.proto, deps/protobuf/src/google/protobuf/unittest_proto3_optional.proto, deps/protobuf/src/google/protobuf/unittest_well_known_types.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/anys.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/books.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/default_value.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/default_value_test.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/field_mask.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/maps.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/oneofs.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/proto3.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/struct.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/timestamp_duration.proto, deps/protobuf/src/google/protobuf/util/internal/testdata/wrappers.proto, deps/protobuf/src/google/protobuf/util/json_format.proto, deps/protobuf/src/google/protobuf/util/json_format_proto3.proto, deps/protobuf/src/google/protobuf/util/message_differencer_unittest.proto, deps/protobuf/src/google/protobuf/wrappers.proto, mlmodel/format/ArrayFeatureExtractor.proto, mlmodel/format/AudioFeaturePrint.proto, mlmodel/format/BayesianProbitRegressor.proto, mlmodel/format/CategoricalMapping.proto, mlmodel/format/ClassConfidenceThresholding.proto, mlmodel/format/CustomModel.proto, mlmodel/format/DataStructures.proto, mlmodel/format/DictVectorizer.proto, mlmodel/format/FeatureTypes.proto, mlmodel/format/FeatureVectorizer.proto, mlmodel/format/GLMClassifier.proto, mlmodel/format/GLMRegressor.proto, mlmodel/format/Gazetteer.proto, mlmodel/format/Identity.proto, mlmodel/format/Imputer.proto, mlmodel/format/ItemSimilarityRecommender.proto, mlmodel/format/LinkedModel.proto, mlmodel/format/MIL.proto, mlmodel/format/Model.proto, mlmodel/format/NearestNeighbors.proto, mlmodel/format/NeuralNetwork.proto, mlmodel/format/NonMaximumSuppression.proto, mlmodel/format/Normalizer.proto, mlmodel/format/OneHotEncoder.proto, mlmodel/format/Parameters.proto, mlmodel/format/SVM.proto, mlmodel/format/Scaler.proto, mlmodel/format/SoundAnalysisPreprocessing.proto, mlmodel/format/TextClassifier.proto, mlmodel/format/TreeEnsemble.proto, mlmodel/format/VisionFeaturePrint.proto, mlmodel/format/WordEmbedding.proto, mlmodel/format/WordTagger.proto |
| MCP server | excluded | 0 / 20 | not applicable to this kind of software |
| Runnable examples | met | 40 / 40 | examples |

## Collection warnings

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

## What this report is

inspect.software measures public repositories against a single published, versioned methodology and reports the result as a 1–100 health index. Findings are signals derived from what is visible in public repository data — they are not a security audit, a warranty, or an endorsement, and no result depends on payment.

- Methodology, formulas and weights: https://inspect.software/methodology.md
- What a result does and does not claim: https://inspect.software/wiki/signals-not-warranties.md
- Rating bands: https://inspect.software/wiki/scoring-bands.md
- Corrections: https://inspect.software/contact.md
- Index of all documents: https://inspect.software/llms.txt
