View Markdown · Documentation index (llms.txt)
State 014 Learning Guide
Pass intent between applications without executing a trade
Copying a ticker between trading, charting and news applications breaks the user’s workflow. This chapter is for developers building desktop interoperability: pass instrument context and request a ticket through Sail, while preserving the distinction between preparing an action and executing it.
How to learn with TraderX states · Structured lesson JSON
Maturity: implemented. Run the exercises in a disposable local environment; use the quickstart for setup and cleanup.
Starting point
C3 supports trading within TraderX; users still copy instrument context between applications.
Entry route: combined. Bring the knowledge from every declared predecessor.
From 012-platform-convergence-c3
- Carry forward: Treat C3 as a combined platform and functional checkpoint for subsequent branches.
- Why move: C3 supports trading within TraderX; users still copy instrument context between applications.
- Add or revise: Add FDC3 context and intent handling through Sail so another application can open a prefilled ticket.
- Evidence to collect: The selected instrument travels between applications and the requested ticket opens. The user must still decide whether to submit; interop success is not execution evidence. Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.
- Objectives:
trace-increment,interpret-evidence
| Before | After |
|---|---|
| C3 supports trading within TraderX; users still copy instrument context between applications. | Add FDC3 context and intent handling through Sail so another application can open a prefilled ticket. |
Concepts before tools
- Context describes a shared entity such as an instrument. An intent requests an action. Opening a ticket is neither submitting an order nor booking a trade.
Runtime prerequisites: Use the state quickstart for tool versions, generation, start and stop commands. Run one local state at a time because ports and generated output directories are shared.
Learning objectives
- trace-increment: Trace an FDC3 intent and instrument context into a prefilled ticket, and verify that opening it creates no order or trade.
- interpret-evidence: Explain the evidence boundary: Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.
Guided walkthrough
1. observe (available)
Objectives: trace-increment.
Follow the quickstart with --with-sail. Open Sail at http://localhost:8090/html/ and use Create Order Ticket or Create Trade Ticket in tab One. Confirm the matching TraderX ticket opens with the selected ticker. Change the TraderX blotter ticker and inspect chart/news context updates.
Expected observation and meaning: The selected instrument travels between applications and the requested ticket opens. The user must still decide whether to submit; interop success is not execution evidence.
Supporting material: quickstart · architecture · runtime-topology.
2. challenge (available)
Objectives: interpret-evidence.
Before submitting anything, compare orders and trades with their prior values. Check that opening a ticket created neither. Inspect the canonical bare ticker payload and the Sail-side exchange qualification used by the chart widget.
Expected observation and meaning: Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.
Supporting material: spec · contract-delta.
Demonstrate your understanding
Question (trace-increment, interpret-evidence): What does a successful Create Trade Ticket intent establish?
Assessment guidance: It establishes dispatch and ticket preparation with the expected context. Only a later submission and booking evidence establish a trade; neither proves payment or settlement.
Work with a learning partner
Use the learning-partner protocol with a human or an agent. Ask for a prediction before running the exercise, offer one hint at a time, and discuss the assessment guidance after the learner has attempted an explanation.
Objectives: trace-increment, interpret-evidence.
Check the starting point: What is the difference between describing an instrument and requesting an action on it?
Ask before the experiment: Predict whether opening a prefilled ticket should create an order or trade.
Hints, in order:
- Inspect the instrument context and the ticket fields before considering submission.
- Compare orders/trades before and after opening; distinguish the bare ticker contract from widget-specific symbol translation.
Misconception to probe (not a fact): A successfully dispatched intent means an order was submitted or a trade was booked.
Evidence to ask the learner for: Ask for the context/ticker, opened ticket type and unchanged order/trade records before submission; explain what dispatch actually establishes.
Scope and limitations
- Ticket navigation must not silently book a trade. Widget-specific symbol translation is separate from the canonical fdc3.instrument payload.
- This is an educational local demonstration. Passing its checks does not establish production readiness, financial settlement, or correctness under every failure mode.
Position In Learning Graph
- Previous state(s): 012-platform-convergence-c3
- Dotted-line parent(s): none
- Next state(s): none
Convergence Metadata
- Convergence state:
no - Convergence level:
none - Lineage role:
canonical - Nearest previous convergence:
none - Nearest next convergence:
none
Rendered Code
- Generated branch: code/generated-state-014-fdc3-intent-interoperability
- Authoring branch (spec source): main
Code Comparison With Previous State
- Compare against
012-platform-convergence-c3: code/generated-state-012-platform-convergence-c3...code/generated-state-014-fdc3-intent-interoperability
Plain-English Code Delta
- Added: Orders, trades and positions start on All tickers. Each blotter has a labelled, keyboard-accessible Filter on selected ticker control and a status showing its effective ticker (or no ticker selected).
- Added: Ticker mode stays local: selecting securities still shares FDC3 context with charts/tickets, turning filtering off restores all account rows, and opting back in uses the latest selection. Account changes and tab switches preserve modes; new windows default to All tickers even with retained context.
- Added: Account selection propagates independently through
fdc3.account. Live order updates use the configured event transport, not FDC3; snapshot reconciliation protects creates/fills/cancellations and reconnect refreshes missed data. - Added: Empty or invalid instrument messages retain the last valid selection; this state defines no clear-instrument message. Before any selection, an opted-in blotter shows all tickers and explains why.
- Added: FDC3 interop adapter in TraderX frontend for DesktopAgent integration.
- Added: Outbound
fdc3.instrumentcontext publishing when a user selects a ticker-bearing row in trade/order/position views. - Added: Inbound
fdc3.instrumentcontext handling that retains shared selection for optional blotter filters and ticket defaults. - Added: Standard intent handling for
ViewOrders(orders view routing without implicit filter opt-in).
Run This State
./scripts/start-state-014-fdc3-intent-interoperability-generated.sh
Canonical Spec Links
- State spec pack: /specs/fdc3-intent-interoperability
- Architecture: /specs/fdc3-intent-interoperability/system/architecture
- Flows / topology: /specs/fdc3-intent-interoperability/system/runtime-topology
- Research: link
- Data model: link
- Quickstart: link