CtrlK
BlogDocsLog inGet started
Tessl Logo

state-directory-manager

Manage persistent state directories for bash scripts

75

2.96x
Quality

61%

Does it follow best practices?

Impact

89%

2.96x

Average score across 6 eval scenarios

SecuritybySnyk

—

The risk profile of this skill

Fix and improve this skill with Tessl

tessl review fix ./skills/bash/state-directory-manager/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 highly actionable — executable, well-commented bash covering config, state, cache, and logging — but it pays for that with heavy redundancy: the complete-module section duplicates most of the per-section functions, nearly doubling token cost. Its destructive operations (rm -rf resets, find -delete sweeps) ship with no validation or safety checks, capping workflow clarity, and everything is inlined with no bundle files for progressive disclosure.

Suggestions

Remove the duplication between sections 1-6 and the 'Complete Example: State Manager Module' — keep one canonical implementation (the module) and reduce the per-section blocks to short usage snippets.

Add validation before destructive operations: in state_reset/state_cache_clear, verify the target directory matches the expected app directory (e.g. [[ "$STATE_BASE_DIR" == "$HOME/.$STATE_APP_NAME" ]]) before rm -rf, and confirm operations succeeded afterwards.

Move the full state-manager module into a scripts/state-manager.sh bundle file and have SKILL.md reference it, keeping only quick-start patterns and key examples inline.

DimensionReasoningScore

Conciseness

The ~640-line body contains substantial padding: sections 1-6 present config get/set, cache with TTL, and log rotation functions, and then the 'Complete Example: State Manager Module' re-implements essentially the same functions (state_config_get/set, state_cache_get/set, state_log/state_log_rotate) a second time, roughly doubling the token cost. This matches 'Noticeably verbose; several unnecessary explanations or padded sections'. Not a 3 because the duplication is extensive and structural rather than a few stray over-explanations; not a 1 because there is no beginner-concept prose padding (no explaining what bash or XDG is at length).

2 / 5

Actionability

The code is fully executable and copy-paste ready: complete bash functions for XDG setup, config read/write, state tracking (with a jq-optional fallback), TTL-based caching, log rotation, plus a 'Usage in Scripts' example showing exactly how to source and call the module. Specific examples cover the common cases. This matches the anchor 'Fully executable; copy-paste ready code or commands; specific examples cover the common cases'.

5 / 5

Workflow Clarity

A sequence exists (set STATE_APP_NAME → source → state_init auto-runs → use functions, shown in 'Usage in Scripts'), but the skill includes destructive and batch operations — 'state_reset() { rm -rf "$STATE_BASE_DIR"; state_init; }', 'state_cache_clear() { rm -rf .../* }', and multiple 'find ... -delete' sweeps — with no validation or verification steps anywhere (no check that the directory is the expected app dir before rm -rf, no dry-run, no post-rotation verification). Per the rubric's cap, destructive/batch workflows without validation cannot score above 3. Not a 2 because the steps that are present are coherently ordered and each function is well-defined.

3 / 5

Progressive Disclosure

Section headers are clear and consistent (numbered Core Capabilities, Complete Example, Usage, Best Practices, Resources), so this is above the 'no section headers' anchor of 2. However there are no references at all — no references/, scripts/, or assets/ files exist — and everything, including a ~190-line reusable module, is inlined in SKILL.md. That matches 'Some structure but could be better organized... content that should be separate is inline'. Not a 4 because the full module and the per-topic function libraries clearly belong in separate sourced files (e.g. a state-manager.sh script or reference doc) rather than inline.

3 / 5

Total

13

/

20

Passed

Description

48%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 concise and identifies its niche, but it is a domain label rather than a capability description: one generic verb, no concrete actions enumerated, and no 'Use when' trigger guidance. Adding 2-3 specific capabilities and an explicit trigger clause would move it toward the good examples.

Suggestions

Add 2-3 concrete capabilities to the description, e.g. 'Read and write key-value config files, cache results with TTL expiry, and rotate log files in XDG-compliant state directories'.

Append an explicit trigger clause such as 'Use when a bash script needs to persist data, config, or cache between runs, or when the user mentions XDG, state files, or ~/.app-name directories'.

Include natural synonyms users would say (cache, config, save state, XDG, log rotation) to improve trigger-term coverage.

DimensionReasoningScore

Specificity

The description 'Manage persistent state directories for bash scripts' names the domain (bash scripts, persistent state directories) but relies on the single generic verb 'Manage' with no enumerated concrete actions (no mention of config read/write, caching, log rotation, or XDG compliance) — matching the anchor 'Names the domain but actions are minimal or generic'. It is not a 3 because it does not list even 1-2 concrete actions like 'Processes PDF files and extracts content' does.

2 / 5

Completeness

There is a reasonably clear 'what' ('Manage persistent state directories for bash scripts'), but the 'when' is entirely absent — no 'Use when...' clause or equivalent trigger guidance, which the guidelines explicitly cap at 3. It is not a 4 because 'when' is not merely implicit; it is wholly missing, and the 'what' itself is thin.

3 / 5

Trigger Term Quality

Relevant keywords are present ('persistent state', 'state directories', 'bash scripts'), analogous to 'Works with PDF files', but common variations and synonyms users would actually say are missing: 'cache', 'config', 'XDG', 'save state between runs', 'log rotation'. Not a 4 because the natural vocabulary users would reach for is largely absent; not a 2 because the terms present are domain-relevant rather than purely generic like 'Works with files'.

3 / 5

Distinctiveness Conflict Risk

The combination of 'persistent state' + 'directories' + 'bash scripts' carves a fairly distinct niche with distinct triggers, comparable to 'Works with PDF and Word document files' (mostly distinct, minor overlap risk). Not a 5 because the bare 'Manage ... for bash scripts' phrasing could plausibly overlap with general bash scripting, environment/config, or cleanup skills; not a 3 because it is more specific than 'Works with document files'.

4 / 5

Total

12

/

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 (690 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
majiayu000/claude-skill-registry
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.