58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
|
|
# T043 — 合格數驅動的分階段補量
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M4`
|
|||
|
|
> Est. change: `~200 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後,RunScan 以 eligible count 判斷 target,按三階段有限補量且不會 raw hits 達標就提前停止。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T042
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- 讀取 / 依賴:
|
|||
|
|
- 檔案:`apps/backend/internal/module/scout/usecase/service.go`
|
|||
|
|
- 既有能力 / API:fanOutSearch、Provider、Crawler、Candidate evaluator
|
|||
|
|
- Spec 段落:§4 流程 B、§7 效能邊界
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/backend/internal/module/scout/usecase/search_pipeline.go` | add | 實作 initial、same-source boost、secondary source 三階段 orchestration。 |
|
|||
|
|
| `apps/backend/internal/module/scout/usecase/service.go` | edit | RunScanFromBrief 改呼叫 pipeline,以 eligible target 停止。 |
|
|||
|
|
| `apps/backend/internal/module/scout/usecase/search_pipeline_test.go` | add | 驗證 raw20/eligible7 仍補抓、達標停止與 320 cap。 |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- 每輪立即 normalize/dedupe/evaluate;單詞單來源單階段最多 20,整批最多 320 raw。
|
|||
|
|
|
|||
|
|
### API / 契約(若有)
|
|||
|
|
|
|||
|
|
- 單來源失敗可降級並記原因;全部來源失敗回 error。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 不新增搜尋來源,不降低 signature 門檻,不無限 retry。
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] 目標只由 eligible count 達成,source 呼叫次數符合階段與上限。
|
|||
|
|
- [x] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/backend && go test ./internal/module/scout/usecase -run SearchPipeline -count=1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
驗收結果:新增三階段 SearchPipeline,逐候選即時判定 eligible/duplicate/irrelevant,target 以 eligible 計算,單詞上限 20、整批 raw cap 320,補量與停止條件測試通過。
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
pipeline 回傳合格 draft 與 diagnostics,保存由 T044 負責。
|