Rule Reference
Every rubric criterion this platform checks: what it checks, why, and (where a static evaluator exists) exactly how, per language.
No rules match that filter.
NFRGate catches missing logs, metrics, traces, and reliability gaps — static analysis plus LLM judgment, gating CI/CD before they ever reach production.
The same loop SonarQube popularized for code quality — applied to non-functional requirements.
Rule-based checks for logging, metrics, tracing, and reliability on every changed Python, Java, or Go file.
Ticket text and diff context judged against the rubric for what no static rule can catch alone.
High-confidence failures on critical rules auto-block; everything else is flagged for human review, never dropped.
One continuously-updated PR/MR comment, with a direct link to every rule's own documentation page.
One comment per PR/MR, updated on every push — not a wall of separate bot comments.
NFR Gate — Static Analysis
2 fail (2 blocking) · 6 pass · 1 unclear across 4 changed files.
R1payments/client.py:88outbound call has no timeout configuredT1payments/client.py:88call not wrapped in a trace spanL2payments/client.py:102structured error log presentComplete, runnable job definitions — not just the invocation line. Both read the diff, post the comment, and fail the job on a blocking violation.
name: NFRGate
on:
pull_request:
types: [opened, synchronize, reopened]
permissions:
contents: read
pull-requests: write # needed to post/update the PR comment
jobs:
nfrgate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # full history -- pr_gate.py diffs base...head, a shallow clone can't resolve an arbitrary base SHA
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install nfrgate
- name: Run NFRGate
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: python -m nfr_gate.ci.pr_gate
nfrgate:
stage: test
image: python:3.12-slim
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
variables:
GIT_DEPTH: 0 # full history, same reason as the GitHub Actions example
script:
- pip install nfrgate
- python -m nfr_gate.ci.mr_gate
Every rubric criterion this platform checks: what it checks, why, and (where a static evaluator exists) exactly how, per language.
No rules match that filter.