Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when working with Terragrunt — DRY multi-env configs, module dependencies, remote state orchestration — even when the user just says 'deploy this to staging and prod' without naming Terragrunt.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill when working with Terragrunt configurations (.hcl files), managing environment-specific settings, or orchestrating multi-module deployments.
root.hcl in the target environment (environments/pro/root.hcl or environments/sta/root.hcl).terragrunt.hcl files in sibling directories for patterns.variables.tf to understand required inputs.environments/
├── pro/
│ ├── root.hcl # Root config (backend, providers)
│ ├── core/
│ │ ├── terragrunt.hcl # Core module config
│ │ └── {service}.yaml # Module-specific variables
│ ├── {service}/
│ │ ├── terragrunt.hcl # Service module config
│ │ └── {service}.yaml # Service-specific variables
│ └── ...
└── sta/
├── root.hcl
└── ...
root.hcl)The root HCL defines shared settings for all modules in an environment:
locals {
env_files = merge(
yamldecode(file(".env.yaml")), # Base env vars
try(yamldecode(file(".env.local.yaml")), {}) # Local overrides
)
env = { for k, v in local.env_files : k => get_env(k, v) }
}
.env.yaml — committed, shared environment config.env.local.yaml — gitignored, local overrides (AWS profiles, etc.)remote_state {
backend = "s3"
config = {
bucket = "${local.env.aws_account_name}-terraform-remote-state"
key = "${path_relative_to_include()}/terraform.tfstate"
dynamodb_table = "${local.env.aws_account_name}-terraform-remote-state"
profile = local.env.aws_profile
region = local.env.aws_region
encrypt = true
}
}
Providers are auto-generated by Terragrunt (not manually written):
generate "provider" {
path = "provider-aws.tf"
if_exists = "overwrite_terragrunt"
contents = <<EOF
provider "aws" {
allowed_account_ids = ["${local.env.aws_account_id}"]
profile = "${local.env.aws_profile}"
region = "${local.env.aws_region}"
}
EOF
}
terraform_binary = "terraform" # Explicitly NOT OpenTofu
terragrunt.hcl)Each module directory contains a terragrunt.hcl that:
locals {
project = yamldecode(file("{service}.yaml"))
}
include {
path = find_in_parent_folders("root.hcl")
expose = true
}
terraform {
source = "../../..//modules/{service}"
}
dependency "core" {
config_path = "../core"
}
inputs = merge(
dependency.core.outputs,
local.project
)
my-service.yaml).terragrunt.hcl.dependency blocks to reference other modules.dependency.core.outputs.inputs.Some modules need extra providers (e.g., New Relic). Generate them in the module's terragrunt.hcl:
generate "provider_newrelic" {
path = "provider-newrelic.tf"
if_exists = "overwrite_terragrunt"
contents = <<EOF
provider "newrelic" {
account_id = "${include.locals.env.newrelic_account_id}"
api_key = "${get_env("TF_VAR_newrelic_api_key", include.locals.env.newrelic_api_key)}"
}
EOF
}
The project uses devbox for tool management:
{
"packages": ["terragrunt", "awscli2", "terraform@latest"]
}
devbox run i # terragrunt init
devbox run p # terragrunt plan
devbox run a # terragrunt apply
devbox run d # terragrunt destroy
dependency blocks create implicit ordering — circular dependencies cause cryptic errors.inputs to pass them through.include blocks — use DRY patterns.terraform_binary = "terraform"..env.yaml..env.local.yaml — it contains local AWS profile overrides.root.hcl without understanding the impact on all modules.dependency blocks — they ensure correct apply order.terraform commands directly — always use terragrunt as the wrapper.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
日本語の概要は準備中です。原文の説明を表示しています。