Files
pbakaus_impeccable/crates/comp-verbs/src/lib.rs
T
Paul Bakaus 6a93a35293 Add human component review and prepare Impeccable 4.4.0
Carry native comp capture and completion integrity fixes into the reviewed component workflow. Bump the skill to 4.4.0 and engine/platform pins to 0.1.6; keep publication separate from this release candidate.

AI assistance: implemented and validated with OpenAI Codex.
2026-09-13 20:41:09 -07:00

53 lines
2.0 KiB
Rust

//! impeccable-comp-verbs: the four comp-fidelity verb orchestrators
//! (`comp-spec`, `comp-diff`, `font-match`, `build-phase`), ported from the
//! skill's JS scripts of the same name.
//!
//! OPEN and free of the closed `core` crate. It wires only the pure `comp`
//! foundation plus `common` (`Io`). Two things it cannot do on its own are
//! injected by the CLI so the browser (and its `core` dependency) stays out:
//!
//! - font-match's headless rendering of font specimens: a [`font_match::FontRenderer`].
//! - build-phase's organic-clip-path CSS scan (a rule that lives in `core`):
//! a [`build_phase::OrganicScan`] closure.
//!
//! The font-index catalog is resolved at run time the way concept-seed resolves
//! its catalog (`IMPECCABLE_CATALOG_DIR`, then the skill's shipped copy); it is
//! never committed to the engine repo. See [`font_match`].
pub mod build_phase;
pub mod completion;
pub mod comp_diff;
pub mod comp_spec;
pub mod font_match;
mod util;
use impeccable_common::Io;
/// `impeccable comp-spec ...`
pub fn run_comp_spec(argv: &[String], io: &mut Io) -> i32 {
comp_spec::run(argv, io)
}
/// `impeccable comp-diff ...`
pub fn run_comp_diff(argv: &[String], io: &mut Io) -> i32 {
comp_diff::run(argv, io)
}
/// `impeccable font-match ...`. `renderer` supplies the headless-browser
/// specimen rendering; pass [`font_match::NoRenderer`] where no browser is
/// available (the catalog/shortlist path owns the ranking then).
pub fn run_font_match(argv: &[String], io: &mut Io, renderer: &mut dyn font_match::FontRenderer) -> i32 {
font_match::run(argv, io, renderer)
}
/// `impeccable build-phase ...`. `organic_scan` is the injected CSS
/// organic-clip-path scanner (pass [`build_phase::no_organic_scan`] to skip it,
/// matching the JS degraded path).
pub fn run_build_phase(argv: &[String], io: &mut Io, organic_scan: build_phase::OrganicScan) -> i32 {
build_phase::run(argv, io, organic_scan)
}
pub mod asset_capture;
pub mod entry_capture;