CtrlK
BlogDocsLog inGet started
Tessl Logo

doc-reader

Read any common document/data file — PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), images (OCR), CSV/TSV, plain text, JSON/YAML/TOML, HTML/XML, and most source-code files. Use the `read_document` tool.

64

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./agent/src/skills/doc-reader/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a strong, self-contained tool reference: dense tables, executable call examples covering all formats, a documented return envelope, and clear simple workflows. Weaknesses are minor — a bit of editorializing in the OCR section and validation checkpoints that are mostly implicit rather than explicit.

DimensionReasoningScore

Conciseness

The body is dense and table-driven (format table, envelope keys table, OCR engine table) with no explanation of concepts Claude already knows. Minor trimmable prose exists, e.g. "your model choice is trusted; a real API error from the provider is clearer feedback than a heuristic guess" and "no extra packages needed beyond the engine SDK". It is above the 3 anchor (mostly efficient, only minor over-explanation) but not the lean 5 anchor where every token earns its place.

4 / 5

Actionability

Copy-paste-ready invocations cover the common cases: read_document(file_path="uploads/paper.pdf"), pages="1-10" for PDF slicing, min_text_per_page=10 for OCR tuning, and concrete env-var settings (VIBE_TRADING_OCR_ENGINE, VIBE_TRADING_OCR_LLM_MODEL). The return-envelope JSON shows exactly what output to expect, matching the fully-executable 5 anchor.

5 / 5

Workflow Clarity

Four two-step workflows are clearly sequenced (read → analyze/flag/summarize) and include one explicit checkpoint ("If OCR returns empty, tell the user; don't fabricate"). Validation is otherwise implicit in the single-action design, so it fits 'clear sequence with most checkpoints; minor validation gaps' rather than the explicit-validate/feedback-loop 5 anchor; the batch/destructive cap does not apply since reading is non-destructive.

4 / 5

Progressive Disclosure

Well-organized sections (Supported formats, Usage, Return envelope, Workflows, OCR Configuration, Notes) with no bundle files and no nested references; the one external pointer (trade-journal skill) is clearly signaled. The ~40-line OCR Configuration block is a minor candidate for a separate reference file, which keeps it at 'good structure; minor organization gaps' rather than 5.

4 / 5

Total

17

/

20

Passed

Description

70%Weight 40%Scale 1-5

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 is specific and rich in natural trigger terms with file extensions, but it completely lacks a 'when to use' clause, which caps completeness and weakens discoverability. Its deliberate catch-all scope over all file types also creates meaningful overlap risk with narrower per-format skills.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks to read, extract, or view the contents of a document or data file, or when a PDF/Word/Excel/PowerPoint/image/config file needs its text extracted."

Add .pdf, .csv, and .html to the extension list so every named format carries its trigger extension, strengthening match on file-mention queries.

Narrow or qualify the scope (e.g. "single unified reader for uploaded documents") so it is less likely to fire in place of specialized PDF or Excel skills.

DimensionReasoningScore

Specificity

"Read any common document/data file — PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), images (OCR), CSV/TSV..." enumerates concrete formats with extensions around a single concrete action (read/extract). It lists several specific capabilities with minor gaps, but unlike the 5 anchor it does not name multiple distinct actions (e.g. extract, fill, merge).

4 / 5

Completeness

The 'what' is clear (read any common document/data file, with formats enumerated), but there is no "Use when..." clause or equivalent trigger guidance — "Use the `read_document` tool" is instruction, not a 'when'. Per the rubric guideline, a missing explicit trigger clause caps completeness at 3; it cannot be 4 because no 'when' guidance exists at all.

3 / 5

Trigger Term Quality

Natural user terms ("PDF", "Word", "Excel", "PowerPoint", "images", "plain text", "source-code files") are paired with file extensions (.docx, .xlsx/.xls, .pptx), matching the anchor for comprehensive coverage of natural terms including synonyms and extensions. It is not the 4 anchor because common variations users say are already present.

5 / 5

Distinctiveness Conflict Risk

"Read any common document/data file ... and most source-code files" is catch-all breadth that overlaps virtually any specialized file skill (PDF skills, Excel skills, code readers), though the explicit format enumeration and named tool keep it above the 'high overlap / generic' 2 anchor. It is not 4 because a universal reader would compete with many narrower per-format skills.

3 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
HKUDS/Vibe-Trading
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.