Skip to content

Test guide

Guides lead a user through a specific task they want to accomplish, often with a sequence of steps. Writing a good guide requires thinking about what your users are trying to do.

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ffcc00', 'edgeLabelBackground':'#ffffff', 'tertiaryColor': '#f4f4f4'}}}%%
graph TD
    %% Define styles for different node types
    classDef process fill:#d1c4e9,stroke:#512da8,stroke-width:2px,color:#000;
    classDef decision fill:#ffecb3,stroke:#ff6f00,stroke-width:2px,color:#000,stroke-dasharray: 5 5;
    classDef storage fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,color:#000;
    classDef terminal fill:#ffcdd2,stroke:#d32f2f,stroke-width:4px,color:#000;
    classDef input fill:#b3e5fc,stroke:#0288d1,stroke-width:2px,color:#000;

    subgraph "Ingestion & Validation Layer"
        A1[/"Raw Signal Input"\]:::input --> A2
        A2(["Data Stream Buffer"]):::storage -.-> A3{Sanity Check}:::decision
        A3 -- Passed --> A4[["Normalize Format"]]:::process
        A3 -- Failed --> A5>Log Error & Reject]:::terminal
        A4 ==> A6[("Temporary Cache")]:::storage
    end

    subgraph "Core Processing Engine"
        B1{Route by Type}:::decision
        A6 --> B1
        B1 -- Type A --> B2(Extract Features X):::process
        B1 -- Type B --> B3(Extract Features Y):::process
        B1 -- Mixed --> B4(("Split & Parallelize")):::process
        B2 --> B5{"Confidence Score > 0.8?"}:::decision
        B3 --> B5
        B4 --> B2 & B3
        B5 -- Yes --> B6[Run Complex Model Alpha]:::process
        B5 -. No .-> B7["Fallback to Simple Model Beta"]:::process
        B6 & B7 --> B8([Aggregate Results]):::process
    end

    subgraph "Knowledge Base & Archival"
        C1[("Historical DB")]:::storage
        C2[("Pattern Library")]:::storage
        B6 -. Query .-> C2
        C2 -. Return Patterns .-> B6
        B8 == Store Record ==> C1
    end

    subgraph "Decision & Action Plane"
        D1{Is Actionable?}:::decision
        B8 --> D1
        D1 -- High Priority --> D2[("Trigger Alert System")]:::terminal
        D1 -- Low Priority --> D3(["Queue for Review"]):::storage
        D1 -- No Action --> D4(("Archive & Discard")):::terminal
        D2 -. Acknowledge .-> D5{Feedback Loop Req?}:::decision
        %% FIXED LINE BELOW: Removed the extra '\' between the node and the class
        D5 -- Yes --> D6[/Manual Override/]:::input
        D6 --> B4
        D5 -- No --> D7((End Process)):::terminal
        D3 --> D7
    end

    %% Cross-subgraph connections
    A5 -.-> D3
    C1 -.-> B7
    D6 -.-> A4

    %% Style a specific link
    linkStyle 10 stroke:#ff0000,stroke-width:2px,color:red;