gallant
Dependency-light Go linter that applies natural-language rules to code and documents using decision models like Jev or Clef.
Overview
Gallant is a customisable linter that uses decision models such as Jev, Clef and other System One models to lint code, documents and any text files. It targets rules that are hard to express deterministically, for example whether the comments in a file merely repeat what the code says, which otherwise fall to human reviewers or slow, expensive LLMs.
The author built it as a reaction to other decision-model linters needing Python or npm runtimes, servers or many dependencies. Gallant is a single Go binary with minimal dependencies that follows Unix conventions: it works on files and paths, needs little configuration, and reads rules from .agents/gallant by default, so gallant . applies them to everything in the path. It supports a limited set of popular providers and local servers, includes recorded examples, and has fuzz targets for its hand-written parsers.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this file violate the rule (e.g. comments repeat what the code says)?(inferred) | yes · no |
How it works
- Write rules in .agents/gallant
- Run gallant . over files or diffs
- Decision model judges each file against each rule
- Report violations
Strengths
- No runtime, minimal dependencies
- Fuzzy rules beyond regex linters
- Provider choice including Clef
Caveats
- Early release (v0.1.0)
- File contents sent to the chosen provider
Getting started
go install github.com/madxmike/gallant/cmd/gallant@latest, add rules under .agents/gallant, then gallant .At a glance
- Type
- Project
- Status
- prototype
- Language
- Go
- Runtime
- CLI
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Gallant is a customizable linter built to utilize Decision Models (i.e. Jev, Clef, and other system one models) to lint your code, documents, and any other text-based files.
hellogumbo/awesome-jev
Frequently asked questions
Which models are supported?
Jev, Clef and other System One providers and popular local servers.
Where are rules stored?
In .agents/gallant by default.
Does it need Python or Node?
No, it is a single Go binary.
Related projects
Ruff-style prose linter whose semantic rules each ask Jev a yes/no question about a paragraph, title or section, with tunable thresholds.
ProjectbetaPythonNode tool that crosschecks a folder of Markdown notes for contradictions and repeats, and ranks notes by any question, using Jev.
ProjectbetaJavaScriptProse linter for AI writing tells: regex handles 18, Jev judges 15 as Nouls in one call, shipped as a Claude Code Stop hook.
HookbetaPythonProse linter with local regex rules and Jev judgment rules per paragraph, as CLI, pre-commit hook, GitHub Action and Claude Code skill.
CLIbetaTypeScriptCLI design and copy linter: mechanical checks block commits, while fuzzy taste checks go to Jev for probability-scored review notes.
CLIbetaTypeScriptChinese controlled-writing agent skill for technical reports with nine rules, using static checks plus a Jev semantic gate for certainty.
Agent skillbeta