Skip to content

feat: detect and retain DOCX text boxes / callout shapes; surface them for review #409

Description

@thewrz

Why

Sometimes text boxes, callouts and inserted comments are included in a master spec and exist in draft form, but must be deleted before Final — with routing semantics (a text box addressed to a reviewer is deleted by that reviewer; one addressed to editors by editors). SpecR covers the comments third of this item well; text boxes and callout shapes are entirely unmodeled — the parser never extracts them, so their content is invisible to review and silently absent from round-trip output.

Verified current state (2026-07-07):

Proposed scope

  1. Detect text-box/callout content at parse time (drawing + VML paths in the OOXML body) and retain it — per ADR-038, as source facts or a raw sidecar anchored to the nearest paragraph, never silently dropped.
  2. Surface a per-spec/per-project report of text boxes with their text (so a reviewer can route each one to whoever owns its removal), either extending the open-comments report shape or as a coordination finding — decide in impl.
  3. Feed the issuance-readiness gate (companion issue): text boxes present → Final blocker/warning.

Non-goals

Pointers

ADR-038 (hidden OOXML retained), #291/#293/#300 (the retain-and-warn family this extends), src/parser/docx/comments.ts + open-comments.ts (report shape to mirror).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status
    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions