**Auto-detect AWS, GCP, or Azure usage with 95%+ accuracy using multi-signal analysis.**
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.
cloud-provider-patterns.jsondetect-cloud-provider.jstest-detect-cloud-provider.jsAuto-detect AWS, GCP, or Azure usage with 95%+ accuracy using multi-signal analysis.
const { detectCloudProvider } = require('./detect-cloud-provider.js');
// Auto-detect cloud provider
const result = await detectCloudProvider('/path/to/project');
if (result.detected) {
console.log(`Detected: ${result.name}`);
console.log(`Confidence: ${(result.confidence * 100).toFixed(1)}%`);
console.log(`Signals: ${result.signal_count}`);
}
// Manual override
const awsResult = await detectCloudProvider('/path/to/project', {
provider: 'aws'
});
Terraform (weight: 0.5) - Highest priority
provider "aws", provider "google", provider "azurerm"aws_vpc, google_compute_instance, azurerm_storage_accountPackage Manifests (weight: 0.3)
@aws-sdk/, @google-cloud/, @azure/boto3, google-cloud-*, azure-*Config Files (weight: 0.3)
.aws/config, .gcloud/, .azure/cloudformation.yml, cloudbuild.yaml, azuredeploy.jsonCLI Scripts (weight: 0.2)
aws configure, gcloud compute, az vm.sh filesDocker (weight: 0.2)
FROM public.ecr.aws, FROM gcr.io, FROM mcr.microsoft.comBase Score = Σ(detected_signals × signal_weight) / Σ(all_signal_weights)
Multi-Signal Boost:
if (signal_count >= 3) {
confidence += 0.2 // Up to maximum of 1.0
}
Detection Threshold: ≥0.7 (70%)
# Detect in current directory
node detect-cloud-provider.js
# Detect in specific project
node detect-cloud-provider.js /path/to/project
# Manual override
node detect-cloud-provider.js /path/to/project --provider aws
# Custom confidence threshold
node detect-cloud-provider.js /path/to/project --min-confidence 0.8
# Exit codes:
# 0 = Provider detected
# 1 = No provider detected
# 2 = Error occurred
{
"detected": true,
"provider": "aws",
"name": "Amazon Web Services (AWS)",
"confidence": 0.95,
"signals": {
"terraform": true,
"npm": true,
"python": false,
"cli": true,
"docker": true,
"config": true
},
"signal_count": 5,
"all_results": [
{
"provider": "aws",
"name": "Amazon Web Services (AWS)",
"confidence": 0.95,
"signals": {...},
"signal_count": 5
},
{
"provider": "gcp",
"name": "Google Cloud Platform (GCP)",
"confidence": 0.12,
"signals": {...},
"signal_count": 1
}
]
}
# In agent YAML behavior section:
**Cloud Provider Detection**:
- **Auto-detect**: Run `node skills/cloud-provider-detector/detect-cloud-provider.js`
at task start to identify AWS/GCP/Azure usage
- **Load Skills**: If AWS detected (≥70% confidence), load AWS cloud skill
- **Multi-cloud**: If multiple providers detected, load all relevant skills
- **Manual Override**: Accept `--cloud-provider` flag to bypass detection
// 1. Detect cloud provider
const detection = await detectCloudProvider(projectPath);
// 2. Load appropriate skill
if (detection.detected) {
if (detection.provider === 'aws') {
await loadSkill('skills/aws-cloud/SKILL.md');
} else if (detection.provider === 'gcp') {
await loadSkill('skills/gcp-cloud/SKILL.md');
} else if (detection.provider === 'azure') {
await loadSkill('skills/azure-cloud/SKILL.md');
}
}
// 3. Execute infrastructure tasks with cloud-specific knowledge
aws_vpc, aws_s3_bucket, aws_lambda_function@aws-sdk/client-s3, aws-cdk-libboto3, botocoreaws configure, aws s3 syncFROM public.ecr.aws/lambda/nodejsgoogle_compute_instance, google_storage_bucket@google-cloud/storage, googleapisgoogle-cloud-storage, google-api-python-clientgcloud compute, gsutil cpFROM gcr.io/google-appengine/nodejsazurerm_virtual_machine, azurerm_storage_account@azure/storage-blob, azure-functions-core-toolsazure-storage-blob, msrestazureaz vm create, az storage accountFROM mcr.microsoft.com/azure-functions/nodetry {
const result = await detectCloudProvider(projectPath);
} catch (error) {
if (error.code === 'ENOENT') {
console.error('Project directory not found');
} else if (error.message.includes('patterns.json')) {
console.error('Detection patterns file missing or invalid');
} else {
console.error('Detection failed:', error.message);
}
}
Low Confidence Scores (<0.7):
False Positives:
No Detection:
Edit cloud-provider-patterns.json:
{
"providers": {
"digitalocean": {
"name": "DigitalOcean",
"confidence_boost": 0.3,
"detection_signals": {
"terraform": {
"weight": 0.5,
"patterns": ["provider \"digitalocean\"", "digitalocean_droplet"]
}
}
}
}
}
{
"detection_rules": {
"minimum_confidence": 0.6, // Lower = more permissive
"multi_signal_boost": 0.3, // Higher = favor multi-signal
"minimum_signals_for_boost": 2 // Lower = boost earlier
}
}
--provider flag for edge casesglob for file pattern matchingInstall with:
npm install glob