Skip to content

Commit b7bca31

Browse files
committed
Sync ROADMAP and LAUNCH-PLAN to reality (Phases 0-2 done, 3 started)
The plan docs still framed Phase 0 as in flight. Mark what shipped: the input path solid on both platforms, Phase 1 web-framework examples, Phase 2 MCP server, and Phase 3's first shell (the Claude Code plugin). Update the in-flight list — iOS spec regenerated, Cypress/Puppeteer checkout variants added, Android checkout gated on the app not the mirror; app-foreground-state remains the one externally-blocked item.
1 parent 60b73dd commit b7bca31

2 files changed

Lines changed: 34 additions & 15 deletions

File tree

‎LAUNCH-PLAN.md‎

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,25 @@ both natively). "Watch it and automate it, same URL."
5252

5353
## Sequencing
5454

55-
- **Phase 0 — core solid (now → v1 gate).** Flow Capture proven; iOS read-back input landed; no surface
56-
work. This is the owner's rule and the brief's scope.
57-
- **Phase 1 — web frameworks (at v1).** The zero-adapter proof: docs + polished examples for Playwright,
58-
Cypress, Puppeteer; a demo GIF; tight README. This is the substance — reliable, reviewable CI
59-
tests a team already knows how to write — and it needs no new code.
60-
- **Phase 2 — MCP server + registries.** One adapter → every agent. List on Glama/MCP Toplist. Highest reach
61-
per unit effort; gate on the core being green so first impressions are not flakey.
62-
- **Phase 3 — ecosystem-native where the wave is hot.** DSH plugin, Claude Code plugin/skills, ChatGPT/Gemini
63-
store entries — thin shells over Phase 2. Pick waves by momentum, not by trying to be everywhere at once.
55+
Status as of 2026-08-26: Phases 0–2 are built and tested; Phase 3 has its first shell (the Claude
56+
Code plugin). The three remaining Phase 3 surfaces are gated on the repo being published.
57+
58+
- **Phase 0 — core solid. ✅ DONE.** Flow Capture proven (RN/Flutter/TestHive 50/50); input made
59+
load-independent on both platforms — mirror node identity keyed by identifier, reconcile waits for
60+
device-value settle, Android secure fields recognised, Android field-first-edit no longer diffs
61+
against the hint, and the Android driver start is retried past its dexopt cold-start crash.
62+
- **Phase 1 — web frameworks. ✅ DONE.** The zero-adapter proof: Playwright, Cypress, Puppeteer each
63+
drive both a login and a checkout journey through the same DOM; README and examples refreshed. The
64+
demo GIF is parked (a recording harness ships; GIF is one ffmpeg call away). Android checkout is
65+
gated on the app, not the mirror (the Android TestHive build has different testIDs).
66+
- **Phase 2 — MCP server + registries. ✅ DONE.** `devicedeck mcp` — a single stdio server, eight
67+
tools (list/boot/launch/ui_tree/screenshot/tap/assert_visible/device_page_url), 100% unit-covered,
68+
a thin adapter over the same HTTP API. `glama.json` marks it for the registry; submission is a
69+
launch step.
70+
- **Phase 3 — ecosystem-native where the wave is hot. 🔨 STARTED.** Claude Code plugin + three skills
71+
(authoring / triage / flows) over the Phase 2 MCP — built. Remaining, gated on publishing the repo:
72+
DSH plugin, ChatGPT App / Gemini extension (the same MCP connector, per store). Pick waves by
73+
momentum, not by trying to be everywhere at once.
6474

6575
## Guardrails
6676

‎ROADMAP.md‎

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,14 @@ the above as a **post-Flow-Capture go-to-market plan**, never a reason to pivot
9797

9898
## v1 engineering (in flight)
9999

100+
**Status 2026-08-26:** the input path is now solid on both platforms — iOS read-back typing, mirror
101+
node identity keyed by identifier (survives keyboard reshapes), reconcile waits for device-value
102+
settle, Android secure fields recognised, Android first-edit no longer diffs against the field hint
103+
(the leading-character drop), and the Android driver start is retried past its dexopt crash. The iOS
104+
`generated-agent` spec was regenerated (7/7). Phases 1 and 2 shipped (web-framework examples + the
105+
`devicedeck mcp` server). Remaining below: `app-foreground-state` (external blocker) and the
106+
app-side Android checkout gaps.
107+
100108
- **iOS typing reliability — load-independent input. ✅ DONE 2026-08-24 (commit e3b5128).** Replaced the
101109
wall-clock focus guess with read-back: the mirror verifies the device echoed each field's intended value
102110
and retypes any it did not (secure fields matched by bullet count), so typing holds under any load.
@@ -123,14 +131,15 @@ the above as a **post-Flow-Capture go-to-market plan**, never a reason to pivot
123131
real-device target). Open question skipped: whether a *lighter* replay (no per-step screenshots / no
124132
clearState) raises or removes the ~38 ceiling — i.e. whether it is our provocation to reduce, untested.
125133
Always run the runner CLI with `--driver devicelab` (never WDA — the CLI defaults to WDA for iOS, which has its own 1s keyboard-focus flake); and own these as our reliability problem, not the dependency.s.
126-
- **Regenerate the iOS `generated-agent` spec** to the default-fresh `beforeEach` (install once → plain
127-
`launch`). Blocked on the typing fix — MCP authoring flakes on the same bleed. The generator template is
128-
already updated; Android is regenerated and green.
134+
- **Regenerate the iOS `generated-agent` spec. ✅ DONE 2026-08-25.** Re-ran the fresh-agent benchmark
135+
with the input fixes in place: 7 journeys authored clean, 7/7 replay. Committed.
129136
- **Land `app-foreground-state`** — deferred 2026-08-24; see the app-foreground-state branch notes for the exact
130137
steps (publish the runner branch → pin go.mod → re-apply `cf8af31` on current main) and its known
131-
brief-annotation limitation.
132-
- **Smaller gaps** — Android checkout journey (below-fold submit needs a scroll; the 1/7 authoring gap);
133-
Cypress/Puppeteer Android example variants (currently iOS-hardcoded).
138+
brief-annotation limitation. Still the one item with an external blocker.
139+
- **Smaller gaps** — Cypress and Puppeteer now ship iOS checkout variants (framework parity). Android
140+
checkout: the DeviceDeck blocker (leading-digit drop) is fixed and the form fills correctly, but the
141+
journey does not complete on the Sep-2025 Android TestHive APK — different testIDs than iOS and a
142+
`next-button` that does not advance. App-side, not the mirror.
134143

135144
## Done this cycle (2026-08-24)
136145

0 commit comments

Comments
 (0)