Offline · zero dependencies · no model

Offline · zero dependências · sem modelo

The reading order for pull requests that got too big.

A ordem de leitura para pull requests que cresceram demais.

Skimless turns a diff into a packet: what to read first, which files can wait, and which lines deserve a human. It stays on your machine.

O Skimless transforma um diff num pacote: o que ler primeiro, o que pode esperar, e quais linhas merecem uma pessoa. Ele fica na sua máquina.

14 files · high

Do not skim this one

Não passa o olho nesse

First pass: the public export, a live-shaped key, then the signature check.

Primeira passada: o export público, uma chave com cara de live, depois a checagem de assinatura.

  1. 01src/api/index.ts
    Public export changedExport público mudou
    ThenDepois
  2. 02src/webhooks/fixture.ts
    Secret-shaped stringString com cara de segredo
    NowAgora
  3. 03src/webhooks/verify.ts
    Signature compared with ==Assinatura comparada com ==
    NowAgora
  4. 04.github/workflows/release.yml
    Workflow grants writeWorkflow concede escrita
    NowAgora
  5. 05src/billing/invoice.ts
    Billing path changedCaminho de cobrança mudou
    ThenDepois
  6. 14src/generated/types.ts
    Generated fileArquivo gerado
    WaitEspera

A path, not a pile.

Um caminho, não uma pilha.

Story order puts the public API first, then auth, billing, migrations, and CI. Lockfiles and generated code wait at the end.

A ordem narrativa põe a API pública primeiro, depois auth, cobrança, migrações e CI. Lockfile e código gerado esperam no fim.

Reasons you can check.

Motivos que dá para checar.

Every flag names its rule. Twenty-one of them, each one a sentence, across ten languages and the common CI runners. If a rule is noisy, delete it. There is no score you cannot recompute.

Cada aviso diz qual regra disparou. São vinte e uma, cada uma numa frase, em dez linguagens e nos runners de CI mais comuns. Se uma regra faz barulho, apague. Não existe nota que você não consiga refazer.

Yours to run.

Roda com você.

One Node command. No API key. Secret-shaped strings are redacted before you attach the HTML to a pull request.

Um comando no Node. Sem chave de API. Strings com cara de segredo são redatadas antes de você anexar o HTML no pull request.

Twenty seconds

Vinte segundos

npx skimless demo
npx skimless demo --lang pt --format html --out skimless.html
npx skimless review --base origin/main --fail-on high
claude mcp add skimless -- npx -y skimless mcp

Needs Node.js 22 or newer. There are no runtime dependencies. The sample packet is also in this folder: English and Portuguese.

Precisa de Node.js 22 ou mais novo. Não há dependências de runtime. O pacote de exemplo também está nesta pasta: inglês e português.

Skimless will not notice that the sample verify.ts calls timingSafeEqual on a buffer compared with itself. You will, because the file is third.

O Skimless não percebe que o verify.ts de exemplo chama timingSafeEqual num buffer comparado com ele mesmo. Você percebe, porque o arquivo é o terceiro.