Repository navigation
Agent-readiness harness: environment bootstrap, emulator proof, evidence capture #15
Description
Part of #14 (W0 — foundation and agent readiness). This is the first issue of the program; nearly everything else is blocked on it.
Outcome
An agent (or a human) on a fresh MacBook or devbox can go from git clone to a running, provable app without hand-holding: environment bootstrapped, both flavors building, an emulator booting, and evidence capture (screenshots/recordings) scripted. The repo's docs and tooling are good enough that autonomous agents can work here end to end.
Scope
- Reproducible toolchain bootstrap: JDK, Android SDK cmdline-tools, platform/build-tools, and AVD creation scripted (mise/Brewfile or equivalent — follow workspace conventions),
local.propertieshandled automatically -
./gradlew verify,:app:assembleMobileDebug,:app:assembleTvDebuggreen locally (fix the missinggradle.properties, plugin setup, and any AGP 9/compileSdk 37 issues onmain) - Phone AVD + TV AVD definitions with one-command create/boot/install/launch scripts
- Evidence tooling: one-command screenshot and screen-recording capture from a running emulator/device, landing in a predictable output dir for PR attachment
-
putioCLI wired for live proof: documented flow for authenticating a test profile (device-code) so agents can create fixtures/verify API state; secret-free by default per workspace secrets contract -
AGENTS.mdrewritten as the operating manual: setup, build, run, prove, evidence conventions, and the program's definition of done - Devbox/cloud notes: what differs headless (emulator w/o KVM/HAXM caveats,
-no-windowcapture)
Exit bar (settled 2026-08-08 — this is the gate, nothing more)
W0 is DONE when a fresh checkout on a second machine reaches, following only repo docs/scripts:
- Green
./gradlew verify+ both flavor builds - Booted phone + TV emulators via one command each
- Working screenshot/recording capture
- Rewritten
AGENTS.md
Everything beyond (CI emulator lanes, cloud devboxes, proofs-CLI integration) lands incrementally while feature slices run — harness excellence keeps compounding but stops gating.
Acceptance criteria
- A fresh checkout on a second machine (or clean worktree) reaches green builds + booted emulator following only repo docs/scripts
- Definition of done: verification green, harness exercised, and visual proof (screenshot of both flavor shells running) attached
Emulator lifecycle acceptance
The one-command emulator flows must own what they start as well as boot it.
- Distinguish a preexisting emulator/AVD from an emulator process booted by the current invocation.
- On normal completion, failure, SIGINT, and SIGTERM, stop only the exact emulator process/serial owned by the invocation.
- Delete an AVD registration only when the command created it as explicitly ephemeral; preserve documented reusable AVDs and every preexisting emulator.
- Confirm the owned emulator is absent from the final adb device state before returning, and surface cleanup failure.
- Add focused forced-failure and interruption proof; never use broad emulator or process-name cleanup.
Activity
altaywtf commentedon Aug 8, 2026
Heads-up for whoever builds this: Altay is writing a CLI for agents to upload visual proof (video/image) to Cloudflare. When it ships, integrate it into the evidence-capture step — captures land locally, then upload via the CLI and link the URLs in PRs/issues. Until then, attach files directly to GitHub. The epic's DoD wording (#14) will be revised at adoption time.
[-]Establish the agent-readiness harness: env bootstrap, emulator proof, evidence capture[/-][+]Agent-readiness harness: environment bootstrap, emulator proof, evidence capture[/+]altaywtf commentedon Aug 22, 2026
Harness delivered in #54 (bootstrap, emulator proof with owned lifecycle, evidence capture, AGENTS.md operating manual). Full run log, durations, and evidence links are on the PR.
Handoffs kept out of #54's scope:
verify+ both assembles are green locally;scripts/prove.shexit codes are CI-consumable for a smoke lanescripts/evidence.sh(capture → auto-upload → emit URL); this PR usedattach putmanually per the epic DoDScope note: the putio CLI live-proof flow is documented in AGENTS.md (device-code login to a
putio-android-testprofile, secret-free); no test profile was authenticated — first feature slice that needs live fixtures should do the one-time device-code approval.fix: verify rendered pixels and harden evidence capture
fix: close slopguard review findings on the harness contract
fix: close second-round slopguard findings
feat: verify launches with an instrumented smoke test
fix: close fourth-round slopguard findings on the instrumented proof
fix: close fifth-round slopguard findings
fix: close sixth-round slopguard findings
fix: close seventh-round slopguard findings
fix: close eighth-round slopguard findings
fix: close ninth-round slopguard findings
fix: close tenth-round slopguard findings
fix: close eleventh-round slopguard findings
feat: agent-readiness harness — bootstrap, emulator proof, evidence c…