mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-18 17:16:46 +03:00
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.
53 lines
2.0 KiB
Rust
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;
|