---
title: "Publish a topic index for agents · Agent Wranglers"
url: https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/topic-index
id: AGT-67
level: Optional
updated: 2026-10-27
build: a2a6bdfed830
tokens: 728
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Publish a topic index for agents

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

- ID: AGT-67
- Level: Optional
- Chapter: [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md)
- Rule: Offer one small file that maps common topics to the pages that answer them.
- Check: llms.txt links the file. It validates against its JSON schema, and every address in it answers 200.
- How: Publish a file such as `/topics.json`. List each topic with its aliases and the addresses that cover it. Link it from llms.txt, and keep it within the navigation budget of [Layer agent content with a budget per layer](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/layer-budgets.md). Build it from the same aliases as [Give every item the words people use for it](https://agentwranglers.se/playbook/search/language-and-matching/item-aliases.md).

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### JSON example

```json
{
  "topics": [
    { "topic": "Refunds", "aliases": ["money back", "return"], "pages": ["https://example.com/guide/refunds.md"] },
    { "topic": "Shipping", "aliases": ["delivery", "postage"], "pages": ["https://example.com/guide/shipping.md"] }
  ]
}
```

## Related rules

- AGT-48 [Split large agent content into named parts behind an index](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/named-parts-index.md) in Agents as users
- AGT-47 [Layer agent content with a budget per layer](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/layer-budgets.md) in Agents as users
- SRH-16 [Give every item the words people use for it](https://agentwranglers.se/playbook/search/language-and-matching/item-aliases.md) in Search

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/topic-index">Agent Wranglers agents as users playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Answer questions from your own pages](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/nlweb.md)
- Next: [Give in-browser agents your tools](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/webmcp.md)
- [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md)
