CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

graphify

any input (code, docs, papers, images) - knowledge graph - clustered communities - HTML + JSON + audit report

53

Quality

67%

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 ./plugins/sdlc/skills/graphify/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.

The skill body is exceptionally actionable - every step is executable copy-paste code with validation checkpoints and error recovery - but it is a 60KB monolith with no progressive disclosure. Subcommand manuals and repeated boilerplate belong in separate reference files, and the interpreter-resolution preamble is duplicated across nearly a dozen code blocks.

Suggestions

Move the subcommand manuals (query, path, explain, add, watch, git commit hook, CLAUDE.md integration) into separate reference files (e.g. references/query.md, references/add.md) and keep only a one-line pointer plus the common pipeline in SKILL.md, so 60KB is not loaded into context for every invocation.

Deduplicate the repeated 'load extraction/analysis -> build_from_json -> communities/labels' preamble that appears in Steps 4, 5, 6, 6b, 7, 7b, and 7c - factor it into one script (e.g. scripts/rebuild.py) invoked with arguments, or state the preamble once and reference it.

Fix the ordering confusion in the --update section (the 'cp graphify-out/graph.json graphify-out/.graphify_old.json' backup instruction appears after the code block that reads it) and reconcile the inconsistent Part/Step naming ('Step 3B' vs 'Part B2', inner 'Step 1/Step 2' inside Step 2.5).

DimensionReasoningScore

Conciseness

The body is ~1400 lines / 60KB with substantial padding: roughly ten code blocks repeat the same 'resolve interpreter -> load extraction/analysis -> rebuild graph' preamble nearly verbatim (Steps 4, 5, 6, 6b, 7, 7b, 7c all reload and rebuild the same objects), and the usage block lists 28 flag variants inline. It avoids explaining concepts Claude already knows (so not 1), but the duplicated boilerplate and inlined subcommand manuals are noticeably verbose per the anchor 2 example.

2 / 5

Actionability

Fully executable guidance throughout: copy-paste bash blocks with explicit placeholder-substitution instructions ('Replace INPUT_PATH with the actual path', 'Replace LABELS_DICT with the actual dict'), an exact verbatim subagent prompt with a complete JSON output schema, and concrete error-handling paths for every failure mode. This matches the anchor for copy-paste ready commands covering common cases.

5 / 5

Workflow Clarity

Steps 0-9 are explicitly sequenced ('Follow these steps in order. Do not skip steps.') with real validation and feedback loops: empty-graph abort, missing-chunk detection with re-run guidance, a corpus-size confirmation gate that waits for the user, and extraction-cache checks. However, there are noticeable sequencing quirks: the 'save the old graph before merge' instruction appears after the code block that consumes it, Step 2.5 contains its own inner 'Step 1/Step 2' labels, naming is inconsistent ('Step 3B' vs 'Part B2'), and the cross-repo merge flow leaves post-merge outputs undefined. This lands above the midpoint but below the anchor-5 standard of fully coherent checkpoints.

4 / 5

Progressive Disclosure

There is genuine in-file structure (numbered steps, clear ## section headers, a usage block), so navigation is possible, but no bundle files exist at all - references/, scripts/, and assets/ are absent - and hundreds of lines of subcommand manuals (query, path, explain, add, watch, git hook, CLAUDE.md integration) are inlined in the single SKILL.md where on-demand reference files belong. This matches anchor 3: some structure, but content that should be separate is inline.

3 / 5

Total

14

/

20

Passed

Description

58%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 distinctive and names concrete artifacts, but reads as a telegraphic tag list rather than a proper third-person description. It completely lacks a 'Use when...' trigger clause and natural synonyms, which limits both completeness and trigger-term quality.

Suggestions

Rewrite the description as verb-led third-person sentences, e.g. 'Builds a navigable knowledge graph with community detection from any folder of files (code, docs, papers, images, video), producing interactive HTML, GraphRAG-ready JSON, and an audit report.'

Add an explicit trigger clause: 'Use when the user mentions knowledge graphs, wanting to map connections in a codebase/repo/reading list/research corpus, or asks what is connected across many files.'

Include natural synonyms users would say (codebase, documents, notes, PDFs, citations) so the skill triggers on varied phrasing.

DimensionReasoningScore

Specificity

The description names concrete inputs ("code, docs, papers, images") and concrete outputs ("knowledge graph - clustered communities - HTML + JSON + audit report"), matching the anchor for several specific items with minor gaps. It falls short of 5 because it is a telegraphic noun list rather than verb-led concrete actions (no 'Builds', 'Extracts', 'Exports'), and short of 3 because the artifacts enumerated are specific and cover input, transformation, and output.

4 / 5

Completeness

The 'what' is discernible from the fragments (any input -> knowledge graph -> clustered communities -> three output formats), but the 'when' is entirely absent - there is no 'Use when...' clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. Not 2 because the 'what' is reasonably clear, not 4 because no 'when' guidance exists at all.

3 / 5

Trigger Term Quality

Terms like "knowledge graph", "papers", "docs", "images", and "audit report" are natural trigger words, but common variations and synonyms users would actually say (codebase, repo, documents, notes, PDFs, connections, relationships) are missing. Not 4 because the keyword coverage has clear gaps beyond 'a few natural terms missing'.

3 / 5

Distinctiveness Conflict Risk

The phrase "knowledge graph - clustered communities - audit report" carves a distinct niche with low conflict risk. Not 5 because "any input" breadth plus generic input types (code, docs, images) creates minor overlap risk with ingestion/synthesis/document skills.

4 / 5

Total

14

/

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

skill_md_line_count

SKILL.md is long (1402 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository

whimzyLive/nightshift-ai

Path

plugins/sdlc/skills/graphify/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.