[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GSYR1S6VFS34H0ZPMDM4BW":3,"skill-same:01M6GSYR1S6VFS34H0ZPMDM4BW":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6GSYR1S6VFS34H0ZPMDM4BW","recipe-session-post-mortem",null,"Narrate a recorded session's post-mortem: replay the window, explain the P&L decomposition in plain terms, and deliver a presentation-ready summary.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",80,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-recipe-session-post-mortem\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-recipe-session-post-mortem\u002FSKILL.md",[],[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"post mortem","session","recipe session post mortem","post","recipe","summary","deliver","plain","post-mortem","window","presentation","decomposition","sessions","kraken","replay","ready","terms","explain","playground","2026-11-10 10:12:30",false,"---\nname: recipe-session-post-mortem\nversion: 1.0.0\ndescription: \"Narrate a recorded session's post-mortem: replay the window, explain the P&L decomposition in plain terms, and deliver a presentation-ready summary.\"\nmetadata:\n  openclaw:\n    category: \"recipe\"\n    domain: \"sessions\"\n  requires:\n    bins: [\"kraken\"]\n    skills: [\"kraken-playground\"]\n---\n\n# Session Post-Mortem\n\n> **PREREQUISITE:** Load `kraken-playground` to understand what a session is and where it lives.\n\nTurn a stopped, recorded session into a story a non-trader can follow: what the market did, what the agent did, where every dollar of P&L went, and what to change next session. The CLI supplies the deterministic facts (`kraken explain pnl`, `kraken replay`); this recipe is the interpretive layer on top. The output is good enough to paste into a board deck.\n\nUse this skill for:\n- reviewing a session after it stops\n- explaining a P&L number component-by-component in plain language\n- producing an executive-ready one-pager from a recorded session\n\n## Important\n\nThe session must be **stopped** (`kraken session stop`). `explain pnl` decomposes a stopped session's window against its recorded tape; on a recording session, stop it first.\n\nThe CLI stays deterministic; the narrative is yours. Every dollar figure, percentage, and count in the narrative must come from the command output — never estimate, extrapolate, or invent a number the JSON does not contain.\n\n## Step 1: Pull the P&L Decomposition\n\n```bash\nkraken explain pnl --session \"$SESSION_ID\" -o json 2>\u002Fdev\u002Fnull   # --session defaults to latest\n```\n\nOne JSON object. The parts that drive the narrative:\n\n- `anchor`: `starting_balance`, `final_value`, `total_pnl`, `currency` — the headline numbers.\n- `components[]`: the waterfall. Each entry has `kind`, `amount`, and a ready-made plain-terms `explanation`:\n  - `price_movement` — position changes valued at mid-market, before any costs\n  - `fees` — what the fee rate took across all fills\n  - `spread` — the half-spread paid by market fills (and limit-fill timing)\n  - `slippage` — simulated slippage on market fills\n  - `residual` — the reconciliation gap; **components + residual always sum to `total_pnl`**\n- `trades[]`: per-fill attribution (`side`, `volume`, `price`, `notional`, `fees`, `spread`, `price_movement`) **plus the recorded `reason`** — the agent's own words for why it traded.\n- `window.symbols[]`: what the market did (`first_mid`, `last_mid`, `move_pct`, `avg_spread`, `frames`).\n- `caveats[]` and `missed_fills`: honest unknowns. If either is non-empty, the narrative must mention them.\n\nUseful digests:\n\n```bash\n# Headline + waterfall\nkraken explain pnl --session \"$SESSION_ID\" -o json 2>\u002Fdev\u002Fnull \\\n  | jq '{anchor, waterfall: [.components[] | {kind, amount}]}'\n\n# Cost per trade, with the agent's stated reason\nkraken explain pnl --session \"$SESSION_ID\" -o json 2>\u002Fdev\u002Fnull \\\n  | jq -r '.trades[] | [.side, .volume, .price, .fees, .reason] | @tsv'\n```\n\n## Step 2: Replay the Timeline\n\n```bash\nkraken replay --session \"$SESSION_ID\" --speed 1000 -o json 2>\u002Fdev\u002Fnull\n```\n\nNDJSON, one event per line, in recorded order. `--speed` is a multiplier (0.01–1000, default 1 = real time with recorded gaps reproduced); for analysis always use `--speed 1000` so the tape flushes as fast as pacing allows. Three record families interleave on the same clock:\n\n- **Market frames** — `{channel, type: \"snapshot\"|\"update\", data: [...]}`: the price tape.\n- **Account events** — `{event: \"initialized\"|\"order_filled\"|\"command\", ...}`: balances, fills with `reference_quote`, and command outcomes.\n- **Decisions** — `{kind, symbol, reason, order_id}`: the why behind each action, including skips.\n\nDigest it rather than reading every tick:\n\n```bash\nREPLAY=$(kraken replay --session \"$SESSION_ID\" --speed 1000 -o json 2>\u002Fdev\u002Fnull)\n\n# The action beats: every fill and every decision, in order\necho \"$REPLAY\" | jq -c 'select(.event == \"order_filled\" or .kind != null)'\n\n# The price path: first, last, low, high of the recorded mids\necho \"$REPLAY\" | jq -s '[.[] | select(.channel == \"ticker\") | .data[0].last] |\n  {first: .[0], last: .[-1], low: min, high: max}'\n```\n\n## Step 3: Narrate\n\nWeave both outputs into one story, in this order:\n\n1. **Headline** — one sentence: outcome and dominant cause, citing `total_pnl` and the largest component. *\"The session lost $20.70 on a flat market: $20.18 of it was fees from churning three fills through an 0.02% move.\"*\n2. **What the market did** — from `window.symbols` and the replay price path: direction, size of the move, spread conditions.\n3. **What the agent did** — from the replay beats: each decision with its recorded `reason`, and whether the fill helped or hurt (per-trade `price_movement` vs `fees` + `spread`).\n4. **Where the money went** — the waterfall, every component, summing to the total. Name the dominant cost in plain terms.\n5. **Patterns** — call out what the numbers show: churning a flat market and paying the spread N times, buying strength that faded, skips that saved money, fees exceeding gross edge.\n6. **Next steps** — concrete, tied to the evidence: fewer\u002Flarger fills to cut the fee bill, limit orders to earn the spread instead of paying it, a wider trigger threshold, a different window.\n\nHonesty rules:\n- Quote figures exactly (round for prose: dollars to cents, percentages to two decimals).\n- If `caveats` or `missed_fills.orders` are non-empty, state them plainly — they bound what the decomposition can claim.\n- Never attribute intent the decision log doesn't record. The `reason` fields are the only source for \"why\".\n\n## Zero-Trade Sessions\n\nA session with no fills is a valid post-mortem, not an error: `trades` is `[]` and every component is zero. Say so directly — \"no trades were placed, so the balance is unchanged\" — then narrate what the market did over the window and, if decisions were logged (skips with reasons), whether staying out was the right call given the tape.\n\n## Presenting to an Executive Audience\n\nWhen the post-mortem is for a demo or leadership review, format the same content as a one-pager:\n\n- Lead with the headline sentence, then the waterfall as a small table: component, signed dollar amount, one plain-terms phrase each (crib from the `explanation` fields).\n- Follow with 3–6 timeline beats (time, action, reason, effect) — not the full tape.\n- Close with the next-step list.\n- No jargon in the top half: \"cost of crossing the bid-ask gap\" beats \"half-spread on taker fills\".\n- If the environment can render documents or artifacts, a single page with the waterfall as the centerpiece chart lands best; the narrative text stands alone if not.\n\nThe pitch this demonstrates: every automated trading session is fully auditable after the fact — the tape, the decisions, and the P&L reconcile to the cent, and an agent can explain it in plain language on demand.\n\n## Hard Rules\n\n- Read-only. This recipe never places orders, never starts or stops sessions (except telling the user to stop a recording one), and never writes into the session directory.\n- Every number in the narrative traces to a field in `explain pnl` or `replay` output.\n- The waterfall must be presented complete — components plus residual sum to the total; do not drop a component because it is small or unflattering.\n- Surface `caveats` and `missed_fills` whenever they are non-empty. A polished story that hides a caveat is wrong, not polished.\n- If you hit a mismatch between what you are trying to do and the CLI's interface or responses — including a mismatch between this skill and the installed CLI version's contract — feel free to submit feedback with `kraken feedback`.\n","# Session Post-Mortem\n\n> **PREREQUISITE:** Load `kraken-playground` to understand what a session is and where it lives.\n\nTurn a stopped, recorded session into a story a non-trader can follow: what the market did, what the agent did, where every dollar of P&L went, and what to change next session. The CLI supplies the deterministic facts (`kraken explain pnl`, `kraken replay`); this recipe is the interpretive layer on top. The output is good enough to paste into a board deck.\n\nUse this skill for:\n- reviewing a session after it stops\n- explaining a P&L number component-by-component in plain language\n- producing an executive-ready one-pager from a recorded session\n\n## Important\n\nThe session must be **stopped** (`kraken session stop`). `explain pnl` decomposes a stopped session's window against its recorded tape; on a recording session, stop it first.\n\nThe CLI stays deterministic; the narrative is yours. Every dollar figure, percentage, and count in the narrative must come from the command output — never estimate, extrapolate, or invent a number the JSON does not contain.\n\n## Step 1: Pull the P&L Decomposition\n\n```bash\nkraken explain pnl --session \"$SESSION_ID\" -o json 2>\u002Fdev\u002Fnull   # --session defaults to latest\n```\n\nOne JSON object. The parts that drive the narrative:\n\n- `anchor`: `starting_balance`, `final_value`, `total_pnl`, `currency` — the headline numbers.\n- `components[]`: the waterfall. Each entry has `kind`, `amount`, and a ready-made plain-terms `explanation`:\n  - `price_movement` — position changes valued at mid-market, before any costs\n  - `fees` — what the fee rate took across all fills\n  - `spread` — the half-spread paid by market fills (and limit-fill timing)\n  - `slippage` — simulated slippage on market fills\n  - `residual` — the reconciliation gap; **components + residual always sum to `total_pnl`**\n- `trades[]`: per-fill attribution (`side`, `volume`, `price`, `notional`, `fees`, `spread`, `price_movement`) **plus the recorded `reason`** — the agent's own words for why it traded.\n- `window.symbols[]`: what the market did (`first_mid`, `last_mid`, `move_pct`, `avg_spread`, `frames`).\n- `caveats[]` and `missed_fills`: honest unknowns. If either is non-empty, the narrative must mention them.\n\nUseful digests:\n\n```bash\n# Headline + waterfall\nkraken explain pnl --session \"$SESSION_ID\" -o json 2>\u002Fdev\u002Fnull \\\n  | jq '{anchor, waterfall: [.components[] | {kind, amount}]}'\n\n# Cost per trade, with the agent's stated reason\nkraken explain pnl --session \"$SESSION_ID\" -o json 2>\u002Fdev\u002Fnull \\\n  | jq -r '.trades[] | [.side, .volume, .price, .fees, .reason] | @tsv'\n```\n\n## Step 2: Replay the Timeline\n\n```bash\nkraken replay --session \"$SESSION_ID\" --speed 1000 -o json 2>\u002Fdev\u002Fnull\n```\n\nNDJSON, one event per line, in recorded order. `--speed` is a multiplier (0.01–1000, default 1 = real time with recorded gaps reproduced); for analysis always use `--speed 1000` so the tape flushes as fast as pacing allows. Three record families interleave on the same clock:\n\n- **Market frames** — `{channel, type: \"snapshot\"|\"update\", data: [...]}`: the price tape.\n- **Account events** — `{event: \"initialized\"|\"order_filled\"|\"command\", ...}`: balances, fills with `reference_quote`, and command outcomes.\n- **Decisions** — `{kind, symbol, reason, order_id}`: the why behind each action, including skips.\n\nDigest it rather than reading every tick:\n\n```bash\nREPLAY=$(kraken replay --session \"$SESSION_ID\" --speed 1000 -o json 2>\u002Fdev\u002Fnull)\n\n# The action beats: every fill and every decision, in order\necho \"$REPLAY\" | jq -c 'select(.event == \"order_filled\" or .kind != null)'\n\n# The price path: first, last, low, high of the recorded mids\necho \"$REPLAY\" | jq -s '[.[] | select(.channel == \"ticker\") | .data[0].last] |\n  {first: .[0], last: .[-1], low: min, high: max}'\n```\n\n## Step 3: Narrate\n\nWeave both outputs into one story, in this order:\n\n1. **Headline** — one sentence: outcome and dominant cause, citing `total_pnl` and the largest component. *\"The session lost $20.70 on a flat market: $20.18 of it was fees from churning three fills through an 0.02% move.\"*\n2. **What the market did** — from `window.symbols` and the replay price path: direction, size of the move, spread conditions.\n3. **What the agent did** — from the replay beats: each decision with its recorded `reason`, and whether the fill helped or hurt (per-trade `price_movement` vs `fees` + `spread`).\n4. **Where the money went** — the waterfall, every component, summing to the total. Name the dominant cost in plain terms.\n5. **Patterns** — call out what the numbers show: churning a flat market and paying the spread N times, buying strength that faded, skips that saved money, fees exceeding gross edge.\n6. **Next steps** — concrete, tied to the evidence: fewer\u002Flarger fills to cut the fee bill, limit orders to earn the spread instead of paying it, a wider trigger threshold, a different window.\n\nHonesty rules:\n- Quote figures exactly (round for prose: dollars to cents, percentages to two decimals).\n- If `caveats` or `missed_fills.orders` are non-empty, state them plainly — they bound what the decomposition can claim.\n- Never attribute intent the decision log doesn't record. The `reason` fields are the only source for \"why\".\n\n## Zero-Trade Sessions\n\nA session with no fills is a valid post-mortem, not an error: `trades` is `[]` and every component is zero. Say so directly — \"no trades were placed, so the balance is unchanged\" — then narrate what the market did over the window and, if decisions were logged (skips with reasons), whether staying out was the right call given the tape.\n\n## Presenting to an Executive Audience\n\nWhen the post-mortem is for a demo or leadership review, format the same content as a one-pager:\n\n- Lead with the headline sentence, then the waterfall as a small table: component, signed dollar amount, one plain-terms phrase each (crib from the `explanation` fields).\n- Follow with 3–6 timeline beats (time, action, reason, effect) — not the full tape.\n- Close with the next-step list.\n- No jargon in the top half: \"cost of crossing the bid-ask gap\" beats \"half-spread on taker fills\".\n- If the environment can render documents or artifacts, a single page with the waterfall as the centerpiece chart lands best; the narrative text stands alone if not.\n\nThe pitch this demonstrates: every automated trading session is fully auditable after the fact — the tape, the decisions, and the P&L reconcile to the cent, and an agent can explain it in plain language on demand.\n\n## Hard Rules\n\n- Read-only. This recipe never places orders, never starts or stops sessions (except telling the user to stop a recording one), and never writes into the session directory.\n- Every number in the narrative traces to a field in `explain pnl` or `replay` output.\n- The waterfall must be presented complete — components plus residual sum to the total; do not drop a component because it is small or unflattering.\n- Surface `caveats` and `missed_fills` whenever they are non-empty. A polished story that hides a caveat is wrong, not polished.\n- If you hit a mismatch between what you are trying to do and the CLI's interface or responses — including a mismatch between this skill and the installed CLI version's contract — feel free to submit feedback with `kraken feedback`.\n",{"name":5,"version":44,"metadata":45,"description":7},"1.0.0",{"openclaw":46,"requires":47},{"domain":32,"category":24},{"bins":48,"skills":49},[33],[50],"kraken-playground","main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fexchanges\u002Fkraken-official-recipe-session-post-mortem",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-11 08:47:40",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill recipe-session-post-mortem",{"tool":66,"command":67},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill recipe-session-post-mortem",{"tool":69,"command":70},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill recipe-session-post-mortem","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-recipe-session-post-mortem\u002FSKILL.md",true,[74,78,84],{"path":75,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":16},"LICENSE","许可证",1074,{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"SOURCE.md","REFERENCE","参考文档",351,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-recipe-session-post-mortem\u002FSOURCE.md",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"TRUST.auto.yaml",2197,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-recipe-session-post-mortem\u002FTRUST.auto.yaml",[89,116,139,157,170,180],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":93,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":39},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[97,98,24,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"performance","recipe performance","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":120,"licenseFileUrl":121,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":39},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[125,126,127,128,129,130,131,132,133,134,135,136,137,138],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":120,"licenseFileUrl":143,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":39},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[147,126,148,149,150,151,152,136,135,134,153,154,155,130,156,129,128],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":120,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":39},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[165,166,127,167,168,137,135,169,133,132,130,129],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":171,"name":172,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":173,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":39},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[177,178,179],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":184,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":39},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[188,189,190,191,192,193,194,195,196,197,198],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","use","patch","code","share"]