agentleFS
igmarinigmarin/rails-agent-skills/skills/generate-api-collection/SKILL.md

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.

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
  1. Distinctive:

    Core principle: Every API surface (Rails app or engine) has a single API collection file that stays in sync with its endpoints.

    line 17
  2. Distinctive:

    Create or open the corresponding API collection JSON file.

    line 46
  3. Very specific:

    Use {{base_url}} for the base URL.

    line 48
  4. Distinctive:

    Add method, URL, headers, body, description, and test scripts for each request.

    line 49
  5. Very specific:

    Run python -m json.tool collection.json or jq .

    line 51
  6. Distinctive:

    If invalid: fix the reported error, then re-run the command until it exits cleanly.

    line 52
  7. Distinctive:

    Verify the collection can be imported into a compatible API client (e.g.

    line 53
  8. Very specific:

    Ensure the collection includes the info block, folders (nested item arrays), and event scripts:

    line 58

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

AspectRule
WhenCreate or update collection when creating or modifying any REST API endpoint (route + controller action)
FormatPostman Collection JSON v2.1 (schema or info.schema references v2.1)
LocationOne 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
LanguageAll request names, descriptions, and variable names must be in English
VariablesUse {{base_url}} for the base URL so the collection works across environments
Per requestmethod, URL, headers, body, description, and test scripts (e.g. pm.response.to.have.status(200))
FoldersGroup related endpoints into folders using nested item arrays
ExceptionGraphQL 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

  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:

{
  "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

MistakeReality
Missing Content-Type or body for POST/PUTInclude headers and example body so the request works out of the box
Skipping validation after generationRun 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

SkillWhen to chain
create-engineWhen the engine exposes HTTP endpoints
version-apiWhen a new version requires a collection update

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.