# ADR-019: System Prompt 集中管理

| 屬性 | 值 |
|------|-----|
| **狀態** | Accepted |
| **建立日期** | 2026-03-26 |
| **決策者** | 首席架構師 |
| **關聯** | Phase 17 P2 改進 |

## 背景

System Prompt 分散在多個檔案中：
- `src/services/openclaw.py` - 生產環境 Prompt (約 125 行)
- `tests/test_prompt_validation.py` - 測試用 Prompt (約 15 行)

問題：
1. **違反 DRY 原則** - 相同內容重複定義
2. **維護困難** - 修改需同步多處
3. **版本不一致風險** - 容易遺漏同步

## 決策

建立 `src/core/prompts.py` 集中管理所有 System Prompt。

### 結構

```python
# src/core/prompts.py

# 生產環境完整 Prompt
OPENCLAW_SYSTEM_PROMPT = """..."""

# 測試用精簡 Prompt
OPENCLAW_TEST_PROMPT = """..."""

# 版本資訊
PROMPT_VERSION = "7.1"
PROMPT_UPDATED = "2026-03-26"
```

### 使用方式

```python
# 生產環境
from src.core.prompts import OPENCLAW_SYSTEM_PROMPT

# 測試
from src.core.prompts import OPENCLAW_TEST_PROMPT
```

## 影響檔案

| 檔案 | 變更 |
|------|------|
| `src/core/prompts.py` | 新增 |
| `src/services/openclaw.py` | 改為 import |
| `tests/test_prompt_validation.py` | 改為 import |

## 優點

1. **單一來源** - 所有 Prompt 集中管理
2. **版本追蹤** - 明確的版本號和更新日期
3. **易於測試** - 可獨立測試 Prompt 內容
4. **可擴展** - 未來可加入更多 Prompt 變體

## 替代方案

| 方案 | 優點 | 缺點 | 決定 |
|------|------|------|------|
| **維持現狀** | 無需改動 | DRY 違規 | ❌ |
| **外部檔案 (YAML/JSON)** | 非開發者可編輯 | 增加複雜度 | ❌ |
| **集中式 Python 模組** | 類型安全，IDE 支援 | - | ✅ |

## 實作完成

- [x] 建立 `src/core/prompts.py`
- [x] 更新 `openclaw.py` import
- [x] 更新 `test_prompt_validation.py` import
- [x] 驗證 import 正確
