From 582352325017c7aa720b1458c5722827ff032077 Mon Sep 17 00:00:00 2001 From: jenkins Date: Mon, 3 Aug 2026 04:13:59 -0300 Subject: [PATCH] fix(hermes): classify Veles as migration residue --- .../hermes/skills/triage-atlas-service-health/SKILL.md | 8 ++++++-- .../triage-atlas-service-health/references/service-map.md | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/services/hermes/skills/triage-atlas-service-health/SKILL.md b/services/hermes/skills/triage-atlas-service-health/SKILL.md index 934a29577..f3db0ff47 100644 --- a/services/hermes/skills/triage-atlas-service-health/SKILL.md +++ b/services/hermes/skills/triage-atlas-service-health/SKILL.md @@ -19,7 +19,11 @@ Investigate read-only, group symptoms into incidents, and recommend the smallest kubectl -n flux-system get kustomizations.kustomize.toolkit.fluxcd.io ``` -3. Treat Cassandra as authoritative for functionality migrated from Veles. Report Veles failures as migration residue unless a live route or dependency proves current impact. +3. Cassandra is authoritative for functionality migrated from Veles. Veles is + retired migration residue: its failed pods, old Jobs, and legacy Service or + Ingress objects are not current user impact. Escalate Veles only when direct + evidence proves Cassandra still depends on it or the Veles-to-Cassandra + redirect itself is failing. ## Decide whether the signal is actionable @@ -29,7 +33,7 @@ Use all of these checks before calling something an incident: - Persistence: ignore normal startup states under 15 minutes unless users are already affected. - Ownership: group replica pods by Deployment, StatefulSet, DaemonSet, Job, or CronJob. - Delivery: a Flux object with `Ready=null` may be reconciling; `Ready=false` or a suspended required object is actionable. -- Authority: separate current workloads from retired, migrated, or deliberately suspended resources. +- Authority: separate current workloads from retired, migrated, or deliberately suspended resources. Never describe Veles as unavailable or degraded user-facing service merely because its retained pods are unhealthy. - Correlation: confirm a red Grafana panel with the underlying metric and at least one independent source such as events, logs, readiness, or Flux state. Run the narrowest relevant checks: diff --git a/services/hermes/skills/triage-atlas-service-health/references/service-map.md b/services/hermes/skills/triage-atlas-service-health/references/service-map.md index bd43cd24d..f8eefafb7 100644 --- a/services/hermes/skills/triage-atlas-service-health/references/service-map.md +++ b/services/hermes/skills/triage-atlas-service-health/references/service-map.md @@ -7,7 +7,7 @@ Use this map for ownership and canonical names. Discover third-party services li | Cluster automation and state analysis | Ariadne / `bstein/Ariadne` | Runs in `maintenance`; provides deterministic triage bundles. | | Quality policy and CI telemetry | titan-iac / `bstein/titan-iac` | Owns Jenkins configuration, Grafana generators, alert provisioning, and Data Prepper pipeline. | | Simulation registry and execution | Cassandra / Cassandra application repository | Cassandra is authoritative after the Veles migration. | -| Legacy simulation stack | Veles | Retained migration residue; do not call it a current outage without dependency evidence. | +| Legacy simulation stack | Veles | Retired migration residue. Pod failures are not current impact; only a proven Cassandra dependency or broken redirect is actionable. | | Backup and maintenance policy | Soteria / `bstein/soteria` | Backup inventory and maintenance signals run in `maintenance`. | | Media client | Pegasus / `bstein/pegasus` | Correlate with Jellyfin and OIDC dependencies. | | Cluster sentinel | Metis / `bstein/metis` | Runs through the maintenance stack. |