[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GSV5CVK1AC6ECVQGGEJTP8":3,"skill-same:01M6GSV5CVK1AC6ECVQGGEJTP8":91},{"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":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6GSV5CVK1AC6ECVQGGEJTP8","kraken-lab-experiment",null,"Run the Autoresearch Lab lifecycle end-to-end: freeze a hypothesis with mechanical success criteria and a sealed session plan, drive recorded and replayed paper runs, score them honestly, and read the verdict — resumable from disk at every step, designed for \u002Floop.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-kraken-lab-experiment\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-kraken-lab-experiment\u002FSKILL.md",[],[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"kraken lab experiment","lab","experiment","kraken","for","sessions","at","with","verdict","paper","end","mechanical","session","read","plan","loop","freeze","disk","lifecycle","autoresearch","run","2026-11-10 10:12:30",false,"---\nname: kraken-lab-experiment\nversion: 2.0.0\ndescription: \"Run the Autoresearch Lab lifecycle end-to-end: freeze a hypothesis with mechanical success criteria and a sealed session plan, drive recorded and replayed paper runs, score them honestly, and read the verdict — resumable from disk at every step, designed for \u002Floop.\"\nmetadata:\n  openclaw:\n    category: \"lab\"\n    domain: \"sessions\"\n  requires:\n    bins: [\"kraken\", \"jq\"]\n    skills: [\"kraken-playground\"]\n---\n\n# Lab Experiment Lifecycle\n\n> **PREREQUISITE:** Load `kraken-playground` to understand what a session is\n> and where it lives.\n\nTurn a trading hunch into a mechanical verdict: pre-register the hypothesis\nand its success criteria (hash-sealed, so the goalposts cannot move), run it\nas recorded paper runs, score each session against its own tape, and let the\nfrozen criteria — not vibes — say pass or fail. Every step reads and writes\nplain files under the active scope, so the lifecycle survives kills,\nrestarts, and context loss: **whatever step you find half-done on disk is\nthe step you resume**.\n\nUse this skill for:\n\n- driving one experiment end-to-end under `\u002Floop` (freeze → run → score →\n  verdict)\n- resuming an experiment a previous context started\n- reproducing a verdict cold, from files alone\n\n## Safety rules\n\n- Seal and run experiments in a paper workspace (`export KRAKEN_WORKSPACE=\u003Cname>`),\n  where the order verbs fill on the paper account: a replay leg needs the\n  simulator.\n- Reading and scoring also work in a live workspace, where the order verbs\n  trade real funds. The scorecard names the scope it came from, so live-era\n  sessions are never mistaken for paper evidence. Before any step that places\n  an order, confirm `kraken workspace show -o json` reports `\"mode\": \"paper\"`.\n- Never edit a frozen experiment file. The seal exists to catch exactly\n  that; a tampered spec fails every later step with a `parse` envelope.\n- Never report a verdict you did not obtain from `lab score --experiment`\n  or `lab compare` output in this session. No estimating, no \"it would\n  probably pass\".\n\n## The state machine\n\nWith a sealed session plan the whole table collapses to one command — **run\n`kraken lab next \u003Cexp>` and do what it says**:\n\n```bash\nkraken lab next momentum-1 -o json 2>\u002Fdev\u002Fnull\n# state: \"start\"         → run the exact `command` it prints, then stop+score\n# state: \"running\"       → drive or wait, then `kraken session stop` + `lab score`\n# state: \"plan_complete\" → `kraken lab compare \u003Cexp>`, conclude (Step 5)\n```\n\n`lab next` re-derives progress from the sessions tree on every call: completed\nruns consume plan entries in order, aborted sessions keep their ordinals and\ncount for nothing, and a replay entry whose tape no longer matches its\nsealed hash is refused outright. Stop and score a finished run *before*\nasking again — an unstopped run has no summary and reads as aborted.\n\nFor a plan-less experiment (registered before run plans existed), fall back\nto the manual table:\n\n| State | Evidence | Next action |\n|-------|----------|-------------|\n| unregistered | `kraken lab show \u003Cexp>` → `validation` error | Step 1: freeze |\n| no run yet | `kraken session list` → no run stamped with the experiment | Step 2: start run |\n| run live | `kraken session show` → status `recording` | Step 3: drive or wait, then stop |\n| run stopped, unjudged | status `stopped`, no verdict recorded in your notes | Step 4: score + verdict |\n| judged | verdict obtained | Step 5: conclude or start run n+1 |\n\n## Step 1: Freeze the hypothesis (once)\n\nPick a name (path-safe segment: letters, digits, `.`, `-`, `_`) and state\nthe falsifiable claim plus at least one mechanical criterion:\n\n```bash\nkraken lab new momentum-1 \\\n  --hypothesis \"buying 15m strength beats sitting in cash\" \\\n  --strategy recipe-playground-dca \\\n  --min-return-pct 1 --max-drawdown-pct 5 --min-fills 2 \\\n  --session replay:tape:jun-crash --session replay:tape:jun-chop \\\n  --session live:24h \\\n  -o json 2>\u002Fdev\u002Fnull\n```\n\nSeal the **session plan** with the spec: repeatable `--session` entries, in\nexecution order — `replay:\u003Cref>` (a finalized tape from\n`kraken tape list`; its content hash is sealed, so a re-recorded tape\ncan never satisfy the plan) or `live:\u003Cwindow>`. Replay first to screen\ncheaply, live last: the promotion gate requires a passing live session because\nreplay cannot enforce lookahead. The session count is sealed too — that is the\npoint: no running until a pass appears.\n\nThe output echoes the sealed spec with its `frozen` hash (`sha256:…`).\nFreezing is once-only: a second `lab new` under the same name is a\n`validation` error saying the spec is immutable. Verify any time with:\n\n```bash\nkraken lab show momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\nIf `show` returns a `parse` error mentioning \"modified after freezing\", the\nfile was tampered with. Stop the experiment and report it — do not re-freeze\nover it.\n\n## Step 2: Start a session\n\nWith a session plan, `kraken lab next \u003Cexp>` prints the exact start command —\nuse it verbatim; adjusting `--speed` per the reaction-time note below is\nthe one permitted edit. Runs are ordinary recorded sessions stamped with\n`--experiment` — the stamp is what discovery keys on; the `--label\n\u003Cexp>-s\u003Cn>` is the human handle:\n\n```bash\n# live entry (fill in the market to record):\nkraken session start --label momentum-1-s1 --experiment momentum-1 \\\n  --symbols BTC\u002FUSD --channels ticker,trade \\\n  -o json 2>\u002Fdev\u002Fnull &\n\n# replay entry (the tape defines the market; 10x compresses the wait):\nkraken session start --label momentum-1-s2 --experiment momentum-1 \\\n  --from tape:jun-crash --speed 10 -o json 2>\u002Fdev\u002Fnull &\n```\n\nReplay reaction-time note: at speed N you have 1\u002FN of live reaction time —\nsuits slow-cadence strategies (DCA); drop to `--speed 1` for reactive ones.\n\n(At least one `--channels` entry is required on live entries, and the\nrecorder runs in the foreground, so background it with `&` as the\nplayground skill does. The `session_started` stdout line carries the allocated\nsession id.)\n\nDrive the strategy the hypothesis names (e.g. the recipe skill from\n`--strategy`), passing `--reason` on every trade so the scorecard's\ndecided-fill join has data — the rationale lands in the active session's\ndecision log automatically.\n\n## Step 3: Stop the session\n\nA session must stop before it can be scored — the stop summary is the anchor\nevery later number decomposes:\n\n```bash\nkraken session stop\n```\n\n## Step 4: Score and judge\n\nOne command produces the honest scorecard *and* the mechanical verdict:\n\n```bash\nkraken lab score --session latest --experiment momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\n- `source`: what the session traded against — `{kind:\"replay\", tape, speed}`\n  or `{kind:\"live\", symbols, window_secs}`, derived from the session's\n  contract, not asserted. `window_secs` is absent while the window is open.\n- `anchor` + `components[]`: the stop totals and the explain-pnl waterfall,\n  carried verbatim — this output can never disagree with\n  `kraken explain pnl`.\n- `metrics`: `return_pct`, `max_drawdown`, `max_drawdown_pct`, `fees`,\n  `friction`, `turnover_pct`, `hit_rate`, `profit_factor`,\n  `slippage_sensitivity` — every `null` is an honest \"not derivable\", never\n  zero (a buys-only DCA run has no closed round trips, so `hit_rate` and\n  `profit_factor` read `null` by design, not by breakage).\n- `verdict.pass` and `verdict.checks[]`: one check per frozen criterion with\n  `threshold`, `observed`, `pass`. An unknown observation fails its check.\n- `caveats[]`: read them; a verdict with caveats is reported *with* them.\n\nDigest for the loop log:\n\n```bash\nkraken lab score --session latest --experiment momentum-1 -o json 2>\u002Fdev\u002Fnull \\\n  | jq '{session, experiment, pass: .verdict.pass,\n         checks: [.verdict.checks[] | {criterion, threshold, observed, pass}],\n         caveats}'\n```\n\nThe retry cues are in the error envelopes themselves: \"still recording — stop\nit with 'kraken session stop' first\" means go back to Step 3; \"was aborted\nbefore it stopped … only a stopped session can be scored\" means that session\nis dead evidence — start a fresh one; \"experiment '…' not found; run 'kraken\nlab new …' first\" means Step 1 never happened in this scope.\n\n## Step 5: Conclude — or run again\n\nThe verdict is mechanical; the conclusion is yours to *report, not adjust*:\n\n- **pass**: state the hypothesis, the checks that carried it, and every\n  caveat. One passing run is evidence, not proof — follow the plan to its\n  end before promoting anything.\n- **fail**: name the failing checks (`threshold` vs `observed`) and what the\n  waterfall says the money actually went to (fees? drawdown? never traded?).\n  A failed experiment is a completed experiment.\n\n**Promotion:** when `lab next` says `plan_complete`, assemble the promotion\nevidence block from `kraken lab compare` and hand off to the\n`kraken-paper-to-live` skill. Its gate is mechanical: at least 2 passing\nruns with a passing **live** run among them — replay verdicts count only\nwith their lookahead caveat attached. Two replay passes never promote.\n\nMore runs: repeat Steps 2–4 (each start allocates the next ordinal), then\nread every session side by side:\n\n```bash\nkraken lab compare momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\nOne verdict column per session (`sessions[].verdict`), plus `pass_count`\u002F`total`\nand a named error column for any run that cannot be scored (a still-running\nrun says so — stop it first). Only the verdicts compare across runs: they\ncover different market windows, so the metric rows are per-session context.\nNever average scorecards across runs into a blended number the CLI did not\nproduce — `compare` deliberately never aggregates.\n\n## Cold-context verdict reproduction\n\nAny context — including one that never saw the sessions — reproduces a verdict\nfrom disk alone:\n\n```bash\nkraken lab show momentum-1 -o json 2>\u002Fdev\u002Fnull          # the sealed criteria\nkraken lab score --session s1 --experiment momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\nSame files, same exact-Decimal math, same verdict, byte for byte. If the two\ndisagree with a previously reported verdict, something on disk changed —\n`lab show` tells you whether it was the spec.\n\n## Running under \u002Floop\n\nInvoke as `\u002Floop` with this skill and the experiment name. Each firing:\n\n1. `kraken lab show \u003Cexp>` — missing → freeze (Step 1, with `--session`\n   entries) and return.\n2. `kraken lab next \u003Cexp> -o json` and act on its `state`. If it refuses\n   with a no-run-plan `validation` error (an experiment frozen before run\n   plans existed), drive the manual state table above instead.\n   `start` → run its `command`; `running` → drive\u002Fwait, then stop + score\n   (Steps 3–4) and log the digest; `plan_complete` → `kraken lab compare`,\n   conclude (Step 5), and stop the loop with the per-session verdicts (and the\n   promotion evidence block, if concluding toward promotion) as the final\n   report.\n\nIdempotent by construction: a firing that finds nothing to advance does\nnothing. A killed loop resumes at the same step.\n\nIf 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","# Lab Experiment Lifecycle\n\n> **PREREQUISITE:** Load `kraken-playground` to understand what a session is\n> and where it lives.\n\nTurn a trading hunch into a mechanical verdict: pre-register the hypothesis\nand its success criteria (hash-sealed, so the goalposts cannot move), run it\nas recorded paper runs, score each session against its own tape, and let the\nfrozen criteria — not vibes — say pass or fail. Every step reads and writes\nplain files under the active scope, so the lifecycle survives kills,\nrestarts, and context loss: **whatever step you find half-done on disk is\nthe step you resume**.\n\nUse this skill for:\n\n- driving one experiment end-to-end under `\u002Floop` (freeze → run → score →\n  verdict)\n- resuming an experiment a previous context started\n- reproducing a verdict cold, from files alone\n\n## Safety rules\n\n- Seal and run experiments in a paper workspace (`export KRAKEN_WORKSPACE=\u003Cname>`),\n  where the order verbs fill on the paper account: a replay leg needs the\n  simulator.\n- Reading and scoring also work in a live workspace, where the order verbs\n  trade real funds. The scorecard names the scope it came from, so live-era\n  sessions are never mistaken for paper evidence. Before any step that places\n  an order, confirm `kraken workspace show -o json` reports `\"mode\": \"paper\"`.\n- Never edit a frozen experiment file. The seal exists to catch exactly\n  that; a tampered spec fails every later step with a `parse` envelope.\n- Never report a verdict you did not obtain from `lab score --experiment`\n  or `lab compare` output in this session. No estimating, no \"it would\n  probably pass\".\n\n## The state machine\n\nWith a sealed session plan the whole table collapses to one command — **run\n`kraken lab next \u003Cexp>` and do what it says**:\n\n```bash\nkraken lab next momentum-1 -o json 2>\u002Fdev\u002Fnull\n# state: \"start\"         → run the exact `command` it prints, then stop+score\n# state: \"running\"       → drive or wait, then `kraken session stop` + `lab score`\n# state: \"plan_complete\" → `kraken lab compare \u003Cexp>`, conclude (Step 5)\n```\n\n`lab next` re-derives progress from the sessions tree on every call: completed\nruns consume plan entries in order, aborted sessions keep their ordinals and\ncount for nothing, and a replay entry whose tape no longer matches its\nsealed hash is refused outright. Stop and score a finished run *before*\nasking again — an unstopped run has no summary and reads as aborted.\n\nFor a plan-less experiment (registered before run plans existed), fall back\nto the manual table:\n\n| State | Evidence | Next action |\n|-------|----------|-------------|\n| unregistered | `kraken lab show \u003Cexp>` → `validation` error | Step 1: freeze |\n| no run yet | `kraken session list` → no run stamped with the experiment | Step 2: start run |\n| run live | `kraken session show` → status `recording` | Step 3: drive or wait, then stop |\n| run stopped, unjudged | status `stopped`, no verdict recorded in your notes | Step 4: score + verdict |\n| judged | verdict obtained | Step 5: conclude or start run n+1 |\n\n## Step 1: Freeze the hypothesis (once)\n\nPick a name (path-safe segment: letters, digits, `.`, `-`, `_`) and state\nthe falsifiable claim plus at least one mechanical criterion:\n\n```bash\nkraken lab new momentum-1 \\\n  --hypothesis \"buying 15m strength beats sitting in cash\" \\\n  --strategy recipe-playground-dca \\\n  --min-return-pct 1 --max-drawdown-pct 5 --min-fills 2 \\\n  --session replay:tape:jun-crash --session replay:tape:jun-chop \\\n  --session live:24h \\\n  -o json 2>\u002Fdev\u002Fnull\n```\n\nSeal the **session plan** with the spec: repeatable `--session` entries, in\nexecution order — `replay:\u003Cref>` (a finalized tape from\n`kraken tape list`; its content hash is sealed, so a re-recorded tape\ncan never satisfy the plan) or `live:\u003Cwindow>`. Replay first to screen\ncheaply, live last: the promotion gate requires a passing live session because\nreplay cannot enforce lookahead. The session count is sealed too — that is the\npoint: no running until a pass appears.\n\nThe output echoes the sealed spec with its `frozen` hash (`sha256:…`).\nFreezing is once-only: a second `lab new` under the same name is a\n`validation` error saying the spec is immutable. Verify any time with:\n\n```bash\nkraken lab show momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\nIf `show` returns a `parse` error mentioning \"modified after freezing\", the\nfile was tampered with. Stop the experiment and report it — do not re-freeze\nover it.\n\n## Step 2: Start a session\n\nWith a session plan, `kraken lab next \u003Cexp>` prints the exact start command —\nuse it verbatim; adjusting `--speed` per the reaction-time note below is\nthe one permitted edit. Runs are ordinary recorded sessions stamped with\n`--experiment` — the stamp is what discovery keys on; the `--label\n\u003Cexp>-s\u003Cn>` is the human handle:\n\n```bash\n# live entry (fill in the market to record):\nkraken session start --label momentum-1-s1 --experiment momentum-1 \\\n  --symbols BTC\u002FUSD --channels ticker,trade \\\n  -o json 2>\u002Fdev\u002Fnull &\n\n# replay entry (the tape defines the market; 10x compresses the wait):\nkraken session start --label momentum-1-s2 --experiment momentum-1 \\\n  --from tape:jun-crash --speed 10 -o json 2>\u002Fdev\u002Fnull &\n```\n\nReplay reaction-time note: at speed N you have 1\u002FN of live reaction time —\nsuits slow-cadence strategies (DCA); drop to `--speed 1` for reactive ones.\n\n(At least one `--channels` entry is required on live entries, and the\nrecorder runs in the foreground, so background it with `&` as the\nplayground skill does. The `session_started` stdout line carries the allocated\nsession id.)\n\nDrive the strategy the hypothesis names (e.g. the recipe skill from\n`--strategy`), passing `--reason` on every trade so the scorecard's\ndecided-fill join has data — the rationale lands in the active session's\ndecision log automatically.\n\n## Step 3: Stop the session\n\nA session must stop before it can be scored — the stop summary is the anchor\nevery later number decomposes:\n\n```bash\nkraken session stop\n```\n\n## Step 4: Score and judge\n\nOne command produces the honest scorecard *and* the mechanical verdict:\n\n```bash\nkraken lab score --session latest --experiment momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\n- `source`: what the session traded against — `{kind:\"replay\", tape, speed}`\n  or `{kind:\"live\", symbols, window_secs}`, derived from the session's\n  contract, not asserted. `window_secs` is absent while the window is open.\n- `anchor` + `components[]`: the stop totals and the explain-pnl waterfall,\n  carried verbatim — this output can never disagree with\n  `kraken explain pnl`.\n- `metrics`: `return_pct`, `max_drawdown`, `max_drawdown_pct`, `fees`,\n  `friction`, `turnover_pct`, `hit_rate`, `profit_factor`,\n  `slippage_sensitivity` — every `null` is an honest \"not derivable\", never\n  zero (a buys-only DCA run has no closed round trips, so `hit_rate` and\n  `profit_factor` read `null` by design, not by breakage).\n- `verdict.pass` and `verdict.checks[]`: one check per frozen criterion with\n  `threshold`, `observed`, `pass`. An unknown observation fails its check.\n- `caveats[]`: read them; a verdict with caveats is reported *with* them.\n\nDigest for the loop log:\n\n```bash\nkraken lab score --session latest --experiment momentum-1 -o json 2>\u002Fdev\u002Fnull \\\n  | jq '{session, experiment, pass: .verdict.pass,\n         checks: [.verdict.checks[] | {criterion, threshold, observed, pass}],\n         caveats}'\n```\n\nThe retry cues are in the error envelopes themselves: \"still recording — stop\nit with 'kraken session stop' first\" means go back to Step 3; \"was aborted\nbefore it stopped … only a stopped session can be scored\" means that session\nis dead evidence — start a fresh one; \"experiment '…' not found; run 'kraken\nlab new …' first\" means Step 1 never happened in this scope.\n\n## Step 5: Conclude — or run again\n\nThe verdict is mechanical; the conclusion is yours to *report, not adjust*:\n\n- **pass**: state the hypothesis, the checks that carried it, and every\n  caveat. One passing run is evidence, not proof — follow the plan to its\n  end before promoting anything.\n- **fail**: name the failing checks (`threshold` vs `observed`) and what the\n  waterfall says the money actually went to (fees? drawdown? never traded?).\n  A failed experiment is a completed experiment.\n\n**Promotion:** when `lab next` says `plan_complete`, assemble the promotion\nevidence block from `kraken lab compare` and hand off to the\n`kraken-paper-to-live` skill. Its gate is mechanical: at least 2 passing\nruns with a passing **live** run among them — replay verdicts count only\nwith their lookahead caveat attached. Two replay passes never promote.\n\nMore runs: repeat Steps 2–4 (each start allocates the next ordinal), then\nread every session side by side:\n\n```bash\nkraken lab compare momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\nOne verdict column per session (`sessions[].verdict`), plus `pass_count`\u002F`total`\nand a named error column for any run that cannot be scored (a still-running\nrun says so — stop it first). Only the verdicts compare across runs: they\ncover different market windows, so the metric rows are per-session context.\nNever average scorecards across runs into a blended number the CLI did not\nproduce — `compare` deliberately never aggregates.\n\n## Cold-context verdict reproduction\n\nAny context — including one that never saw the sessions — reproduces a verdict\nfrom disk alone:\n\n```bash\nkraken lab show momentum-1 -o json 2>\u002Fdev\u002Fnull          # the sealed criteria\nkraken lab score --session s1 --experiment momentum-1 -o json 2>\u002Fdev\u002Fnull\n```\n\nSame files, same exact-Decimal math, same verdict, byte for byte. If the two\ndisagree with a previously reported verdict, something on disk changed —\n`lab show` tells you whether it was the spec.\n\n## Running under \u002Floop\n\nInvoke as `\u002Floop` with this skill and the experiment name. Each firing:\n\n1. `kraken lab show \u003Cexp>` — missing → freeze (Step 1, with `--session`\n   entries) and return.\n2. `kraken lab next \u003Cexp> -o json` and act on its `state`. If it refuses\n   with a no-run-plan `validation` error (an experiment frozen before run\n   plans existed), drive the manual state table above instead.\n   `start` → run its `command`; `running` → drive\u002Fwait, then stop + score\n   (Steps 3–4) and log the digest; `plan_complete` → `kraken lab compare`,\n   conclude (Step 5), and stop the loop with the per-session verdicts (and the\n   promotion evidence block, if concluding toward promotion) as the final\n   report.\n\nIdempotent by construction: a firing that finds nothing to advance does\nnothing. A killed loop resumes at the same step.\n\nIf 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":46,"metadata":47,"description":7},"2.0.0",{"openclaw":48,"requires":49},{"domain":25,"category":21},{"bins":50,"skills":52},[23,51],"jq",[53],"kraken-playground","main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fexchanges\u002Fkraken-official-kraken-lab-experiment",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-13 02:31:19",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill kraken-lab-experiment",{"tool":69,"command":70},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill kraken-lab-experiment",{"tool":72,"command":73},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill kraken-lab-experiment","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-kraken-lab-experiment\u002FSKILL.md",true,[77,81,87],{"path":78,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":16},"LICENSE","许可证",1074,{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"SOURCE.md","REFERENCE","参考文档",346,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-kraken-lab-experiment\u002FSOURCE.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"TRUST.auto.yaml",2197,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fkraken-official-kraken-lab-experiment\u002FTRUST.auto.yaml",[92,120,142,160,173,183],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":96,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":41},"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",[],[100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":124,"licenseFileUrl":125,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":41},"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",[],[129,130,131,132,133,134,135,136,137,138,24,139,140,141],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","api keys","maintenance","protobuf",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":124,"licenseFileUrl":146,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":41},"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",[],[150,130,151,152,153,154,155,139,24,138,156,157,158,134,159,133,132],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":124,"licenseFileUrl":164,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":41},"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",[],[168,169,131,170,171,140,24,172,137,136,134,133],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":174,"name":175,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":176,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":41},"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",[],[180,181,182],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":187,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":41},"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",[],[191,192,193,194,195,196,197,198,199,200,201],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","use","patch","code","share"]