// SPDX-License-Identifier: AGPL-3.0-or-later
// Copyright (C) 2024-2026 SuperNovae Studio <contact@supernovae.studio>

//! Lint passes — advisory diagnostics over a parsed workflow.
//!
//! Lints are **warnings · never errors** (spec `03-dag.md` §One obvious
//! way · « the discouraged forms are legal · just not canonical »). They
//! run on the raw AST after [`crate::parse`] succeeds and are orthogonal
//! to [`crate::analyze`] (which emits spec ERRORS).
//!
//! v0.1 ships TWO rule sets · [`one_obvious_way`] — the control-flow
//! preference rules the spec marks « normative for linters » — and
//! [`arg_injection()`] — argument-injection advisories for the array command
//! form (spec `02-verbs.md` §exec Security · the differentiator).

mod arg_injection;
mod preference_rules;

pub use arg_injection::arg_injection;
pub use preference_rules::{Lint, one_obvious_way};
