CtrlK
BlogDocsLog inGet started
Tessl Logo

portaljs-connect-ckan

Wire a scaffolded PortalJS portal to a CKAN backend over its API. Generates a tiny server-side fetch client (no runtime dependency) and feeds the /search catalog and /@namespace/slug showcases from CKAN instead of datasets.json. Use when connecting an existing portal to a live CKAN instance instead of a static manifest.

66

Quality

80%

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

75%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 a well-organized overview with concrete file targets, a clear multi-step workflow with validation, and a verified one-level reference. It leans on an external command document for full executable code, which slightly limits copy-paste actionability.

Suggestions

Inline a minimal executable snippet of lib/ckan.ts (the ckanAction helper signature) so the skill is actionable without fetching the external command doc.

Tighten the Overview paragraph by trimming the React-19/bundle rationale to one clause, keeping only what affects the action.

Add an explicit 'validate -> fix -> re-run' loop label to step 7 to match the build-failure row in the error-handling table.

DimensionReasoningScore

Conciseness

Mostly efficient overview with no padding of concepts Claude already knows; a few sentences (e.g. the rationale on no runtime dependency and React 19 crash) could be trimmed without losing actionability.

4 / 5

Actionability

Provides concrete, named file targets (lib/ckan.ts, pages/search.tsx, pages/[owner]/[slug].tsx) and specific endpoints/commands (package_search?rows=1, npx next build) with minor gaps since full code lives in the external command doc.

4 / 5

Workflow Clarity

An 8-step sequence with explicit validation checkpoints (step 3 verify reachability, step 7 verify build and 'fix any error before reporting success') and an error-handling table; the destructive overwrite in step 6 and batch page generation have validation but checkpoints are slightly less granular than a 5.

4 / 5

Progressive Disclosure

Well-structured SKILL.md with clear sections and a real one-level-deep reference (references/reference.md, verified to exist) plus a single-source-of-truth external command doc; minor gap is that detailed implementation is delegated to an external repo URL rather than a bundled file.

4 / 5

Total

16

/

20

Passed

Description

86%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 strong: it states both what the skill does and when to use it with concrete, domain-specific triggers, and is clearly distinguishable from sibling skills. Minor room to improve keyword synonym coverage.

DimensionReasoningScore

Specificity

Lists several concrete actions (generates a fetch client, feeds /search catalog and /@namespace/slug showcases from CKAN, reads package_search/package_show) with minor gaps in coverage relative to the full workflow.

4 / 5

Completeness

Explicitly states what it does ('Wire a scaffolded PortalJS portal to a CKAN backend over its API') and when to use it ('Use when connecting an existing portal to a live CKAN instance instead of a static manifest') with concrete trigger phrasing.

5 / 5

Trigger Term Quality

Includes natural trigger language ('connecting an existing portal to a live CKAN instance', 'instead of a static manifest', 'CKAN backend') though it lacks synonym/extension variants like 'data.gov-style' or specific file terms.

4 / 5

Distinctiveness Conflict Risk

A clearly distinct niche (CKAN backend integration for PortalJS portals) with specific triggers unlikely to collide with sibling portaljs skills like new-portal or add-dataset.

5 / 5

Total

18

/

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.

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

Total

14

/

16

Passed

Repository
datopian/portaljs
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.