mcpbeat Sign in

Amplify Workflow Agent Skill

Build and deploy full-stack web and mobile apps with AWS Amplify Gen2 (TypeScript code-first). Covers auth (Cognito), data (AppSync/DynamoDB including schema modeling, enum types, relationships, authorization rules), storage (S3), functions, APIs, and AI (Amplify AI Kit with Bedrock). Supports React, Next.js, Vue, Angular, React Native, Flutter, Swift, and Android. Always use this skill for Amplify Gen2 topics — even for questions you think you know — it contains validated, Amplify Gen2; project has amplify/ directory or amplify_outputs; code imports @aws-amplify packages; user asks about defineBackend, defineAuth, defineData, defineStorage, (use aws-serverless), direct Bedrock without Amplify AI Kit (use bedrock).'

33k tokens
context cost
the whole folder, loaded on every use
17
files
instructions only
0
copies elsewhere
how many repositories repackaged it
850
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/awslabs/agent-plugins --skill amplify-workflow

The instruction itself

15 sections, as written by the author

AWS Amplify Gen2

Build and deploy full-stack applications using AWS Amplify Gen2's TypeScript

code-first approach. This skill covers backend resource creation, frontend

integration across 8 frameworks, and deployment workflows.

Prerequisites

  • Node.js ^18.19.0 || ^20.6.0 || >=22 and npm
  • AWS credentials configured (aws sts get-caller-identity succeeds)
  • For sandbox: npx ampx --version returns a valid version
  • For mobile: Platform-specific tooling (Xcode, Android Studio, Flutter SDK)

Defaults & Assumptions

When the user does not specify a framework:

  • Web: You SHOULD default to React (Vite) and explain the choice.
  • Mobile: You MUST ask which platform the user wants (Flutter,

Swift, Android, or React Native). There is no universal mobile default.

  • Neither specified: If the user says "build an app" without clarifying web

vs. mobile, you MUST ask before proceeding.

  • Backend only: If only backend changes are requested and no frontend

framework is mentioned, skip the frontend integration step entirely.

When the user does not specify tooling or strategy:

  • Package manager: You SHOULD default to npm unless the user

specifies yarn or pnpm.

  • Language: You SHOULD default to TypeScript. Gen2 backends are

TypeScript-only; frontends SHOULD follow the project's existing language.

  • Next.js: You SHOULD default to App Router unless the user

specifies Pages Router.

  • React Native: Ask the user whether they use Expo or **bare

React Native CLI**.

  • Auth: You MUST ask which login method the user wants

(email/password, social login, SAML, passwordless, etc.). Do not assume a default.

  • Data authorization: default to publicApiKey

(allow.publicApiKey()) — this is the starter template default. When

auth is added, switch to owner-based (allow.owner()) with

defaultAuthorizationMode: 'userPool'.

Quick Start — Route to the Right Reference

Step 0: Read Core Reference (ALWAYS)

You MUST read the core reference for your target platform **before

reading any other reference file**. These contain Gen2 detection,

Amplify.configure() placement per framework, sandbox commands, required

packages, and directory structure rules — patterns needed for all tasks,

not just new projects.

  • Web (React, Next.js, Vue, Angular, React Native): You MUST read

core-web.md

  • Mobile (Flutter, Swift, Android): You MUST read

core-mobile.md

  • Backend only (no frontend work): Skip to Step 1.

Step 1: Identify the Task Type

| Task | Go To |

| ---------------------------------------- | ------------------------------------------------------------------------ |

| Create a new project | → scaffolding.md, then Step 2 and/or Step 3 |

| Add or modify a backend feature | → Step 2 (Backend Features) |

| Connect frontend to existing backend | → Step 3 (Frontend Integration) |

| Deploy the application | → deployment.md |

Step 2: Backend Features

You MUST read the corresponding reference for each backend feature:

| Feature | Reference | When to Use |

| ---------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |

| Authentication | auth-backend.md | Email/password, social login, MFA, SAML/OIDC |

| Data Models | data-backend.md | GraphQL schema, DynamoDB, relationships, auth rules |

| File Storage | storage-backend.md | S3 uploads/downloads, access rules |

| Functions & API | functions-and-api.md | Lambda, custom resolvers, REST/HTTP APIs, calling from client |

| AI Features | ai.md | Conversation, generation, AI tools via Bedrock _(backend config + React/Next.js frontend)_ |

| Geo, PubSub, CDK | advanced-features.md | Backend-only: custom CDK stacks, overrides, custom outputs. Backend + frontend: Geo, PubSub, Face Liveness |

Each backend feature file is self-contained. Load only what you need.

> Routing note: These files apply for both adding and modifying

> features. Route to the same file whether the user says "add auth" or

> "change auth config" — each reference covers the full define surface.

Step 3: Frontend Integration

After configuring backend resources, connect the frontend. Choose by

platform and feature:

Web (React, Next.js, Vue, Angular, React Native):

| Feature | Reference |

| ------------------------- | ------------------------------------------- |

| Auth UI & flows | auth-web.md |

| Data CRUD & subscriptions | data-web.md |

