# ADR-102 Modern CDR Conversion Must Originate From CorelDRAW; Cloud Converters Only for Legacy CDRs

## Status

Accepted, 2026-07-02. Refines ADR-101 (SVG remains the working format; this ADR changes
where the SVG/PDF comes from for modern .cdr files).

## Status History

```yaml
status_history:
  - date: 2026-07-02
    status: Accepted
    changed_by: hkl
    reason: Empirical gate test — CloudConvert cdr→svg AND cdr→pdf both dropped all content of a modern bitmap-heavy CDR
    changed_via: adr-kit (360lm)
```

## Context

ADR-101 designated `.cdr → CloudConvert → SVG` as the primary conversion leg. Gate #1
(visual diff vs the CDR's embedded thumbnail) was executed 2026-07-02 on the real 141 MB
IdeaPad sample (modern zip-package CDR, 1.38 GB embedded bitmaps):

- `cdr→svg` (144 s, ~1 credit): 9.8 KB output — correct page box (2520×5184 pt = 35×72 in),
  **2 paths, 0 images, 0 text**. Rendered: blank white.
- `cdr→pdf` (192 s, ~1 credit): 1.1 KB output — 1 page, **0 image XObjects**. Also empty.
- CloudConvert's converter is Inkscape/libcdr (visible in output namespaces) — the same
  open-source reader as our local `libcdr-tools`. No non-Corel tool decodes the modern
  package's `Bitmaps.dat`.

Geometry survives every route (page size extraction remains reliable and free locally);
CONTENT does not.

## Decision

- For **modern (zip-package) .cdr** files — the normal case for client creatives — the
  conversion to an open working format (SVG or PDF) **must be produced by CorelDRAW itself**
  via the laptop COM bridge (MDD Phase 2B machinery, now promoted to the conversion source):
  bridge exports SVG/PDF/TIF; the VPS continues to own verdicts, adaptation, rasterization
  and orchestration. ADR-101's SVG-centric processing stands — only the source changes.
- **CloudConvert remains** for: legacy RIFF-era .cdr (pre-X4), all non-CDR conversions, and
  preview-grade needs. Its key stays configured in cad-proxy.
- Every intake MUST run the visual-diff gate (rendered conversion vs embedded thumbnail)
  regardless of converter — silence on dropped content is how a blank standee gets printed.
- `vcc-creative-check` verdicts (dimensions, ratio, scale factor) stay fully local/free —
  unaffected by this ADR.

## Alternatives Considered

1. **Accept vector-only SVG output.** Rejected: client creatives are predominantly bitmap
   compositions; a correct page box with no content is worthless for print.
2. **Other cloud APIs (Aspose, ConvertAPI, Zamzar).** Not retested per-vendor, but all
   known non-Corel CDR readers derive from libcdr/UniConvertor lineages; treat any vendor
   claim as unproven until it passes the same thumbnail-diff gate on a modern sample.
3. **Ask clients for PDF/SVG source.** Still worth requesting as a norm (add to client
   comms), but intake cannot depend on it.

## Consequences

- Phase 2B (CorelDRAW COM bridge over the Syncthing job folder) is now on the critical
  path for full automation of modern creatives; laptop availability becomes a pipeline
  dependency for the conversion step only.
- Until the bridge exists, the current human flow continues for content work, but with the
  new automated pre-checks (thumbnail preview + dimension verdict) removing the
  measure-and-compare step.
- CloudConvert credits are not wasted on modern CDRs anymore (2 credits spent proving this).
