feat(標點預算): 情緒決定標點分布,上限夾死免得變成強度計

只有文字的話標點就是語調:同一句「我知道了」,`我知道了。` 與 `我、我知道了⋯`
是兩種情緒,差別全在標點不在用詞。

PUNCTUATION_BUDGET 只寫拍板指名的四種(焦慮/憤怒/害羞/喜悅)。
其餘八種不配標點——硬給每種情緒配一套會讓標點變成裝飾,沒把握的就不編。

punctuationBudget() 每輪只回一種,門檻跟破口同一條線(40)。兩種情緒各配一套
會互相打架:憤怒幾乎不用問號、焦慮要多斷句,混起來不是複雜的情緒,是標點亂撒。

上限:MAX_EXCLAIM = 1、MAX_ELLIPSIS = 3,另擋 […⋯]{3,} 的連發
(中文刪節號本來就常寫兩個,所以三個起才算)。不夾死的話它會變成 emoji 的
替代品——情緒不夠就多打幾個驚嘆號。界線也寫進注入文字:標點管分布、強度歸 emoji。

selftest 711 → 721。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-03 08:21:37 +00:00
co-authored by Claude Opus 5
parent 06774ceb2b
commit f26d0315f2
3 changed files with 102 additions and 3 deletions
+9 -3
View File
@@ -100,10 +100,16 @@ Q5Q10 六題已於 2026/08/03 由使用者拍板,設計不再需要確認
—— `emojiAudit()` 掛在 `emotion --audit`,另外算「只有符號沒有句子」那幾則(那才是真的退化)
- 驗收:羞恥度 45/70/90 三種輸出的 emoji 不同;把所有 emoji 刪掉之後,句子的形狀仍然分得出是哪一級
- [ ] **5.2 標點預算(情緒 → 標點與句長的分布)**
- [ ] 把標點納入 `speechLint()` 的可調參數:焦慮 → 刪節號與逗號斷句變多;憤怒 → 句號密度上升、幾乎不用問號;
- [x] **5.2 標點預算(情緒 → 標點與句長的分布)**2026/08/03 16:21:13 完成)
- [x] 把標點納入 `speechLint()` 的可調參數:焦慮 → 刪節號與逗號斷句變多;憤怒 → 句號密度上升、幾乎不用問號;
害羞 → 疊字與破折;喜悅 → 允許一個驚嘆號
- [ ] 上限夾死(一則最多一個驚嘆號、刪節號不連發),否則會變成顏文字的替代品
—— `PUNCTUATION_BUDGET`(**只寫拍板指名的這四種**,其餘不硬配,
免得標點變成裝飾)+ `punctuationBudget()` 每輪注入,門檻與破口同一條線(40)。
**只回一種**:兩種情緒各配一套標點會互相打架(憤怒不用問號、焦慮要斷句)
- [x] 上限夾死(一則最多一個驚嘆號、刪節號不連發),否則會變成顏文字的替代品
—— `MAX_EXCLAIM = 1``MAX_ELLIPSIS = 3`,另擋 `[…⋯]{3,}` 的連發
(中文刪節號常寫兩個,所以三個起才算連發)。
界線寫進注入文字:**標點管分布、強度歸 emoji**
- 驗收:同一句話在四種情緒下輸出,標點分布看得出差別,且都沒有過量
- [ ] **5.1 訊息的節奏:一輪可以拆成兩則(純文字唯一的「時間」訊號)**