Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

aws-amplify

AWS Amplify Gen2(TypeScript コードファースト)を使ったフルスタックWeb・モバイルアプリの構築とデプロイを支援するスキルで、認証(Cognito)・データ(AppSync/DynamoDB)・ストレージ(S3)・関数・API・AI(Amplify AI Kit + Bedrock)をカバーします。React・Next.js・Vue・Angular・React Native・Flutter・Swift・Androidに対応し、バージョン固有の検証済みパターンを提供することでよくあるミスを防ぎます。ユーザーがAmplify Gen2に言及した場合、プロジェクトに`amplify/`ディレクトリや`amplify_outputs`が存在する場合、`@aws-amplify`パッケージをインポートしている場合、または`defineBackend`・`defineAuth`・`defineData`・`defineStorage`・`defineFunction`・`npx ampx`について質問した場合にトリガーされます。

description の原文を見る

> Build and deploy full-stack web and mobile apps with AWS Amplify Gen2 (TypeScript code-first). Covers auth (Cognito), data (AppSync/DynamoDB), 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, version-specific patterns that prevent common mistakes. TRIGGER when: user mentions Amplify Gen2; project has amplify/ directory or amplify_outputs; code imports @aws-amplify packages; user asks about defineBackend, defineAuth, defineData, defineStorage, defineFunction, or npx ampx. SKIP: Amplify Gen1 (amplify CLI v6), standalone SAM/CDK without Amplify (use aws-serverless), direct Bedrock without Amplify AI Kit (use bedrock).

SKILL.md 本文

AWS Amplify Gen2

AWS Amplify Gen2 の TypeScript コードファースト手法を使用して、フルスタック アプリケーションを構築・デプロイします。このスキルは、バックエンド リソースの作成、8 つのフレームワークにまたがるフロントエンド統合、 およびデプロイメント ワークフローをカバーしています。

前提条件

  • Node.js ^18.19.0 || ^20.6.0 || >=22 および npm
  • AWS 認証情報の設定 (aws sts get-caller-identity が成功する)
  • サンドボックス用: npx ampx --version が有効なバージョンを返す
  • モバイル用: プラットフォーム固有のツール (Xcode、Android Studio、Flutter SDK)

デフォルト & 前提条件

ユーザーがフレームワークを指定していない場合:

  • Web: React (Vite) をデフォルトにして、その選択を説明してください。
  • モバイル: どのプラットフォーム (Flutter、Swift、Android、React Native) を使用するか 尋ねてください — ユーザーの努力が無駄になるため、推測は避けてください。
  • どちらも指定されない: ユーザーが web と mobile を明確にせずに「アプリを構築する」と言った場合、 進める前に尋ねてください — フレームワークの選択は後続のすべてのステップに影響します。
  • バックエンドのみ: バックエンド変更のみが要求されており、フロントエンド フレームワークが記載されていない場合、フロントエンド統合ステップはスキップしてください。

ユーザーがツーリングまたは戦略を指定していない場合:

  • パッケージ マネージャー: ユーザーが yarn または pnpm を指定していない限り、npm をデフォルトにします。
  • 言語: TypeScript をデフォルトにします。Gen2 バックエンドは TypeScript のみです。 フロントエンドはプロジェクトの既存言語に従うべきです。
  • Next.js: ユーザーが Pages Router を指定していない限り、App Router をデフォルトにします。
  • React Native: ユーザーが Expo または bare React Native CLI を使用しているかを尋ねてください。
  • 認証: ユーザーがどのログイン方法を望むか (メール/パスワード、ソーシャル ログイン、 SAML、パスワードレス など) を必ず尋ねてください。デフォルトを仮定しないでください。
  • データ認可: publicApiKey (allow.publicApiKey()) をデフォルトにします — これはスターター テンプレートのデフォルトです。 認証が追加されたら、所有者ベース (allow.owner()) および defaultAuthorizationMode: 'userPool' に切り替えます。

クイック スタート — 正しいリファレンスへのルーティング

ステップ 1: タスク タイプの特定

タスク参照先
新しいプロジェクトの作成scaffolding.md、その後ステップ 2 または 3
バックエンド機能の追加または変更→ ステップ 2 (バックエンド機能)
既存バックエンドへのフロントエンド接続→ ステップ 3 (フロントエンド統合)
アプリケーションのデプロイdeployment.md

ステップ 2: バックエンド機能

必要なバックエンド機能ごとに対応するリファレンスを読んでください:

機能リファレンス使用時期
認証auth-backend.mdメール/パスワード、ソーシャル ログイン、MFA、SAML/OIDC
データ モデルdata-backend.mdGraphQL スキーマ、DynamoDB、リレーションシップ、認可ルール
ファイル ストレージstorage-backend.mdS3 アップロード/ダウンロード、アクセス ルール
関数 & APIfunctions-and-api.mdLambda、カスタム リゾルバー、REST/HTTP API、クライアントからの呼び出し
AI 機能ai.md会話、生成、Bedrock 経由の AI ツール (バックエンド設定 + React/Next.js フロントエンド)
Geo、PubSub、CDKgeo-pubsub-cdk.mdバックエンドのみ: カスタム CDK スタック、オーバーライド、カスタム出力。バックエンド + フロントエンド: Geo、PubSub、Face Liveness

