feat(fb-40): fact-grounded answer — rag-v2 prompt template #132

Merged
altair823 merged 9 commits from feat/fb-40-fact-grounded-answer into main 2026-05-10 10:49:08 +00:00
Owner

Summary

  • 신규 SYSTEM_PROMPT_RAG_V2 system prompt: V1 의 4 규칙 유지 + 3 신규 (verbatim span 인용 / 학습 지식 동원 금지 / 근거 모호 시 "확실하지 않다").
  • Pipeline 이 config.rag.prompt_template_version 값을 system_prompt_for(version) helper 로 dispatch — V1 / V2 / unknown 분기.
  • Default config flipped "rag-v1""rag-v2". V1 은 legacy backwards-compat (user TOML 명시 시 유지).
  • Lever C (pre-LLM ScoreGate refusal) 는 이미 shipped — 본 PR scope 외.
  • Wire schema 변경 없음 (config 값만 변경, 기존 prompt_template_version 필드 자동 mirror).

Design: docs/superpowers/specs/2026-05-10-p9-fb-40-fact-grounded-answer-design.md
Plan: docs/superpowers/plans/2026-05-10-p9-fb-40-fact-grounded-answer.md

Test plan

  • cargo test --workspace --no-fail-fast -j 1 green (138 test result lines, 0 FAILED)
  • cargo clippy --workspace --all-targets -- -D warnings clean
  • kebab-rag: 4 unit tests (system_prompt_for V1/V2/unknown + V2 rule presence) + 3 integration tests (CapturingLm dispatch verification)
  • kebab-config: default assertion test
  • Manual smoke (Ollama running): kebab schema --json | jq .models.prompt_template_version returns "rag-v2"; kebab ask "hello" --json | jq .prompt_template_version returns "rag-v2"; user TOML override "rag-v1" produces "rag-v1" answer

🤖 Generated with Claude Code

## Summary - 신규 `SYSTEM_PROMPT_RAG_V2` system prompt: V1 의 4 규칙 유지 + 3 신규 (verbatim span 인용 / 학습 지식 동원 금지 / 근거 모호 시 "확실하지 않다"). - Pipeline 이 `config.rag.prompt_template_version` 값을 `system_prompt_for(version)` helper 로 dispatch — V1 / V2 / unknown 분기. - Default config flipped `"rag-v1"` → `"rag-v2"`. V1 은 legacy backwards-compat (user TOML 명시 시 유지). - Lever C (pre-LLM ScoreGate refusal) 는 이미 shipped — 본 PR scope 외. - Wire schema 변경 없음 (config 값만 변경, 기존 prompt_template_version 필드 자동 mirror). Design: `docs/superpowers/specs/2026-05-10-p9-fb-40-fact-grounded-answer-design.md` Plan: `docs/superpowers/plans/2026-05-10-p9-fb-40-fact-grounded-answer.md` ## Test plan - [x] `cargo test --workspace --no-fail-fast -j 1` green (138 test result lines, 0 FAILED) - [x] `cargo clippy --workspace --all-targets -- -D warnings` clean - [x] kebab-rag: 4 unit tests (system_prompt_for V1/V2/unknown + V2 rule presence) + 3 integration tests (CapturingLm dispatch verification) - [x] kebab-config: default assertion test - [ ] Manual smoke (Ollama running): `kebab schema --json | jq .models.prompt_template_version` returns `"rag-v2"`; `kebab ask "hello" --json | jq .prompt_template_version` returns `"rag-v2"`; user TOML override `"rag-v1"` produces `"rag-v1"` answer 🤖 Generated with [Claude Code](https://claude.com/claude-code)
altair823 added 8 commits 2026-05-10 10:41:00 +00:00
- rag-v1 → rag-v2 system prompt with 3 신규 규칙 (verbatim span 인용 자도 /
  학습 지식 동원 금지 / 추측 금지)
- system_prompt_for(version) helper dispatch in pipeline
- config default prompt_template_version "rag-v1" → "rag-v2", V1 legacy
  kept for backwards-compat
- Lever C (pre-LLM gate) already shipped (RefusalReason::ScoreGate),
  out of scope here

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 tasks: SYSTEM_PROMPT_RAG_V2 + system_prompt_for helper, pipeline
dispatch wiring, config default flip rag-v1 → rag-v2, test fixture
cleanup, integration tests (rag-v1 / rag-v2 / unknown via
CapturingLm wrapper around MockLanguageModel), docs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- README: [rag] prompt_template_version default rag-v2 + V2 강화 3 규칙
- design §7: rag-v2 본문 + V1 legacy note
- SKILL.md: mcp__kebab__ask 응답 행태 변화 안내
- task spec: status open → completed, design + plan 링크
- INDEX: fb-40  머지 (2026-05-10)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
altair823 added 1 commit 2026-05-10 10:43:01 +00:00
Module doc still pinned "rag-v1" — update to reflect dispatched
template via system_prompt_for (rag-v1 legacy / rag-v2 default).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
altair823 merged commit 21ecbb00d4 into main 2026-05-10 10:49:08 +00:00
altair823 deleted branch feat/fb-40-fact-grounded-answer 2026-05-10 10:49:10 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: altair823-org/kebab#132