Files
AgentHub/plugins/agenthub-workflows/skills/concurrency-report/SKILL.md
T
nntrivi2001 17d56d0e01 refactor!: rebrand CCAM to AgentHub
Clean break, no compatibility alias. Renames the product name, the CLI
binary (`ccam` -> `agenthub`), the env var prefix (`CCAM_` ->
`AGENTHUB_`), the Prometheus metric namespace (`ccam_*` ->
`agenthub_*`), the tmux session prefix (`ccam-lane-<id>` ->
`agenthub-lane-<id>`), the per-repo runtime profile directory
(`.ccam/profile` -> `.agenthub/profile`), the lanes state root
(`~/.claude/ccam-lanes` -> `~/.claude/agenthub-lanes`), the bundled
plugins (`plugins/ccam*` -> `plugins/agenthub*`) and their slash
commands (`/ccam-doctor` -> `/agenthub-doctor`, `/ccam:*` ->
`/agenthub:*`).

Because there is no alias, an existing install has to be updated by
hand: rename its `.ccam/profile` directory and any `CCAM_*` variables,
and reinstall the plugin under its new name.

Two other name families are deliberately left alone here, since they are
not just strings: the `Claude-Code-Monitor` repository/marketplace name,
and the `agent-dashboard` npm package plus its `~/.claude/agent-dashboard`
runtime directory, which holds the live database and needs a migration
rather than a rename.

Verified: server 1406/1406, client 459/459, `grep -i ccam` clean across
tracked files, `openapi.yaml` regenerated (95 paths, unchanged count).
2026-09-07 12:09:15 +07:00

54 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: >
Report concurrency and parallelism for a session — how many agents ran in
parallel, concurrency-lane utilization, peak parallel width, and
serialization bottlenecks (sequential chains that could have run as parallel
lanes) — using the Agent Monitor workflow intelligence API. Use when checking
whether a multi-agent session used parallelism efficiently.
---
# Concurrency Report
Report on parallel execution for one Claude Code session: lanes, peak width, utilization, and where work serialized.
## Input
The user provides: **$ARGUMENTS**
A session ID. If empty, fetch `GET /api/sessions?limit=1` and report on the most recent session, stating which one.
## Data Sources
| Endpoint | Returns |
|----------|---------|
| `GET /api/workflows/{sessionId}` | The `concurrency` dataset (overlapping agent execution lanes with start/end timing) and the `complexity` dataset (numeric score from depth, breadth, and tool diversity) |
## Report Sections
### 1. Parallelism Summary
From `concurrency`: number of distinct lanes, peak parallel width (max agents running simultaneously), and total agents. Pair with the `complexity` score to judge whether the parallelism matched the work's size.
`Lanes: N · Peak parallel: M · Agents: K · Complexity: S`
### 2. Lane Timeline
A per-lane list of the agents that occupied each lane in order:
`Lane 1: explore (0–12s) → code-review (12–48s)`
`Lane 2: debugger (5–30s)`
Show overlapping windows so simultaneity is visible.
### 3. Utilization
| Lane | Busy time | Idle time | Utilization % |
|------|-----------|-----------|---------------|
Plus an overall utilization figure (busy lane-time / total lane-time).
### 4. Serialization Bottlenecks
Identify sequential chains where one agent waited on the previous despite no apparent dependency — candidates to run as parallel lanes. State the chain and the wall-clock time it cost. Only flag chains the `concurrency` timing data actually shows as sequential.
## Output
- Markdown tables for utilization; a fenced list for the lane timeline.
- Durations in human units (e.g. `48s`, `2m 10s`); percentages to whole numbers.
- Use ▲/▼ when comparing utilization against an even-distribution baseline.
- Cite only timing returned by the API; never invent lane overlaps or durations.
- If the session ran a single agent (no concurrency), say so plainly rather than inventing lanes.
- If the dashboard is unreachable, tell the user to start it with `npm start` from the repo root.