Skip to content

docs(platform): Compass Model Roles + stable-name provider routing design (RIG-2845) - #725

Draft
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-obs/rig-2845-model-roles-design
Draft

docs(platform): Compass Model Roles + stable-name provider routing design (RIG-2845)#725
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-obs/rig-2845-model-roles-design

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

The policy layer above the frozen RIG-1715 gateway credential substrate:
which model a Compass agent role uses, and how a stable model name maps to a
preferred backend order across the providers a user holds.

Core decisions:

  • Role taxonomy: Compass-native persona-keyed roles ABOVE OMP's 10 model-tier
    roles (untouched). Policy = CompassRole -> {stable name, thinking?,
    tierOverrides?}; main model rides the existing COMPASS_MODEL seam,
    tierOverrides ride the config-passthrough CP-1 modelRoles key (no schema
    fork).
  • Stable names (claude-opus-4-8) over direct backend routing: each maps to an
    ordered candidate chain, two-stage fold (RIG-2845 orders providers ->
    RIG-1715 pool picks credential verbatim); unknown names pass through as the
    escape hatch.
  • Config surface: Compass-owned Postgres policy store + compass.v1 RPCs.

Red-teamed by a design-critic pass and folded before freeze. Two structural
corrections the critique surfaced, both verified at source:

  • The resolver seam is widened (async + caller identity), not zero-fork: the
    injected resolveModel(modelId) is sync + tenant-blind and cannot carry
    per-caller candidate selection. Framed as OQ-1 (sibling of the RIG-1715 T3
    authorize boot-option change).
  • A stable name exported as COMPASS_MODEL must ALSO resolve inside the
    container (cli.ts:991-1004 refuse-to-boot); added a container-registry
    listing deliverable (OQ-2).

Five load-bearing Open Questions batched for Matt (seam shape, container
registry, failover trigger, write authority, policy scope).

Ledger-impact: none (platform surface ungoverned).
Spec-impact: none. Refs RIG-2845

Co-authored-by: Matt Wilkinson matt@rigel.build

@linear-code

linear-code Bot commented Aug 29, 2026

Copy link
Copy Markdown

RIG-2845

@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-obs-rig-2845-model-r.compass-eng-docs.pages.dev

Deployed from compass-obs/rig-2845-model-roles-design at 584560a.

Changed pages:

@rigel-mintaka
rigel-mintaka force-pushed the compass-obs/rig-2845-model-roles-design branch from a51a75f to 7aa5fb5 Compare August 29, 2026 20:40
…sign (RIG-2845)

The policy layer above the frozen RIG-1715 gateway credential substrate:
which model a Compass agent role uses, and how a stable model name maps to a
preferred backend order across the providers a user holds.

Core decisions:
- Role taxonomy: Compass-native persona-keyed roles ABOVE OMP's 10 model-tier
  roles (untouched). Policy = CompassRole -> {stable name, thinking?,
  tierOverrides?}; main model rides the existing COMPASS_MODEL seam,
  tierOverrides ride the config-passthrough CP-1 modelRoles key (no schema
  fork).
- Stable names (claude-opus-4-8) over direct backend routing: each maps to an
  ordered candidate chain, two-stage fold (RIG-2845 orders providers ->
  RIG-1715 pool picks credential verbatim); unknown names pass through as the
  escape hatch.
- Config surface: Compass-owned Postgres policy store + compass.v1 RPCs.

Red-teamed by a design-critic pass and folded before freeze. Two structural
corrections the critique surfaced, both verified at source:
- The resolver seam is widened (async + caller identity), not zero-fork: the
  injected resolveModel(modelId) is sync + tenant-blind and cannot carry
  per-caller candidate selection. Framed as OQ-1 (sibling of the RIG-1715 T3
  authorize boot-option change).
- A stable name exported as COMPASS_MODEL must ALSO resolve inside the
  container (cli.ts:991-1004 refuse-to-boot); added a container-registry
  listing deliverable (OQ-2).

Five load-bearing Open Questions batched for Matt (seam shape, container
registry, failover trigger, write authority, policy scope).

Ledger-impact: none (platform surface ungoverned).
Spec-impact: none. Refs RIG-2845

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass-obs/rig-2845-model-roles-design branch from 7aa5fb5 to 584560a Compare August 29, 2026 20:46
@rigel-mintaka
rigel-mintaka marked this pull request as ready for review August 29, 2026 20:46
@rigel-mintaka
rigel-mintaka marked this pull request as draft August 30, 2026 15:05
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