plugins/lisa-expo-cursor/skills/ops-performance/SKILL.md
Performance analysis for Expo + serverless backend projects. Runs Lighthouse audits, bundle size analysis, and k6 load tests.
npx skillsauth add codyswanngt/lisa ops-performanceInstall 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.
Analyze application performance.
Argument: $ARGUMENTS — analysis type (lighthouse, bundle, k6, all; default: all) and optional target environment
.)${BACKEND_DIR:-../backend-v2} — set BACKEND_DIR in .claude/settings.local.json if your backend is elsewherepackage.json for lighthouse:check, export:web, analyze:bundle scriptspackage.json for k6:* scriptse2e/constants.ts or .env.* files for environment URLsnpx lighthouse http://localhost:8081 \
--output=json \
--output-path=./lighthouse-local.json \
--chrome-flags='--headless --no-sandbox'
Discover frontend URLs from e2e/constants.ts or .env.* files:
npx lighthouse https://{env_url} \
--output=json \
--output-path=./lighthouse-{env}.json \
--chrome-flags='--headless --no-sandbox'
bun run lighthouse:check
cat lighthouse-{env}.json | jq '{
performance: .categories.performance.score,
accessibility: .categories.accessibility.score,
bestPractices: .categories["best-practices"].score,
seo: .categories.seo.score,
fcp: .audits["first-contentful-paint"].displayValue,
lcp: .audits["largest-contentful-paint"].displayValue,
tbt: .audits["total-blocking-time"].displayValue,
cls: .audits["cumulative-layout-shift"].displayValue,
si: .audits["speed-index"].displayValue
}'
bun run export:web && bun run analyze:bundle
bun run export:web
echo "=== Total Bundle Size ==="
du -sh dist/
echo ""
echo "=== Largest JS Files ==="
find dist -name "*.js" -exec ls -lhS {} + 2>/dev/null | head -20
Discover available k6 scripts from the backend package.json (matching k6:*).
cd "${BACKEND_DIR:-../backend-v2}"
bun run k6:smoke
cd "${BACKEND_DIR:-../backend-v2}"
bun run k6:load
cd "${BACKEND_DIR:-../backend-v2}"
bun run k6:stress
cd "${BACKEND_DIR:-../backend-v2}"
bun run k6:spike
cd "${BACKEND_DIR:-../backend-v2}"
bun run k6:docker:smoke
bun run k6:docker:load
| Metric | Score | Rating | |--------|-------|--------| | Performance | 0.85 | GOOD | | Accessibility | 0.92 | GOOD | | Best Practices | 0.88 | GOOD | | SEO | 0.95 | GOOD |
| Metric | Value | Threshold | Status | |--------|-------|-----------|--------| | FCP (First Contentful Paint) | 1.2s | < 1.8s | PASS | | LCP (Largest Contentful Paint) | 2.1s | < 2.5s | PASS | | TBT (Total Blocking Time) | 150ms | < 200ms | PASS | | CLS (Cumulative Layout Shift) | 0.05 | < 0.1 | PASS |
| Category | Size | Notes | |----------|------|-------| | Total dist/ | 4.2 MB | | | Largest chunk | 1.1 MB | vendor.js |
| Metric | Value | |--------|-------| | Requests/sec | 450 | | Avg response time | 120ms | | p95 response time | 350ms | | Error rate | 0.1% |
Include recommendations for any metrics that fall below thresholds.
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and