terraform-station-module
Maintain the Station Terraform module itself (not test authoring). Use this skill whenever the user asks to add, change, refactor, or troubleshoot Station module behavior in root *.tf files or child module folders (application/, group/, user_assigned_identity/, hashicorp/tfe/), update variables/outputs/validations, or adjust provider/resource wiring for module consumers.
Best use case
terraform-station-module is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Maintain the Station Terraform module itself (not test authoring). Use this skill whenever the user asks to add, change, refactor, or troubleshoot Station module behavior in root *.tf files or child module folders (application/, group/, user_assigned_identity/, hashicorp/tfe/), update variables/outputs/validations, or adjust provider/resource wiring for module consumers.
Teams using terraform-station-module should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/terraform-station-module/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How terraform-station-module Compares
| Feature / Agent | terraform-station-module | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Maintain the Station Terraform module itself (not test authoring). Use this skill whenever the user asks to add, change, refactor, or troubleshoot Station module behavior in root *.tf files or child module folders (application/, group/, user_assigned_identity/, hashicorp/tfe/), update variables/outputs/validations, or adjust provider/resource wiring for module consumers.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Terraform Station Module Skill Use this skill when working on Station module implementation logic. This skill is for **module code changes**. For Terraform test authoring/execution in `tests/*.tftest.hcl`, use `terraform-station-test`. ## What this skill covers - Adding/changing behavior in root module files (`*.tf` at repo root) - Updating child modules: - `application/` - `group/` - `user_assigned_identity/` - `hashicorp/tfe/` - Updating module interfaces: - `variables.tf` - `variables.applications.tf` - `variables.identity.tf` - `outputs.tf` - Keeping Station compatible as a **called module** (consumer-facing contract) - Updating documentation where interface/behavior changes ## Station module invariants 1. Treat Station as a module consumed by parent configurations. 2. Preserve backward compatibility unless the user explicitly requests a breaking change. 3. Keep variable schemas, validation rules, and defaults aligned with actual implementation. 4. Keep outputs aligned with resources and child module wiring. 5. Prefer extending existing patterns over introducing new structure. 6. Keep changes focused and minimal. ## Required discovery before changing code Always inspect these first for impact analysis: - `variables.tf` - `variables.applications.tf` - `variables.identity.tf` - `outputs.tf` - relevant feature files (for example `applications.tf`, `groups.tf`, `connectivity.tf`, `tfe.tf`) - relevant child module `variables.tf` and `outputs.tf` Then map your change to: - inputs consumed - resources/data affected - outputs exposed - tests likely impacted ## Implementation workflow 1. Locate feature entry points in root module files. 2. Identify whether behavior belongs in root module or child module. 3. Update variable definitions/validations if interface changed. 4. Update implementation (`resource`, `data`, `locals`, `module` calls). 5. Update outputs if exposed behavior changed. 6. Update docs/examples if user-visible behavior changed. 7. Run formatting. 8. Run relevant tests (or hand off to `terraform-station-test` flow). ## Validation and formatting rules - Run: ```bash terraform fmt -recursive ``` - Do **not** rely on `terraform validate` for this repository due provider alias/module limitations. - Prefer targeted Terraform tests for affected feature areas: - `tests/application.tftest.hcl` - `tests/group.tftest.hcl` - `tests/tfe.tftest.hcl` - `tests/connectivity.tftest.hcl` - `tests/identity.tftest.hcl` - `tests/user_assigned_identities.tftest.hcl` ## Compatibility checklist for module changes Before finishing a change, verify: - Input object shape matches actual references in code - Optional fields are guarded with `try(...)`, `lookup(...)`, `coalesce(...)`, or conditional logic where needed - Validation error messages still describe the true constraint - Resource naming/location/tag defaults still follow Station conventions - Identity and role-assignment side effects remain correct for enabled feature blocks - Outputs still reference valid resource/module attributes ## Common Station-specific pitfalls - Adding new required fields to existing input objects without defaults - Changing map keys that tests/consumers depend on - Forgetting to propagate variable changes into child modules - Breaking app/group/identity auto-assignment behavior - Updating logic but not adjusting outputs/docs ## CI-aware change planning Station uses selective test execution in CI. When changing module files, anticipate which tests are triggered using: - `.github/scripts/README.md` - `.github/workflows/terraform.yaml` If core/shared files are touched, expect full-suite runs. ## Use with testing skill After module edits: 1. format with `terraform fmt -recursive` 2. invoke `terraform-station-test` for test updates/execution 3. ensure feature tests cover minimum + maximum scenarios when behavior changed ## Done criteria for module tasks - Code change implemented at correct module boundary - Variable/validation/output updates included where needed - Formatting completed - Relevant tests run (or explicitly delegated) - No unrelated refactors bundled into the change
Related Skills
terraform-test
Comprehensive guide for writing and running Terraform tests. Use when creating test files (.tftest.hcl), writing test scenarios with run blocks, validating infrastructure behavior with assertions, mocking providers and data sources, testing module outputs and resource configurations, or troubleshooting Terraform test syntax and execution.
terraform-station-test
Write and maintain Terraform tests for the Station module. Use this skill whenever the user asks to add, update, fix, or run Station tests in tests/*.tftest.hcl, validate module behavior across minimum/maximum configurations, wire setup-* modules into test runs, or align test changes with Station CI selective test execution.
terraform
Use when creating, adopting, refactoring, or operating Terraform, *.tf files, .terraform.lock.hcl, terragrunt.hcl, root modules, backends, state, workspaces, imports, CI plan/apply, tests, or policy checks.
performing-hardware-security-module-integration
使用 PKCS#11 接口集成硬件安全模块(HSM),通过 python-pkcs11、AWS CloudHSM 和 YubiHSM2 实现密码学密钥管理、签名操作和安全密钥存储。
implementing-privileged-access-workstation
设计并实施特权访问工作站(PAW,Privileged Access Workstation),包括设备加固、即时访问(JIT)以及与 CyberArk 或 BeyondTrust 的集成,以保障安全的管理操作。
auditing-terraform-infrastructure-for-security
使用 Checkov、tfsec、Terrascan 和 OPA/Rego 策略,审计 Terraform 基础设施即代码中的安全错误配置, 在云部署前检测过度宽松的 IAM 策略、公开资源暴露、缺失加密和不安全的默认设置。
flecs-dylib-modules
Hot-reloadable Flecs modules as Rust dylibs. Covers module architecture, component vs system modules, and inter-module dependencies.
terraform-patterns
Infrastructure as Code with Terraform — project structure, remote state, modules, workspace strategy, AWS/GCP patterns, CI/CD integration, and security hardening. The standard for managing production infrastructure.
terraform-ci
Terraform in CI/CD — plan on PR, apply on merge, OIDC auth, drift detection, importing existing resources, common CLI commands, anti-patterns, and Terraform vs Pulumi vs CDK decision guide.
blockchain_attestation
Create verifiable attestations of agent work using Ethereum Attestation Service (EAS), with Base as the default chain.
shipstation-orders
Monitor ShipStation orders, detect issues, and send alerts.
runtime-attestation-probe
Helps validate that agent behavior at runtime matches the capabilities and constraints declared in its attestation.