CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

databricks-unstructured-pdf-generation

Build RAG / unstructured-document evaluation datasets and demo documents (e.g. for Knowledge Assistant) on Databricks: generate synthetic PDFs locally, upload to Unity Catalog volumes, and pair each document with test questions for retrieval evaluation.

63

Quality

79%

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 ./plugins/databricks/claude/skills/databricks-unstructured-pdf-generation/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

76%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 highly actionable, well-organized skill body with copy-paste commands and genuinely useful Databricks-specific gotchas. The main gap is the absence of validation checkpoints in a batch convert-and-upload workflow, plus minor duplication (CLI Reference vs. Bundled Script) and unreferenced bundled assets.

Suggestions

Add validation checkpoints after batch operations: after conversion, confirm each PDF exists (the script's result output) before upload; after upload, verify with 'databricks fs ls dbfs:/Volumes/<catalog>/<schema>/raw_data/pdf' and retry failed files rather than proceeding blindly.

Consolidate the CLI Reference and Bundled Script sections (they describe the same script's interface twice) and either reference or remove the unused assets/databricks.png and assets/databricks.svg.

Tighten the intro paragraph, which restates the frontmatter description, and trim the Bundled Script section to a single form (table entry or one-line pointer).

DimensionReasoningScore

Conciseness

The body is efficient and assumes competence: it documents non-obvious gotchas ('databricks fs requires the dbfs: scheme prefix even for UC Volume paths', '-r copies the contents of the source directory', timestamp-skip behavior, 'four separate positional args, not catalog.schema.volume') without explaining basics like what a PDF or a volume is. Minor trimming is possible — the intro paragraph restates the frontmatter description, and the Bundled Script section says the same thing in a table, a prose sentence, and a recreate-from-CLI-reference fallback — placing it at the 'efficient; minor instances of over-explanation' anchor rather than the lean level-5 anchor.

4 / 5

Actionability

Every step ships copy-paste-ready commands: 'uv pip install plutoprint', 'python <SKILL_ROOT>/scripts/pdf_generator.py convert --input ./raw_data/html --output ./raw_data/pdf', 'databricks fs cp -r --overwrite ./raw_data/pdf dbfs:/Volumes/my_catalog/my_schema/raw_data/pdf', a complete JSON example for eval questions, a full CLI options reference, and a troubleshooting table. Placeholders (my_catalog/my_schema) are self-evidently substitutable, matching the 'fully executable; copy-paste ready' anchor.

5 / 5

Workflow Clarity

The four-step sequence (write HTML → convert → upload → generate questions) is clearly ordered with per-step commands, but there are no validation/verification checkpoints: nothing confirms the conversion succeeded before upload, and no post-upload check (e.g. 'databricks fs ls dbfs:/Volumes/.../raw_data/pdf') verifies the batch upload landed correctly. Since this is a batch workflow with an '--overwrite' upload, the guideline capping workflow_clarity at 3 for missing validation applies; it is above level 2 because the sequence itself is complete and unambiguous.

3 / 5

Progressive Disclosure

Structure is good: the body is organized into well-labeled sections, and the single referenced bundle file (scripts/pdf_generator.py) is a real file correctly linked one level deep with its role described. Minor gaps keep it below 5: the CLI Reference and Bundled Script sections partially duplicate each other, and the bundled assets (databricks.png, databricks.svg) are never referenced or explained anywhere in the body.

4 / 5

Total

16

/

20

Passed

Description

75%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 concrete workflow actions and strong domain trigger terms in the Databricks/RAG-evaluation niche. Its main weakness is the absence of an explicit 'Use when...' clause, which leaves the triggering conditions only weakly implied and caps completeness.

Suggestions

Append an explicit trigger clause, e.g. 'Use when building RAG or retrieval evaluation datasets on Databricks, preparing demo documents for a Knowledge Assistant, or populating Unity Catalog volumes with synthetic PDFs for testing.'

Add a few natural keyword variations users might say — '.pdf', 'unstructured data', 'test questions', 'benchmark/golden dataset' — to broaden trigger coverage.

Optionally mention the HTML-authoring step (documents are authored as HTML then converted to PDF) so the 'what' covers the full generation pipeline.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions covering the full workflow — 'generate synthetic PDFs locally, upload to Unity Catalog volumes, and pair each document with test questions for retrieval evaluation' — which map comprehensively onto the skill's generate/upload/pair-question phases. It is not vague filler; every clause names a specific capability, matching the 'lists multiple specific concrete actions; comprehensive coverage' anchor rather than the level-4 anchor's 'minor gaps in coverage'.

5 / 5

Completeness

The 'what' is clear and concrete (build eval datasets and demo documents, generate PDFs, upload to UC volumes, pair with test questions), but there is no 'Use when...' clause or equivalent explicit trigger guidance — purpose phrases like 'for Demos and RAG / unstructured-document retrieval evaluation on Databricks' only weakly imply 'when'. Per the judging guidelines a missing 'Use when...' clause caps completeness at 3; it is not a 2 because the 'what' is fully articulated, and not a 4 because 'when' is never explicitly stated.

3 / 5

Trigger Term Quality

Natural domain terms are well covered: 'RAG', 'evaluation datasets', 'demo documents', 'Knowledge Assistant', 'Databricks', 'synthetic PDFs', 'Unity Catalog volumes', 'retrieval evaluation' — phrases a user needing this skill would plausibly say. A few natural variations are missing (e.g. '.pdf' file extension, 'unstructured data', 'test data', 'benchmark dataset'), so it fits the 'good keyword coverage; a few natural terms missing' anchor rather than the comprehensive level-5 example.

4 / 5

Distinctiveness Conflict Risk

The description occupies a clear niche — synthetic PDF eval datasets on Databricks Unity Catalog for Knowledge Assistant/RAG retrieval evaluation — with distinct trigger terms ('Databricks', 'Unity Catalog', 'Knowledge Assistant') that no generic skill would claim. Conflict risk with generic PDF-generation skills is minimal because the Databricks/UC-dataset framing dominates, matching the 'clear niche with distinct triggers; minimal conflict risk' anchor.

5 / 5

Total

17

/

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

databricks/databricks-agent-skills

Path

plugins/databricks/claude/skills/databricks-unstructured-pdf-generation/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.