plugins/lisa-expo-agy/skills/ops-verify-health/SKILL.md
Health check all services across environments. Checks frontend URLs, backend GraphQL endpoints, and reports response times.
npx skillsauth add codyswanngt/lisa ops-verify-healthInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Health check all services across environments.
Argument: $ARGUMENTS — environment(s) to check (default: all). Options: local, dev, staging, production, all
Read these files to build the environment URL table:
e2e/constants.ts — frontend URLs per environment.env.localhost, .env.development, .env.staging, .env.production — EXPO_PUBLIC_GRAPHQL_BASE_URL for backend GraphQL URLsFor each environment, run these checks:
curl -sf -o /dev/null -w "HTTP %{http_code} in %{time_total}s" {frontend_url}
Verify the response contains Expo/React markers:
curl -sf {frontend_url} | head -20
curl -sf {graphql_url} -X POST \
-H "Content-Type: application/json" \
-d '{"query":"{ __typename }"}' \
-w "\nHTTP %{http_code} in %{time_total}s\n"
curl -sf {graphql_url} -X POST \
-H "Content-Type: application/json" \
-d '{"query":"{ __schema { queryType { name } } }"}' \
-w "\nHTTP %{http_code} in %{time_total}s\n"
Run all checks for the specified environment(s):
check_env() {
local ENV=$1
local FE_URL=$2
local BE_URL=$3
echo "=== $ENV ==="
# Frontend
FE_STATUS=$(curl -sf -o /dev/null -w "%{http_code}" --max-time 10 "$FE_URL" 2>/dev/null || echo "000")
FE_TIME=$(curl -sf -o /dev/null -w "%{time_total}" --max-time 10 "$FE_URL" 2>/dev/null || echo "timeout")
echo "Frontend: HTTP $FE_STATUS ($FE_TIME s)"
# Backend
BE_RESULT=$(curl -sf --max-time 10 "$BE_URL" -X POST \
-H "Content-Type: application/json" \
-d '{"query":"{ __typename }"}' \
-w "\n%{http_code} %{time_total}" 2>/dev/null || echo -e "\n000 timeout")
BE_STATUS=$(echo "$BE_RESULT" | tail -1 | awk '{print $1}')
BE_TIME=$(echo "$BE_RESULT" | tail -1 | awk '{print $2}')
echo "Backend: HTTP $BE_STATUS ($BE_TIME s)"
echo ""
}
Check the latest OTA updates deployed to each branch:
eas update:list --branch {env} --limit 3
Report results as a table:
| Service | Environment | Status | Response Time | Details |
|---------|-------------|--------|---------------|---------|
| Frontend | dev | UP (200) | 0.45s | HTML contains React root |
| Backend | dev | UP (200) | 0.32s | GraphQL responds __typename |
Flag any service with status != 200 or response time > 5s as a concern.
development
Use Expo DOM components to run web code in a webview on native and as-is on web. Migrate web code to native incrementally.
development
Guidelines for upgrading Expo SDK versions and fixing dependency issues
development
Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, React Query, SWR, error handling, caching, offline support, and Expo Router data loaders (`useLoaderData`).
tools
`@expo/ui/swift-ui` package lets you use SwiftUI Views and modifiers in your app.