各バックエンド機能ファイルは独立しています。必要なもののみを読み込んでください。

ルーティング注: これらのファイルは機能の 追加変更 の両方に適用されます。 ユーザーが「認証を追加する」または「認証設定を変更する」と言った場合でも、 同じファイルにルーティングしてください。各リファレンスは完全な define サーフェスをカバーしています。

ステップ 3: フロントエンド統合

バックエンド リソースを設定した後、フロントエンドに接続します。 プラットフォームと機能により選択してください:

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

機能リファレンス
認証 UI & フローauth-web.md
データ CRUD & サブスクリプションdata-web.md
ストレージ アップロード/ダウンロードstorage-web.md

モバイル (Flutter、Swift、Android):

機能リファレンス
認証 UI & フローauth-mobile.md
データ CRUD & サブスクリプションdata-mobile.md
ストレージ アップロード/ダウンロードstorage-mobile.md

注: AI および Functions フロントエンド パターンは ai.md および functions-and-api.md に含まれています。これらは 別の web/mobile ファイルに分割 されていません

コア コンセプト

Amplify Gen2 アーキテクチャ

  • コードファースト: すべてのバックエンド リソースは amplify/ の下で TypeScript で定義されます
  • メイン設定: amplify/backend.tsdefineBackend() を介してすべてのリソースをインポートして結合します
  • リソース ファイル: amplify/auth/resource.tsamplify/data/resource.tsamplify/storage/resource.tsamplify/functions/<name>/resource.ts
  • 生成出力: amplify_outputs.json — フロントエンド Amplify.configure() で使用されます。 .gitignorednpx ampx sandbox (ローカル開発) または npx ampx pipeline-deploy (CI/CD) で生成され、 コミットされません。

ディレクトリ構造

amplify/src/ はプロジェクト ルートの兄弟である必要があります。 それらを異なるディレクトリ レベルに配置するとサンドボックス検出が破損します。 (例外: モノレポでは amplify/packages/ サブディレクトリに配置できます。 重要なのは amplify_outputs.json がフロントエンド エントリ ポイントからアクセス可能である必要があることです。)

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/                      # フロントエンド コード
├── amplify_outputs.json      # 生成、gitignored — 編集またはコミットしないでください
└── package.json

主要 API

パッケージ目的
@aws-amplify/backenddefineAuthdefineDatadefineStoragedefineFunctiondefineBackend
aws-amplifyフロントエンド: Amplify.configure()generateClient()、認証/データ/ストレージ API
@aws-amplify/ui-react事前構築 UI: <Authenticator><StorageBrowser>
@aws-amplify/ui-react-aiAI UI: <AIConversation>useAIConversation

フレームワーク セットアップ

これらのパターンは すべての web タスク に適用されます — 新規プロジェクトのみではありません。 機能を実装する前に各パターンを確認してください。

Gen2 検出

コードを変更する前に、プロジェクトが既に Gen2 であるかを確認してください:

  1. amplify/ ディレクトリが存在し、backend.ts がある
  2. @aws-amplify/backendpackage.json の devDependencies にある

両方が真の場合、プロジェクトは既に Gen2 です — 機能実装に進んでください。 amplify/.config/ が代わりに存在する場合、これは Gen1 プロジェクトです — 進めないでください (個別の移行スキルが必要です)。

フロントエンド構成

生成された出力をインポートし、フレームワークの 正しいエントリ ポイント で Amplify を設定します。 これを間違ったファイルに配置すると、サイレント障害が発生します — Amplify API 呼び出しは未定義または 空のレスポンスを返し、エラーは表示されません。

警告: amplify_outputs.json がアプリのコンパイル前に存在する必要があります — これがないと、 ビルドはモジュール見つからないエラーで失敗します。 最初に npx ampx sandbox (または npx ampx sandbox --once) を実行して生成してください。 正しなシーケンスについては scaffolding.md を参照してください。

React (Vite)src/main.tsx:

import { Amplify } from 'aws-amplify';
import outputs from '../amplify_outputs.json';
Amplify.configure(outputs);

Next.js (App Router)app/layout.tsx:

重要: layout.tsx は App Router のサーバー コンポーネントです。 代わりに以下の ConfigureAmplifyClientSide クライアント コンポーネント パターンを使用してください。

{ ssr: true }Next.js のみ のオプション (Vue、Angular、React SPA では不要)。 App Router と Pages Router の両方がこれを使用しますが、異なる方法で適用されます:

  • App RouterConfigureAmplifyClientSide クライアント コンポーネントでグローバルに設定
  • Pages Router — サーバー側アクセスが必要なファイルごとに設定

Next.js App Router: クライアント側設定

Next.js App Router では、ブラウザ側の操作のために Amplify を設定するための 専用クライアント コンポーネントが必要です:

// components/ConfigureAmplifyClientSide.tsx
"use client";
import { Amplify } from "aws-amplify";
import outputs from "@/amplify_outputs.json";

