CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

archive-crawler

Universal archivist for personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump). Filters for high-value content (the user's own writing, ideas, relationships) and surfaces it interactively. REFUSES TO RUN without an explicit gbrain.yml `archive-crawler.scan_paths:` allow-list.

Quality

75%

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 ./skills/archive-crawler/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

81%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.

A strong, safety-first skill body: fully executable handler code, explicit phase sequencing with validation gates and error-recovery loops, and complete output templates. The only notable gaps are the absent concrete guidance for Dropbox/B2 sources and some conformance-test boilerplate that inflates token cost.

DimensionReasoningScore

Conciseness

The body is dense and earns its tokens: numbered protocol phases, a gold-filter table, and executable handler code with no explanations of concepts Claude already knows. Not 5 because of minor trimmable content: the "Contract" and "Output Format" sections exist purely "for the conformance test", the safety-gate refusal is repeated across three sections, and an inline version reference ("the db_tracked / db_only allow-list pattern from v0.22.11 storage tiering") is time-sensitive information not placed in a deprecated/old-patterns section.

4 / 5

Actionability

Provides copy-paste-ready code for the common cases — the Python `mailbox.mbox` walker, the zip/XML `.docx` extraction one-liner, `antiword`/`catdoc` for legacy `.doc`, PST magic-byte validation plus `readpst` — and complete brain-page and manifest templates, with specific error-recovery commands ("poll `gbrain write-request <request_id>`", re-read and merge on `revision_conflict`). Not 5 because two of the five advertised source types, Dropbox and Backblaze B2, get no concrete connection or listing commands at all.

4 / 5

Workflow Clarity

Three phases (Inventory → Crawl → Ingest) are explicitly sequenced with validation checkpoints throughout: the scan_paths safety gate as mandatory step 1 of Phase 1 with exit-on-failure, PST validation before parsing, manifest status updates after every interaction, a "Never re-show" manifest check, and explicit error-recovery feedback loops in "When it fails" (poll write-requests, re-read and merge on revision_conflict, never re-file). The Anti-Patterns section adds a checklist, matching the top anchor for a batch/mutating operation.

5 / 5

Progressive Disclosure

The body is well-sectioned with clear headers, and external references ([conventions/quality.md](../conventions/quality.md), [_brain-filing-rules.md](../_brain-filing-rules.md), [agent-operator-protocol.md](../conventions/agent-operator-protocol.md)) are prominently signaled at the top and one level deep — no nested reference chains. Not 5 because this ~330-line body has no bundle files at all: the 44-line manifest template and the file-type handler details are inlined where dedicated reference files (e.g., references/manifest-template.md, references/handlers.md) would keep SKILL.md a leaner overview.

4 / 5

Total

17

/

20

Passed

Description

61%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.

A specific, well-scoped description with a strong differentiator (the mandatory scan_paths allow-list and refusal behavior), but it omits any 'Use when...' trigger guidance in the description itself and names only two concrete actions. Natural keyword coverage is good though not comprehensive.

Suggestions

Add an explicit 'Use when...' clause to the description, e.g. "Use when the user asks to crawl, mine, or find gold in a personal archive (Dropbox folder, Gmail takeout, old hard-drive dump, mounted backup)."

Name more of the skill's concrete actions (map/inventory the tree, triage items into keep/skip, ingest selected items as brain pages, track progress in a manifest) to raise capability coverage from two actions to several.

Include natural synonyms and file extensions users would say — ".mbox", ".pst", "email backup", "old files" — alongside the existing "Dropbox" / "Gmail-takeout" terms.

DimensionReasoningScore

Specificity

The description names the domain comprehensively ("Universal archivist for personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump)") with two concrete actions — "Filters for high-value content (the user's own writing, ideas, relationships) and surfaces it interactively" plus the refusal behavior "REFUSES TO RUN without an explicit gbrain.yml archive-crawler.scan_paths: allow-list". This matches the anchor 'names domain and 1-2 concrete actions, but not comprehensive' rather than 4, which requires several distinct specific actions (e.g., inventory, triage, ingest-to-page, manifest tracking are only implied, not stated).

3 / 5

Completeness

The 'what' is clear and specific ("Filters for high-value content... and surfaces it interactively", with the mandatory scan_paths allow-list), but the description contains no 'Use when...' clause or equivalent explicit trigger guidance — that guidance lives in a separate frontmatter `triggers` field, not the description. Per the rubric guideline, a missing 'Use when...' clause caps completeness at 3; it is above 2 because the 'what' is concrete, not vague.

3 / 5

Trigger Term Quality

Contains natural terms a user would say: "personal file archives", "Dropbox", "Gmail-takeout", "hard-drive-dump", and "scan" — good coverage comparable to the anchor example 'PDF files, forms, document extraction'. Not 5 because common variations users would actually say are missing from the description itself ("old files", "email backup", "mine", and file extensions like ".mbox" / ".pst").

4 / 5

Distinctiveness Conflict Risk

"Universal archivist for personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump)" plus the distinctive "REFUSES TO RUN without an explicit gbrain.yml archive-crawler.scan_paths: allow-list" carves a clear niche (crawling whole personal archives vs. ingesting a single item) with minimal conflict risk. Not 5 because "Universal" and the breadth of listed sources leave minor overlap risk with generic file-search and sibling ingest skills.

4 / 5

Total

14

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

relative_links

Relative link issues: 3 suspicious

Warning

Total

14

/

16

Passed

Repository

garrytan/gbrain

Path

skills/archive-crawler/SKILL.md

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.