Files
AIclinicalresearch/docs/03-业务模块/ADMIN-运营管理端/04-开发计划/02-Prompt管理系统开发计划.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

27 KiB
Raw Blame History

Prompt邂。逅<EFBFBD>ウサ扈溷シ€蜿題ョ。蛻?

*迚域悽<EFBFBD>? v1.2
*蛻帛サコ譌・譛滂シ? 2026-01-11
*譖エ譁ー譌・譛滂シ? 2026-01-12
莨伜<EFBFBD>郤ァ<EFBFBD><EFBFBD> P0<50><EFBFBD>ク蠢<EFBDB8>€夂畑閭ス蜉幢シ? 迥カ諤<EFBFBD><EFBFBD> 笨?Phase 3.5.1-3.5.5 蜈ィ驛ィ螳梧<E89EB3><E6A2A7>?00%<25>? *<EFBFBD>ョ。蟾・譛滂シ? 7荳ェ蟾・菴懈律
*螳樣刔螳梧<EFBFBD><EFBFBD>? Day 1-7 蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>2026-01-12<31>?


<EFBFBD>識 蠢ォ騾溷ッシ闊ェ<E9978A><EFBDAA>2026-01-11譖エ譁ー<E8AD81>?

笨?蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>hase 3.5.1 - 3.5.5<EFBFBD>?

髦カ谿オ 譬ク蠢<EFBFBD>コァ蜃コ <EFBFBD>サカ菴咲スョ 螳梧<EFBFBD>譌・譛<EFBFBD>
3.5.1 蝓コ遑€隶セ譁ス capability_schema縲∬。ィ扈捺桷縲∵揀髯舌€∬ソ∫ァ? backend/prisma/schema.prisma 2026-01-11
3.5.2 譬ク蠢<EFBDB8>恪蜉。 PromptService<EFBFBD><EFBFBD>蠎ヲ縲∵クイ譟薙€∝序驥乗<EFBFBD>。鬪鯉シ<EFBFBD> backend/src/common/prompt/ 2026-01-11
3.5.3 邂。逅<EFBDA1>PI 8荳ェRESTful謗・蜿」 backend/src/common/prompt/prompt.routes.ts 2026-01-11
3.5.4 蜑咲ォッ逡碁擇 邂。逅<EFBFBD>ォッ譫カ譫<EFBFBD>€ ̄rompt蛻苓。ィ縲∫シ冶セ大勣 frontend-v2/src/pages/admin/ 2026-01-11
3.5.5 荳壼苅髮<E88B85><E9ABAE> RVW讓。蝮鈴寔謌舌€∬ョ、隸∬ァ<EFBFBD>激蛹<EFBFBD> backend/src/modules/rvw/ 2026-01-12 笨?

<EFBFBD><EFBFBD> Phase 3.5.5 螳梧<E89EB3><EFBFBD>ョケ<EFBDAE>?026-01-12<31>?

*RVW 讓。蝮鈴寔謌撰シ?

  • 笨?editorialService.ts - 髮<><E9ABAE> PromptService<63>檎ァサ髯、譁<EFBDA4>サカ隸サ蜿?- 笨?methodologyService.ts - 髮<><E9ABAE> PromptService<63>檎ァサ髯、譁<EFBDA4>サカ隸サ蜿?- 笨?reviewWorker.ts - 莨<>騾?userId 謾ッ謖∫<E8AC96>蠎ヲ鬚<EFBDA6><EFBFBD>
  • 笨?菫ョ螟<EFBDAE> ReviewTask 螟夜醗郤ヲ譚滂シ郁キィ schema 髣ョ鬚假シ? *蜈ィ讓。蝮苓ョ、隸∬ァ<EFBFBD>激蛹厄シ?
  • 笨?RVW/PKB/ASL/DC 讓。蝮玲キサ蜉<EFBDBB> authenticate 荳ュ髣エ莉?- 笨?扈滉ク€菴ソ逕ィ request.user?.userId<49>檎ァサ髯、謇€譛?MOCK_USER_ID
  • 笨?蜑咲ォッ扈滉ク€菴ソ逕ィ apiClient<6E><74>xios + JWT interceptor<6F>?- 笨?蛻帛サコ docs/04-蠑€蜿題ァ<E9A18C><EFBDA7>?10-讓。蝮苓ョ、隸∬ァ<E288AC>激.md

*逡碁擇莨伜喧<EFBFBD>?

  • 笨?Prompt 蛻苓。ィ讓。蝮怜<E89DAE>譏セ遉コ荳ュ譁<EFBDAD>錐遘?- 笨?迚域悽蜴<E682BD>彰蠅槫シコ<EFBDBC>域衍逵句<E980B5>螳ケ縲∝屓貊壼粥閭ス<E996AD><EFBDBD>

