CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

data-engineering

Method for scraping, transforming, validating and loading data through NDJSON. Use when building a scraper or ETL step, validating an NDJSON feed, or importing data into a CMS or database.

68

Quality

86%

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

SKILL.md
Quality
Evals
Security

Quality

Content

85%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 an exemplary lean, imperative pipeline guide with real validation checkpoints and recovery loops — workflow clarity and conciseness are top-tier. Its one substantive defect is structural: the referenced ./REFERENCE.md file is missing from the bundle, breaking progressive disclosure and undercutting the promised starter scraper and validator.

Suggestions

Add the missing ./REFERENCE.md file (or remove the link from the body): the body promises a 'Starter scraper and validator' there, but no such file exists in the bundle, so any reader following the link hits a dead end.

If REFERENCE.md is intentionally project-specific, either inline the minimal starter guidance in SKILL.md or point to a path that is guaranteed to exist relative to the skill, and verify that '.opencastle/stack/data-pipeline-config.md' is a project file rather than a bundle file.

Include at least one runnable example command (e.g., a one-liner to validate NDJSON lines such as parsing each line as JSON against required fields) so the Validate step is executable even before the project config is located.

DimensionReasoningScore

Conciseness

The ~25-line body is lean and assumes Claude's competence — it never explains what NDJSON, Playwright, or headless browsers are, and every sentence carries project-specific instruction ("One record per line, valid JSON", "keep text in its original encoding"). Every token earns its place.

5 / 5

Actionability

Concrete, executable guidance throughout: named tools ("Playwright, or Puppeteer Cluster for volume"), hard thresholds ("a sample of 50–200 records", "counts within ±5%"), and specific practices ("idempotent upserts keyed on the source ID"). It stops short of the fully copy-paste-ready 5 anchor because no commands or code are inlined — they are deferred to a project config file and a referenced starter file.

4 / 5

Workflow Clarity

The five-step Pipeline is clearly sequenced with explicit validation gates and feedback loops for a batch, semi-destructive operation: sample check with "fix the extractor selectors and re-run", "0 parse errors, all required fields", dry-run tolerances with "reset staging and adjust the dedupe key", snapshot before write, and "restore the snapshot on failure". This matches the 5 anchor (validation steps, error-recovery loops) precisely.

5 / 5

Progressive Disclosure

Sections are short and well organized and the reference is clearly signaled one level deep, but the body's single bundle reference — "Starter scraper and validator: [REFERENCE.md](./REFERENCE.md)" — points to a file that does not exist in the bundle (no references/ directory, no REFERENCE.md anywhere). The disclosure chain is broken, so navigation fails and the promised starter content is undeliverable; better than the unorganized/buried-reference 2 anchor, but not the working navigation of 4.

3 / 5

Total

17

/

20

Passed

Description

83%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 strong description: third-person, concise, and it explicitly pairs a concrete capability statement with a well-varied 'Use when' trigger clause. The main slack is mild — a few missing natural synonyms and slightly generic middle verbs.

DimensionReasoningScore

Specificity

"scraping, transforming, validating and loading data through NDJSON" lists four concrete actions covering the full pipeline lifecycle, matching the several-specific-actions level. It falls short of the 5 anchor because "transforming" and "validating" are generic verbs without named objects, unlike the 5 example's "extract text and tables", "fill forms".

4 / 5

Completeness

The what is explicit ("Method for scraping, transforming, validating and loading data through NDJSON") and the when is explicit with concrete trigger phrases ("Use when building a scraper or ETL step, validating an NDJSON feed, or importing data into a CMS or database"), exactly matching the 5 anchor pattern.

5 / 5

Trigger Term Quality

"building a scraper or ETL step, validating an NDJSON feed, or importing data into a CMS or database" offers good natural-keyword coverage with synonyms (scraper/ETL, CMS/database, feed). Not a 5 because common variations like "web scraping", "crawler", "data pipeline", and the ".ndjson" extension are missing.

4 / 5

Distinctiveness Conflict Risk

The NDJSON focus carves a clear niche with distinct triggers, but "importing data into a CMS or database" is broad enough to overlap with generic data-import skills, so it sits at "mostly distinct; minor overlap risk" rather than the minimal-conflict 5 anchor.

4 / 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

relative_links

Relative link issues: 1 missing

Warning

Total

15

/

16

Passed

Repository

monkilabs/opencastle

Path

src/orchestrator/skills/data-engineering/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.