skill-report.json
{
"schema_version": "2.0",
"meta": {
"generated_at": "2026-07-06T10:16:34.254Z",
"slug": "dataknifeai-cluster-management",
"source_url": "https://github.com/DataKnifeAI/proxmox-ve-mcp/tree/main/.github/skills/cluster-management",
"source_ref": "main",
"model": "codex",
"analysis_version": "3.0.0",
"source_type": "community",
"content_hash": "18b67a91c63cfa5dc4bdc430a5b092648d033f7dbdc3deb6f5925c0ac5392d5b",
"tree_hash": "4070d1984b29a58b12a5c505b61742e541cabbf328c59c2b92770e2b63d129c1",
"provenance": {
"model_requested": "gpt-5.5:high",
"model_effective": "codex:gpt-5.5:high",
"fallback_chain": [
{
"agent": "codex",
"model": "gpt-5.5",
"effort": "high",
"outcome": "success"
}
],
"analysis_version": "3.0.0"
}
},
"skill": {
"name": "cluster-management",
"description": "Monitor and manage Proxmox cluster nodes, resources, and infrastructure health. Track node status, cluster quorum, and resource allocation across your virtualization platform.",
"icon": "📦",
"version": "1.0.0",
"author": "DataKnifeAI",
"license": "MIT",
"summary": "Monitor Proxmox cluster health, node status, quorum, and resource utilization.",
"category": "devops",
"tags": [
"proxmox",
"cluster-monitoring",
"infrastructure",
"capacity-planning",
"node-health"
],
"supported_tools": [
"claude",
"codex",
"claude-code"
],
"risk_factors": [
"external_commands"
]
},
"security_audit": {
"risk_level": "safe",
"is_blocked": false,
"safe_to_publish": true,
"analysis_status": "ok",
"summary": "All ten static findings are false positives caused by Markdown inline code around Proxmox tool names in SKILL.md. I found no executable shell usage, prompt injection text, or other semantic security issues in the reviewed file.",
"remediation": [],
"risk_factor_evidence": [
{
"factor": "external_commands",
"evidence": [
{
"file": "SKILL.md",
"line_start": 36,
"line_end": 36
},
{
"file": "SKILL.md",
"line_start": 37,
"line_end": 37
},
{
"file": "SKILL.md",
"line_start": 38,
"line_end": 38
},
{
"file": "SKILL.md",
"line_start": 43,
"line_end": 43
},
{
"file": "SKILL.md",
"line_start": 44,
"line_end": 44
},
{
"file": "SKILL.md",
"line_start": 45,
"line_end": 45
},
{
"file": "SKILL.md",
"line_start": 49,
"line_end": 49
},
{
"file": "SKILL.md",
"line_start": 50,
"line_end": 50
},
{
"file": "SKILL.md",
"line_start": 55,
"line_end": 55
},
{
"file": "SKILL.md",
"line_start": 56,
"line_end": 56
}
]
}
],
"static_findings": [
{
"id": "external_commands:SKILL.md:36:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 36,
"line_end": 36,
"snippet": "- `get_nodes` - List all nodes in the cluster"
},
{
"id": "external_commands:SKILL.md:37:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 37,
"line_end": 37,
"snippet": "- `get_node_status` - Get detailed status of a specific node"
},
{
"id": "external_commands:SKILL.md:38:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 38,
"line_end": 38,
"snippet": "- `get_cluster_resources` - Get all cluster resources (nodes, VMs, containers)"
},
{
"id": "external_commands:SKILL.md:43:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 43,
"line_end": 43,
"snippet": "1. Use `get_cluster_resources` for overall cluster status"
},
{
"id": "external_commands:SKILL.md:44:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 44,
"line_end": 44,
"snippet": "2. Use `get_nodes` to list all nodes"
},
{
"id": "external_commands:SKILL.md:45:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 45,
"line_end": 45,
"snippet": "3. Use `get_node_status` for each node to check health"
},
{
"id": "external_commands:SKILL.md:49:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 49,
"line_end": 49,
"snippet": "1. Use `get_nodes` to list all cluster nodes"
},
{
"id": "external_commands:SKILL.md:50:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 50,
"line_end": 50,
"snippet": "2. Use `get_node_status` to check individual node performance"
},
{
"id": "external_commands:SKILL.md:55:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 55,
"line_end": 55,
"snippet": "1. Use `get_cluster_resources` to analyze current usage"
},
{
"id": "external_commands:SKILL.md:56:ruby-shell-backtick-execution",
"category": "external_commands",
"severity": "medium",
"pattern": "Ruby/shell backtick execution",
"file": "SKILL.md",
"line_start": 56,
"line_end": 56,
"snippet": "2. Use `get_node_status` for detailed node metrics"
}
],
"finding_verdicts": [
{
"id": "external_commands:SKILL.md:36:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 36 uses Markdown backticks around the tool name get_nodes in a documentation list. It is not Ruby or shell execution and contains no command invocation path."
},
{
"id": "external_commands:SKILL.md:37:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 37 documents the get_node_status tool with Markdown inline code formatting. There is no executable code or user-controlled command construction."
},
{
"id": "external_commands:SKILL.md:38:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 38 uses Markdown inline code for the get_cluster_resources tool name. The file is prose documentation and does not execute shell commands."
},
{
"id": "external_commands:SKILL.md:43:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 43 references get_cluster_resources as a workflow step using Markdown formatting. This is an instruction to use a named tool, not a shell backtick expression."
},
{
"id": "external_commands:SKILL.md:44:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 44 references get_nodes as a workflow step with inline code formatting. It does not contain Ruby, shell syntax, or dynamic command execution."
},
{
"id": "external_commands:SKILL.md:45:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 45 documents using get_node_status for health checks. The backticks are Markdown formatting around a tool name, not executable shell syntax."
},
{
"id": "external_commands:SKILL.md:49:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 49 uses Markdown backticks around get_nodes in a node monitoring workflow. There is no code path that launches external commands."
},
{
"id": "external_commands:SKILL.md:50:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 50 is prose that names get_node_status in inline code formatting. It is not a Ruby or shell backtick execution construct."
},
{
"id": "external_commands:SKILL.md:55:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 55 references get_cluster_resources as a capacity planning step. The backticks are documentation formatting and do not execute commands."
},
{
"id": "external_commands:SKILL.md:56:ruby-shell-backtick-execution",
"verdict": "false_positive",
"confidence": 0.96,
"reason": "Line 56 documents using get_node_status for detailed metrics. It contains no external process launch, shell interpolation, or executable Ruby syntax."
}
],
"semantic_findings": [],
"critical_findings": [],
"high_findings": [],
"medium_findings": [],
"low_findings": [],
"dangerous_patterns": [],
"files_scanned": 1,
"total_lines": 90,
"audit_model": "codex",
"audited_at": "2026-07-06T10:16:34.254Z",
"agent_auto_install_policy": "allowed",
"manual_install_policy": "allowed"
},
"content": {
"user_title": "Manage Proxmox Cluster Health",
"value_statement": "Proxmox clusters need regular checks across nodes, quorum, and shared resources. This skill guides Claude, Codex, and Claude Code through structured cluster reviews.",
"seo_keywords": [
"Claude",
"Codex",
"Claude Code",
"Proxmox cluster management",
"node health monitoring",
"cluster quorum",
"capacity planning",
"virtualization infrastructure",
"resource utilization",
"infrastructure reporting"
],
"actual_capabilities": [
"Lists Proxmox cluster nodes through the documented get_nodes tool.",
"Checks detailed node health through the documented get_node_status tool.",
"Reviews cluster-wide resources with the documented get_cluster_resources tool.",
"Guides cluster health, node monitoring, and capacity planning workflows.",
"Frames reports around quorum status, utilization, bottlenecks, and optimization recommendations."
],
"limitations": [
"Requires working Proxmox access through the underlying tools.",
"Does not apply repairs, migrations, or configuration changes by itself.",
"Depends on current cluster telemetry for accurate health and capacity conclusions.",
"Does not replace administrative review before maintenance or upgrade actions."
],
"use_cases": [
{
"title": "Daily Cluster Health Review",
"description": "Check node status, cluster resources, and quorum before operational work begins.",
"target_user": "Virtualization administrator"
},
{
"title": "Capacity Planning Review",
"description": "Compare node utilization and identify resource bottlenecks before adding workloads.",
"target_user": "Infrastructure engineer"
},
{
"title": "Maintenance Readiness Check",
"description": "Review node health and cluster balance before planned upgrades or maintenance windows.",
"target_user": "Site reliability engineer"
}
],
"prompt_templates": [
{
"title": "Check Cluster Status",
"prompt": "Show me the current status of all Proxmox cluster nodes and summarize any unhealthy conditions.",
"scenario": "Beginner health check"
},
{
"title": "Review Node Performance",
"prompt": "List the cluster nodes, check each node status, and identify CPU, memory, or storage pressure.",
"scenario": "Operational monitoring"
},
{
"title": "Analyze Cluster Capacity",
"prompt": "Review cluster resources and node metrics, then highlight bottlenecks that could affect new workloads.",
"scenario": "Capacity planning"
},
{
"title": "Prepare Maintenance Report",
"prompt": "Create a maintenance readiness report with quorum status, degraded nodes, resource balance, and recommended precautions.",
"scenario": "Advanced maintenance planning"
}
],
"output_examples": [
{
"input": "Show me the status of all cluster nodes.",
"output": "A node-by-node health summary with online state, key utilization metrics, and a short list of issues needing attention."
},
{
"input": "Which nodes have capacity issues?",
"output": "A ranked capacity review that calls out pressure points, affected nodes, and practical next actions for workload placement."
},
{
"input": "Get a complete cluster infrastructure report.",
"output": "A structured report covering cluster resources, quorum, node health, utilization trends, and optimization recommendations."
}
],
"best_practices": [
"Run cluster health checks before maintenance, upgrades, or workload placement.",
"Review quorum, node status, and resource utilization together for context.",
"Validate recommendations against current operational policies before taking action."
],
"anti_patterns": [
"Do not treat the report as permission to make production changes automatically.",
"Do not ignore offline nodes or quorum warnings during capacity planning.",
"Do not rely on stale telemetry when troubleshooting active incidents."
],
"faq": [
{
"question": "What Proxmox information does this skill focus on?",
"answer": "It focuses on cluster nodes, node health, cluster resources, quorum, utilization, and capacity planning signals."
},
{
"question": "Can it change my Proxmox configuration?",
"answer": "No. The skill describes monitoring and reporting workflows, not configuration changes or repair actions."
},
{
"question": "Which tools does the skill reference?",
"answer": "It references get_nodes, get_node_status, and get_cluster_resources as the available Proxmox cluster tools."
},
{
"question": "Is this useful for maintenance planning?",
"answer": "Yes. It helps review health, quorum, and resource balance before planned work."
},
{
"question": "Does it diagnose capacity bottlenecks?",
"answer": "It helps identify likely bottlenecks from node metrics and cluster resource utilization."
},
{
"question": "Does it require live cluster access?",
"answer": "Yes. Accurate results depend on the underlying tools being connected to current Proxmox data."
}
]
},
"file_structure": [
{
"name": "SKILL.md",
"type": "file",
"path": "SKILL.md",
"lines": 90
}
]
}