fix(role): 寫檔前加繁簡防線,歧義字刻意不自動轉換
病因(由角色稽核記憶時發現):實測有整則記憶以簡體寫成,連 summary 與 tags 都是, 而該則的 sources 指向另一個專案 —— 不同環境下 CLI 的行為並不一致, 光靠 prompt 的「使用繁體中文」條款擋不住。0.1.2 只補了 prompt(症狀由人工修檔), 寫入器本身沒防線,同樣環境下還會再產出簡體。 - memory.js 新增 toTraditional/ambiguousSimplified/warnIfSimplified - cmdWrite(inbox)、cmdApply(整理落檔)、appendBond(關係史)三處寫檔前都經過 - 一簡對一繁、無歧義的約 700 字自動轉繁 - 一簡對多繁刻意不轉(发→發/髮、干→乾/幹、后→後/后、里→裡/里、复→復/複/覆、 系→系/係/繫、脏→臟/髒…),改為 stderr 警告,留待整理階段依上下文處理 —— 機械替換會把「头发」變成「頭發」,那比留著簡體更難發現, 因為它看起來已經是繁體了。寧可留下可偵測的瑕疵,也不要製造隱形錯誤 - 警告只警告不阻斷:記憶寧可帶著瑕疵留下,也不能因為用字問題而遺失 - 轉換只在字形層;用語差異(反饋/回饋)仍由 prompt 的台灣用語條款負責 實測:整則簡體素材寫入後 summary/tags/content 均正確轉繁, 「发」「系」保留並發出警告,未產生「頭發」這類隱形錯誤。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -786,6 +786,19 @@ updated: <yyyy/MM/dd HH:mm:ss>
|
||||
|
||||
判準刻意放在 `relevance` 而非型態:並非所有事件與知識都該優待 —— **沒有情感脈絡的一次性工作進度仍照原規則淡去**,被留下的是帶著溫度的那些。因此兩份 prompt 都明訂:只要內容承載情感、關係溫度或當時的心情,`relevance` **必須**含 `emotional`;`episodic` 與 `semantic` 最容易漏標,漏了就會被當成一般進度處理。
|
||||
|
||||
### 繁簡防線(寫檔前的第二道)
|
||||
|
||||
兩份 prompt 已明令輸出繁體,但**實測仍出現整則簡體記憶**(連 `summary` 與 `tags` 都是),而且該則的 `sources` 指向另一個專案 —— 不同環境下 CLI 的行為並不一致,光靠 prompt 擋不住。因此 `memory.js` 在寫檔前再擋一次:`cmdWrite`(inbox)、`cmdApply`(整理落檔)、`appendBond`(關係史)都會經過。
|
||||
|
||||
| 字類 | 處理 |
|
||||
| --- | --- |
|
||||
| 一簡對一繁、無歧義(約 700 字) | **自動轉為繁體** |
|
||||
| 一簡對多繁(`发`→發/髮、`干`→乾/幹、`后`→後/后、`里`→裡/里、`复`→復/複/覆、`系`→系/係/繫、`脏`→臟/髒…) | **刻意不自動轉換**,改為 stderr 警告,留待整理階段依上下文處理 |
|
||||
|
||||
**為什麼歧義字不轉**:機械替換會把「头发」變成「頭發」—— 那比留著簡體更難發現,因為它看起來已經是繁體了。**寧可留下可偵測的瑕疵,也不要製造隱形的錯誤。**
|
||||
|
||||
轉換只在字形層,用語差異(例如「反饋」與「回饋」)仍由 prompt 的「台灣用語」條款負責。警告只警告、不阻斷 —— 記憶寧可帶著瑕疵留下,也不能因為用字問題而遺失。
|
||||
|
||||
### 排程涵蓋所有角色
|
||||
|
||||
睡眠、小睡與晨間檢查排程**預設服務角色目錄下的每一個角色**,而不只是 `.active` 指定的啟用角色。
|
||||
|
||||
Reference in New Issue
Block a user