generate-api-collection
Use when creating or updating a REST API collection for Rails endpoints.
Skill by igmarin
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/igmarin-generate-api-collection
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/generate-api-collection
What's inside
- Skill name
generate-api-collection- Description
- 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.
- License
- MIT
- Metadata
- version: 1.0.0 · user-invocable: true
- Instructions
- 104 lines in SKILL.md · view on GitHub
Files (2)
- EXAMPLES.md
- SKILL.md
SKILL.md (first lines)
# 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
```text
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
1. Create or open the corresponding API collection JSON file.
2. Group related endpoints into folders using nested `item` arrays.
3. Use `{{base_url}}` for the base URL.
4. Add method, URL, headers, body, description, and test scripts for each request.
5. Validate the JSON is syntactically correct:
- Run `python -m json.tool collection.json` or `jq . collection.json` — both print errors on invalid JSON.
- If invalid: fix the reported error, then re-run the command until it exits cleanly.
6. Verify the collection can be imported into a compatible API client (e.g. Postman) without errors.
7. 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:
```json
{
"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](./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 |From igmarin/rails-agent-skills, MIT.
More from igmarin/rails-agent-skills
- 0.619score
optimize-performance
igmarin
Use when investigating N+1s, slow queries, caching, or query plans in Rails.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
seed-database
igmarin
Use when choosing seeds, fixtures, or factories for Rails dev/test data.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
version-api
igmarin
Use when versioning a Rails REST API (v1/v2, deprecation, Sunset headers).
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
setup-environment
igmarin
Use when onboarding onto a Rails app: Ruby version, Docker, env, database, test suite.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
create-engine
igmarin
Use when scaffolding a new Rails engine.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
implement-hotwire
igmarin
Use when adding Turbo Frames, Turbo Streams, or Stimulus controllers.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
extract-engine
igmarin
Use when extracting a host-app feature into a Rails engine.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
implement-authorization
igmarin
Use when adding or reviewing Rails authorization with Pundit, CanCanCan, or policy objects.
SkillAFreshness: A★ 28Claude Code +9 - 0.616score
load-context
igmarin
Use before writing code, specs, or a PRD in an existing Rails app.
SkillAFreshness: A★ 28Claude Code +9 - 0.614score
create-engine-installer
igmarin
Use when writing an install generator for a Rails engine (migrations, config).
SkillAFreshness: A★ 28Claude Code +9 - 0.614score
apply-code-conventions
igmarin
Use when applying daily Rails conventions by path (DRY, YAGNI, PORO, CoC, KISS).
SkillAFreshness: A★ 28Claude Code +9 - 0.614score
implement-graphql
igmarin
Use when building or reviewing a graphql-ruby schema, resolver, or mutation.
SkillAFreshness: A★ 28Claude Code +9
Signals
- Stars
- 28
- Forks
- 8
- Open issues
- 0
- Contributors
- 7
- Last commit (this folder)
- Sep 28, 2026 (1 month ago)
- Last release
- May 16, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0.0
- License
- MIT
- Repository
- github.com/igmarin/rails-agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from igmarin
- 0.619score
implement-hotwire
igmarin
Use when adding Turbo Frames, Turbo Streams, or Stimulus controllers.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
optimize-performance
igmarin
Use when investigating N+1s, slow queries, caching, or query plans in Rails.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
extract-engine
igmarin
Use when extracting a host-app feature into a Rails engine.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
implement-authorization
igmarin
Use when adding or reviewing Rails authorization with Pundit, CanCanCan, or policy objects.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
create-engine
igmarin
Use when scaffolding a new Rails engine.
SkillAFreshness: A★ 28Claude Code +9 - 0.619score
seed-database
igmarin
Use when choosing seeds, fixtures, or factories for Rails dev/test data.
SkillAFreshness: A★ 28Claude Code +9
Cite this page
generate-api-collection skill. Agent Mart. https://agentmart.dev/skills/igmarin-generate-api-collection (last updated 2026-10-24)