ggen-engine 26.10.11

SPARQL-in-Tera code generation engine (vendored, renamed from praxis/crates/ggen)
//! Law-state operations on the project graph: load rules, materialize, validate gates, explain derivations, export.
//
// GENERATED by `ggen sync` from `schema/praxis.ttl` (`praxis:CliCommand`
// instances). Do not edit by hand: routes are a pure projection of the
// ontology (mode = Overwrite); logic lives in `crate::verbs::handlers`.

use clap_noun_verb::Result;

/// Materialize [law].rules to fixpoint and report the derived-triple count plus the post-materialization graph hash.
#[clap_noun_verb_macros::verb("derive")]
fn law_derive() -> Result<serde_json::Value> {
    crate::verbs::handlers::handle_law_derive()
}
/// Materialize and report which facts the rules derived: rules-loaded count and the full derived-triple diff (canonical N-Triples lines).
#[clap_noun_verb_macros::verb("explain")]
fn law_explain() -> Result<serde_json::Value> {
    crate::verbs::handlers::handle_law_explain()
}
/// Dump the fully materialized graph as canonical N-Triples (post-rule fixpoint), with its BLAKE3 state hash.
#[clap_noun_verb_macros::verb("export")]
fn law_export() -> Result<serde_json::Value> {
    crate::verbs::handlers::handle_law_export()
}
/// Load every [law].rules file into the `GraphLaw` engine and report the rule count per file (refuses on the first unparseable rule document).
#[clap_noun_verb_macros::verb("load")]
fn law_load() -> Result<serde_json::Value> {
    crate::verbs::handlers::handle_law_load()
}
/// Materialize rules, then run every [law].shapes SHACL gate and the denial check; any violation is a typed FM-LAW refusal (non-zero exit).
#[clap_noun_verb_macros::verb("validate")]
fn law_validate() -> Result<serde_json::Value> {
    crate::verbs::handlers::handle_law_validate()
}