Amplify.configure(outputs, { ssr: true });

export default function ConfigureAmplifyClientSide() {
  return null;
}

ルート レイアウトにインポートしてください:

// app/layout.tsx
import ConfigureAmplifyClientSide from "@/components/ConfigureAmplifyClientSide";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html>
      <body>
        <ConfigureAmplifyClientSide />
        {children}
      </body>
    </html>
  );
}

理由: App Router では、layout.tsx はサーバー コンポーネントです。 クライアント コンポーネントは Amplify.configure() をブラウザで実行する必要があります。 これがないと、「Auth UserPool not configured」エラーが発生します。

Vuesrc/main.js:

import { Amplify } from 'aws-amplify';
import outputs from '../amplify_outputs.json';
Amplify.configure(outputs);

Angularsrc/main.ts:

import { Amplify } from 'aws-amplify';
import outputs from '../amplify_outputs.json';
Amplify.configure(outputs);

Next.js Pages Router

Pages Router は _app.tsx{ ssr: true } を必要としません。代わりに、 サーバー側アクセスが必要なファイルごとに設定してください:

// pages/api/protected.ts or getServerSideProps
import { Amplify } from 'aws-amplify';
import outputs from '@/amplify_outputs.json';
Amplify.configure(outputs, { ssr: true });

主な違い: App Router はグローバル クライアント コンポーネントを使用します。 Pages Router はファイルごとに設定します。

<Authenticator.Provider> は認証コンテキストのために layout.tsx で必須です。

React Native

React Native は web フレームワークと同じ aws-amplify JS パッケージを使用します (amplify-js の一部であり、ネイティブ モバイル SDK ではありません)。 すべての web API が RN に以下の追加とともに適用されます。

必須パッケージ

npm install aws-amplify @aws-amplify/react-native \
  @react-native-async-storage/async-storage \
  react-native-get-random-values

@react-native-async-storage/async-storage必須 です — Amplify SDK はそれを トークンの永続化に使用し、これがないと実行時に失敗します。

エントリ ポイントの設定

プラグイン登録は必要ありません — 設定のみです。

React Native (Expo)App.tsx:

import 'react-native-get-random-values';  // 最初である必要があります
import { Amplify } from 'aws-amplify';
import outputs from './amplify_outputs.json';
Amplify.configure(outputs);

React Native (Bare CLI)index.js (AppRegistry.registerComponent の前):

import 'react-native-get-random-values';  // 最初である必要があります
import { Amplify } from 'aws-amplify';
import outputs from './amplify_outputs.json';
Amplify.configure(outputs);

React Native の落とし穴

  • インポート順序: react-native-get-random-values はエントリ ファイルの 最初 のインポートである必要があります。aws-amplify の前です。 順序を逆にすると、実行時に暗号化の障害が発生します。
  • AsyncStorage の欠落: @react-native-async-storage/async-storage がないと、 認証トークンが永続化されず、ユーザーはアプリ再起動のたびに再認証が必要です。

SvelteKit

クライアント フックス ファイルで Amplify を設定してください:

// src/hooks.client.ts
import { Amplify } from 'aws-amplify';
import outputs from '../amplify_outputs.json';

Amplify.configure(outputs);

注: Svelte 用の @aws-amplify/ui-* コンポーネントは存在しません。 コア API を直接使用してください。

サポートされていないフレームワーク (Astro、Solid など)

Amplify の公式サポートがないフレームワークの場合:

  1. npm create amplify@latest -y を使用してバックエンドをスキャフォールドします (任意のプロジェクトで動作します)
  2. クライアント側コンポーネント (ビルド時ではなく) 内で Amplify を設定します

Astro

Amplify は Astro では クライアント側のみ です。React コンポーネントを作成します (Astro 構文なし):

// src/components/AuthenticatedApp.tsx
import { Amplify } from 'aws-amplify';
import { Authenticator } from '@aws-amplify/ui-react';
import outputs from '../amplify_outputs.json';

Amplify.configure(outputs);

export default function AuthenticatedApp() {
  return (
    <Authenticator>
      {({ signOut, user }) => <main>Hello {user?.username}</main>}
    </Authenticator>
  );
}

client:only で Astro ページで使用します:

---
// src/pages/index.astro — ここに Amplify インポートはありません
---
<html>
  <body>
    <AuthenticatedApp client:only="react" />
  </body>
</html>

client:only="react" を使用する必須 (NOT client:load) SSR ハイドレーション エラーを回避するためです。

リンク

すべてのドキュメント リンクは react をデフォルト プラットフォーム スラッグとして使用します。 任意の URL の /react/ をターゲット フレームワークに置き換えてください:

フレームワークスラッグ
Reactreact
Next.jsnextjs
Vuevue
Angularangular
React Nativereact-native
Flutterflutter
Swiftswift
Androidandroid

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
aws
リポジトリ
aws/agent-toolkit-for-aws
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/aws/agent-toolkit-for-aws / ライセンス: Apache-2.0

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: aws · aws/agent-toolkit-for-aws · ライセンス: Apache-2.0