Feature · CI Quality Gates
Every time someone changes a constraint, Ṛta automatically checks it in CI. If the change violates your quality rules, the merge is blocked. Same rules, same standard, for every engineer.
In plain words
It means Ṛta can automatically stop a bad or invalid SDC change from being merged into the main codebase.
What is CI? CI = Continuous Integration. Whenever someone submits a code change to GitHub, CI automatically runs checks before that change can be accepted. For Ṛta, those checks include validation, lint, and constraint quality rules.
What does "lint-clean" mean? A linter examines an SDC for constraint-quality problems: malformed syntax, inconsistent style, unsupported constructs, missing patterns, duplicate or conflicting constraints, bad naming, and project-specific policy violations.
Developer changes SDC rule/code
↓
GitHub
↓
CI starts
↓
Run Ṛta validation
↓
┌───────┴───────┐
PASS FAIL
↓ ↓
Merge allowed Merge blocked
Real-world example
Imagine 20 engineers on the same project. Engineer A writes a clock constraint. Engineer B adds another. Engineer C modifies a generated SDC. Engineer D changes a clock. Without CI, one bad constraint can slip in and nobody notices until much later.
PR #142 - Update DDR timing constraints
✓ SDC syntax
✓ Constraint lint
✓ Clock validation
✓ Coverage
✓ Conflict detection
✓ Readiness
✓ Regression comparison
Result: PASS - merge allowed
PR #143 - Modify clock constraints
✓ Syntax
✓ Lint
✗ Clock validation - 3 new violations
SDC-023 · SDC-041 · SDC-067
Result: FAIL - merge blocked
The important part
"Every generated SDC must satisfy these 50 quality rules" is a sentence in a doc. One engineer follows it, another doesn't. Quality depends on memory and mood.
Every engineer is evaluated by the same deterministic rules, every time. Trust through deterministic verification, not human assumption.
CI should have different levels of gates, not one "pass everything" wall:
Is the SDC structurally and stylistically acceptable?
Are the constraints semantically valid?
Does this comply with your team's policies?
New violations? Coverage worse? Readiness regressed?
Where it runs
Try it