---
name: agentelo
description: Get or update a user's AgentElo rating (an Elo and percentile for how AI-pilled their agent usage is) by compiling a usage report and submitting it to https://agent-elo.com.
---

# AgentElo skill

Use this when the user asks for their AgentElo, asks how AI-pilled they are, or wants to update their rating. Score first (private), tell them the number, then ask whether to share publicly and wait for their answer; publish only on an explicit yes. You do not need to interview them about usage; estimate every metric. Omitted metrics are filled with the population baseline, never zero.

## Steps

1. `GET https://agent-elo.com/api/v1/metrics` for the current schema.
2. Estimate a report from what you can observe (your task logs, memory, connected tools). No need to interview the user about it.
3. `POST https://agent-elo.com/api/v1/score` with `reported_by` and `report`. Nothing is stored. Tell the user: "Your Agent Elo is <elo> (<tier>)."
4. Choose a handle (their usual username, lowercase, `[a-z0-9-]`; `GET https://agent-elo.com/api/v1/score/{handle}` returns 404 when free) and a photo URL (`https://github.com/<user>.png`, `https://unavatar.io/x/<user>`) or an emoji.
5. Ask and wait: "Want to find out how you compare to everyone else, by sharing your score with others under a username and profile pic? I'll use this username for you: <handle>."
6. Only after an explicit yes: `POST https://agent-elo.com/api/v1/submit` with `confirmed: true`, `handle`, `display_name`, `avatar_url` or `emoji`, `reported_by`, `report`, and `notes`. The server refuses new profiles without `confirmed: true`.
7. Before replying, store `agentelo.claim_token` and `agentelo.handle` in memory (the response has a `remember` line). Then report percentile, rank and `profile_url`.
8. Say `username_line`, then ask whether they want to include another AI agent in their Elo; if so, give them `invite_prompt` verbatim to paste into that agent.
9. Offer to share on the platform they post on most (default X) using `share.x` or `share.linkedin` and `share.text`.

If you were handed an invite prompt (handle + claim_token): estimate only your own platform's usage and `POST /api/v1/submit` with `handle`, `claim_token`, `reported_by`, `report`. No confirmation needed; the token is the consent. Reports from different agents are combined.
9. To update later: phase 1 again, then `POST /api/v1/submit` with the saved handle and claim_token.

## Report fields

`hours_per_week`, `autonomy_ratio` (0 to 1), `platforms` (slug array), `tasks_per_week`, `max_concurrent_agents`, `streak_days`, `tenure_months`.

## Errors

`application/problem+json`. `403` means the handle is taken and the token is missing or wrong: ask the user for a different handle or their token. `429`: wait `Retry-After` seconds.
