shipwithjev

Catalog / Tools & apps

0273GitHub

jev-commit

Pre-commit hook where one Jev call judges whether the commit message matches the staged diff, flags debug leftovers and unmentioned work, and blocks only when it detects a…

valentynkit/jev-commitREADME ↗
# jev-commit

Your agent writes the code, then writes the commit message about the code. Nothing checks
that the two agree. This does, in one call to Jev, before the commit lands.



```yaml
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/valentynkit/jev-commit
    rev: v0.1.0
    hooks:
      - id: jev-commit
```

```sh
pre-commit install --hook-type commit-msg
```

Four cents per thousand commits. It warns and gets out of the way. The one thing it stops is
a credential on an added line.

## What it checks

Five questions about the message and the staged diff together, in one request. A high number
is always the bad direction.

| check | flags when |
|---|---|
| message is filler | the message makes no checkable claim: `wip`, `fix`, `update`, a bare label |
| contradicts the diff | a claim in the message is not visible in the hunks it names |
| debug leftovers | a `print` added to trace execution, a commented-out block, a hardcoded localhost, a skipped test |
| unmentioned work | a path the message never names and does not imply |
| secret shaped | a credential value written out on an added line |

```
jev-commit · 2 files · +5 −0 · ~221 tokens · 1 request
jev-1.13.0 · 19 ms · $0.00001

  message is filler      █░░░░░░░░░░░  0.07
  contradicts the diff   █████████░░░  0.79  ✗
  debug leftovers        ███████████░  0.88  ✗
  unmentioned work       █████████░░░  0.76  ✗
  secret shaped          ░░░░░░░░░░░░  0.04

  3 findings, commit allowed
```

The message promised a null check. The diff added one, plus a new endpoint and a
`print("HERE")`. The commit still lands, because a warning you cannot ignore stops being a
warning and starts being an outage.

## Why Jev and not a chat model

Jev is TypeSafe's decision model. It does not write text, it answers type

Also filed under Tools & apps

  1. 0616

    Jevstiller: distill Jev calls into a local model

    A self-hosted proxy that trains a local model on Jev's answers. It served 72% of Banking77 locally at 15 ms, with a 2% audit and a bound on disagreement.

    tomerglick57 · Tools & apps · 15 ms local

  2. 0611

    Scruple: code checks for what linters miss

    Semantic-aware linting with System One models: rules you can state in a sentence, checked against your code by Jev.

    @nalexpeae · Tools & apps

  3. 0606

    Algolia-style Postgres search with a Jev reranker

    Typo tolerance, typeahead, barcodes and facet counts in plain Postgres SQL, plus an optional Jev step that asks one question per top-10 result.

    @alex_forman1 · Tools & apps

  4. 0604

    Virtual Closet: outfits from closet videos

    built a virtual closet & outfit generator from raw closet videos. classification + semantic search thanks to jev 🥰. clueless closet dreams finally coming to life

    @maitreemervana · Tools & apps