<aside> <img src="/icons/new-alert_gray.svg" alt="/icons/new-alert_gray.svg" width="40px" /> Read This Before Approving Cards

This guide applies to all Maintainers, regardless of seniority, and ensures that Project Malleus can continue to pride itself on a strong peer review process. It should be read alongside the Card Submissions Guidelines document.

</aside>

Revision date: October 31, 2025.

<aside> <img src="/icons/warning_yellow.svg" alt="/icons/warning_yellow.svg" width="40px" /> Please follow these guidelines before approving cards.

</aside>

<aside> <img src="/icons/arrow-northeast_gray.svg" alt="/icons/arrow-northeast_gray.svg" width="40px" />

Tagging Resources

Tags Database

University Tags

Submission Guidelines

Recommended Resources

</aside>

General Rules

%% Malleus Card Maintainer Review Flow (clean, centered, readable)
flowchart TD
    classDef title fill:#f8f9fa,stroke:#aaa,stroke-width:2px,color:#333,font-size:20px,font-weight:bold;
    classDef section fill:#fff,stroke:#999,stroke-width:1px,corner-radius:8px,color:#222,font-size:16px;
    classDef decision fill:#eef6ff,stroke:#4472c4,stroke-width:1px,color:#111,font-size:14px;
    classDef action fill:#e8f5e9,stroke:#388e3c,stroke-width:1px,color:#111,font-size:14px;
    classDef reject fill:#fdecea,stroke:#e53935,stroke-width:1px,color:#111,font-size:14px;
    classDef escalate fill:#fff3e0,stroke:#fb8c00,stroke-width:1px,color:#111,font-size:14px;

    A0(["πŸ“ Malleus Card Maintainer Review Flow"]):::title

    subgraph PRE["πŸ”Ž 0) Pre-check"]
        direction TB
        A1["Comfortable with topic?"]:::decision
        A1 -- No --> A1a["Defer β†’ reviewer-needed / @tag someone"]:::action
        A1 -- Yes --> A2["Continue"]:::action
    end

    subgraph SCOPE["🧭 1) Scope"]
        direction TB
        B1["Card out of scope?"]:::decision
        B1 -- Yes --> B1a["Reject β†’ OUT_OF_SCOPE"]:::reject
        B1 -- No --> B2["Continue"]:::action
    end

    subgraph MIP["🎯 2) Minimum Cue Principle"]
        direction TB
        C1["Violates MIP?"]:::decision
        C1 -- Yes, cannot fix --> C1a["Reject β†’ MIP_REJECT"]:::reject
        C1 -- Yes, fixable --> C1b["Needs Remediation β†’ tighten cue"]:::action
        C1 -- No --> C2["Continue"]:::action
    end

    subgraph DUP["πŸ“‘ 3) Duplicate Check"]
        direction TB
        D1["Duplicate exists?"]:::decision
        D1 -- Yes, new worse --> D1a["Reject β†’ DUPLICATE"]:::reject
        D1 -- Yes, new better --> D1b["Ask to update canonical card β†’ Reject duplicate"]:::action
        D1 -- No --> D2["Continue"]:::action
    end

    subgraph SRC["πŸ“š 4) Sources"]
        direction TB
        E1["Source quality?"]:::decision
        E1 -- Weak but fixable --> E1a["Needs Remediation β†’ ask for AU guideline/textbook"]:::action
        E1 -- Weak & not useful --> E1b["Reject"]:::reject
        E1 -- Useful but uncertain --> E1c["Escalate β†’ escalate-evidence"]:::escalate
        E1 -- Strong --> E2["Continue"]:::action
    end

    subgraph AU["πŸ‡¦πŸ‡Ί 5) Australian Alignment"]
        direction TB
        F1["Source non-AU?"]:::decision
        F1 -- Yes, AU exists --> F1a["Needs Remediation β†’ replace/anchor to AU"]:::action
        F1 -- Yes, no AU source --> F1b["Escalate β†’ escalate-au-gap"]:::escalate
        F1 -- No --> F2["Continue"]:::action
    end

    subgraph CONFLICT["βš–οΈ 6) Conflicting AU Sources"]
        direction TB
        G1["ETG / RCH / specialty conflict?"]:::decision
        G1 -- Yes --> G1a["Use primary resource β†’ unify + tag guideline-unified"]:::action
        G1 -- No --> G2["Continue"]:::action
    end

    subgraph TAGS["🏷️ 7) Tags & Metadata"]
        direction TB
        H1["All required tags present?"]:::decision
        H1 -- Maintainer can fix --> H1a["Fix directly"]:::action
        H1 -- Unsure --> H1b["Needs Remediation"]:::action
        H1 -- Yes --> H2["Continue"]:::action
    end

    subgraph STYLE["✍️ 8) Style & Formatting"]
        direction TB
        I1["Fixable ≀2 min?"]:::decision
        I1 -- Yes --> I1a["Edit & Approve"]:::action
        I1 -- No --> I1b["Needs Remediation β†’ give examples"]:::action
    end

    subgraph TALLEY["πŸ“– 9) Talley / Screenshots"]
        direction TB
        J1["Clinical features card?"]:::decision
        J1 -- Yes --> J1a["Add Talley page + tag"]:::action
        J1 -- Missing guideline --> J1b["Add todo-add-guideline"]:::action
        J1 -- Minor omissions --> J1c["Not rejection-worthy"]:::action
    end

    subgraph UNCERT["❓ 10) Uncertainty / Sensitivity"]
        direction TB
        K1["Any uncertainty/sensitivity?"]:::decision
        K1 -- Unfamiliar specialty --> K1a["Defer β†’ reviewer-needed"]:::action
        K1 -- Conflicting/controversial --> K1b["Escalate β†’ escalate-content"]:::escalate
        K1 -- Sensitive wording --> K1c["Escalate β†’ escalate-language"]:::escalate
        K1 -- None --> K2["Continue"]:::action
    end

    subgraph FINAL["βœ… 11) Final Outcome"]
        direction TB
        L1["Determine outcome"]:::decision
        L1 --> L1a["Approve β†’ meets criteria (+minor edits)"]:::action
        L1 --> L1b["Needs Remediation β†’ submitter to fix"]:::action
        L1 --> L1c["Reject β†’ unsuitable (brief reason + pointer)"]:::reject
        L1 --> L1d["Escalate β†’ unclear evidence/sensitivity"]:::escalate
    end

    %% FLOW CONNECTIONS
    A0 --> A1
    A2 --> B1
    B2 --> C1
    C2 --> D1
    D2 --> E1
    E2 --> F1
    F2 --> G1
    G2 --> H1
    H2 --> I1
    I1 --> J1
    J1 --> K1
    K2 --> L1

    %% Center everything by adding invisible links (helps alignment)
    A0 -.-> PRE
    PRE -.-> SCOPE
    SCOPE -.-> MIP
    MIP -.-> DUP
    DUP -.-> SRC
    SRC -.-> AU
    AU -.-> CONFLICT
    CONFLICT -.-> TAGS
    TAGS -.-> STYLE
    STYLE -.-> TALLEY
    TALLEY -.-> UNCERT
    UNCERT -.-> FINAL

πŸ“ Malleus Card Maintainer Review Flow

πŸ”Ž 0) Pre-check


🧭 1) Scope

<aside> πŸ’‘

The scope of the deck is primarily final year medical students and junior medical officers (interns/residents). Content is therefore targetted a general foundational level. Some exceptions may be made, as outlined in the Submission Guidelines.

</aside>


🎯 2) Minimum Cue Principle (MIP)