diff --git a/scripts/ops/hermes_triage_demo.sh b/scripts/ops/hermes_triage_demo.sh index 042ad60f8..450c63fb1 100755 --- a/scripts/ops/hermes_triage_demo.sh +++ b/scripts/ops/hermes_triage_demo.sh @@ -6,7 +6,7 @@ # hermes_triage_demo.sh status # current incident/alert state, no changes # hermes_triage_demo.sh preflight # confirm the lab is ready to demo # hermes_triage_demo.sh reset # restore the demo to its pre-run state -# hermes_triage_demo.sh monitor [code] # stream the flow chart stages live +# hermes_triage_demo.sh monitor [code] # follow the Test Automation Diagram live # # FIRST RUN: copy hermes_triage_demo.env.example to hermes_triage_demo.env in # this directory and fill it in. That file is git-ignored precisely so it can @@ -79,7 +79,8 @@ for line in sys.stdin: } # `monitor` follows the fixture job; `monitor code` follows the code-proposal -# job, which takes the source-proposal branch of the chart instead. +# job, which takes the source-proposal branch of the Test Automation Diagram +# instead. Both narrate the same diagram, stage for stage. cmd_monitor() { local which="${1:-fixture}" [ "$which" = "code" ] && export MONITOR_JOB="$CODE_JOB" diff --git a/scripts/ops/hermes_triage_monitor.py b/scripts/ops/hermes_triage_monitor.py index ed80ad9d6..1a712e500 100755 --- a/scripts/ops/hermes_triage_monitor.py +++ b/scripts/ops/hermes_triage_monitor.py @@ -2,9 +2,10 @@ """Narrate the triage flow live, showing every command it runs. Run in a second terminal beside the demo. When a stage of -`mermaid/TestAutomation.mmd` is reached this prints, in order: +the Test Automation Diagram (`mermaid/TestAutomation.mmd`) is reached this +prints, in order: - the stage banner, naming the chart subgraph + the stage banner, naming the diagram subgraph the service UI to look at, if one changes at that stage each command, echoed before it runs, then its output @@ -14,9 +15,9 @@ reading the raw answer is the difference between a demonstration and an assertion. Two honest limits. This reports at subgraph granularity, not per node: the -chart draws the collector, response check, marker check and authorizer +diagram draws the collector, response check, marker check and authorizer separately, and a refusal here names the gate rather than walking all twelve. -And it follows one incident on one job, whereas the chart describes the whole +And it follows one incident on one job, whereas the diagram describes the whole system. Read-only. Every command below is a read; nothing here changes the cluster. @@ -48,7 +49,7 @@ BOLD, DIM, GREEN, CYAN, YELLOW, RED, RESET = ( "\033[1m", "\033[2m", "\033[32m", "\033[36m", "\033[33m", "\033[31m", "\033[0m" ) -# stage key -> (chart subgraph, what it means, chart path, UI worth showing) +# stage key -> (diagram subgraph, what it means, diagram path, UI worth showing) STAGES: dict[str, tuple[str, str, str, str]] = { "detect": ( "Detect and gather", @@ -135,7 +136,7 @@ def banner(key: str) -> None: subgraph, meaning, path, ui = STAGES[key] print(f"\n{GREEN}{'─' * 70}{RESET}") print(f"{GREEN}{BOLD} {stamp()} {subgraph}{RESET}{GREEN} — {meaning}{RESET}") - print(f"{DIM} chart: {path}{RESET}") + print(f"{DIM} diagram: {path}{RESET}") if ui: print(f"{YELLOW} look at: {ui}{RESET}") print(f"{GREEN}{'─' * 70}{RESET}") @@ -331,7 +332,7 @@ def evidence_for(key: str, incident: str = "") -> None: f" fault - and reads 'healthy' above because Ariadne has just patched" f" it. That single field changing is the repair.{RESET}\n") if key == "outputs": - print(f" {DIM}on the chart this is the 'records and artifacts' edge out of the" + print(f" {DIM}on the diagram this is the 'records and artifacts' edge out of the" f" whole Ariadne response box, not out of one branch. Every path ends" f" here: an executed action, an escalation, or a pull request all record" f" the same audit events and metrics.{RESET}") @@ -349,7 +350,7 @@ def evidence_for(key: str, incident: str = "") -> None: class Monitor: - """Track which flow-chart stage the current incident has reached.""" + """Track which Test Automation Diagram stage the current incident has reached.""" def __init__(self) -> None: self.done: set[str] = set() @@ -373,7 +374,7 @@ class Monitor: print(f"\n{BOLD}{YELLOW}══ incident {incident} ══{RESET}") def checklist(self) -> None: - print(f"\n{BOLD} flow chart progress{RESET}") + print(f"\n{BOLD} Test Automation Diagram progress{RESET}") for key in ORDER: tick = f"{GREEN}✓{RESET}" if key in self.done else f"{DIM}·{RESET}" print(f" {tick} {key:<9} {STAGES[key][0]:<22} {DIM}{STAGES[key][2]}{RESET}") @@ -381,7 +382,8 @@ class Monitor: def main() -> None: - print(f"{BOLD}Hermes triage monitor — following mermaid/TestAutomation.mmd{RESET}") + print(f"{BOLD}Hermes triage monitor — following the Test Automation Diagram" + f" (mermaid/TestAutomation.mmd){RESET}") print(f"{DIM}Every command is echoed before it runs. Read-only. Ctrl-C to stop.{RESET}") print(f"{YELLOW}Jenkins: {JENKINS}/job/{JOB}/{RESET}") print(f"{YELLOW}Gitea: {GITEA}/bstein{RESET}")