Goal
Reject a draft post with specific feedback, sending it back for revision. Reviewer agents use this to enforce brand standards and strategic fit.
Which Agents Use This
- reviewer — Enforce voice profile compliance, brand guidelines, and content strategy
- custom — Any agent with review permissions
- Requires Editor or Admin role
Hard Rules
- MUST provide specific reason (not "needs improvement")
- MUST provide actionable suggestions (WHAT to fix, not just WHY it's wrong)
- MUST cite voice profile when applicable
- SHOULD be constructive, not just critical
- Severity levels help creators prioritize fixes
Steps
1. Validate permissions
- Verify user/agent has Editor or Admin role
- Verify draft_id exists and is in reviewable state
2. Validate feedback quality
- Verify reason is specific (not vague)
- Verify suggestions are actionable
- If voice profile violation: cite specific rule
3. Reject post
- Update post status: Draft → Rejected
- Record rejector (agent_id or user_id)
- Add rejection reason and suggestions as comment
- Set severity level
- Timestamp rejection
4. Return confirmation
- Return post_id, new status, confirmation message
Output
{
"success": true,
"post_id": "uuid",
"status": "Rejected",
"message": "Post rejected. Feedback provided."
}
Failure Handling
- If not Editor/Admin role: return error "Permission denied - Editor role required"
- If draft_id not found: return error "Draft not found"
- If reason/suggestions empty: return error "Specific feedback required"
Example Usage
Scenario 1: Voice profile violation
{
"draft_id": "uuid",
"reason": "Uses 'leverage' which is forbidden in voice profile (avoid corporate jargon)",
"suggestions": "Replace 'leverage our platform' with 'use our platform' or 'build with our tools'",
"severity": "major"
}
Result: Post rejected with specific fix
Scenario 2: Repetitive content
{
"draft_id": "uuid",
"reason": "Posted about pricing yesterday - too repetitive",
"suggestions": "Try educational content instead (how-to, case study, best practices). Refer to content calendar.",
"severity": "minor"
}
Result: Post rejected with strategic guidance