Migrate V1 to V2

CmdCal V1 accepted presentationTitle plus slide pattern payloads. CmdCal V2 uses a semantic PresentationSpec document, durable render jobs, brand packs, preflight findings, visual diff, and approval state.

What Changes

  • presentationTitle becomes title
  • slide pattern becomes slideType
  • direct one-shot generation becomes preflight -> render job -> poll job
  • brand-aware layout resolution moves to brandPackId / brandPackVersionId
  • QA findings become stable machine-readable quality_report.findings[]

Old vs New

JSON
{
  "presentationTitle": "Board Update",
  "slides": [
    {
      "pattern": "title",
      "content": {
        "title": "Board Update"
      }
    }
  ]
}
JSON
{
  "version": "2.0",
  "title": "Board Update",
  "slides": [
    {
      "slideType": "title-body",
      "title": "Board Update",
      "body": ["Use semantic content blocks instead of pattern-specific content envelopes."]
    }
  ]
}
  1. Validate the document with POST /api/v2/preflight
  2. Queue or run the render with POST /api/v2/render
  3. Poll GET /api/v2/jobs/:id
  4. Review GET /api/v2/jobs/:id/diff
  5. Approve or reject through POST /api/v2/jobs/:id/approval

Compatibility

AgentDocumentSchema remains available as a library contract for presentation-shaped inputs, but the hosted platform in this repo is V2-first. New integrations should use /api/v2/preflight and /api/v2/render; if you still depend on the old V1 wire format, translate it before calling the hosted V2 endpoints or keep that compatibility layer in your own app.