Yoso Relay is a mobile-first execution planning product. It helps you turn natural-language trading intent into a structured run that can be inspected before anything receives execution authority.
AI can draft, patch, and explain a run. It does not execute from prose. Authority starts only after a compiled run, a server preview, user confirmation, and an active mandate boundary.
Product boundary
Relay is for building bounded execution objects. It is not a chat-only trading agent, a generic automation canvas, a backtesting product, or a desktop terminal squeezed onto a phone.
Relay also is not an exchange, broker, custodian, or investment adviser. It plans and gates actions against connected account state and runtime support. The user remains responsible for reviewing the preview and deciding whether to confirm it.
Object model
| Object | What it means | Execution authority |
|---|---|---|
| Template | A reusable recipe that may still need values | None |
| Run draft | One instance of a template with current values | None |
| Preview ticket | Server-side evaluation of market, account, risk, and runtime support | None |
| Draft mandate | Confirmed candidate with execution-critical values locked | Not live yet |
| Active mandate | Worker-evaluated authority that can be paused, revoked, and audited | Live within its bounds |
The docs use run and template for user-facing work. Plan can still appear in API or internal code, but the product language should stay closer to the object the user is reviewing.
Where AI fits
Relay treats AI as a compiler assistant:
- Parse a sentence into blocks.
- Ask for missing trade-critical values.
- Patch a selected block.
- Explain why a run is incomplete, blocked, or ready.
- Generate a canonical plain-language sentence for the run.
AI must not hide missing values behind defaults that change trading meaning, modify a confirmed mandate without a new preview, or describe itself as the executor.
Main surfaces
Relay lives at /relay as the standalone product surface. Monarch can open the same builder from /monarch/plans/new when a user starts a run from the PWA.
Both entries should use the same run-building model, preview ticket model, and mandate runtime. The product wrappers can differ, but the execution boundary should not fork.
