Approval gates are easy to model incorrectly. A workflow reaches a human review point, the worker stops, and the system is tempted to treat the worker as successful. That may be true for the job, but it is not true for the workflow.

An approval gate is not terminal success. It is an explicit pause state. The workflow has not completed. It is waiting for a human decision before the next step can run.

The data model should make that distinction obvious. Previous steps may be completed. The approval step should be marked waiting for approval. The workflow run should also be marked waiting for approval. An approval queue record should be created with the context a reviewer needs.

Once that state is persisted, active execution should stop. The system should not keep a worker alive while a human decides. A later approval should create a continuation job that resumes from the persisted state.

Approval is only one branch. If the reviewer approves, the approval decision is recorded, the approval step completes, and the workflow queues the next execution job. If the reviewer rejects, the decision is recorded, the approval step is rejected, remaining steps are canceled, and the workflow run is canceled.

Redo deserves its own treatment. A reviewer may not want to approve or reject outright. They may want the prior task revised. That should be represented as a decision that queues a revision or continuation path, not as an invisible manual correction.

This matters because approvals are often the control point for customer-facing, billing, publishing, executive, or compliance-sensitive work. The system needs to show who decided, what they saw, what output was reviewed, and why the workflow continued or stopped.

The product experience should avoid brittle shortcuts such as assuming every approval leads to a CMS draft or a single kind of artifact. Approval context may include generated output, tool results, payloads, errors, customer records, or reviewer notes.

A good approval system gives operators confidence because it treats human decisions as first-class workflow state. The workflow is not hiding between automation and manual review. It is paused, inspectable, and resumable.