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.

9 stars

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

$curl -o ~/.claude/skills/terraform-station-module/SKILL.md --create-dirs "https://raw.githubusercontent.com/blinqas/station/main/.agents/skills/terraform-station-module/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/terraform-station-module/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How terraform-station-module Compares

Feature / Agentterraform-station-moduleStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

9
from blinqas/station

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

9
from blinqas/station

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

9
from cofin/flow

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

9
from killvxk/cybersecurity-skills-zh

使用 PKCS#11 接口集成硬件安全模块(HSM),通过 python-pkcs11、AWS CloudHSM 和 YubiHSM2 实现密码学密钥管理、签名操作和安全密钥存储。

implementing-privileged-access-workstation

9
from killvxk/cybersecurity-skills-zh

设计并实施特权访问工作站(PAW,Privileged Access Workstation),包括设备加固、即时访问(JIT)以及与 CyberArk 或 BeyondTrust 的集成,以保障安全的管理操作。

auditing-terraform-infrastructure-for-security

9
from killvxk/cybersecurity-skills-zh

使用 Checkov、tfsec、Terrascan 和 OPA/Rego 策略,审计 Terraform 基础设施即代码中的安全错误配置, 在云部署前检测过度宽松的 IAM 策略、公开资源暴露、缺失加密和不安全的默认设置。

flecs-dylib-modules

8
from andrewgazelka/rgb

Hot-reloadable Flecs modules as Rust dylibs. Covers module architecture, component vs system modules, and inter-module dependencies.

terraform-patterns

8
from marvinrichter/clarc

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

8
from marvinrichter/clarc

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

7
from Demerzels-lab/elsamultiskillagent

Create verifiable attestations of agent work using Ethereum Attestation Service (EAS), with Base as the default chain.

shipstation-orders

7
from Demerzels-lab/elsamultiskillagent

Monitor ShipStation orders, detect issues, and send alerts.

runtime-attestation-probe

7
from Demerzels-lab/elsamultiskillagent

Helps validate that agent behavior at runtime matches the capabilities and constraints declared in its attestation.