Implemented in ci-toolkit

GitHub pull request title checks

A pull request title often becomes the permanent squash-merge commit. Catch an unclear or incorrectly formatted title while the author still has the change open, instead of repairing release history later. ci-toolkit publishes a dedicated title check, so the result is visible alongside the build.

Supported in the private ci-toolkit GitHub App. Runnerless itself is in early development; signing up does not enable this feature.

How it works

01 /

Declare the title policy

Enable pull_requests.title in the default branch’s .ci-toolkit.yml. A separate ci-toolkit/pull-request-title Check Run validates the current PR title. Commit-message checking is an independent option: you can require a clean squash title without requiring every work-in-progress commit to follow that convention.

02 /

Check the title that matters

The accepted shape is <type>[optional scope][!]: <description>. A title such as fix(cache): handle an empty response communicates the change type and scope. The check produces a verdict and an explanation when the format is wrong.

03 /

Keep policy authority on the base branch

A proposed edit to the policy does not grant the same PR an exemption. Effective enforcement comes from the trusted default branch. The managed ruleset pins the App-owned check, and strict base freshness keeps the policy and merging head aligned.

A concrete example

Supported .ci-toolkit.yml

api_version: ci-toolkit/v1alpha1
pull_requests:
  title:
    format: conventional-commits

Know the boundary

Current limits

Where supported by the GitHub repository plan, the toolkit also installs a commit-message metadata rule to check the eventual merge commit. When GitHub rejects that rule, the check explains that it is the only enforcement; this fallback cannot close every title-edit window at merge time.

Common questions

Does this check every commit in the PR?

No. Enable pull_requests.commit_messages separately when individual commit headers must also follow the convention.

Can I install Runnerless for this today?

The behavior exists in the private ci-toolkit GitHub App. Runnerless early access is an interest list; it is not a generally available installation.

Runnerless / early access

Want this in
your workflow?

Get early access ↗

Register interest and tell us what slows your CI down. The optional follow-up questions come after your email is saved.