amplify-workflow
Build and deploy full-stack web and mobile apps with AWS Amplify Gen2
Integrates Amazon Location Service APIs for AWS applications. Use this skill when users want to add maps (interactive MapLibre or static images); geocode addresses to coordinates or reverse geocode coordinates to addresses; calculate routes, travel times, or service areas; find
Claude Code
$ npx -y skills add awslabs/agent-plugins --skill amazon-location-service --agent claude-code
Codex
$ npx skills add awslabs/agent-plugins --skill amazon-location-service -a codex -y
Cursor
$ npx skills add awslabs/agent-plugins --skill amazon-location-service -a cursor -y
Gemini CLI
$ npx skills add awslabs/agent-plugins --skill amazon-location-service -a gemini-cli -y
GitHub Copilot
$ npx skills add awslabs/agent-plugins --skill amazon-location-service -a github-copilot -y
OpenCode
$ npx skills add awslabs/agent-plugins --skill amazon-location-service -a opencode -y
Windsurf
$ npx skills add awslabs/agent-plugins --skill amazon-location-service -a windsurf -y
name: amazon-location-service description: Integrates Amazon Location Service APIs for AWS applications. Use this skill when users want to add maps (interactive MapLibre or static images); geocode addresses to coordinates or reverse geocode coordinates to addresses; calculate routes, travel times, or service areas; find places and businesses through text search, nearby search, or autocomplete suggestions; retrieve detailed place information including hours, contacts, and addresses; monitor geographical boundaries with geofences; or track device locations. Covers authentication, SDK integration, and all Amazon Location Service capabilities. license: Apache-2.0 metadata: author: aws-geospatial version: "1.1"
Amazon Location Service provides geospatial APIs for maps, geocoding, routing, places search, geofencing, and tracking. Prefer the bundled JavaScript client (@aws/amazon-location-client) for web development and use resourceless API operations to avoid managing AWS resources.
Use this skill when:
Do NOT use this skill for:
**Places** (SDK: geo-places, JS: @aws-sdk/client-geo-places)
**Jobs** (SDK: location, JS: @aws-sdk/client-location)
**Maps** (SDK: geo-maps, JS: @aws-sdk/client-geo-maps)
**Routes** (SDK: geo-routes, JS: @aws-sdk/client-geo-routes)
**Geofences & Trackers** (SDK: location, JS: @aws-sdk/client-location)
**API Keys** (SDK: location, JS: @aws-sdk/client-location)
Avoid these frequent errors:
1. **Using `Title` instead of `Address.Label` for display**: In Autocomplete results, always display `Address.Label`. The `Title` field may show components in reverse order and is not suitable for user-facing text.
2. **Using GetStyleDescriptor API for map initialization**: MUST use direct URL passing to MapLibre (`https://maps.geo.{region}.amazonaws.com/v2/styles/Standard/descriptor?key={apiKey}`) instead of making GetStyleDescriptor API calls. The direct URL method is required for proper map rendering.
3. **Forgetting `validateStyle: false` in MapLibre config**: Always set `validateStyle: false` in the MapLibre Map constructor for faster map load times with Amazon Location styles.
4. **Mixing resource-based and resourceless operations**: When possible, prefer resourceless operations (direct API calls without pre-created resources) for simpler deployment and permissions.
5. **Inconsistent API operation naming**: Use the format `service:Operation` when referencing APIs (e.g., `geo-places:Geocode`, `geo-maps:GetStyleDescriptor`). SDK clients use `@aws-sdk/client-*` format.
6. **Not handling nested Address objects correctly**: The Address object from GetPlace contains nested objects (`Region.Code`, `Region.Name`, `Country.Code2`, etc.), not flat strings. Access nested properties correctly.
7. **Wrong action names in API Key permissions**: API key `AllowActions` use `geo-maps:`, `geo-places:`, `geo-routes:` prefixes (e.g., `geo-places:Geocode`, `geo-routes:CalculateRoutes`). Do NOT use SDK client names (`@aws-sdk/client-geo-places`) or IAM-style actions. See the Authentication and Permissions section for the complete list.
Use these default choices unless the user explicitly requests otherwise:
Override: User can specify "use Cognito for Maps/Places/Routes" or "use bundled client for React".
Choose the right API for your use case:
Build and deploy full-stack web and mobile apps with AWS Amplify Gen2
Build, manage, and operate APIs with Amazon API Gateway (REST, HTTP, and WebSocket). Triggers on phrases like: API Gateway, REST…
Build resilient, long-running, multi-step applications with AWS Lambda durable functions with automatic state persistence, retry…
Evaluate, configure, and migrate workloads to AWS Lambda Managed Instances (LMI). Triggers on: Lambda Managed Instances, LMI,…
Build, run, debug, and operate applications on AWS Lambda MicroVMs — Firecracker-isolated, snapshot-resumable serverless compute…
Design, build, deploy, test, and debug serverless applications with AWS Lambda. Triggers on phrases like: Lambda function, event…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.