[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BYD4ZVD6G4S19AVDAB6EQC":3,"skill-same:01M6BYD4ZVD6G4S19AVDAB6EQC":135},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":34,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":14,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M6BYD4ZVD6G4S19AVDAB6EQC","terraform-skill",null,"Use when writing, reviewing, or debugging Terraform\u002FOpenTofu modules, tests, CI, scans, or state ops - diagnoses failure mode (identity churn, secrets, blast radius, CI drift, state corruption) with version-aware guards.","nidr0x\u002Fdotfiles","nidr0x","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F15057077?v=4","01M6BYB2MXDFPX8V5GE3YZ0YVH","Carlos","01M6BYB2SC8CS5KJA0RCTX78RR",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002FSKILL.md",[18,23,26,29],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[35,36,37,38,39,40,41,42,43,44],"terraform","terraform skill","writing","identity","debugging","blast radius","state","ci","radius","secrets","2026-11-10 10:12:30",false,"---\nname: terraform-skill\ndescription: Use when writing, reviewing, or debugging Terraform\u002FOpenTofu modules, tests, CI, scans, or state ops - diagnoses failure mode (identity churn, secrets, blast radius, CI drift, state corruption) with version-aware guards.\nlicense: Apache-2.0\nmetadata:\n  author: Anton Babenko\n  version: 1.10.0\n---\n\n# Terraform Skill for Claude\n\nDiagnose-first guidance for Terraform and OpenTofu. Core file is a workflow; depth lives in references loaded on demand.\n\n## Response Contract\n\nEvery Terraform\u002FOpenTofu response must include:\n\n1. **Assumptions & version floor** — runtime (`terraform` or `tofu`), exact version, providers, state backend, execution path (local\u002FCI\u002FCloud\u002FAtlantis), environment criticality. State assumptions explicitly if the user did not provide them.\n2. **Risk category addressed** — one or more of: identity churn, secret exposure, blast radius, CI drift, compliance gaps, state corruption, provider upgrade risk, testing blind spots.\n3. **Chosen remediation & tradeoffs** — what was chosen, what was traded off, why.\n4. **Validation plan** — exact commands (`fmt -check`, `validate`, `plan -out`, policy check) tailored to runtime and risk tier.\n5. **Rollback notes** — for any destructive or state-mutating change: how to undo, what evidence to keep.\n\nNever recommend direct production apply without a reviewed plan artifact and approval.\n\n## Workflow\n\n1. **Capture execution context** — runtime+version, provider(s), backend, execution path, environment criticality.\n2. **Diagnose failure mode(s)** using the routing table below. If intent spans categories, load both references.\n3. **Load only the matching reference file(s)** — do not preload depth the task does not need.\n4. **Propose fix with risk controls** — why this addresses the mode, what could still go wrong, guardrails (tests\u002Fapprovals\u002Frollback).\n5. **Generate artifacts** — HCL, migration blocks (`moved`, `import`), CI changes, policy rules.\n6. **Validate before finalizing** — run validation commands tailored to risk tier.\n7. **Emit the Response Contract** at the end.\n\n## Diagnose Before You Generate\n\n| Failure category | Symptoms | Primary references |\n|------------------|----------|--------------------|\n| **Identity churn** | Resource addresses shift after refactor, `count` index churn, missing `moved` blocks | [Code Patterns: count vs for_each](references\u002Fcode-patterns.md#count-vs-for_each-deep-dive), [Code Patterns: moved blocks](references\u002Fcode-patterns.md#moved-blocks-terraform-11), [Code Patterns: LLM mistakes](references\u002Fcode-patterns.md#llm-mistake-checklist--code-patterns) |\n| **Secret exposure** | Secrets in defaults, state, logs, CI artifacts | [Security & Compliance](references\u002Fsecurity-compliance.md), [Code Patterns: write-only](references\u002Fcode-patterns.md#write-only-arguments-terraform-111), [State Management](references\u002Fstate-management.md) |\n| **Blast radius** | Oversized stacks, shared prod\u002Fnon-prod state, unsafe applies | [State Management](references\u002Fstate-management.md), [Module Patterns](references\u002Fmodule-patterns.md) |\n| **CI drift** | Local plan ≠ CI plan, apply without reviewed artifact, unpinned versions | [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md), [Code Patterns: versions](references\u002Fcode-patterns.md#version-management) |\n| **Compliance gaps** | Missing policy stage, no approval model, no evidence retention | [Security & Compliance](references\u002Fsecurity-compliance.md), [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md) |\n| **Testing blind spots** | Plan-only validation of computed values, set-type indexing, mock\u002Freal confusion | [Testing Frameworks](references\u002Ftesting-frameworks.md) |\n| **State corruption \u002F recovery** | Stuck lock, backend migration, drift reconciliation | [State Management](references\u002Fstate-management.md) |\n| **Provider upgrade risk** | Breaking-change provider bump, unpinned modules | [Code Patterns: versions](references\u002Fcode-patterns.md#version-management), [Module Patterns](references\u002Fmodule-patterns.md) |\n| **Provider lifecycle** | Removing a provider with resources still in state, orphaned resources, `removed` block usage | [State Management: Provider Removal](references\u002Fstate-management.md#provider-removal) |\n| **Navigation \u002F safe-rename blind spots** | Cannot locate symbol defs\u002Frefs semantically, value-symbol rename done as blind text replace, grep-only refactor missing refs, hallucinated `rg` shim | [Code Intelligence](references\u002Fcode-intelligence-lsp.md#terraform-ls-capability-matrix) |\n\n## When to Use This Skill\n\n**Activate when:** creating or reviewing Terraform\u002FOpenTofu configurations or modules, setting up or debugging tests, structuring multi-environment deployments, implementing IaC CI\u002FCD, choosing module patterns or state organization, configuring or migrating remote state backends.\n\n**Don't use for:** basic HCL syntax questions Claude already knows, provider API reference (link to docs), cloud-platform questions unrelated to Terraform\u002FOpenTofu.\n\n## Core Principles\n\n### Module Hierarchy\n\n| Type | When to Use | Scope |\n|------|-------------|-------|\n| **Resource module** | Single logical group of connected resources | VPC + subnets, SG + rules |\n| **Infrastructure module** | Collection of resource modules for a purpose | Multiple resource modules in one region\u002Faccount |\n| **Composition** | Complete infrastructure | Spans multiple regions\u002Faccounts |\n\nFlow: resource → resource module → infrastructure module → composition.\n\n### Directory Layout\n\n```\nenvironments\u002F   # prod\u002F staging\u002F dev\u002F  — per-env configurations\nmodules\u002F        # networking\u002F compute\u002F data\u002F — reusable modules\nexamples\u002F       # minimal\u002F complete\u002F — docs + integration fixtures\n```\n\nSeparate **environments** from **modules**. Use `examples\u002F` as both documentation and test fixtures. Keep modules small and single-responsibility.\n\nSee [Module Patterns](references\u002Fmodule-patterns.md) for architecture principles, naming conventions, variable\u002Foutput contracts.\n\n### Naming Conventions (summary)\n\n- Descriptive resource names (`aws_instance.web_server`, not `aws_instance.main`)\n- Reserve `this` for genuine singleton resources only\n- Prefix variables with context (`vpc_cidr_block`, not `cidr`)\n- Standard files: `main.tf`, `variables.tf`, `outputs.tf`, `versions.tf`\n\nSee [Module Patterns: Variable Naming](references\u002Fmodule-patterns.md) and [Code Patterns: Block Ordering](references\u002Fcode-patterns.md#block-ordering--structure) for examples.\n\n### Block Ordering (summary)\n\nResource blocks: `count`\u002F`for_each` first → arguments → `tags` → `depends_on` → `lifecycle`.\nVariable blocks: `description` → `type` → `default` → `validation` → `nullable` → `sensitive`.\n\nSee [Code Patterns: Block Ordering & Structure](references\u002Fcode-patterns.md#block-ordering--structure) for the full rules and examples.\n\n## Testing Strategy\n\n### Decision Matrix: Which Testing Approach?\n\n| Situation | Approach | Tools | Cost |\n|-----------|----------|-------|------|\n| Quick syntax check | Static analysis | `validate`, `fmt` | Free |\n| Pre-commit validation | Static + lint | `validate`, `tflint`, `trivy`, `checkov` | Free |\n| Terraform 1.6+, simple logic | Native test framework | `terraform test` | Free-Low |\n| Pre-1.6, or Go expertise | Integration testing | Terratest | Low-Med |\n| Security\u002Fcompliance focus | Policy as code | OPA, Sentinel | Free |\n| Cost-sensitive workflow | Mock providers (1.7+) | Native tests + mocks | Free |\n| Multi-cloud, complex | Full integration | Terratest + real infra | Med-High |\n\n### Native Test Rules (1.6+)\n\nBefore writing test code: validate resource schemas via Terraform MCP so assertions target real attributes.\n\n- `command = plan` — fast, for input-derived values only\n- `command = apply` — required for **computed values** (ARNs, generated names) and **set-type nested blocks**\n- Set-type blocks cannot be indexed with `[0]` — use `for` expressions or materialize via `command = apply`\n- Common set types: S3 encryption rules, lifecycle transitions, IAM policy statements\n\nSee [Testing Frameworks](references\u002Ftesting-frameworks.md) for static-analysis pipelines, native-test patterns, Terratest integration, mock providers, and the full LLM-mistake checklist.\n\n## Count vs For_Each — Quick Rule\n\n| Scenario | Use | Why |\n|----------|-----|-----|\n| Boolean condition (create \u002F don't) | `count = condition ? 1 : 0` | Optional singleton toggle |\n| Items may be reordered or removed | `for_each = toset(list)` | Stable resource addresses |\n| Reference by key | `for_each = map` | Named access |\n| Multiple named resources | `for_each` | Better identity stability |\n\n**Never** use list index as long-lived identity — removing a middle element reshuffles every address after it. For the decision matrix, safe migration playbook, `moved` block patterns, and known-at-plan failure cases, see [Code Patterns: count vs for_each](references\u002Fcode-patterns.md#count-vs-for_each-deep-dive).\n\n## Locals for Dependency Management\n\nUsing `try()` in a local to prefer a conditional resource's attribute over its parent is a specialized but high-value pattern — it forces correct deletion order without explicit `depends_on`. Common use: VPC + secondary CIDR associations + subnets.\n\nSee [Code Patterns: Locals for Dependency Management](references\u002Fcode-patterns.md#locals-for-dependency-management) for the full pattern and worked example.\n\n## Module Development\n\nStandard layout:\n\n```\nmy-module\u002F\n├── README.md       # Usage documentation\n├── main.tf         # Primary resources\n├── variables.tf    # Typed inputs with descriptions\n├── outputs.tf      # Output values\n├── versions.tf     # required_version + required_providers\n├── examples\u002F\n│   ├── minimal\u002F\n│   └── complete\u002F\n└── tests\u002F\n    └── module_test.tftest.hcl   # or Go for Terratest\n```\n\n**Variable contracts**: always `description`, always explicit `type`, use `validation` for complex constraints, use `sensitive = true` for secrets, prefer `optional()` with typed defaults (1.3+) over untyped `map(any)`.\n\n**Output contracts**: always `description`, mark sensitive outputs, expose stable subsets (not whole provider objects).\n\nSee [Module Patterns](references\u002Fmodule-patterns.md) for the full contract patterns, module release checklist, and LLM-mistake checklist.\n\n## CI\u002FCD\n\nPipeline stages: **validate** → **test** → **plan** → **apply** (with environment protection).\n\nCost control: mock providers on PR validation, real-cloud integration only on main or scheduled, tag test resources, auto-cleanup.\n\nDrift prevention: pin runtime and providers, commit `.terraform.lock.hcl`, apply the **reviewed plan artifact** from the plan stage (do not re-run `plan` inside the apply job), run policy\u002Fsecurity stage on every path to apply.\n\nSee [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md) for GitHub Actions, GitLab CI, and Atlantis templates plus the LLM-mistake checklist.\n\n## Security & Compliance\n\n**Essential checks:**\n\n```bash\ntrivy config .\ncheckov -d .\n```\n\n**Don't:** store secrets in variables or `.tfvars`, use default VPC, skip encryption, open security groups to `0.0.0.0\u002F0`, use inline `ingress`\u002F`egress` blocks in `aws_security_group`.\n\n**Do:** source secrets from AWS Secrets Manager \u002F Parameter Store or use `write_only` arguments on 1.11+, create dedicated VPCs, enforce encryption at rest and TLS, least-privilege SGs, use separate `aws_vpc_security_group_{ingress,egress}_rule` resources (AWS provider v5+).\n\nMarking a variable `sensitive = true` masks display only — the value still lives in state. Use `write_only` \u002F `*_wo` on 1.11+, or keep secret material out of Terraform entirely via runtime lookups.\n\nSee [Security & Compliance](references\u002Fsecurity-compliance.md) for trivy\u002Fcheckov pipelines, state-file hardening, compliance mappings, and the LLM-mistake checklist.\n\n## State Management\n\n**Never use local state in teams or production.** Remote backends provide automatic locking, encryption, versioning, audit logging, and safe collaboration.\n\n### Minimum Viable Backend (AWS S3, 1.10+)\n\n```hcl\nterraform {\n  backend \"s3\" {\n    bucket        = \"my-terraform-state\"\n    key           = \"prod\u002Fvpc\u002Fterraform.tfstate\"\n    region        = \"us-east-1\"\n    encrypt       = true\n    use_lockfile  = true   # Native S3 locking, 1.10+\n  }\n}\n```\n\nOn Terraform \u003C 1.10, use `dynamodb_table = \"terraform-state-lock\"` instead of `use_lockfile`. Azure Storage, GCS, and Terraform Cloud all offer built-in locking — see the State Management reference for syntax.\n\n### State Organization\n\n| Pattern | Use When | Example Path |\n|---------|----------|--------------|\n| **Per environment** | Different teams per env | `prod\u002Fterraform.tfstate`, `staging\u002F...` |\n| **Per component** | Independent lifecycles | `prod\u002Fvpc\u002F`, `prod\u002Feks\u002F`, `prod\u002Frds\u002F` |\n| **Hybrid** (recommended) | Both benefits | `prod\u002Fnetworking\u002F`, `prod\u002Fcompute\u002F`, `staging\u002Fnetworking\u002F` |\n\nSplit state when: different teams, different update cadences, or >500 resources. Combine when: tightly coupled resources, \u003C100 resources, same lifecycle.\n\nSee [State Management](references\u002Fstate-management.md) for locking, migration, multi-team isolation, disaster recovery, and the LLM-mistake checklist.\n\n## Version Management\n\n| Component | Strategy | Example |\n|-----------|----------|---------|\n| Terraform runtime | Pin minor | `required_version = \"~> 1.9\"` |\n| Providers | Pin major | `version = \"~> 5.0\"` |\n| Modules (prod) | Pin exact | `version = \"5.1.2\"` |\n| Modules (dev) | Allow patch | `version = \"~> 5.1\"` |\n\nCommit `.terraform.lock.hcl` intentionally. Keep provider\u002Fruntime upgrades in a separate PR from functional changes. See [Code Patterns: Version Management](references\u002Fcode-patterns.md#version-management) for constraint syntax and upgrade workflow.\n\n## Modern Terraform Features (1.0+)\n\n| Feature | Min version | Common use |\n|---------|-------------|------------|\n| `try()` | 0.13+ | Safe fallbacks, replaces `element(concat())` |\n| `nullable = false` | 1.1+ | Prevent `null` silently overriding defaults |\n| `moved` blocks | 1.1+ | Refactor without destroy\u002Frecreate |\n| `optional()` with defaults | 1.3+ | Typed object attributes |\n| `import` blocks | 1.5+ | Declarative imports, reviewable in VCS |\n| `check` blocks | 1.5+ | Runtime assertions |\n| Native `terraform test` | 1.6+ | Built-in test framework |\n| Mock providers | 1.7+ | Cost-free unit testing |\n| `removed` blocks | 1.7+ | Declarative resource removal |\n| Provider-defined functions | 1.8+ | Provider-specific transformations (requires provider to declare functions) |\n| Cross-variable validation | 1.9+ | Reference other `var.*` in `validation` blocks |\n| `write_only` arguments | 1.11+ | Secrets never stored in state |\n| S3 native lock-file | 1.10+ | State locking without DynamoDB |\n\nBefore emitting a feature, verify the runtime floor. See [Code Patterns: Feature Guard Table](references\u002Fcode-patterns.md#feature-guard-table--version-floor--common-llm-errors) for the full table with common LLM error patterns per feature.\n\n## Runtime-Specific Guidance\n\n- **Terraform 1.0-1.5 \u002F OpenTofu 1.0-1.5**: Terratest for integration, static analysis + plan validation only (no native tests).\n- **1.6+**: native `terraform test` \u002F `tofu test` available — migrate simple unit tests, keep Terratest for complex integration.\n- **1.7+**: mock providers cut test cost — mock for unit tests, real runs for final integration.\n- **1.10+**: S3 native lock-file (`use_lockfile`) is the correct default for new configurations — DynamoDB locking is no longer required.\n- **1.11+**: `write_only` arguments for secret handling keep credentials out of state.\n- **Terraform vs OpenTofu**: both supported. For licensing, governance, and feature delta, see [Quick Reference: Terraform vs OpenTofu](references\u002Fquick-reference.md#terraform-vs-opentofu-comparison).\n\n## Code Intelligence (terraform-ls)\n\nSemantic navigation for HCL. terraform-ls is optional; without it every row below degrades to a disclosed `rg` + Read fallback.\n\nSelf-contained terraform-ls layer of a generic code-intelligence discipline - apply the rows below directly.\n\n| Goal | Use | Tradeoff |\n|------|-----|----------|\n| Find definition \u002F all references | terraform-ls `goToDefinition` \u002F `findReferences` | Needs `init` + a position anchor |\n| Rename value symbol (var\u002Flocal\u002Foutput\u002Fprovider alias) | Manual: `findReferences` -> per-file fresh Read -> edit -> `validate` | No rename provider |\n| Rename resource\u002Fmodule address | `moved` block + `plan` shows 0 destroy | Text rename forces destroy\u002Frecreate |\n| Exact text \u002F known name \u002F `.tfvars` \u002F non-HCL | `rg` + Read | No semantic scope |\n\n✅ Supported: `goToDefinition`, `findReferences`, `documentSymbol`, `hover`, `workspaceSymbol`.\n❌ Unsupported: `goToImplementation`, call hierarchy, rename provider. Do not call these then report their absence as a finding.\n\n- ✅ Prereq: local `terraform`\u002F`tofu` on PATH, `terraform init` run; cold start may need one retry.\n- ✅ LSP calls are position-anchored (`file:line:character`) - anchor with `rg` first, never symbol-name-only.\n- ❌ Do not claim \"LSP broken, using rg\" until the [Degradation Gate](references\u002Fcode-intelligence-lsp.md#degradation-gate) passes; disclose any tool substitution on the first line.\n\nDepth: [Code Intelligence](references\u002Fcode-intelligence-lsp.md#terraform-ls-capability-matrix).\n\n## Reference Files\n\nProgressive disclosure — essentials here, depth on demand:\n\n- [Testing Frameworks](references\u002Ftesting-frameworks.md) — static analysis, native tests, Terratest, mock providers\n- [Module Patterns](references\u002Fmodule-patterns.md) — structure, variable\u002Foutput contracts, `terraform_remote_state` rules, release checklist\n- [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md) — GitHub Actions, GitLab CI, Atlantis, cost control\n- [Security & Compliance](references\u002Fsecurity-compliance.md) — trivy\u002Fcheckov, secrets handling, compliance mappings\n- [State Management](references\u002Fstate-management.md) — backends, locking, migration, multi-team, recovery\n- [Code Patterns](references\u002Fcode-patterns.md) — block ordering, `count`\u002F`for_each` deep dive, modern features, version management, locals\n- [Code Intelligence](references\u002Fcode-intelligence-lsp.md) - terraform-ls capabilities, position-anchored calls, manual rename, degradation gate\n- [Quick Reference](references\u002Fquick-reference.md) — command cheat sheets, flowcharts, troubleshooting\n\n## License\n\nApache License 2.0. See LICENSE for full terms.\n\n**Copyright © 2026 Anton Babenko**\n","# Terraform Skill for Claude\n\nDiagnose-first guidance for Terraform and OpenTofu. Core file is a workflow; depth lives in references loaded on demand.\n\n## Response Contract\n\nEvery Terraform\u002FOpenTofu response must include:\n\n1. **Assumptions & version floor** — runtime (`terraform` or `tofu`), exact version, providers, state backend, execution path (local\u002FCI\u002FCloud\u002FAtlantis), environment criticality. State assumptions explicitly if the user did not provide them.\n2. **Risk category addressed** — one or more of: identity churn, secret exposure, blast radius, CI drift, compliance gaps, state corruption, provider upgrade risk, testing blind spots.\n3. **Chosen remediation & tradeoffs** — what was chosen, what was traded off, why.\n4. **Validation plan** — exact commands (`fmt -check`, `validate`, `plan -out`, policy check) tailored to runtime and risk tier.\n5. **Rollback notes** — for any destructive or state-mutating change: how to undo, what evidence to keep.\n\nNever recommend direct production apply without a reviewed plan artifact and approval.\n\n## Workflow\n\n1. **Capture execution context** — runtime+version, provider(s), backend, execution path, environment criticality.\n2. **Diagnose failure mode(s)** using the routing table below. If intent spans categories, load both references.\n3. **Load only the matching reference file(s)** — do not preload depth the task does not need.\n4. **Propose fix with risk controls** — why this addresses the mode, what could still go wrong, guardrails (tests\u002Fapprovals\u002Frollback).\n5. **Generate artifacts** — HCL, migration blocks (`moved`, `import`), CI changes, policy rules.\n6. **Validate before finalizing** — run validation commands tailored to risk tier.\n7. **Emit the Response Contract** at the end.\n\n## Diagnose Before You Generate\n\n| Failure category | Symptoms | Primary references |\n|------------------|----------|--------------------|\n| **Identity churn** | Resource addresses shift after refactor, `count` index churn, missing `moved` blocks | [Code Patterns: count vs for_each](references\u002Fcode-patterns.md#count-vs-for_each-deep-dive), [Code Patterns: moved blocks](references\u002Fcode-patterns.md#moved-blocks-terraform-11), [Code Patterns: LLM mistakes](references\u002Fcode-patterns.md#llm-mistake-checklist--code-patterns) |\n| **Secret exposure** | Secrets in defaults, state, logs, CI artifacts | [Security & Compliance](references\u002Fsecurity-compliance.md), [Code Patterns: write-only](references\u002Fcode-patterns.md#write-only-arguments-terraform-111), [State Management](references\u002Fstate-management.md) |\n| **Blast radius** | Oversized stacks, shared prod\u002Fnon-prod state, unsafe applies | [State Management](references\u002Fstate-management.md), [Module Patterns](references\u002Fmodule-patterns.md) |\n| **CI drift** | Local plan ≠ CI plan, apply without reviewed artifact, unpinned versions | [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md), [Code Patterns: versions](references\u002Fcode-patterns.md#version-management) |\n| **Compliance gaps** | Missing policy stage, no approval model, no evidence retention | [Security & Compliance](references\u002Fsecurity-compliance.md), [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md) |\n| **Testing blind spots** | Plan-only validation of computed values, set-type indexing, mock\u002Freal confusion | [Testing Frameworks](references\u002Ftesting-frameworks.md) |\n| **State corruption \u002F recovery** | Stuck lock, backend migration, drift reconciliation | [State Management](references\u002Fstate-management.md) |\n| **Provider upgrade risk** | Breaking-change provider bump, unpinned modules | [Code Patterns: versions](references\u002Fcode-patterns.md#version-management), [Module Patterns](references\u002Fmodule-patterns.md) |\n| **Provider lifecycle** | Removing a provider with resources still in state, orphaned resources, `removed` block usage | [State Management: Provider Removal](references\u002Fstate-management.md#provider-removal) |\n| **Navigation \u002F safe-rename blind spots** | Cannot locate symbol defs\u002Frefs semantically, value-symbol rename done as blind text replace, grep-only refactor missing refs, hallucinated `rg` shim | [Code Intelligence](references\u002Fcode-intelligence-lsp.md#terraform-ls-capability-matrix) |\n\n## When to Use This Skill\n\n**Activate when:** creating or reviewing Terraform\u002FOpenTofu configurations or modules, setting up or debugging tests, structuring multi-environment deployments, implementing IaC CI\u002FCD, choosing module patterns or state organization, configuring or migrating remote state backends.\n\n**Don't use for:** basic HCL syntax questions Claude already knows, provider API reference (link to docs), cloud-platform questions unrelated to Terraform\u002FOpenTofu.\n\n## Core Principles\n\n### Module Hierarchy\n\n| Type | When to Use | Scope |\n|------|-------------|-------|\n| **Resource module** | Single logical group of connected resources | VPC + subnets, SG + rules |\n| **Infrastructure module** | Collection of resource modules for a purpose | Multiple resource modules in one region\u002Faccount |\n| **Composition** | Complete infrastructure | Spans multiple regions\u002Faccounts |\n\nFlow: resource → resource module → infrastructure module → composition.\n\n### Directory Layout\n\n```\nenvironments\u002F   # prod\u002F staging\u002F dev\u002F  — per-env configurations\nmodules\u002F        # networking\u002F compute\u002F data\u002F — reusable modules\nexamples\u002F       # minimal\u002F complete\u002F — docs + integration fixtures\n```\n\nSeparate **environments** from **modules**. Use `examples\u002F` as both documentation and test fixtures. Keep modules small and single-responsibility.\n\nSee [Module Patterns](references\u002Fmodule-patterns.md) for architecture principles, naming conventions, variable\u002Foutput contracts.\n\n### Naming Conventions (summary)\n\n- Descriptive resource names (`aws_instance.web_server`, not `aws_instance.main`)\n- Reserve `this` for genuine singleton resources only\n- Prefix variables with context (`vpc_cidr_block`, not `cidr`)\n- Standard files: `main.tf`, `variables.tf`, `outputs.tf`, `versions.tf`\n\nSee [Module Patterns: Variable Naming](references\u002Fmodule-patterns.md) and [Code Patterns: Block Ordering](references\u002Fcode-patterns.md#block-ordering--structure) for examples.\n\n### Block Ordering (summary)\n\nResource blocks: `count`\u002F`for_each` first → arguments → `tags` → `depends_on` → `lifecycle`.\nVariable blocks: `description` → `type` → `default` → `validation` → `nullable` → `sensitive`.\n\nSee [Code Patterns: Block Ordering & Structure](references\u002Fcode-patterns.md#block-ordering--structure) for the full rules and examples.\n\n## Testing Strategy\n\n### Decision Matrix: Which Testing Approach?\n\n| Situation | Approach | Tools | Cost |\n|-----------|----------|-------|------|\n| Quick syntax check | Static analysis | `validate`, `fmt` | Free |\n| Pre-commit validation | Static + lint | `validate`, `tflint`, `trivy`, `checkov` | Free |\n| Terraform 1.6+, simple logic | Native test framework | `terraform test` | Free-Low |\n| Pre-1.6, or Go expertise | Integration testing | Terratest | Low-Med |\n| Security\u002Fcompliance focus | Policy as code | OPA, Sentinel | Free |\n| Cost-sensitive workflow | Mock providers (1.7+) | Native tests + mocks | Free |\n| Multi-cloud, complex | Full integration | Terratest + real infra | Med-High |\n\n### Native Test Rules (1.6+)\n\nBefore writing test code: validate resource schemas via Terraform MCP so assertions target real attributes.\n\n- `command = plan` — fast, for input-derived values only\n- `command = apply` — required for **computed values** (ARNs, generated names) and **set-type nested blocks**\n- Set-type blocks cannot be indexed with `[0]` — use `for` expressions or materialize via `command = apply`\n- Common set types: S3 encryption rules, lifecycle transitions, IAM policy statements\n\nSee [Testing Frameworks](references\u002Ftesting-frameworks.md) for static-analysis pipelines, native-test patterns, Terratest integration, mock providers, and the full LLM-mistake checklist.\n\n## Count vs For_Each — Quick Rule\n\n| Scenario | Use | Why |\n|----------|-----|-----|\n| Boolean condition (create \u002F don't) | `count = condition ? 1 : 0` | Optional singleton toggle |\n| Items may be reordered or removed | `for_each = toset(list)` | Stable resource addresses |\n| Reference by key | `for_each = map` | Named access |\n| Multiple named resources | `for_each` | Better identity stability |\n\n**Never** use list index as long-lived identity — removing a middle element reshuffles every address after it. For the decision matrix, safe migration playbook, `moved` block patterns, and known-at-plan failure cases, see [Code Patterns: count vs for_each](references\u002Fcode-patterns.md#count-vs-for_each-deep-dive).\n\n## Locals for Dependency Management\n\nUsing `try()` in a local to prefer a conditional resource's attribute over its parent is a specialized but high-value pattern — it forces correct deletion order without explicit `depends_on`. Common use: VPC + secondary CIDR associations + subnets.\n\nSee [Code Patterns: Locals for Dependency Management](references\u002Fcode-patterns.md#locals-for-dependency-management) for the full pattern and worked example.\n\n## Module Development\n\nStandard layout:\n\n```\nmy-module\u002F\n├── README.md       # Usage documentation\n├── main.tf         # Primary resources\n├── variables.tf    # Typed inputs with descriptions\n├── outputs.tf      # Output values\n├── versions.tf     # required_version + required_providers\n├── examples\u002F\n│   ├── minimal\u002F\n│   └── complete\u002F\n└── tests\u002F\n    └── module_test.tftest.hcl   # or Go for Terratest\n```\n\n**Variable contracts**: always `description`, always explicit `type`, use `validation` for complex constraints, use `sensitive = true` for secrets, prefer `optional()` with typed defaults (1.3+) over untyped `map(any)`.\n\n**Output contracts**: always `description`, mark sensitive outputs, expose stable subsets (not whole provider objects).\n\nSee [Module Patterns](references\u002Fmodule-patterns.md) for the full contract patterns, module release checklist, and LLM-mistake checklist.\n\n## CI\u002FCD\n\nPipeline stages: **validate** → **test** → **plan** → **apply** (with environment protection).\n\nCost control: mock providers on PR validation, real-cloud integration only on main or scheduled, tag test resources, auto-cleanup.\n\nDrift prevention: pin runtime and providers, commit `.terraform.lock.hcl`, apply the **reviewed plan artifact** from the plan stage (do not re-run `plan` inside the apply job), run policy\u002Fsecurity stage on every path to apply.\n\nSee [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md) for GitHub Actions, GitLab CI, and Atlantis templates plus the LLM-mistake checklist.\n\n## Security & Compliance\n\n**Essential checks:**\n\n```bash\ntrivy config .\ncheckov -d .\n```\n\n**Don't:** store secrets in variables or `.tfvars`, use default VPC, skip encryption, open security groups to `0.0.0.0\u002F0`, use inline `ingress`\u002F`egress` blocks in `aws_security_group`.\n\n**Do:** source secrets from AWS Secrets Manager \u002F Parameter Store or use `write_only` arguments on 1.11+, create dedicated VPCs, enforce encryption at rest and TLS, least-privilege SGs, use separate `aws_vpc_security_group_{ingress,egress}_rule` resources (AWS provider v5+).\n\nMarking a variable `sensitive = true` masks display only — the value still lives in state. Use `write_only` \u002F `*_wo` on 1.11+, or keep secret material out of Terraform entirely via runtime lookups.\n\nSee [Security & Compliance](references\u002Fsecurity-compliance.md) for trivy\u002Fcheckov pipelines, state-file hardening, compliance mappings, and the LLM-mistake checklist.\n\n## State Management\n\n**Never use local state in teams or production.** Remote backends provide automatic locking, encryption, versioning, audit logging, and safe collaboration.\n\n### Minimum Viable Backend (AWS S3, 1.10+)\n\n```hcl\nterraform {\n  backend \"s3\" {\n    bucket        = \"my-terraform-state\"\n    key           = \"prod\u002Fvpc\u002Fterraform.tfstate\"\n    region        = \"us-east-1\"\n    encrypt       = true\n    use_lockfile  = true   # Native S3 locking, 1.10+\n  }\n}\n```\n\nOn Terraform \u003C 1.10, use `dynamodb_table = \"terraform-state-lock\"` instead of `use_lockfile`. Azure Storage, GCS, and Terraform Cloud all offer built-in locking — see the State Management reference for syntax.\n\n### State Organization\n\n| Pattern | Use When | Example Path |\n|---------|----------|--------------|\n| **Per environment** | Different teams per env | `prod\u002Fterraform.tfstate`, `staging\u002F...` |\n| **Per component** | Independent lifecycles | `prod\u002Fvpc\u002F`, `prod\u002Feks\u002F`, `prod\u002Frds\u002F` |\n| **Hybrid** (recommended) | Both benefits | `prod\u002Fnetworking\u002F`, `prod\u002Fcompute\u002F`, `staging\u002Fnetworking\u002F` |\n\nSplit state when: different teams, different update cadences, or >500 resources. Combine when: tightly coupled resources, \u003C100 resources, same lifecycle.\n\nSee [State Management](references\u002Fstate-management.md) for locking, migration, multi-team isolation, disaster recovery, and the LLM-mistake checklist.\n\n## Version Management\n\n| Component | Strategy | Example |\n|-----------|----------|---------|\n| Terraform runtime | Pin minor | `required_version = \"~> 1.9\"` |\n| Providers | Pin major | `version = \"~> 5.0\"` |\n| Modules (prod) | Pin exact | `version = \"5.1.2\"` |\n| Modules (dev) | Allow patch | `version = \"~> 5.1\"` |\n\nCommit `.terraform.lock.hcl` intentionally. Keep provider\u002Fruntime upgrades in a separate PR from functional changes. See [Code Patterns: Version Management](references\u002Fcode-patterns.md#version-management) for constraint syntax and upgrade workflow.\n\n## Modern Terraform Features (1.0+)\n\n| Feature | Min version | Common use |\n|---------|-------------|------------|\n| `try()` | 0.13+ | Safe fallbacks, replaces `element(concat())` |\n| `nullable = false` | 1.1+ | Prevent `null` silently overriding defaults |\n| `moved` blocks | 1.1+ | Refactor without destroy\u002Frecreate |\n| `optional()` with defaults | 1.3+ | Typed object attributes |\n| `import` blocks | 1.5+ | Declarative imports, reviewable in VCS |\n| `check` blocks | 1.5+ | Runtime assertions |\n| Native `terraform test` | 1.6+ | Built-in test framework |\n| Mock providers | 1.7+ | Cost-free unit testing |\n| `removed` blocks | 1.7+ | Declarative resource removal |\n| Provider-defined functions | 1.8+ | Provider-specific transformations (requires provider to declare functions) |\n| Cross-variable validation | 1.9+ | Reference other `var.*` in `validation` blocks |\n| `write_only` arguments | 1.11+ | Secrets never stored in state |\n| S3 native lock-file | 1.10+ | State locking without DynamoDB |\n\nBefore emitting a feature, verify the runtime floor. See [Code Patterns: Feature Guard Table](references\u002Fcode-patterns.md#feature-guard-table--version-floor--common-llm-errors) for the full table with common LLM error patterns per feature.\n\n## Runtime-Specific Guidance\n\n- **Terraform 1.0-1.5 \u002F OpenTofu 1.0-1.5**: Terratest for integration, static analysis + plan validation only (no native tests).\n- **1.6+**: native `terraform test` \u002F `tofu test` available — migrate simple unit tests, keep Terratest for complex integration.\n- **1.7+**: mock providers cut test cost — mock for unit tests, real runs for final integration.\n- **1.10+**: S3 native lock-file (`use_lockfile`) is the correct default for new configurations — DynamoDB locking is no longer required.\n- **1.11+**: `write_only` arguments for secret handling keep credentials out of state.\n- **Terraform vs OpenTofu**: both supported. For licensing, governance, and feature delta, see [Quick Reference: Terraform vs OpenTofu](references\u002Fquick-reference.md#terraform-vs-opentofu-comparison).\n\n## Code Intelligence (terraform-ls)\n\nSemantic navigation for HCL. terraform-ls is optional; without it every row below degrades to a disclosed `rg` + Read fallback.\n\nSelf-contained terraform-ls layer of a generic code-intelligence discipline - apply the rows below directly.\n\n| Goal | Use | Tradeoff |\n|------|-----|----------|\n| Find definition \u002F all references | terraform-ls `goToDefinition` \u002F `findReferences` | Needs `init` + a position anchor |\n| Rename value symbol (var\u002Flocal\u002Foutput\u002Fprovider alias) | Manual: `findReferences` -> per-file fresh Read -> edit -> `validate` | No rename provider |\n| Rename resource\u002Fmodule address | `moved` block + `plan` shows 0 destroy | Text rename forces destroy\u002Frecreate |\n| Exact text \u002F known name \u002F `.tfvars` \u002F non-HCL | `rg` + Read | No semantic scope |\n\n✅ Supported: `goToDefinition`, `findReferences`, `documentSymbol`, `hover`, `workspaceSymbol`.\n❌ Unsupported: `goToImplementation`, call hierarchy, rename provider. Do not call these then report their absence as a finding.\n\n- ✅ Prereq: local `terraform`\u002F`tofu` on PATH, `terraform init` run; cold start may need one retry.\n- ✅ LSP calls are position-anchored (`file:line:character`) - anchor with `rg` first, never symbol-name-only.\n- ❌ Do not claim \"LSP broken, using rg\" until the [Degradation Gate](references\u002Fcode-intelligence-lsp.md#degradation-gate) passes; disclose any tool substitution on the first line.\n\nDepth: [Code Intelligence](references\u002Fcode-intelligence-lsp.md#terraform-ls-capability-matrix).\n\n## Reference Files\n\nProgressive disclosure — essentials here, depth on demand:\n\n- [Testing Frameworks](references\u002Ftesting-frameworks.md) — static analysis, native tests, Terratest, mock providers\n- [Module Patterns](references\u002Fmodule-patterns.md) — structure, variable\u002Foutput contracts, `terraform_remote_state` rules, release checklist\n- [CI\u002FCD Workflows](references\u002Fci-cd-workflows.md) — GitHub Actions, GitLab CI, Atlantis, cost control\n- [Security & Compliance](references\u002Fsecurity-compliance.md) — trivy\u002Fcheckov, secrets handling, compliance mappings\n- [State Management](references\u002Fstate-management.md) — backends, locking, migration, multi-team, recovery\n- [Code Patterns](references\u002Fcode-patterns.md) — block ordering, `count`\u002F`for_each` deep dive, modern features, version management, locals\n- [Code Intelligence](references\u002Fcode-intelligence-lsp.md) - terraform-ls capabilities, position-anchored calls, manual rename, degradation gate\n- [Quick Reference](references\u002Fquick-reference.md) — command cheat sheets, flowcharts, troubleshooting\n\n## License\n\nApache License 2.0. See LICENSE for full terms.\n\n**Copyright © 2026 Anton Babenko**\n",{"name":5,"license":15,"metadata":50,"description":7},{"author":51,"version":52},"Anton Babenko","1.10.0","master","c68aee8fe860533da42dd4ba430c6b4de643ff23","dot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill","https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles","https:\u002F\u002Fgithub.com\u002Fnidr0x","2026-06-19 05:46:28",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add nidr0x\u002Fdotfiles --skill terraform-skill",{"tool":65,"command":66},"bunx","bunx skills add nidr0x\u002Fdotfiles --skill terraform-skill",{"tool":68,"command":69},"pnpm","pnpm dlx skills add nidr0x\u002Fdotfiles --skill terraform-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002FSKILL.md",true,[73,79,85,89,93,97,101,105,109,113,117,123,127,131],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"assets\u002FREADME.md","ASSET","资产文件",546,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fperformance\u002Flog-analysis-tool\u002Fskills\u002Fanalyzing-logs\u002Fassets\u002FREADME.md",{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"exact_references\u002Fci-cd-workflows.md","REFERENCE","参考文档",14052,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Fci-cd-workflows.md",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"exact_references\u002Fcode-intelligence-lsp.md",4679,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Fcode-intelligence-lsp.md",{"path":90,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":91,"sourceHtmlUrl":92},"exact_references\u002Fcode-patterns.md",29862,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Fcode-patterns.md",{"path":94,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":95,"sourceHtmlUrl":96},"exact_references\u002Fmodule-patterns.md",22859,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Fmodule-patterns.md",{"path":98,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":99,"sourceHtmlUrl":100},"exact_references\u002Fquick-reference.md",19886,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Fquick-reference.md",{"path":102,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":103,"sourceHtmlUrl":104},"exact_references\u002Fsecurity-compliance.md",18375,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Fsecurity-compliance.md",{"path":106,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":107,"sourceHtmlUrl":108},"exact_references\u002Fstate-management.md",43659,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Fstate-management.md",{"path":110,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":111,"sourceHtmlUrl":112},"exact_references\u002Ftesting-frameworks.md",13813,"https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_skills\u002Fexact_terraform-skill\u002Fexact_references\u002Ftesting-frameworks.md",{"path":114,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":115,"sourceHtmlUrl":116},"references\u002FREADME.md",569,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fperformance\u002Flog-analysis-tool\u002Fskills\u002Fanalyzing-logs\u002Freferences\u002FREADME.md",{"path":118,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":121,"sourceHtmlUrl":122},"scripts\u002Faggregate_logs.sh","SCRIPT","脚本",3095,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fperformance\u002Flog-analysis-tool\u002Fskills\u002Fanalyzing-logs\u002Fscripts\u002Faggregate_logs.sh",{"path":124,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":125,"sourceHtmlUrl":126},"scripts\u002Fanalyze_log_file.py",5092,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fperformance\u002Flog-analysis-tool\u002Fskills\u002Fanalyzing-logs\u002Fscripts\u002Fanalyze_log_file.py",{"path":128,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":129,"sourceHtmlUrl":130},"scripts\u002Fdetect_anomalies.py",3175,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fperformance\u002Flog-analysis-tool\u002Fskills\u002Fanalyzing-logs\u002Fscripts\u002Fdetect_anomalies.py",{"path":132,"resourceType":119,"resourceTypeDesc":120,"sizeBytes":133,"sourceHtmlUrl":134},"scripts\u002FREADME.md",810,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fperformance\u002Flog-analysis-tool\u002Fskills\u002Fanalyzing-logs\u002Fscripts\u002FREADME.md",[136,171],{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":140,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":151,"publishedAt":45},"01M6BYCGZG069HRBRAYXWPH7AX","last30days","Research what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web.","MIT","https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_last30days\u002FSKILL.md",[143,146,149,150],{"categoryNo":144,"categoryName":145,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},[138,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],"social-media","python3","xai","openrouter","parallel","password","Bash","Media","Video","api","analysis","Tools","Citations","NVIDIA","search","openai","auth","react","clawhub",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":140,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":181,"publishedAt":45},"01M6BYB5FKVTSK6VXSGYTZHQX0","agent-md-refactor","Refactor bloated AGENTS.md, CLAUDE.md, or similar agent instruction files to follow progressive disclosure principles. Splits monolithic files into organized, linked documentation.","https:\u002F\u002Fgithub.com\u002Fnidr0x\u002Fdotfiles\u002Fblob\u002Fmaster\u002Fdot_agents\u002Fexact_skills\u002Fexact_agent-md-refactor\u002FSKILL.md",[177,180],{"categoryNo":178,"categoryName":179,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[182,183,184],"refactor","agent md refactor","documentation"]