Files
HartOMat/docs/workflows/WORKFLOW_DELIVERY_CHECKLIST.md
T

5.9 KiB

Workflow Delivery Checklist

Parallel execution ownership and stage gates are defined in docs/workflows/WORKERS.md.

Phase Checklist

Phase 1

  • Canonical workflow schema finalized
  • Frontend and backend workflow types aligned
  • Preset workflow migration helpers added
  • Tests added for legacy preset conversion
  • Legacy dispatch remains default

Phase 2

  • Node registry implemented
  • Node definitions API available
  • All required nodes have settings schemas
  • Editor consumes node definitions from backend

Phase 3

  • Missing legacy steps extracted into reusable executors
  • Extracted node behavior matches legacy services
  • Node-level tests cover success and failure paths
  • Progress: Phase 3 parity nodes are extracted, covered by targeted runtime tests, and exercised through the workflow executor with legacy-safe bridge dispatch.

Phase 4

  • Workflow context introduced
  • Node outputs are persisted and reusable
  • Graph runtime supports legacy fallback
  • legacy, graph, and shadow modes exist
  • Progress: Workflow configs now normalize to an explicit execution mode, the editor exposes and persists legacy/graph/shadow, production order-line dispatch can opt into graph mode with hard fallback to legacy on graph failure, workflow runs persist their execution mode, notify handoff is armed only for authoritative graph renders, and output_save is now graph-authoritative for still renders, turntable/video renders, and .blend exports while shadow runs remain observer-only.

Phase 5

  • Editor saves nodes and edges
  • Editor roundtrip preserves workflow configs
  • All node settings are editable
  • Validate, dry-run, and dispatch are available
  • Runs are visible with node-level status and logs
  • Editor authoring follows family-safe module contracts instead of ad hoc node metadata

Phase 7

  • Output-type create defaults match current backend constraints
  • Output types model workflow invocation profiles
  • Output types validate against workflow family and artifact contract
  • Admin create/edit flow is workflow-first instead of renderer-first

Phase 6

  • Shadow mode parity execution dispatches real graph observer runs alongside authoritative legacy dispatch
  • Progress: Workflow runs now expose a comparison endpoint that resolves authoritative legacy outputs and matching shadow artifacts, including file hashes, image dimensions, and mean pixel delta for parity inspection.
  • Progress: scripts/test_render_pipeline.py --workflow-still-smoke --execution-mode shadow now provisions the canonical still smoke contract, runs preflight, dispatches via the real order/output-type workflow linkage, resolves the resulting workflow run, and prints the shadow comparison verdict.
  • Golden cases pass against legacy outputs
  • Rollout can be enabled per workflow or output type
  • Rollback to legacy is immediate

Quality Gates

QG-1: Model Gate

  • New workflow saves only use canonical schema.
  • Backend rejects malformed configs with clear errors.
  • Existing preset workflows can be migrated without data loss.

QG-2: Node Gate

  • Every editor-visible node has:
    • backend node definition
    • validated settings schema
    • default params
    • family and module contract metadata
    • executor coverage or explicit disabled status

QG-3: Legacy Safety Gate

  • Legacy render dispatch remains callable and unchanged in behavior.
  • Existing output types still render without workflow migration.
  • Graph failures do not block legacy renders.

QG-4: Parity Gate

  • Golden cases match on:
    • render status
    • generated output file
    • media asset creation
    • notifications
    • core render log fields
  • For graph still renders with downstream output_save, no duplicate self-published MediaAsset is created before the authoritative graph save step completes.
  • For graph turntable/video renders with downstream output_save, no duplicate self-published MediaAsset is created before the authoritative graph save step completes.
  • For graph .blend exports with downstream output_save, no duplicate self-published MediaAsset is created before the authoritative graph save step completes.

QG-5: Editor Gate

  • Workflow configs survive save/load roundtrip without loss.
  • Invalid graphs are blocked before dispatch.
  • All node settings needed for parity are present in the editor.
  • Family-specific authoring prevents invalid cad_file/order_line graph composition.

QG-7: Invocation Gate

  • Output type creation and editing use valid backend defaults.
  • Output types bind to workflows through an explicit invocation contract.
  • Legacy output types remain renderable during migration.

QG-6: Rollout Gate

  • Shadow mode has been exercised on representative workflows.
  • Graph runtime error rate is at or below legacy error rate.
  • Rollout and rollback are possible per workflow or output type.
  • Canonical still rollout smoke commands:
    • python scripts/test_render_pipeline.py --workflow-still-smoke --execution-mode legacy
    • python scripts/test_render_pipeline.py --workflow-still-smoke --execution-mode graph
    • python scripts/test_render_pipeline.py --workflow-still-smoke --execution-mode shadow
  • Rollout approval rule for the canonical still workflow:
    • shadow must finish with a successful order line and a comparison verdict of pass
    • warn or fail means legacy remains authoritative
    • graph may only be enabled on real output types after the shadow command passes cleanly

Definition of Done

  • /workflows is production-capable for authoring and running workflows.
  • Legacy functionality is available in graph form with parity coverage.
  • Legacy execution still exists as a supported fallback.
  • Output types are modeled as workflow invocation profiles, not as loose legacy render presets.