Claude-code-plugins-plus-skills windsurf-observability
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/windsurf-pack/skills/windsurf-observability" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-windsurf-observability && rm -rf "$T"
manifest:
plugins/saas-packs/windsurf-pack/skills/windsurf-observability/SKILL.mdsource content
Windsurf Observability
Overview
Monitor Windsurf AI IDE adoption, feature usage, and productivity impact across your team. Covers Admin Dashboard analytics, custom tracking via extensions, and ROI measurement.
Prerequisites
- Windsurf Teams or Enterprise plan
- Admin dashboard access at windsurf.com/dashboard
- Team members actively using Windsurf
Instructions
Step 1: Access Admin Dashboard Analytics
Navigate to Admin Dashboard > Analytics for team-wide metrics:
# Key metrics available in Windsurf Admin Dashboard core_metrics: adoption: active_users_daily: "Unique developers using Windsurf per day" seat_utilization: "Active users / total seats (target: >80%)" feature_adoption: "Which AI features each user uses" quality: completion_acceptance_rate: "Supercomplete suggestions accepted vs shown" cascade_flow_success_rate: "Cascade tasks completed vs failed" consumption: credits_consumed_per_user: "Monthly credit usage per team member" credits_by_model: "Which AI models consume the most credits" efficiency: tasks_per_session: "Average Cascade interactions per session" time_saved_estimate: "Based on task complexity and completion speed"
Step 2: Set Up Usage Alerts
Monitor for underutilization and overuse:
# Alert thresholds for team management alerts: low_adoption: condition: "seat_utilization < 50% for 7 days" action: "Schedule team training session" low_acceptance_rate: condition: "completion_acceptance_rate < 20% for 7 days" action: "Review .windsurfrules — AI suggestions not matching project patterns" high_cascade_failures: condition: "cascade_success_rate < 50% for 3 days" action: "Check workspace config — .codeiumignore may be too aggressive" credit_overspend: condition: "team_credits > 80% consumed before month half" action: "Review per-user usage, coach on credit conservation" inactive_seats: condition: "user has <10 interactions in 30 days" action: "Offer training or downgrade to Free tier"
Step 3: Build Custom Extension for Detailed Tracking
// windsurf-analytics-extension/src/extension.ts import * as vscode from "vscode"; interface UsageEvent { event: string; timestamp: string; userId: string; file?: string; metadata?: Record<string, unknown>; } const events: UsageEvent[] = []; export function activate(context: vscode.ExtensionContext) { // Track Cascade usage patterns const cascadeListener = vscode.workspace.onDidSaveTextDocument((doc) => { events.push({ event: "file_save_after_cascade", timestamp: new Date().toISOString(), userId: vscode.env.machineId, file: doc.fileName, metadata: { languageId: doc.languageId, lineCount: doc.lineCount }, }); }); // Flush events periodically setInterval(() => { if (events.length > 0) { const batch = events.splice(0); sendToAnalytics(batch); } }, 60000); // Flush every minute context.subscriptions.push(cascadeListener); } async function sendToAnalytics(batch: UsageEvent[]) { const endpoint = vscode.workspace .getConfiguration("windsurf-analytics") .get<string>("endpoint"); if (!endpoint) return; await fetch(endpoint, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ events: batch }), }).catch(() => {}); // Silently fail — analytics should never block work }
Step 4: Measure Productivity Impact
# Weekly team productivity report template productivity_report: period: "Week of YYYY-MM-DD" team_size: 10 active_windsurf_users: 8 ai_metrics: total_cascade_tasks: 150 cascade_success_rate: "78%" completion_acceptance_rate: "32%" credits_consumed: 1200 productivity_proxies: commits_per_developer: 12 # vs baseline 8 pre-Windsurf pr_turnaround_hours: 6 # vs baseline 12 pre-Windsurf code_review_comments: 45 # quality indicator estimated_time_saved: per_developer_per_week: "3 hours" total_team_per_week: "24 hours" monthly_value: "$7,200" # 24hrs * 4wks * $75/hr roi_calculation: monthly_windsurf_cost: "$300" # 10 seats * $30 monthly_value_generated: "$7,200" roi: "2,300%"
Step 5: Dashboard Visualization
Track these metrics over time in your preferred dashboard tool:
## Recommended Dashboard Panels 1. Daily Active Users vs Total Seats (line chart) - Shows adoption trend - Alert when utilization drops below 70% 2. Completion Acceptance Rate (line chart, 7-day rolling avg) - Higher = better .windsurfrules quality - Drop = rules need updating or team needs training 3. Cascade Success Rate (bar chart, weekly) - Tracks agentic task effectiveness - Low rate = prompts too vague or workspace too large 4. Credits per Developer (bar chart, monthly) - Identifies power users vs underutilizers - Guides seat tier decisions 5. Top Workflows Used (table) - Shows which automated workflows team uses most - Identifies candidates for new workflows
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| Low acceptance rate | AI suggestions don't match project style | Update .windsurfrules with project conventions |
| Cascade flow failures | Insufficient tool permissions or context | Check workspace config, .codeiumignore |
| Seat utilization low | Team not adopted | Training session, share productivity data |
| Analytics data missing | Not on Teams/Enterprise plan | Upgrade for admin analytics |
| Custom extension conflicts | Extension interferes with Cascade | Ensure extension doesn't register completions |
Examples
Quick Adoption Check
Admin Dashboard > Analytics > Overview Look for: active users, acceptance rate, credit usage
Monthly Seat Optimization
steps: 1. Export member usage from Admin Dashboard 2. Sort by credits consumed (ascending) 3. Bottom 20%: offer training or downgrade to Free 4. Top 10%: interview for best practices to share 5. Reallocate freed seats to new team members
Resources
Next Steps
For incident response procedures, see
windsurf-incident-runbook.