- Project scaffolding (SPEC, CLAUDE, ARCH, context, claude config)
- Reference brainstorm archived to
docs/reference/ - Full framework implementation (Phases 1–9) — see
.context/progress.md - CDP raw access:
debugPortconfig,--remote-debugging-portlaunch arg,getCdpUrl()in SessionManager, surfaced inget_page_state - README, ARCH.md updated with raw Playwright access via CDP use-case
- Decide stack: TypeScript + Playwright vs Python + Playwright
- Init package.json / pyproject.toml with Playwright dependency
- Implement
SessionManager— browser launch, storage state persist/restore - Implement
SiteAdapterbase interface / abstract class - Implement
MCPServerentry point (stdio transport first) - Implement
ToolRegistry— auto-discover and register adapters
- LinkedIn
isLoggedIndetection - LinkedIn
loginflow (manual-first via HumanHandoff) - LinkedIn tool:
get_feed— fetch top N feed items - LinkedIn tool:
get_messages— list unread messages - LinkedIn tool:
search_people— search by name/company
- Shufersal login flow
- Shufersal tool:
search_products(query)— return name, price, unit - Shufersal tool:
get_cart— return current cart contents
- Implement
HumanHandoff— foreground browser, wait for signal - Integrate handoff into adapters for 2FA and order confirmation
- Unit tests for SessionManager (mock browser)
- Unit tests for each site adapter tool
- Integration test: full login + tool call flow
- README with quickstart
- Example: multi-site grocery price comparison in 10 lines
- CLI:
browserkit start [adapter...]
- Plugin registry for community-contributed site adapters
- Cross-site composition tools (search N sites, merge results)
- Replay / test harness from recorded sessions
- Rate-limit and jitter config per adapter