Count visible incidents above a severity threshold and assign the next remediation owner from that count.

visible incidents The severity threshold controls which fixed incidents stay visible for the owner decision.
derived owner The owner is assigned from the visible count alone, so the assignment stays reproducible.

Incident Owner Remediation Report

minimumSeverity
incident_owner_remediation_report.c
Replay: real traced execution (multi-file project)
#include <stdio.h>

int main(void) {
    int minimumSeverity = 2;
    int severities[4] = {1, 3, 2, 3};
    int visible = 0;

    for (int i = 0; i < 4; i++) {
        if (severities[i] >= minimumSeverity) {
            visible++;
        }
    }

    const char *owner = "lead";

    if (visible >= 3) {
        owner = "oncall";
    }

    if (visible >= 4) {
        owner = "ops";
    }

    printf("minimum=%d\n", minimumSeverity);
    printf("visible=%d\n", visible);
    printf("owner=%s\n", owner);
    return 0;
}
#include <stdio.h>

int main(void) {
    int minimumSeverity = 1;
    int severities[4] = {1, 3, 2, 3};
    int visible = 0;

    for (int i = 0; i < 4; i++) {
        if (severities[i] >= minimumSeverity) {
            visible++;
        }
    }

    const char *owner = "lead";

    if (visible >= 3) {
        owner = "oncall";
    }

    if (visible >= 4) {
        owner = "ops";
    }

    printf("minimum=%d\n", minimumSeverity);
    printf("visible=%d\n", visible);
    printf("owner=%s\n", owner);
    return 0;
}
#include <stdio.h>

int main(void) {
    int minimumSeverity = 3;
    int severities[4] = {1, 3, 2, 3};
    int visible = 0;

    for (int i = 0; i < 4; i++) {
        if (severities[i] >= minimumSeverity) {
            visible++;
        }
    }

    const char *owner = "lead";

    if (visible >= 3) {
        owner = "oncall";
    }

    if (visible >= 4) {
        owner = "ops";
    }

    printf("minimum=%d\n", minimumSeverity);
    printf("visible=%d\n", visible);
    printf("owner=%s\n", owner);
    return 0;
}
  1. minimumSeverity ← 2, severities ← ⟨addr A⟩, visible ← 0

    3int main(void) {4    int minimumSeverity→ 2 = 2; //@minimumSeverity=1, 35    int severities→ ⟨addr A⟩[4] = {1, 3, 2, 3};6    int visible→ 0 = 0;
  2. for (int i = 0; i < 4; i++)

    pass 1 of 4
    8for (int i0 = 0; i < 4; i++) {9    if (severities[i] >= minimumSeverity) {
    All 4 passes — pass 1 is the card above
    passi
    10
    21
    32
    43
  3. visible ← 1

    pass 1 of 3
    8for (int i = 0; i < 4; i++) {9    if (severities[i]3 >= minimumSeverity2) {10        visible→ 1++;11    }
    All 3 passes — pass 1 is the card above
    passseverities[i]visible
    130 1
    221 2
    332 3
  4. owner ← lead

    14const char *owner→ lead = "lead";
  5. owner ← oncall

    16if (visible3 >= 3) {17    owner→ oncall = "oncall";18}
  6. printf("minimum=%d ", minimumSeverity);

    24    printf("minimum=%d\n", minimumSeverity2);25    printf("visible=%d\n", visible3);26    printf("owner=%s\n", owneroncall);27    return 0;28}
    outputminimum=2
    visible=3
    owner=oncall
  1. minimumSeverity ← 1, severities ← ⟨addr A⟩, visible ← 0

    3int main(void) {4    int minimumSeverity→ 1 = 1;5    int severities→ ⟨addr A⟩[4] = {1, 3, 2, 3};6    int visible→ 0 = 0;
  2. for (int i = 0; i < 4; i++)

    pass 1 of 4
    8for (int i0 = 0; i < 4; i++) {9    if (severities[i] >= minimumSeverity) {
    All 4 passes — pass 1 is the card above
    passi
    10
    21
    32
    43
  3. visible ← 1

    pass 1 of 4
    8for (int i = 0; i < 4; i++) {9    if (severities[i]1 >= minimumSeverity1) {10        visible→ 1++;11    }
    All 4 passes — pass 1 is the card above
    passseverities[i]visible
    110 1
    231 2
    322 3
    433 4
  4. owner ← lead

    14const char *owner→ lead = "lead";
  5. owner ← oncall

    16if (visible4 >= 3) {17    owner→ oncall = "oncall";18}
  6. owner ← ops

    20if (visible4 >= 4) {21    owner→ ops = "ops";22}
  7. printf("minimum=%d ", minimumSeverity);

    24    printf("minimum=%d\n", minimumSeverity1);25    printf("visible=%d\n", visible4);26    printf("owner=%s\n", ownerops);27    return 0;28}
    outputminimum=1
    visible=4
    owner=ops
  1. minimumSeverity ← 3, severities ← ⟨addr A⟩, visible ← 0

    3int main(void) {4    int minimumSeverity→ 3 = 3;5    int severities→ ⟨addr A⟩[4] = {1, 3, 2, 3};6    int visible→ 0 = 0;
  2. for (int i = 0; i < 4; i++)

    pass 1 of 4
    8for (int i0 = 0; i < 4; i++) {9    if (severities[i] >= minimumSeverity) {
    All 4 passes — pass 1 is the card above
    passiseverities[i]minimumSeverityvisible
    10
    21330 1
    32
    43331 2
  3. visible ← 1

    pass 1 of 2
    8for (int i = 0; i < 4; i++) {9    if (severities[i]3 >= minimumSeverity3) {10        visible→ 1++;11    }
  4. visible ← 2

    pass 2 of 2
    8for (int i = 0; i < 4; i++) {9    if (severities[i]3 >= minimumSeverity3) {10        visible→ 2++;11    }
  5. owner ← lead

    14    const char *owner→ lead = "lead";1516    if (visible >= 3) {17        owner = "oncall";18    }1920    if (visible >= 4) {21        owner = "ops";22    }2324    printf("minimum=%d\n", minimumSeverity3);25    printf("visible=%d\n", visible2);26    printf("owner=%s\n", ownerlead);27    return 0;28}
    outputminimum=3
    visible=2
    owner=lead