Evally
Engineering

Commit message check

Does the commit message match the staged diff, with no secrets or debug leftovers?

A pre-commit or CI check: the message has to describe what the diff actually does, significant unmentioned changes are flagged, and secrets or debug leftovers block the commit.

Try it live

Real calls to Jev. Pick an example or paste your own.

Examples
18
157
No verdict yet

Pick an example or paste your own input, then run it.

Under the hood

Every question and rule, in the open. Fork it to change any of them.

What it asks

Reads message and diff, then asks 5 questions in one call.

  1. Q1Message matchesYes / no

    Does the commit message accurately describe what the diff changes?

  2. Q2Unmentioned changesYes / no

    Does the diff include a significant change the message doesn't mention?

  3. Q3Debug leftoversYes / no

    Does the diff add debug output, commented-out code or temporary hacks?

  4. Q4SecretsYes / no

    Does the diff add a password, API key, token or private key?

  5. Q5TypePick one

    What kind of change is this?

    FeatureFixRefactorDocsTestsChorePerformanceOther

How it decides

Rules run in code, top to bottom. The first one that matches gives the verdict.

  1. 1
    If Secrets ≥ 0.6Block
  2. 2
    If Message matches < 0.4Amend
  3. 3
    If Unmentioned changes ≥ 0.6Amend
  4. 4
    If Debug leftovers ≥ 0.7Amend
  5. ·
    DefaultLooks good

Call it from your code

Every template runs as-is with an API key, no setup: POST /api/v1/judges/commit-check/run.

curl -X POST https://tryevally.com/api/v1/judges/commit-check/run \  -H "Authorization: Bearer $EVALLY_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "input": {    "message": "Fix typo in README",    "diff": "--- a/README.md\n+++ b/README.md\n-Instalation\n+Installation\n--- a/src/config.ts\n+++ b/src/config.ts\n+export const STRIPE_KEY = '\''sk_live_51Hc9fake0000EXAMPLE'\'';"  }}'

Seen in the wild

Community builds on Jev that use this pattern. Not affiliated with Evally.

More in Engineering