# T550 — reply-send-outbox-health-gate

> Status: `done`  
> Milestone: `M3`  
> Kind: `feat`  
> Est. change: `~180 lines`

## Goal

完成後系統應：公開留言版經**既有海巡外展／Outbox** 送出且**必過 AccountHealth 送出閘**；私訊版只提供複製並標記完成。

## Depends on

- T549

## Inputs

- Spec：`../spec.md` §4.5.6、§4.5.7、§9.3（RP-04、RP-05）、§6（不新增繞過護欄路徑）
- 既有：`apps/backend/internal/logic/outbox/**`、`internal/module/growth/**`（AccountHealth 送出閘）、scout 外展送出

## Outputs

### 程式變更（預期路徑）

| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/radar/usecase/reply_send.go` | add | 公開留言 → 既有 Outbox／外展入口；送前呼叫既有健康閘 |
| `apps/backend/generate/api/radar.api` | edit | 送出／標記已使用 request（`channel=outbox|manual_copy`） |
| `apps/backend/internal/logic/radar/sendOpportunityReplyLogic.go` | edit | 接線＋錯誤映射；`MarkUsed` 記錄管道 |

### 行為變更

- `AccountHealth=warn`：可送但回應帶警示；`throttle`：**拒絕自動送出**，只回手動路徑提示（沿用既有錯誤語意）。
- 私訊版（`dm`）：不提供自動送出端點，只能 `channel=manual_copy` 標記；回應與文案不得宣稱已自動送出。
- Outbox 行為不變：僅平台成功後才 `published`（RG-02）。

## Out of scope

- 前端複製與送出按鈕（T552）
- FollowUp 建立（T585）

## Acceptance

- [x] RP-04：`throttle` 帳號自動送出被拒，手動路徑可用
- [x] RP-05：`dm` 無自動送出路徑
- [x] RG-02：Outbox 發布語意回歸測試通過
- [x] 指令：

```bash
cd apps/backend && go test ./internal/module/radar/... ./internal/logic/outbox/... -count=1
```
