CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

56

Quality

64%

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

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-structured, highly actionable protocol with a genuinely enforced safety gate and executable handlers for common file types. The main costs are repetition of the safety contract, meta-sections written for a conformance test rather than the model, and zero use of reference files for the long templates and handler details.

Suggestions

State the safety gate once (in its dedicated section) and have Phase 1 and the Anti-Patterns reference it in a single line instead of restating the full rationale each time.

Move the manifest template and the file-type handler details (mbox/docx/pst snippets) into references/ files (e.g. references/manifest-template.md, references/file-handlers.md), keeping a one-line pointer in SKILL.md.

Cut or merge the 'Contract' and 'Output Format' trailing sections, which self-describe as existing 'for the conformance test' — their guarantees are already documented in the body sections they point to.

DimensionReasoningScore

Conciseness

The body is mostly dense and useful (gold-filter table, lean code handlers, templates), but the safety gate is restated four times (description framing, 'Safety gate (REQUIRED, no exceptions)', Phase 1 step 1, and the Anti-Patterns entry), and the Contract/Output Format sections openly exist 'for the conformance test' rather than for the model. Not 2 because there is no conceptual over-explanation of things Claude already knows.

3 / 5

Actionability

Provides executable guidance: a working mailbox.mbox Python snippet, a docx zip/XML extraction one-liner, PST magic-byte validation ('print('Valid PST' if f.read(4) == b'!BDN' ...')', exact refusal text, YAML config, and full brain-page/manifest templates. Not 5 because Dropbox, B2, and Gmail sources are declared supported types with no concrete access guidance, unlike the local file types.

4 / 5

Workflow Clarity

Three phases are clearly sequenced with real checkpoints: 'Confirm scan_paths is set (safety gate). Exit if not', 'Never re-show — check the manifest before presenting anything', and 'Validate first; many PSTs are null bytes', so the batch-operation cap does not apply. Not 5 because there is no post-ingest verification of created brain pages and no error-recovery loop (e.g. what to do on unreadable files mid-crawl).

4 / 5

Progressive Disclosure

A single monolithic ~300-line file with no references/ or scripts/ bundle; the file-type handlers and the ~45-line manifest template are inlined where separate reference files would fit. Sections are well-organized and external convention links (../conventions/quality.md, ../_brain-filing-rules.md) are clearly signaled at the top, which keeps it above 2, but content that should be separate is inline, matching anchor 3.

3 / 5

Total

14

/

20

Passed

Description

66%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, distinctive description with concrete actions and a strong safety signal, weakened by the absence of any 'Use when...' trigger guidance, which caps completeness. Natural trigger phrasing exists in the separate triggers field but not in the description itself.

Suggestions

Append a 'Use when...' clause to the description, e.g. 'Use when the user asks to crawl, mine, or find gold in an old archive (Dropbox, B2, Gmail takeout, local mount, hard-drive dump)'.

Fold 1-2 natural trigger phrases into the description (e.g. 'old files', 'backups', 'mine my archive') so routing works from the description alone, not just the triggers field.

Mention the ingest/manifest outcome (creates brain pages under originals/, personal/, ideas/) so the description covers what the skill actually produces.

DimensionReasoningScore

Specificity

Names the domain ('personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump)') and several concrete actions ('Filters for high-value content', 'surfaces it interactively', 'REFUSES TO RUN without an explicit gbrain.yml archive-crawler.scan_paths: allow-list'). Not 5 because it omits other key behaviors (manifest tracking, ingesting brain pages); well above 3, which expects only 1-2 concrete actions.

4 / 5

Completeness

The 'what' is clearly stated (filter and surface high-value content from personal archives), but there is no 'Use when...' clause or equivalent explicit trigger guidance inside the description, which caps completeness at 3 per the rubric guideline. Not 4 because the only conditional framing ('REFUSES TO RUN without...') is a safety constraint, not usage guidance.

3 / 5

Trigger Term Quality

Includes natural terms users would say such as 'personal file archives', 'Dropbox', 'Gmail-takeout', and 'the user's own writing, ideas, relationships'. Not 5 because common variations and extensions ('old files', 'backups', '.mbox', 'mine my archive') are absent from the description itself.

4 / 5

Distinctiveness Conflict Risk

The niche is clear and distinctive (interactive gold-mining of personal archives gated by a mandatory scan_paths allow-list), but trigger territory overlaps with closely related ingest skills (voice-note-ingest, idea-ingest) and generic file-search requests. Not 5 due to this minor overlap risk; clearly above 3's 'could still overlap with similar skills'.

4 / 5

Total

15

/

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: 2 suspicious

Warning

Total

14

/

16

Passed

Repository
garrytan/gbrain
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.