generate-api-collection
Skill26 starsChanged 4 months agoMITView on GitHub
Use when creating or updating a REST API collection for Rails endpoints. Do not use for GraphQL. Trigger words: Postman, API collection, endpoint, API route, request collection.
In this repository32 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- apply-code-conventionsSkill
- apply-stack-conventionsSkill
- code-reviewSkill
- create-engine-installerSkill
- create-engineSkill
- document-engineSkill
- extract-engineSkill
- implement-authorizationSkill
- implement-background-jobSkill
- implement-graphqlSkill
- implement-hotwireSkill
- load-contextSkill
- optimize-performanceSkill
- plan-testsSkill
- rails-featureSkill
- rails-maintenanceSkill
- rails-reviewSkill
- refactor-codeSkill
- release-engineSkill
- review-architectureSkill
- review-engineSkill
- review-migrationSkill
- security-checkSkill
- seed-databaseSkill
- setup-environmentSkill
- test-engineSkill
- test-serviceSkill
- upgrade-engineSkill
- version-apiSkill
- write-testsSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Core principle: Every API surface (Rails app or engine) has a single API collection file that stays in sync with its endpoints.
- Distinctive: line 46
Create or open the corresponding API collection JSON file.
- Very specific: line 48
Use {{base_url}} for the base URL.
- Distinctive: line 49
Add method, URL, headers, body, description, and test scripts for each request.
- Very specific: line 51
Run python -m json.tool collection.json or jq .
- Distinctive: line 52
If invalid: fix the reported error, then re-run the command until it exits cleanly.
- Distinctive: line 53
Verify the collection can be imported into a compatible API client (e.g.
- Very specific: line 58
Ensure the collection includes the info block, folders (nested item arrays), and event scripts:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Generate API Collection
Core principle: Every API surface (Rails app or engine) has a single API collection file that stays in sync with its endpoints.
Rules at a Glance
| 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 |
HARD-GATE
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.Core Process
- Create or open the corresponding API collection JSON file.
- Group related endpoints into folders using nested
itemarrays. - Use
{{base_url}}for the base URL. - Add method, URL, headers, body, description, and test scripts for each request.
- Validate the JSON is syntactically correct:
- Run
python -m json.tool collection.jsonorjq . collection.json— both print errors on invalid JSON. - If invalid: fix the reported error, then re-run the command until it exits cleanly.
- Run
- Verify the collection can be imported into a compatible API client (e.g. Postman) without errors.
- Confirm all new or changed endpoints are represented and that
{{base_url}}is used consistently.
Collection Structure (Postman v2.1)
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" }
]
}Common Mistakes
| 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) |
Extended Resources
Load only when a concrete collection example is needed:
- EXAMPLES.md — Postman v2.1 multi-endpoint collection example.
Integration
| Skill | When to chain |
| create-engine | When the engine exposes HTTP endpoints |
| version-api | When a new version requires a collection update |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

