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

# formation.pattern/v0.1

Frontmatter fields of a `pattern` 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.pattern/v0.1`
- `kind` (required): exactly `pattern`
- `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
- `aliases` (required): array of 0 to 32 items, each alias, pattern `^[^\p{Cc}]+$`, at most 96 characters. Other names the same arrangement goes by in papers and frameworks.
- `references` (required): array of 0 to 32 items, each https URL, pattern `^https:\/\/[A-Za-z0-9.-]+(?:\/\S*)?$`, at most 512 characters. Primary sources that describe the arrangement. A source is not a result.
- `published_findings` (required): array of 0 to 64 items, each map (fields listed below). What published studies found about this pattern, attributed and stated without figures. None of it is evidence produced here. The body names each source in one line; each finding in words is on `findings_page`.
- `published_findings[].source_id` (required): source identifier, pattern `^(?:arxiv:\d{4}\.\d{4,5}|web:[a-z0-9.-]+(?:\/[A-Za-z0-9._~-]+)+)$`, at most 256 characters. Canonical identifier of the cited source: `arxiv:{id}` for an arXiv paper, `web:{host}{path}` otherwise. One source has one identifier on every page, so findings gathered from several pages can be deduplicated.
- `published_findings[].url` (required): https URL, pattern `^https:\/\/[A-Za-z0-9.-]+(?:\/\S*)?$`, at most 512 characters. The canonical URL of the source.
- `published_findings[].direction` (required): one of `helped`, `no_clear_gain`, `hurt`, `mixed`, `not_tested`. How the page's pattern fared against `compared_against`, as the source reports it: `helped`, the pattern did better than the comparison; `no_clear_gain`, no clear difference between the pattern and the comparison; `hurt`, the pattern did worse than the comparison; `mixed`, better in some conditions and worse in others; `not_tested`, the source documents the problem the pattern addresses but did not test the pattern itself. A direction is a reason to test an arrangement, never a result for it.
- `published_findings[].compared_against` (required): comparison, pattern `^[^\p{Cc}]+$`, at most 200 characters. What the pattern was compared with, in words. It names the comparison, never the page’s own pattern.
- `published_findings[].task_domain` (required): task domain, pattern `^[^\p{Cc}]+$`, at most 160 characters. The task domain as the source states it, in words. Not a closed vocabulary.
- `published_findings[].task_domains` (required): array of 0 to 7 items, each one of `coding`, `research`, `documents`, `reasoning`, `evaluation`, `operations`, `security`. The task domains of `/domains/{domain}.md` the finding belongs to (`TASK_DOMAINS`: `coding`, `research`, `documents`, `reasoning`, `evaluation`, `operations`, `security`); empty when it belongs to none. `security` is agents doing security work; attacks on agents are not tagged with it.
- `published_findings[].benchmarks` (required): array of 0 to 16 items, each benchmark, pattern `^[^\p{Cc}]+$`, at most 80 characters. Benchmark identifiers exactly as the source names them; empty when it names none.
- `pattern` (required): one of `single_agent`, `fan_out`, `map_reduce`, `independent_workers`, `lane_swarm`, `supervisor`, `planner_worker`, `role_pipeline`, `hierarchical_delegation`, `blackboard`, `shared_ledger`, `mailbox_network`, `implement_review`, `critic_loop`, `council`, `debate`, `dynamic_spawning`, `coordinator_election`, `adaptive_routing`, `tree_search`, `architecture_search`, `successor_handoff`, `signed_coordination`
- `family` (required): one of `baseline`, `parallelism`, `hierarchy`, `shared_state`, `verification`, `adaptive`, `continuity`
- `executable_here` (required): boolean. Whether the runner of this deployment provides every entry of `executor_requirements`. It says nothing about how well the arrangement works.
- `executor_requirements` (required): array of 1 to 14 items, each one of `sequential_role_invocations`, `declared_handoff_on_measured_signal`, `bounded_repeat_activation`, `review_only_role`, `concurrent_role_invocations`, `shared_writable_state_between_agents`, `agent_to_agent_messages`, `aggregation_over_agent_opinions`, `role_creation_at_runtime`, `authority_election_at_runtime`, `routing_on_unmeasured_conditions`, `configuration_change_during_run`, `context_carried_between_episodes`, `identity_attestation_between_agents`. What the arrangement needs from whatever executes it.
- `unmet_executor_requirements` (required): array of 0 to 14 items, each one of `sequential_role_invocations`, `declared_handoff_on_measured_signal`, `bounded_repeat_activation`, `review_only_role`, `concurrent_role_invocations`, `shared_writable_state_between_agents`, `agent_to_agent_messages`, `aggregation_over_agent_opinions`, `role_creation_at_runtime`, `authority_election_at_runtime`, `routing_on_unmeasured_conditions`, `configuration_change_during_run`, `context_carried_between_episodes`, `identity_attestation_between_agents`. The requirements this deployment’s runner does not provide.
- `qualifying_evidence` (required): array of 0 to 64 items, each resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters. Evidence snapshots about this pattern. Always empty: evidence attaches to a complete execution configuration, never to a pattern.
- `observed_in` (required): array of 0 to 64 items, each resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters. Research records that report observing this arrangement.
- `findings_page` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters. The findings of this page in words (`/patterns/{pattern}/findings.md`): each sentence, comparison, domain, caveat and source.
- `pattern_index` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
