Files
boocode/openspec/changes/omo-paseo-bridge/design.md
indifferentketchup c935687725 chore(openspec): drop 9 superseded proposals + 11 stub archive files
Drop 9 batch proposals that are superseded by the boocode-lift-analysis
(boocontext-audit, conductor upgrades, self-healing/verify-gate skills):
add-3tier-memory, import-llm-evaluator, import-pregel-engine, plugin-platform,
conductor-evolution, code-intelligence-upgrade, dev-workflow, ui-overhaul,
agent-reliability.

Delete 11 stub archive files (49-66B each, 'Status: Shipped. Archived.' only)
that provide zero documentation value over the existing CHANGELOG.md + git tags.
2026-06-07 22:15:38 +00:00

2.5 KiB

OMO-Paseo Bridge Design

Architecture

OpenCode Session (Atlas)
│
├── task() ──► child session (ses_xxx) ──► OMO subagent does work
│                  │
│                  ▼
│           omo-paseo-bridge skill
│           paseo import <ses_xxx> --provider opencode --label omo=true
│                  │
│                  ▼
│           Paseo Daemon (~/.paseo/agents/<cwd>/<uuid>.json)
│           Agent appears in `paseo ls`
│
├── task completes ──► child session finishes
│                  │
│                  ▼
│           paseo archive <ses_xxx> (cleans up)
│
└── Verification ──► paseo ls --json | jq '.[] | select(.labels.omo)'

Three Integration Points

1. Atlas Prompt Instruction (immediate, zero-code)

Add to the Atlas orchestration prompt:

## Paseo Bridge Protocol
When you call task() and receive a child session ID:
  - On task creation: `paseo import <session-id> --provider opencode --label omo=true --label type=<category>`
  - On task completion: Track the session ID; clean up later

Pros: Zero code changes, works immediately Cons: Ephemeral (per-session context), must be repeated every session

2. OpenCode Skill (durable, scripted)

Create a reusable skill at .opencode/skills/omo-paseo-bridge/SKILL.md that:

  • Accepts a child session ID and task type
  • Calls paseo import with proper labels
  • Returns the imported agent ID
  • Handles errors (daemon not running, already imported)

The Atlas prompt calls this skill instead of shelling out directly.

3. PreToolUse Hook (fully automatic)

A hook that intercepts task() calls before/after execution:

  • On task() launch: capture the session ID from the response
  • On task() completion: paseo archive the corresponding agent

Pros: Fully automatic, no prompt changes needed Cons: Hook system support varies by runtime

Data Model

// Labels applied to each imported Paseo agent
{
  "omo": "true",
  "omo.type": "explore | quick | ultrabrain | deep | visual-engineering | unspecified-low | unspecified-high | writing", 
  "omo.parent_session": "ses_xxx",    // The session that called task()
  "omo.description": "Search codebase for X"  // The task prompt description
}

CLI Bridge Script (Optional)

A small omo-paseo CLI that wraps common operations:

# Import all unregistered child sessions
omo-paseo sync

# Clean up completed/failed OMO agents
omo-paseo prune

# Show OMO agents in paseo format
omo-paseo ls