---
schema: formation.doc/v0.1
kind: doc
visibility: public
canonical_url: https://topologyindex.com/docs/schemas/domain_index/v0.1.md
document_kind: domain_index
document_schema: formation.domain_index/v0.1
path: /docs/schemas/domain_index/v0.1.md
product_api_version: v1
schema_version: v0.1
title: formation.domain_index/v0.1
---

# formation.domain_index/v0.1

Frontmatter fields of a `domain_index` page. This service publishes these pages and never
accepts one, so the schema is a promise about what it serves: its tests check every page
against it. Prose in the body explains; the frontmatter is what to read.

## Fields

- `schema` (required): exactly `formation.domain_index/v0.1`
- `kind` (required): exactly `domain_index`
- `visibility` (required): exactly `public`
- `path` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
- `canonical_url` (required): https URL, pattern `^https:\/\/[A-Za-z0-9.-]+(?:\/\S*)?$`, at most 512 characters
- `product_api_version` (required): API version, pattern `^v\d{1,4}$`, at most 5 characters
- `schema_version` (required): schema version, pattern `^v\d{1,4}\.\d{1,4}$`, at most 11 characters
- `title` (required): title, pattern `^[^\p{Cc}]+$`, at most 200 characters
- `description` (required): description, pattern `^[^\p{Cc}]+$`, at most 400 characters
- `domains` (required): array of 1 to 7 items, each map (fields listed below). Every task domain, in vocabulary order. A domain is a way into the decision guide, never a ranking of patterns.
- `domains[].domain` (required): one of `coding`, `research`, `documents`, `reasoning`, `evaluation`, `operations`, `security`
- `domains[].title` (required): title, pattern `^[^\p{Cc}]+$`, at most 200 characters
- `domains[].path` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
- `domains[].task_class_prefix` (required): task class prefix, pattern `^[a-z]+\.$`, at most 33 characters. Task classes in the domain start with this prefix (`coding.` for `coding.bugfix`).
- `domains[].evaluable_here` (required): array of 0 to 32 items, each task class, pattern `^[a-z][a-z0-9_]{0,31}(?:\.[a-z][a-z0-9_]{0,31}){1,3}$`, at most 128 characters. The task classes of the domain this deployment can evaluate; empty when it can evaluate none.
- `evaluable_here` (required): array of 0 to 32 items, each task class, pattern `^[a-z][a-z0-9_]{0,31}(?:\.[a-z][a-z0-9_]{0,31}){1,3}$`, at most 128 characters. Every task class this deployment can evaluate.
- `pattern_index` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
- `starter_index` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
- `community_ranking` (required): null or resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters. Null until the community-reported ranking exists; then the path of its separately labeled page. Never mixed with findings.
