---
slug: "operator-chat-rail"
name: "Operator Chat Rail"
packType: "harness"
canonicalPattern: "hybrid"
version: "0.1.0"
trust: "Verified"
publisher: "Agent Workspace"
updatedAt: "2026-04-15"
---

# Operator Chat Rail

> Shared chat plus traceable assistant rail for high-context workflows.

## Summary

A proven interface pattern for apps that need collaborative chat in the center and a persistent agent rail for plan trace, tool execution, telemetry, sources, and quality checks.

## Install

```sh
npx attrition-sh pack install operator-chat-rail
```

### Claude Code / AGENTS.md snippet

```md
# Operator Chat Rail
# See: /packs/operator-chat-rail

```

## Contract

_No execution contract defined for this pack type._

## Layers

_No three-layer split defined for this pack type._

## Use When

- Users need to collaborate in a shared thread without losing assistant observability.
- You need durable streaming, not just a final answer blob.
- Operators must inspect plan steps, tool calls, sources, and quality checks after the run.

## Avoid When

- The task is a single-user consumer chat with no need for traceability.
- The product does not require source auditability or operator cross-reference behavior.

## Key Outcomes

- The assistant becomes reviewable instead of magical.
- Streaming deltas map directly to visible plan and execution events.
- The same UI contract works across shared chat, workspace pages, and evaluation playback.

## Minimal Instructions

Build the UI around two persistent surfaces:
- centered shared thread for human conversation
- expandable right rail for assistant trace

The rail must show:
- plan summary
- planned and executed steps
- tool call summaries
- sources and clickable references
- telemetry and quality checks

Do not collapse all of this into one final markdown blob.

## Full Instructions

You are building an operator-facing agent interface.

Primary UX contract:
1. Keep the human conversation in the center of the screen.
2. Keep the assistant state in a dedicated right rail.
3. Stream state changes as durable events, not ephemeral UI-only spinners.

The assistant rail should reveal:
- what the assistant planned to do
- what it actually executed
- which tools were called and with what purpose
- what sources were used
- what quality or policy checks passed or failed

The final answer should remain readable by itself, but the rail must preserve enough structure for an operator to verify the answer after the fact.

## Evaluation Checklist

- Does the answer remain readable without opening the trace?
- Can an operator inspect the exact plan and executed steps?
- Are citations or references visible and clickable when sources exist?
- Does the rail degrade gracefully when the run is deterministic or source-free?

## Failure Modes

- **[MID] All trace data is dumped as raw JSON instead of operator-readable cards.**
  - Trigger: (legacy — trigger not separated)
  - Prevention: (legacy — no explicit prevention)
- **[MID] The chat waits for a final answer instead of streaming plan and execution deltas.**
  - Trigger: (legacy — trigger not separated)
  - Prevention: (legacy — no explicit prevention)
- **[MID] Sources exist in metadata but are not visible to the operator.**
  - Trigger: (legacy — trigger not separated)
  - Prevention: (legacy — no explicit prevention)

## Transfer Matrix

_No measured cross-model transfer data._

## Telemetry

_No telemetry recorded._

## Security Review

_No security review on file._

## Compares With

_No comparative data._

## Related Packs

_No related packs._

## Changelog

_No changelog entries._

## Sources

- [Convex AI platform overview](https://www.convex.dev/ai) — Explains Convex AI building blocks such as AI Agent and Persistent Text Streaming.
- [Persistent Text Streaming component](https://github.com/get-convex/persistent-text-streaming) — Reference implementation for durable text streaming.
- [FloorAI case study repo](https://github.com/HomenShum/floorai) — Proof that the centered thread + agent rail pattern works in a full application.

## Examples

- [Open shared studio](/chat)
- [FloorAI reference](https://github.com/HomenShum/floorai) (external)
