Interest signup

What it does

Applications are agent-only. Submission starts email confirmation11. A person must follow the email link in a browser to confirm signup. Confirmation does not reserve a seat.

An agent applies for a person through the joinInterest capability. A capability is one named action with shared value definitions and a server-side implementation. Call it through MCP, POST /api/joinInterest, or the command-line interface (CLI). MCP27 means Model Context Protocol, which lets an agent discover and call tools.

The agent view of /tokenmaxx carries a fresh page ticket and the application steps. Ask the questions, show an editable card, and submit only what the person approves. Refusals return the same answer as success, and the person still confirms by email.

SubscriberIntake and SubscriberConfirm are ports in core: interfaces for starting email confirmation and confirming a signup. packages/subscriber-delivery provides the adapter, the implementation that connects those interfaces to external delivery. The Worker chooses and supplies that implementation when it starts.

See hexagonal architecture19. List signup is separate from account authentication16.

The standard

Applicant identity

joinInterest accepts optional name and x fields. The name trims whitespace and allows 1–100 characters. This keeps preferred names short. Skipped fields and historical applications omit both keys.

Operator commands

Set INTEREST_OPERATOR_TOKEN through the local environment schema. Keep its value private.

Repeat --submission-id to provide an ordered batch. Redelivery processes one ID at a time.

The operator route is POST /operator/interest/applications/redeliver. It uses the same bearer token as erasure.

If the command fails, read application states before retrying. A failed request can have completed part of the batch.

A scorer outage alone saves a ready contact without sending. The response tells the person that confirmation is delayed.

Non-holding signals can accompany that outage: ticket_instant, no_answers, jev_off, and jev_clear. Real abuse holds and unknown signals keep the contact held, even with a scorer outage.

Use redelivery after the outage is fixed. The saved submission ID stays unchanged.

Rate refusals return a busy message and save nothing. The agent waits one minute and retries once.

How to check

Sources

  1. Agent join intake. GitHub joelhooks/rat-stack. Ticket check, scoring, contact storage, and the uniform answer for agent applications. Accessed 2026-10-01.
  2. Interest lifecycle machine. GitHub joelhooks/rat-stack. Local pending, confirmation, and capture states. Accessed 2026-10-01.
  3. Subscriber intake port. GitHub joelhooks/rat-stack. Interface for starting email confirmation. Accessed 2026-10-01.
  4. Subscriber confirmation port. GitHub joelhooks/rat-stack. Interface for confirming a signup. Accessed 2026-10-01.
  5. Subscriber delivery adapter. GitHub joelhooks/rat-stack. External delivery implementations outside core. Accessed 2026-10-01.
  6. Interest HTTP routes. GitHub joelhooks/rat-stack. Retired submission endpoints, email confirmation, and result routing. Accessed 2026-10-01.
  7. Interest handlers. GitHub joelhooks/rat-stack. Neutral answers, mode choices, and delivery composition. Accessed 2026-10-01.

Last changed 2026-10-12 in 8fa3c6d. Source on GitHub. Change log.

Linked from

  1. A clean playground. rat-stack does real work with packages that stay easy to add and remove.

    Interest signup keeps delivery in an adapter package outside core.

  2. Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.

    Interest signup — Agent-only applications start email confirmation through interfaces owned by core and delivery implemented in a separate package.

  3. 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.

    Interest signup keeps the consent and email-confirmation rules.

  4. Change log. What changed in the files served here, newest first.

    Interest signup — edited: fix: answer honestly on intake rate limits and scorer outages

  5. Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
  6. HATEOAS. Links in a representation tell its reader what to do next; rat-stack applies that idea to agent-facing pages and responses.

    Interest signup records the current consent and confirmation boundary.

  7. Hexagonal architecture. Ports name the application's jobs; adapters connect them to the outside world.

    Interest signup records the agent-only application path and email confirmation boundary.¶

  8. Hosted agent interfaces. Discovery documents, HTTP, MCP, A2A, and bounded code mode expose the public reference to agents.

    Interest signup has its own consent and email-confirmation rules.¶

  9. One capability, every surface. A schema-typed contract and one handler feed every interface rat-stack keeps.

    Analytics shows a separate infrastructure cartridge; interest signup shows core ports with a delivery adapter outside core.

  10. Rat Stack systems | rat-stack. The systems rat-stack ships, the standard each keeps, and how to check it.

    Interest signup — Agent-only applications start email confirmation through interfaces owned by core and delivery implemented in a separate package.

  11. rat-stack. An Effect stack so pure (aspirational) Kit Langton will blush.
  12. Source change history (log.md). The generated change log as Markdown.

    Interest signup — edited: fix: answer honestly on intake rate limits and scorer outages