Skip to content

Spike: can skill-emitted events drive a trustworthy live fleet view? #985

Description

@williamthorsen

Question

Are skill-emitted lifecycle events dense and reliable enough to drive a live, trustworthy fleet view across concurrent sessions under both harnesses? Skill-side emission is proven at artifact granularity, but live status needs mid-flow events, and a fleet view that shows stale or wrong status gets abandoned. This is the one bet in #984 that reading cannot settle.

Context

#984 has settled the design this spike exercises: workstream lanes keyed by repo × branch ref with session sub-attribution; a self-identifying event envelope with a session-lifecycle payload family; filesystem-first storage (append-only JSONL per session under a per-lane directory) with a watch-fold-SSE server. The Rovo leg matters most: skill emission is the only compliant event channel there, with no fallback.

Scope

Explore: a first-cut envelope (fixed envelope fields, nested per-family payload) and session-lifecycle vocabulary; an emit helper accepting --session (env var under Claude; under Rovo, fetched once per skill run via the get_session_metadata built-in and reused in-context); three instrumented high-traffic skills (review-branch, respond-to-review, create-pr); the events root; a minimal watch-fold-SSE server with a crude lane view; then an observation window of normal multi-session work, including two sessions in one worktree and a mixed-harness lane.

The emit helper and skill instrumentation are production-track and merge to main, so the observation window rides normal installs on both machines. The server and lane view are throwaway, and the lane view must be usable from the first day of observation.

Not: any pane (artifacts, findings, prompts), git/forge adapters, transcript readers, proposal/selection events, or UI polish. Throwaway code is acceptable for the server and lane view; findings are the deliverable.

Timebox

Build ≤ 2 days; observation ≈ 1 week of normal multi-session work.

Acceptance criteria

Questions to answer

  • Do emission points occur densely enough that each lane's derived status tracks reality closely enough to trust during normal concurrent work?
  • Does session stamping hold under both harnesses, including two concurrent sessions in one worktree and a mixed-harness lane?
  • Does append-JSONL → fs-notify → incremental fold → SSE stay live and low-latency with 3–6 concurrent sessions?
  • What can a Rovo skill actually emit in practice, and do the get_session_metadata fetch-once relay and in-context reuse hold up?
  • Where are the status gaps that require new emission points rather than polling?

Decisions to enable

Deliverable: a findings & recommendation artifact.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions