From 6480b463bcca50cc20c46dc3adc3225f2636483b Mon Sep 17 00:00:00 2001 From: altair823 Date: Sat, 2 May 2026 22:11:52 +0000 Subject: [PATCH] =?UTF-8?q?review(=ED=9A=8C=EC=B0=A81):=20RefusalReason::L?= =?UTF-8?q?lmStreamAborted=20variant=20=EC=B6=94=EA=B0=80=20+=20=EB=B9=88?= =?UTF-8?q?=20=EC=A4=84=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 회차 1 actionable 2건 반영. - §3.8 RefusalReason enum 에 LlmStreamAborted variant 추가 + doc comment (RAG retrieval 정상, model generation 단계에서만 중단). spec PR self-contained 원칙 — impl PR 이 spec 변경 없이 진행 가능. - Multi-turn behaviour 절 끝 빈 줄 2 → 1 + RefusalReason 정의 cross-link 한 줄 추가. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../specs/2026-04-27-kebab-final-form-design.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/superpowers/specs/2026-04-27-kebab-final-form-design.md b/docs/superpowers/specs/2026-04-27-kebab-final-form-design.md index c20de8b..f5fe745 100644 --- a/docs/superpowers/specs/2026-04-27-kebab-final-form-design.md +++ b/docs/superpowers/specs/2026-04-27-kebab-final-form-design.md @@ -725,7 +725,13 @@ pub struct Turn { } pub struct AnswerCitation { pub marker: Option, pub citation: Citation } -pub enum RefusalReason { ScoreGate, LlmSelfJudge, NoIndex, NoChunks } +pub enum RefusalReason { + ScoreGate, LlmSelfJudge, NoIndex, NoChunks, + /// p9-fb-15: ask 가 LLM 토큰 stream 도중 cancel 됨. partial + /// answer 가 채워져 있을 수 있음 (사용자가 본 부분까지). RAG + /// retrieval 자체는 정상 — 모델 generation 단계에서만 중단. + LlmStreamAborted, +} pub struct ModelRef { pub id: String, @@ -768,8 +774,7 @@ prompt 빌드 priority (token budget = `cfg.rag.max_context_tokens`): **Retrieval query expansion** (선택): facade 가 새 question 단독 검색 X — 직전 answer 의 첫 N 자 (default 200) concat 해 query 확장 (간단). LLM 기반 standalone question rewriting 은 P+. -**Aborted vs Completed semantics** 는 ingest 와 다름 — ask 는 single-shot 이라 cancel 시 partial token 그대로 stream 종료 + `Answer.grounded=false, refusal_reason=Some(LlmStreamAborted)` (refusal_reason variant 추가 필요 — p9-fb-15 가 함께 처리). - +**Aborted vs Completed semantics** 는 ingest 와 다름 — ask 는 single-shot 이라 cancel 시 partial token 그대로 stream 종료 + `Answer.grounded=false, refusal_reason=Some(LlmStreamAborted)`. 새 variant 는 아래 `RefusalReason` 정의에 함께 추가. ---