CtrlK
BlogDocsLog inGet started
Tessl Logo

context-recovery

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

Quality

60%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/context-recovery/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

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."'

DimensionReasoningScore

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.

DimensionReasoningScore

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.

Validation8 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

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

Repository
jdrhyne/agent-skills
Reviewed

Table of Contents

Is this your skill?

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.