# The Indexer System ## What an Indexer is An Indexer is an Agent skill that helps the Agent expose a source's skeleton and write source-grounded articles from it. It is guidance for reading and writing, not a mandatory full scan and not a classifier inside the CLI. The CLI prepares each stage, supplies its material and acceptance rules, and checks the result; the Indexer contributes how to investigate and explain one kind of source. ## Four built-in Indexers | Indexer | Reads | Starts from | Source | | --- | --- | --- | --- | | `context-code-indexer` | Repository modules | Directory and file navigation, manifests, entries and registrations; detailed code reading during writing | [GitHub](https://github.com/context4ai/context/tree/main/plugins/context/skills/context-code-indexer) | | `context-markdown-indexer` | Captured documents and same-repository docs | Titles, bounded opening excerpts and H2/H3 outlines; full text before writing | [GitHub](https://github.com/context4ai/context/tree/main/plugins/context/skills/context-markdown-indexer) | | `context-note-indexer` | Saved notes, excerpts and observations | Direct reading, no parser | [GitHub](https://github.com/context4ai/context/tree/main/plugins/context/skills/context-note-indexer) | | `context-sessions-indexer` | Saved conversation summaries | Direct reading, no parser | [GitHub](https://github.com/context4ai/context/tree/main/plugins/context/skills/context-sessions-indexer) | All four are installed with the plugin and discoverable in every supported host. Installing an Indexer makes it available; it does not select it. [Community Indexers]() describes each one in more detail. ## How the workflow uses them ```mermaid flowchart LR req["Requirements"] --> plan["Planning"] plan -->|"picks Indexers"| usage["indexer_usage"] usage --> write["Stage writing"] write -->|"CLI checks"| cand["Candidates"] ``` - `src/indexers.yaml` holds only confirmed requirements: purpose, reader goals, coverage domains and authorized sources. - During planning the Agent chooses the relevant Indexers and records them as `indexer_usage` in the temporary plan; that choice is not persisted on articles. - Several Indexers may explain different aspects of the same module, and their findings can support one article. There is no primary owner, no Provider resolution step and no version or hash pinning of skills. - Each writing task produces Markdown and references in a temporary directory; the CLI accepts them and owns Candidates, Review and formal output. ## Creating your own When a technology or document family needs specialist guidance, `/c4a:context-indexer-create` writes a new reusable Indexer skill in a directory you choose. A new Indexer starts with a useful skeleton — source structure, recognizable features, names, established counts and entry locations — and may add a bounded helper for its technology. It delivers a `SKILL.md` plus only the references, templates or scripts that help, and is validated against realistic anonymous material. It does not register a Provider manifest or start production; after installation it is available for the Agent to select. See [Creating an Indexer]() for the step-by-step guide and [Providers and Customization]() for combining, replacing and disabling Indexers. Where a needed structural fact is missing, writing guidance cannot create it — that calls for a parser. See [Code Extraction](). --- ## Sources - [context/packages/context/docs/guides/indexer-provider-and-customization.md L7–L13 · 3b0ce0a]() - [context/packages/context/docs/guides/indexer-provider-and-customization.md L75–L81 · 3b0ce0a]() - [context/plugins/context/skills/context-code-indexer/SKILL.md L16–L31 · 3b0ce0a]() - [context/plugins/context/skills/context-markdown-indexer/SKILL.md L24–L38 · 3b0ce0a]() - [context/plugins/context/skills/context-note-indexer/SKILL.md L11–L27 · 3b0ce0a]() - [context/packages/context/docs/reference/project-api.md L204–L215 · 3b0ce0a]() - [context/packages/context/docs/guides/indexer-provider-and-customization.md L23–L43 · 3b0ce0a]() - [context/plugins/context/skills/context-code-indexer/SKILL.md L22–L25 · 3b0ce0a]() - [context/plugins/context/skills/context-indexer-create/SKILL.md L10–L41 · 3b0ce0a]() - [context/packages/context/docs/reference/code-extractors.md L37–L45 · 3b0ce0a]()