Reconnaissance: map before you import
See Grok Build as several surfaces—not one blob—then locate the single gap Alembic should own.
Pinned upstream commit: b189869b7755d2b482969acf6c92da3ecfeffd36
- Name the upstream surfaces without collapsing them into “the CLI”.
- Locate Alembic's existing owners for runtime, tools, workspaces, and UI.
- Defend the provider seam as the smallest useful adoption.
The big idea
Grok Build combines a terminal UI, a headless scripting mode, an ACP editor surface, an agent runtime, tools, workspace management, and persistent sessions. Alembic already owns most of those jobs. The useful move is not to port the product; it is to connect the released CLI through Factory's narrow provider seam.
Think of it like… Treat the upstream repository like a complete airport. Alembic does not need a second runway, tower, and baggage system; it needs one standards-compliant gate where an arriving Grok flight can dock. The analogy breaks because software ownership is enforced by interfaces and tests, not concrete and signage.
The pinned README names four principal Rust crates: pager/TUI, shell runtime and entry points, tools, and workspace/checkpoints. It also documents three consumption surfaces: TUI, headless, and ACP. This decomposition is the unit of analysis; each surface gets its own overlap verdict.
First-party upstream code is Apache-2.0, while the repository separately identifies vendored ports and notices. Alembic's phase-one TypeScript adapter is clean-room against observable CLI contracts; it copies no Rust and creates no second runtime owner.
Evidence: Pinned Grok Build README
Compare the boundaries
Safe: one adapter owns command + event translation.
Risky: copy Rust runtime, tools, and session engine into Alembic.
| Surface | Upstream | Alembic | Verdict |
|---|---|---|---|
| TUI / cockpit | Full-screen terminal product | TUI, web, cockpit already exist | ALREADY |
| Agent runtime / tools | Rust loop plus built-in tools | Harness, VM, Factory, adapters | ALREADY |
| Headless CLI protocol | Stable external process boundary | Missing first-class Grok provider | ADOPT |
First-party upstream code is Apache-2.0, while the repository separately identifies vendored ports and notices. Alembic's phase-one TypeScript adapter is clean-room against observable CLI contracts; it copies no Rust and creates no second runtime owner.
Real code and commands
/tmp/alembic-grok-build-20260716 @ b189869…
git -C /tmp/alembic-grok-build-20260716 rev-parse HEAD # b189869b7755d2b482969acf6c92da3ecfeffd36 rg -n "Repository layout|Headless|ACP|License" \ /tmp/alembic-grok-build-20260716/README.md
How to reach it
sed -n '1,150p' /tmp/alembic-grok-build-20260716/README.md
Evidence: RESOURCES.md
Visual atlas
Practice and feedback
If Alembic already owns orchestration and tools, which upstream surface has the lowest overlap?
Retrieval cards
Explore the upstream surface
Choose a surface and read the ownership verdict.
Four-slide summary
Check your model
What is the phase-one adoption unit?