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.
Source Order
Use the narrowest authoritative source that can prove the claim:
- Installed
@pulumi/aws schema, SDK types, generated docs, and provider
behavior for what AWSX can currently express through Pulumi.
- AWS documentation MCP tools or official AWS documentation for service
behavior, API constraints, CloudFormation support, regional availability,
examples, and best practices.
- Existing AWSX behavior and compatibility surface as context to reconcile with
the sources above, not as proof of an AWS service fact.
- Live AWS acceptance evidence when docs/schema are insufficient, ambiguous, or
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.
Local Provider Surface
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
AWS Documentation Sources
Choose the AWS source that matches the claim:
- AWS API reference: request/response shape, service-side validation, and API
behavior.
- CloudFormation resource docs: CloudFormation property support and update
behavior.
- AWS user guide or developer guide: service concepts, recommended patterns, and
valid cross-resource configurations.
- AWS regional availability data: Region-specific service, API, or
CloudFormation resource support.
Using AWS MCP
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:
- Search AWS docs for the service, resource, property, API, or error.
- Read the authoritative documentation page before relying on a snippet.
- Record the source used in the final answer, PR note, or review comment.
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.
Check
- Identify the exact AWS claim: property exists, value is valid, API behavior,
required relationship, regional availability, IAM or service integration, or
recommended pattern.
- For feature-level validation, first enumerate the complete AWS happy-path
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.
- Compare the AWS claim with the installed
@pulumi/aws resource args, invoke
args, return types, and generated docs when relevant.
- If AWS docs and
@pulumi/aws disagree, classify the disagreement:
documentation drift, provider lag, AWSX schema limitation, or genuine design
choice.
- Act on the disagreement:
- Documentation drift: prefer the installed provider surface for AWSX code and
cite the AWS documentation uncertainty.
- Provider lag: do not expose the feature through AWSX unless the provider
supports it, the change also upgrades
@pulumi/aws, or a maintainer accepts
an explicit escape hatch.
- AWSX schema limitation: hand off to
$awsx-component-design and
$awsx-breaking-change-evaluation before changing schema shape.
- Design choice: document why AWSX intentionally differs from the raw provider
or AWS service surface.
- If the claim affects existing users, hand off to
$awsx-breaking-change-evaluation.
- If the claim can only be proven by AWS accepting or observing the behavior,
hand off to
$awsx-test-authoring for targeted acceptance proof.
Examples
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.
Hand Off When
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.
1---2name: awsx-aws-service-validation3description: 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.4---56# AWSX AWS Service Validation78Use this skill when an AWSX change depends on an AWS service fact. This skill is9for evidence gathering, not for deciding whether AWSX should add a new10abstraction.1112For component shape, use `$awsx-component-design`. For compatibility risk, use13`$awsx-breaking-change-evaluation`. For proof strategy, use14`$awsx-test-authoring`.1516## Source Order1718Use the narrowest authoritative source that can prove the claim:19201. Installed `@pulumi/aws` schema, SDK types, generated docs, and provider21 behavior for what AWSX can currently express through Pulumi.222. AWS documentation MCP tools or official AWS documentation for service23 behavior, API constraints, CloudFormation support, regional availability,24 examples, and best practices.253. Existing AWSX behavior and compatibility surface as context to reconcile with26 the sources above, not as proof of an AWS service fact.274. Live AWS acceptance evidence when docs/schema are insufficient, ambiguous, or28 contradicted by observed behavior.2930AWS docs describe what the service can do. The installed `@pulumi/aws` surface31defines what AWSX can express without provider changes or escape hatches. Do not32let AWS docs override AWSX compatibility constraints or the currently installed33provider surface.3435Do not use model memory as the source for AWS service behavior. Do not use36Terraform AWS provider docs as the default source for AWSX guidance; use them37only as a last-resort hint that must be verified against Pulumi or AWS sources.3839## Local Provider Surface4041Use local, installed Pulumi sources before reasoning from memory:4243```shell44# Use the same AWS provider version this checkout builds against.45aws_version=$(node -p 'require("./awsx/package.json").dependencies["@pulumi/aws"]')4647# Discover resources and functions in an AWS module.48pulumi package info "aws@${aws_version}" --module s34950# Inspect one resource's inputs and outputs.51pulumi package info "aws@${aws_version}" --module s3 --resource Bucket5253# Inspect one invoke/function shape.54pulumi package info "aws@${aws_version}" --module ecr --function getAuthorizationToken5556# Inspect TypeScript definitions when implementation code imports @pulumi/aws.57rg -n "interface BucketArgs|class Bucket" awsx/node_modules/@pulumi/aws/s3/bucket.d.ts58```5960Also inspect the AWSX schema and generated implementation types when the claim61crosses the AWSX public surface:6263```shell64rg -n "awsx:ecr:Repository|RepositoryArgs" provider/cmd/pulumi-resource-awsx/schema.json awsx/schema-types.ts65```6667## AWS Documentation Sources6869Choose the AWS source that matches the claim:7071- AWS API reference: request/response shape, service-side validation, and API72 behavior.73- CloudFormation resource docs: CloudFormation property support and update74 behavior.75- AWS user guide or developer guide: service concepts, recommended patterns, and76 valid cross-resource configurations.77- AWS regional availability data: Region-specific service, API, or78 CloudFormation resource support.7980## Using AWS MCP8182If the AWS Documentation MCP server or similarly named AWS documentation MCP83tools are available, prefer them over broad web search for AWS service facts:8485- Search AWS docs for the service, resource, property, API, or error.86- Read the authoritative documentation page before relying on a snippet.87- Record the source used in the final answer, PR note, or review comment.8889When working in an environment with MCP introspection, check the available MCP90servers/tools first. Useful AWS tool names may look like91`aws_documentation___search_documentation`,92`aws_documentation___read_documentation`,93`aws_documentation___read_sections`, or94`aws_documentation___recommend`; exact names depend on the configured client.9596If AWS documentation MCP tools are unavailable, use official AWS documentation97and the local installed `@pulumi/aws` surface instead. Do not block the task98solely because the MCP server is not configured.99100## Check101102- Identify the exact AWS claim: property exists, value is valid, API behavior,103 required relationship, regional availability, IAM or service integration, or104 recommended pattern.105- For feature-level validation, first enumerate the complete AWS happy-path106 requirement set for the resource cluster in scope, then validate each107 required resource, setting, default, and relationship. Do not stop after108 proving only the property or constraint named by the issue.109- Compare the AWS claim with the installed `@pulumi/aws` resource args, invoke110 args, return types, and generated docs when relevant.111- If AWS docs and `@pulumi/aws` disagree, classify the disagreement:112 documentation drift, provider lag, AWSX schema limitation, or genuine design113 choice.114- Act on the disagreement:115 - Documentation drift: prefer the installed provider surface for AWSX code and116 cite the AWS documentation uncertainty.117 - Provider lag: do not expose the feature through AWSX unless the provider118 supports it, the change also upgrades `@pulumi/aws`, or a maintainer accepts119 an explicit escape hatch.120 - AWSX schema limitation: hand off to `$awsx-component-design` and121 `$awsx-breaking-change-evaluation` before changing schema shape.122 - Design choice: document why AWSX intentionally differs from the raw provider123 or AWS service surface.124- If the claim affects existing users, hand off to125 `$awsx-breaking-change-evaluation`.126- If the claim can only be proven by AWS accepting or observing the behavior,127 hand off to `$awsx-test-authoring` for targeted acceptance proof.128129## Examples130131```text132Safe source-backed design:133- AWS docs say the API property is supported.134- Installed @pulumi/aws exposes the matching resource argument.135- Existing AWSX component shape can pass the value without changing existing136 behavior.137138Needs escalation:139- AWS docs show a service feature, but installed @pulumi/aws does not expose it.140- AWS docs and provider schema use different names or shapes.141- The feature is region-limited and AWSX would need to encode region behavior.142- The correct behavior depends on AWS accepting a cross-resource integration.143144Not enough evidence:145- "This is how ECS usually works" with no AWS docs, provider surface, local146 pattern, or live proof.147- A feature validation that proves one required property exists but does not148 enumerate the other AWS settings needed for the happy path to work.149```150151## Hand Off When152153Use `$awsx-component-design` after the AWS fact is known and the question becomes154how to expose it in AWSX. Use `$awsx-breaking-change-evaluation` when the fact155changes existing behavior or public surface. Use `$awsx-test-authoring` when the156fact requires mock, schema, provider-upgrade, or live AWS proof.