Skip to content

Core — Tier 2 — Recommended

Tier 2 core checks verify professional standards that well-maintained repositories should have. Each check is worth 2 points. There are 22 checks in this tier for a maximum of 44 points. These checks run for all repositories regardless of tech stack.

.gitignore

SlugCategoryWhat it checks
gitignoreDev ConfigA .gitignore file exists and is non-empty

Prevents build artifacts, dependencies, and OS files from being committed. Every project should have one tailored to its tech stack.


CI/CD Workflows

SlugCategoryWhat it checks
ci-cd-workflowsCI/CDAt least one GitHub Actions workflow exists in .github/workflows/

Automated testing and deployment are table-stakes for modern development. Even a simple "run tests on push" workflow catches regressions early.


CI Workflow Health

SlugCategoryWhat it checks
ci-workflow-healthCI/CDThe most recent CI workflow run completed successfully

Having CI is good. Having CI that actually passes is better. This check verifies your workflows aren't permanently broken.


Action Version Pinning

SlugCategoryWhat it checks
action-version-pinningCI/CDThird-party actions use SHA pins or version tags, not @main/@master/@latest

Unpinned actions are a supply-chain security risk. If a third-party action's main branch is compromised, your workflow automatically pulls the malicious code. Pin to SHAs or version tags for reproducible, secure builds.


Workflow Permissions

SlugCategoryWhat it checks
workflow-permissionsCI/CDEvery workflow declares an explicit permissions: block

Without explicit permissions, workflows inherit the repository's default token permissions — often overly broad. Declaring permissions: limits the blast radius if a workflow is compromised.


.editorconfig

SlugCategoryWhat it checks
editorconfigDev ConfigAn .editorconfig file exists

Ensures consistent formatting (indentation, line endings, charset) across different editors and IDEs without requiring project-specific editor plugins.


CODEOWNERS

SlugCategoryWhat it checks
codeownersDev ConfigA CODEOWNERS file exists (in root, .github/, or docs/)

Automatically assigns reviewers to PRs based on which files are changed. Essential for teams, useful even for solo projects to enforce review habits.


Issue Templates

SlugCategoryWhat it checks
issue-templatesCommunityAt least one issue template exists in .github/ISSUE_TEMPLATE/

Structured issue templates ensure reporters provide the information needed to diagnose and fix problems. Reduces back-and-forth on every new issue.


PR Template

SlugCategoryWhat it checks
pr-templateCommunityA pull request template exists (.github/PULL_REQUEST_TEMPLATE.md)

Guides contributors to include context, test plans, and checklists with every PR. Makes code review faster and more consistent.


Topics

SlugCategoryWhat it checks
topicsRepo SettingsThe repository has at least one topic/tag set

Topics improve discoverability in GitHub search and help users find your project. Think of them as SEO for your repo.

Fix: gh repo edit --add-topic "your-topic"


Changelog

SlugCategoryWhat it checks
changelogDocumentationA CHANGELOG.md file exists

A changelog communicates what changed between versions. Users and contributors rely on it to understand upgrade paths and new features.


Delete Branch on Merge

SlugCategoryWhat it checks
delete-branch-on-mergeRepo SettingsThe "Automatically delete head branches" setting is enabled

Prevents stale branches from accumulating after PRs are merged. Keeps the branch list clean and avoids confusion.

Fix: gh repo edit --delete-branch-on-merge


GitHub Releases

SlugCategoryWhat it checks
github-releasesMaintenanceAt least one GitHub Release exists

Releases provide versioned snapshots of your project with release notes. They're how many users discover and download specific versions.


Stale Issues

SlugCategoryWhat it checks
stale-issuesMaintenanceNo issues have been inactive for over 90 days without a response

Stale issues signal an unmaintained project. Regular triage keeps the issue tracker useful and shows contributors their reports are valued.


Stale PRs

SlugCategoryWhat it checks
stale-prsMaintenanceNo PRs have been inactive for over 30 days

Abandoned PRs waste contributor effort and create confusion. Review, merge, or close them promptly.


Stale Branches

SlugCategoryWhat it checks
stale-branchesMaintenanceNo branches are older than 90 days without activity

Stale branches clutter the repository and may contain outdated or conflicting code. Clean them up or delete them.


Merge Strategy

SlugCategoryWhat it checks
merge-strategyRepo SettingsA deliberate merge strategy is configured (not all three enabled)

Having all three merge options enabled (merge, squash, rebase) leads to inconsistent git history. Pick a strategy and stick with it.


README Description

SlugCategoryWhat it checks
readme-descriptionDocumentationThe README contains a meaningful project description (not just the title)

A title alone doesn't tell visitors what the project does. The first paragraph should clearly explain the project's purpose.


README Badges

SlugCategoryWhat it checks
readme-badgesDocumentationThe README contains at least one badge (build status, version, license, etc.)

Badges provide at-a-glance project health information. Common badges: CI status, latest version, license type, code coverage.


README Installation

SlugCategoryWhat it checks
readme-installationDocumentationThe README includes installation instructions

Users need to know how to install or set up the project. An "Installation" or "Getting Started" section is expected.


README Usage Examples

SlugCategoryWhat it checks
readme-usageDocumentationThe README includes usage examples or code snippets

Show, don't just tell. Concrete examples help users understand how to actually use the project.


README Features

SlugCategoryWhat it checks
readme-featuresDocumentationThe README lists key features or capabilities

A features section helps users quickly evaluate if the project meets their needs.

Released under the MIT License.