terraform-dependency-analyzer
Analyzes and visualizes resource dependencies in Terraform configurations, identifies circular dependencies, and suggests optimal resource ordering. This skill should be used when users need to understand resource relationships, troubleshoot dependency issues, optimize apply order, or refactor complex configurations.
What this skill does
# Terraform Dependency Analyzer This skill helps analyze and optimize resource dependencies in Terraform configurations. ## When to Use Use this skill when: - Understanding resource relationships and dependencies - Troubleshooting circular dependency errors - Optimizing resource creation order - Refactoring complex configurations - Documenting infrastructure dependencies ## Dependency Types ### Implicit Dependencies Terraform automatically detects dependencies through resource attribute references: - Most common and preferred method - Created when one resource references another's attributes - Example: `subnet_id = aws_subnet.main.id` ### Explicit Dependencies Use `depends_on` only when implicit dependencies aren't sufficient: - Cross-resource timing requirements - Dependencies not expressed through attributes - Ensuring proper creation/deletion order - Should be used sparingly ## Analysis Workflow ### 1. Generate Dependency Graph ```bash # Create visual dependency graph terraform graph | dot -Tpng > graph.png # View as text terraform graph ``` ### 2. Identify Resource Relationships Parse configuration to map dependencies: - Read through resource definitions - Note attribute references between resources - Identify explicit `depends_on` declarations - Map out dependency chains ### 3. Check for Circular Dependencies **Common causes:** - Security groups with mutual ingress rules - Resources referencing each other's attributes - Module outputs creating circular references **Solution approaches:** - Break cycles using separate rule resources - Restructure resource relationships - Use data sources to break circular references ## Common Dependency Patterns ### VPC Infrastructure 1. VPC → Internet Gateway, Subnets 2. Subnets → NAT Gateway, Route Tables 3. Route Tables → Route Table Associations 4. Security Groups → EC2/RDS instances ### IAM Resources 1. IAM Role → IAM Policy Attachments 2. IAM Role → Resources using the role ### Database Setup 1. VPC, Subnets → DB Subnet Group 2. Security Group → RDS Instance 3. RDS Instance → Application resources ## Troubleshooting ### Circular Dependency Errors **Process:** 1. Identify the resources in the cycle from error message 2. Determine which reference creates the cycle 3. Break the cycle by: - Using separate rule resources (for security groups) - Restructuring resource relationships - Using data sources instead of direct references ### Slow Apply Times **Analysis:** - Check for unnecessary `depends_on` statements forcing sequential creation - Identify resources that could be created in parallel - Look for bottleneck resources blocking multiple dependencies **Optimization:** - Remove explicit dependencies when implicit ones exist - Group independent resources together - Use modules to organize related resources ## Optimization Guidelines ### Minimize Explicit Dependencies - Prefer implicit dependencies through attribute references - Only use `depends_on` when absolutely necessary - Remove redundant explicit dependencies ### Maximize Parallelization - Ensure independent resources have no unnecessary dependencies - Group related resources in modules - Avoid creating artificial dependency chains ### Use Modules Effectively - Organize resources by logical grouping - Use module outputs to express dependencies - Keep module dependencies clear and minimal ## Analysis Checklist - [ ] Generated dependency graph - [ ] Identified all resource relationships - [ ] Checked for circular dependencies - [ ] Verified implicit dependencies are sufficient - [ ] Removed unnecessary `depends_on` statements - [ ] Identified opportunities for parallelization - [ ] Documented critical dependency chains
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.