smoke-test-external-services
# Smoke Test External Services Skill
What this skill does
# Smoke Test External Services Skill
**Quick Reference** - Load this first for fast context (~3KB)
## Mission
Execute comprehensive external service integration smoke tests to validate third-party APIs, payment gateways, email/SMS providers, and monitoring service connectivity during release workflows.
## Core Capabilities
- **Service Connectivity**: Validate external service reachability and authentication
- **API Integration**: Test third-party API endpoints (Stripe, Twilio, SendGrid, etc.)
- **Circuit Breaker Testing**: Validate failover and graceful degradation
- **Rate Limit Handling**: Test rate limit detection and backoff strategies
- **Webhook Validation**: Verify webhook endpoints and signature validation
- **Service Health Monitoring**: Check external service status pages
## When to Use This Skill
Use this skill when:
- Executing pre-release smoke tests (validate external dependencies)
- Testing canary deployments (monitor external API quotas)
- Verifying rollback success (ensure external service connectivity restored)
- Running scheduled health checks (detect external service degradation)
- Validating disaster recovery (test failover to backup providers)
## Quick Start
### 1. Load Skill in Agent
```yaml
skills:
- name: smoke-test-external-services
path: skills/smoke-test-external-services/SKILL.md
```
### 2. Execute External Service Tests
```javascript
const { SmokeTestExternalServices } = require('./scripts/test-integrations.js');
const tester = new SmokeTestExternalServices({
services: [
{
name: 'stripe',
type: 'payment',
baseUrl: 'https://api.stripe.com',
apiKey: process.env.STRIPE_API_KEY
},
{
name: 'sendgrid',
type: 'email',
baseUrl: 'https://api.sendgrid.com',
apiKey: process.env.SENDGRID_API_KEY
}
]
});
const result = await tester.executeTests({
environment: 'staging',
tests: ['connectivity', 'authentication', 'basic-operation']
});
if (result.passed) {
console.log('✅ External service smoke tests passed');
} else {
console.error('❌ External service smoke tests failed');
}
```
### 3. Configuration Template
```yaml
environment: staging
services:
- name: stripe
type: payment
baseUrl: https://api.stripe.com
apiKey: ${STRIPE_API_KEY}
tests:
- connectivity
- authentication
- create-test-charge
- name: sendgrid
type: email
baseUrl: https://api.sendgrid.com
apiKey: ${SENDGRID_API_KEY}
tests:
- connectivity
- authentication
- send-test-email
```
## External Service Categories
### 1. Payment Gateways
- **Stripe**: Create test charge, retrieve customer, list payment methods
- **PayPal**: Create test transaction, verify webhook signature
- **Square**: Create test payment, retrieve merchant info
- **Braintree**: Generate client token, create test transaction
### 2. Communication Services
- **SendGrid**: Send test email, verify API key, check email quota
- **Twilio**: Send test SMS, make test call, verify webhook
- **Mailgun**: Send test email, validate domain, check quota
- **Postmark**: Send test email, retrieve server info
### 3. Cloud Storage
- **AWS S3**: Upload test file, retrieve object, verify bucket access
- **Google Cloud Storage**: Upload test file, retrieve object, check quota
- **Azure Blob Storage**: Upload test blob, retrieve blob, verify container access
### 4. Monitoring & Analytics
- **Datadog**: Send test metric, create test event, verify API key
- **New Relic**: Send test transaction, create test deployment marker
- **Sentry**: Send test error, verify DSN, check project quota
- **Segment**: Send test event, verify write key
### 5. Authentication & Identity
- **Auth0**: Verify tenant, test authentication flow, check quota
- **Okta**: Verify domain, test user authentication, check API rate limits
- **Firebase Auth**: Verify project, test authentication, check quota
## Performance SLAs
```javascript
const SLA_TARGETS = {
connectivity: 2000, // Connection test: ≤2000ms
authentication: 3000, // Auth test: ≤3000ms
basicOperation: 5000, // Basic API operation: ≤5000ms
webhookValidation: 1000, // Webhook validation: ≤1000ms
timeout: 10000 // Global timeout: ≤10000ms
};
```
## Pass/Fail Criteria
**Pass**: All external service tests must pass
- ✅ All services reachable and responding
- ✅ Authentication successful for all services
- ✅ Basic operations execute successfully
- ✅ No rate limit violations
- ✅ Webhook signatures validate correctly
**Fail**: Any external service test failure blocks deployment
- ❌ Any service unreachable or timing out
- ❌ Authentication failures
- ❌ API operations failing
- ❌ Rate limit exceeded
- ❌ Webhook signature validation failures
## Execution Points
External service smoke tests are executed at these points in the release workflow:
1. **Pre-Release** (before staging deployment): Validate all external service integrations
2. **Post-Staging** (after staging deployment): Verify external services in staging environment
3. **Canary 5%** (5% traffic): Test external service rate limits with minimal load
4. **Canary 25%** (25% traffic): Validate external service performance under moderate load
5. **Canary 100%** (100% traffic): Test external services at full production load
6. **Post-Production** (after production deployment): Verify production external service health
7. **Post-Rollback** (after rollback): Validate external service connectivity after rollback
## Common Patterns
### Pattern 1: Simple Connectivity Test
```javascript
const result = await tester.testServiceConnectivity({
name: 'stripe',
url: 'https://api.stripe.com/v1/customers',
timeout: 5000
});
```
### Pattern 2: Authentication Test
```javascript
const result = await tester.testAuthentication({
name: 'sendgrid',
url: 'https://api.sendgrid.com/v3/user/profile',
apiKey: process.env.SENDGRID_API_KEY
});
```
### Pattern 3: Basic Operation Test
```javascript
const result = await tester.testBasicOperation({
service: 'stripe',
operation: 'create-test-charge',
params: {
amount: 100,
currency: 'usd',
source: 'tok_visa'
}
});
```
### Pattern 4: Webhook Validation
```javascript
const result = await tester.testWebhookValidation({
service: 'stripe',
webhookSecret: process.env.STRIPE_WEBHOOK_SECRET,
payload: mockWebhookPayload,
signature: mockSignature
});
```
## Output Format
```javascript
{
passed: true,
details: {
totalServices: 5,
passed: 5,
failed: 0,
executionTime: 3456
},
reason: 'External service smoke tests passed: All 5 services healthy',
metrics: {
servicesPassed: 5,
servicesFailed: 0,
averageResponseTime: 456,
executionTime: 3456
},
results: [
{
service: 'stripe',
type: 'payment',
tests: {
connectivity: { passed: true, duration: 234 },
authentication: { passed: true, duration: 456 },
basicOperation: { passed: true, duration: 789 }
},
overall: { passed: true, duration: 1479 }
}
]
}
```
## Circuit Breaker Pattern
```javascript
const tester = new SmokeTestExternalServices({
circuitBreaker: {
enabled: true,
failureThreshold: 3, // Open circuit after 3 failures
successThreshold: 2, // Close circuit after 2 successes
timeout: 30000, // Half-open state after 30 seconds
fallbackService: 'backup-provider'
}
});
```
## Rate Limit Handling
```javascript
const tester = new SmokeTestExternalServices({
rateLimiting: {
detectRateLimits: true,
retryAfterHeader: 'Retry-After',
maxRetries: 3,
backoffMultiplier: 2
}
});
```
## Need More Detail?
For comprehensive documentation including:
- Advanced testing patterns (failover testing, quota monitoring, webhook security)
- Multi-provider configurations (backup providers, load balancing)
- Integration with monitoring systems (Datadog, New Relic, Sentry)
- Custom validation rules andRelated in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.