Individual skill
restful-hateoas
RESTful API design guidelines following the Richardson Maturity Model through to Level 3 (HATEOAS) for Ruby on Rails. This skill should be used when designing, building, reviewing, or refactoring REST APIs to ensure proper resource modeling, HTTP method semantics, hypermedia controls, content negotiation, and API evolvability. Triggers on tasks involving API controllers, serializers, routing, link relations, pagination, error handling, or HTTP caching in Rails.
skills/.curated/restful-hateoas/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- Yes
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
AGENTS.mddoc · 215 bytesSKILL.mdcore · 8,312 bytesassets/templates/_template.mddoc · 801 bytesmetadata.jsonasset · 1,244 bytesreferences/_sections.mddoc · 2,474 bytesreferences/cache-cache-control-headers.mddoc · 3,038 bytesreferences/cache-etag-conditional-get.mddoc · 2,581 bytesreferences/cache-last-modified.mddoc · 2,693 bytesreferences/cache-vary-header.mddoc · 3,123 bytesreferences/coll-cursor-pagination.mddoc · 3,570 bytesreferences/coll-field-selection.mddoc · 4,143 bytesreferences/coll-filtering-via-query-params.mddoc · 3,357 bytesreferences/coll-link-header-pagination.mddoc · 3,068 bytesreferences/coll-sorting-convention.mddoc · 2,989 bytesreferences/err-auth-error-codes.mddoc · 3,824 bytesreferences/err-error-links.mddoc · 2,901 bytesreferences/err-machine-readable-codes.mddoc · 2,643 bytesreferences/err-problem-details.mddoc · 2,604 bytesreferences/err-validation-errors.mddoc · 2,726 bytesreferences/evolve-additive-changes-only.mddoc · 2,640 bytesreferences/evolve-deprecation-headers.mddoc · 3,065 bytesreferences/evolve-hateoas-reduces-versioning.mddoc · 3,272 bytesreferences/http-delete-is-idempotent.mddoc · 2,376 bytesreferences/http-get-must-be-safe.mddoc · 2,284 bytesreferences/http-head-for-metadata.mddoc · 2,697 bytesreferences/http-idempotency-key.mddoc · 3,923 bytesreferences/http-patch-for-partial-updates.mddoc · 3,107 bytesreferences/http-post-for-creation.mddoc · 2,497 bytesreferences/http-put-for-full-replacement.mddoc · 2,707 bytesreferences/link-action-affordances.mddoc · 2,753 bytesreferences/link-embedded-vs-linked.mddoc · 3,881 bytesreferences/link-entry-point.mddoc · 2,342 bytesreferences/link-pagination-links.mddoc · 2,584 bytesreferences/link-related-resource-links.mddoc · 2,282 bytesreferences/link-self-link-every-resource.mddoc · 2,206 bytesreferences/link-standard-relation-types.mddoc · 2,560 bytesreferences/media-406-for-unsupported-types.mddoc · 2,937 bytesreferences/media-accept-header-negotiation.mddoc · 2,451 bytesreferences/media-content-type-in-responses.mddoc · 2,611 bytesreferences/media-vendor-media-types.mddoc · 2,944 bytesreferences/res-limit-nesting-depth.mddoc · 2,004 bytesreferences/res-model-business-entities.mddoc · 2,211 bytesreferences/res-noun-based-uris.mddoc · 1,658 bytesreferences/res-plural-collection-uris.mddoc · 1,750 bytesreferences/res-sub-resources-for-relationships.mddoc · 2,643 bytesreferences/res-use-consistent-identifiers.mddoc · 2,250 bytesreferences/status-201-with-location.mddoc · 2,777 bytesreferences/status-202-for-async.mddoc · 3,733 bytesreferences/status-204-for-no-content.mddoc · 2,737 bytesreferences/status-409-for-conflicts.mddoc · 2,999 bytesreferences/status-allow-header-on-405.mddoc · 3,646 bytesreferences/status-rate-limit-headers.mddoc · 3,741 bytes
Read excerpt
# Community RESTful HATEOAS Best Practices
Comprehensive guide to building REST APIs that reach the Glory of REST (Richardson Maturity Level 3) in Ruby on Rails. Contains 47 rules across 9 categories, ordered by the request/response lifecycle — from resource URI design through hypermedia link relations to API evolution.
## When to Apply
Reference these guidelines when:
- Designing new REST API endpoints and resource URIs
- Adding hypermedia controls (_links, affordances) to API responses
- Implementing content negotiation with HAL, JSON:API, or vendor media types
- Building paginated, filterable, sortable collection endpoints
- Reviewing APIs for proper HTTP method semantics and status codes
- Evolving APIs without breaking existing clients