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

# formation.pattern_findings/v0.1

Frontmatter fields of a `pattern_findings` 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_findings/v0.1`
- `kind` (required): exactly `pattern_findings`
- `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
- `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`. The pattern whose findings this page gives in words.
- `published_findings` (required): array of 0 to 64 items, each map (fields listed below). The typed list of the pattern page, in the same order as the findings in the body. None of it is evidence produced here.
- `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_page` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters. The pattern page these findings are filed under.
- `pattern_index` (required): resource path, pattern `^\/[A-Za-z0-9._~/-]{0,255}$`, at most 256 characters
