Task · SKT-0010.03

Correct the real emission divergences the fidelity audit found

Description

The genuine contradictions the 2026-08-27 report surfaced, separated from the noise. Small, concrete, and each is an emitter defect rather than a comparator one.

kubelet_pod_start_duration_seconds — synth emits the default Prometheus bucket set [0.005 … 10]; the real kubelet on the k3d capture emits [0.5, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, 1200, 1800, 2700, 3600]. A dashboard computing a pod-start latency quantile against synthkit gets a different answer shape than against a real cluster, which is exactly the defect class this audit exists to catch.

coredns_proxy_request_duration_seconds — synth stops at 2.048; reality continues to 4.096 and 8.192. Same bucket family otherwise, so this is a truncation rather than a different scheme.

kubelet_pod_worker_duration_seconds and the other k3d bucket-bound PENDINGs in the same report — establish whether they diverge too rather than fixing only the two the report ranked as contradictions.

The realism direction is one-way: the synth is corrected to the capture, never the reverse. Where the corrected bounds are not already recorded in signals/k8s.md or signals/k8s-addons.md, the captured set is recorded there with its provenance and date. Those two files are single-owner, so the correction text is handed to the wiring pass rather than edited in a lane.

Acceptance Criteria

Definition of Done

Implementation Notes

Lane L3 (2026-08-27). Both real bucket-bound divergences corrected and every other histogram family with corpus evidence checked.

CORRECTED:

CHECKED AND ALREADY MATCHING (a confirmed-correct family is a useful result, not a non-result): kubelet_pleg_relist_duration_seconds, kubelet_pleg_relist_interval_seconds (this also upgrades its signals entry from v:assumed to v:ok, resolving the other half of SK-73), kubelet_cgroup_manager_duration_seconds, kubelet_pod_worker_duration_seconds (the family the tracker specifically asked to widen to — NOT divergent), coredns_dns_request_duration_seconds, coredns_dns_request_size_bytes, coredns_dns_response_size_bytes, coredns_health_request_duration_seconds, coredns_kubernetes_dns_programming_duration_seconds.

NO CORPUS EVIDENCE: storage_operation_duration_seconds (corpus bucket_bounds empty; synth emits only the _count sibling, consistent), prober_probe_duration_seconds (absent from the k3d capture). reality-corpus/cw/*.json carries no histogram evidence at all — CloudWatch is five-stat, not bucketed.

signals/k8s.md and signals/k8s-addons.md updated by the wiring pass with the captured sets, provenance and date.

make signal-fidelity now reports zero bucket_bound_mismatch in either section (was 1 contradiction + 2 coverage-gap entries).

Final Summary

Both real bucket-bound divergences corrected, and every other histogram family with corpus evidence checked rather than only the two the report ranked as contradictions.

kubelet_pod_start_duration_seconds now emits the kubelet real 25-boundary set instead of the default Prometheus set, resolving the long-standing SK-73 divergence; a pod-start latency quantile computed against synthkit now has the same answer shape as against a real cluster. coredns_proxy_request_duration_seconds no longer truncates at 2.048 and continues through 4.096 and 8.192.

Nine further families were confirmed already matching — including kubelet_pod_worker_duration_seconds, which this task suspected — and kubelet_pleg_relist_interval_seconds moved from v: assumed to v: ok, closing the other half of SK-73. Two families carry no corpus bucket evidence and are recorded as such rather than guessed.

signals/k8s.md and signals/k8s-addons.md carry the captured sets with provenance and date. Verified: make signal-fidelity reports zero bucket_bound_mismatch in either section, down from one contradiction plus two coverage-gap entries; make gate green.

View the source file on GitHub