CtrlK
BlogDocsLog inGet started
Tessl Logo

cli-design

Design and build agent-first CLIs with HATEOAS JSON responses, context-protecting output, and self-documenting command trees. Use when creating new CLI tools, adding commands to existing CLIs such as joelclaw, or reviewing CLI design for agent-friendliness. Triggers on 'build a CLI', 'add a command', 'CLI design', 'agent-friendly output', or any task involving command-line tool creation.

62

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/cli-design/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 body is highly actionable with concrete Effect CLI code, build commands, and a step-by-step command-creation workflow, but it carries redundant envelope examples, a TODO planning section, and an inlined streaming-protocol spec that should be split into reference files.

Suggestions

Move the Streaming Protocol (ADR-0058) section — event-type table, TypeScript stream types, Redis subscription pattern — into a `references/streaming.md` file and keep a short summary plus a one-level-deep pointer in SKILL.md.

Deduplicate the response envelope: keep the single TypeScript schema section and trim the repeated full-JSON examples in the Core Principles to minimal fragments.

Delete or relocate the TODO section (OAuth device flow notes) — it is project planning, not skill instruction — and add a post-rebuild verification step (e.g. run the new command and check its `--help` output) to the 'Adding a new command' workflow.

DimensionReasoningScore

Conciseness

Mostly efficient prose, but the response envelope is demonstrated three times (the full HATEOAS JSON in principle 2, again in principles 4-5, and once more as the TypeScript "Response Envelope" section), and the ~90-word TODO section on OAuth device flow is planning notes, not skill instruction. Also mildly over-explains things Claude knows ("NDJSON is pipe-native"). Not a 4: the redundancy and the TODO padding are more than minor trims.

3 / 5

Actionability

Mostly executable guidance: a runnable `Command.make` Effect CLI snippet, `bun build src/cli.ts --compile --outfile joelclaw` build commands, `emit()`/`streamFromRedis()` usage, a 7-step "Adding a new command" procedure, and a checklist. Falls short of 5 because code imports local modules ("./response", "../stream") that are not in the bundle, and the reference implementations point to a machine-local path (`~/Code/joelhooks/joelclaw/...`) an agent may not be able to resolve.

4 / 5

Workflow Clarity

"Adding a new command" is a clear numbered 1-7 sequence reinforced by a checklist and an error-handling envelope with a `fix` field. Not a 5: step 7 ("Rebuild and install") has no verification step — no smoke-test of the new command or its `--help` output — so the validation checkpoint is implicit rather than explicit. Not a 3: the sequence and most checkpoints (checklist, error fix loop) are present.

4 / 5

Progressive Disclosure

Well-sectioned headers exist, but the file is a ~430-line monolith with no reference files at all: the entire Streaming Protocol (ADR-0058) spec — event-type table, TypeScript types, Redis subscription pattern — is inline material that clearly belongs in a separate reference file, and the bundle's only assets (two logos) are never referenced. Matches the 3 anchor (structure present, content that should be separate is inline); not a 2 because headers and navigation within the file are good.

3 / 5

Total

14

/

20

Passed

Description

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

A strong description: concrete capabilities, an explicit "Use when" clause, and natural quoted trigger phrases. Its only gaps are unmentioned streaming/NDJSON support and a few missing trigger synonyms.

DimensionReasoningScore

Specificity

Names concrete capabilities — "Design and build agent-first CLIs with HATEOAS JSON responses, context-protecting output, and self-documenting command trees" — plus three distinct actions (creating new CLI tools, adding commands, reviewing CLI design). Not a 5 because the streaming/NDJSON protocol, roughly a third of the skill's content, is unmentioned; not a 3 because it lists several specific actions rather than 1-2.

4 / 5

Completeness

Clearly answers both: the "what" is the opening capability sentence, and the "when" is an explicit "Use when creating new CLI tools, adding commands to existing CLIs... or reviewing CLI design" clause with concrete trigger phrases listed. Matches the 5 anchor exactly; the 4 anchor's weaker/less-explicit 'when' does not apply.

5 / 5

Trigger Term Quality

Explicit triggers — "'build a CLI'", "'add a command'", "'CLI design'", "'agent-friendly output'", "any task involving command-line tool creation" — are phrases a user would naturally say. A few natural variations are missing (e.g. "make a CLI", "scaffold a CLI", "subcommand", "terminal tool"), keeping it below the comprehensive synonym coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

The "agent-first" framing, HATEOAS envelope vocabulary, and the named "joelclaw" anchor a clear niche with distinct triggers. Minor overlap risk remains with generic CLI/build-tooling skills triggered by phrases like "add a command"; not a 5 because those phrases alone could plausibly fire a general command-building skill.

4 / 5

Total

17

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository
joelhooks/joelclaw
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.