Validate that API info.description fields use imperative voice starting with an action verb. Use when the user asks to "check descriptions", "validate imperative voice", "lint API descriptions", or "review description format".
66
79%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/validate-imperative-format/SKILL.mdThis skill validates that every API specification's info.description starts with an imperative action verb. It relies on agent reasoning rather than regex to evaluate whether the opening word is a genuine imperative verb appropriate for describing an API's capabilities.
Use this skill when:
A good info.description starts with an imperative verb — a direct command form that tells the reader what the API does. The sentence should read as if completing the phrase "Use this API to..." without actually writing that phrase.
Manage APIs, policies, contracts, and SLA tiers.Query audit log events and actions for organizations.Search and describe metric types for the Observability platform.Deploy, configure, and monitor Omni Gateway instances.Tokenize and detokenize sensitive data using configured services.Common imperative verbs in this context include: Manage, Query, Search, Retrieve, List, Monitor, Track, Deploy, Configure, Create, Export, Publish, Register, Design, Validate, Secure, Transform, among others.
Descriptions must not start with any of these boilerplate or passive patterns:
Provides programmatic access to... — boilerplate fillerThis is a RAML... — format metadata, not a descriptionThe X API allows you to... — indirect, not imperativeThis API ... — vague, indirect openerAPI V1... — version metadata, not a descriptionA set of endpoints for... — passive, not imperativeEnables users to... — indirect, not imperativeWhen asked to validate imperative format, follow these steps:
Find all api.yaml files in the repository root directories (skip .claude, scripts, docs, portal).
For each api.yaml, read the info.description field value.
For each description, evaluate:
Produce a summary table:
| API | Status | First Word | Issue |
|-----|--------|------------|-------|
| api-manager | PASS | Manage | - |
| metrics | PASS | Search | - |
| bad-api | FAIL | Provides | Forbidden boilerplate pattern |
| other-api | FAIL | A | Not an imperative verb |For each failing description, suggest a rewritten version that:
PASS:
info:
description: Manage APIs, policies, contracts, and SLA tiers within Anypoint Platform.FAIL — boilerplate opener:
info:
description: Provides programmatic access to manage resources within the platform.Fix: Manage platform resources. Supports CRUD operations for...
FAIL — indirect phrasing:
info:
description: The Metrics API allows you to search and describe metric types.Fix: Search and describe metric types for the Observability platform.
FAIL — passive, no imperative verb:
info:
description: A set of endpoints for managing things.Fix: Manage things across environments and organizations.
4cf0cf6
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.