Start a fresh conversation. Replace the highlighted placeholders.
Use analyze-performance to identify the top activity bottlenecks for [process scope], using [filters if any], and report up to five evidence-backed rows with mean duration, total duration or frequency where returned, scope, units, and coverage.
Required inputs
[process scope]
[filters if any]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: analyze-performancedescription: Use when investigating slow activities, waiting, handoff duration, bottlenecks or cumulative activity workload.allowed-tools: Read, AskUserQuestion
Performance: averages are not total impact
Use the shared contract and
units/filter semantics.
Reuse S, baseline F and metadata; do not request a baseline overview for an exact top-bottleneck question.
Ordered recipe
Choose the smallest entry branch:
Slow activities by mean:get_bottleneck_analysis_v2 {S,itemsPerPage:5,itemsToSkip:0,mcpFilterOptions:F}.
Omit absent F. Duration is average activity duration, already ranked descending.
Do not pass attributeName, metrics, aggregation or limit.
Cumulative activity duration: skip step 1 if this alone was requested.
From metadata take the exact Activity import attribute A; never assume its name is "Activity".
If advertised, call
get_attribute_statistics {S,attributeName:A,filterOptions:F,itemsPerPage:5,itemsToSkip:0,metricToSortBy:"TotalDuration",sortOrder:"Descending"}.
There is no _v2 suffix. For an event-level Activity, TotalDuration sums matching
events; AvgDuration is their mean. Keep EventFrequency and CaseFrequency distinct.
RelativeCaseFrequency is a ratio; overlapping activity groups' case counts are not additive.
Only for unresolved evidence, choose a targeted drilldown:
get_edges_with_metrics_v2 {S,filterOptions:F,itemsPerPage:20,itemsToSkip:0} for handoffs,
or get_cases_with_metrics_v2 {S,filterOptions:F,itemsPerPage:5,itemsToSkip:0,metricToSortBy:"WaitingTime",sortOrder:"Descending"}.
Reuse earlier compatible results. Continue relevant drilldowns/pages without fixed call or
total-row ceilings; each query must resolve missing evidence, not repeat an answered question.
Boundaries and stopping
Missing statistics: report the cumulative-measure gap, optionally average-only bottleneck evidence.
Never derive population totals from top-five averages or call a hidden statistics tool.
Edges expose no sort input: local ranking of one incomplete page is page-local, not global.
Report the native edge Duration mean; do not relabel it as an independently established waiting metric.
For a requested global edge ranking, retrieve necessary pages to complete coverage before ranking;
if coverage is incomplete, explicitly leave the global result unresolved.
Event/attribute filters retain whole cases, not just matching events.
Check timestamp imports before interpreting utilization: zero-duration conventions with
start-only data can produce nonzero ratios without measured active work. Keep raw values
and use same-scope cohort evidence; see the unit reference.
Stop once answered or evidence/capability is exhausted. Show at most five headline rows with separate
mean, total and frequency columns only when returned, scope/units and coverage.
High duration is an investigation lead, not proof of cause or a guaranteed time saving.
Mean activity duration times process case count is not total workload: cases are not activity
occurrences. Even known workload is not an intervention's removable delay.
Use the investigation method to label observations
and tested findings, retain counterevidence and identify a discriminating next check.