1---2name: observability3description: Skill for the Observability area of paddock. 105 symbols across 26 files.4---56# Observability78105 symbols | 26 files | Cohesion: 93%910## When to Use1112- Working with code in `src/`13- Understanding how detectAegisStarvation, getCurrentEntitlement, runDailyRefresh work14- Modifying observability-related functionality1516## Key Files1718| File | Symbols |19|------|---------|20| `src/lib/observability/reconciler.ts` | now, tx, cursorKey, readCursor, writeCursor (+4) |21| `src/lib/provider-entitlement-detector.ts` | detect, sortProbesByPriority, getCurrentEntitlement, persistSnapshot, runProbeChain (+3) |22| `src/lib/observability/ingest-rate-state.ts` | now, readRow, narrowState, getIngestRateState, isAllowedIngestTransition (+3) |23| `src/lib/observability/ingest-admission.ts` | now, refillPerMs, refill, getBucket, diskBand (+1) |24| `src/lib/observability/otlp-receiver.ts` | resolveClientIp, isOver401Threshold, record401, errorBody, decompressBounded (+1) |25| `src/lib/observability/posted-effect.ts` | isAllowedPostedEffectTransition, loadEffectByCanonical, correctionsExistForCanonical, deriveState, getPostedEffectState (+1) |26| `src/lib/observability/dedupe.ts` | maxNullable, maxStringNullable, firstNonNullId, confidenceOf, mergeRawEvents (+1) |27| `src/lib/observability/correction-ledger.ts` | flushOne, appendCorrection, flushCorrection, flushDueCorrections, loadCanonicalCostAndId (+1) |28| `src/lib/observability/adapter-counters.ts` | key, recordAdapterCounter, getAdapterCounter, formatAdapterCountersAsProm, snapshotAdapterCounters (+1) |29| `src/lib/observability/self-obs-metrics.ts` | identity, normalizeLabels, incrementMetric, observeHistogram, getMetricsSnapshot |3031## Entry Points3233Start here when exploring this area:3435- **`detectAegisStarvation`** (Function) — `src/lib/resource-aegis-starvation-detector.ts:77`36- **`getCurrentEntitlement`** (Function) — `src/lib/provider-entitlement-detector.ts:136`37- **`runDailyRefresh`** (Function) — `src/lib/provider-entitlement-detector.ts:229`38- **`runNearExpiryRefresh`** (Function) — `src/lib/provider-entitlement-detector.ts:261`39- **`detectInline`** (Function) — `src/lib/provider-entitlement-detector.ts:306`4041## Key Symbols4243| Symbol | Type | File | Line |44|--------|------|------|------|45| `detectAegisStarvation` | Function | `src/lib/resource-aegis-starvation-detector.ts` | 77 |46| `getCurrentEntitlement` | Function | `src/lib/provider-entitlement-detector.ts` | 136 |47| `runDailyRefresh` | Function | `src/lib/provider-entitlement-detector.ts` | 229 |48| `runNearExpiryRefresh` | Function | `src/lib/provider-entitlement-detector.ts` | 261 |49| `detectInline` | Function | `src/lib/provider-entitlement-detector.ts` | 306 |50| `incrementMetric` | Function | `src/lib/observability/self-obs-metrics.ts` | 113 |51| `observeHistogram` | Function | `src/lib/observability/self-obs-metrics.ts` | 139 |52| `getMetricsSnapshot` | Function | `src/lib/observability/self-obs-metrics.ts` | 190 |53| `getIngestRateState` | Function | `src/lib/observability/ingest-rate-state.ts` | 145 |54| `isAllowedIngestTransition` | Function | `src/lib/observability/ingest-rate-state.ts` | 164 |55| `transitionIngestRateState` | Function | `src/lib/observability/ingest-rate-state.ts` | 181 |56| `recordIngestDrop` | Function | `src/lib/observability/ingest-rate-state.ts` | 236 |57| `resetIngestDrops` | Function | `src/lib/observability/ingest-rate-state.ts` | 253 |58| `admitIngestion` | Function | `src/lib/observability/ingest-admission.ts` | 155 |59| `tx` | Function | `src/app/api/governance/ingest/[source]/resume/route.ts` | 95 |60| `handleOtlpRequest` | Function | `src/lib/observability/otlp-receiver.ts` | 140 |61| `decodeOtlpTraces` | Function | `src/lib/observability/otlp-decoder.ts` | 59 |62| `decodeOtlpMetrics` | Function | `src/lib/observability/otlp-decoder.ts` | 78 |63| `POST` | Function | `src/app/api/otlp/v1/metrics/route.ts` | 17 |64| `POST` | Function | `src/app/api/otlp/v1/traces/route.ts` | 18 |6566## Execution Flows6768| Flow | Type | Steps |69|------|------|-------|70| `POST → NormalizeLabels` | cross_community | 4 |71| `POST → Identity` | cross_community | 4 |72| `POST → NormalizeLabels` | cross_community | 4 |73| `POST → Identity` | cross_community | 4 |7475## Connected Areas7677| Area | Connections |78|------|-------------|79| Cluster_176 | 2 calls |80| Cluster_200 | 2 calls |81| Cluster_183 | 1 calls |82| [id] | 1 calls |8384## How to Explore85861. `gitnexus_context({name: "detectAegisStarvation"})` — see callers and callees872. `gitnexus_query({query: "observability"})` — find related execution flows883. Read key files listed above for implementation details