<EFBFBD>搭 逶ョ蠖<EFBDAE>

  1. 鬘ケ逶ョ讎りソー
  2. [髴€豎ら。ョ隶、](#2-髴€豎ら。ョ隶?
  3. [謚€譛ッ譫カ譫Ь(#3-謚€譛ッ譫カ譫?
  4. [蠑€蜿題ョ。蛻綻(#4-蠑€蜿題ョ。蛻?
  5. [謨ー謐ョ霑∫ァサ隶。蛻綻(#5-謨ー謐ョ霑∫ァサ隶。蛻<EFBDA1>)
  6. <EFBFBD>剞隶セ隶。
  7. [豬玖ッ戊ョ。蛻綻(#7-豬玖ッ戊ョ。蛻<EFBDA1>)
  8. [鬟朱勦荳主コ泌ッケ](#8-鬟朱勦荳主コ泌ッ?

1. 鬘ケ逶ョ讎りソー

1.1 鬘ケ逶ョ逶ョ譬<EFBDAE>

<EFBFBD>サコ荳€荳?*逕滉コァ邇ッ蠅<EFBDAF><E8A085>蠎ヲ鬚<EFBDA6>ァ育ウサ扈<EFBDBB>**<2A><EFBFBD>隶ク荳謎ク壻ココ蜻假シ<E58187>rompt蟾・遞句ク医€∽クエ蠎贋ク灘ョカ<EFBDAE>牙惠逕滉コァ邇ッ蠅<EFBDAF>ョ牙<EFBDAE><EFBFBD>ッ柊I Prompt<70>悟ョ樒鴫<E6A892><E9B4AB>

  • 笨?Prompt 荳惹サ」遐∝<E98190>遖サ<E98196>域焚謐ョ蠎灘ュ伜お<E4BC9C><E3818A>
  • 笨?迚域悽邂。逅<EFBDA1>ク主屓貊夊<E8B28A>蜉?- 笨?轣ー蠎ヲ鬚<EFBDA6>ァ茨シ郁ー<E98381>ッ戊€<E6888A>恚DRAFT<46>檎畑謌キ逵帰CTIVE<56>?- 笨?讓。蝮礼コァ隹<EFBDA7>ッ戊激蝗エ謗ァ蛻?- 笨?譚<>剞扈<E5899E><E68988><EFBFBD>育シ冶セ?蜿大ク<E5A4A7><EFBDB8>遖サ<E98196>?

1.2 譬ク蠢<EFBDB8>サキ蛟?

逞帷せ 隗」蜀ウ譁ケ譯<EFBFBD>
豬玖ッ慕識蠅<EFBFBD>裏豕墓ィ。諡溽悄螳樊焚謐ョ 逕滉コァ邇ッ蠅<EFBFBD><EFBFBD>蠎ヲ鬚<EFBFBD><EFBFBD>
豈乗ャ。隹<EFBFBD>紛髴€謾ケ莉」遐≫<EFBFBD>驛ィ鄂イ<EFBFBD>?蛻<><EFBFBD>? 謨ー謐ョ蠎灘勘諤<EFBFBD><EFBFBD>鄂ョ<EFBFBD>檎ァ堤コァ逕滓譜
荳エ蠎贋ク灘ョカ譌<EFBFBD>豕募盾荳手ー<EFBFBD><EFBFBD> RBAC + 蜿句・ス邂。逅<EFBDA1>阜髱「
蜿大ク<EFBFBD>錘譌<EFBFBD>豕募屓貊? 迚域悽蜴<EFBFBD>彰 + 荳€髞ョ蝗樊サ?

1.3 豸牙所讓。蝮嶺シ伜<EFBDBC>郤?

莨伜<EFBFBD>郤? 讓。蝮<EFBFBD> Prompt謨ー驥<EFBFBD> 螟肴揩蠎? 迥カ諤?
<EFBFBD>閥 P0 RVW 4荳? 箝絶ュ<EFBFBD> 鬥匁音謗・蜈・
<EFBFBD>泯 P1 ASL 8荳? 箝絶ュ絶ュ絶ュ絶ュ? 莠梧悄
<EFBFBD>泯 P1 DC 5荳? 箝絶ュ絶ュ絶ュ<EFBFBD> 莠梧悄
<EFBFBD>泙 P2 PKB 3荳? 箝絶ュ絶ュ? 荳画悄
<EFBFBD>泙 P2 IIT 3荳? 箝絶ュ絶ュ絶ュ<EFBFBD> 荳画悄
<EFBFBD>鳩 P3 AIA 10荳ェ譎コ閭ス菴<EFBFBD> 箝絶ュ絶ュ? <EFBFBD>€蜿第ィ。蝮?

2. 髴€豎ら。ョ隶?

2.1 蟾イ遑ョ隶、髴€豎?

髴€豎る。ケ 遑ョ隶、扈捺棡
莨伜<EFBFBD>謗・蜈・讓。蝮<EFBFBD> 笨?RVW 讓。蝮怜<E89DAE>陦鯉シ瑚オー騾壼錘謇ゥ螻<EFBDA9>
<EFBFBD>剞扈<EFBFBD><EFBFBD> 笨?PROMPT_ENGINEER 蜿ェ閭ス郛冶セ托シ郡UPER_ADMIN 謇崎<E8AC87>蜿大ク<E5A4A7>
蛻晏ァ区焚謐ョ霑∫ァサ 笨?閾ェ蜉ィ霑∫ァサ邇ー譛画枚莉カPrompt蛻ー謨ー謐ョ蠎<EFBDAE>
<EFBFBD>ッ戊激蝗エ 笨?蜿ッ謖<EFBDAF>ョ壽ィ。蝮暦シ亥ヲょ宵隹<E5AEB5>ッ紐VW<56>御ク榊スア蜩喉SL<53>?
AIA譎コ閭ス菴? 笨?鬚<>ョ。10荳ェ譎コ閭ス菴難シ梧悴譚・騾夊ソ⑰rompt邂。逅<EFBDA1>

2.2 邉サ扈溽鴫迥カ

*邇ー譛臼rompt蟄伜お譁ケ蠑擾シ?

backend/prompts/
笏懌楳笏€ review_editorial_system.txt      # RVW - 遞ソ郤ヲ隗<EFBDA6>激諤ァ隸<EFBDA7>シ?笏懌楳笏€ review_methodology_system.txt    # RVW - 譁ケ豕募ュヲ隸<EFBDA6>シ?笏懌楳笏€ topic_evaluation_system.txt      # RVW - 騾蛾「倩ッ<E580A9>シー<EFBDBC><EFBDB0>ystem<65>?笏懌楳笏€ topic_evaluation_user.txt        # RVW - 騾蛾「倩ッ<E580A9>シー<EFBDBC><EFBDB0>ser<65>?笏披楳笏€ asl/
    笏披楳笏€ screening/
        笏懌楳笏€ v1.0.0-mvp.txt
        笏懌楳笏€ v1.1.0-lenient.txt
        笏懌楳笏€ v1.1.0-standard.txt
        笏披楳笏€ v1.1.0-strict.txt

*邇ー譛芽ー<EFBFBD>畑譁ケ蠑擾シ?

// 蠖灘燕<E78198>壻サ取枚莉カ隸サ蜿<EFBDBB>
const systemPrompt = await fs.readFile(PROMPT_PATH, 'utf-8');

// 逶ョ譬<EFBDAE>シ壻サ傘romptService闔キ蜿<EFBDB7>
const systemPrompt = await promptService.get('RVW_EDITORIAL', {}, userId);

3. 謚€譛ッ譫カ譫?

3.1 謨エ菴捺楔譫<E6A594><E8ADAB>?

笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?                     霑占是邂。逅<EFBDA1>ォッ<EFBDAB>亥燕遶ッ<E981B6>?                          笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? 笏?Prompt蛻苓。ィ   笏? 笏?Prompt郛冶セ大<EFBDBE>?笏? 笏?<3F>閥 隹<>ッ募シ€蜈ウ<E89C88>亥庄騾画ィ。蝮暦シ<E69AA6> 笏?笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?                            笏?API隹<49>畑
                            笆?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?                  蜷守ォッ API Layer                                 笏?笏? /api/admin/prompts      - 邂。逅<EFBDA1>磁蜿」<E89CBF>磯怙隶、隸<EFBDA4>+譚<><EFBFBD>?              笏?笏? /api/admin/prompts/debug - 隹<>ッ墓ィ。蠑丞シ€蜈?                        笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?                            笏?                            笆?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?                  PromptService<63><EFBFBD>ク蠢<EFBDB8><EFBFBD>                          笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?  笏?笏? 笏?debugUsers    笏? 笏?activeCache   笏? 笏?moduleDebugMap    笏?  笏?笏? 笏?Map<userId,   笏? 笏?Map<code,     笏? 笏?Map<userId,       笏?  笏?笏? 笏?  Set<module>>笏? 笏?  content>    笏? 笏?  Set<module>>    笏?  笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?  笏?笏?                                                                笏?笏? get(code, variables, userId) 竊?閾ェ蜉ィ轣ー蠎ヲ霍ッ逕ア                     笏?笏? setDebugMode(userId, modules, enabled) 竊?讓。蝮礼コァ隹<EFBDA7>ッ?           笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?                            笏?                            笆?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?              PostgreSQL (capability_schema)                     笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?prompt_templates    笏? 笏?prompt_versions                  笏? 笏?笏? 笏?- code (蜚ッ荳€<C280><EFBFBD>)   笏? 笏?- status: DRAFT/ACTIVE/ARCHIVED 笏? 笏?笏? 笏?- module (讓。蝮<EFBDA1>)     笏? 笏?- content (Prompt蜀<74>ョケ)          笏? 笏?笏? 笏?- variables         笏? 笏?- model_config (讓。蝙句盾謨ー)       笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏?                                                                笏?笏? LISTEN/NOTIFY prompt_update 竊?螟壼ョ樔セ狗シ灘ュ伜酔豁?                   笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```

### 3.2 譬ク蠢<EFBDB8>焚謐ョ豬?

逕ィ謌キ隸キ豎<EFBFBD> 竊?荳壼苅讓。蝮<EFBDA1> 竊?promptService.get(code, vars, userId) 笏? 笆? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?譽€譟?debugUsers 笏? 笏?+ moduleDebugMap 笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏エ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏? 笏? 笆? 笆? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?隹<>ッ戊€?+ 讓。蝮怜源驟<E6BA90> 笏? 笏?譎ョ騾夂畑謌?荳榊源驟? 笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏? 笏? 笆? 笆? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?譟・隸「 DRAFT 迚域悽 笏? 笏?譟・隸「 ACTIVE 郛灘ュ<E78198> 笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏? 笏? 笆? 笆? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?貂イ譟灘序驥剰ソ泌屓 笏? 笏?郛灘ュ俶悴蜻ス荳ュ蛻呎衍DB 笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏? 笆? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?蜈懷コ包シ夂。ャ郛也<E9839B><E4B99F> 笏? 笏?FALLBACK_PROMPTS笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```

3.3 讓。蝮礼コァ隹<EFBDA7>ッ戊ョセ隶?

// 隹<>ッ墓ィ。蠑乗焚謐ョ扈捺桷
interface DebugState {
  userId: string;
  modules: Set<string>;  // 'RVW', 'ASL', 'DC', 'ALL'
  enabledAt: Date;
}

// 蠑€蜷ッ隹<EFBDAF>ッ包シ壼宵隹<E5AEB5>ッ紐VW讓。蝮<EFBDA1>
await promptService.setDebugMode(userId, ['RVW'], true);

// 闔キ蜿鳳rompt譌カ閾ェ蜉ィ蛻、譁?const prompt = await promptService.get('RVW_EDITORIAL', vars, userId);
// 竊?霑泌屓DRAFT<46>亥屏荳コuserId蠑€蜷ッ莠<EFBDAF>VW隹<57>ッ包シ?
const prompt2 = await promptService.get('ASL_SCREENING', vars, userId);
// 竊?霑泌屓ACTIVE<56>亥屏荳コuserId譛ェ蠑€蜷ッASL隹<4C>ッ包シ?```

### 3.4 蜿倬㍼譬。鬪梧惻蛻カ<EFBFBD><EFBFBD>ariable Validation<EFBFBD>解氣?
**髣ョ鬚伜惻譎ッ<EFBFBD>?* 郛冶セ大勣驥悟<EFBFBD><EFBFBD> `{{title}}`<EFBFBD>御ス<EFBFBD> `variables` 蟄玲ョオ豐。驟咲ス?`title`<EFBFBD>瑚ー<EFBFBD>ッ墓慮謚・髞吶€?
**隗」蜀ウ譁ケ譯茨シ?*

```typescript
// 蜷守ォッ<EFBDAB>壻ソ晏ュ俶慮閾ェ蜉ィ謠仙叙蜿倬㍼
function extractVariables(content: string): string[] {
  const regex = /\{\{(\w+)\}\}/g;
  const variables = new Set<string>();
  let match;
  while ((match = regex.exec(content)) !== null) {
    variables.add(match[1]);
  }
  return Array.from(variables);
}

// 菫晏ュ倩拷遞ソ譌カ閾ェ蜉ィ譖エ譁?variables 蟄玲ョオ
async saveDraft(templateId: number, content: string, ...) {
  const extractedVars = extractVariables(content);
  
  // 閾ェ蜉ィ譖エ譁ー讓。譚ソ逧?variables 蟄玲ョオ
  await prisma.prompt_templates.update({
    where: { id: templateId },
    data: { variables: extractedVars },
  });
  
  // 蛻帛サコ譁ー迚域<E8BF9A>?  await prisma.prompt_versions.create({
    data: { template_id: templateId, content, ... }
  });
}

*蜑咲ォッ<EFBFBD>夊ー<EFBFBD>ッ慕阜髱「閾ェ蜉ィ逕滓<EFBFBD>蜿倬㍼霎灘<EFBFBD>陦ィ蜊?

// PromptDebugPanel.tsx
const PromptDebugPanel = ({ variables }: { variables: string[] }) => {
  const [values, setValues] = useState<Record<string, string>>({});
  
  return (
    <div className="debug-panel">
      <h4><EFBFBD> <EFBFBD>ッ募序驥<EFBFBD></h4>
      {variables.map(varName => (
        <Form.Item key={varName} label={varName}>
          <Input 
            placeholder={`霎灘<E99C8E> ${varName}<>€シ`}
            value={values[varName]}
            onChange={e => setValues({ ...values, [varName]: e.target.value })}
          />
        </Form.Item>
      ))}
      <Button type="primary" onClick={() => onTest(values)}>
        <EFBFBD>ァェ 豬玖ッ墓クイ譟<EFBFBD>
      </Button>
    </div>
  );
};

*譬。鬪梧慮譛コ<EFBFBD>?

譌カ譛コ 蜉ィ菴<EFBFBD>
菫晏ュ倩拷遞ソ譌? 閾ェ蜉ィ謠仙叙蜿倬㍼<EFBFBD>梧峩譁?variables 蟄玲ョオ
蜿大ク<EFBFBD><EFBFBD>? 隴ヲ蜻奇シ壼ヲよ<EFBFBD>?DRAFT 逧<>序驥丈ク<E4B888> ACTIVE 荳榊酔<E6A68A>梧署遉?蜿倬㍼蟾イ蜿俶<E89CBF>?
<EFBFBD>ッ墓<EFBFBD>? 蜑咲ォッ譬ケ謐ョ variables 閾ェ蜉ィ逕滓<E98095>霎灘<E99C8E>陦ィ蜊<EFBDA8>
貂イ譟捺<EFBFBD>? 譬。鬪梧署萓帷噪蜿倬㍼譏ッ蜷ヲ螳梧紛<EFBFBD>檎シコ螟ア蛻呎鴨蜃コ譏守。ョ髞呵ッ?

4. 蠑€蜿題ョ。蛻?

4.1 諤サ菴捺慮髣エ郤?

Day 1-2: 蝓コ遑€隶セ譁ス謳ュ蟒コ
Day 3:   PromptService 譬ク蠢<EFBDB8>ョ樒鴫
Day 4:   邂。逅<EFBDA1>PI蠑€蜿?Day 5-6: 蜑咲ォッ邂。逅<EFBDA1>阜髱「
Day 7:   RVW讓。蝮鈴寔謌<E5AF94> + 遶ッ蛻ー遶ッ豬玖ッ?```

### 4.2 隸ヲ扈<EFBDA6>ササ蜉。貂<EFBDA1>黒

#### Phase 3.5.1: 蝓コ遑€隶セ譁ス<E8AD81><EFBDBD>ay 1-2<>?
##### Day 1: 謨ー謐ョ蠎灘㊥螟?
- [ ] 蛻帛サコ `capability_schema` Schema
  ```sql
  CREATE SCHEMA IF NOT EXISTS capability_schema;
  • 譖エ譁ー schema.prisma 豺サ蜉<EFBDBB> Prompt 逶ク蜈ウ讓。蝙<EFBDA1>

    • PromptStatus 譫壻クセ
    • prompt_templates 讓。蝙<EFBDA1>
    • prompt_versions 讓。蝙<EFBDA1>
  • 謇ァ陦<EFBFBD> prisma db push 蛻帛サコ陦?

  • 豺サ蜉<EFBFBD> Prompt 譚<>剞蛻?permissions 陦? ```sql INSERT INTO platform_schema.permissions (code, name, description, module) VALUES ('prompt:view', '譟・逵輝rompt', '譟・逵輝rompt讓。譚ソ蛻苓。ィ蜥瑚ッヲ諠?, 'admin'), ('prompt:edit', '郛冶セ善rompt', '蛻帛サコ蜥御ソョ謾ケPrompt闕臥ィソ', 'admin'), ('prompt:debug', '隹<>ッ姫rompt', '蠑€蜷ッ隹<EFBDAF>ッ墓ィ。蠑?, 'admin'), ('prompt:publish', '蜿大クケrompt', '蟆<>拷遞ソ蜿大ク<E5A4A7>クコ豁」蠑冗<E8A091>?, 'admin');

    
    
  • 譖エ譁ー role_permissions 陦? - [ ] SUPER_ADMIN: prompt:view, prompt:edit, prompt:debug, prompt:publish

    • PROMPT_ENGINEER: prompt:view, prompt:edit, prompt:debug<75>域裏publish<73>?
Day 2: 謨ー謐ョ霑∫ァサ<EFBDA7><EFBDBB>VW讓。蝮暦シ?
  • 郛門<EFBFBD>霑∫ァサ閼壽悽 scripts/migrate-prompts.ts

  • 霑∫ァサ RVW 讓。蝮<EFBDA1> Prompt

    <EFBFBD>サカ Code 蜷咲ァー
    review_editorial_system.txt RVW_EDITORIAL 遞ソ郤ヲ隗<EFBFBD>激諤ァ隸<EFBFBD>シ?
    review_methodology_system.txt RVW_METHODOLOGY 譁ケ豕募ュヲ隸<EFBFBD>シ?

    豕ィ<EFBFBD>啻topic_evaluation_*` 譏?騾蛾「倩ッ<E580A9>シー"蜉溯<E89C89><E6BAAF>御ク榊ア樔コ山VW螳。遞ソ讓。蝮<EFBDA1>

  • 鬪瑚ッ∬ソ∫ァサ謨ー謐ョ螳梧紛諤?


Phase 3.5.2: PromptService 譬ク蠢<EFBDB8><EFBFBD>ay 3<>?

  • 蛻帛サコ譁<EFBFBD>サカ扈捺桷

    backend/src/common/capabilities/prompt/
    笏懌楳笏€ prompt.service.ts      # 譬ク蠢<EFBDB8>恪蜉。
    笏懌楳笏€ prompt.types.ts        # 邀サ蝙句ョ壻ケ<E5A3BB>
    笏懌楳笏€ prompt.fallbacks.ts    # 蜈懷コ姫rompt
    笏披楳笏€ index.ts               # 蟇シ蜃コ
    
  • 螳樒鴫 PromptService 邀? - [ ] get(code, variables, userId) - 譬ク蠢<EFBDB8>執蜿匁婿豕<E5A9BF>

    • setDebugMode(userId, modules, enabled) - 讓。蝮礼コァ隹<EFBDA7>ッ募シ€蜈? - [ ] isDebugging(userId, module) - 譽€譟・隹<EFBDA5>ッ慕憾諤? - [ ] render(template, variables) - Handlebars貂イ譟<EFBDB2>
    • getActiveVersion(code) - 闔キ蜿泡CTIVE迚域悽<E59F9F>亥クヲ郛灘ュ假シ? - [ ] getDraftVersion(code) - 闔キ蜿縫RAFT迚域悽
    • getFallback(code) - 闔キ蜿門<E89CBF>蠎姫rompt
    • extractVariables(content) - <20><> 莉主<E88E89>螳ケ謠仙叙蜿倬㍼蜷<E38DBC>
    • validateVariables(content, providedVars) - <20><> 譬。鬪悟序驥丞ョ梧紛諤?
  • 螳樒鴫辜ュ譖エ譁ー譛コ蛻? - [ ] initHotReload() - 逶大成 LISTEN/NOTIFY

    • 謾カ蛻ー騾夂衍蜷取ク<EFBFBD>ゥ?activeCache
  • 郛門<EFBFBD>蜈懷コ姫rompt<EFBFBD><EFBFBD>prompt.fallbacks.ts<EFBFBD>? ```typescript export const FALLBACK_PROMPTS: Record<string, string> = { 'RVW_EDITORIAL': <EFBFBD>譏ッ荳€菴崎オ<EFBFBD>キア逧<EFBFBD>ュヲ譛ッ譛溷<EFBFBD>郛冶セ<EFBFBD>..., 'RVW_METHODOLOGY': <EFBFBD>譏ッ荳€菴肴婿豕募ュヲ荳灘ョカ...`, // ... };

    
    

Phase 3.5.3: 邂。逅<EFBDA1>PI<50><49>ay 4<>?

  • 蛻帛サコ譁<EFBFBD>サカ扈捺桷

    backend/src/modules/admin/prompt/
    笏懌楳笏€ prompt.controller.ts   # 謗ァ蛻カ蝎?  笏懌楳笏€ prompt.routes.ts       # 霍ッ逕ア螳壻ケ<E5A3BB>
    笏披楳笏€ prompt.schema.ts       # 隸キ豎<EFBDB7>/蜩榊コ粘chema
    
  • 螳樒鴫 API 謗・蜿」

譁ケ豕<EFBFBD> 霍ッ蠕<EFBFBD> <EFBFBD> 蜉溯<EFBFBD>
GET /api/admin/prompts prompt:view 闔キ蜿匁ィ。譚ソ蛻苓。ィ<EFBFBD>域髪謖∵ィ。蝮苓ソ<EFBFBD>サ、<EFBFBD><EFBFBD>
GET /api/admin/prompts/:id prompt:view 闔キ蜿匁ィ。譚ソ隸ヲ諠<EFBFBD>+迚域悽蜴<E682BD>
POST /api/admin/prompts prompt:edit 蛻帛サコ譁ー讓。譚?
POST /api/admin/prompts/:id/draft prompt:edit 菫晏ュ倩拷遞ソ
POST /api/admin/prompts/:id/publish prompt:publish 蜿大ク<EFBFBD><EFBFBD>RAFT竊但CTIVE<EFBFBD>?
POST /api/admin/prompts/:id/rollback prompt:publish 蝗樊サ壼芦謖<EFBFBD>ョ夂沿譛?
POST /api/admin/prompts/debug prompt:debug €蜈ウ隹<EFBFBD>ッ墓ィ。蠑?
GET /api/admin/prompts/debug/status prompt:debug 闔キ蜿門ス灘燕隹<EFBFBD>ッ慕憾諤?
  • 豺サ蜉<EFBFBD><EFBFBD>剞荳ュ髣エ莉カ譽€譟?
  • 豕ィ蜀瑚キッ逕ア蛻?index.ts

Phase 3.5.4: 蜑咲ォッ邂。逅<EFBDA1>阜髱「<E9ABB1><EFBDA2>ay 5-6<>?

Day 5: 蛻苓。ィ鬘?+ 隹<>ッ募シ€蜈?
  • 蛻帛サコ譁<EFBFBD>サカ扈捺桷

    frontend-v2/src/modules/admin/prompt/
    笏懌楳笏€ pages/
    笏?  笏懌楳笏€ PromptListPage.tsx      # 蛻苓。ィ鬘?  笏?  笏披楳笏€ PromptEditorPage.tsx    # 郛冶セ鷹。?  笏懌楳笏€ components/
    笏?  笏懌楳笏€ PromptDebugSwitch.tsx   # 隹<>ッ募シ€蜈?  笏?  笏懌楳笏€ PromptVersionHistory.tsx # 迚域悽蜴<E682BD>彰
    笏?  笏披楳笏€ PromptPreview.tsx       # 鬚<>ァ育サ<E882B2>サカ
    笏懌楳笏€ hooks/
    笏?  笏披楳笏€ usePromptApi.ts         # API隹<49>畑
    笏披楳笏€ index.ts
    
  • PromptListPage.tsx

    • 讓。譚ソ蛻苓。ィ螻慕、コ
    • 讓。蝮礼ュ幃€会シ<EFBFBD>VW/ASL/DC/...<2E>? - [ ] 迥カ諤∫ュ幃€会シ域怏闕臥ィ?譌<>闕臥ィソ<EFBDA8><EFBDBF>
    • 謳懃エ「蜉溯<EFBFBD>
  • PromptDebugSwitch.tsx

    • <EFBFBD>剞譽€譟・<EFBFBD>井サ?prompt:debug 蜿ッ隗<EFBDAF>シ? - [ ] 讓。蝮鈴€画叫蝎ィ<E89D8E>亥庄螟夐€会シ<E4BC9A>
    • 蠑€蜈ウ迥カ諤? - [ ] 蠑€蜷ッ蜷取仞遉コ隴ヲ蜻頑<E89CBB>?
Day 6: 郛冶セ大勣鬘オ髱?
  • PromptEditorPage.tsx

    • 蝓コ譛ャ菫。諱ッ螻慕、コ<EFBFBD><EFBFBD>ode, name, module<6C>? - [ ] Prompt 蜀<>ョケ郛冶セ大勣<E5A4A7><E58BA3>onaco Editor / CodeMirror<6F>? - [ ] 蜿倬㍼閾ェ蜉ィ謠仙叙<EFBFBD>夂シ冶セ第慮螳樊慮謇ォ謠<EFBFBD> {{xxx}}<EFBFBD>梧仞遉コ蜿倬㍼蛻苓。?<3F><>
    • modelConfig 郛冶セ托シ<E68998>SON譬シ蠑擾シ? - [ ] 菫晏ュ倩拷遞ソ謖蛾聴<E89BBE><EFBFBD>蜉ィ譖エ譁?variables 蟄玲ョオ<EFBDAE>? - [ ] 蜿大ク<E5A4A7>潔髓ョ<E9AB93>域揀髯先而蛻カ<E89BBB><EFBFBD>?prompt:publish 蛻咏ヲ∫畑<E288AB><E79591>
    • 蜿倬㍼蜿俶峩隴ヲ蜻<EFBFBD><EFBFBD>壼書蟶<EFBFBD>燕譽€譟・蜿倬㍼譏ッ蜷ヲ荳<EFBFBD> ACTIVE 迚域悽荳榊酔 <20><>
    • 迚域悽蜴<EFBFBD>彰髱「譚ソ
    • 蜿俶峩隸エ譏手セ灘<EFBFBD><EFBFBD><EFBFBD>hangelog<EFBFBD>?
  • PromptDebugPanel.tsx <20><>

    • 譬ケ謐ョ variables 閾ェ蜉ィ逕滓<E98095>霎灘<E99C8E>陦ィ蜊<EFBDA8>
    • "豬玖ッ墓クイ譟<EFBDB2>"謖蛾聴<E89BBE>夐「<E5A490>ァ亥序驥乗崛謐「蜷守噪謨域<E8ACA8>? - [ ] 貂イ譟鍋サ捺棡螻慕、コ
  • PromptVersionHistory.tsx

    • 迚域悽蛻苓。ィ
    • 迚域悽蟇ケ豈<EFBFBD>
    • 荳€髞ョ蝗樊サ?
  • <EFBFBD><EFBFBD>蛻ー蟇シ闊? - [ ] 霑占是邂。逅<EFBDA1>ォッ萓ァ霎ケ譬乗キサ蜉<EFBDBB>蜈・蜿」

    • 鬘カ驛ィ譬乗キサ蜉<EFBFBD><EFBFBD>ッ募シ€蜈?

Phase 3.5.5: RVW讓。蝮鈴寔謌撰シ<E692B0>ay 7<>?

  • 謾ケ騾?editorialService.ts

    // Before
    const systemPrompt = await fs.readFile(PROMPT_PATH, 'utf-8');
    
    // After
    const systemPrompt = await promptService.get('RVW_EDITORIAL', {}, userId);
    
  • 謾ケ騾?methodologyService.ts

  • 謾ケ騾<EFBFBD>蜈カ莉?RVW 逶ク蜈ウ譛榊苅

  • 遶ッ蛻ー遶ッ豬玖ッ? - [ ] 譎ョ騾夂畑謌キ<E8AC8C>壻スソ逕ィ ACTIVE 迚域悽

    • <EFBFBD>ッ戊€<EFBFBD>シ亥シ€蜷ッRVW隹<EFBFBD>ッ包シ会シ壻スソ逕ィ DRAFT 迚域悽
    • <EFBFBD>ッ戊€<EFBFBD>シ域悴蠑€蜷ッRVW隹<EFBFBD>ッ包シ会シ壻スソ逕ィ ACTIVE 迚域悽
    • 蜿大ク<EFBFBD>オ∫ィ具シ咼RAFT 竊?ACTIVE
    • 蝗樊サ壽オ∫ィ<EFBFBD>

4.3 莉サ蜉。霍溯クェ陦?

ID 莉サ蜉。 雍溯エ」莠? 迥カ諤? 螳梧<EFBFBD>譌・譛<EFBFBD>
3.5.1.1 蛻帛サコ capability_schema AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.1.2 譖エ譁ー schema.prisma AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.1.3 豺サ蜉<EFBFBD><EFBFBD>剞謨ー謐ョ AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.1.4 郛門<EFBFBD>霑∫ァサ閼壽悽 AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.1.5 霑∫ァサ RVW Prompt AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.2.1 螳樒鴫 PromptService AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.2.2 螳樒鴫辜ュ譖エ譁? - 竢ク<EFBFBD><EFBFBD> 證らシ難シ域焔蜉ィinvalidate<74>? -
3.5.2.3 郛門<EFBFBD>蜈懷コ姫rompt AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.2.4 螳樒鴫蜿倬㍼謠仙叙 extractVariables() <20><> AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.2.5 螳樒鴫蜿倬㍼譬。鬪<EFBFBD> validateVariables() <20><> AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.3.1 螳樒鴫邂。逅<EFBFBD>PI AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.3.2 豺サ蜉<EFBFBD><EFBFBD>剞譽€譟? - 竢ク<EFBFBD><EFBFBD> 證らシ難シ域ウィ驥頑脂<E9A091>? -
3.5.4.0 謳ュ蟒コ邂。逅<EFBFBD>ォッ蝓コ遑€譫カ譫<EFBFBD> AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.4.1 螳樒鴫蛻苓。ィ鬘? AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.4.2 螳樒鴫隹<EFBFBD>ッ募シ€蜈? AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.4.3 螳樒鴫郛冶セ大勣<EFBFBD><EFBFBD>odeMirror 6 邂€蛹也沿<E4B99F>榎 AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.4.4 螳樒鴫隹<EFBFBD>ッ暮擇譚ソ<EFBFBD>亥序驥剰セ灘<EFBFBD>陦ィ蜊包シ解氣<EFBFBD> AI 笨?蟾イ螳梧<E89EB3>? 2026-01-11
3.5.5.1 謾ケ騾?RVW 譛榊苅 - 竢?蠕<>€蟋? -
3.5.5.2 遶ッ蛻ー遶ッ豬玖ッ? - 竢?蠕<>€蟋? -

5. 謨ー謐ョ霑∫ァサ隶。蛻<EFBDA1>

5.1 RVW讓。蝮苓ソ∫ァサ<EFBDA7>育ャャ荳€謇ケ<E8AC87><EFBDB9>

貅先枚莉? Code 蜷咲ァー 讓。蝮<EFBFBD> 迥カ諤?
review_editorial_system.txt RVW_EDITORIAL 遞ソ郤ヲ隗<EFBFBD>激諤ァ隸<EFBFBD>シ? RVW ACTIVE
review_methodology_system.txt RVW_METHODOLOGY 譁ケ豕募ュヲ隸<EFBFBD>シ? RVW ACTIVE

豕ィ<EFBFBD>啻topic_evaluation_*` 譏?騾蛾「倩ッ<E580A9>シー"蜉溯<E89C89><E6BAAF>御ク榊ア樔コ山VW螳。遞ソ讓。蝮暦シ梧悴霑∫ァサ

5.2 ASL讓。蝮苓ソ∫ァサ<EFBDA7>育ャャ莠梧音<E6A2A7>悟セ<E6829F>ョ夲シ<E5A4B2>

貅先枚莉? Code 蜷咲ァー 讓。蝮<EFBFBD>
v1.1.0-standard.txt ASL_SCREENING_STANDARD <EFBFBD>「俶遭隕∫ュ幃€?譬<>㊥) ASL
v1.1.0-strict.txt ASL_SCREENING_STRICT <EFBFBD>「俶遭隕∫ュ幃€?荳・譬シ) ASL
v1.1.0-lenient.txt ASL_SCREENING_LENIENT <EFBFBD>「俶遭隕∫ュ幃€?螳ス譚セ) ASL
fulltext-screening/system_prompt.md ASL_FULLTEXT_SYSTEM 蜈ィ譁<EFBFBD>ュ幃€?System) ASL
fulltext-screening/user_prompt_template.md ASL_FULLTEXT_USER 蜈ィ譁<EFBFBD>ュ幃€?User) ASL

5.3 蜈カ莉匁ィ。蝮苓ソ∫ァサ<EFBDA7>育ャャ荳画音<E794BB>悟セ<E6829F>ョ夲シ<E5A4B2>

讓。蝮<EFBFBD> <EFBFBD>ョ。Prompt謨ー驥<EFBFBD> 莨伜<EFBFBD>郤?
DC 5+ P1
PKB 3 P2
IIT 3 P2
AIA 10<EFBFBD>域匱閭ス菴難シ? P3<EFBFBD>亥セ<EFBFBD>€蜿托シ<EFBFBD>

6. 譚<>剞隶セ隶。

6.1 譚<>剞螳壻ケ<E5A3BB>

<EFBFBD>剞 Code 謠剰ソー 鬟朱勦遲臥コァ
prompt:view 譟・逵輝rompt蛻苓。ィ蜥瑚ッヲ諠? 菴?
prompt:edit 蛻帛サコ/菫ョ謾ケDRAFT迚域悽 荳?
prompt:debug €蜷ッ隹<EFBFBD>ッ墓ィ。蠑? 荳?
prompt:publish 蜿大クゥRAFT竊但CTIVE *鬮?

6.2 隗定牡譚<E789A1>剞蛻<E5899E><E89BBB>

隗定牡 prompt:view prompt:edit prompt:debug prompt:publish
SUPER_ADMIN 笨? 笨? 笨? 笨?
PROMPT_ENGINEER 笨? 笨? 笨? 笶?
HOSPITAL_ADMIN 笶? 笶? 笶? 笶?
PHARMA_ADMIN 笶? 笶? 笶? 笶?
USER 笶? 笶? 笶? 笶?

6.3 蜈ク蝙句キ・菴懈オ?

1. Prompt蟾・遞句ク?逋サ蠖慕ウサ扈<EFBDBB>
2. 霑帛<E99C91> Prompt 邂。逅<EFBDA1>。オ髱「<E9ABB1>梧伽蛻?RVW_EDITORIAL
3. 菫ョ謾ケ蜀<EFBDB9>ョケ<EFBDAE>檎せ蜃?菫晏ュ倩拷遞ソ"
4. 蠑€蜷ッ隹<EFBDAF>ッ墓ィ。蠑擾シ磯€画叫 RVW 讓。蝮暦シ?5. 蛻<>困蛻?RVW 荳壼苅鬘オ髱「<E9ABB1>御ク贋シ<E8B48B>豬玖ッ慕ィソ莉?6. 鬪瑚ッ∵譜譫懶シ悟ヲよ棡OK<4F>?   - 蜈ウ髣ュ隹<EFBDAD>ッ墓ィ。蠑<EFBDA1>
   - 騾夂衍 雜<>コァ邂。逅<EFBDA1><E98085>?螳。譬ク
7. 雜<>コァ邂。逅<EFBDA1><E98085>?逋サ蠖包シ梧衍逵玖拷遞ソ<E9819E>檎せ蜃サ"蜿大ク<E5A4A7>"
8. 譁ー迚域悽逕滓<E98095>?```

---

## 7. 豬玖ッ戊ョ。蛻<EFBDA1>

### 7.1 蜊募<E89C8A>豬玖ッ<E78E96>

| 豬玖ッ暮。?| 隕<>尠蜀<E5B0A0>ョケ |
|--------|---------|
| PromptService.get() | 轣ー蠎ヲ霍ッ逕ア騾サ霎<EFBDBB> |
| PromptService.render() | 蜿倬㍼貂イ譟<EFBDB2> |
| PromptService.getFallback() | 蜈懷コ暮€サ霎<EFBDBB> |

### 7.2 髮<><E9ABAE>豬玖ッ<E78E96>

| 豬玖ッ募惻譎ッ | 鬚<>悄扈捺棡 |
|---------|---------|
| 譎ョ騾夂畑謌キ隶ソ髣?| 霑泌屓 ACTIVE 迚域悽 |
| 隹<>ッ戊€<E6888A>シ亥シ€蜷ッRVW隹<57>ッ包シ芽ョソ髣?RVW Prompt | 霑泌屓 DRAFT 迚域悽 |
| 隹<>ッ戊€<E6888A>シ亥シ€蜷ッRVW隹<57>ッ包シ芽ョソ髣?ASL Prompt | 霑泌屓 ACTIVE 迚域悽 |
| 隹<>ッ戊€<E6888A>シ域悴蠑€蜷ッ隹<EFBDAF>ッ包シ芽ョソ髣ョ | 霑泌屓 ACTIVE 迚域悽 |
| 譌?ACTIVE 迚域悽譌?| 霑泌屓 FALLBACK |
| 謨ー謐ョ蠎謎ク榊庄逕ィ譌?| 霑泌屓 FALLBACK |

### 7.3 遶ッ蛻ー遶ッ豬玖ッ?
| 豬玖ッ墓オ∫ィ<E288AB> | 豁・鬪、 |
|---------|------|
| 螳梧紛郛冶セ第オ∫ィ<E288AB> | 逋サ蠖補<E8A096>譟・逵句<E980B5>陦ィ竊堤シ冶セ鯛<EFBDBE>菫晏ュ倩拷遞ソ竊貞シ€蜷ッ隹<EFBDAF>ッ補<EFBDAF>鬪瑚ッ≫<EFBDAF>蜿大ク?|
| 蝗樊サ壽オ∫ィ<E288AB> | 蜿大ク<E5A4A7>漠隸ッ迚域悽竊貞屓貊壺<E8B28A>鬪瑚ッ<E7919A> |
| 譚<>剞豬玖ッ<E78E96> | PROMPT_ENGINEER 譌<>豕募書蟶<E69BB8> |

---

## 8. 鬟朱勦荳主コ泌ッ?
### 8.1 謚€譛ッ鬟朱<E9AC9F>?
| 鬟朱勦 | 蠖ア蜩<EFBDB1> | 讎ら紫 | 蠎泌ッケ遲也払 |
|------|------|------|---------|
| capability_schema 蛻帛サコ螟ア雍・ | 邉サ扈滓裏豕募星蜉ィ | 菴?| 迢ャ遶鬼QL閼壽悽<E5A3BD>悟庄謇句勘菫ョ螟<EFBDAE> |
| 謨ー謐ョ蠎捺衍隸「雜<EFBDA2><E99B9C>?| 逕ィ謌キ隸キ豎ょ序諷「 | 菴?| 菴ソ逕ィ郛灘ュ<E78198> + 蜈懷コ<E687B7> |
| 螟壼ョ樔セ狗シ灘ュ倅ク堺ク€閾?| 逕ィ謌キ菴馴ェ御ク堺ク€閾?| 荳?| LISTEN/NOTIFY 蜷梧ュ・ |
| 隹<>ッ戊€<E6888A>ッッ蜿大ク<E5A4A7>漠隸ッPrompt | 郤ソ荳顔畑謌キ蜿怜スア蜩?| 荳?| 譚<>剞蛻<E5899E>ヲサ + 迚域悽蝗樊サ<E6A88A> |

### 8.2 荳壼苅鬟朱勦

| 鬟朱勦 | 蠖ア蜩<EFBDB1> | 蠎泌ッケ遲也払 |
|------|------|---------|
| Prompt 謾ケ蜉ィ蟇シ閾エAI謨域棡荳矩剄 | 荳壼苅蜿怜スア蜩?| 轣ー蠎ヲ鬪瑚ッ<E7919A> + 蠢ォ騾溷屓貊?|
| 譚<>剞邂。逅<EFBDA1>キキ荵ア | 隸ッ謫堺ス?| 荳・譬シRBAC + 螳。隶。譌・蠢<EFBDA5> |

### 8.3 蜈懷コ慕ュ也払

```typescript
// 荳臥コァ蜈懷コ墓惻蛻カ
async get(code: string, variables: any, userId: string): Promise<string> {
  try {
    // Level 1: 豁」蟶ク豬∫ィ<E288AB>
    return await this.getNormalFlow(code, variables, userId);
  } catch (dbError) {
    logger.warn('DB query failed, trying cache', { code, error: dbError });
    
    // Level 2: 菴ソ逕ィ郛灘ュ<E78198>
    const cached = this.activeCache.get(code);
    if (cached) {
      return this.render(cached, variables);
    }
    
    // Level 3: 遑ャ郛也<E9839B><EFBFBD>蠎?    logger.error('Cache miss, using fallback', { code });
    return this.render(this.getFallback(code), variables);
  }
}

<EFBFBD>梼 髯<><EFBFBD>

A. 逶ク蜈ウ譁<EFBDB3>。」

  • [Prompt邂。逅<EFBDA1>ウサ扈滉ク守<EFBDB8>蠎ヲ鬚<EFBDA6>ァ郁ョセ隶。譁ケ譯<EFBDB9>(../02-謚€譛ッ隶セ隶?02-騾夂畑閭ス蜉帛ア<E5B89B>03-Prompt邂。逅<EFBDA1>ウサ扈滉ク守<EFBDB8>蠎ヲ鬚<EFBDA6>ァ郁ョセ隶。譁ケ譯?md)
  • [Prompt邂。逅<EFBDA1>ウサ扈溷ソォ騾溷盾閠ゾ(../02-謚€譛ッ隶セ隶?03-Prompt邂。逅<EFBDA1>ウサ扈溷ソォ騾溷盾閠?md)
  • Prompt邂。逅<EFBFBD>錘蜿ー隶セ隶。

B. 莉」遐∽ス咲スョ

邀サ蝙<EFBFBD> 霍ッ蠕<EFBFBD>
蜷守ォッ譛榊苅 backend/src/common/capabilities/prompt/
蜷守ォッAPI backend/src/modules/admin/prompt/
蜑咲ォッ鬘オ髱「 frontend-v2/src/modules/admin/prompt/
謨ー謐ョ蠎鉄chema backend/prisma/schema.prisma
霑∫ァサ閼壽悽 backend/scripts/migrate-prompts.ts

C. 蜻ス蜷崎ァ<E5B48E>

*Prompt Code 蜻ス蜷崎ァ<E5B48E><EFBDA7><EFBFBD>?

{MODULE}_{FUNCTION}_{ROLE}

遉コ萓具シ?- RVW_EDITORIAL           # RVW讓。蝮<EFBDA1>-遞ソ郤ヲ隗<EFBDA6>激諤ァ隸<EFBDA7>シ?- RVW_METHODOLOGY         # RVW讓。蝮<EFBDA1>-譁ケ豕募ュヲ隸<EFBDA6>シ?- ASL_SCREENING_STANDARD  # ASL讓。蝮<EFBDA1>-譬<>㊥遲幃€?- AIA_AGENT_STATISTICIAN  # AIA讓。蝮<EFBDA1>-扈溯ョ。蟶域匱閭ス菴<EFBDBD>

€蜷取峩譁ー<EFBFBD><EFBFBD>2026-01-11

<EFBFBD>噫 蜃<><EFBFBD>・ス蠑€蟋倶コ<E580B6><EFBFBD>滉サ?Phase 3.5.1 隨ャ荳€荳ェ莉サ蜉。蠑€蟋具シ<E585B7>