Marketplace
swimlane-visualization
Design swimlane UI patterns for visualizing ADW execution. Use when building observability dashboards, monitoring agent workflows, or creating real-time status displays.
allowed_tools: Read, Grep, Glob
$ Instalar
git clone https://github.com/melodic-software/claude-code-plugins /tmp/claude-code-plugins && cp -r /tmp/claude-code-plugins/plugins/tac/skills/swimlane-visualization ~/.claude/skills/claude-code-plugins// tip: Run this command in your terminal to install the skill
SKILL.md
name: swimlane-visualization description: Design swimlane UI patterns for visualizing ADW execution. Use when building observability dashboards, monitoring agent workflows, or creating real-time status displays. allowed-tools: Read, Grep, Glob
Swimlane Visualization
Design swimlane UI patterns for visualizing AI Developer Workflow execution in real-time.
When to Use
- Building ADW observability dashboards
- Monitoring agent workflow progress
- Creating real-time status displays
- Designing event inspection interfaces
- Implementing workflow debugging tools
Prerequisites
- Understanding of @websocket-architecture.md for real-time updates
- Familiarity with @hook-event-patterns.md for event types
- Frontend development capabilities (Vue, React, etc.)
SDK Requirement
Implementation Note: Swimlane visualization requires frontend development. This skill provides UI specifications and component patterns.
Swimlane Layout
Basic Structure
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ADW: a1b2c3d4 - Feature: Add rate limiting โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโโค
โ Plan โ Build โ Review โ Fix โ Status โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
โ โ
Complete โ โก Active โ โ Pending โ โ Pending โ โ Running โ
โ โ โ โ โ โ
โ ๐ฌ Created โ ๐ ๏ธ Write โ โ โ Cost: $0.42 โ
โ spec โ auth.py โ โ โ โ
โ โ ๐ ๏ธ Write โ โ โ Tokens: 12K โ
โ โ tests.py โ โ โ โ
โ โ ๐ง Thinkingโ โ โ Duration: โ
โ โ ... โ โ โ 45s โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโ
```text
### Lane States
| State | Icon | Color | Meaning |
| --- | --- | --- | --- |
| Pending | โ | Gray | Not started |
| Active | โก | Blue | Currently executing |
| Complete | โ
| Green | Successfully finished |
| Failed | โ | Red | Error occurred |
## Event Card Design
### Event Card Structure
```text
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ ๏ธ ToolUseBlock โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Write: src/auth/middleware.py โ
โ โ
โ "Implementing JWT validation โ
โ middleware for API routes" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ 10:32:15 | 45ms โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```text
### Event Type Icons
| Event Type | Icon | Card Style |
| --- | --- | --- |
| TextBlock | ๐ฌ | Blue border |
| ToolUseBlock | ๐ ๏ธ | Orange border |
| ThinkingBlock | ๐ง | Purple border |
| PreToolUse | ๐ช | Light gray |
| PostToolUse | ๐ช | Light gray |
| StepStart | โ๏ธ | Green accent |
| StepEnd | โ๏ธ | Green accent |
## Component Specifications
### Lane Component
```vue
<template>
<div class="lane" :class="{ active: isActive }">
<div class="lane-header">
<span class="lane-icon">{{ stateIcon }}</span>
<span class="lane-name">{{ step.name }}</span>
</div>
<div class="lane-content">
<EventCard
v-for="event in events"
:key="event.id"
:event="event"
@click="$emit('select', event)"
/>
</div>
</div>
</template>
```text
### Event Card Component
```vue
<template>
<div class="event-card" :class="eventTypeClass">
<div class="event-header">
<span class="event-icon">{{ typeIcon }}</span>
<span class="event-type">{{ event.event_type }}</span>
</div>
<div class="event-body">
<p class="event-summary">{{ event.summary }}</p>
</div>
<div class="event-footer">
<span class="event-time">{{ formattedTime }}</span>
<span class="event-duration" v-if="event.duration_ms">
{{ event.duration_ms }}ms
</span>
</div>
</div>
</template>
```text
### Status Panel Component
```vue
<template>
<div class="status-panel">
<div class="status-indicator" :class="overallStatus">
<span class="status-dot"></span>
<span class="status-text">{{ statusText }}</span>
</div>
<div class="metrics">
<div class="metric">
<span class="metric-label">Cost</span>
<span class="metric-value">${{ totalCost.toFixed(2) }}</span>
</div>
<div class="metric">
<span class="metric-label">Tokens</span>
<span class="metric-value">{{ formatTokens(totalTokens) }}</span>
</div>
<div class="metric">
<span class="metric-label">Duration</span>
<span class="metric-value">{{ formatDuration(totalDuration) }}</span>
</div>
</div>
</div>
</template>
```text
## Real-Time Update Pattern
### WebSocket Integration
```typescript
class SwimlaneLive {
private ws: ADWWebSocket;
private lanes: Map<string, Lane> = new Map();
connect(adwId: string) {
this.ws = new ADWWebSocket();
this.ws.connect();
this.ws.subscribe(adwId, this.handleEvent.bind(this));
}
handleEvent(event: ADWEvent) {
const lane = this.lanes.get(event.step);
if (lane) {
lane.addEvent(event);
this.updateLaneState(event.step);
}
}
updateLaneState(step: string) {
// Update lane visual state based on latest event
}
}
```text
### Event Buffering
```typescript
class EventBuffer {
private buffer: ADWEvent[] = [];
private flushInterval = 100; // ms
add(event: ADWEvent) {
this.buffer.push(event);
}
flush(): ADWEvent[] {
const events = [...this.buffer];
this.buffer = [];
return events;
}
}
```text
## Filtering and Navigation
### Filter Controls
```text
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Filters: โ
โ [Step: All โผ] [Type: All โผ] [Search: _____________] [๐ Live] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```text
### Filter Implementation
```typescript
interface SwimlineFilters {
step: string | null;
eventTypes: string[];
searchQuery: string;
liveMode: boolean;
}
function filterEvents(events: ADWEvent[], filters: SwimlineFilters) {
return events.filter(event => {
if (filters.step && event.step !== filters.step) return false;
if (filters.eventTypes.length && !filters.eventTypes.includes(event.event_type)) return false;
if (filters.searchQuery && !event.summary.includes(filters.searchQuery)) return false;
return true;
});
}
```text
## Event Detail Panel
### Expanded Event View
```text
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Event Details [X] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Type: ToolUseBlock โ
โ Step: build โ
โ Time: 2026-01-01 10:32:15 UTC โ
โ Duration: 45ms โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Tool: Write โ
โ Path: src/auth/middleware.py โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Summary: โ
โ "Implementing JWT validation middleware for API routes" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Raw Payload: โ
โ { โ
โ "tool_name": "Write", โ
โ "file_path": "src/auth/middleware.py", โ
โ "content": "..." โ
โ } โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```text
## Design Checklist
- [ ] Lane layout defined for all steps
- [ ] Event card components designed
- [ ] Status indicators specified
- [ ] Real-time WebSocket integration
- [ ] Event type icons and colors
- [ ] Filter controls designed
- [ ] Event detail panel specified
- [ ] Responsive layout considered
- [ ] Loading and error states
- [ ] Accessibility requirements
## Output Format
```markdown
## Swimlane Visualization Design
### Layout Specification
```text
[ASCII layout diagram]
```text
### Lane States
| State | Visual | Trigger |
| --- | --- | --- |
| [state] | [description] | [when applied] |
### Event Cards
[Card specifications per event type]
### Components
**Lane Component:**
[Props, events, slots]
**Event Card Component:**
[Props, events, styling]
**Status Panel:**
[Metrics displayed]
### Real-Time Updates
[WebSocket integration pattern]
### Filtering
[Filter controls and logic]
```text
## Anti-Patterns
| Anti-Pattern | Problem | Solution |
| --- | --- | --- |
| No live updates | Stale display | WebSocket streaming |
| Overwhelming events | UI unusable | Filtering and pagination |
| No event details | Can't debug | Detail panel on click |
| Missing status | Unknown state | Status indicators |
| Sync rendering | UI freezes | Buffered updates |
## Cross-References
- @websocket-architecture.md - Real-time streaming
- @hook-event-patterns.md - Event types
- @multi-agent-observability skill - Metrics patterns
- @production-patterns.md - Backend integration
## Version History
- **v1.0.0** (2026-01-01): Initial release (Lesson 14)
---
## Last Updated
**Date:** 2026-01-01
**Model:** claude-opus-4-5-20251101
Repository

melodic-software
Author
melodic-software/claude-code-plugins/plugins/tac/skills/swimlane-visualization
3
Stars
0
Forks
Updated3d ago
Added1w ago