From rails-agent-skills
Creates and updates Postman v2.1 API collection JSON files synced with REST endpoints. Includes validation and test scripts. Invoke via /generate-api-collection or trigger on endpoint changes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rails-agent-skills:generate-api-collectionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Core principle:** Every API surface (Rails app or engine) has a single API collection file that stays in sync with its endpoints.
Core principle: Every API surface (Rails app or engine) has a single API collection file that stays in sync with its endpoints.
| Aspect | Rule |
|---|---|
| When | Create or update collection when creating or modifying any REST API endpoint (route + controller action) |
| Format | Postman Collection JSON v2.1 (schema or info.schema references v2.1) |
| Location | One file per app or engine — docs/api-collections/<app-or-engine-name>.json or spec/fixtures/api-collections/; if a collection folder already exists, update the existing file |
| Language | All request names, descriptions, and variable names must be in English |
| Variables | Use {{base_url}} for the base URL so the collection works across environments |
| Per request | method, URL, headers, body, description, and test scripts (e.g. pm.response.to.have.status(200)) |
| Folders | Group related endpoints into folders using nested item arrays |
| Exception | GraphQL endpoints — use implement-graphql instead |
When you create or modify a REST API endpoint (new or changed route and controller action),
you MUST also create or update the corresponding API collection file so the
flow can be tested. Do not leave the collection missing or outdated.
Each request MUST include a description and at least one basic test script (e.g. status code check).
EXCEPTION: GraphQL endpoints — use implement-graphql instead.
item arrays.{{base_url}} for the base URL.python -m json.tool collection.json or jq . collection.json — both print errors on invalid JSON.{{base_url}} is used consistently.Ensure the collection includes the info block, folders (nested item arrays), and event scripts:
{
"info": {
"name": "Products API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Products",
"item": [
{
"name": "List products",
"request": {
"method": "GET",
"header": [],
"url": "{{base_url}}/api/v1/products",
"description": "Returns a list of all products in the catalog."
},
"event": [
{
"listen": "test",
"script": {
"exec": ["pm.test('Status code is 200', () => { pm.response.to.have.status(200); });"],
"type": "text/javascript"
}
}
]
}
]
}
],
"variable": [
{ "key": "base_url", "value": "http://localhost:3000" }
]
}
| Mistake | Reality |
|---|---|
| Missing Content-Type or body for POST/PUT | Include headers and example body so the request works out of the box |
| Skipping validation after generation | Run jq . or python -m json.tool and fix any errors before committing (see HARD-GATE) |
Load only when a concrete collection example is needed:
| Skill | When to chain |
|---|---|
| create-engine | When the engine exposes HTTP endpoints |
| version-api | When a new version requires a collection update |
npx claudepluginhub igmarin/rails-agent-skillsGenerates import-ready Postman Collection v2.1 JSON from natural language API descriptions or cURL commands. Use when describing APIs or asking to create a collection.
Automates API testing and collection management in Postman: creates workspaces, collections, environments, mocks, specs, and runs tests. Useful for OpenAPI generation, automated testing, and environment setup.
Guides Postman MCP tool selection and usage with concepts like collections, environments, workspaces, and specs.