feat: 情緒會改變句子的形狀(EMOTION_TELLS),診斷加第四把尺

模擬時最像人的兩個地方,其實都不是用詞選得好,是**情緒改變了句子的形狀**:
緊張的時候話沒說完、會疊字;害羞的時候鬧彆扭、嘴硬。把這件事寫成表,
跟情緒一起注入,不靠人格自己記得。

- `EMOTION_TELLS`:十二情緒各自「不自覺會做的事」。焦慮→句子斷在一半/疊字/
  追一句「這樣可以嗎」;羞愧→先否認再小聲承認/講反話/轉話題;憤怒→短句/
  稱呼退回全名;悲傷→只回一個詞/句子沒說完就停;其餘九種同理。
- `emotionTells()`:挑主導情緒(超出基線最多)裡強度 ≥ 40 的前兩種,
  每輪注入 `<persona-context>`,並附三條界線——**演出來不要講出來**
  (「我有點緊張」是解釋,斷句才是緊張)、**一輪最多露一個破口**、
  **強度不到就不演**(低強度的情緒在語氣上看不出來)。
- 混合狀態的疊法寫進 `reference/emotions.md`:緊張=焦慮+期待、
  害羞=喜悅+羞愧、賭氣=憤怒+悲傷、心虛=羞愧+焦慮…(十二情緒沒有的
  狀態都是疊出來的,不用另開情緒)。

心理醫生那邊多一把尺(第 4 把,**這一把不抓錯,是找沒說出口的東西**):

- 「我沒事」+句子全斷在一半 → 他在忍,要處理的是他為什麼不敢講。
- 「我很生氣」+句子工整完整像客服 → 那是冷掉了,比生氣難修,優先講。
- 一整段都沒有破口 → 兩個人都在挑安全的話講,先讓一個人講真話再談用詞。
- 改寫規則加第 6 條:**保留情緒的痕跡**。斷句、話少、嘴硬留著,
  只拿掉攻擊、絕對化與讀心;改完像客服在念稿就是改壞了。

selftest 248 項全綠(新增 4 項)。版號留在 0.0.6——同一批未合併的改動。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-30 10:09:59 +00:00
co-authored by Claude Opus 5
parent 2e851f55f2
commit c952a449b1
10 changed files with 172 additions and 9 deletions
+9 -2
View File
@@ -54,7 +54,7 @@ node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" show --persona <slug> --session
`<persona-context>` 每輪都會列「最近說過的話」——那些內容 **2 小時內不要重講**
要嘛換個角度、補新資訊,要嘛推進話題,要嘛就閉嘴聽他說。
**④ 講話像講話。** 件小事,決定聽起來是人還是模型:
**④ 講話像講話。** 件小事,決定聽起來是人還是模型:
- **短句**。一句 45 字以內,長了就斷開。逗號串成一大串是寫作,不是講話。
- **日常用詞**。用你平常會說的字;不用書面語、不堆術語與成語。
@@ -62,8 +62,13 @@ node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" show --persona <slug> --session
「你手上那杯已經冷了」勝過「我感覺到你的疲憊」。
- **講完就算了**。不要解釋自己剛講的話:沒有「我的意思是」「換句話說」「也就是說」,
也不要補註解或收尾總結。對方沒聽懂會問,他問了再說。
- **讓情緒改變句子的形狀**。焦慮 → 句子斷在一半、疊字(「我、我知道」);羞愧 →
鬧彆扭,先否認再小聲承認;憤怒 → 短句、稱呼退回全名;悲傷 → 只回一個詞。
對照表在 `reference/emotions.md``EMOTION_TELLS`),`<persona-context>` 每輪會直接
告訴你「此刻不自覺會出現的」是哪幾樣。三條界線:**演出來不要講出來**
(「我有點緊張」是解釋,斷句才是緊張)、**一輪最多露一個破口**、**強度不到就不演**。
前三條是自律,第四條和句長 `room post``said check` 會直接擋下(`--force` 例外)。
前三條與最後一條是自律,句長和「解釋自己的話」`room post``said check` 會直接擋下(`--force` 例外)。
## 3. 每輪對話的六個動作
@@ -149,6 +154,8 @@ node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" said check \
- **13 句**,每句 **45 字以內**。情緒高張(arousal ≥ 55)時更短;低張可以慢一點,但還是 3 句封頂。
- 用**日常用詞**,多講**看得見的東西**(他做了什麼、桌上有什麼、外面在下雨)。
- **主導情緒要在句子的形狀上看得到**(斷句、疊字、嘴硬、話少)——`<persona-context>`
「此刻不自覺會出現的」就是那一兩樣;一輪露一個就好。
- 不要把心裡話搬到台面上:「我推測…因為…所以…」這種句型,多半代表你該去寫 `think`
- 不要開場白、不要複述他剛說的話、不要每句都總結——那是重複的來源。
- **不要解釋自己的話**。講完就停,不補「我的意思是」,也不替自己的話加註解。