Usage
vg baseline [path]
What It Does
vg baseline runs a full scan and saves the result to .vibgrate/baseline.json. This snapshot becomes your reference point for measuring drift over time.
Why Baselines Matter
Without a baseline, every scan is a standalone snapshot. With a baseline:
- CI can detect regression — fail if drift worsens beyond threshold
- Teams can track improvement — compare each sprint's score to baseline
- Fitness functions work —
--drift-budgetand--drift-worseningrequire a baseline
Recommended Workflow
Step 1: Create Baseline on Main Branch
vg baseline
Commit .vibgrate/baseline.json to version control.
Step 2: Use in CI
vg scan \
--baseline .vibgrate/baseline.json \
--drift-budget 40 \
--drift-worsening 5 \
--fail-on error
Step 3: Refresh After Upgrades
vg baseline
git add .vibgrate/baseline.json
git commit -m 'chore: refresh drift baseline after upgrades'
Baseline vs Scan Artifact
| File | Purpose | Commit? |
|---|---|---|
.vibgrate/baseline.json | Reference for drift comparison | ✅ Yes |
.vibgrate/scan_result.json | Latest scan output | ❌ No (.gitignore) |
Best Practices
- Create baseline on default branch before enabling CI gates
- Refresh periodically (quarterly, or after upgrade sprints)
- Store in version control so all branches compare the same reference