| Storage upload/download | storage-web.md |

Mobile (Flutter, Swift, Android):

| Feature | Reference |

| ------------------------- | ------------------------------------------------- |

| Auth UI & flows | auth-mobile.md |

| Data CRUD & subscriptions | data-mobile.md |

| Storage upload/download | storage-mobile.md |

> Note: AI and Functions frontend patterns are included in

> ai.md and

> functions-and-api.md respectively —

> they are not split into separate web/mobile files.

Core Concepts

Amplify Gen2 Architecture

  • Code-first: All backend resources defined in TypeScript under amplify/
  • Main config: amplify/backend.ts imports and combines all resources via

defineBackend()

  • Resource files: amplify/auth/resource.ts, amplify/data/resource.ts,

amplify/storage/resource.ts, amplify/functions/<name>/resource.ts

  • Generated output: amplify_outputs.json — consumed by frontend

Amplify.configure(). Gitignored — generated by npx ampx sandbox

(local dev) or npx ampx pipeline-deploy (CI/CD), never committed.

Directory Structure

project-root/
├── amplify/
│   ├── backend.ts            # defineBackend({ auth, data, ... })
│   ├── auth/resource.ts      # defineAuth({ ... })
│   ├── data/resource.ts      # defineData({ schema })
│   ├── storage/resource.ts   # defineStorage({ ... })
│   └── functions/
│       └── my-func/
│           ├── resource.ts   # defineFunction({ ... })
│           └── handler.ts    # export const handler = ...
├── src/                      # Frontend code
├── amplify_outputs.json      # Generated — DO NOT edit or commit (gitignored)
└── package.json

Key APIs

| Package | Purpose |

| -------------------------- | ------------------------------------------------------------------------------ |

| @aws-amplify/backend | defineAuth, defineData, defineStorage, defineFunction, defineBackend |

| aws-amplify | Frontend: Amplify.configure(), generateClient(), auth/data/storage APIs |

| @aws-amplify/ui-react | Pre-built UI: <Authenticator>, <StorageBrowser> |

| @aws-amplify/ui-react-ai | AI UI: <AIConversation>, useAIConversation |

Documentation & Resource Verification

When you need AWS documentation (advanced CDK constructs, service limits,

provider-specific auth config):

  • If AWS documentation tools are available (e.g., via AWS MCP), you SHOULD

use them to search and retrieve relevant documentation pages.

  • If AWS documentation tools are unavailable, you MUST fall back to web

search or the aws CLI for resource verification.

> Why conditional: Amplify Gen2 is code-first — the primary workflow is

> editing TypeScript files and running npx ampx commands. AWS MCP tools

> are useful for post-deployment verification but are not required.

Security Considerations

  • Use secret() for all credentials and API keys — never hardcode or use plain environment variables for sensitive values
  • Review allow.guest() exposure carefully — guest access is enabled by default and grants unauthenticated users access to IAM-authorized resources
  • Scope IAM policies to specific resource ARNs — avoid resources: ['*'] in production
  • Never log secrets or include them in error messages
  • Enable CloudTrail and CloudWatch alarms for monitoring Amplify-deployed resources; enable access logging on S3, AppSync, and API Gateway
  • Configure security headers for web apps — set CSP, HSTS, X-Frame-Options, and X-Content-Type-Options via customHeaders in amplify.yml
  • Attach AWS WAF to public-facing AppSync APIs and API Gateway endpoints for defense in depth
  • Enable throttling and rate limiting on API Gateway and AppSync APIs to prevent abuse
  • Use IAM roles with ephemeral credentials for CI/CD pipelines and Lambda execution roles — never long-lived access keys
  • Encrypt CloudWatch Logs groups with KMS (aws:kms) when they may contain PII, tokens, or secrets; enable log retention policies
  • Enable AppSync schema validation and API Gateway request validators to reject malformed input at the edge
  • Use ACM-managed TLS certificates for custom domains on Amplify Hosting — configure via customDomain in deployment config

> All documentation links use react as the default platform slug. Replace /react/ in any URL with your target framework:

| Framework | Slug |

| ------------ | -------------- |

| React | react |

| Next.js | nextjs |

| Vue | vue |

| Angular | angular |

| React Native | react-native |

| Flutter | flutter |

| Swift | swift |

| Android | android |

Other skills for the same job

different authors, same section of the catalogue
MCP Builder
by anthropics
vendor ×13

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

30k tokens scripts
Changelog Generator
by frostant
×9

Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.

774 tokens
Finishing A Development Branch
by ZhanlinCui
×7

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup

1k tokens
MCP Builder
by JayZeeDesign
×7

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

37k tokens scripts
Vercel React Native Skills
by vercel-labs
vendor ×6

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

39k tokens
Vercel React Best Practices
by ratacat
×5

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

34k tokens
Next Best Practices
by vercel-labs
vendor ×4

Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling

20k tokens
Using Git Worktrees
by ZhanlinCui
×4

Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification

1k tokens

How to use it

Copy the folder

Take awslabs/amplify-workflow from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.

Install what it needs

The instructions reference npx. Without those the skill loads but fails at the first command.