← KeelCONTENT HISTORY
WHAT CHANGED
Update to Keel
Snapshot Oct 24, 2026 · 13:41 UTC · version 1.0.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Keel and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Triage repeated keel_* tool failures: capture the errors, read keel_account_status and keel_connection_check, classify by the error's code (auth, scope, quota, sync, validation rule, handoff), and propose one specific next step. Use when the user says \"this keeps failing\", \"what's wrong\", \"debug this\", or pastes an error. Not for a single failure — the originating tool's error already says what to do.\n",
"included_files": [],
"name": "recover-from-error",
"skill_md_contents": "---\nname: recover-from-error\ndescription: |\n Triage repeated keel_* tool failures: capture the errors, read keel_account_status and keel_connection_check, classify by the error's code (auth, scope, quota, sync, validation rule, handoff), and propose one specific next step. Use when the user says \"this keeps failing\", \"what's wrong\", \"debug this\", or pastes an error. Not for a single failure — the originating tool's error already says what to do.\nreferences:\n - step: 4\n topic: \"rule:<CODE>\"\n why: \"the lesson behind a validation issue code\"\n - step: 4\n topic: \"mistakes\"\n why: \"structural mistakes that validate but do not work (zero trades, wrong polarity)\"\n - step: 4\n topic: \"universe_selection\"\n why: \"Universe selectors and resolved semantics behind EMPTY_UNIVERSE / unknown-symbol errors\"\ntools:\n - keel_account_status\n - keel_connection_check\n - keel_help\n - keel_feedback\n---\n\n# References\n\nReference topics this workflow cites (keel_help topics):\n\n- Step 4 — `rule:<CODE>` — the lesson behind a validation issue code\n- Step 4 — `mistakes` — structural mistakes that validate but do not work (zero trades, wrong polarity)\n- Step 4 — `universe_selection` — Universe selectors and resolved semantics behind EMPTY_UNIVERSE / unknown-symbol errors\n\n# Method\n\n## Step 1 — Capture the last three errors\n\nFrom the tool history: tool names, the `code` (envelope code or validation\nissue code), the `message`, and the arguments. Fresh session and nothing\nvisible → ask the user to paste the most recent error verbatim.\n\n## Step 2 — `keel_account_status`\n\nAuth state and identity, API URL, the toolsets and tools visible right now,\nremaining plan quota, cross-surface hints. Most \"keeps failing\" sessions are\none of: not authenticated, a tool outside the active toolsets, the wrong\naccount context, or an exhausted quota — all visible here.\n\n## Step 3 — `keel_connection_check` when status looks clean\n\nOne read-only pass over auth, API reachability, and the active tool surface;\nit exits non-zero on any failed check. Quote what it names in prose, not raw\nJSON.\n\n## Step 4 — Classify by code and apply the documented fix\n\n- **Validation issue code** (`TYPE_MISMATCH`, `UNKNOWN_COMPONENT`,\n `SLOT_REF_NOT_FOUND`, `LOADER_TIMEFRAME_UNBOUND`, …) →\n `keel_help(topic=\"rule:<CODE>\")` for the lesson; the issue's `suggestion`\n and `location` say what and where. `UNKNOWN_COMPONENT` is a search-then-edit,\n never a delete.\n- **A strategy that validates but trades zero / the wrong way** → the\n `mistakes` reference (binary signals re-normalized, polarity, sizer before\n PSM).\n- **401 / 403, `authenticated: false`** → sign in again through whatever\n connected you: on the hosted endpoint, the client's own connect / reconnect.\n- **A plan-limit refusal** (`quota_exhausted`, `quota_cap_reached`,\n `plan_feature_unavailable`) → the refusal carries `limit_details` (the unit,\n and for a quota the used, limit and reset numbers) and `resume.verify_call`\n (the exact blocked call, every argument kept). Report the limit and the reset\n in words; a plan-limit refusal is not retried; it lifts at the reset.\n- **`handoff_required`** is not an error: it names a step the user completes\n in the Keel web app.\n- **`not_found` on a help topic / skill** → the error lists the closest names.\n\n## Step 5 — One specific next step\n\nNot a list of things to try. \"The error points at <X>. Try <one call>. If it\nstill fails, paste the new error.\" The same call with the same arguments is\nnot a next step; if the previous call failed with those, they are the problem.\n\n## Step 6 — Do not loop\n\nIf the same failure survives a second pass through this workflow in one\nsession, the loop is not converging: say so and stop retrying. When the user\nwants it reported, `keel_feedback` files the report from inside the session —\nshow them what it will carry first (the exact prompt or command, the error\nverbatim, and `keel_connection_check`'s output) and send it once they agree.\nCredential or private-account matters go to `https://usekeel.io/contact`, not\ninto a report.\n\n# Decision points\n\n- Quote the original error verbatim so the user knows you read it; the\n diagnosis names the field or output that led to it.\n- A tool you are unsure exists is tried, not declared missing.\n\n# Output shape\n\n1. One-sentence diagnosis (\"Your session is not authenticated — sign in\n again\").\n2. The evidence (which call's output, which field).\n3. The single recommended next call or action.\n4. Optional: the `rule:<CODE>` or mistake reference.\n\n# When NOT to use\n\n- A first failure with the user not yet stuck → the originating tool's error\n says what to do.\n- A \"how do I\" question → the relevant skill.\n- A strategy-logic problem (validates, runs, loses) → `backtest-and-analyze`\n or `overfit-check`; this skill diagnoses tool friction, not edges.\n\n# Test prompts\n\n1. \"This keeps failing — same error every time.\"\n2. \"I can't get past this 422 on strategy compose, here's the trace ...\"\n3. \"Why does every backtest call return 401?\"\n"
}SHA-256 of public snapshot: 9006afb93d89b7ce17214d42d5f4a218d635e41cd26e24c0ea730da32111d244