duende-policy

Crates.ioduende-policy
lib.rsduende-policy
version0.2.0
created_at2026-01-06 14:09:30.702122+00
updated_at2026-01-13 12:17:11.396598+00
descriptionPolicy enforcement for Duende (quality gates, circuit breakers, resource limits)
homepage
repositoryhttps://github.com/paiml/duende
max_upload_size
id2025930
size118,109
Noah Gift (noahgift)

documentation

README

duende-policy

Policy enforcement for the Duende daemon framework.

Crates.io Documentation License

Overview

This crate provides policy enforcement mechanisms:

  • Quality gates: PMAT-based code quality enforcement
  • Circuit breakers: 3-state failure protection (Closed, Open, Half-Open)
  • Resource limiters: cgroups/setrlimit enforcement
  • Jidoka automation: Stop-on-error with recommendations

Usage

Circuit Breaker

use duende_policy::{CircuitBreaker, CircuitState};
use std::time::Duration;

let mut breaker = CircuitBreaker::new(5, Duration::from_secs(30));

if breaker.allow() {
    match do_work().await {
        Ok(_) => breaker.record_success(),
        Err(_) => breaker.record_failure(),
    }
}

Jidoka Quality Gate

use duende_policy::{JidokaGate, JidokaCheck};

let gate = JidokaGate::new(vec![
    JidokaCheck::coverage(95.0),
    JidokaCheck::mutation_score(80.0),
    JidokaCheck::zero_satd(),
]);

match gate.check(&daemon) {
    JidokaResult::Pass => println!("Quality gate passed"),
    JidokaResult::Stop { violations, .. } => {
        eprintln!("Quality gate failed: {:?}", violations);
    }
}

Iron Lotus Framework

  • Jidoka (自働化): Automatic stop on quality violations
  • Poka-Yoke (ポカヨケ): Mistake-proofing via policy enforcement
  • Standardized Work (標準作業): Consistent policy application

License

MIT OR Apache-2.0

Commit count: 20

cargo fmt