improve-sdk-naming
npx skills add https://github.com/speakeasy-api/agent-skills --skill improve-sdk-naming
Agent 安装分布
Skill 文档
improve-sdk-naming
Improve SDK method naming using AI-powered suggestions or manual overrides. Covers both automatic speakeasy suggest commands and manual naming with x-speakeasy-group and x-speakeasy-name-override extensions.
When to Use
Use this skill when you want AI-powered suggestions from Speakeasy:
- SDK methods have ugly auto-generated names like
GetApiV1Users - You want Speakeasy AI to suggest better operation IDs
- You want AI-generated suggestions for error types
- Looking to improve spec quality automatically using
speakeasy suggest - User says: “suggest improvements”, “speakeasy suggest”, “AI suggestions”, “suggest operation-ids”, “suggest error-types”, “get AI recommendations”
NOT for: Manually creating overlays (see manage-openapi-overlays instead)
Inputs
| Input | Required | Description |
|---|---|---|
| OpenAPI spec | Yes | Path to the spec file (-s) |
| Authentication | Yes | Via speakeasy auth login or SPEAKEASY_API_KEY env var |
| Output file | No | Path for overlay output (-o) |
Outputs
| Output | Description |
|---|---|
| Suggestions | Better operation names or error types printed to console |
| Overlay file | Optional: saves suggestions as an overlay YAML file (-o) |
Prerequisites
For non-interactive environments (CI/CD, AI agents), set the API key as an environment variable:
export SPEAKEASY_API_KEY="<your-api-key>"
For interactive use, authenticate directly:
speakeasy auth login
Command
AI-Powered Suggestions
# Suggest better operation IDs (SDK method names)
speakeasy suggest operation-ids -s <spec-path>
# Suggest error type definitions
speakeasy suggest error-types -s <spec-path>
# Output suggestions as an overlay file
speakeasy suggest operation-ids -s <spec-path> -o suggested-overlay.yaml
Check Current Operation IDs
Run the suggest command without -o to preview what would change:
speakeasy suggest operation-ids -s openapi.yaml
SDK Method Naming Convention
Speakeasy generates grouped SDK methods from operation IDs. The naming convention uses x-speakeasy-group for the namespace and x-speakeasy-name-override for the method name.
| HTTP Method | SDK Usage | Operation ID |
|---|---|---|
| GET (list) | sdk.users.list() |
users_list |
| GET (single) | sdk.users.get() |
users_get |
| POST | sdk.users.create() |
users_create |
| PUT | sdk.users.update() |
users_update |
| DELETE | sdk.users.delete() |
users_delete |
The operation ID format is {group}_{method}. Speakeasy splits on the underscore to create the namespace and method name in the generated SDK.
Example
Step 1: Get AI Suggestions
speakeasy suggest operation-ids -s openapi.yaml -o operation-ids-overlay.yaml
This analyzes your spec and generates an overlay that transforms names like:
get_api_v1_users_list->listUserspost_api_v1_users_create->createUser
Step 2: Review and Apply the Overlay
The AI-generated overlay (from -o) creates naming improvements using x-speakeasy-group and x-speakeasy-name-override.
Note: For manual overlay creation, use the manage-openapi-overlays skill instead of this skill.
Step 3: Add the Overlay to workflow.yaml
sources:
my-api:
inputs:
- location: ./openapi.yaml
overlays:
- location: ./operation-ids-overlay.yaml
Step 4: Regenerate the SDK
speakeasy run --output console
Error Type Suggestions
The suggest error-types command analyzes your API and suggests structured error responses:
speakeasy suggest error-types -s openapi.yaml
This suggests:
- Common HTTP error codes (400, 401, 404, 500)
- Custom error schemas appropriate for your API
Output as an overlay:
speakeasy suggest error-types -s openapi.yaml -o error-types-overlay.yaml
What NOT to Do
- Do NOT modify operationIds directly in the source spec if it is externally managed. Use overlays instead.
- Do NOT use generic names like
getorpostwithout a group. Always pairx-speakeasy-name-overridewithx-speakeasy-group. - Do NOT forget to add the generated overlay to
workflow.yamlafter creating it. Without this step, the names will not change in the generated SDK. - Do NOT create duplicate operation names across different groups. Each
{group}_{method}combination must be unique.
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
| “unauthorized” | Missing or invalid API key | Set SPEAKEASY_API_KEY env var or run speakeasy auth login |
| Names unchanged after regeneration | Overlay not added to workflow | Add the overlay to the overlays list in workflow.yaml |
| No suggestions returned | Spec already has good naming | No action needed; names are already well-structured |
| Duplicate method names | Similar endpoints share names | Use unique x-speakeasy-name-override values for each endpoint |
| Timeout during suggest | Very large spec | Try running on a smaller subset or increase timeout |