**Version**: 1.0.0 | **Purpose**: Automatic detection of infrastructure tooling (Helm, Kubernetes, Kustomize, ArgoCD)
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
detect-tooling.jsperformance-benchmark.jstooling-patterns.jsonVersion: 1.0.0 | Purpose: Automatic detection of infrastructure tooling (Helm, Kubernetes, Kustomize, ArgoCD)
The tooling detection system automatically identifies infrastructure and DevOps tooling usage in projects using multi-signal analysis. It detects Helm charts, Kubernetes manifests, Kustomize configurations, and GitOps tools with 95%+ accuracy.
Supported Tools:
Use Cases:
node skills/tooling-detector/detect-tooling.js /path/to/project
Output:
{
"detected": true,
"tools": [
{
"tool": "helm",
"name": "Helm",
"confidence": 0.9,
"signals": {
"chart_yaml": true,
"values_yaml": true,
"templates_dir": true
},
"signal_count": 3
},
{
"tool": "kubernetes",
"name": "Kubernetes",
"confidence": 0.85,
"signals": {
"api_version": true,
"kind_field": true,
"manifests_dir": true
},
"signal_count": 3
}
]
}
# Detect Helm
node skills/tooling-detector/detect-tooling.js /path/to/project --tool helm
# Detect Kubernetes
node skills/tooling-detector/detect-tooling.js /path/to/project --tool kubernetes
node skills/tooling-detector/detect-tooling.js /path/to/project --min-confidence 0.8
Primary Signals (High Confidence):
Chart.yaml file (weight: 0.6) - Helm chart metadatavalues.yaml file (weight: 0.3) - Default valuestemplates/ directory (weight: 0.2) - Template manifestsSecondary Signals (Medium Confidence):
helm install, helm upgrade, helm rollbackhelm template, helm lint, helm package.helmignore, requirements.yaml, Chart.lockConfidence Threshold: ≥70% for automatic detection
Example Detection:
Chart.yaml: ✅ (0.6)
values.yaml: ✅ (0.3)
templates/: ✅ (0.2)
helm CLI: ✅ (0.2)
→ Confidence: 1.0 + 0.1 boost = 100%
Primary Signals (High Confidence):
apiVersion: v1|apps/v1|batch/v1 in YAML files (weight: 0.5)kind: Deployment|Service|Pod|... in YAML files (weight: 0.4)kustomization.yaml file (weight: 0.3)Secondary Signals (Medium Confidence):
kubectl apply, kubectl get, kubectl describe.kube/config, kubeconfigk8s/, kubernetes/, manifests/Confidence Threshold: ≥70% for automatic detection
Example Detection:
apiVersion fields: ✅ (0.5)
kind fields: ✅ (0.4)
kubectl CLI: ✅ (0.2)
manifests/ dir: ✅ (0.1)
→ Confidence: 1.0 + 0.1 boost = 100%
Auto-detect and load skills:
#!/bin/bash
# Detect tooling
TOOLING=$(node skills/tooling-detector/detect-tooling.js .)
# Parse results
HELM_DETECTED=$(echo $TOOLING | jq -r '.tools[] | select(.tool=="helm") | .tool')
K8S_DETECTED=$(echo $TOOLING | jq -r '.tools[] | select(.tool=="kubernetes") | .tool')
# Load Helm skill if detected
if [ "$HELM_DETECTED" = "helm" ]; then
echo "📦 Helm detected - loading Helm skill..."
cat skills/helm/SKILL.md
fi
# Load Kubernetes skill if detected
if [ "$K8S_DETECTED" = "kubernetes" ]; then
echo "☸️ Kubernetes detected - loading Kubernetes skill..."
cat skills/kubernetes/SKILL.md
fi
const { detectTooling, detectTool } = require('./skills/tooling-detector/detect-tooling.js');
// Detect all tools
async function analyzeProject(projectPath) {
const result = await detectTooling(projectPath);
if (result.detected) {
console.log(`Detected ${result.tools.length} tools:`);
for (const tool of result.tools) {
console.log(` - ${tool.name}: ${(tool.confidence * 100).toFixed(0)}%`);
}
}
}
// Detect specific tool
async function checkHelm(projectPath) {
const result = await detectTool(projectPath, 'helm');
if (result.detected) {
console.log(`Helm detected with ${(result.confidence * 100).toFixed(0)}% confidence`);
console.log('Signals:', result.signals);
}
}
File Existence: Check for tool-specific files
Chart.yaml, values.yamlkustomization.yamlDirectory Existence: Check for tool-specific directories
templates/k8s/, kubernetes/, manifests/Pattern Matching: Search file contents for patterns
apiVersion and kind fields in YAML filesConfidence Calculation:
confidence = (weighted_signal_sum / total_weight)
if (signal_count >= 3) {
confidence += multi_signal_boost // +10-20%
}
confidence = min(1.0, confidence)
Threshold Check: Return detected if confidence ≥70%
Modify tooling-patterns.json to customize detection:
{
"tools": {
"helm": {
"detection_signals": {
"chart_yaml": {
"weight": 0.6,
"files": ["Chart.yaml"]
}
}
}
},
"detection_rules": {
"minimum_confidence": 0.7,
"multi_signal_boost": 0.1,
"minimum_signals_for_boost": 3
}
}
Skip detection and manually specify tools:
# Force Helm detection
--tools helm
# Force multiple tools
--tools helm,kubernetes
# Adjust confidence threshold
--min-confidence 0.8
# Detect all tools
node detect-tooling.js [project-path]
# Detect specific tool
node detect-tooling.js [project-path] --tool <tool-name>
# Filter tools
node detect-tooling.js [project-path] --tools helm,kubernetes
# Custom confidence threshold
node detect-tooling.js [project-path] --min-confidence 0.8
0: Tools detected successfully1: No tools detected2: Error during detection# Run with all results
node detect-tooling.js . | jq '.all_results'
# Check confidence scores
node detect-tooling.js . --min-confidence 0.5
# Verify file patterns
ls Chart.yaml values.yaml templates/
Adjust confidence threshold:
node detect-tooling.js . --min-confidence 0.8
Check project size:
# Exclude large directories
echo "node_modules/" >> .gitignore
echo "vendor/" >> .gitignore
Project Structure:
my-chart/
├── Chart.yaml # ✅ Detected
├── values.yaml # ✅ Detected
├── templates/ # ✅ Detected
│ ├── deployment.yaml
│ └── service.yaml
└── .helmignore # ✅ Detected
Detection Result:
{
"detected": true,
"tools": [
{
"tool": "helm",
"confidence": 1.0,
"signals": {
"chart_yaml": true,
"values_yaml": true,
"templates_dir": true,
"config": true
},
"signal_count": 4
}
]
}
Project Structure:
k8s/
├── deployment.yaml # ✅ apiVersion, kind detected
├── service.yaml # ✅ apiVersion, kind detected
├── ingress.yaml # ✅ apiVersion, kind detected
└── kustomization.yaml # ✅ Detected
Detection Result:
{
"detected": true,
"tools": [
{
"tool": "kubernetes",
"confidence": 0.95,
"signals": {
"api_version": true,
"kind_field": true,
"kustomization": true,
"manifests_dir": true
},
"signal_count": 4
}
]
}
Project Structure:
my-app/
├── Chart.yaml # Helm
├── values.yaml # Helm
├── templates/ # Helm
│ └── *.yaml # Kubernetes manifests
└── kustomize/ # Kubernetes + Kustomize
└── kustomization.yaml
Detection Result:
{
"detected": true,
"tools": [
{
"tool": "helm",
"confidence": 1.0
},
{
"tool": "kubernetes",
"confidence": 0.9
},
{
"tool": "kustomize",
"confidence": 0.8
}
]
}
detectTooling(projectPath, options)Detect all infrastructure tooling in project.
Parameters:
projectPath (string): Root project directoryoptions (object):
tools (string[]): Specific tools to detectminimumConfidence (number): Minimum confidence threshold (default: 0.7)Returns: Promise<Object>
{
detected: boolean,
tools: Array<{
tool: string,
name: string,
confidence: number,
signals: Object,
signal_count: number
}>,
all_results: Array,
detection_summary: {
total_analyzed: number,
detected_count: number,
minimum_confidence: number
}
}
detectTool(projectPath, toolName, options)Detect specific tool (Helm or Kubernetes).
Parameters:
projectPath (string): Root project directorytoolName (string): Tool name (helm|kubernetes|kustomize|argocd)options (object): Same as detectTooling()Returns: Promise<Object>
{
detected: boolean,
tool: string,
name: string,
confidence: number,
signals: Object,
signal_count: number
}
1.0.0 (2025-10-23):
Last Updated: 2025-10-23 | Version: 1.0.0