pulumi/awsx-aws-service-validation
Validate AWS service facts for pulumi-awsx changes. Use when an AWSX design, implementation, test, or review depends on AWS API behavior, CloudFormation resource support, service constraints, regional availability, documented best practices, or disagreement between AWS docs and the installed @pulumi/aws surface.
npx skills add https://github.com/pulumi/pulumi-awsx --skill awsx-aws-service-validation
Use this skill when an AWSX change depends on an AWS service fact. This skill is
for evidence gathering, not for deciding whether AWSX should add a new
abstraction.
For component shape, use $awsx-component-design. For compatibility risk, use
$awsx-breaking-change-evaluation. For proof strategy, use
$awsx-test-authoring.
Use the narrowest authoritative source that can prove the claim:
@pulumi/aws schema, SDK types, generated docs, and providerbehavior for what AWSX can currently express through Pulumi.
behavior, API constraints, CloudFormation support, regional availability,
examples, and best practices.
the sources above, not as proof of an AWS service fact.
contradicted by observed behavior.
AWS docs describe what the service can do. The installed @pulumi/aws surface
defines what AWSX can express without provider changes or escape hatches. Do not
let AWS docs override AWSX compatibility constraints or the currently installed
provider surface.
Do not use model memory as the source for AWS service behavior. Do not use
Terraform AWS provider docs as the default source for AWSX guidance; use them
only as a last-resort hint that must be verified against Pulumi or AWS sources.
Use local, installed Pulumi sources before reasoning from memory:
# Use the same AWS provider version this checkout builds against.
aws_version=$(node -p 'require("./awsx/package.json").dependencies["@pulumi/aws"]')
# Discover resources and functions in an AWS module.
pulumi package info "aws@${aws_version}" --module s3
# Inspect one resource's inputs and outputs.
pulumi package info "aws@${aws_version}" --module s3 --resource Bucket
# Inspect one invoke/function shape.
pulumi package info "aws@${aws_version}" --module ecr --function getAuthorizationToken
# Inspect TypeScript definitions when implementation code imports @pulumi/aws.
rg -n "interface BucketArgs|class Bucket" awsx/node_modules/@pulumi/aws/s3/bucket.d.ts
Also inspect the AWSX schema and generated implementation types when the claim
crosses the AWSX public surface:
rg -n "awsx:ecr:Repository|RepositoryArgs" provider/cmd/pulumi-resource-awsx/schema.json awsx/schema-types.ts
Choose the AWS source that matches the claim:
behavior.
behavior.
valid cross-resource configurations.
CloudFormation resource support.
If the AWS Documentation MCP server or similarly named AWS documentation MCP
tools are available, prefer them over broad web search for AWS service facts:
When working in an environment with MCP introspection, check the available MCP
servers/tools first. Useful AWS tool names may look like
aws_documentation___search_documentation,
aws_documentation___read_documentation,
aws_documentation___read_sections, or
aws_documentation___recommend; exact names depend on the configured client.
If AWS documentation MCP tools are unavailable, use official AWS documentation
and the local installed @pulumi/aws surface instead. Do not block the task
solely because the MCP server is not configured.
required relationship, regional availability, IAM or service integration, or
recommended pattern.
requirement set for the resource cluster in scope, then validate each
required resource, setting, default, and relationship. Do not stop after
proving only the property or constraint named by the issue.
@pulumi/aws resource args, invokeargs, return types, and generated docs when relevant.
@pulumi/aws disagree, classify the disagreement:documentation drift, provider lag, AWSX schema limitation, or genuine design
choice.
cite the AWS documentation uncertainty.
supports it, the change also upgrades @pulumi/aws, or a maintainer accepts
an explicit escape hatch.
$awsx-component-design and$awsx-breaking-change-evaluation before changing schema shape.
or AWS service surface.
$awsx-breaking-change-evaluation.
hand off to $awsx-test-authoring for targeted acceptance proof.
Safe source-backed design:
- AWS docs say the API property is supported.
- Installed @pulumi/aws exposes the matching resource argument.
- Existing AWSX component shape can pass the value without changing existing
behavior.
Needs escalation:
- AWS docs show a service feature, but installed @pulumi/aws does not expose it.
- AWS docs and provider schema use different names or shapes.
- The feature is region-limited and AWSX would need to encode region behavior.
- The correct behavior depends on AWS accepting a cross-resource integration.
Not enough evidence:
- "This is how ECS usually works" with no AWS docs, provider surface, local
pattern, or live proof.
- A feature validation that proves one required property exists but does not
enumerate the other AWS settings needed for the happy path to work.
Use $awsx-component-design after the AWS fact is known and the question becomes
how to expose it in AWSX. Use $awsx-breaking-change-evaluation when the fact
changes existing behavior or public surface. Use $awsx-test-authoring when the
fact requires mock, schema, provider-upgrade, or live AWS proof.
Take pulumi/awsx-aws-service-validation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.