CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

portaljs-add-dcat

Make a PortalJS portal harvestable by national/EU/US open-data portals — emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML at build, with autodiscovery and per-profile conformance checking. Use when a portal needs to be harvested by data.europa.eu, data.gov, or a national open-data catalog.

Quality

95%

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

SKILL.md
Quality
Evals
Security

Quality

Content

92%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 lean, well-organized body with a clearly sequenced workflow, explicit validation checkpoints (conformance, RDF cross-check, build verification), error-recovery guidance, and proper one-level-deep reference splitting. The main weakness is that the fullest executable detail lives in an externally hosted canonical command file rather than in the bundle, leaving minor gaps and making the skill partially dependent on network access.

Suggestions

Vendor the canonical workflow into the bundle (e.g. copy .claude/commands/portaljs-add-dcat.md to references/workflow.md) so execution does not depend on fetching an external GitHub URL.

Add a copy-paste JSX snippet for the pages/_document.tsx autodiscovery line (<link rel="alternate" type="application/ld+json" href="/catalog.jsonld" />) instead of describing it in prose.

Include a minimal dcat.config.json example showing the exact shape of profiles, publisher, contact, license, themes, and access level so the config can be written without consulting the external command file.

DimensionReasoningScore

Conciseness

Every section is functional and project-specific — the metadata contract ('lib/metadata/dcat.ts', 'dcat-profiles.ts'), a terse symptom/cause/fix error table, and compact per-config examples — with no explanation of concepts Claude already knows. Only mild duplication exists (the canonical workflow link appears in both Instructions and Resources; profile ids appear in the error table as well as in reference.md), which is not enough to drop below the 'lean and efficient' anchor.

5 / 5

Actionability

Provides concrete commands ('npm run generate:dcat', 'npx next build'), exact file paths ('pages/_document.tsx', 'dcat.config.json'), and exact invocations in all four Examples, but full executable detail is delegated to the externally hosted '.claude/commands/portaljs-add-dcat.md' described as 'the single source of truth. Read and follow it when executing' — a minor gap if that GitHub URL is unavailable. Not 3 because the summary steps plus references/reference.md are themselves largely executable; not 5 because the skill is not fully self-contained and lacks a copy-paste config or autodiscovery snippet.

4 / 5

Workflow Clarity

Ten clearly sequenced steps with explicit validation checkpoints — step 7 'Generate the feeds and check conformance … surface any missing mandatory fields', step 8 'confirm the JSON-LD parses, and cross-check that JSON-LD, Turtle, and RDF/XML agree; run SHACL validation', step 9 'Verify the build with npx next build; fix errors before reporting success' — plus an Error Handling table that supplies the fix-and-regenerate recovery loops. Matches the anchor for clear sequence, explicit validation, and error-recovery feedback loops.

5 / 5

Progressive Disclosure

The body is an overview that splits detail one level deep into the real, verified bundle file references/reference.md ('Profile registry, serialization formats, and validator details'), clearly signaled with a descriptive label in Resources; the profile registry table, serializer rules, and per-profile validator instructions all live in that file rather than inlined. No nested references and easy navigation across well-labeled sections.

5 / 5

Total

19

/

20

Passed

Description

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

An exemplary description: a concrete multi-action 'what', an explicit 'Use when' trigger naming the exact harvesting portals, and a tightly scoped niche that avoids conflict with neighboring skills. It is dense but every phrase carries information rather than padding, and it stays in third-person voice.

DimensionReasoningScore

Specificity

Lists multiple concrete actions with comprehensive coverage: 'emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML at build, with autodiscovery and per-profile conformance checking'. Not 4 because the actions span the skill's entire scope (profiles, three serializations, autodiscovery, conformance) with no coverage gaps.

5 / 5

Completeness

Explicitly answers both questions: what ('Make a PortalJS portal harvestable … emit standards-compliant DCAT catalog feeds … with autodiscovery and per-profile conformance checking') and when ('Use when a portal needs to be harvested by data.europa.eu, data.gov, or a national open-data catalog') with concrete trigger phrases. Third-person/imperative voice throughout; no first- or second-person phrasing.

5 / 5

Trigger Term Quality

Natural terms a user would actually say are all present: 'harvested', 'data.europa.eu', 'data.gov', 'national open-data catalog', 'DCAT', 'open-data portals'. Not 4 because for this niche no meaningful synonyms or variations are missing — the trigger names the exact harvesters and the exact standard.

5 / 5

Distinctiveness Conflict Risk

Scoped to 'a PortalJS portal' and to specific named harvesters (data.europa.eu, data.gov, national open-data catalogs) plus DCAT profiles — a clear niche with distinct triggers and minimal conflict risk against generic portal or RDF skills.

5 / 5

Total

20

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

13

/

16

Passed

Repository

datopian/portaljs

Path

skills/portaljs-add-dcat/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.