fix(skills): correct perf tool-arg names + metric/runtime inaccuracies (code-review followup)#95
Merged
Merged
Conversation
…rom xhigh code review
Verified findings from the multi-angle review of the 11 new skill playbooks
(perf tool arg names checked against internal/core/tools/perf/ source):
- perf invocations used non-existent arg keys (silently dropped at runtime):
- node-runtime: v8_inspector_targets/cpu_profile used url= → name= / target_index=
- go-runtime: go_pprof_cpu used url=/seconds= → name= / duration_seconds=
- native-perf: linux_perf_record used duration= → duration_seconds=
- capacity-scheduling: kube_*_requests/allocatable summed without a
{resource="cpu"|"memory"} matcher mixed cores and bytes — add the filter.
- slo-burn: time_to_exhaustion formula omitted the window W (dimensionless
result); add explicit read-only "never silence/edit rules" bullet; gate the
fixed output shape on T/W being known rather than invented.
- ai-inference: vllm:gpu_cache_usage_perc is a fraction in [0,1] despite the
_perc suffix — thresholds go against 1.0, not 100.
- go-runtime: mark-assist is concurrent inline work, not an STW pause; throttle
test now uses the cfs throttled/periods ratio, not a bare rate.
- node-runtime: drop the bare "node" trigger (hijacked k8s cluster-node
queries); nodejs_active_* are gauges (non-recovering rise, not monotonic);
--max-old-space-size default is memory-derived on Node ≥ 12, not ~1.5 GB.
- dotnet-runtime: LOH threshold is 85,000 bytes (~83 KB), not 85 KB.
- capacity-scheduling: mark the Recommend field as operator-applied/read-only.
Signed-off-by: rlaope <piyrw9754@gmail.com>
This was referenced May 28, 2026
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.
Summary
Applies the verified findings from an extra-high-effort multi-angle
/code-reviewof the 11 skill playbooks merged in #94. All are doc-level corrections (no Go change); the most important class — wrongperf.*argument names — was confirmed by reading the actual tool schemas ininternal/core/tools/perf/.CRITICAL — perf tool calls used non-existent arg keys (silently dropped → wrong endpoint/default window)
v8_inspector_targets/cpu_profileusedurl=→ real args arename/target_index/duration_seconds/top_n.go_pprof_cpuusedurl=/seconds=→ real argsname/duration_seconds/top_n.linux_perf_recordusedduration=→ real argduration_seconds.HIGH — PromQL / metric correctness
kube_pod_container_resource_requests/kube_node_status_allocatablesummed per node without a{resource="cpu"|"memory"}matcher mixes cores + bytes → added the filter.time_to_exhaustionomitted the SLO windowW(dimensionless result) → nowW × remaining / burn_rate.vllm:gpu_cache_usage_percis a fraction in[0,1]despite the_percsuffix → thresholds go against1.0, not100.cfs_throttled_periods/cfs_periods, not a bare rate.MEDIUM — runtime facts & routing
nodetrigger (hijacked k8s cluster-node queries like "node NotReady");nodejs_active_*are gauges (non-recovering rise, not monotonic counter);--max-old-space-sizedefault is memory-derived on Node ≥ 12, not a fixed ~1.5 GB.85,000 bytes(~83 KB), not "85 KB".LOW — read-only guard / output-shape consistency
T/Wbeing known rather than invented.Recommendfield as operator-applied/read-only (house style).Test plan
go test ./internal/core/skills/...— all 24 skills parse/loadgo test ./...— full suite greenurl=/seconds=/duration=<n>perf args in any skill bodyinternal/core/tools/perf/{pprof_cpu,linux_perf,rbspy,v8,v8_cdp}.go