Skip to content

Built-in and custom adapters

Supported analyzers and the extension model for additional tools.

Built-in adapters

Ecosystem Analyzer Check Format or fix
Rust Cargo fmt ✓ format
Rust Clippy ✓ —
Swift SwiftLint ✓ fix
Swift SwiftFormat ✓ format
Android Android Lint ✓ —
Kotlin detekt ✓ —
Kotlin ktlint ✓ format
JavaScript/TypeScript ESLint ✓ fix
Astro Astro Check ✓ —
JavaScript/TypeScript Prettier ✓ format
Content CSpell ✓ —
Content Codespell ✓ fix
Content Typos ✓ fix
JavaScript/TypeScript Knip ✓ —
GitHub Actions Actionlint ✓ —
Web metadata @santi020k/og ✓ —

Cargo workspaces, Astro applications, Swift packages, Xcode projects, and Android Gradle wrappers are located independently. In a monorepo, each adapter runs from the workspace it belongs to and diagnostics remain relative to the repository root.

The santi-og adapter is enabled when a workspace declares @santi020k/og. It runs santi-og check --json, converts every missing or stale generated asset into a normalized diagnostic, and leaves regeneration to the explicit santi-og generate command. In changed-file mode, any change in that workspace triggers the package’s fast, content-aware integrity check. Run only this adapter with quality check --only santi-og; see the @santi020k/og package guide for generation, caching, and built-site auditing.

External adapters

Add an analyzer without changing the quality binary:

version: 1
output: pretty
tools: {}
custom:
  acme-lint:
    name: ACME Lint
    command: ./tools/acme-lint
    extensions: [swift, kt]
    config_files: [.acme-lint.yml]
    check_args: [scan]
    format_check_args: [format, --check]
    format_args: [format]
    fix_args: [fix]
    file_mode: append
    parser: generic

Use file_mode: append to append changed source paths to configured arguments. Use project for analyzers that must inspect the whole repository.

Supported parsers are generic, codespell, eslint-json, swiftlint-json, ktlint-json, santi-og-json, and typos-json. Generic diagnostics use:

path/to/file:line:column: warning: Message (rule-id)

External adapters participate in diagnostics, changed-file filtering, concurrent execution, GitHub annotations, SARIF, and baselines.