OpenAPI Spec Generation
wshobson/agents
Create, validate and maintain OpenAPI 3.1 specs for REST APIs, whether designed first or generated from existing code, and use them for docs and client SDKs.
Document and type a Sentry API endpoint. An agent skill from getsentry/skills.
$ npx skills add getsentry/skills --skill document-api-endpoint -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install getsentry/skills document-api-endpoint --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/document-api-endpoint .claude/skills/document-api-endpoint && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "document-api-endpoint" agent skill from https://github.com/getsentry/skills/tree/main/skills/document-api-endpoint into .claude/skills/document-api-endpoint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-api-endpoint", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/getsentry/skills/tree/main/skills/document-api-endpointType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add getsentry/skills --skill document-api-endpoint -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install getsentry/skills document-api-endpoint --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/document-api-endpoint .agents/skills/document-api-endpoint && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "document-api-endpoint" agent skill from https://github.com/getsentry/skills/tree/main/skills/document-api-endpoint into .agents/skills/document-api-endpoint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-api-endpoint", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getsentry/skills --skill document-api-endpoint -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install getsentry/skills document-api-endpoint --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/document-api-endpoint .cursor/skills/document-api-endpoint && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "document-api-endpoint" agent skill from https://github.com/getsentry/skills/tree/main/skills/document-api-endpoint into .cursor/skills/document-api-endpoint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-api-endpoint", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/getsentry/skills.git --path skills/document-api-endpoint--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add getsentry/skills --skill document-api-endpoint -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install getsentry/skills document-api-endpoint --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/document-api-endpoint .gemini/skills/document-api-endpoint && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "document-api-endpoint" agent skill from https://github.com/getsentry/skills/tree/main/skills/document-api-endpoint into .gemini/skills/document-api-endpoint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-api-endpoint", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install getsentry/skills document-api-endpointInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add getsentry/skills --skill document-api-endpoint -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/document-api-endpoint .github/skills/document-api-endpoint && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "document-api-endpoint" agent skill from https://github.com/getsentry/skills/tree/main/skills/document-api-endpoint into .github/skills/document-api-endpoint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-api-endpoint", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add getsentry/skills --skill document-api-endpoint -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install getsentry/skills document-api-endpoint --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/document-api-endpoint .opencode/skills/document-api-endpoint && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "document-api-endpoint" agent skill from https://github.com/getsentry/skills/tree/main/skills/document-api-endpoint into .opencode/skills/document-api-endpoint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-api-endpoint", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
document-api-endpointDocument and type a Sentry API endpoint. An agent skill from getsentry/skills.
Document API Endpoint is an agent skill from getsentry/skills, published by the product's own GitHub organization. Document and type a Sentry API endpoint. Write or fix @extendschema decorators, specify response TypedDicts, type request parameters, correct type drift between the declared schema and the runtime response, and validate the generated spec. Use when asked to "document an endpoint", "add OpenAPI docs", "add/fix @extendschema", "type an endpoint response", "fix the response type", "fix type drift", "reuse a response type", "split an overloaded endpoint", "specify the response schema", "add a TypedDict response"…
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering REST APIs, OpenAPI specifications and Technical documentation. It works with Sentry and OpenAPI. The repository describes itself as: Agent Skills used by the Sentry team for development. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d18b7aa. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curljqmakepnpmpytestFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
us.sentry.ioAlso links to:
develop.sentry.devFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Document API Endpoint loads about 1.1k tokens when it runs. Until then it costs about 171 tokens; SKILL.md has 473 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from getsentry/skills at commit d18b7aa, republished under its Apache-2.0 licence (© getsentry). 473 words, ~1,116 tokens.
.claude/skills/document-api-endpoint/SKILL.md (or your agent's skills folder).Add or fix OpenAPI docs for a Sentry endpoint with drf-spectacular. Full reference is at https://develop.sentry.dev/backend/api/public/, the most useful section to you will be https://develop.sentry.dev/backend/api/public/#5-method-decorator. This skill captures the non-obvious lessons on top of it. Most of the work is making the declared schema match what the endpoint actually returns. Before documenting, identify which endpoint class serves the route and what it does; the MCP tool that calls it is usually the fastest way to confirm its behavior. Promoting a PRIVATE/EXPERIMENTAL endpoint to PUBLIC is one application (see below).
@extend_schema(tags=[...]) — use the closest existing OPENAPI_TAGS entry.@extend_schema(operation_id=..., parameters=[...], responses={...}, examples=...).src/sentry/apidocs/parameters.py and examples/*.py; ensure owner = ApiOwner.<TEAM> is set.api-docs/paths/**/*.json covers the path, remove it (see lesson 4).Ideally, hit the live endpoint with a real token and diff the keys and types against your TypedDict. Serializers are sometimes inaccurate. Look out for counts coming back as floats instead of integers, IDs declared int emitted as strings, nested types declaring the wrong number of fields. Correct the declared type to match runtime.
curl -s -H "Authorization: Bearer $TOKEN" "https://us.sentry.io/api/0/<endpoint>" | jq 'keys'Match the codebase's XxxResponseOptional(TypedDict, total=False) mixin (main class declares required fields). Nullable-vs-absent: T | None = key always present, value may be null; NotRequired[T] = key only set under a condition (e.g. an expand query param). Reuse the existing canonical type instead of re-declaring a second or third copy in a *_types.py. If there's no clean canonical type to reuse (e.g. a payload proxied from another service like vroom/profiling), type it dict[str, Any] rather than inventing a new mirror, and confirm the shape from the owning service's repo, not just the serializer.
cast and # type: ignoreWhen a serializer returns a base type plus extra fields, refactor the producing code so the response type is inferred rather than forced.
Delete the api-docs/paths/**/*.json file AND its $ref in api-docs/openapi.json. drf-spectacular's APPEND_PATHS does not merge HTTP methods, so once any method on a path uses @extend_schema, all legacy methods on that path vanish — migrate every method on the path in one commit.
Do the workflow above, then on the concrete endpoint only (leave siblings PRIVATE):
publish_status[<METHOD>] → PUBLIC and set owner = ApiOwner.<TEAM>.API_OWNERSHIP_ALLOWLIST_DONT_MODIFY in the same change as the flip.event:read → event:{admin,read,write}) — that's drf-spectacular regenerating from permission_classes, documentation-only.The change reaches the @sentry/api SDK / MCP only after sentry-api-schema regenerates downstream.
make build-api-docs
pnpm run validate-api-examples
.venv/bin/pytest -q --reuse-db tests/apidocs/endpoints/<area>/test_<name>.py
.venv/bin/prek run -q --files <changed paths>© getsentry, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/document-api-endpoint of getsentry/skills.
Open the folder on GitHubat commit d18b7aa
Document API Endpoint next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Document API Endpoint this skillgetsentry/skills | 1k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| OpenAPI Spec Generationwshobson/agents | 40k | 9 repos | ~511 | Automated safety check: Pass | MIT | |
| Inngest APIAsymmetric-al/core | 382 | — | ~1.5k | Automated safety check: Pass | AGPL-3.0 | |
| REST API Expertcin12211/orca-q | 223 | — | ~3.2k | Automated safety check: Pass | MIT | |
| REST API Designcuriositech/some_claude_skills | 243 | 1 repos | ~3.1k | Automated safety check: Pass | MIT | |
| API Reference Documentationsecondsky/claude-skills | 227 | 1 repos | ~561 | Automated safety check: Pass | MIT |
wshobson/agents
Create, validate and maintain OpenAPI 3.1 specs for REST APIs, whether designed first or generated from existing code, and use them for docs and client SDKs.
Asymmetric-al/core
A skill your agent uses when the user explicitly asks for the Inngest REST API v2, raw HTTP, OpenAPI, API docs, API authentication, or an endpoint that the Inngest CLI does not expose.
cin12211/orca-q
REST API design and development expert specializing in endpoint design, HTTP semantics, versioning, error handling, pagination, and OpenAPI documentation.
curiositech/some_claude_skills
Design REST API endpoints with Zod validation and OpenAPI documentation.
secondsky/claude-skills
Creates professional API documentation using OpenAPI specifications with endpoints, authentication, and interactive examples.
majiayu000/claude-skill-registry
Design and review APIs with suggestions for endpoints, parameters, return types, and best practices.
getsentry/skills
Scan agent skills for security issues. An agent skill from getsentry/skills.
getsentry/skills
Fetch unread GitHub notifications for open PRs where review is requested from a specified team or opened by a team member.
getsentry/skills
Security code review for vulnerabilities. An agent skill from getsentry/skills.
getsentry/skills
Create, synthesize, and iteratively improve agent skills following the Agent Skills specification.
getsentry/skills
Django access control and IDOR security review. An agent skill from getsentry/skills.
getsentry/skills
GitHub Actions security review for workflow exploitation vulnerabilities.
Categories
Document and type a Sentry API endpoint. An agent skill from getsentry/skills. Document API Endpoint is an agent skill from getsentry/skills, published by the product's own GitHub organization. Document and type a Sentry API endpoint.
Document API Endpoint fits situations like: asked to document an endpoint; add OpenAPI docs; add/fix @extendschema; type an endpoint response.
Run `npx skills add getsentry/skills --skill document-api-endpoint -a claude-code`. Or copy the skill folder (skills/document-api-endpoint in getsentry/skills) into .claude/skills/document-api-endpoint in your project. Claude Code loads it when a task matches its description.
Run `npx skills add getsentry/skills --skill document-api-endpoint -a codex`. Or copy the skill folder (skills/document-api-endpoint in getsentry/skills) into .agents/skills/document-api-endpoint in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add getsentry/skills --skill document-api-endpoint -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/document-api-endpoint, .gemini/skills/document-api-endpoint, .github/skills/document-api-endpoint and .opencode/skills/document-api-endpoint in your project.
Going by SKILL.md and its folder, Document API Endpoint needs the command-line tools its instructions call (curl, jq, make, pnpm and pytest).
SKILL.md names 2 domains. In commands or code: us.sentry.io; the agent is likely to contact it when it follows the instructions. As links in the text: develop.sentry.dev. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Document API Endpoint is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Document API Endpoint: OpenAPI Spec Generation (wshobson/agents, 40k stars), Inngest API (Asymmetric-al/core, 382 stars), REST API Expert (cin12211/orca-q, 223 stars) and REST API Design (curiositech/some_claude_skills, 243 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
getsentry (a GitHub organization, an official publisher) maintains it in getsentry/skills, which has 1,037 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 2, 2026.
Source: getsentry/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.