From 74e6e282f288411bb304f58da60e366ad73763cc Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Tue, 8 Sep 2026 00:26:57 +0300 Subject: [PATCH 1/4] feat(site): show four plans with prices, and fix three dead links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Pricing section pointed at github.com/marketplace/commit-check, which is a 404 — the listing is not published yet. So did two links on the GitHub App guide. All three now go to github.com/apps/commit-check, which resolves today; they move back once the listing is live. Prices are on the page rather than behind a "see the plan" link. autofix.ci deliberately keeps every number on the Marketplace, but our Pricing section already argues against $21 a seat and about $340 a month — the contrast only lands with $10 sitting next to it. Personal moves from free to $4. The App guide had promised that everything on a personal account was free "and stay free"; that sentence is gone. Adds a Terms of Service page. The Marketplace listing lists one as a resource and /terms was a 404. Adds a "Who is behind this?" FAQ entry — the eight existing ones never say who runs the hosted service, which is a fair question to have answered before paying for it. The pricing grid needed its own minmax: four cards at 15rem overflow Material's 61rem column and wrap to an unbalanced 3 + 1. --- docs/guides/github-app.md | 30 +++++++++--- docs/index.md | 41 ++++++++++++---- docs/stylesheets/landing.css | 6 +++ docs/terms.md | 94 ++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 5 files changed, 155 insertions(+), 17 deletions(-) create mode 100644 docs/terms.md diff --git a/docs/guides/github-app.md b/docs/guides/github-app.md index d400bd3..b00dd6e 100644 --- a/docs/guides/github-app.md +++ b/docs/guides/github-app.md @@ -1,13 +1,13 @@ # GitHub App -The hosted [Commit Check App](https://github.com/marketplace/commit-check) +The hosted [Commit Check App](https://github.com/apps/commit-check) runs the same rule engine as the CLI, against the same config file, with no workflow file and no CI minutes. Install it once, push, and every commit gets a **Commit Check** result that says what failed, the value that failed, and how to fix it. Not every rule applies where the App runs; the [list](#which-rules) is below. -[Install from the GitHub Marketplace](https://github.com/marketplace/commit-check){ .md-button .md-button--primary } +[Install the App](https://github.com/apps/commit-check){ .md-button .md-button--primary } Choosing between the App and the [GitHub Action](github-actions.md): see [Where to run it](integrations.md#app-or-action). Both read the same config and @@ -178,11 +178,27 @@ without a wall of red. ## Plans -Public repositories and everything on personal accounts are free, and stay -free. Today that is every repository: private repositories in organizations -are checked at no charge while the App is new, and a paid **Team** plan for -them is planned. When it arrives, a repository it applies to gets a neutral -check saying so — nothing is blocked — and this page will say so first. +Public repositories are free on any account, and stay free — that is the +**Open Source** plan. Private repositories are covered by a paid plan, each +with a 14-day free trial: + +| Plan | Price | Covers | +|---|---|---| +| Open Source | Free | Public repositories, on any account | +| Personal | $4 / month | Private repositories on a personal account | +| Team | $10 / month | Private repositories in an organization, up to 25 users | +| Business | $50 / month | Private repositories in an organization, up to 200 users | + +Today none of this is enforced: every repository is checked at no charge while +the App is new. When the plans go live, a private repository without one gets a +neutral check saying so — nothing is blocked, nothing is rejected — and this +page will say so before it happens. + +The [CLI](../getting-started.md), the [pre-commit hook](pre-commit.md), +the [GitHub Action](github-actions.md) and the [MCP server](mcp.md) are MIT +licensed and always free. If you would +rather not pay for the App on a private repository, the Action reads the same +config and reports the same rule IDs — it just costs you CI minutes instead. ## Privacy diff --git a/docs/index.md b/docs/index.md index 3af475e..5c50169 100644 --- a/docs/index.md +++ b/docs/index.md @@ -275,29 +275,40 @@ One policy engine, five places to enforce it. Every one of them reads the same ## Pricing +The CLI, the pre-commit hook, the GitHub Action and the MCP server are MIT +licensed — no account, no limits, nothing to buy. The plans below are for the +hosted GitHub App, the one surface we run for you. +
-- __Free__ +- __Open Source__ · Free --- - The CLI, the pre-commit hook, the GitHub Action and the MCP server. MIT - licensed, no account, no limits. + Public repositories, on any account. + +- __Personal__ · $4 / month - The hosted GitHub App is free too on public repositories and personal - accounts. + --- -- __Team__ + Private repositories on a personal account. 14-day free trial. + +- __Team__ · $10 / month --- - The hosted GitHub App on an organization's private repositories, with a - 14-day free trial. + Private repositories in an organization, up to 25 users. 14-day free trial. + +- __Business__ · $50 / month - [:octicons-arrow-right-24: See the plan on the Marketplace](https://github.com/marketplace/commit-check) + --- + + Private repositories in an organization, up to 200 users. 14-day free trial.
+[:octicons-arrow-right-24: Install the App](https://github.com/apps/commit-check) + Nothing is blocked while you try it. Without a config file the App reports its findings but leaves the check run neutral, and it never rejects a push — the only way Commit Check blocks a merge is if you make it a required check @@ -307,7 +318,8 @@ GitHub can enforce some of the same policies natively, but the commit-metadata rules sit behind its Enterprise plan. For a twenty-person team that is the difference between $4 and $21 a seat — about $340 a month for a regular expression, which reports a bare mismatch where Commit Check reports a rule ID, -a suggestion and a link. [The arithmetic and the honest caveats](compare/github-rules.md). +a suggestion and a link. Ten dollars is what the same twenty people cost here. +[The arithmetic and the honest caveats](compare/github-rules.md). ## Questions @@ -357,6 +369,15 @@ a suggestion and a link. [The arithmetic and the honest caveats](compare/github- GitHub Action verifies the attestation with `gh attestation verify` before it installs anything, and fails the step if verification does not pass. +??? question "Who is behind this?" + + Commit Check is written and maintained by + [Xianpeng Shen](https://github.com/shenxianpeng), who also runs the hosted + App. The engine, the Action, the App and the MCP server are open source + under the [commit-check](https://github.com/commit-check) organization — + if the hosted App ever stops, the [GitHub Action](guides/github-actions.md) + reads the same config and reports the same rule IDs. +
## Questions, bugs, contributions diff --git a/docs/stylesheets/landing.css b/docs/stylesheets/landing.css index 2cfa79e..b6e4cb1 100644 --- a/docs/stylesheets/landing.css +++ b/docs/stylesheets/landing.css @@ -193,6 +193,12 @@ list-style: none; } +/* Four plans have to fit one row inside Material's 61rem content column: + 4 x 15rem plus the gaps overflows it and wraps to an unbalanced 3 + 1. */ +.md-typeset .cc-pricing > ul:not([hidden]) { + grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); +} + .md-typeset .cc-cards > ul > li, .md-typeset .cc-pricing > ul > li { margin: 0; diff --git a/docs/terms.md b/docs/terms.md new file mode 100644 index 0000000..b651a1f --- /dev/null +++ b/docs/terms.md @@ -0,0 +1,94 @@ +# Terms of Service + +These terms cover the **Commit Check GitHub App** — the hosted service listed +on the GitHub Marketplace. The command-line tool, the pre-commit hooks, the +GitHub Action and the MCP server are not covered here: they run inside your own +environment and are governed by the [MIT +licence](https://github.com/commit-check/commit-check/blob/main/LICENSE) of the +repository you got them from. + +Installing the App means you accept these terms. + +## What the service does + +The App reads the commits of a push or pull request and the repository's +configuration file, evaluates them against the rules that file turns on, and +posts the result as a GitHub check run. That is all it does. It never writes to +your repository, never rejects a push, and never blocks a merge on its own — a +failing check only blocks a merge if you make it a +[required status check](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-status-checks-before-merging) +yourself. + +What it reads and what it stores is set out on the [privacy page](privacy.md). + +## Your side + +You are responsible for the repositories you install the App on, for the rules +you turn on, and for having the right to install it on an organization's +repositories. Do not attempt to disrupt the service — for instance by sending +traffic designed to exhaust it, or by probing it for vulnerabilities without +telling us first. If you find a security problem, please +[report it](https://github.com/commit-check/commit-check/security/policy) rather +than exploiting it. + +## Plans, billing and trials + +Public repositories are free on any account. Private repositories are covered +by a paid plan. Current prices are in the [pricing section](index.md#pricing) +of this site and on the App's GitHub Marketplace listing, which is what your +account is billed against. + +Billing, trials, renewals, cancellations and refunds are handled by GitHub +under the [GitHub Marketplace Terms of +Service](https://docs.github.com/en/site-policy/github-terms/github-marketplace-terms-of-service), +not by us. We never see your payment details. A paid plan comes with a 14-day +free trial; cancelling is done from your GitHub account's billing settings and +takes effect at the end of the current period. + +If a plan's price changes, the change applies to your account from the next +renewal, and GitHub notifies you. + +## Availability + +The App is offered as is. We aim to keep it running and to fix what breaks, but +we do not promise a level of uptime, and there is no support commitment beyond +the [issue tracker](https://github.com/commit-check/commit-check/issues). +We may change how the service works, or stop running it, with notice on this +site and on the Marketplace listing. + +If the hosted App stops being available to you, the +[GitHub Action](guides/github-actions.md) reads the same configuration file and +reports the same rule IDs. Nothing you write in `cchk.toml` is locked to the +hosted service. + +## Liability + +To the extent the law allows, the App is provided without warranty of any kind, +and we are not liable for indirect or consequential loss arising from using it +— including anything that follows from a check run that passed when you think +it should have failed, or failed when you think it should have passed. Commit +Check validates commit metadata; it is not a review, a test suite or a security +control, and it is not a substitute for any of them. + +Where liability cannot be excluded, it is limited to what you paid for the +service in the twelve months before the claim. + +## Ending it + +You can end these terms at any time by uninstalling the App from your account. +We may suspend or end an installation that breaches these terms, or that is +being used to disrupt the service. + +## Changes to these terms + +Changes are published on this page, and the date below changes with them. +Continuing to use the App after a change means you accept it. If a change +matters materially to paying accounts, we will also note it on the Marketplace +listing. + +## Contact + +[Open an issue](https://github.com/commit-check/commit-check/issues) for +anything about these terms or the service. + +_Last updated: 2026-09-07._ diff --git a/mkdocs.yml b/mkdocs.yml index cd1755e..0b0b75c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -175,6 +175,7 @@ nav: - Configuration: configuration.md - Changelog: changelog.md - Privacy: privacy.md + - Terms of Service: terms.md - Compare: - GitHub's built-in rules: compare/github-rules.md - Other tools: compare/tools.md From 72621ddc8e41080f59375850e3a16d0f75d3f3fd Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Tue, 8 Sep 2026 00:40:04 +0300 Subject: [PATCH 2/4] fix(site): drop the seat tiers, keep personal accounts free MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three plans, not four. Personal goes back to free and the paid tier loses its seat ceiling. Personal at $4 was competing against our own GitHub Action, which does the same job on a private personal repository for nothing on GitHub's free Actions allowance. Asking a solo developer for $48 a year to skip writing a ten-line workflow file was never going to convert, and the price of asking was withdrawing "and stay free" from a page that said it. That sentence is back. "Up to 25 users" and "up to 200 users" were unenforceable: the App holds no organization permissions, so it cannot read a member list, and GitHub does not check seats on a flat-rate plan. They also put a five-fold cliff at 25 — hire one person, pay $50 — and no plan at all above 200. One price for an organization, whatever its size. $19 rather than $10 because the ceiling is gone: it is the number that still has to hold for an org of three hundred. Reverts the .cc-pricing minmax; three cards fit the shared grid. --- docs/guides/github-app.md | 26 ++++++++++++++------------ docs/index.md | 18 +++++++----------- docs/stylesheets/landing.css | 6 ------ docs/terms.md | 11 ++++++----- 4 files changed, 27 insertions(+), 34 deletions(-) diff --git a/docs/guides/github-app.md b/docs/guides/github-app.md index b00dd6e..23e5105 100644 --- a/docs/guides/github-app.md +++ b/docs/guides/github-app.md @@ -178,27 +178,29 @@ without a wall of red. ## Plans -Public repositories are free on any account, and stay free — that is the -**Open Source** plan. Private repositories are covered by a paid plan, each -with a 14-day free trial: +Public repositories are free on any account, and everything on a personal +account is free, and both stay free. Only an organization's private +repositories are paid: | Plan | Price | Covers | |---|---|---| | Open Source | Free | Public repositories, on any account | -| Personal | $4 / month | Private repositories on a personal account | -| Team | $10 / month | Private repositories in an organization, up to 25 users | -| Business | $50 / month | Private repositories in an organization, up to 200 users | +| Personal | Free | Private repositories on a personal account | +| Team | $19 / month | Private repositories in an organization, 14-day free trial | + +The Team plan is not tiered by seat count. Twenty of you and twenty thousand of +you pay the same, so growing the team never changes the bill. Today none of this is enforced: every repository is checked at no charge while -the App is new. When the plans go live, a private repository without one gets a -neutral check saying so — nothing is blocked, nothing is rejected — and this -page will say so before it happens. +the App is new. When the plan goes live, a private organization repository +without it gets a neutral check saying so — nothing is blocked, nothing is +rejected — and this page will say so before it happens. The [CLI](../getting-started.md), the [pre-commit hook](pre-commit.md), the [GitHub Action](github-actions.md) and the [MCP server](mcp.md) are MIT -licensed and always free. If you would -rather not pay for the App on a private repository, the Action reads the same -config and reports the same rule IDs — it just costs you CI minutes instead. +licensed and always free. If you would rather not pay for the App on an +organization's private repositories, the Action reads the same config and +reports the same rule IDs — it just costs you CI minutes instead. ## Privacy diff --git a/docs/index.md b/docs/index.md index 5c50169..9df179a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -287,23 +287,18 @@ hosted GitHub App, the one surface we run for you. Public repositories, on any account. -- __Personal__ · $4 / month +- __Personal__ · Free --- - Private repositories on a personal account. 14-day free trial. + Private repositories on a personal account. -- __Team__ · $10 / month +- __Team__ · $19 / month --- - Private repositories in an organization, up to 25 users. 14-day free trial. - -- __Business__ · $50 / month - - --- - - Private repositories in an organization, up to 200 users. 14-day free trial. + Private repositories in an organization, however many of you there are. + 14-day free trial.
@@ -318,7 +313,8 @@ GitHub can enforce some of the same policies natively, but the commit-metadata rules sit behind its Enterprise plan. For a twenty-person team that is the difference between $4 and $21 a seat — about $340 a month for a regular expression, which reports a bare mismatch where Commit Check reports a rule ID, -a suggestion and a link. Ten dollars is what the same twenty people cost here. +a suggestion and a link. Nineteen dollars is what the same twenty people cost +here — and the same twenty thousand. [The arithmetic and the honest caveats](compare/github-rules.md). ## Questions diff --git a/docs/stylesheets/landing.css b/docs/stylesheets/landing.css index b6e4cb1..2cfa79e 100644 --- a/docs/stylesheets/landing.css +++ b/docs/stylesheets/landing.css @@ -193,12 +193,6 @@ list-style: none; } -/* Four plans have to fit one row inside Material's 61rem content column: - 4 x 15rem plus the gaps overflows it and wraps to an unbalanced 3 + 1. */ -.md-typeset .cc-pricing > ul:not([hidden]) { - grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr)); -} - .md-typeset .cc-cards > ul > li, .md-typeset .cc-pricing > ul > li { margin: 0; diff --git a/docs/terms.md b/docs/terms.md index b651a1f..c9315c5 100644 --- a/docs/terms.md +++ b/docs/terms.md @@ -33,10 +33,11 @@ than exploiting it. ## Plans, billing and trials -Public repositories are free on any account. Private repositories are covered -by a paid plan. Current prices are in the [pricing section](index.md#pricing) -of this site and on the App's GitHub Marketplace listing, which is what your -account is billed against. +Public repositories are free on any account, and so is everything on a personal +account. An organization's private repositories are covered by the Team plan. +The current price is in the [pricing section](index.md#pricing) of this site +and on the App's GitHub Marketplace listing, which is what your account is +billed against. Billing, trials, renewals, cancellations and refunds are handled by GitHub under the [GitHub Marketplace Terms of @@ -45,7 +46,7 @@ not by us. We never see your payment details. A paid plan comes with a 14-day free trial; cancelling is done from your GitHub account's billing settings and takes effect at the end of the current period. -If a plan's price changes, the change applies to your account from the next +If the price changes, the change applies to your account from the next renewal, and GitHub notifies you. ## Availability From d48fd10535f89e2ae6b2a80bd7c1d3858478c6f4 Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Tue, 8 Sep 2026 00:42:31 +0300 Subject: [PATCH 3/4] docs(terms): stop describing billing that is not live yet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page said the App is listed on the Marketplace and that billing is handled there. Neither is true today — the listing is unpublished, and the App guide says plainly that nothing is enforced. Two pages of the same site disagreeing about whether you can be charged is the wrong one to get wrong, so the billing section now opens by saying nothing is, and the rest of it moves to the future tense. Caught by CodeRabbit on #38. --- docs/terms.md | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/terms.md b/docs/terms.md index c9315c5..f5157c9 100644 --- a/docs/terms.md +++ b/docs/terms.md @@ -1,7 +1,7 @@ # Terms of Service -These terms cover the **Commit Check GitHub App** — the hosted service listed -on the GitHub Marketplace. The command-line tool, the pre-commit hooks, the +These terms cover the **Commit Check GitHub App** — the hosted service we run, +which you install onto your GitHub account. The command-line tool, the pre-commit hooks, the GitHub Action and the MCP server are not covered here: they run inside your own environment and are governed by the [MIT licence](https://github.com/commit-check/commit-check/blob/main/LICENSE) of the @@ -33,18 +33,23 @@ than exploiting it. ## Plans, billing and trials +**Nothing is charged today.** The Marketplace listing is not published yet, so +there is no plan to buy and every repository is checked at no charge. This +section describes what will apply once it is; the +[pricing section](index.md#pricing) and the +[App guide](guides/github-app.md#plans) say the same, and will say so before +anything changes. + Public repositories are free on any account, and so is everything on a personal -account. An organization's private repositories are covered by the Team plan. -The current price is in the [pricing section](index.md#pricing) of this site -and on the App's GitHub Marketplace listing, which is what your account is -billed against. +account. An organization's private repositories will be covered by the Team +plan, at the price shown in the pricing section. -Billing, trials, renewals, cancellations and refunds are handled by GitHub +Billing, trials, renewals, cancellations and refunds will be handled by GitHub under the [GitHub Marketplace Terms of Service](https://docs.github.com/en/site-policy/github-terms/github-marketplace-terms-of-service), -not by us. We never see your payment details. A paid plan comes with a 14-day -free trial; cancelling is done from your GitHub account's billing settings and -takes effect at the end of the current period. +not by us — we never see your payment details. The Team plan comes with a +14-day free trial; cancelling is done from your GitHub account's billing +settings and takes effect at the end of the current period. If the price changes, the change applies to your account from the next renewal, and GitHub notifies you. From ee2bcc5e64f11f4600670322fa0a63fbccddcbf1 Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Tue, 8 Sep 2026 00:42:41 +0300 Subject: [PATCH 4/4] style(terms): rewrap the opening paragraph --- docs/terms.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/terms.md b/docs/terms.md index f5157c9..1b9fea9 100644 --- a/docs/terms.md +++ b/docs/terms.md @@ -1,9 +1,9 @@ # Terms of Service These terms cover the **Commit Check GitHub App** — the hosted service we run, -which you install onto your GitHub account. The command-line tool, the pre-commit hooks, the -GitHub Action and the MCP server are not covered here: they run inside your own -environment and are governed by the [MIT +which you install onto your GitHub account. The command-line tool, the +pre-commit hooks, the GitHub Action and the MCP server are not covered here: +they run inside your own environment and are governed by the [MIT licence](https://github.com/commit-check/commit-check/blob/main/LICENSE) of the repository you got them from.