Automatically recover working context after session compaction or when continuation is implied but context is missing. Works across Discord, Slack, Telegram, Signal, and other supported channels.
65
60%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/context-recovery/SKILL.mdQuality
Discovery
57%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description identifies a clear and distinctive niche (context recovery after session compaction across messaging channels), which is its strongest aspect. However, it lacks specificity about what concrete actions the skill performs during recovery, uses some technical jargon that users might not naturally say, and would benefit from an explicit 'Use when...' clause to improve trigger clarity.
Suggestions
Add specific concrete actions the skill performs, e.g., 'Restores conversation history, reloads user preferences, and re-establishes channel state after session compaction.'
Add an explicit 'Use when...' clause with natural trigger terms like 'Use when context appears lost, the session was compacted, Claude seems to have forgotten prior conversation, or the user says things like "where were we" or "you lost context."'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (context recovery after session compaction) and lists supported channels, but doesn't describe concrete actions beyond 'recover working context' — no specifics about what recovery entails (e.g., restoring conversation history, reloading state, re-fetching messages). | 2 / 3 |
Completeness | The 'what' is partially addressed (recover working context) and the 'when' is implied (after session compaction or when continuation is implied but context is missing), but there is no explicit 'Use when...' clause with clear trigger guidance. The when conditions are embedded rather than explicitly called out. | 2 / 3 |
Trigger Term Quality | Includes some relevant terms like 'session compaction', 'context is missing', 'continuation', and channel names (Discord, Slack, Telegram, Signal), but 'session compaction' is fairly technical jargon and common user phrases like 'lost context', 'forgot what we were talking about', or 'start over' are missing. | 2 / 3 |
Distinctiveness Conflict Risk | This is a fairly unique niche — context recovery after session compaction across messaging platforms. It's unlikely to conflict with other skills since the combination of session compaction recovery and multi-channel messaging support is quite distinctive. | 3 / 3 |
Total | 9 / 12 Passed |
Implementation
62%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured skill with a clear 7-step recovery workflow, good trigger definitions, and appropriate safety boundaries. Its main weaknesses are moderate verbosity (channel-specific notes add little, templates are lengthy) and mixed actionability where some commands are concrete but others are pseudocode or template placeholders. The privacy guardrails at the end partially contradict earlier steps (Step 6 says to cache to memory, guardrails say don't persist without approval), creating ambiguity.
Suggestions
Make the message:read invocations consistent and executable — define the actual tool call format once, then reference it, rather than mixing pseudo-syntax with bash commands.
Resolve the contradiction between Step 6 (auto-cache to memory) and the Privacy Guardrails section (require explicit approval before persisting) — pick one approach or clearly delineate when each applies.
Move the channel-specific notes and the full synthesized output template into a referenced sub-document to reduce the main skill's token footprint.
Replace the Python pseudocode trigger detection block with a concrete description or remove it — it restates the trigger list above without adding executable value.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is fairly long (~200+ lines) and includes some unnecessary explanation (e.g., channel-specific notes that largely repeat 'same interface'), pseudocode for trigger detection that adds little value, and verbose markdown template sections. However, most content is instructional rather than explanatory, and the domain is genuinely complex enough to warrant significant detail. | 2 / 3 |
Actionability | The skill provides concrete bash commands and message:read invocations, but several are pseudocode or template-style (e.g., `message:read channel: <detected-channel>` is not a real executable format, the jq commands assume a specific JSONL schema without confirming it, and the Python pseudocode is explicitly labeled as such). The adaptive expansion logic describes intent but isn't fully executable. | 2 / 3 |
Workflow Clarity | The 7-step workflow is clearly sequenced with explicit ordering, adaptive depth logic with defined thresholds and hard caps, and a clear feedback mechanism (expand if time span < 2 hours, hard cap at 100). The confidence level reporting in Step 5 and the constraint that recovery must be attempted before asking clarifying questions serve as validation checkpoints. The safety boundaries section adds appropriate guardrails. | 3 / 3 |
Progressive Disclosure | The content is entirely self-contained in one file with no references to external documents, which is reasonable for a skill of this complexity. However, the channel-specific notes, privacy guardrails, and the lengthy synthesized output template could be split into referenced sub-documents. The document is somewhat monolithic at its current length, though sections are well-labeled with clear headers. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
72%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 8 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_version | 'metadata.version' is missing | Warning |
metadata_field | 'metadata' should map string keys to string values | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 8 / 11 Passed | |
6768672
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.