Coframe Annotations@coframe-gtm/annotations v1.2.0 AFS 1.1

Schema — AFS 1.1 #

Wire-compatible with the Agentation Format Schema, with one deliberate difference: comment (and every thread message) is Markdown, not plaintext — so a single annotation can carry inline images, code, and links.

FieldTypeNotes
idreqstringULID; generated if omitted.
commentreqstringMarkdown. The annotation body.
elementPathreqstringShort, human-readable selector (id / data-testid / tag.class).
elementreqstringTag name of the target.
x / yreqnumberx = % of viewport width; y = px from doc top (or viewport if fixed).
timestampreqnumberEpoch ms.
urloptstringPage URL at capture.
boundingBoxoptBoundingBox{ x, y, width, height }, document-relative.
fullPathoptstringCanonical CSS path from <body> (re-query key).
selectedTextoptstringSet for text-selection annotations.
isMultiSelectoptbooleanTrue for multi-element; see elementBoundingBoxes.
elementBoundingBoxesoptBoundingBox[]Per-element rects of the selected set.
reactComponentsoptstringNearest named React component(s) + props.
computedStylesoptstringCurated layout-relevant computed CSS.
cssClasses / accessibility / nearbyText / nearbyElementsoptstringForensic disambiguators.
intentoptenumfix · change · question · approve
severityoptenumblocking · important · suggestion
kindoptenumfeedback (default) · placement · rearrange
statusoptenumpending · acknowledged · resolved · dismissed
threadoptThreadMessage[]{ id, role, content (Markdown), timestamp }
authoroptobject{ kind: "human" | "agent", id?, displayName? }