Implement planned topic: 0023-buffered-metrics#183
Open
skill-temporal-developer-updater[bot] wants to merge 1 commit into
Open
Implement planned topic: 0023-buffered-metrics#183skill-temporal-developer-updater[bot] wants to merge 1 commit into
skill-temporal-developer-updater[bot] wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Validation Report — buffered metrics (TypeScript observability section)
Phase 1 — filled plan
{{SKILL_NAME}}: buffered-metrics (TypeScript SDK custom metric meter){{SKILL_ROOT}}:.(this skill repo)Change under validation: working-tree edit to
references/typescript/observability.md(unstaged ondraft/0023-buffered-metrics;git log main..HEADis empty — the validated work is the unstaged diff againstmain). One file touched, ~20 added lines forming a new "Custom metric meter (buffered metrics)" subsection plus a one-paragraph clarification of the two existingtelemetryOptions.metricsshapes.Integration topic? No. No
references/integrations.mdrow added; noSKILL.mdchange. Check 5 does not apply.§2 — Source of truth (filled):
../documentation/docs/docs/develop/typescript/platform/observability.mdx(cited)docs/develop/dotnet/platform/observability.mdx(cited, used as a peer-SDK pointer)https://typescript.temporal.io/for unverified token names, but does so via<!-- VERIFY: ... -->comments rather than treating the typedoc as a confirmed secondary source.Check 2 — token patterns (filled):
telemetryOptions,metrics,prometheus,bindAddress,otel,url,Runtime.install,@temporalio/worker.customMetricMeter,metricMeter,RuntimeMetricMeter,UpDownCounter, instrument-type tokensCounter,Histogram,Gauge.CustomMetricMeter,Telemetry,Metrics.Check 3 — regression table: universal patterns only. No skill-specific regression entries apply (no flags, env-vars, ports, or tcld subcommands appear in the diff).
Go / no-go
../documentation/docs/, and the marker used is non-standard — see findings)Overall verdict: MINOR FIXES — borderline RE-RUN AUTHORING.
Rationale: Check 3 is clean and Check 4 is 2/2 on the small citation set, so the bar for RE-RUN AUTHORING isn't strictly met. Check 2 has unexplained-but-self-flagged tokens (the diff acknowledges them as unverified and marks them with
<!-- VERIFY: ... -->). However, the entire "Custom metric meter (buffered metrics)" subsection makes a substantive conceptual claim about the TypeScript SDK that has no support anywhere in../documentation/docs/develop/typescript/— and the TS docs that are cited (lines 37-40) document onlyprometheusandotelshapes, with no mention of a custom metric meter or buffered metrics. The diff candidly admits this and defers token-level claims to the external typedoc. That is a transparency win but a grounding loss against §2's source of truth.Recommendation: treat as MINOR FIXES if the maintainer is comfortable shipping a self-flagged-unverified section; otherwise RE-RUN AUTHORING after the typedoc has been consulted so the section can either (a) drop to a one-line "TypeScript also supports a custom metric meter; see the typedoc" pointer, or (b) be re-grounded against the typedoc with
<!-- undocumented: source = typescript.temporal.io/... -->tags in the canonical format.Check 1 findings — citation audit
Two inline citation comments are introduced by the diff. Both resolve cleanly.
docs/develop/typescript/platform/observability.mdx:37-40telemetryOptions.metricsshapes areprometheus: { bindAddress }for scraping andotel: { url }for a gRPC OpenTelemetry collector."Runtime.install; line 39 statesmetrics: { otel: { url } }is "the URL of a gRPC OpenTelemetry collector"; line 40 statesmetrics: { prometheus: { bindAddress } }is the address for Prometheus to scrape. Exact match.docs/develop/dotnet/platform/observability.mdx:64-88CustomMetricMeter,Telemetry/Metricsproperty names) are .NET-only and must not be transcribed into the TypeScript section.Telemetry = new() { Metrics = new() { CustomMetricMeter = new CustomMetricMeter(meter) } }. Tokens are .NET-shaped (C# property syntax,Temporalio.Extensions.DiagnosticSourcenamespace), so the warning against transcription into TypeScript is correct.Pass rate: 2/2 = 100% ≥ 98% threshold. PASS.
Check 2 findings — reverse-grep audit
Tokens introduced by the diff, grouped by whether they appear in
../documentation/docs/:Found in docs (grounded)
telemetryOptions,metrics,prometheus,bindAddress,otel,url,Runtime.install,@temporalio/worker— all appear indocs/develop/typescript/platform/observability.mdxaround lines 37-48 and elsewhere.CustomMetricMeter,Telemetry,Metrics— appear indocs/develop/dotnet/platform/observability.mdx:84(the diff correctly tags these as .NET-only).Not found in
../documentation/docs/(introduced as working/unverified)UpDownCounterUpDownCounter" + standalone callout as "the newly-added instrument type that motivated this entry"<!-- VERIFY: ... -->.RuntimeMetricMeterRuntimeMetricMeter)"<!-- VERIFY: ... -->.customMetricMeter,metricMeter<!-- VERIFY: ... -->.Counter,Histogram,Gauge(as TypeScript instrument-type tokens)CustomMetricMeterclass name appears; the underlying instrument-type names are not documented in../documentation/docs/). No<!-- VERIFY ... -->tag adjacent to these three.../documentation/docs/. Presented as an alternative name for the feature without citation.Marker-format finding
The Check 2 spec accepts undocumented tokens only when marked
<!-- undocumented: source = … -->. The diff uses a different shape:<!-- VERIFY: typescript.temporal.io — confirm ... -->. Functionally similar (it tells the reader the token is unverified and points to an external source) but not the canonical tag format. A downstream grounded-check tool keyed to the canonical tag will treat these as bare unexplained tokens.Structural finding (more severe than the per-token misses)
The conceptual claim — "the TypeScript SDK supports an in-process custom metric meter ('buffered metrics')" — has no grounding citation in the TypeScript subtree. The cited line range
docs/develop/typescript/platform/observability.mdx:37-40enumerates onlyprometheusandotelas the two documented shapes; a custom metric meter is not mentioned there or elsewhere indocs/develop/typescript/platform/observability.mdx. The author justifies the claim by analogy to the .NET docs and by reference to upstream release notes that are not in../documentation/docs/. Per §2 this falls outside the declared source of truth.Verdict: Check 2 FAIL at the strict reading. The MINOR-FIXES carve-out in §5 ("≤ 5 unexplained misses that look like typos or missing citation comments") arguably applies if you count
Counter/Histogram/Gauge+buffered metricsas four missing-tag cases (the four<!-- VERIFY ... -->items being treated as informally tagged), but the structural miss — a whole concept asserted without TS-docs support — is closer to a §6 grounding shortfall than a typo.Check 3 findings — regression on known bugs
Searched the diff for all seven universal regression patterns:
--profile,TEMPORAL_TLS_CLIENT_CERT_PATH,TEMPORAL_TLS_CLIENT_KEY_PATH,TEMPORAL_TLS_SERVER_CA_CERT_PATH,tcld service-account,--output text/--output jsonl,saas-api.tmprl.cloud:7233. Zero hits. The diff is in TypeScript runtime territory and touches none of the CLI/TLS surfaces these patterns cover.PASS.
Check 4 findings — sampled re-verification
The diff introduces only two doc citations, so the full population was sampled (sample size = 2; sampling rate = 100%).
Sample 1 — TS observability:37-40. Independent reading of lines 37-40 yields: Runtime.install accepts telemetry options; the two
metricsshapes documented at this location aremetrics: { otel: { url } }(gRPC OpenTelemetry collector URL) andmetrics: { prometheus: { bindAddress } }(Prometheus scrape address). The authored sentence — "The two documentedtelemetryOptions.metricsshapes areprometheus: { bindAddress }for scraping andotel: { url }for a gRPC OpenTelemetry collector" — matches to the level a reader following either version would behave identically. Match.Sample 2 — .NET observability:64-88. Independent reading: lines 64-88 form the .NET "Set a custom metric meter" section; the example wires a custom meter via
Telemetry.Metrics.CustomMetricMeter = new CustomMetricMeter(meter)fromTemporalio.Extensions.DiagnosticSource. The authored claim — that this is the .NET expression of a cross-SDK concept and that its specific tokens (CustomMetricMeter,Telemetry/Metricsproperty names) are .NET-only and must not be transcribed into the TypeScript section — matches. Match.Match rate: 2/2 = 100% ≥ 95% threshold. PASS (with the caveat that the sample population is small: only two grounded claims were available to sample because most assertions in the new subsection are deferred to the external typedoc via
<!-- VERIFY ... -->markers rather than carrying inline citations).Check 5 findings — integration-layout audit
N/A. This topic is not a third-party integration. No
references/integrations.mdrow was added, no per-integration file was created underreferences/typescript/integrations/, and noSKILL.mdedit appears in the diff. None of the five Check 5 sub-checks apply.Statistics
references/typescript/observability.md, working tree only — branch is at the same SHA as main).telemetryOptions,metrics,prometheus,bindAddress,otel,url,Runtime.install,@temporalio/worker; plusCustomMetricMeter,Telemetry,Metricsconfined to the .NET-tagged sentence).UpDownCounter,RuntimeMetricMeter,customMetricMeter,metricMeter, the TS-side instrument-type tokensCounter/Histogram/Gaugecollectively, "buffered metrics").<!-- VERIFY: ... -->comments (non-standard but informative); two (Counter/Histogram/Gaugeand "buffered metrics") have no adjacent marker.Summary for the maintainer
The two sentences that do carry citations are clean, and the diff is free of the universal regression bugs. The conceptual section it adds, however, leans on sources outside §2's declared source of truth: an external typedoc and unstated upstream release notes. The author was unusually transparent about that — the
<!-- VERIFY ... -->comments, the explicit "working names" disclaimer, and the deliberate decision to omit a code sample all signal "this is a stub". A grounded follow-up pass that consults the typedoc and either (a) shrinks the section to a one-line pointer, or (b) converts each<!-- VERIFY ... -->into a canonical<!-- undocumented: source = … -->tag with a concrete URL anchor, would close the Check 2 gap and lift the verdict to GO.