Domain 5 capstone: a triage runner with four outcomes, proven on planted faults
Task
Build the instrument the whole course has been heading toward: a runner that takes a symptom, walks the method, and returns a component, a next test, an escalation, or NOT DETERMINED -- then prove it by planting six faults and showing it names each one, and one it cannot.
Steps
- Write
lab/triage/rules.csvwith headersymptom_pattern,next_test,on_pass,on_fail,costwith at least fifteen rules drawn from the map in the applied lab. - Write
lab/core1-runner.shthat reads a symptom, applies the rules cheapest-first, records every step tolab/triage/session.csvwith headertimestamp,step,test,result, and ends in one of four outcomes: COMPONENT, NEXT TEST, ESCALATE, or NOT DETERMINED. - Plant six faults from across the domains -- a display input, a wrong mask, a disabled adapter, a paused print queue, a stale DNS cache, and a resolution the display cannot show -- and run the runner against each.
- Record the results in
lab/triage/proof.csvwith headerfault,outcome,named,correct,seconds, and include one case the runner CANNOT resolve, recorded with outcome NOT DETERMINED. - Revert every fault, run the runner clean, and write
lab/triage/limits.mdlisting at least six faults the runner will never resolve and why -- which is the file that keeps it from being trusted past its evidence.
Verify
awk -F, 'NR>1 && NF>=5 {n++} END {print n" triage rule(s)"}' lab/triage/rules.csv
test -s lab/core1-runner.sh && echo "runner present"
grep -c 'NOT DETERMINED' lab/core1-runner.sh
grep -c 'ESCALATE' lab/core1-runner.sh
awk -F, 'NR>1 && NF>=4 {n++} END {print n" session step(s) logged"}' lab/triage/session.csv
awk -F, 'NR>1 && NF>=5 {n++} END {print n" run(s)"}' lab/triage/proof.csv
awk -F, 'NR>1 && tolower($4)=="yes" {n++} END {print n+0" correctly named"}' lab/triage/proof.csv
awk -F, 'NR>1 && $2=="NOT DETERMINED" {n++} END {print n+0" undetermined run(s)"}' lab/triage/proof.csv
grep -c . lab/triage/limits.md
Fifteen or more rules, a runner containing both the NOT DETERMINED and ESCALATE paths, seven or more runs of which at least five are correctly named and at least one is undetermined, and six or more stated limits. A runner that named every fault has not been given a fault it cannot name, and until it has, its successes are unqualified.
Notes
The four outcomes are the whole design. A tool with two -- found it, did not find it -- will report an unresolvable fault as a wrong component, and a technician will act on that. NOT DETERMINED and ESCALATE are what make the other two believable.
This is an independent study companion for CompTIA A+ Core 1 220-1201 and is not produced by or endorsed by CompTIA.