Creative QA
Use When
- Record human-in-the-loop quality judgments for generated images, voice takes, video renders, and final exports.
- Use after a person has reviewed an asset and you need structured verdicts, reasons, issue categories, blame stage, proposed action, and rerun guidance.
Do Not Use When
- No human verdict exists yet.
- The user wants autonomous AI approval.
- The task is prompt critique before generation; use preflight or prompt QA instead.
Required Input
- Human reviewer verdict and reasons.
- Target object type, id, and version.
- Reviewer and review timestamp.
- Proposed action.
Human Rule
Humans decide quality. AI may summarize notes, normalize categories, and suggest likely blame stages, but only human-confirmed feedback becomes the durable QA record.
Do not invent approval, rejection, or reviewer intent.
Default Workflow
- Confirm the reviewed asset: type, id, version, and optional campaign/persona/concept linkage.
- Confirm the human reviewer, timestamp, verdict, and reasons.
- Normalize reasons into
goodReasons,badReasons, issue categories, and blame stage. - Decide proposed action: approve, rerun a specific stage, revise source input, or reject.
- If rerun guidance exists, build a feedback handoff with a concrete
rerunTarget. - Store or return the structured QA record next to the reviewed object or in the work folder's QA area.
Supported Objects
imagevoice_takevideo_renderfinal_export
Verdicts
Valid verdicts are approved, revise, and reject.
For revise or reject, require non-empty badReasons and issueCategories. For approved, these may be empty arrays.
Categories
Common issue categories:
lip_sync,persona_drift,audio_style,audio_pacing,hook_weak,ad_like,ugc_native_feel,visual_realism,subtitle_accuracy,mixed
Common blame stages:
image,script,voice,render,subtitle,mixed
Use blame stage as diagnostic guidance, not as a substitute for human verdict.
Stop Conditions
- Stop when required user intent, source evidence, or owned input artifacts are missing and guessing would change the result.
- If an owned CLI or script command fails, report the exact error and stop. Do not bypass the failure with metadata-only answers, readiness probing, local payload rewrites, fallback providers, or unpublished tools.
Output Shape
qaReport:
qaReportId,targetObjectType,targetObjectId,targetVersion,campaignId,personaId,conceptId,reviewer,reviewedAt,verdict,goodReasons,badReasons,issueCategories,blameStage,scores,proposedAction,status
Optional feedbackHandoff:
feedbackId,qaReportId,targetObjectType,targetObjectId,feedbackCategory,feedbackText,dependencyImpact,rerunTarget
Anti-Patterns
- silently approving an asset
- replacing a human verdict with an AI guess
- using vague stage labels as rerun targets
- losing linkage to the reviewed object version
- preserving subjective chat notes without structured reasons
Handoff
- Return the structured QA record structured output or an explicit blocker. If feedback is present, hand off to the named rerun target with the QA record attached.
Public Command Boundary
- Choose the smallest matching command or workflow from the user input and run it directly.
- If an owned CLI or script command fails, report the exact error and stop. Do not bypass the failure with metadata-only answers, readiness probing, local payload rewrites, fallback providers, or unpublished tools.