CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

graph-colorize

Color-code the Obsidian graph view by rewriting `.obsidian/graph.json` colorGroups. Use this skill when the user says "color my graph", "color code obsidian", "colorize the graph", "color the graph by tag", "color by category", "highlight visibility in graph", "make the graph colorful", "distinguish tags in graph", or wants nodes in Obsidian's graph view tinted by tag, folder, or visibility. Generates a `colorGroups` array from the vault's actual tags/categories and merges it into the existing graph.json without clobbering other graph settings. Always backs up first.

Quality

93%

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

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

This is a strong, highly actionable skill body: exact colors, queries, merge rules, and safety behaviors leave nothing to guess at, and the mode table plus edge cases anticipate real failure modes. The main deductions are the thrice-repeated Obsidian-open warning and the absence of any post-write verification step.

Suggestions

State the Obsidian-open warning once (Before You Start) and reference it from Step 4 and Edge Cases instead of repeating the full explanation three times.

Add a post-write validation step to Step 3, e.g., re-read the written graph.json, confirm it parses and that all pre-existing keys other than colorGroups are unchanged, and restore from the backup if not.

Consider moving the 23-line default graph.json blob to a references/ file (or trimming it to the fields Obsidian actually requires) to slim the main skill file.

DimensionReasoningScore

Conciseness

The body is dense and nearly everything earns its place (Obsidian-specific facts like packed-int colors, first-match-wins, and the graph.json schema are non-obvious), but the 'Obsidian overwrites graph.json on close' warning is repeated three times (Before You Start #3, the Step 4 output block, and Edge Cases). Not score 5 because that triple repetition and a few rambling asides ('or just cap at 10 and tell the user…') could be trimmed; not score 3 because the padding is minor, not whole unnecessary explanation sections.

4 / 5

Actionability

Guidance is copy-paste ready: exact palette hex/packed-int pairs, literal JSON entries like '{"query": "tag:#visibility/pii", "color": {"a": 1, "rgb": 14767961}}', a complete default graph.json, backup naming ('backup-<YYYYMMDD-HHMM>'), the hex-to-int conversion for custom mode, and the log-line format. All five modes have concrete emit rules, covering the common cases. Not score 4 because there are no minor gaps — every step names exact values.

5 / 5

Workflow Clarity

The sequence is clear and well-gated: precondition checks (vault path discovery, `.obsidian/` existence), mode selection, build, then 'Back up first' before the write, with undo and fallback paths in Edge Cases. Not score 5 because there is no post-write validation (e.g., verify the JSON parses or that other fields survived the merge) — the checkpoints are all pre-write; not score 3 because the backup, existence checks, and undo path are meaningful safeguards for this destructive-ish config overwrite.

4 / 5

Progressive Disclosure

The single file is well organized (Before You Start, Steps 1–4, Edge Cases, Notes) with no nested references and everything one glance away; since no bundle files exist, structure is the only axis. Not score 5 because at ~168 lines some self-contained blocks (the 23-line default graph.json, the palette table) could arguably live in a reference file, and the under-50-lines simple-skill exception does not apply; not score 3 because nothing is buried and the sectioning is clean.

4 / 5

Total

17

/

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.

The description is exemplary: concrete third-person actions, an explicit 'Use when' clause with nine natural trigger phrases, and a sharply defined niche with the key safety behavior (backup, non-clobbering merge) stated up front. It matches the rubric's good examples in structure and quality.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'rewriting `.obsidian/graph.json` colorGroups', 'Generates a `colorGroups` array from the vault's actual tags/categories', 'merges it into the existing graph.json without clobbering other graph settings', 'Always backs up first' — fully covering what the skill does. Not score 4 because there are no minor gaps: the actions named span the entire task surface (generate, merge, preserve, back up).

5 / 5

Completeness

Both questions are answered explicitly: what ('Color-code the Obsidian graph view by rewriting `.obsidian/graph.json` colorGroups… Generates… merges… backs up') and when ('Use this skill when the user says…') with concrete trigger phrases. Not score 4 because the 'when' clause is not merely present but enumerates specific user phrasings, matching the anchor-5 example pattern exactly.

5 / 5

Trigger Term Quality

Nine quoted natural phrases users would actually say ('color my graph', 'colorize the graph', 'make the graph colorful', 'distinguish tags in graph', etc.) plus the fallback 'wants nodes in Obsidian's graph view tinted by tag, folder, or visibility' give comprehensive synonym coverage. Not score 4 because the variations already span color/colorize/color-code/category/tag/visibility phrasings with no obvious natural term missing.

5 / 5

Distinctiveness Conflict Risk

It occupies a clear niche — Obsidian graph view colorization via a specific config file — with triggers that name the graph view, tags, folders, and visibility. Not score 4 because the trigger phrases are specific enough that overlap with any other skill's triggers is minimal.

5 / 5

Total

20

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

saski/arnesto

Path

.agents/skills/graph-colorize/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.