Skip to content

Check Registry

GHS uses a modular check system with a core module (always active) and language-specific modules that activate based on stack detection. Currently 63 health checks across 2 modules.

Modules

ModuleChecksMax PointsActivation
Core40 scored + 3 INFO74Always active
.NET20 scored + 3 INFO34.sln detected in repo root

When a language module is active, scores are combined with weighted averaging:

Combined = core_pct x 60% + language_pct x 40%

If no language module is active, the core score is used at 100% weight.

Core Checks

40 checks across 7 categories covering universal repository best practices.

Scoring

TierChecksPoints EachSubtotal
Tier 1 — Required4416
Tier 2 — Recommended22244
Tier 3 — Nice to Have14 scored + 3 INFO114
Total40 scored74

All Core Checks

#CheckSlugTierCategoryPoints
1README existsreadme1Documentation4
2LICENSE existslicense1Documentation4
3Repository description setdescription1Repo Settings4
4Branch protection enabledbranch-protection1Repo Settings4
5.gitignore existsgitignore2Dev Config2
6CI/CD workflows presentci-cd-workflows2CI/CD2
7CI workflow healthci-workflow-health2CI/CD2
8Action version pinningaction-version-pinning2CI/CD2
9Workflow permissionsworkflow-permissions2CI/CD2
10.editorconfig existseditorconfig2Dev Config2
11CODEOWNERS existscodeowners2Dev Config2
12Issue templates configuredissue-templates2Community2
13PR template existspr-template2Community2
14Repository topics settopics2Repo Settings2
15CHANGELOG existschangelog2Documentation2
16Delete branch on mergedelete-branch-on-merge2Repo Settings2
17GitHub releases presentgithub-releases2Maintenance2
18No stale issuesstale-issues2Maintenance2
19No stale PRsstale-prs2Maintenance2
20No stale branchesstale-branches2Maintenance2
21Merge strategy configuredmerge-strategy2Repo Settings2
22README has descriptionreadme-description2Documentation2
23README has badgesreadme-badges2Documentation2
24README has installationreadme-installation2Documentation2
25README has usage sectionreadme-usage2Documentation2
26README has features sectionreadme-features2Documentation2
27Workflow namingworkflow-naming3CI/CD1
28Workflow timeoutsworkflow-timeouts3CI/CD1
29Workflow concurrencyworkflow-concurrency3CI/CD1
30SECURITY.md existssecurity-md3Community1
31CONTRIBUTING.md existscontributing-md3Documentation1
32Security alerts enabledsecurity-alerts3Security1
33.editorconfig drifteditorconfig-drift3Dev Config1
34Code of conductcode-of-conduct3Documentation1
35Homepage URL sethomepage-url3Repo Settings1
36.gitattributes existsgitattributes3Dev Config1
37Version pinningversion-pinning3Dev Config1
38Dependency update configdependency-update-config3Security1
39README has table of contentsreadme-toc3Documentation1
40README mentions licensereadme-license-mention3Documentation1
41FUNDING.yml existsfunding3DocumentationINFO
42Discussions enableddiscussions-enabled3Repo SettingsINFO
43Commit signoff requiredcommit-signoff3Repo SettingsINFO

By Category

CategoryChecksDescription
Documentation13README, LICENSE, CHANGELOG, CONTRIBUTING, code of conduct, funding, and README content quality
Repo Settings8Description, branch protection, topics, delete-branch-on-merge, merge strategy, homepage URL, discussions, commit signoff
Dev Config6.gitignore, .editorconfig, CODEOWNERS, .editorconfig drift, .gitattributes, version pinning
CI/CD7Workflow presence, health, version pinning, permissions, naming, timeouts, concurrency
Community3Issue templates, PR template, SECURITY.md
Security2Security alerts, dependency update config
Maintenance4GitHub releases, stale issues, stale PRs, stale branches

.NET Module Checks

23 checks across 4 categories for .NET-specific best practices. Activates when a .sln file is detected in the repository root.

Scoring

TierChecksPoints EachSubtotal
Tier 1 — Required248
Tier 2 — Recommended8216
Tier 3 — Nice to Have10 scored + 3 INFO110
Total20 scored34

All .NET Checks

#CheckSlugTierCategoryPoints
1Directory.Build.propsdotnet-build-props1Build Config4
2Test Project Existsdotnet-tests-exist1Testing4
3Nullable Reference Typesdotnet-nullable2Code Quality2
4global.json SDK Pinningdotnet-global-json2Build Config2
5Code Coveragedotnet-code-coverage2Testing2
6Central Package Managementdotnet-central-packages2Build Config2
7XML Documentationdotnet-xml-docs2Code Quality2
8NuGet Metadatadotnet-nuget-metadata2Packaging2
9Solution Structuredotnet-solution-structure2Build Config2
10Implicit Usingsdotnet-implicit-usings2Code Quality2
11TreatWarningsAsErrorsdotnet-warnings-as-errors3Code Quality1
12Deterministic Buildsdotnet-deterministic3Build Config1
13SourceLinkdotnet-sourcelink3Packaging1
14Analyzers Configureddotnet-analyzers3Code Quality1
15AnalysisLeveldotnet-analysis-level3Code Quality1
16Benchmark Projectdotnet-benchmarks3Testing1
17dotnet-tools.jsondotnet-local-tools3Build Config1
18AOT Readydotnet-aot-ready3Packaging1
19InternalsVisibleTodotnet-internals-visible3Testing1
20Multi-Targetingdotnet-multi-target3Packaging1
21Target Frameworkdotnet-target-framework3Build ConfigINFO
22Package Countdotnet-package-count3PackagingINFO
23Build Systemdotnet-build-system3Build ConfigINFO

By Category

CategoryChecksDescription
Build Config8Directory.Build.props, global.json, Central Package Management, solution structure, deterministic builds, local tools, target framework, build system
Code Quality6Nullable, implicit usings, XML docs, warnings-as-errors, analyzers, analysis level
Testing4Test projects, code coverage, benchmarks, InternalsVisibleTo
Packaging5NuGet metadata, SourceLink, AOT, multi-targeting, package count

Tier Deep Dives

Core Module

.NET Module

Released under the MIT License.