# Erratum — draft-fossil-sync-protocol-01 §9

| | |
|---|---|
| **Document** | `draft-fossil-sync-protocol-01` |
| **Section** | 9 — Pragmas (the defined-name lists and the extension-pragma production) |
| **Type** | Editorial (the extension documents' pragma names are nowhere listed where a reader of this draft looks for pragma names) |
| **Status** | Applied in `draft-fossil-sync-protocol-01` (2026-10-17) |
| **Reported** | 2026-10-17 |
| **Submitter** | Dan Mestas |
| **Found via** | Writing `draft-fossil-horizon-00` §6, which defines six pragmas and relies on this section's ignore rule |

## 1. Summary

§9 lists the pragma names the reference implementation defines in each
direction and reserves the extension-pragma production for any other
name. Two extension documents, `draft-fossil-sparse-cone-00` and
`draft-fossil-horizon-00`, define pragmas and rely on the ignore rule for
their degradation story, but a reader of this draft has no way to learn
that those names exist or where they are specified.

## 2. Location

§9, after the first paragraph ending "and link."

## 3. The reference behavior

Unchanged. Fossil ignores every name outside its own lists, which is
exactly what the extension documents depend on. This erratum lists the
names; it defines nothing.

## 4. Impact

Editorial. No behavior changes. A reader implementing only this draft
is unaffected; a reader implementing an extension finds the pointer.

## 5. Correction

§9, new second paragraph:

```diff
    version, uv-push-ok, uv-pull-only, ci-lock-fail, avoid-delta-
    manifests, and link.
+
+   Extension documents define further names, which a receiver that does
+   not implement them takes down the ignore path above: cone and cone-
+   not (draft-fossil-sparse-cone, client-to-server); horizon, horizon-
+   structural, horizon-seed, and horizon-mergebase (draft-fossil-
+   horizon, client-to-server); horizon-below, horizon-seed, horizon-
+   mergebase, and horizon-served (draft-fossil-horizon, server-to-
+   client).  Each is an extension pragma in the sense of the production
+   below and is specified by the document that names it.
```

## 6. Rationale

The defined-name lists are where an implementer looks to learn which
pragmas exist. Keeping the extension names out of the "defined" lists
preserves the reference behavior exactly; naming them in a separate
paragraph tells the reader where to go. `horizon-seed` and
`horizon-mergebase` appear in both directions by design: the request
names what the client holds or asks, the reply names what the origin
sends or found.

## 7. Verification

- `draft-fossil-sparse-cone-00` §6.1 defines cone and cone-not.
- `draft-fossil-horizon-00` §6.1 through §6.2.5 define the eight horizon
  cards under six names.
