docs(demo): call it the Test Automation Diagram everywhere
The scripts said "flow chart" while the artifact the audience is following has a name. Telling a room to follow along on the flow chart and then handing them something titled Test Automation Diagram makes them hunt for the match. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
151cd574a9
commit
5fd5e6d729
@ -6,7 +6,7 @@
|
|||||||
# hermes_triage_demo.sh status # current incident/alert state, no changes
|
# 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 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 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
|
# 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
|
# 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
|
# `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() {
|
cmd_monitor() {
|
||||||
local which="${1:-fixture}"
|
local which="${1:-fixture}"
|
||||||
[ "$which" = "code" ] && export MONITOR_JOB="$CODE_JOB"
|
[ "$which" = "code" ] && export MONITOR_JOB="$CODE_JOB"
|
||||||
|
|||||||
@ -2,9 +2,10 @@
|
|||||||
"""Narrate the triage flow live, showing every command it runs.
|
"""Narrate the triage flow live, showing every command it runs.
|
||||||
|
|
||||||
Run in a second terminal beside the demo. When a stage of
|
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
|
the service UI to look at, if one changes at that stage
|
||||||
each command, echoed before it runs, then its output
|
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.
|
assertion.
|
||||||
|
|
||||||
Two honest limits. This reports at subgraph granularity, not per node: the
|
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.
|
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.
|
system.
|
||||||
|
|
||||||
Read-only. Every command below is a read; nothing here changes the cluster.
|
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"
|
"\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]] = {
|
STAGES: dict[str, tuple[str, str, str, str]] = {
|
||||||
"detect": (
|
"detect": (
|
||||||
"Detect and gather",
|
"Detect and gather",
|
||||||
@ -135,7 +136,7 @@ def banner(key: str) -> None:
|
|||||||
subgraph, meaning, path, ui = STAGES[key]
|
subgraph, meaning, path, ui = STAGES[key]
|
||||||
print(f"\n{GREEN}{'─' * 70}{RESET}")
|
print(f"\n{GREEN}{'─' * 70}{RESET}")
|
||||||
print(f"{GREEN}{BOLD} {stamp()} {subgraph}{RESET}{GREEN} — {meaning}{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:
|
if ui:
|
||||||
print(f"{YELLOW} look at: {ui}{RESET}")
|
print(f"{YELLOW} look at: {ui}{RESET}")
|
||||||
print(f"{GREEN}{'─' * 70}{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" fault - and reads 'healthy' above because Ariadne has just patched"
|
||||||
f" it. That single field changing is the repair.{RESET}\n")
|
f" it. That single field changing is the repair.{RESET}\n")
|
||||||
if key == "outputs":
|
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" 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" here: an executed action, an escalation, or a pull request all record"
|
||||||
f" the same audit events and metrics.{RESET}")
|
f" the same audit events and metrics.{RESET}")
|
||||||
@ -349,7 +350,7 @@ def evidence_for(key: str, incident: str = "") -> None:
|
|||||||
|
|
||||||
|
|
||||||
class Monitor:
|
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:
|
def __init__(self) -> None:
|
||||||
self.done: set[str] = set()
|
self.done: set[str] = set()
|
||||||
@ -373,7 +374,7 @@ class Monitor:
|
|||||||
print(f"\n{BOLD}{YELLOW}══ incident {incident} ══{RESET}")
|
print(f"\n{BOLD}{YELLOW}══ incident {incident} ══{RESET}")
|
||||||
|
|
||||||
def checklist(self) -> None:
|
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:
|
for key in ORDER:
|
||||||
tick = f"{GREEN}✓{RESET}" if key in self.done else f"{DIM}·{RESET}"
|
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}")
|
print(f" {tick} {key:<9} {STAGES[key][0]:<22} {DIM}{STAGES[key][2]}{RESET}")
|
||||||
@ -381,7 +382,8 @@ class Monitor:
|
|||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
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"{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}Jenkins: {JENKINS}/job/{JOB}/{RESET}")
|
||||||
print(f"{YELLOW}Gitea: {GITEA}/bstein{RESET}")
|
print(f"{YELLOW}Gitea: {GITEA}/bstein{RESET}")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user