//! # pockingbird
//!
//! Report-only CLI that finds duplicate translation keys across gettext `.po`
//! catalogs.
//!
//! ## Pipeline
//!
//! ```text
//! walk → po → index → group → report
//! ```
//!
//! - [`walk`] — discover `.po` files under the configured roots.
//! - [`po`] — parse each catalog (polib) into keys and per-locale values;
//! [`locale`] derives the locale id from the path.
//! - [`index`] — build the `KeyId × locale → Cell` matrix; [`normalize`] and
//! [`fuzzy`] canonicalize cells per tier.
//! - [`group`] — tier-agnostic signature bucketing + leave-one-out over the
//! canonical matrix → [`CandidateGroup`](group::CandidateGroup)s.
//! - [`report`] — render the groups as text (colored) or json.
//!
//! [`pipeline`] is the deep core wiring these stages into a single testable run;
//! [`config`] holds the TOML schema and defaults that parameterize every stage.