1.7 KiB
1.7 KiB
T743 — product fit ai structured fallback
Status:
done
Milestone:M4· Phase C
Kind:feat· Est. change:~190 lines
Goal
產品適配優先使用結構化 AI 判定,輸出不完整時安全回 deterministic scorer,不保存腦補證據。
Depends on
- T741、T742
Inputs
apps/backend/internal/module/radar/usecase/judge.go、AI provider abstraction../spec.md§3.2、§8
Outputs
| 路徑 | 動作 | 說明 |
|---|---|---|
apps/backend/internal/module/radar/usecase/product_fit_ai.go |
add | prompt、JSON parse、evidence validation、fallback |
apps/backend/internal/module/radar/usecase/judge.go |
edit | product mode 接 fit;generic 保留舊 fit |
| AI tests | add | valid/missing dimensions/invented excerpt/provider failure |
Behavior
- excerpt 必須可在候選文字找到;basis 必須可在 snapshot 找到。
- AI 結果缺契約即丟棄,fallback 仍需四維完整。
- 新 match 計
ai_research/radar.product_fit;既有 generic 計費不變。
Out of scope
- merge 與 primary(T744)
- 準確度樣本(T773)
Acceptance
- provider failure 不產生空 reasons,且 token 不當會員 auth。
cd apps/backend && go test ./internal/module/radar/usecase/... -count=1
Implementation result (2026-08-10): product watches now attach a structured
four-dimension fit during judging and meter it as ai_research/
radar.product_fit. AI output is accepted only when every positive excerpt is
found in the candidate and every basis exists in the immutable snapshot;
malformed, invented, or provider-failed responses fall back to T742's
deterministic scorer, preserving complete reasons and hard exclusions.