Accepted format is [A-Za-z0-9][A-Za-z0-9._:-]{7,127}; invalid injected values fall back to generated id.
The resolved value is exported to process env SKILL_SESSION_ID to keep downstream calls consistent.
Execution Flow
Before each inspection, the CLI calls ROA API POST /api/v1/openapi/initial_sysom (source=skill_hub) to verify permissions and SysOM activation.
If SysOM is not activated or role readiness is missing, the CLI interactively asks whether to continue with activation + installation.
After user confirmation, it calls InitialSysom(check_only=false, source=skill_hub) for activation, then calls InstallAgentWithType.
After installation, it re-checks readiness using InitialSysom(check_only=true, source=skill_hub). Inspection continues only when re-check succeeds.
Local threshold/event-rule configuration is not used; anomaly decisions come from the server-side inspection report.
If --instance-id is not provided, the CLI calls ListAllInstances (region / instanceType=ecs / managedType / current / pageSize) and lets the user pick an instance interactively.
It always calls ROA inspection API POST /api/v1/inspection/createInstanceInspection with source=skill_hub, and supports optional metricSource (cms / sysom / auto).
If --metric-source is not explicitly provided, the CLI maps automatically from management status: managed -> sysom, unmanaged -> cms, unknown -> auto.
To inspect all items, pass items=[] (in CLI, provide an explicit empty --inspection-items).
If the standard inspection API returns InvalidAction.NotFound, the CLI marks the API as unavailable and stops follow-up flow to avoid invalid retries.
Report lookup uses ROA API GET /api/v1/inspection/getInspectionReport.
If create API is unavailable, the CLI still sends one GetInspectionReport probe call and records the result for observability.
If report contains sysom:metric:memory_usage_rate anomaly, the CLI automatically triggers InvokeDiagnosis for memgraph.
InvokeDiagnosis injects __sysom_diagnosis_source=skill_hub into params and validates business code=Success.
After diagnosis is started, the CLI polls GetDiagnosisResult until success / fail / timeout.
Auto diagnosis can be disabled via --disable-memgraph-diagnosis.
Extensibility Notes
Inspection items can be overridden via --inspection-items.
Instance filtering can be controlled by --managed-type (managed / unmanaged / all) and pagination args --current, --page-size.
Metric source can be specified via --metric-source (cms / sysom / auto); if omitted, default behavior is preserved.
If InitialSysom indicates not activated, the CLI asks for terminal confirmation before activation attempt + recheck.
Memory anomaly trigger logic is implemented in scripts/sysom_cli/inspection/command.py.
To add more post-inspection specialized diagnosis actions, reuse the InvokeDiagnosis integration pattern.