diff --git a/skills/canonical/gds-ci-performance-verify/SKILL.md b/skills/canonical/gds-ci-performance-verify/SKILL.md index c49bc31..3447cdf 100644 --- a/skills/canonical/gds-ci-performance-verify/SKILL.md +++ b/skills/canonical/gds-ci-performance-verify/SKILL.md @@ -30,6 +30,10 @@ Verify performance with comparable evidence rather than isolated job duration. Use only naturally occurring project runs; never create synthetic, benchmark, soak, canary, rerun, or empty-commit traffic to fill a cohort. 3. Decompose median, p90, and p95 latency into queue, provision, setup, execute, upload/deploy, and teardown stages. + Use `queue.assigned`/`queue.running` spans for queue lifecycle and + `provider.create_instance`/`provider.delete_instance` for provisioning and + teardown. Join by `runner_name`; retain `queue_job_uuid`, workflow run and + `incus_member` so member pressure is not attributed to the services host. 4. Compare throughput, utilization, success, retry, infrastructure-failure, flaky-failure, and missing-telemetry rates. 5. Identify critical-path changes and resource contention; keep priority classes separate. 6. Reject conclusions with insufficient samples or incomparable cohorts and label them `NOT_PROVEN`. diff --git a/skills/canonical/gds-drakkars-audit-fleet/SKILL.md b/skills/canonical/gds-drakkars-audit-fleet/SKILL.md index 07e1626..94aa988 100644 --- a/skills/canonical/gds-drakkars-audit-fleet/SKILL.md +++ b/skills/canonical/gds-drakkars-audit-fleet/SKILL.md @@ -37,7 +37,17 @@ Explain fleet health and bottlenecks from correlated, time-bounded evidence. correlation fields. Distinguish the bounded pre-reconciliation account-only window from intent records that remain unbound after authoritative queued and already-running reconciliation. -7. Separate confirmed faults, saturation, waste, and `NOT_PROVEN` gaps. + Treat `gha_fleet_queue_missing_runner_request_id` as incomplete + pre-execution correlation only. A running direct-JIT job with UUID, + workflow-run, numeric GitHub-runner and runner-name identity belongs to + `gha_fleet_queue_direct_jit_without_runner_request_id`; GitHub emits no + AcquireJobs request ID for that path. +7. In OpenObserve, query job-start logs by `msg = 'job correlation accepted'`. + Join `github_*`, `runner_name` and `instance_name` to `fleet_traces` using + trace search type `traces`; queue spans expose `queue_job_uuid`, while + provider spans expose `incus_member`. Do not use the provider process + resource host as the compute placement member. +8. Separate confirmed faults, saturation, waste, and `NOT_PROVEN` gaps. ## Safety diff --git a/skills/canonical/gds-drakkars-triage-run/SKILL.md b/skills/canonical/gds-drakkars-triage-run/SKILL.md index 7559f92..02fcb11 100644 --- a/skills/canonical/gds-drakkars-triage-run/SKILL.md +++ b/skills/canonical/gds-drakkars-triage-run/SKILL.md @@ -26,12 +26,26 @@ Trace one run from event receipt to terminal result without changing state. ## Workflow 1. Capture repository, run, attempt, job, event, requested labels, commit, and timestamps. -2. Follow the same identifiers through admission, priority, assignment, provisioning, runner registration, setup, execution, upload, and teardown. +2. Follow the same identifiers through admission, priority, assignment, + provisioning, runner registration, setup, execution, upload, and teardown. + Start from the native job-start log fields (`github_repository`, + `github_workflow_run_id`, `github_run_attempt`, `github_job_name`, + `github_workflow_ref`, `github_commit_sha`, `runner_name`, `instance_name`). + Join traces by `runner_name`: `queue.*` supplies `queue_job_uuid`, and + provider create/delete supplies `incus_member`. 3. Locate the first abnormal stage; distinguish queue pressure, missing capability, infrastructure failure, deterministic test failure, flaky failure, timeout, and observability loss. 4. Compare with adjacent successful runs using the same workflow and toolchain. 5. If a transient infrastructure error is proven, recommend a bounded rerun; do not execute it here. 6. Preserve running jobs and label unsupported claims `NOT_PROVEN`. +## Direct-JIT identity + +Do not require `github_runner_request_id` from a running direct-JIT job. It is +an AcquireJobs identity GitHub does not emit on that path. Require queue UUID, +workflow run, numeric GitHub runner, runner name and instance/member correlation +instead. A missing request ID remains actionable only before the execution path +has converged or when those authoritative identities are also absent. + ## Output Return the causal timeline, first failing stage, supporting links or private evidence locations, impact, and safest recovery path.