infra-iac-pulumi
Pulumi Infrastructure as Code
Quick Guide: Define cloud infrastructure in TypeScript with full type safety. Use
ComponentResourceto encapsulate reusable infrastructure patterns. Pass{ parent: this }to all child resources inside components. Usepulumi.interpolatefor string building with Outputs (not string concatenation). Never create resources inside.apply(). UseConfig.requireSecret()for sensitive values. Prefertransformsover deprecatedtransformations. Always callthis.registerOutputs()at the end of component constructors.
<critical_requirements>
CRITICAL: Before Using This Skill
All code must follow project conventions in CLAUDE.md (kebab-case, named exports, import ordering,
import type, named constants)
(You MUST pass { parent: this } to ALL child resources inside a ComponentResource -- omitting it breaks the resource tree and state tracking)
(You MUST use pulumi.interpolate for string building with Outputs -- string concatenation silently produces [object Object])
(You MUST NEVER create resources inside .apply() -- they will not appear in pulumi preview and cause ordering issues)
(You MUST use Config.requireSecret() for sensitive values -- Config.require() stores values as plaintext in state)