Skip to main content
Raigal reads project settings from .raigal/config.yml in your repository root. Configuration files use strict schema validation validated with Zod; unexpected or misspelled keys trigger validation errors.

Complete configuration example

Here is a full .raigal/config.yml file matching the schema:

File locations and precedence

Raigal resolves configuration by searching upward from the target directory until reaching the repository root:
  1. .raigal/config.yml or .raigal/config.yaml
  2. .raigal/config.json
  3. Root files: .raigal.yml, .raigal.yaml, or .raigal.json
  4. Legacy directory paths for backward compatibility (.aislop/config.yml)

Options reference

engines

Enables or disables individual analysis engines:
  • format (boolean, default: true): whitespace, indentation, line wrapping, and import ordering.
  • lint (boolean, default: true): static analysis rules via Oxlint, Ruff, Clippy, and language tools.
  • code-quality (boolean, default: true): unused exports (Knip), dead code detection, and complexity limits.
  • ai-slop (boolean, default: true): rules detecting AI-generated anti-patterns, trivial comments, and redundant wrappers.
  • architecture (boolean, default: false): layer boundary enforcement and dependency validation.
  • security (boolean, default: true): hardcoded secrets, injection vulnerabilities, and risky APIs.

quality

Defines structural thresholds enforced by the code-quality engine:
  • maxFunctionLoc (number, default: 80): maximum physical lines of code per function.
  • maxFileLoc (number, default: 400): maximum physical lines of code per file.
  • maxNesting (number, default: 5): maximum depth of nested control flow blocks.
  • maxParams (number, default: 6): maximum parameter count per function signature.

lint

Configures language-specific compiler and diagnostic tools:
  • typecheck (boolean, default: false): runs TypeScript compiler diagnostics (tsc).
  • expoDoctor (boolean, default: false): runs Expo React Native health checks.
  • csharp: settings for C# tooling, including roslynator and JetBrains InspectCode (jb).
  • cpp: settings for C/C++ tooling (cppcheck, clangTidy).

ci

Configures automated continuous integration behavior:
  • failBelow (number, default: 70): minimum passing quality score. If a scan score falls below this value or encounters an error-level finding, raigal ci exits with code 1.
  • format ("json", default: "json"): output serialization format for CI runs.

baseline

Configures incremental regression matching against .raigal/baseline.json:
  • mode ("strict" | "relaxed", default: "relaxed"): when set to "strict", Stage 3 file-level absorption is disabled. Any finding outside the 11-line window is flagged as a blocking regression.

licensing

Defines CI behavior when entitlement verification lapses:
  • onLapse ("fail-open" | "fail-closed", default: "fail-open"): when set to "fail-closed", CI exits with code 2 if entitlement cannot be verified after the grace period.

workspace

Enforces organizational minimum standards across monorepo packages:
  • minimumFloor (number, default: 50): sets a hard lower bound on ci.failBelow that child package configs cannot lower.

scoring

Tunes scoring engine parameters:
  • thresholds: object defining CLI status boundaries.
    • good (number, default: 75): score at or above which status is labeled Healthy.
    • ok (number, default: 50): score at or above which status is labeled Needs Work. Below this, status is Critical.
  • smoothing (number, default: 5): smoothing constant added to file count to avoid disproportionate penalties in small repositories.
  • maxPerRule (number, default: 40): maximum deduction baseline allowed for any single rule before repository scale multipliers apply.
  • weights: custom category weights (defaults: security: 1.5, ai-slop: 1.0, architecture: 1.0, code-quality: 0.8, lint: 0.6, format: 0.3).

rules

A map of rule identifiers to severity overrides:
Valid severity values are "error", "warning", and "off".

exclude and include

Defines filesystem scope for all engines:
  • exclude (array of strings): paths and directories to ignore. Default: ["node_modules", ".git", "dist", "build", "coverage"].
  • include (array of strings): explicit paths to scan. When empty ([]), all non-excluded supported files are scanned.

overrides

Applies custom quality limits or rule severities to matching file patterns:

telemetry

Controls telemetry delivery to Raigal Cloud:
Set to false to disable outbound telemetry queueing.