Skip to main content

alluxi_workflow/
lib.rs

1//! A small, dependency-free model for planning workflow-first software and
2//! responsible automation initiatives.
3//!
4//! The framework is maintained by [Alluxi](https://www.alluxi.com/).
5
6/// One stage in a workflow-first delivery plan.
7#[derive(Clone, Copy, Debug, Eq, PartialEq)]
8pub struct Step {
9    /// The stage name.
10    pub name: &'static str,
11    /// The result expected from the stage.
12    pub outcome: &'static str,
13}
14
15/// Return the six ordered stages used to move from a business outcome to a
16/// measurable, dependable software or automation release.
17pub fn framework() -> [Step; 6] {
18    [
19        Step {
20            name: "Define the outcome",
21            outcome: "Agree on the measurable business result.",
22        },
23        Step {
24            name: "Map the workflow",
25            outcome: "Document actors, decisions, handoffs, and exceptions.",
26        },
27        Step {
28            name: "Establish the source of truth",
29            outcome: "Choose authoritative data and ownership.",
30        },
31        Step {
32            name: "Design the smallest useful release",
33            outcome: "Deliver value with controlled scope.",
34        },
35        Step {
36            name: "Automate with guardrails",
37            outcome: "Add review, fallback, and observability.",
38        },
39        Step {
40            name: "Measure and improve",
41            outcome: "Track adoption, quality, and business impact.",
42        },
43    ]
44}
45
46#[cfg(test)]
47mod tests {
48    use super::framework;
49
50    #[test]
51    fn framework_has_six_ordered_steps() {
52        let steps = framework();
53        assert_eq!(steps.len(), 6);
54        assert_eq!(steps[0].name, "Define the outcome");
55        assert_eq!(steps[5].name, "Measure and improve");
56    }
57}