alluxi-workflow 0.1.0

A workflow-first planning framework for dependable software and responsible automation
Documentation
//! A small, dependency-free model for planning workflow-first software and
//! responsible automation initiatives.
//!
//! The framework is maintained by [Alluxi](https://www.alluxi.com/).

/// One stage in a workflow-first delivery plan.
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct Step {
    /// The stage name.
    pub name: &'static str,
    /// The result expected from the stage.
    pub outcome: &'static str,
}

/// Return the six ordered stages used to move from a business outcome to a
/// measurable, dependable software or automation release.
pub fn framework() -> [Step; 6] {
    [
        Step {
            name: "Define the outcome",
            outcome: "Agree on the measurable business result.",
        },
        Step {
            name: "Map the workflow",
            outcome: "Document actors, decisions, handoffs, and exceptions.",
        },
        Step {
            name: "Establish the source of truth",
            outcome: "Choose authoritative data and ownership.",
        },
        Step {
            name: "Design the smallest useful release",
            outcome: "Deliver value with controlled scope.",
        },
        Step {
            name: "Automate with guardrails",
            outcome: "Add review, fallback, and observability.",
        },
        Step {
            name: "Measure and improve",
            outcome: "Track adoption, quality, and business impact.",
        },
    ]
}

#[cfg(test)]
mod tests {
    use super::framework;

    #[test]
    fn framework_has_six_ordered_steps() {
        let steps = framework();
        assert_eq!(steps.len(), 6);
        assert_eq!(steps[0].name, "Define the outcome");
        assert_eq!(steps[5].name, "Measure and improve");
    }
}