Install
openclaw skills install @galleonlabs/hypergrok-desk-post-trade-reviewThe Trade Reviewer's procedure for journaling desk activity and reviewing trades from the exchange record - process graded separately from outcome, execution costs measured, one repeatable finding per review, plus the weekly desk review. Use after any send, when a trade closes, on the weekly routine, or when the user asks "how did that go".
openclaw skills install @galleonlabs/hypergrok-desk-post-trade-reviewThe journal is the desk's memory; the review is how the desk learns. Both come from the exchange record first and chat second, and both keep process and outcome apart.
/workspace/trading-desk/journal/YYYY-MM-DD.md, one file per active day, appended in time order. Entry types:
14:02 UTC HG-20260816-01 opened ETH-PERP long idea (user); status evidence
14:12 UTC HG-20260816-01 risk PASS 0.51 ETH, stop 2,900, 0.5% risk (risk-limits v3)
14:29 UTC HG-20260816-01 approval "approve HG-20260816-01" (user)
14:31 UTC HG-20260816-01 sent buy 0.51 @ 3,000 Gtc + sl 2,900 (normalTpsl); cloid 0x9f3e...; oid 1839201122, sl waitingForFill
16:05 UTC HG-20260816-01 fill 0.51 @ 3,000.0 maker, fee $0.31
09:12 UTC HG-20260816-01 closed tp 3,089.6, fee $1.52; position flat; sl 2,900 cancelled 09:13
10:00 UTC limits risk-limits v3 -> v4: max positions 3 -> 4 (user, reason: adding HYPE)
11:40 UTC incident INC-20260817-01 send timeout on HG-20260817-02, reconciled not-on-exchange, re-approved and sent 11:47
18:00 UTC note maker entries at 10 bps depth filled within 2h on both attempts this week
Rules: append only; corrections are new lines with correction:; every line has a UTC time and an id where one exists; no opinions in the journal (those go in reviews).
Trigger: a proposal reaches closed, or the user asks. Inputs, always listed with timestamps:
userFills / userFillsByTime for the window: price, size, fee, side, crossedhistoricalOrders and orderStatus by cloid: what rested when, what cancelleduserFunding for the holding windowCompute:
| Measure | How |
|---|---|
| Entry slippage | (fill avg - ticket price) / ticket price in bps, signed against the trade |
| Exit slippage | same for the exit versus its ticket or trigger price |
| Fees | sum of fill fees in USD and as bps of notional; note maker vs taker |
| Funding | sum of funding payments over the window, USD |
| Net result | realised PnL after fees and funding, in USD and in R (R from the ticket) |
| Protection | was a reduce-only stop resting on the exchange for the entire life of the position? gaps in minutes |
| Lifecycle | each stage present, in order, with timestamps; approval by id; single send; reconciled |
| Holding time | fill to flat |
Grade:
Then one thing: a leak, a control that worked, or a break, chosen because it is repeatable. Not a list.
Write the review under ## review in the proposal file and send the block (format in agents/trade-reviewer.md) by DM to the Desk Lead and the user. Set status: closed.
From the journal, proposals and the exchange record for the week:
portfolio or start/end equityNo recommendations about what to trade. If the user asks, hand strategy questions to the Strategist and sizing questions to the Risk Manager.
For each INC-YYYYMMDD-NN: timeline (journal + exchange record), what the desk did, what the controls did, exposure during the incident, root cause where knowable, one corrective action with an owner and a date. Blameless in tone, exact in fact. Written to /workspace/trading-desk/journal/incidents/<id>.md and linked from the daily journal.