Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Agent skill for docs-api-openapi - invoke with $agent-docs-api-openapi
.claude/skills/agent-docs-api-openapi/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✗→✓ | ▲ Improved | 132% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 138% | 0% |
| case-08 | ✓→✓ | = Same ✓ | 135% | 0% |
| case-09 | ✓→✓ | = Same ✓ | 133% | 0% |
| case-12 | ✓→✓ | = Same ✓ | 142% | 0% |
<!-- The block below is the legacy agent-definition YAML. It used to be a second --- fenced block which renderers (skills.sh, GitHub web view) interpreted as a horizontal rule, dumping the raw YAML into the page body (#2469). Wrapped in a yaml code fence so it renders as code while staying machine-readable for any tool still parsing it. -->
yamlname: "api-docs" description: "Expert agent for creating and maintaining OpenAPI/Swagger documentation" color: "indigo" type: "documentation" version: "1.0.0" created: "2025-07-25" author: "Claude Code" metadata: specialization: "OpenAPI 3.0 specification, API documentation, interactive docs" complexity: "moderate" autonomous: true triggers: keywords: - "api documentation" - "openapi" - "swagger" - "api docs" - "endpoint documentation" file_patterns: - "**$openapi.yaml" - "**$swagger.yaml" - "**$api-docs/**" - "**$api.yaml" task_patterns: - "document * api" - "create openapi spec" - "update api documentation" domains: - "documentation" - "api" capabilities: allowed_tools: - Read - Write - Edit - MultiEdit - Grep - Glob restricted_tools: - Bash # No need for execution - Task # Focused on documentation - WebSearch max_file_operations: 50 max_execution_time: 300 memory_access: "read" constraints: allowed_paths: - "docs/**" - "api/**" - "openapi/**" - "swagger/**" - "*.yaml" - "*.yml" - "*.json" forbidden_paths: - "node_modules/**" - ".git/**" - "secrets/**" max_file_size: 2097152 # 2MB allowed_file_types: - ".yaml" - ".yml" - ".json" - ".md" behavior: error_handling: "lenient" confirmation_required: - "deleting API documentation" - "changing API versions" auto_rollback: false logging_level: "info" communication: style: "technical" update_frequency: "summary" include_code_snippets: true emoji_usage: "minimal" integration: can_spawn: [] can_delegate_to: - "analyze-api" requires_approval_from: [] shares_context_with: - "dev-backend-api" - "test-integration" optimization: parallel_operations: true batch_size: 10 cache_results: false memory_limit: "256MB" hooks: pre_execution: | echo "📝 OpenAPI Documentation Specialist starting..." echo "🔍 Analyzing API endpoints..." # Look for existing API routes find . -name "*.route.js" -o -name "*.controller.js" -o -name "routes.js" | grep -v node_modules | head -10 # Check for existing OpenAPI docs find . -name "openapi.yaml" -o -name "swagger.yaml" -o -name "api.yaml" | grep -v node_modules post_execution: | echo "✅ API documentation completed" echo "📊 Validating OpenAPI specification..." # Check if the spec exists and show basic info if [ -f "openapi.yaml" ]; then echo "OpenAPI spec found at openapi.yaml" grep -E "^(openapi:|info:|paths:)" openapi.yaml | head -5 fi on_error: | echo "⚠️ Documentation error: {{error_message}}" echo "🔧 Check OpenAPI specification syntax" examples: - trigger: "create OpenAPI documentation for user API" response: "I'll create comprehensive OpenAPI 3.0 documentation for your user API, including all endpoints, schemas, and examples..." - trigger: "document REST API endpoints" response: "I'll analyze your REST API endpoints and create detailed OpenAPI documentation with request$response examples..."
You are an OpenAPI Documentation Specialist focused on creating comprehensive API documentation.
yamlopenapi: 3.0.0 info: title: API Title version: 1.0.0 description: API Description servers: - url: https:/$api.example.com paths: $endpoint: get: summary: Brief description description: Detailed description parameters: [] responses: '200': description: Success response content: application$json: schema: type: object example: key: value components: schemas: Model: type: object properties: id: type: string
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,258 | 6,543 | -21% | 1 | 1 | 0% | 1,631 | 2,641 | +62% | 0 | 0 | — |
case-02 | fail→fail | 10,605 | 11,900 | +12% | 1 | 1 | 0% | 1,521 | 4,236 | +179% | 0 | 0 | — |
case-03 | fail→fail | 13,828 | 15,868 | +15% | 1 | 1 | 0% | 3,428 | 5,422 | +58% | 0 | 0 | — |
case-04 | fail→fail | 8,367 | 7,463 | -11% | 1 | 1 | 0% | 1,987 | 3,135 | +58% | 0 | 0 | — |
case-05 | pass→pass | 5,320 | 5,627 | +6% | 1 | 1 | 0% | 1,072 | 2,553 | +138% | 0 | 0 | — |
case-06 | fail→fail | 6,978 | 8,149 | +17% | 1 | 1 | 0% | 1,035 | 3,217 | +211% | 0 | 0 | — |
case-07 | fail→fail | 5,493 | 5,443 | -1% | 1 | 1 | 0% | 1,188 | 2,631 | +121% | 0 | 0 | — |
case-08 | pass→pass | 7,110 | 9,515 | +34% | 1 | 1 | 0% | 1,441 | 3,385 | +135% | 0 | 0 | — |
case-09 | pass→pass | 5,301 | 5,169 | -2% | 1 | 1 | 0% | 997 | 2,324 | +133% | 0 | 0 | — |
case-10 | fail→fail | 4,326 | 3,425 | -21% | 1 | 1 | 0% | 886 | 2,046 | +131% | 0 | 0 | — |
case-11 | fail→fail | 5,814 | 5,906 | +2% | 1 | 1 | 0% | 1,185 | 2,676 | +126% | 0 | 0 | — |
case-12 | pass→pass | 6,291 | 7,600 | +21% | 1 | 1 | 0% | 1,197 | 2,899 | +142% | 0 | 0 | — |
case-13 | fail→fail | 4,139 | 4,113 | -1% | 1 | 1 | 0% | 693 | 2,034 | +194% | 0 | 0 | — |
case-14 | pass→pass | 7,480 | 7,082 | -5% | 1 | 1 | 0% | 1,533 | 2,963 | +93% | 0 | 0 | — |
case-15 | pass→pass | 12,647 | 10,097 | -20% | 1 | 1 | 0% | 2,918 | 3,576 | +23% | 0 | 0 | — |
case-16 | fail→fail | 21,460 | 23,516 | +10% | 1 | 1 | 0% | 6,177 | 7,563 | +22% | 0 | 0 | — |
case-17 | fail→pass | 4,966 | 4,276 | -14% | 1 | 1 | 0% | 932 | 2,163 | +132% | 0 | 0 | — |
case-18 | fail→fail | 5,495 | 8,199 | +49% | 1 | 1 | 0% | 1,043 | 3,119 | +199% | 0 | 0 | — |
case-19 | pass→pass | 6,625 | 9,524 | +44% | 1 | 1 | 0% | 1,366 | 3,673 | +169% | 0 | 0 | — |
case-20 | pass→pass | 4,117 | 4,996 | +21% | 1 | 1 | 0% | 738 | 2,282 | +209% | 0 | 0 | — |
case-21 | pass→pass | 6,619 | 6,024 | -9% | 1 | 1 | 0% | 1,272 | 2,619 | +106% | 0 | 0 | — |
case-22 | pass→pass | 13,599 | 13,487 | -1% | 1 | 1 | 0% | 2,807 | 4,070 | +45% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/28/2026 | 0% |
Other measured skills in the registry, with their headline benchmark lift.