---
title: "Coverage of the friction matrix"
canonical: https://guavaindex.com/specs/roadmap
modified: 2026-11-10T08:36:22Z
lang: en
---

# Coverage of the friction matrix

Where each of the 29 issues in the Agent Friction Matrix stands. "Built" means working code with tests in this repo. "Built, both sides" means the agent side (agent-index) and the site side (the `AgentFriendly` middleware) both work over real HTTP, so any Python site can adopt it today; what is left is for sites, networks or other agents to take it up.

| # | Issue | Status | Where | What remains outside this repo |
|---|---|---|---|---|
| 1 | HTML noise eats tokens | Built | `extract.py`, [agent-view](/specs/agent-view) | |
| 2 | Search ranks for clicks, not answers | Built | Hybrid search in `store.search` and `embed.py` | |
| 3 | Agents borrow the user's session | Built, both sides | Grants in `identity.py`, wallet in `wallet.py`, `agent-index grant` / `revoke`, verification in `site.py` | Sites adopting grants; OAuth token-exchange issuance for sites that run OAuth |
| 4 | Context fills with repeated tool output | Built | `cache.py` reader diffs | |
| 5 | JavaScript pages need a browser | Built | `render.py` | |
| 6 | Forms driven by pixels or selectors | Built, both sides | Manifests and handlers in `actions.py` / `site.py`, `call_action` | Sites publishing manifests |
| 7 | No scoped spending limits | Built, both sides | Mandates in `payments.py`, checked by the wallet and the merchant | |
| 8 | Sites can't tell which agent acts for whom | Built, both sides | RFC 9421 signed grants, `scope["agent"]` | Sites adopting grants |
| 9 | Bot detection blocks legitimate agents | Built, both sides | Web Bot Auth signing and key directories in `httpsig.py` | Hosting the key directory; bot-management vendors listing the agent |
| 10 | Weak self-verification | Built (partial) | `verify.py`: numbers and names checked against the cited source | Checking meaning, not just figures and names |
| 11 | Most sites have no action API | Built, both sides | `AgentFriendly(handlers=...)` serves the manifest's actions | Sites adopting it |
| 12 | Over-exploration | Built | `search` before `fetch` | |
| 13 | No freshness, canonical or spam signal | Built | `provenance.py` | |
| 14 | Agents duplicate each other's work | Built | Shared cache and `Fetcher.memo` | |
| 15 | Memory between sessions is ad hoc | Built | `memory.py`, [agent-memory](/specs/agent-memory) | |
| 16 | OAuth scopes are coarse and long-lived | Built, both sides | One-site, one-hour grants; narrowest grant per request; signed revocation | Same as #3 |
| 17 | Checkout assumes a human with a card | Built, both sides | Mandate-signed checkout actions, `ctx.charge` | Settling with real payment providers |
| 18 | Approval prompts are all or nothing | Built | `approvals.py`, enforced on every spend, send and delete | |
| 19 | Long tasks have no checkpoints | Built | `checkpoint.py`, [handoff](/specs/handoff) | |
| 20 | Handoffs pass free text | Built | `checkpoint.py`, [handoff](/specs/handoff) | |
| 21 | robots.txt says nothing about terms | Built, both sides | `sitepolicy.py`; enforced by `fetch`, the crawler and the middleware | Sites publishing policies |
| 22 | No discovery of who can do a task | Built (shared index scale) | Manifests from `discover_actions` and `index_site` stored in the index; `find_action` | A public registry at web scale |
| 23 | Multi-step flows have no machine-readable steps | Built, both sides | Flows in `actions.py`, resumable on failure | Sites publishing flows |
| 24 | Micropayments are impractical | Built, both sides | HTTP 402 with `Agent-Price`, auto-pay within policy | Batched settlement with a payment provider |
| 25 | Pagination hides data | Built | `next_url`, `crawl`, scrolling in `render.py` | |
| 26 | Errors are red text | Built, both sides | `errors.py`: structured errors on sites, any response normalized for agents | |
| 27 | No shared trust or reputation layer | Built (index) + spec + prototype (agents) | Source accuracy in search; signed attestations in `trust.py` | A public attestation log |
| 28 | No refund and receipt trail | Built, both sides | Durable hash-chained ledger, `Agent-Receipts`, refunds, receipt audit | |
| 29 | No negotiation protocol | Built, both sides | `/.well-known/agent-negotiate`, `negotiate` tool, agreed price enforced at checkout | Other agent frameworks speaking the protocol |
