# Design: Design reject → clarification → redesign loop

**Date:** 2026-09-15  
**Status:** Approved (Approach 1) — implementing

## Goal

When a human rejects a design in `DESIGN_REVIEW`, Agent Nova must **not** fail the run. Instead it asks for clarification, waits for the user’s reply, regenerates requirements + design, and pauses again for approve/reject. Unlimited loops until approve.

## Flow

```
DESIGN_REVIEW
  ├─ approve → design_approve → IMPLEMENTING → … → PR_CREATED
  └─ reject  → post clarification (include reject hint)
             → NEEDS_CLARIFICATION
             → human clarification comment
             → analyze → architect → design_review_gate
             → DESIGN_REVIEW (repeat)
```

## Decisions

| Topic | Choice |
|-------|--------|
| On reject | Ask for clarification; reuse `NEEDS_CLARIFICATION` |
| Reject body | Treat as hint in the bot’s ask; still wait for a follow-up comment |
| Redesign | Full re-analyze + new Confluence/Jira design review |
| Loop limit | Unlimited until approve |
| Fail path | Design reject no longer goes to `FAILED` |

## Implementation notes

1. `_route_node`: reject → `design_reject_clarify` (not `fail`).
2. New node (or shared helper): post clarification comment, clear `design_decision` / `design_approved`, store `design_reject_hint`, set `NEEDS_CLARIFICATION`, audit `design.rejected_needs_clarification`.
3. Webhook: ignore bot clarification comments that match the new prefix; existing clarification resume re-runs analyze.
4. Update tests that expected `FAILED` on reject.

## Out of scope

- Max redesign cap
- Treating reject body alone as sufficient clarification without a follow-up comment
