Skip to content

docs(adr): Fleet as usage-based grouping + Studio connection model - #33

Merged
brettchien merged 2 commits into
mainfrom
docs/adr-fleet-grouping-connection
Aug 13, 2026
Merged

docs(adr): Fleet as usage-based grouping + Studio connection model#33
brettchien merged 2 commits into
mainfrom
docs/adr-fleet-grouping-connection

Conversation

@brettchien

Copy link
Copy Markdown
Contributor

Drafted by Orca (ecs-claude) — flagging authorship (shared GitHub identity).

A Proposed ADR recording two design shifts decided with the operator (Brett) in-thread:

Part A — Fleet is a usage-based logical group. A fleet is defined by its members, not by a physical cluster; grouping is decoupled from credential. Schema moves [[fleet]] (array, name field, keyed by cluster) → [fleet.<name>] (map keyed by name) with an explicit members list. This lets co-located agents — oab-prod-orca and oab-prod-mira, both in cluster oab — be two distinct fleets sharing one cluster/credential, grouped by usage. Membership = explicit list now (decision (a)); tag-selector is a deferred follow-up.

Part B — two first-class connection models (not primary + fallback):

  • Reverse MCP — the single way to operate through a running Studio: Studio serves its oab-mcp tools over the outbound /acp WS (mechanism as-built in openab #1447), core proxies to the agent. Shared instance + Studio identity, human-in-the-loop, no NAT/port, no per-agent creds.
  • Headless standalone oab-mcp — for CI / scripts / no-Studio: a "Copy MCP config" action emits a stdio server spec so a headless agent spawns its own instance with its own creds.

§4 lists consequences (schema migration; for_cluster → fleet-by-name; the config panel evolves from cluster-switch to fleet-switch). §5 lists open questions (reverse-MCP auth/scoping, session↔fleet mapping, tag-selector, cross-account fleets, migration).

Stub to align direction — both decisions are made; implementation lands in slices. Relates to the per-Fleet managing identity ADR (#19) and its config panel (#26/#30).

🤖 Generated with Claude Code

Orca (ecs-claude) and others added 2 commits August 14, 2026 01:02
Records two decided design shifts:

- Fleet is a named logical grouping defined by explicit members, decoupled from
  the physical cluster (schema `[fleet.<name>]` with a `members` list). Lets
  co-located agents (e.g. orca + mira in cluster oab) be distinct fleets grouped
  by usage. Tag-selector membership is a deferred follow-up.
- Two first-class connection models: reverse-MCP-over-ACP to attach to a running
  Studio (shared instance + Studio identity, references openab #1447), and a
  headless standalone oab-mcp for no-Studio use (a "Copy MCP config" launcher).

Status: Proposed — a direction-aligning stub; implementation lands in slices.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Address review: the ADR was abstract about connecting. Add a concrete usage
guide and a "current usage" section grounded in the always-on ECS agent (Orca):

- docs/connecting-an-agent.md: step-by-step for headless oab-mcp (register it as
  an MCP server; Orca uses its task role as the ambient credential, no profile),
  the raw-AWS level available now, and the reverse-MCP target; plus the
  laptop/Copy-MCP-config summary.
- ADR §3: "how Orca connects today" — raw AWS now, headless oab-mcp near-term
  (no new Studio code), reverse-MCP as the target — linking the guide.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@brettchien
brettchien merged commit 91888f3 into main Aug 13, 2026
1 check passed
@brettchien
brettchien deleted the docs/adr-fleet-grouping-connection branch August 13, 2026 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant