Cory Policht
← Back to the Devlog
DEVLOG · 2026-03-09 .. 2026-03-22 · BUILD

Echo picks its stack.

Two ADRs on one day fix Echo's text-to-speech engine and its core language, and a twelve-story foundation epic is scoped the same afternoon. Decisions first — the code comes later.

WINDOW
Start2026-03-09
End2026-03-22
Kindbuild
Projectsecho-agent-orchestration

This window contains almost no code, and that is the point of it.

On 2026-03-10 two ADRs land in the same commit: ADR-001 picks the text-to-speech engine, ADR-002 fixes the core language as Kotlin. Those are the two decisions that are expensive to unwind later — everything downstream is shaped by them.

The same afternoon the foundation epic is scoped to story granularity. Twelve stories, named and bounded: KMP project scaffolding, shared module structure, core data models, SQLite integration, an Android SQLite DAO, a YAML config manager, a minimal Compose UI, the KMP ViewModel pattern, a JNI scaffold stub, a connectivity indicator, error-handling patterns, and an integration smoke test. A use case for mobile remote execution opens alongside them.

Nothing in that list is speculative. Each story is a thing you can finish and point at. The alternative — a big epic with “build the foundation” written on it — is how a project ends up three months in with nothing to show.

The only commit in the window is a submodule bump. So this entry deliberately has no delivered features: the record here is decisions and scope, and the evidence for it lives in the vault rather than in git. Saying so is more useful than dressing up a submodule bump as progress.

Lessons learned

  • Scope to story granularity before writing code, not after. Twelve named stories on day one meant the work could be batched and reviewed as units. Scoping mid-flight is how an epic becomes a moving target.
  • Language and engine are the decisions that cannot be unwound cheaply. Everything else in a stack can be swapped in a fortnight. Those two are load-bearing.
  • A vault transition is evidence of a decision; it is not evidence of a feature. Keeping those two claims separate is what makes a devlog worth trusting.