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

65%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugin/skills/archive-crawler/SKILL.md

The canonical home for this skill is archive-crawler in garrytan/gbrain

SKILL.md
Quality
Evals
Security

Quality

Content

63%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 well-engineered operational protocol: phased workflow, executable file-type handlers, explicit safety gating, and honest failure handling. The main costs are repetition of the safety gate and test-facing boilerplate sections, plus a monolithic single-file layout whose long templates belong in reference files.

Suggestions

State the scan_paths safety gate once (its dedicated section) and reference it from Phase 1 and Anti-Patterns instead of restating it verbatim.

Move the manifest template and brain-page format into references/ files (e.g. references/manifest-template.md) and link to them, keeping SKILL.md as an overview.

Delete or merge the 'Contract' and 'Output Format' conformance-test stubs — content written for a test harness, not for the executing agent, spends tokens without instructing.

DimensionReasoningScore

Conciseness

The body is mostly efficient and assumes Claude's competence (no explanations of what mbox or PST formats are), but it is padded in places: the safety gate is restated four times (dedicated section, Phase 1 step 1, 'When it fails', 'Anti-Patterns'), and the 'Contract'/'Output Format' sections openly exist 'for the conformance test' rather than to instruct the agent — the 'could be tightened' anchor, not the 'minor instances' of 4.

3 / 5

Actionability

Concrete, executable guidance dominates: runnable Python for .mbox and .docx, a .pst magic-byte validation check, bash commands, an exact gbrain.yml config, and full page/manifest templates. It stays at 4 rather than 5 because the advertised 'dropbox' and 'backblaze' source types have no corresponding code or commands in the file-type handlers.

4 / 5

Workflow Clarity

The three phases give a clear numbered sequence with real checkpoints for a batch operation: the scan_paths gate runs first, 'Never re-show — check the manifest before presenting anything', PST validation before extraction, and error-recovery loops (poll 'gbrain write-request', merge on 'revision_conflict'). It falls short of 5 because recovery guidance lives in a separate 'When it fails' section rather than inline as validate→fix→retry steps within the crawl workflow.

4 / 5

Progressive Disclosure

Headers organize the 310-line body well and the external convention links (../conventions/quality.md, ../_brain-filing-rules.md) are one level deep, but there is no references/ bundle at all: the ~45-line manifest template and the brain-page format are inlined monolithically where they clearly belong in separate files — the 'content that should be separate is inline' anchor 3 rather than the 'minor organization gaps' of 4.

3 / 5

Total

14

/

20

Passed

Description

53%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 distinctive, with a well-defined niche and an unusual but useful safety precondition stated up front. Its main weakness is the missing 'Use when...' clause inside the description field itself (trigger guidance is relegated to other frontmatter fields) and limited coverage of the skill's actual capabilities (inventory, manifest, ingestion).

Suggestions

Append a 'Use when...' clause to the description itself, e.g. 'Use when the user asks to crawl, mine, or find gold in their personal archives (Dropbox, takeout, old drives)'.

Mention the core pipeline (map the archive, track a manifest, ingest keepers as brain pages) so the 'what' is comprehensive, not just filtering/surfacing.

Fold one or two natural trigger phrases ('crawl', 'mine my old files') into the description text rather than relying solely on the triggers list.

DimensionReasoningScore

Specificity

The description names the domain concretely ("personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump)") and lists two concrete actions ("Filters for high-value content... and surfaces it interactively"), but omits core capabilities like tree inventory, manifest tracking, and ingestion — matching the '1-2 concrete actions, not comprehensive' anchor rather than the 'several specific actions' of 4.

3 / 5

Completeness

The 'what' is clear (filters and surfaces high-value content from personal archives), but the description contains no 'Use when...' clause or equivalent trigger guidance — it lives in a separate when_to_use field — which caps completeness at 3 per the rubric guidelines. It is a solid 3 rather than 2 because the 'what' is explicit and specific.

3 / 5

Trigger Term Quality

It includes relevant keywords like "archive", "Dropbox", "B2", "Gmail-takeout", but the natural phrases a user would actually say ("crawl my archive", "mine my old files") appear only in the separate triggers/when_to_use fields, not in the description itself — the 'some relevant keywords but missing common variations' anchor.

3 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (personal-archive mining gated on a "gbrain.yml archive-crawler.scan_paths allow-list") unlikely to collide with generic file or document skills, though the somewhat generic verbs "filters" and "surfaces" leave minor overlap risk with note-taking/ingest skills — anchor 4 rather than 5.

4 / 5

Total

13

/

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

plugin/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.