Overview
vg init is your first step when adopting Vibgrate. It creates the project structure and configuration file needed for drift tracking.
Quick Start: Run vg init --baseline to initialize with a baseline in one command.
Usage
vg init [path] [options]
Options
| Flag | Type | Default | Description |
|---|---|---|---|
--baseline | boolean | false | Create an initial drift baseline after init |
--yes | boolean | false | Skip confirmation prompts (non-interactive mode) |
What It Creates
Running vg init sets up the following structure:
your-project/
├── .vibgrate/
│ ├── baseline.json # (if --baseline used)
│ └── scan_result.json # (created on first scan)
└── vibgrate.config.ts # Configuration file
Examples
Basic Initialization
# Initialize in current directory
vg init
# Initialize in specific path
vg init ./my-project
Output:
✓ Created .vibgrate/ directory
✓ Generated vibgrate.config.ts
→ Run 'vg scan' to analyze your project
Initialize with Baseline
vg init --baseline
Output:
✓ Created .vibgrate/ directory
✓ Generated vibgrate.config.ts
✓ Running initial scan...
✓ Baseline saved to .vibgrate/baseline.json
→ Commit baseline.json to version control
Non-Interactive Mode (CI/Automation)
vg init --yes --baseline
Tip: Use --yes in CI setup scripts to skip all prompts.
Generated Configuration
The generated vibgrate.config.ts provides sensible defaults:
import type { VibgrateConfig } from '@vibgrate/cli@latest';
const config: VibgrateConfig = {
// Directories to exclude from scanning
exclude: ['legacy/**', 'vendor/**', 'node_modules/**'],
// Threshold configuration for CI gates
thresholds: {
failOnError: {
eolDays: 180, // Fail if runtime EOL < 180 days
frameworkMajorLag: 3, // Fail if 3+ major versions behind
dependencyTwoPlusPercent: 50, // Fail if 50%+ deps are 2+ majors behind
},
warn: {
frameworkMajorLag: 2,
dependencyTwoPlusPercent: 30,
},
},
// Scanner configuration
scanners: {
platformMatrix: { enabled: true },
dependencyRisk: { enabled: true },
securityPosture: { enabled: true },
codeQuality: { enabled: false },
// ... additional scanners
},
};
export default config;
Alternative Config Formats
Vibgrate also supports:
| Format | File |
|---|---|
| JavaScript | vibgrate.config.js |
| JSON | vibgrate.config.json |
| TypeScript (default) | vibgrate.config.ts |
Best Practices
| Practice | Rationale |
|---|---|
| 🔄 Run on main branch first | Establishes canonical baseline |
✅ Commit vibgrate.config.ts | Shared configuration across team |
✅ Commit baseline.json | Enables CI drift comparison |
❌ Ignore scan_result.json | Transient artifact, changes each run |
Recommended .gitignore Addition
# Vibgrate artifacts
.vibgrate/scan_result.json
.vibgrate/*.sarif
Related Commands
- vg scan — Run drift analysis
- vg baseline — Create/refresh baselines
- Getting Started — Full adoption workflow