◆ NFRGate / Rule Reference
πŸ›‘οΈ Code verification for the AI era

Every rule your merges are held to.

NFRGate catches missing logs, metrics, traces, and reliability gaps — static analysis plus LLM judgment, gating CI/CD before they ever reach production.

0Rules enforced
0NFR categories
0Languages
🐍 Python β˜• Java 🐹 Go

How it builds trust

The same loop SonarQube popularized for code quality — applied to non-functional requirements.

πŸ”

Static analysis

Rule-based checks for logging, metrics, tracing, and reliability on every changed Python, Java, or Go file.

πŸ€–

LLM semantic assessment

Ticket text and diff context judged against the rubric for what no static rule can catch alone.

🚦

Confidence-based routing

High-confidence failures on critical rules auto-block; everything else is flagged for human review, never dropped.

πŸ’¬

CI/CD gating

One continuously-updated PR/MR comment, with a direct link to every rule's own documentation page.

See what your team sees

One comment per PR/MR, updated on every push — not a wall of separate bot comments.

Pull Request #482 · payments-service Example
🤖 nfrgate-bot commented

NFR Gate — Static Analysis

2 fail (2 blocking) · 6 pass · 1 unclear across 4 changed files.

CRITICALR1payments/client.py:88outbound call has no timeout configured
HIGHT1payments/client.py:88call not wrapped in a trace span
PASSL2payments/client.py:102structured error log present

Rule Reference

Every rubric criterion this platform checks: what it checks, why, and (where a static evaluator exists) exactly how, per language.

πŸ“ logs
L1highNo swallowed exceptions🐹 Goβ˜• Java🐍 Python
L2mediumStructured error logs🐹 Goβ˜• Java🐍 Python
L3mediumSeverity matches reality🐹 Goβ˜• Java🐍 Python
L4mediumCorrelatable with traces🐹 Goβ˜• Java🐍 Python
πŸ“Š metrics
M1highLatency is measurable🐹 Goβ˜• Java🐍 Python
M2highOutcome is measurable🐹 Goβ˜• Java🐍 Python
M3highCardinality is bounded🐹 Goβ˜• Java🐍 Python
πŸ›‘οΈ reliability
R1criticalTimeouts are explicit🐹 Goβ˜• Java🐍 Python
R2criticalRetries back off🐹 Goβ˜• Java🐍 Python
R3highDegradation is defined🐹 Goβ˜• Java🐍 Python
πŸ” traces
T1highSpans on external calls🐹 Goβ˜• Java🐍 Python
T2mediumSpans carry useful attributes🐹 Goβ˜• Java🐍 Python
T3highContext propagates🐹 Goβ˜• Java🐍 Python
T4mediumErrors marked on the span🐹 Goβ˜• Java🐍 Python

No rules match that filter.