Skip to content

Define the Ourocode product vision around terminal-native orchestration #25

@Q00

Description

@Q00

SSOT

This issue is the single source of truth for the ourocode terminal-native orchestration vision.

Issue #2 is closed as superseded because it framed the work too narrowly around one plugin-dispatch path and contained implementation-specific artifact assumptions. Future planning should start here, then split into focused implementation issues only after the product boundary and primitives are clear.

Vision

ourocode should become the terminal-native orchestration layer for Ouroboros work, not a thin command launcher and not a second implementation of Ouroboros internals.

The user should be able to stay in one focused TUI while ourocode:

  • understands intent from natural language and direct ooo ... prompts,
  • routes work to the right Ouroboros capability, plugin, child session, or workflow,
  • keeps trust and permission boundaries visible,
  • captures generated artifacts, handoffs, evidence, and review outputs,
  • shows progress, blocked states, and next actions in a durable session model,
  • lets the user continue, replay, inspect, or cancel work without dropping to shell glue.

In short: Ouroboros owns execution semantics; ourocode owns the operator experience.

Product boundaries

ourocode should own:

  • Prompt intake and intent routing for interactive terminal use.
  • Child panes, progress surfaces, status, and recoverable session state.
  • Human-readable continuation UX after tools produce Seeds, handoffs, evidence, or review artifacts.
  • Safe bridges into Ouroboros MCP, CLI, plugin, and child-session APIs.
  • Clear rendering of trust, permission, ambiguity, failure, and blocked states.
  • A durable orchestration timeline that can be replayed or recovered.

ourocode should not own:

  • Plugin trust policy or firewall semantics.
  • Arbitrary shell execution assembled from model output.
  • A duplicate plugin registry, marketplace, or package manager.
  • Core Ouroboros workflow definitions that belong in Ouroboros itself.
  • Hidden automatic permission grants.
  • Plugin-internal storage conventions or implementation paths.

Why this matters

Without this product boundary, each new capability can become a one-off integration: core workflows, plugins, Superpowers handoffs, child sessions, review loops, release flows, and future agents all risk growing separate routing and rendering paths.

A clear vision lets us build fewer, stronger primitives:

  • one intent routing model,
  • one capability resolution and preflight model,
  • one invocation/result envelope,
  • one artifact and continuation model,
  • one trust/permission presentation layer,
  • one durable session timeline.

Core primitives

  1. Intent routing

    • Direct commands and natural-language prompts should resolve through the same routing boundary.
    • Ambiguous intent should produce clarification or an explicit blocked state, not guessing.
  2. Capability resolution

    • Installed capabilities should be resolved through authoritative Ouroboros surfaces where possible.
    • Resolution should expose identity, command metadata, trust state, expected inputs, expected outputs, and risk class.
    • Discovery is read-only and must never install, trust, or execute by itself.
  3. Preflight

    • Before execution, ourocode should show what capability will run, why it matched, what trust boundary applies, and what side effects are expected.
    • Missing trust should be actionable but non-destructive.
  4. Invocation/result envelope

    • Core workflows, plugins, and child sessions should report through a shared envelope for status, output, artifacts, errors, and continuation hints.
    • This should prevent each integration from inventing its own rendering and recovery path.
  5. Artifacts and continuations

    • Generated Seeds, handoffs, reports, logs, and evidence should become first-class session artifacts.
    • Continuation into ooo run or another workflow should be suggested, confirmed, or blocked according to explicit policy.
    • Artifact handling should rely on stable runtime/plugin artifact contracts, not internal storage paths.
  6. Durable session timeline

    • User intent, routing decisions, trust blocks, invocations, artifacts, continuation choices, and verification signals should survive refresh and recovery where possible.
    • The user should be able to inspect how a workflow got from prompt to outcome.

Suggested milestone breakdown

  1. Define and document the product boundary in docs/.
  2. Extract or align code around the shared primitives above where the current implementation is already drifting.
  3. Add a capability resolution/preflight path for the first trusted workflow surface.
  4. Normalize invocation/result reporting across at least one core workflow and one plugin or child-session path.
  5. Surface generated artifacts and continuation choices as session objects.
  6. Add replay/recovery support for the orchestration timeline.
  7. Validate the direction through implementation PRs, not standalone vision text only.

Acceptance criteria

  • A short vision document exists in docs/ describing this product boundary and linking back to this issue as the SSOT.
  • Future workflow/plugin integrations can point to the same routing, resolution, result, artifact, continuation, trust, and timeline concepts.
  • Implementation issues reference this issue and stay scoped to one primitive or vertical slice.
  • At least one implementation PR updates or validates the vision against real code rather than leaving it as standalone product text.
  • No implementation issue depends on plugin-internal storage paths as a public contract.

Non-goals

  • Rewriting the current TUI architecture in one large PR.
  • Designing a marketplace or plugin catalog.
  • Moving Ouroboros execution semantics into ourocode.
  • Auto-installing, auto-trusting, or silently escalating plugin permissions.
  • Treating one plugin workflow as a hard-coded special case.

Supersedes

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