Alurith/jeff

Catch code issues before they catch you.

Go

0

3 commits

updated Sep 18, 2026

See the code
golang
jev

See what people are saying (1)

README

jeff

Catch code issues before they catch you.

A read-only Go CLI that semantically checks your files against your rules using Jev, locally or in CI.

Usage

# Check files in the current directory or at the provided paths
jeff check [--output-format text|json] [--no-cache] [PATH...]

# Store or remove the TypeSafe credential
jeff auth login
jeff auth logout

Authentication and configuration

Set TYPESAFE_API_KEY or store a credential with jeff auth login. Stored credentials use the operating system's keyring; jeff auth logout removes the saved credential.

Use TYPESAFE_BASE_URL to point to a compatible endpoint during testing.

Current rules

CodeRuleDescription
GEN001Unclear responsibilityFinds files that mix unrelated responsibilities.
GEN002Misleading namingFinds important names that do not match their behavior or purpose.
GEN003Excessive responsibilityFinds components responsible for too many distinct concerns.
GEN004Low cohesionFinds unrelated concepts, data, or dependencies grouped together.
GEN005Hidden side effectsFinds significant side effects that are not apparent from the API.
GEN006Weak error handlingFinds errors that may be hidden, ignored, or handled unsafely.
GEN007Poor error contextFinds errors that lack useful diagnostic context.
GEN008Missing input validationFinds external or untrusted input used without adequate validation.
GEN009Implicit assumptionsFinds important assumptions that are neither enforced nor documented.
GEN010Unnecessary complexityFinds implementations that are more complex than necessary.
GEN011Premature abstractionFinds abstractions that add complexity without a clear benefit.
GEN012Inappropriate couplingFinds unnecessary coupling between distinct components or concerns.
GEN013Abstraction leakFinds abstractions that expose implementation details to callers.
GEN014Duplicated domain knowledgeFinds the same business rule or domain knowledge represented in multiple places.
GEN015Redundant commentsFinds comments that restate code without adding useful information.
GEN016Missing rationaleFinds non-obvious behavior without an explanation of why it exists.
GEN017Fragile control flowFinds control flow that is unnecessarily difficult to reason about.
GEN018Invalid state representableFinds designs that make invalid or contradictory state easy to represent.
GEN019Poor boundary separationFinds core logic mixed with infrastructure or external-system concerns.
GEN020Difficult to testFinds structures that make important behavior unnecessarily difficult to test.

CLI and CI output

Jeff is designed for both interactive CLI use and automation:

  • text output highlights failed checks and prints a summary;
  • --output-format json emits structured results and errors for CI;
  • 0 means all applicable checks passed;
  • 1 means a conclusive check found a violation and no error occurred;
  • 2 means a usage, configuration, input, provider, internal, or inconclusive result.

Jev reference documentation is available in docs/references/jev.

Contributors

Alurith

3 commits

Alurith/jeff

Catch code issues before they catch you.

Go

0

3 commits

updated Sep 18, 2026

See the code
golang
jev

See what people are saying (1)

README

jeff

Catch code issues before they catch you.

A read-only Go CLI that semantically checks your files against your rules using Jev, locally or in CI.

Usage

# Check files in the current directory or at the provided paths
jeff check [--output-format text|json] [--no-cache] [PATH...]

# Store or remove the TypeSafe credential
jeff auth login
jeff auth logout

Authentication and configuration

Set TYPESAFE_API_KEY or store a credential with jeff auth login. Stored credentials use the operating system's keyring; jeff auth logout removes the saved credential.

Use TYPESAFE_BASE_URL to point to a compatible endpoint during testing.

Current rules

CodeRuleDescription
GEN001Unclear responsibilityFinds files that mix unrelated responsibilities.
GEN002Misleading namingFinds important names that do not match their behavior or purpose.
GEN003Excessive responsibilityFinds components responsible for too many distinct concerns.
GEN004Low cohesionFinds unrelated concepts, data, or dependencies grouped together.
GEN005Hidden side effectsFinds significant side effects that are not apparent from the API.
GEN006Weak error handlingFinds errors that may be hidden, ignored, or handled unsafely.
GEN007Poor error contextFinds errors that lack useful diagnostic context.
GEN008Missing input validationFinds external or untrusted input used without adequate validation.
GEN009Implicit assumptionsFinds important assumptions that are neither enforced nor documented.
GEN010Unnecessary complexityFinds implementations that are more complex than necessary.
GEN011Premature abstractionFinds abstractions that add complexity without a clear benefit.
GEN012Inappropriate couplingFinds unnecessary coupling between distinct components or concerns.
GEN013Abstraction leakFinds abstractions that expose implementation details to callers.
GEN014Duplicated domain knowledgeFinds the same business rule or domain knowledge represented in multiple places.
GEN015Redundant commentsFinds comments that restate code without adding useful information.
GEN016Missing rationaleFinds non-obvious behavior without an explanation of why it exists.
GEN017Fragile control flowFinds control flow that is unnecessarily difficult to reason about.
GEN018Invalid state representableFinds designs that make invalid or contradictory state easy to represent.
GEN019Poor boundary separationFinds core logic mixed with infrastructure or external-system concerns.
GEN020Difficult to testFinds structures that make important behavior unnecessarily difficult to test.

CLI and CI output

Jeff is designed for both interactive CLI use and automation:

  • text output highlights failed checks and prints a summary;
  • --output-format json emits structured results and errors for CI;
  • 0 means all applicable checks passed;
  • 1 means a conclusive check found a violation and no error occurred;
  • 2 means a usage, configuration, input, provider, internal, or inconclusive result.

Jev reference documentation is available in docs/references/jev.

Contributors

Alurith

3 commits

Languages

Go

99.7%