---
title: mattpocock-context-map-structure-invalid
description: Reports a root CONTEXT-MAP.md that does not match the Matt Pocock Profile's context-map structure.
---

[← All Rules](/rules/)

## What it does

Requires one `# Context Map` heading, a `## Contexts` list with at least one described local link to a `CONTEXT.md`, and a `## Relationships` list with at least one described `A → B: guidance` or `A -> B: guidance` entry.

## Why it matters

The map needs explicit context documents and described relationships in a machine-checkable authored structure.

## Examples

### Non-passing

```md title="CONTEXT-MAP.md"
# Other Map

## Contexts

- Billing has no link.

## Relationships

Billing depends on Payments
```

### Passing

```md title="CONTEXT-MAP.md"
# Context Map

## Contexts

- [Billing](src/billing/CONTEXT.md): Owns billing behavior.

## Relationships

- Billing → Payments: Billing sends payment requests.
```

## When it applies

This is a declarative requirement of the `mattpocock@1` Profile. Selecting that Profile applies it when the optional root `CONTEXT-MAP.md` exists; it is not selected through the `rules` array.

## References

See [Presswork Configuration](/configuration/#mattpocock1) for the Profile contract and [`src/profile-requirements.ts`](https://github.com/evilkiwi/presswork/blob/main/src/profile-requirements.ts) for context-map evaluation.
