{ "title": "Workflows", "subtitle": "Agent orchestration intelligence", "failedLoad": "Failed to load workflow data", "filteredBy": "Filtered by:", "clearFilter": "Clear filter", "refreshData": "Refresh data", "exportJson": "Export as JSON", "allSessions": "All Sessions", "activeOnly": "Active Only", "completed": "Completed", "runs": { "title": "Dynamic Workflows", "subtitle": "Fleets spawned by the Workflow tool, reconstructed from on-disk run journals", "sessionTitle": "Dynamic Workflows", "loading": "Loading dynamic workflows…", "empty": "No dynamic workflows yet. Runs from the Workflow tool appear here once their journal is written (at completion).", "noAgents": "No inner agents recorded for this run.", "openSession": "Open parent session", "filterPhase": "Filter by phase", "clearFilter": "Clear", "resultsLabel": "Results", "promptLabel": "Prompt", "resultLabel": "Result", "loadingFull": "Loading full text…", "tokens": "tokens", "agents_one": "{{count}} agent", "agents_other": "{{count}} agents", "tools_one": "{{count}} tool call", "tools_other": "{{count}} tool calls", "status": { "running": "Running", "working": "Running", "queued": "Queued", "completed": "Completed", "done": "Done", "success": "Done", "error": "Error", "failed": "Failed" }, "col": { "agent": "Agent", "phase": "Phase", "state": "State", "tokens": "Tokens", "tools": "Tools", "duration": "Duration" } }, "chartInfo": { "labels": { "what": "What this shows", "howToRead": "How to read it", "why": "Why it matters" }, "orchestration": { "what": "A layered DAG of how Claude Code sessions fan out: from the originating sessions, into the main agent, into each subagent type, through any context compactions, and finally into terminal outcomes (completed / error / abandoned).", "howToRead": "Each column is one layer. Box width is constant; the small badge is the count. Edges flow left-to-right; thicker edges = more frequent transitions. Hover any node for stats; click to filter the rest of the page by it.", "why": "Use it to answer 'where does work go in my workflows?' - which subagent types dominate, where compaction kicks in, and which paths end in errors vs clean completions." }, "drillIn": { "what": "Per-session detail view: full agent tree, tool-call timeline, and raw event sequence for whichever session you select.", "howToRead": "Pick a session from the dropdown above or click a bubble in the scatter plot. The tabs let you switch between hierarchical (Agent Tree), temporal (Tool Timeline), and chronological (Event Sequence) views of the same session.", "why": "When an aggregate chart flags a suspicious session, this is where you go to read exactly what happened, in order." }, "lanes": { "what": "Every stage record across all your lanes and their archived features, counted per pipeline node: how many times a stage was entered, passed, and how many of those passes left evidence behind.", "howToRead": "One row per node. The bar is scaled against the busiest node, split into green (passed with evidence), amber (passed but only claimed) and red (failed). The number on the right is passes / entries and the pass rate.", "why": "A node with a long amber bar is a stage everyone declares and nobody proves; a node that is never reached is a stage your pipeline does not really use." }, "errorPropagation": { "what": "Where errors cluster across the agent hierarchy: by depth (session/main vs direct subagent vs nested), by agent type, and by API/session-level error category.", "howToRead": "The top banner gives the session-level error rate. The depth bars show how many errors occurred at each nesting level. The error-prone types list ranks subagent types by error count. The bottom block surfaces API/session error summaries.", "why": "Pinpoints whether failures live in the orchestration spine (main agent), in specific subagents, or in deep nested chains - guiding where to invest in retries, validation, or rewrites." }, "complexity": { "what": "A scatter plot of every session: x = wall-clock duration, y = total agents involved, bubble size = total tokens, color = final status.", "howToRead": "Top-right bubbles are long, agent-heavy sessions. Big bubbles burned the most tokens. Reds/yellows = error/abandoned outcomes. Hover any bubble for full session stats; click to drill into it below.", "why": "Gives a single view of the cost/complexity distribution. Outliers are the sessions worth investigating for runaway behavior or cost spikes." }, "compaction": { "what": "How often Claude triggered context compaction across sessions: total events, tokens recovered, and a per-session distribution.", "howToRead": "The two stat boxes show total compaction events and the cumulative tokens reclaimed. The bar chart lists sessions with at least one compaction, sorted descending by count.", "why": "Compactions indicate context pressure. A long tail of high-compaction sessions usually means workflows that should be split, summarized, or migrated to a longer-context model." }, "skillUsage": { "what": "Skill invocations counted from Skill tool events, grouped by skill and by owning plugin. A plugin's total also counts calls to the MCP tools it ships.", "howToRead": "Chips on top are plugins with their combined call count; the list below ranks individual skills by number of calls, with how many distinct sessions used each one.", "why": "Shows which parts of your setup earn their keep. A skill installed but never invoked never appears here — this reports use, not inventory." } }, "stats": { "avgAgentDepth": "Avg Agent Depth", "avgSubagentsPerSession": "Avg Subagents / Session", "agentSuccessRate": "Agent Success Rate", "mostCommonFlow": "Most Common Flow", "avgCompactions": "Avg Compactions", "avgDuration": "Avg Duration", "tooltip": { "howCalc": "How it's calculated", "whatItMeans": "What this number means", "moreInfo": "Explain this metric", "valueMeansFmt": "{{value}} {{phrase}} means {{interpretation}}", "phrase": { "depth": "average agent depth", "subagents": "subagents per session", "success": "agent success rate", "topFlow": "most common flow", "compactions": "compactions per session", "duration": "average duration" }, "calc": { "depth": "For each session we record the deepest agent nesting level (main = 0, direct subagent = 1, sub-subagent = 2, …) and average those maximums across all sessions in the current filter.", "subagents": "Total number of subagent invocations (every Task / SubagentStop pair) divided by the number of sessions in scope. Counts every subagent run, including parallel and re-spawned ones.", "success": "Across all main + subagent runs in scope: completed runs ÷ (completed + errored + abandoned) × 100. A run counts as completed when a Stop / SubagentStop is observed without an error event in between.", "topFlow": "Every consecutive pair of tool calls within a session is counted as one transition. The pair that appears most frequently across all sessions is shown here as 'source → target'.", "compactions": "Total number of context-compaction events recorded by the PreCompact / SessionStart(compact) hooks, divided by the number of sessions in scope.", "duration": "Mean wall-clock time from each session's first event (SessionStart) to its last event (Stop / SessionEnd / latest hook), averaged across all sessions in scope." }, "depth": { "zero": "no nested agents have been observed. Every session ran with just the main agent - no subagent delegation occurred.", "rare": "nesting is rare. Most sessions stay at depth 0 (main agent only); only a small fraction reach into subagents.", "single": "sessions typically delegate to a single layer of subagents (main → subagent), without further nesting.", "multi": "multi-layer orchestration is common - subagents themselves frequently spawn further subagents (main → sub → sub).", "deep": "deep, recursive orchestration is the norm. Sessions consistently chain three or more agent layers." }, "subagents": { "zero": "no subagents have fired. Sessions completed entirely on the main agent.", "lowFreq": "practically: roughly one subagent every ~{{count}} sessions. Most sessions don't spawn any subagent at all.", "moderate": "sessions typically delegate to 1–3 subagents - moderate use of specialized helpers.", "heavy": "heavy delegation - sessions routinely fan out to several subagents.", "veryHeavy": "very orchestration-heavy: sessions average 6+ subagent runs each." }, "success": { "perfect": "near-perfect. Almost every agent run finishes with a clean Stop event - no errors or abandonment.", "healthy": "healthy. The vast majority of agent runs complete successfully; only sporadic failures.", "acceptable": "acceptable, but watch the error trend - roughly 1 in every 5–20 runs fails or is abandoned.", "concerning": "concerning - a meaningful share of agent runs are failing. Inspect the Errors page for top culprits.", "critical": "critical: most agent runs are failing or being abandoned. Check ErrorPropagation and recent deploys." }, "topFlow": { "none": "not enough consecutive tool calls have been recorded yet to surface a dominant pair.", "selfLoop": "{{tool}} most often follows itself - typical for repeated reads/edits or chained shell commands.", "pair": "{{source}} most often runs immediately before {{target}}. Read it as a habit: agents tend to {{sourceLower}} and then {{targetLower}} as their next step." }, "compactions": { "zero": "no context compaction has been observed. Sessions stayed comfortably within the model's context window.", "lowFreq": "practically: ~1 compaction every {{count}} sessions. Long-running sessions are the exception.", "moderate": "sessions typically hit compaction once or twice - context pressure exists but is manageable.", "high": "high compaction rate. Sessions routinely run long enough to require multiple context compressions; consider splitting work." }, "duration": { "zero": "no completed sessions yet - duration is 0.", "veryShort": "very short sessions (under a minute) - likely quick tool calls or single-shot prompts.", "short": "short sessions, on the order of a few minutes. Typical for focused, single-feature work.", "medium": "medium-length sessions (5–30 min). Standard development cadence.", "long": "long sessions (30–60 min). Likely multi-step workflows or longer review cycles.", "veryLong": "very long sessions (1–3 hr). Watch for compaction and context pressure.", "marathon": "marathon sessions (3+ hours). Consider whether work could be split into multiple shorter sessions." } } }, "orchestration": { "title": "Agent Orchestration Graph", "subtitle": "Aggregate spawning patterns across all sessions - Click a node to filter", "sessions": "Sessions", "mainAgent": "Main Agent", "compactions": "Compactions", "noData": "No orchestration data", "noDataDesc": "Agent spawning data will appear here once sessions with subagents have been recorded.", "legend": "Legend", "edgeWeight": "Edge weight = frequency", "count": "Count", "otherTypes": "{{count}} other types", "ariaLabel": "Agent orchestration directed acyclic graph", "layers": { "origin": "Origin", "mainAgent": "Main Agent", "subagentTypes": "Subagent Types", "compactions": "Compactions", "outcomes": "Outcomes" }, "tooltip": { "tipClickToFilter": "Tip: click to filter the rest of the page by this node.", "layer": { "session": "Layer 0 - Origin", "main": "Layer 1 - Main agent", "subagent": "Layer 2 - Subagent type", "subagentOverflow": "Layer 2 - Subagent types", "nested": "Layer 3 - Compactions", "outcome": "Layer 4 - Outcome" }, "desc": { "session": "Each unit here is a Claude Code session matching the current status filter. Outgoing edges fan out to the main agents these sessions launched.", "main": "The top-level Claude run for each session. Every session has exactly one main agent; from here the graph branches into the subagent types it delegated to.", "subagent": "A specialized subagent the main agent delegated to (e.g. via the Task tool).", "subagentClean": " Every run of this subagent has completed cleanly.", "subagentAllError": " Every run of this subagent has errored - investigate the agent definition.", "subagentSomeErrors": " {{count}} run(s) errored - see Error Propagation below for details.", "subagentOverflow": "All remaining subagent types collapsed into one node so the graph stays readable. Hover any other subagent node to see individual stats.", "nested": "Context-window compaction events. Claude triggers a compaction when the running context approaches the model's limit; the count reflects how often that happened across the sessions in scope.", "outcomeCompleted": "Sessions whose final hook was a clean Stop event. No error events were emitted before termination.", "outcomeError": "Sessions that emitted at least one error event (tool error, subagent error, or session error) before terminating.", "outcomeAbandoned": "Sessions that stopped without a clean Stop event and without explicit errors - usually closed mid-flight.", "outcomeFallback": "The terminal status of sessions in scope, computed from the last hook event observed for each session." } } }, "drillIn": { "title": "Session Drill-In", "subtitle": "Select a session from the scatter plot or use the dropdown to explore", "searchPlaceholder": "Search sessions...", "noSessionSelected": "No session selected", "noSessionDesc": "Search and select a session above, or click a bubble in the scatter plot, to drill into its agent tree, tool timeline, and event sequence.", "failedLoad": "Failed to load session", "loading": "Loading...", "loadMore": "Load more", "noMatch": "No sessions match your search.", "notFound": "No sessions found.", "unknownModel": "unknown model", "closePanel": "Close drill-in panel", "close": "Close", "tabs": { "agentTree": "Agent Tree", "toolTimeline": "Tool Timeline", "eventSequence": "Event Sequence" }, "noAgentTree": "No agent tree data available.", "noToolEvents": "No tool events recorded.", "noEvents": "No events recorded for this session.", "showingOf": "Showing 100 of {{total}} events", "sessionInfo": " session(s) - active {{from}}%-{{to}}% of session", "sortedByCompaction": " session(s) (sorted by compaction count)" }, "lanes": { "title": "Lane Pipeline Pass Rates", "subtitle": "How often each stage of your own pipelines is actually passed", "pipelineLabel": "Pipeline template", "laneLabel": "Lane", "allLanes": "All lanes", "runs_one": "{{count}} run recorded", "runs_other": "{{count}} runs recorded", "legendEvidence": "passed with evidence", "legendClaimed": "passed, no evidence", "legendFailed": "failed", "never": "never reached", "copyCommand": "Copy: {{command}}", "empty": "No lane has recorded a stage yet. Create one with", "emptyLane": "This lane has not recorded a stage yet.", "legendDetected": "reached, not declared", "detectedOnly": "detected ×{{count}}" }, "errorPropagation": { "title": "Error Propagation Map", "subtitle": "Where errors cluster in agent hierarchy depth", "noErrors": "No errors recorded", "allSuccess": "All sessions completed successfully", "sessionsHadErrors": " sessions had errors", "sessionsErrorSummary": "{{errorSessions}} of {{totalSessions}} sessions had errors", "agentErrors": " agent-level error(s) across hierarchy", "sessionErrorsOnly": "Session-level errors only", "errorsByDepth": "Errors by hierarchy depth", "errorProneTypes": "Error-prone agent types", "apiSessionErrors": "API & session errors", "depthLabels": { "sessionMain": "Session / Main", "directSubagent": "Direct Subagent", "nested": "Nested (depth 2)", "deep": "Deep (depth 3+)" } }, "complexity": { "title": "Session Complexity Scatter", "subtitle": "Duration vs agent count vs tokens - Bubble size = token usage", "noData": "No session complexity data", "noDataDesc": "Sessions will appear here once they complete with agent activity.", "duration": "Duration", "agentCount": "Agent Count", "ariaLabel": "Session complexity scatter plot", "tooltip": { "duration": "Duration:", "agents": "Agents:", "subagents": "Subagents:", "tokens": "Tokens:", "model": "Model:" } }, "compaction": { "title": "Compaction Impact Analysis", "subtitle": "How context compression is spread across your sessions", "help": "When a session's context window fills up, Claude Code compresses older history into a summary. Each compaction is one such event.", "noData": "No compactions recorded", "totalCompactions": "Total compactions", "sessionsAffected": "Sessions affected", "ofTotal": "of {{total}}", "avgPerSession": "Avg / affected session", "peakSession": "Most in one session", "tokensRecovered": "Tokens Recovered", "distribution": "Sessions by compaction count", "xAxis": "Compactions per session", "yAxis": "Sessions", "summary": "{{affected}} of {{total}} sessions ({{pct}}%) used context compaction.", "tokensFreed": "Compaction freed ~{{tokens}} tokens of context.", "ariaLabel": "Number of sessions by compaction count", "tipTitle": "Compacted {{count}}x", "tipDetail": "{{sessions}} sessions · {{pct}}% of affected" }, "skillUsage": { "title": "Skill & Plugin Usage", "subtitle": "Which skills your sessions actually reach for", "plugins": "Plugins", "skills": "Skills", "empty": "No skill invocation recorded yet.", "calls_one": "{{count}} call", "calls_other": "{{count}} calls", "sessions_one": "{{count}} session", "sessions_other": "{{count}} sessions", "pluginBreakdown": "{{skills}} skill(s) used · {{skillCalls}} skill call(s) · {{mcpCalls}} MCP tool call(s)" } }