CtrlK
BlogDocsLog inGet started
Tessl Logo

agent-docs-api-openapi

Agent skill for docs-api-openapi - invoke with $agent-docs-api-openapi

36

Quality

32%

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 ./.agents/skills/agent-docs-api-openapi/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

36%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 instructional core — a role statement, a best-practices list, and an OpenAPI skeleton — is serviceable but thin, and it is buried under a legacy agent-definition YAML block that consumes most of the file without guiding Claude. The OpenAPI skeleton itself is corrupted ($ in place of /), so the one concrete artifact is not copy-paste usable, and there is no workflow or validation step for verifying generated specs. The skill needs the legacy block removed, the skeleton repaired, and an ordered procedure with a lint/validation checkpoint added.

Suggestions

Delete or move the legacy agent-definition YAML block out of SKILL.md; it is renderer/registry configuration, not guidance, and accounts for ~75% of the body.

Repair the corrupted skeleton (https://api.example.com, application/json, request/response examples) and add a concrete validation step such as `npx @redocly/cli lint openapi.yaml` or `spectral lint openapi.yaml` after spec creation.

Convert "Key responsibilities" into an ordered workflow (discover routes/controllers -> draft paths and schemas -> define security schemes -> validate -> write the spec file) with explicit checkpoints.

DimensionReasoningScore

Conciseness

The body is dominated by a ~115-line legacy agent-definition YAML blob (triggers, colors, hooks with echo commands, optimization.batch_size, memory limits) that is machine configuration, not instruction, plus a "Best practices" list of things Claude already knows ("Use descriptive summaries", "Follow OpenAPI 3.0 specification strictly"). It is above score 1 because the post-blob sections are not themselves tutorial padding about what OpenAPI is, but several large sections earn no tokens.

2 / 5

Actionability

There is a concrete artifact — a full OpenAPI 3.0 skeleton under "## OpenAPI structure" — but it is not executable: every slash has been corrupted to "$" ("https:/$api.example.com", "application$json", "$endpoint", "request$response"), making the YAML invalid, and there is no validation command (e.g. a spectral/swagger CLI lint) or concrete step for analyzing an existing API. This matches anchor 3 (concrete guidance present but incomplete, pseudocode-like, missing key details) rather than 4, which requires mostly-executable code with only minor gaps.

3 / 5

Workflow Clarity

"Key responsibilities" is a numbered list of goals (create specs, document endpoints, define schemas) rather than a sequenced procedure — there is no order of operations for producing documentation from an existing codebase and no validation checkpoint that the produced spec is valid, despite spec generation being exactly the kind of output-verification task that needs one. A rough ordering of concerns exists, so this sits above the incoherent anchor (1) but clearly below the validation-gaps-at-every-step anchor (3).

2 / 5

Progressive Disclosure

The instructional body has reasonable section headers (responsibilities, best practices, structure, documentation elements) and no broken or nested references, but the 115-line legacy config blob is content inlined in SKILL.md that clearly belongs in a separate file (or in the trash), and there are no bundle files at all (references/, scripts/, assets/ do not exist) for the advanced detail a spec-authoring skill needs. This matches anchor 3: some structure, content that should be separate is inline.

3 / 5

Total

10

/

20

Passed

Description

28%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 a placeholder-grade string: it identifies the skill's domain via an internal name and an invocation syntax, but describes no capabilities and gives no usage triggers. A user or Claude scanning descriptions would have no basis to select this skill for an OpenAPI documentation task. The substantive trigger keywords that do exist (openapi, swagger, api docs) are buried in the body's legacy YAML block where they serve no description-matching purpose.

Suggestions

Replace the description with concrete actions in third person, e.g. "Creates and maintains OpenAPI 3.0/Swagger specifications: documents endpoints, defines request/response schemas, and adds security schemes."

Append an explicit trigger clause: "Use when working with openapi.yaml, swagger.yaml, or when the user asks to document an API or create/update OpenAPI specs."

Include natural synonyms users actually say — OpenAPI, Swagger, API docs, endpoint documentation — rather than only the internal identifier docs-api-openapi.

DimensionReasoningScore

Specificity

The description names the domain ("docs-api-openapi") but states zero concrete actions — "Agent skill for docs-api-openapi" tells the reader nothing about what the skill does (create specs? validate? document endpoints?). It is above score 1 because the domain is named, but below score 3 because no concrete capability is listed.

2 / 5

Completeness

The "what" is only weakly implied (an agent skill for a named tool) and the "when" is entirely absent — there is no "Use when..." or equivalent trigger guidance, which caps this dimension at 3 per the guidelines. It lands at 2: weaker than a clear "what" with no "when" (3) because even the "what" is a bare identifier.

2 / 5

Trigger Term Quality

The only terms present are the technical identifiers "docs-api-openapi" and "$agent-docs-api-openapi"; natural phrases a user would say ("OpenAPI", "Swagger", "API documentation", "document my API") are missing. It sits between the no-natural-keywords anchor (1) and the some-relevant-keywords anchor (3) because the identifiers at least gesture at the API-docs domain.

2 / 5

Distinctiveness Conflict Risk

The identifier "docs-api-openapi" is niche and unlikely to collide with other skills, so conflict risk is low; but because the description conveys no distinguishing capability, it cannot be called "mostly distinct" (4) — it reads as a generic agent wrapper. It is somewhat specific but not clearly differentiated, matching anchor 3.

3 / 5

Total

9

/

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
ruvnet/ruflo
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.