Configuration reference
Generated from jevgate.schema.json,
which is generated from the configuration types. Configuration explains
how the keys work together.
| Key | Type | Meaning |
|---|---|---|
cache_ttl_secs | integer | Cache lifetime in seconds for an alias, a model name without an x.y.z version such as jev-latest; pinned versions never expire. Default: 3600. |
concurrency | integer | Most simultaneous requests; flags can only lower it. JevGate sends at most 6 at once, so a higher value means 6. Default: 6 with a TypeSafe key, 3 with an OpenRouter or Vercel AI Gateway key. |
context | list of strings | Files always sent as related evidence, like --context. |
fail_on | list of strings | The level for rules without their own, like --fail-on. Default: [“mature”], which fails only on the levels of a rule measured right at least 80% of the time on projects JevGate was never tuned on, never in a preview language, and on a custom question’s own level; jevgate rules shows them. |
generated | list of strings | Globs of generated files, which are skipped, in addition to the built-in names. |
include_tests | boolean | Judge tests, like --include-tests. Default: false. |
max_context_bytes | integer | Ceiling on context bytes per request. Default: 32768. |
max_cost | number | Ceiling on a check’s estimated spend in dollars; what is left unasked leaves the run incomplete. Flags can only lower it. Default: unlimited. |
max_file_bytes | integer | Files larger than this are reported as needs-context, never truncated. Default: 262144. |
max_requests | integer | Ceiling on API attempts per invocation; flags can only lower it. Default: unlimited. |
max_seconds | integer | Ceiling on the seconds a check asks for; what is left unasked leaves the run incomplete. Flags can only lower it. Default: 60 with --staged and --pre-push, else unlimited. |
model | string | Model, as the key’s provider names it; a pinned version keeps results repeatable. --model overrides it. Default: jev-1.13.0 with a TypeSafe key, typesafe/jev-1.13 with an OpenRouter key, typesafe-ai/jev with a Vercel AI Gateway key. |
on_incomplete | pass, fail | What a run that cannot finish exits with, like --on-incomplete: pass (exit 0, saying so on stderr) or fail (exit 2). Default: pass with --staged and --pre-push, else fail. |
question | list of tables | Custom questions: a yes/no question per convention, asked of each unit it names, whose yes is a finding. .jevgate/questions/ holds one per file, named by its id. |
rules | rules list or table | A list selects rules; a table gives each group or rule a level. Default: the default group. |
scope | list of tables | Gate levels for the files some paths match, such as report-only tooling. |
tests | list of strings | Globs of additional test files. |
upload_allow | list of strings | Globs of the paths that may be uploaded, including instruction files and context. Default: every path. |
upload_deny | list of strings | Globs never uploaded, even when allowed. |
[[scope]]
[[scope]]: gate levels for the files paths match. fail_on applies to every rule there, and rules to single rules or groups. The last scope that matches a file and addresses a rule wins; other files and rules keep the levels set outside scopes.
| Key | Type | Meaning |
|---|---|---|
fail_on | list of strings | The level for every rule in these files. |
paths | list of strings | Globs of the files this scope applies to. |
rules | object | Levels of single rules or groups in these files; off is not accepted (use upload_deny). |
[[question]]
A question as a configuration writes it.
| Key | Type | Meaning |
|---|---|---|
background | string | Why the rule exists; sent with the question. |
failing | list of tables | Examples of code that breaks the rule: jevgate rules test fails when the answer about one stays below the threshold. |
guidance | string | How to decide: what counts as a violation and what does not; sent with the question. |
id | string | Names the rule: custom/ and the id, of lowercase letters, digits and single hyphens, starting with a letter. Required in jevgate.toml; a question file’s name gives it. |
level | review, consider, note | The level of its findings, and the level at which it fails the gate unless fail_on or --fail-on says otherwise. Default: review. |
next_step | string | The next step a finding shows. Default: fix it; a person can accept it with a jevgate: allow comment and a reason. |
passing | list of tables | Examples of code that keeps the rule: jevgate rules test fails when the answer about one reaches the threshold. |
paths | list of strings | Globs of the files it applies to. Default: every file its unit applies to. For file and hunk, they can also name text files in languages JevGate does not parse. |
question | string | One yes/no question about each unit, ending in ?; yes is a violation. |
threshold | number | The probability of yes at or above which a unit breaks the rule (0.5 to 0.99); at or below one minus it, the unit is clear. Default: 0.8. |
unit | function, file, test, section, comment, hunk | What the question is asked about. |
[[question.failing]], [[question.passing]]
An example of a custom question: a file’s text that breaks or keeps its rule, written inline or read from a file.
| Key | Type | Meaning |
|---|---|---|
code | string | The example’s text: a file’s content, or for a hunk question the lines of a diff (+ added, - removed, a space unchanged). Use code or file. |
file | string | A file holding the example, relative to the repository root. It is uploaded as a checked file is: inside the repository, not hidden (except under .jevgate/questions/), and within upload_allow and upload_deny. Use code or file. |
path | string | The file the example stands for, relative to the repository root: its language, and the path Jev reads. It must match the question’s paths. Required with code; default: file. |
Levels
review, consider, mature, uncertain, report, none, off. off is accepted in [rules] only.
Rule names
maintainability/file-organization, file-organization, file_organization, maintainability/function-simplification, function-simplification, function_simplification, maintainability/shared-logic, shared-logic, shared_logic, maintainability/hardcoded-values, hardcoded-values, hardcoded_values, security/injection, injection, security/sensitive-data, sensitive-data, sensitive_data, security/unsafe-settings, unsafe-settings, unsafe_settings, security/access-control, access-control, access_control, security/workflows, workflows, tests/value, value, test_value, tests/redundancy, redundancy, test_redundancy, tests/laws, laws, documentation/agent-context, agent-context, agent_context, documentation/large-docs, large-docs, large_docs, documentation/staleness, staleness, doc_staleness, documentation/duplication, duplication, doc_duplication, documentation/comments, comments, maintainability, security, tests, documentation, default, all, and custom/<id> for each custom question.