skills/vm_install_analysis/SKILL.md
# VM Installation Analysis Skill ## Overview This skill analyzes VM installation processes to track time investment, identify bottlenecks, acknowledge customer issues, and generate actionable insights for process improvement. ## Purpose When deploying OpenHands Enterprise (or any VM-based installation), understanding the actual time and effort required helps: 1. **Set realistic expectations** for future customers 2. **Identify process bottlenecks** that delay installations 3. **Acknowledge
npx skillsauth add rajshah4/my-agent-skills skills/vm_install_analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill analyzes VM installation processes to track time investment, identify bottlenecks, acknowledge customer issues, and generate actionable insights for process improvement.
When deploying OpenHands Enterprise (or any VM-based installation), understanding the actual time and effort required helps:
This skill is part of the my-agent-skills repository. No additional dependencies required beyond Python 3.7+.
For analyzing a customer installation from Slack data:
cd skills/vm_install_analysis
python workflow_vm_install_tracker.py --customer "Customer Name" --channel "channel-name"
from analyze_vm_install import VMInstallAnalyzer
from datetime import datetime
# Create analyzer
analyzer = VMInstallAnalyzer(
customer_name="Build One",
channel_name="#e-buildone"
)
# Add timeline events
analyzer.add_event(
date=datetime(2026, 3, 9),
event_type='kickoff',
description='Slack channel created, project kickoff',
actor='internal',
effort_hours=2
)
analyzer.add_event(
date=datetime(2026, 4, 2),
event_type='deployment',
description='AWS infrastructure deployed via Terraform',
actor='customer',
effort_hours=16
)
# Add issues
analyzer.add_issue(
title="GitHub App Authentication Failed",
description="OAuth configuration vs App ID confusion",
severity='critical',
raised_date=datetime(2026, 4, 3),
resolved_date=datetime(2026, 4, 14),
customer_impact_days=11,
resolution="Used GitHub App creation script, manual Keycloak fix"
)
# Add holidays/breaks
analyzer.add_holiday_break(
start=datetime(2026, 4, 11),
end=datetime(2026, 4, 14),
reason="Orthodox Easter holiday"
)
# Set final status
analyzer.analysis.success = True
analyzer.analysis.final_status = "Successfully deployed after resolving authentication issues"
# Generate report
report = analyzer.generate_report("output/buildone_analysis.md")
print("Analysis complete!")
This skill can be invoked by an AI agent to automatically analyze Slack channels:
Example prompt for the agent:
Analyze the VM installation for [Customer Name] from the #[channel-name] Slack channel.
I need:
- Total days from start to finish
- Customer time investment
- Internal team effort
- All issues raised
- Process improvement recommendations
The skill can extract data from:
Slack Channels (Primary)
Multi-Channel Analysis (NEW)
Notion Pages (Optional)
Manual Entry (Fallback)
Generated in output/ directory with detailed analysis
Sub-pages created under main tracking page: https://www.notion.so/Self-Hosted-Install-Recaps-3447be798a178003b493ce6a21adfd7c
Each customer gets a dedicated Notion page with:
Total Installation Timeline: 36 days
Active Working Days: ~8-10 days
Customer Effort: ~8-10 working days (64-80 hours)
Internal Effort: ~6-8 working days (48-64 hours)
Critical Issues: 1
Status: ✅ Successfully Deployed
| Metric | Value | |--------|-------| | Calendar Days | 36 | | Active Working Days | 8-10 | | Critical Issues | 1 | | Customer Time | 64-80 hrs | | Internal Time | 48-64 hrs |
The skill uses these heuristics to estimate effort:
# Base effort for reading/responding to a message
base_hours = 0.5
# Additional time per message in thread
per_message_hours = 0.25 # 15 minutes
# Complexity multiplier
simple_task = 1.0
complex_issue = 2.0
# Total effort formula
effort = (base_hours + thread_length * per_message_hours) * complexity
Issues are classified based on:
Messages are classified as customer or internal based on:
✅ DO use when:
❌ DON'T use when:
Internal Use:
Customer Sharing:
Executive Summary:
To add support for new data sources (e.g., Jira, Linear):
def analyze_jira_issues(self, jira_data):
"""Extract issues from Jira tickets"""
for ticket in jira_data:
self.analyzer.add_issue(
title=ticket['summary'],
description=ticket['description'],
severity=self.map_jira_priority(ticket['priority']),
raised_date=ticket['created'],
resolved_date=ticket['resolved'],
...
)
Create custom report formats:
def generate_executive_summary(self) -> str:
"""One-page executive summary"""
# Custom formatting logic
pass
def generate_csv_export(self) -> str:
"""CSV format for spreadsheet analysis"""
# CSV generation logic
pass
Export metrics for dashboards:
def export_metrics_json(self) -> dict:
"""JSON format for dashboard ingestion"""
return {
'customer': self.customer_name,
'total_days': self.analysis.total_calendar_days,
'customer_hours': self.analysis.customer_effort_hours,
'internal_hours': self.analysis.internal_effort_hours,
'issues': len(self.analysis.issues),
...
}
See output/buildone_vm_install_analysis.md for a complete real-world example.
To improve this skill:
MIT License - Feel free to use and modify for your needs.
For questions or issues with this skill:
Version: 1.0.0
Last Updated: April 16, 2026
Author: Rajiv Shah
tools
Download Zoom meeting transcripts. Use when asked to get transcripts from Zoom recordings, download Zoom meeting notes, or fetch Zoom call transcripts.
content-media
Download YouTube video transcripts with timestamps. Use when asked to transcribe a YouTube video, get transcript, or extract text from a video URL.
data-ai
Generate chapter summaries with timestamps for YouTube videos using AI. Use when asked to create chapters, summarize video sections, or generate video outline.
devops
# Video Visualizer Workflow (AI Engineer Aesthetic) ## Overview This skill provides a structured workflow for an agent to act as a visual model. It analyzes video scripts and source documents to propose clean, highly technical, and minimalist background visuals. The target audience is practical AI engineers. ## Design Philosophy (The "Anti-Glow" Manifesto) - **Target Audience**: Practical AI Engineers. - **Aesthetic**: Minimalist, clean, schematic. Think academic paper figures, Stripe/Vercel