shipwithjev

Catalog / Tools & apps

0188GitHub

patdown

A fuzzy linter: Jev gives your code an ocular patdown.

tyler-dot-earth/patdownREADME ↗
# patdown

Standalone CLI that lints a tree against fuzzy rules in one markdown file. Wrap it as a hook, plugin, or extension.

The judge is swappable. The default backend currently uses TypeSafe/Jev; rules and CLI commands use a provider-neutral interface.

## Install

```
npx patdown --help
pnpm add -D patdown
```

Requires Node.js >=22.22.2. The library entry is `patdown`; rule adapters import `@patdown/rules`. The optional Pi package is `@patdown/pi`.

For GitHub Actions, prefer the composite action over copy-paste yaml:

```yaml
- uses: tyler-dot-earth/patdown@v0.7.0
  env:
    TYPESAFE_API_KEY: ${{ secrets.TYPESAFE_API_KEY }}
```

See [GitHub Actions](docs/github-actions.md). The action always runs the published CLI. Custom report shapes stay an embed of `runPatdownCli` with your own `PatdownOutput` layer ([Custom output](#custom-output)), not an action input.

## Requirements

Node.js **>=22.22.2** and pnpm **11.8.0**. CI runs checks and built-CLI smoke tests on Node 22.22.2 and Node 24. Releases through v0.2.2 require Node >=24.18.0 and use `#/` import aliases that Node 22 rejects.

## Commands

From this repo, prefer the workspace script. It builds `patdown` through Turborepo (`dependsOn: build`) and then runs the CLI from your current directory:

```
pnpm -w patdown
pnpm -w patdown -- --rules ./rules.md
pnpm -w patdown -- --rules ./packs/typescript --verbose
pnpm -w patdown -- rules
pnpm -w patdown -- ask "Is this markdown heading title case?" --input-text "# Hello World"
pnpm -w patdown -- ask "Is this urgent?" --input-text "ASAP" --verbose
pnpm -w patdown -- --yes-threshold 0.9
pnpm -w patdown -- --github-annotation warning
pnpm -w patdown -- --files src/cli.ts --files README.md
pnpm -w patdown -- --files src
pnpm -w patdown -- --files 'src/**/*.ts'
pnpm -w 

Also filed under Tools & apps

  1. 0573

    Support chat: agent offered a human escalation path

    A frustrated customer hits a bot loop twice; the judge checks whether a human handoff was offered.

    everyai-com · Tools & apps

  2. 0572

    Subscription cancel: effective date is explicit

    An agent cancels a subscription; the judge checks the exact date the cancellation takes effect.

    everyai-com · Tools & apps

  3. 0571

    Sales quote: numbers match the official price list

    An agent quotes $29/seat against a price list; the judge checks the quote matches exactly.

    everyai-com · Tools & apps

  4. 0570

    Refund chat: agent stated the amount before issuing it

    A support agent issues a $42.50 refund; the judge checks the exact amount was stated before the refund was confirmed.

    everyai-com · Tools & apps