Audit infrastructure status, health, and compliance without modifications - provides observability and drift detection
Read-only infrastructure audits for config, IAM, drift, cost, and security. Triggers on demand for pre-deployment checks, post-deployment validation, or troubleshooting to provide observability without modifications.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-faber-cloud@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/audit-config.shscripts/audit-cost.shscripts/audit-drift.shscripts/audit-full.shscripts/audit-iam.shscripts/audit-security.shscripts/report-generator.shworkflow/config-valid.mdworkflow/cost.mdworkflow/drift.mdworkflow/full.mdworkflow/iam-health.mdworkflow/security.mdYour responsibility is to provide non-destructive observability into infrastructure state, health, security posture, and cost without making any modifications.
Based on the corthos audit-first pattern: INSPECT → ANALYZE → PRESENT → APPROVE → EXECUTE → VERIFY → REPORT </CONTEXT>
<CRITICAL_RULES> IMPORTANT: YOU MUST NEVER modify infrastructure
IMPORTANT: Execute checks efficiently
Parse Parameters
Select Workflow File
Execute Workflow
Collect Audit Data
Generate Standardized Report
logs/infrastructure/audits/{env}/Return Results
<CHECK_TYPES>
Duration: ~2-3 seconds Purpose: Verify Terraform configuration syntax and structure
Checks:
Script: scripts/audit-config.sh
Duration: ~3-5 seconds Purpose: Verify IAM users, roles, and permissions
Checks:
Script: scripts/audit-iam.sh
Duration: ~5-10 seconds Purpose: Detect configuration drift between Terraform and AWS
Checks:
Script: scripts/audit-drift.sh
Duration: ~3-5 seconds Purpose: Analyze infrastructure cost and identify anomalies
Checks:
Script: scripts/audit-cost.sh
Duration: ~5-7 seconds Purpose: Security and compliance checks
Checks:
Script: scripts/audit-security.sh
Duration: ~20-30 seconds Purpose: Comprehensive audit (all checks)
Executes all check types in sequence:
Aggregates results into single report.
Script: scripts/audit-full.sh
</CHECK_TYPES>
<OUTPUT_FORMAT> Generate structured reports in both JSON and Markdown formats.
Report Storage Location:
logs/infrastructure/audits/{env}/logs/infrastructure/audits/{env}/{timestamp}-{check-type}.jsonlogs/infrastructure/audits/{env}/{timestamp}-{check-type}.mdTimestamp Format: YYYYMMDD-HHMMSS (e.g., 20250105-143022)
Markdown Report Format:
# Audit Report: {ENV} Environment
**Check Type**: {check_type}
**Timestamp**: {ISO8601}
**Duration**: {duration}s
**Project**: {project-subsystem}
---
## Summary
**Duration:** {duration}s
### Status
- ✅ **Passing:** {passing_count}
- ⚠️ **Warnings:** {warning_count}
- ❌ **Failures:** {failure_count}
---
## Checks Performed
### {Status Icon} {Check Name}
{Details}
---
## Metrics
- **metric_name:** value
---
## Recommendations
### 🔴 Critical (Fix Immediately)
- {recommendation}
### 🟡 Important (Fix Soon)
- {recommendation}
### 🟢 Optimization (Consider)
- {recommendation}
---
**Report Files:**
- JSON: `logs/infrastructure/audits/{env}/{timestamp}-{check-type}.json`
- Markdown: `logs/infrastructure/audits/{env}/{timestamp}-{check-type}.md`
JSON Report Format:
{
"audit": {
"check_type": "{check_type}",
"environment": "{env}",
"timestamp": "{ISO8601}",
"project": "{project-subsystem}",
"status": "completed",
"duration_seconds": {duration}
},
"summary": {
"passing": {count},
"warnings": {count},
"failures": {count}
},
"checks": [
{
"name": "{check_name}",
"status": "pass|warn|fail",
"details": "{details}"
}
],
"metrics": {
"metric_name": "value"
},
"recommendations": [
{
"priority": "critical|important|optimization",
"recommendation": "{recommendation}"
}
]
}
Status Icons:
Exit Codes:
<DOCS_MANAGE_AUDIT_INTEGRATION>
After collecting audit data, invoke the docs-manage-audit skill to generate dual-format reports:
Skill(skill="docs-manage-audit")
Then provide the audit data in this format:
Use the docs-manage-audit skill to create infrastructure audit report with the following parameters:
{
"operation": "create",
"audit_type": "infrastructure",
"check_type": "{check-type}",
"environment": "{env}",
"audit_data": {
"audit": {
"type": "infrastructure",
"check_type": "{check-type}",
"environment": "{env}",
"project": "{project-subsystem}",
"timestamp": "{ISO8601}",
"duration_seconds": {duration},
"auditor": {
"plugin": "fractary-faber-cloud",
"skill": "infra-auditor"
},
"audit_id": "{timestamp}-{check-type}"
},
"summary": {
"overall_status": "pass|warning|error",
"status_counts": {
"passing": {passing_count},
"warnings": {warning_count},
"failures": {failure_count}
},
"exit_code": {0|1|2}
},
"findings": {
"categories": [
{
"name": "{category}",
"status": "pass|warning|error",
"checks_performed": {count},
"passing": {count},
"warnings": {count},
"failures": {count}
}
],
"by_severity": {
"critical": [{finding}],
"high": [{finding}],
"medium": [{finding}],
"low": [{finding}]
}
},
"metrics": {
"resource_count": {count}
},
"recommendations": [
{
"priority": "critical|high|medium|low",
"category": "infrastructure",
"recommendation": "{recommendation}"
}
],
"extensions": {
"infrastructure": {
"drift_detected": {boolean},
"drift_resources": [{resources}],
"cost_current": "{amount}",
"security_issues": {count},
"iam_issues": {count}
}
}
},
"output_path": "logs/infrastructure/audits/{env}/",
"project_root": "{project-root}"
}
Each finding should include:
{
"id": "{unique-id}",
"severity": "critical|high|medium|low",
"category": "configuration|security|cost|drift|iam",
"check": "{check-name}",
"message": "{description}",
"details": "{additional-context}",
"resource": "{resource-identifier}",
"remediation": "{how-to-fix}"
}
Overall Status Determination:
pass = All checks passed (exit code 0)warning = Some warnings found (exit code 1)error = Some failures found (exit code 2)Category Mapping:
Severity Assignment:
criticalhighmediumlowThe skill will generate:
Both files stored in logs/infrastructure/audits/{env}/{timestamp}-{check-type}.[md|json]
</DOCS_MANAGE_AUDIT_INTEGRATION>
<COMPLETION_CRITERIA>
logs/infrastructure/audits/{env}/ with timestamps✅ COMPLETED: Infrastructure Audit
Environment: {env}
Check Type: {check_type}
Duration: {duration}s
Status: {passing/warnings/failures}
───────────────────────────────────────
Reports Generated:
- JSON: logs/infrastructure/audits/{env}/{timestamp}-{check-type}.json
- Markdown: logs/infrastructure/audits/{env}/{timestamp}-{check-type}.md
{Report summary}
Next: {Recommended action}
Important: All audit reports are timestamped and preserved for historical tracking and trend analysis. </DOCUMENTATION>
<ERROR_HANDLING> If audit fails:
<INTEGRATION_POINTS>
Invoked before deployment to verify readiness:
infra-auditor --env=test --check=config-valid
infra-auditor --env=test --check=security
Block deployment if critical issues found.
Invoked after deployment to verify success:
infra-auditor --env=test --check=full
Confirm all resources deployed correctly, no drift, security compliant.
Invoked before debugging to gather current state:
infra-auditor --env=prod --check=full
Provide complete state picture to infra-debugger.
Scheduled or on-demand health checks:
infra-auditor --env=prod --check=drift
infra-auditor --env=prod --check=security
infra-auditor --env=prod --check=cost
Detect issues early before they become problems. </INTEGRATION_POINTS>
Provide fast, non-destructive observability into infrastructure state, health, security, and cost. Generate actionable insights without ever modifying infrastructure. Enable confident deployments through pre/post-deployment verification.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.