---
title: "Use one name for each thing in every agent · Agent Wranglers"
url: https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/one-name-everywhere
id: AGT-74
level: Recommended
updated: 2026-10-27
build: a2a6bdfed830
tokens: 824
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Use one name for each thing in every agent file

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-74
- Level: Recommended
- Chapter: [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md)
- Rule: Give each section, product or document one name. Use it in the page title, the `h1`, the front matter, llms.txt, the JSON files and the agent cards.
- Check: A script reads the name of every section from each of those files and fails on any difference.
- How: Agents match names across files. If llms.txt says "Billing" and the page says "Payments", an agent may treat them as two things. Keep each name in one data file, and build every page and machine file from it, as [Write each page once for every format](https://agentwranglers.se/playbook/website/site-architecture/one-source-many-formats.md) says. The general habit is [State each value in one document and link to it](https://agentwranglers.se/playbook/documentation/keeping-docs-current/one-home-per-value.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.

### JavaScript example

```js
const names = { page: h1Of(html), front: frontMatter.title, llms: llmsTitleFor(url), json: catalog[id].name };
const distinct = new Set(Object.values(names));
if (distinct.size > 1) throw new Error(`${id} has ${distinct.size} names: ${[...distinct].join(' / ')}`);
```

### Python example

```python
names = {"page": h1_of(html), "front": front_matter["title"], "llms": llms_title_for(url), "json": catalog[item_id]["name"]}
if len(set(names.values())) > 1:
    raise AssertionError(f"{item_id} has several names: {names}")
```

## Related rules

- WEB-17 [Write each page once for every format](https://agentwranglers.se/playbook/website/site-architecture/one-source-many-formats.md) in Website
- DOC-47 [State each value in one document and link to it](https://agentwranglers.se/playbook/documentation/keeping-docs-current/one-home-per-value.md) in Documentation
- SEO-74 [Write pages an AI answer can quote](https://agentwranglers.se/playbook/seo/ai-search-answers/quotable-pages.md) in SEO

**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/one-name-everywhere">Agent Wranglers agents as users playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Resolve retired IDs everywhere](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/resolve-retired-ids.md)
- Next: [Keep feeds to recent changes](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/recent-changes-feed.md)
- [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md)
