Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ReadMe.com platform integration for API documentation. Sync OpenAPI specs, manage versions, configure API reference settings, automate changelogs, and integrate with metrics dashboards.
.claude/skills/a5c-ai-readme-platform/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 112% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 343% | 0% |
ReadMe.com platform integration for API documentation.
Invoke this skill when you need to:
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | action | string | Yes | sync, version, page, changelog, metrics | | apiKey | string | Yes | ReadMe API key | | specPath | string | No | Path to OpenAPI spec | | version | string | No | Documentation version | | projectId | string | No | ReadMe project ID |
json{ "action": "sync", "apiKey": "${README_API_KEY}", "specPath": "./api/openapi.yaml", "version": "1.0" }
yaml# ReadMe CLI configuration version: "1.0" api: definition: ./api/openapi.yaml name: My API changelogs: directory: ./changelogs docs: directory: ./docs categories: - slug: getting-started title: Getting Started - slug: api-reference title: API Reference - slug: guides title: Guides
bash# Login to ReadMe rdme login # Sync OpenAPI spec rdme openapi ./api/openapi.yaml --version=1.0 # Sync with specific ID rdme openapi ./api/openapi.yaml --id=abc123 # Validate before syncing rdme openapi:validate ./api/openapi.yaml
yaml# .github/workflows/docs.yml name: Sync API Docs on: push: branches: [main] paths: - 'api/openapi.yaml' jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Sync to ReadMe uses: readmeio/rdme@v8 with: rdme: openapi ./api/openapi.yaml --key=${{ secrets.README_API_KEY }} --version=1.0
bash# Create new version rdme versions:create 2.0 --fork=1.0 # Update version rdme versions:update 2.0 --main=true # List versions rdme versions
json{ "version": "2.0", "from": "1.0", "codename": "Major Release", "is_stable": true, "is_beta": false, "is_hidden": false, "is_deprecated": false }
bash# Create documentation page rdme docs ./docs --version=1.0 # Create single page rdme docs:single ./docs/getting-started.md --version=1.0
markdown--- title: Getting Started slug: getting-started category: 6123abc456def789 order: 1 hidden: false --- # Getting Started Welcome to our API documentation. ## Prerequisites - API Key (get one from [dashboard](https://app.example.com)) - Node.js 18+ or Python 3.9+ ## Installation [block:code] { "codes": [ { "code": "npm install @example/sdk", "language": "bash", "name": "npm" }, { "code": "pip install example-sdk", "language": "bash", "name": "pip" } ] } [/block]
markdown--- title: Version 2.0 Release type: added hidden: false createdAt: 2026-01-24 --- ## New Features ### OAuth 2.0 Support We now support OAuth 2.0 authentication in addition to API keys. ### Batch Operations New batch endpoints for processing multiple items in a single request. ## Improvements - Improved rate limiting with better error messages - Enhanced webhook reliability ## Bug Fixes - Fixed pagination issue in list endpoints - Resolved timezone handling in date filters
bash# Sync all changelogs rdme changelogs ./changelogs # Sync single changelog rdme changelogs:single ./changelogs/2.0-release.md
yamlopenapi: 3.1.0 info: title: My API version: 1.0.0 x-readme: explorer-enabled: true proxy-enabled: true samples-enabled: true samples-languages: - curl - node - python - ruby servers: - url: https://api.example.com/v1 description: Production x-readme: explorer-default: true paths: /users: get: x-readme: code-samples: - language: javascript name: Node.js code: | const response = await fetch('https://api.example.com/v1/users', { headers: { 'Authorization': 'Bearer YOUR_TOKEN' } }); explorer-enabled: true
bash# Get API metrics via API curl -X GET 'https://dash.readme.com/api/v1/api-metrics' \ -H 'Authorization: Basic YOUR_API_KEY' \ -H 'Content-Type: application/json'
json{ "data": [ { "endpoint": "GET /users", "requests": 15234, "success_rate": 99.2, "avg_latency": 145, "error_breakdown": { "400": 52, "401": 23, "500": 3 } } ], "period": { "start": "2026-01-01", "end": "2026-01-24" } }
json{ "url": "https://api.example.com/readme-webhook", "events": [ "doc.created", "doc.updated", "changelog.created", "api_spec.uploaded" ], "secret": "your-webhook-secret" }
javascriptapp.post('/readme-webhook', (req, res) => { const signature = req.headers['x-readme-signature']; // Verify signature if (!verifySignature(req.body, signature, process.env.WEBHOOK_SECRET)) { return res.status(401).send('Invalid signature'); } const { event, doc, project } = req.body; switch (event) { case 'doc.updated': console.log(`Doc updated: ${doc.title}`); break; case 'api_spec.uploaded': console.log('API spec updated'); break; } res.status(200).send('OK'); });
markdown[block:code] { "codes": [ { "code": "const client = new Client({ apiKey: 'YOUR_KEY' });\nconst users = await client.users.list();", "language": "javascript", "name": "JavaScript" }, { "code": "client = Client(api_key='YOUR_KEY')\nusers = client.users.list()", "language": "python", "name": "Python" } ] } [/block]
markdown[block:callout] { "type": "info", "title": "Rate Limiting", "body": "This endpoint is limited to 100 requests per minute." } [/block] [block:callout] { "type": "warning", "title": "Deprecation Notice", "body": "This endpoint will be removed in version 3.0." } [/block]
json{ "devDependencies": { "rdme": "^9.0.0" } }
bash# Install CLI npm install -g rdme # Login rdme login # Sync OpenAPI spec rdme openapi ./api/openapi.yaml --version=1.0 # Sync docs rdme docs ./docs --version=1.0 # Create version rdme versions:create 2.0 --fork=1.0 # Sync changelogs rdme changelogs ./changelogs
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 16,924 | 13,234 | -22% | 1 | 1 | 0% | 2,052 | 4,266 | +108% | 0 | 0 | — |
case-02 | pass→pass | 13,994 | 16,779 | +20% | 1 | 1 | 0% | 1,780 | 4,877 | +174% | 0 | 0 | — |
case-03 | pass→pass | 20,618 | 22,161 | +7% | 1 | 1 | 0% | 3,062 | 5,965 | +95% | 0 | 0 | — |
case-04 | pass→pass | 14,459 | 13,828 | -4% | 1 | 1 | 0% | 1,752 | 4,201 | +140% | 0 | 0 | — |
case-05 | fail→pass | 15,581 | 10,627 | -32% | 1 | 1 | 0% | 1,997 | 3,184 | +59% | 0 | 0 | — |
case-06 | pass→pass | 11,785 | 7,837 | -34% | 1 | 1 | 0% | 1,284 | 3,057 | +138% | 0 | 0 | — |
case-07 | pass→pass | 10,853 | 7,810 | -28% | 1 | 1 | 0% | 1,051 | 2,837 | +170% | 0 | 0 | — |
case-08 | pass→pass | 14,972 | 13,386 | -11% | 1 | 1 | 0% | 1,928 | 4,121 | +114% | 0 | 0 | — |
case-09 | fail→pass | 14,232 | 23,417 | +65% | 1 | 1 | 0% | 1,855 | 3,936 | +112% | 0 | 0 | — |
case-10 | fail→pass | 11,172 | 7,426 | -34% | 1 | 1 | 0% | 1,176 | 2,911 | +148% | 0 | 0 | — |
case-11 | pass→pass | 11,724 | 8,543 | -27% | 1 | 1 | 0% | 1,305 | 3,243 | +149% | 0 | 0 | — |
case-12 | pass→pass | 10,165 | 8,798 | -13% | 1 | 1 | 0% | 905 | 3,177 | +251% | 0 | 0 | — |
case-13 | fail→pass | 8,701 | 7,725 | -11% | 1 | 1 | 0% | 665 | 2,949 | +343% | 0 | 0 | — |
case-14 | pass→pass | 9,893 | 7,810 | -21% | 1 | 1 | 0% | 931 | 3,038 | +226% | 0 | 0 | — |
case-15 | pass→pass | 10,469 | 8,218 | -22% | 1 | 1 | 0% | 847 | 3,091 | +265% | 0 | 0 | — |
case-16 | pass→pass | 10,643 | 7,727 | -27% | 1 | 1 | 0% | 1,040 | 3,000 | +188% | 0 | 0 | — |
case-17 | fail→pass | 17,543 | 8,939 | -49% | 1 | 1 | 0% | 1,559 | 3,186 | +104% | 0 | 0 | — |
case-18 | pass→pass | 13,824 | 9,309 | -33% | 1 | 1 | 0% | 1,208 | 3,236 | +168% | 0 | 0 | — |
case-19 | fail→pass | 26,507 | 9,818 | -63% | 1 | 1 | 0% | 1,533 | 3,380 | +120% | 0 | 0 | — |
case-20 | fail→pass | 13,893 | 10,050 | -28% | 1 | 1 | 0% | 1,727 | 3,439 | +99% | 0 | 0 | — |
case-21 | fail→pass | 13,865 | 7,990 | -42% | 1 | 1 | 0% | 1,702 | 2,993 | +76% | 0 | 0 | — |
case-22 | fail→pass | 10,363 | 17,146 | +65% | 1 | 1 | 0% | 941 | 3,300 | +251% | 0 | 0 | — |
case-23 | pass→pass | 10,924 | 9,141 | -16% | 1 | 1 | 0% | 1,115 | 3,257 | +192% | 0 | 0 | — |
case-24 | pass→pass | 10,822 | 8,676 | -20% | 1 | 1 | 0% | 1,100 | 3,084 | +180% | 0 | 0 | — |
case-25 | fail→pass | 39,105 | 8,935 | -77% | 1 | 1 | 0% | 2,083 | 3,194 | +53% | 0 | 0 | — |
case-26 | fail→pass | 17,379 | 7,851 | -55% | 1 | 1 | 0% | 2,074 | 3,010 | +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. 26 cases were attempted. The headline lift of +46 percentage points is the difference between those two pass rates over the 26 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.
Other measured skills in the registry, with their headline benchmark lift.