test-driven-development
OBobra/superpowers298k2,631 new stars in the last 7 days
Execute a caller's natural-language HotUpdater QA scenario on `examples/v0.85.0` with profile-scoped infrastructure prepared by `hot-updater-agent` and app interactions driven through `agent-device`. Use for AI-led manual OTA QA rather than the full E2E runner.
The only required caller input is a natural-language scenario. Accept the
user's intent directly; never require or reinterpret it as a file name from
e2e/shared/scenarios.
Always load and follow $hot-updater-agent and $agent-device, then read references/runtime-targets.md.
standalone-kysely.examples/v0.85.0/.env.hotupdater.HEAD SHA.Honor explicit profile, platform, ref, environment target, or lease overrides. Never ask for them when the defaults are sufficient.
For each platform, run from the repository root:
hot-updater-agent -json manual start standalone-kysely \
-platform ios \
-ref "$(git rev-parse HEAD)" \
-env-target examples/v0.85.0/.env.hotupdater \
-ttl 2h
The command waits for readiness. Treat the returned JSON handoff as the only source of truth. It includes:
boot, install, open, snapshot, and close commands;Do not reconstruct fixed ports, paths, app IDs, devices, or agent-device flags. Use the values and commands returned for this session.
Before touching the device, translate the request into a small observable test plan containing:
Keep the user's scope. Do not silently expand a focused request into the fixed regression suite. If a required expectation is genuinely ambiguous after inspecting the app and control contracts, stop and name the ambiguity instead of inventing a pass condition.
Use the prepared worktree to discover how to carry out the plan. Read only the relevant parts of:
examples/v0.85.0/src/e2eApp for routes, actions, testIDs, and visible
evidence;e2e/shared/control-server/routes.ts for supported control operations;e2e/mobile/driver.ts when launch, reload, screen-state wait, crash,
or Android reattachment semantics matter;e2e/shared/scenarios only as optional implementation examples for a similar
step, never as the accepted input vocabulary or an exact script to run.Do not create an automated scenario file or run the full E2E suite.
bootCommand, installCommand,
and openCommand in that order.--settle for mutations.wait, get, is, find, or
settled diffs. A screenshot or bare snapshot alone is not a pass condition.<handoff.controlBaseUrl><path>. For responses containing jobId, poll
GET /e2e/jobs/<jobId> until succeeded; fail on failed or cancelled./e2e/prepare-app-launch; for reload, close the
app, prepare the launch, then reopen it. Use
/e2e/reset-local-app-state only when the user's precondition requires a
clean local state.driver.ts: reset the relevant
/e2e/screen-state field to idle, perform the UI action, and wait through
runtimeConfigUrl until the field reaches the expected value. Reattach
Android after external restart or crash-recovery operations when required.Use curl -fsS with content-type: application/json for control calls. Keep a
small evidence ledger that links each expected result to the observed UI,
control response, or native state.
UNCHANGED | UPDATE_APPLIED | RECOVERED.
Directional identity is fromReleaseId, fromBundleId, toReleaseId, and
toBundleId.notifyAppReady is read-only and must not affect crash detection or receipt
promotion.pnpm hot-updater deploy; never seed
Bundle or Release database rows directly.Always clean up in a finally-style path, including assertion failure or user
interruption:
closeCommand if the app/session was opened.hot-updater-agent manual stop <session-id>.hot-updater-agent manual status <session-id> is stopped (or
expired if the lease elapsed).Do not start Android until the iOS session has stopped. A manual session owns an exclusive dashboard E2E lease, so leaving it ready blocks queued E2E work.
Report the user's scenario, resolved manual plan, profile, platform, prepared commit, session ID, deployed Release/Bundle pairs, saved runtime variables, each assertion and evidence source, final status, and cleanup result. On failure include the failing stage, control response or snapshot evidence, and the session log path.
OBobra/superpowers298k2,631 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
Audit accessibility on Web, iOS, and Android to meet WCAG 2.2, with keyboard navigation and screen-reader support.
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
FIfirecrawl/firecrawl191k2,010 new stars in the last 7 days