Interactive guide for installing and configuring AWS Deployer infrastructure - builds Lambda functions, deploys CloudFormation stacks, and sets up multi-account targets and GitHub OIDC integration.
Interactive guide that installs AWS Deployer infrastructure - builds Lambda functions, deploys CloudFormation stacks, and configures multi-account targets and GitHub OIDC integration. Use when users need to set up the complete AWS Deployer system from scratch.
/plugin marketplace add savaki/savaki-marketplace/plugin install aws-deployer@savaki-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill guides users through the complete setup and configuration of AWS Deployer (github.com/savaki/aws-deployer), a serverless CloudFormation deployment automation system that orchestrates infrastructure deployments using AWS Step Functions, Lambda, and DynamoDB.
AWS Deployer is a serverless system that automates CloudFormation deployments across single or multiple AWS accounts. It:
When this skill is invoked, you are helping the user set up AWS Deployer from scratch. Your role is to interactively guide them through the complete setup process:
Important: This is an interactive, step-by-step process. Don't just provide all the instructions at once. Ask questions, wait for responses, verify each step is complete before moving to the next one, and adapt to the user's specific needs.
Before starting, verify the user has:
Ask the user:
Guide the user to build all Lambda functions:
make build
Verify the build succeeded by checking for .zip files in the build/ directory.
If the user wants a custom domain, guide them through these prerequisites:
Verify Route 53 Hosted Zone:
# List hosted zones to find the Zone ID
aws route53 list-hosted-zones-by-name --dns-name example.com
# Verify nameservers are properly configured
aws route53 get-hosted-zone --id <ZONE_ID>
Important: The domain's nameservers at the registrar must point to the AWS Route 53 nameservers shown in the hosted zone.
Create/Verify ACM Certificate:
# Request a certificate (if not already exists)
aws acm request-certificate \
--domain-name deployer.example.com \
--validation-method DNS \
--region <region>
# List certificates to find the ARN
aws acm list-certificates --region <region>
# Get certificate details and validation records
aws acm describe-certificate --certificate-arn <CERTIFICATE_ARN> --region <region>
Important:
ISSUED before deployingVerify Certificate is Issued:
aws acm describe-certificate \
--certificate-arn <CERTIFICATE_ARN> \
--region <region> \
--query 'Certificate.Status' \
--output text
Should return ISSUED before proceeding.
Help construct the deployment command based on their requirements:
Basic deployment:
ENV=dev S3_BUCKET=<bucket-name> make deploy
With custom domain:
ENV=prd \
S3_BUCKET=<bucket-name> \
ZONE_ID=Z1234567890ABC \
DOMAIN_NAME=deployer.example.com \
CERTIFICATE_ARN=arn:aws:acm:us-east-1:123456789012:certificate/abc-123 \
make deploy
With all optional parameters:
ENV=prd \
S3_BUCKET=<bucket-name> \
DEPLOYMENT_MODE=multi \
ALLOWED_EMAIL=admin@example.com \
ZONE_ID=Z1234567890ABC \
DOMAIN_NAME=deployer.example.com \
CERTIFICATE_ARN=arn:aws:acm:... \
make deploy
Monitor the CloudFormation deployment and help troubleshoot any errors.
After deployment, verify the CloudFormation stack deployed successfully:
# Check CloudFormation stack status
aws cloudformation describe-stacks \
--stack-name <env>-aws-deployer \
--query 'Stacks[0].StackStatus' \
--output text
Should return CREATE_COMPLETE or UPDATE_COMPLETE.
If the stack deployed successfully, all resources (Lambda functions, DynamoDB tables, Step Functions, Parameter Store) are configured automatically.
If using multi-account mode, configure deployment targets:
Build the CLI:
make build-cli
Configure initial environment:
aws-deployer targets config \
--env <env> \
--default \
--initial-env dev
Set up deployment targets for each environment:
Note: --downstream-env specifies where this environment promotes TO (the next environment in the pipeline).
For dev (promotes to staging):
aws-deployer targets set \
--env <env> \
--target-env dev \
--default \
--accounts "123456789012" \
--regions "us-east-1" \
--downstream-env "staging"
For staging (promotes to prd):
aws-deployer targets set \
--env <env> \
--target-env staging \
--default \
--accounts "123456789012" \
--regions "us-east-1,us-west-2" \
--downstream-env "prd"
For production (final environment, no promotion):
aws-deployer targets set \
--env <env> \
--target-env prd \
--default \
--accounts "123456789012,987654321098" \
--regions "us-east-1,us-west-2,eu-west-1"
Verify target configuration:
aws-deployer targets list --env <env>
For each repository that will use AWS Deployer:
Prerequisites:
repo scope stored in AWS Secrets Managersecretsmanager:GetSecretValue permission for the GitHub PAT secretCreate the GitHub PAT secret (if not already exists):
# Create the secret with your GitHub PAT
aws secretsmanager create-secret \
--name github/pat-token \
--secret-string '{"github_pat":"ghp_xxxxxxxxxxxxx"}'
Create GitHub OIDC role and secrets:
aws-deployer setup-github \
--role-name github-actions-<repo-name> \
--repo owner/repository-name \
--bucket <artifacts-bucket> \
--github-token-secret github/pat-token
This creates:
Provide the user with a sample GitHub Actions workflow:
name: Deploy to AWS
on: [push]
permissions:
id-token: write
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
aws-region: us-east-1
- name: Build and package
run: |
# Build your application and create CloudFormation template
# Generate cloudformation-params.json with standard parameters
REPO="<repo>"
BRANCH="${{ github.ref_name }}"
SHA_SHORT="${{ github.sha }}"
SHA_SHORT="${SHA_SHORT:0:6}"
VERSION="${{ github.run_number }}.${SHA_SHORT}"
S3_PREFIX="${REPO}/${BRANCH}/${VERSION}"
cat > cloudformation-params.json <<EOF
{
"Env": "dev",
"Version": "${VERSION}",
"S3Bucket": "<bucket>",
"S3Prefix": "${S3_PREFIX}"
}
EOF
- name: Upload to S3
run: |
REPO="<repo>"
BRANCH="${{ github.ref_name }}"
SHA_SHORT="${{ github.sha }}"
SHA_SHORT="${SHA_SHORT:0:6}"
VERSION="${{ github.run_number }}.${SHA_SHORT}"
S3_PATH="s3://<bucket>/${REPO}/${BRANCH}/${VERSION}/"
aws s3 cp cloudformation.template "${S3_PATH}"
aws s3 cp cloudformation-params.json "${S3_PATH}"
Important: Your CloudFormation templates should always expect these standard parameters:
Env - Environment name (dev, staging, prd)Version - Build version in format {build_number}.{commit_hash}S3Bucket - Artifacts bucket nameS3Prefix - S3 path to artifacts in format {repo}/{branch}/{version}For multi-account deployments, set up IAM roles in target accounts:
aws-deployer setup-aws \
--account-id <target-account-id> \
--admin-account-id <deployer-account-id> \
--role-name AWSCloudFormationStackSetExecutionRole
This creates the execution role that CloudFormation StackSets need in each target account.
Help the user diagnose common issues:
state-machine-arn in Parameter Storessm:GetParameter* permissionsDISABLE_SSM=true for local developmentVerify the setup is complete by checking the CloudFormation stack status:
# Check stack status
aws cloudformation describe-stacks \
--stack-name <env>-aws-deployer \
--query 'Stacks[0].StackStatus' \
--output text
Should return CREATE_COMPLETE or UPDATE_COMPLETE.
If the CloudFormation stack deployed successfully, all infrastructure resources are automatically created:
Additional verification for multi-account setups:
Additional verification for GitHub integration:
After setup is complete, guide the user to:
deploy skill to test their first deploymentKeep these handy for the user:
# View build history
aws dynamodb query \
--table-name <env>-aws-deployer--builds \
--key-condition-expression "pk = :pk" \
--expression-attribute-values '{":pk":{"S":"<repo>/<env>"}}'
# Update Parameter Store
aws ssm put-parameter \
--name "/<env>/aws-deployer/<param>" \
--value "<value>" \
--overwrite
# View Step Function executions
aws stepfunctions list-executions \
--state-machine-arn <arn> \
--max-results 10
# Tail Lambda logs
aws logs tail /aws/lambda/<env>-aws-deployer-<function> --follow
# Update Lambda code
make update-lambda-code
# Full redeployment
make clean-version && make deploy
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.