HATEOAS
HATEOAS means hypermedia as the engine of application state. Roy Fielding names it as one of REST’s four uniform-interface constraints in his dissertation, chapter 5, section 5.1.5. In section 5.3.3, the application moves between states by choosing among the transitions in the representations it receives. Fielding includes both automated agents and human-operated browsers.¶
Rat-stack’s application
Joel Hooks puts the agent-facing principle this way:¶
My theory about hypertext as the engine of application state is that HATOS style links and pointers should be part of agentic surfaces in that we want to show them what they can do next and give that sort of guidance to agents and bake it in at that layer where humans don’t necessarily need to see that you know the information architecture is different and has a different scale¶
Joel applies the idea to links and pointers on agent-facing pages and responses: llms.txt, the markdown variant, MCP responses, and capability responses. They should show the agent what it can do next. Humans need not see all that guidance because information and next actions are organized differently for agents. AgentOnly variants are where that extra guidance belongs.¶
What exists, and what is direction
Content negotiation serves markdown by default and HTML when requested. It also recognizes browser and crawler user agents; a browser can receive HTML without an explicit Accept header. /llms.txt is the starting point for an agent. The content generator gives that guide links to rules, lore, skills, and the full docs, and builds HTML “Linked from” backlinks from the lore graph.¶
Audience variants retain AgentOnly blocks in agent markdown and remove them from HTML. /tokenmaxx has inline next-action guidance. Its AgentOnly blocks link to the agent guide and related lore, explain the harness pieces, and guide preparation.¶
Agents submit a person-approved editable card through joinInterest over MCP27, HTTP, or CLI. They use a single-use page ticket from the /tokenmaxx agent view. Intake verifies the ticket. Email confirmation11 is still required; it does not reserve a seat.¶
Next-action links in capability and MCP responses remain a goal. The projections do not yet supply those links.¶
Interest signup12 records the current consent and confirmation boundary. Applications are agent-only. An agent obtains a page ticket and submits the person’s approved card with contact permission. The person confirms their email through the email link in a browser.¶
The agent guide gives the search → read → graph workflow.¶
One capability, every surface18 describes the existing projections. These pieces apply the hypermedia idea; they are not a claim that every rat-stack interface satisfies all of Fielding’s REST constraints.¶
Sources
- Fielding Dissertation: CHAPTER 5: Representational State Transfer (REST). Roy Fielding · UC Irvine. Uniform-interface constraints; used for the definition of HATEOAS. Accessed 2026-10-01.
- Fielding Dissertation: CHAPTER 5: Representational State Transfer (REST). Roy Fielding · UC Irvine. Application-state transitions; used for hypermedia guidance to automated agents. Accessed 2026-10-01.
- rat-stack/apps/site/src/app.ts at main · joelhooks/rat-stack · GitHub. GitHub joelhooks/rat-stack. Content negotiation; used for markdown and HTML agent surfaces. Accessed 2026-10-01.
- rat-stack/apps/site/scripts/generate-content.ts at main · joelhooks/rat-stack · GitHub. GitHub joelhooks/rat-stack. Content generation; used for llms.txt navigation and lore backlinks. Accessed 2026-10-01.
- rat-stack/apps/site/scripts/content-lib.ts at main · joelhooks/rat-stack · GitHub. GitHub joelhooks/rat-stack. Audience variants; used for retaining AgentOnly guidance in markdown. Accessed 2026-10-01.
- rat-stack/packages/core/src/join-intake.ts at main · joelhooks/rat-stack · GitHub. GitHub joelhooks/rat-stack. Agent-assisted intake; used for page-ticket verification and submission handling. Accessed 2026-10-01.
Last changed 2026-10-10 in 978dccc. Source on GitHub. Change log.
Linked from
- Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
HATEOAS — Links in a representation tell its reader what to do next; rat-stack applies that idea to agent-facing pages and responses.
- An agent applied through Markdown and HTTP. One observed application used the Markdown page and llms.txt, then one POST; confirmation followed 88 seconds later.
HATEOAS explains why the page carries the next action.¶
- Change log. What changed in the files served here, newest first.
HATEOAS — edited: docs: point live docs, skills and Brain pages at apps/site
- Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
- Learn the stack | rat-stack. Hands-on guides to Effect actions, XState lifecycles, and the seams between stack pieces.
Follow ports and adapters for provider boundaries and agent next actions for hypermedia guidance.
- One capability, every surface. A schema-typed contract and one handler feed every interface rat-stack keeps.
HATEOAS covers links that guide an agent’s next action; hexagonal architecture names the ports-and-adapters principle.¶
- Rat Stack lore | rat-stack. Short, source-grounded notes on the ideas and decisions behind rat-stack.
HATEOAS — Links in a representation tell its reader what to do next; rat-stack applies that idea to agent-facing pages and responses.
- rat-stack. An Effect stack so pure (aspirational) Kit Langton will blush.
- Source change history (log.md). The generated change log as Markdown.
HATEOAS — edited: docs: point live docs, skills and Brain pages at apps/site