hot-updater-agent · git:20261013.d4d1d07 · 2026-10-13 · sha256 01a242ffd3037ec5
hot-updater-agent git:20261013.d4d1d07A
Immutable. This exact content never changes and is served at /api/v1/blob/01a242ffd3037ec5.
--- name: hot-updater-agent description: Use when an AI agent needs to run or inspect full HotUpdater E2E jobs, or prepare and lease a profile-scoped manual QA environment through the local `hot-updater-agent` CLI. --- # HotUpdater Agent Use this skill from the HotUpdater repository root when E2E should run through the dashboard queue or manual QA needs prepared provider infrastructure. The CLI infers the current PR with `gh pr view`; there is no `-pr` flag. ## Profiles Valid profiles: - `standalone-dynamodb` - `standalone-drizzle` - `standalone-prisma` - `standalone-kysely` - `standalone-mongodb` - `supabase` - `cloudflare` - `firebase` - `aws` - `vercel` Use the user-mentioned profile. If none is mentioned, use `standalone-kysely`. ## Commands Queue and wait for the normal AI verification loop: ```bash hot-updater-agent verify -platform <full|ios|android> -profile <profile> -env-target examples/v0.85.0/.env.hotupdater ``` Queue without waiting: ```bash hot-updater-agent e2e -platform <full|ios|android> -profile <profile> -env-target examples/v0.85.0/.env.hotupdater ``` Inspect current PR jobs: ```bash hot-updater-agent status -limit 5 ``` Inspect recent successful baselines by profile: ```bash hot-updater-agent status -latest-success-by-profile -limit 20 hot-updater-agent -json status -latest-success-by-profile -limit 20 ``` Inspect an exact job: ```bash hot-updater-agent wait <task-id> -tail 240 hot-updater-agent reason <task-id> -tail 240 hot-updater-agent log <task-id> -tail 240 ``` Inspect provider and stage bottlenecks. Prefer profile lookup for provider diagnosis because it resolves to the latest successful job for that profile: ```bash hot-updater-agent timeline <profile|task-id> -limit 10 hot-updater-agent -json timeline <profile|task-id> -limit 10 ``` Prepare one platform for agent-device-led manual QA: ```bash hot-updater-agent manual start <profile> \ -platform <ios|android> \ -ref "$(git rev-parse HEAD)" \ -env-target examples/v0.85.0/.env.hotupdater \ -ttl 2h ``` `manual start` waits until the profile service, native release artifact, and control server are ready. Human output returns all handoff fields and exact agent-device commands. Prefer structured output when another agent consumes the handoff: ```bash hot-updater-agent -json manual start <profile> -platform ios -ref "$(git rev-parse HEAD)" ``` The JSON session contains `id`, status/expiry/ref/log metadata, and `handoff.worktreePath`, `scenarioRoot`, `envTargetPath`, `controlBaseUrl`, `runtimeConfigUrl`, `appBaseUrl`, `cleanupCommand`, plus `handoff.agentDevice` with session, platform, device ID, app ID, binary path, and exact boot/install/open/snapshot/close commands. Inspect or release the lease: ```bash hot-updater-agent manual status [session-id] [-limit 20] hot-updater-agent manual stop <session-id> hot-updater-agent manual --help ``` Only one manual session may be active. It blocks dashboard E2E execution until `manual stop` or TTL expiry. Always stop it in a finally-style cleanup path; iOS and Android manual sessions must run sequentially. ## Workflow 1. Choose full E2E (`verify`) or prepared manual QA (`manual start`). 2. Check existing work: `hot-updater-agent status -limit 5` and, for manual work, `hot-updater-agent manual status -limit 5`. 3. For provider diagnosis, read `hot-updater-agent -json timeline <profile> -limit 10`. 4. For a failed exact E2E job, read `hot-updater-agent reason <task-id> -tail 240`. 5. For manual QA, consume only the returned handoff and always stop the lease. 6. Re-run the same path until it succeeds or the blocker is clearly outside repository code. Use `timeline` data to distinguish setup, deploy, service boot, app reload, and E2E command execution bottlenecks. Compare `providerBottlenecks[*].totalMs`, `providerBottlenecks[*].slowestStage`, and global `bottlenecks`. ## Default suite contract Full-platform `verify` reads `e2e/scenario-names.json` from the exact checked-out PR commit. Adding a scenario to that manifest automatically includes it in every full-platform verification profile. A missing, empty, malformed, or duplicate manifest is a verification failure; do not replace it with an agent-side fallback list.