diff --git a/TARGET.md b/TARGET.md index aec3dc4..f3b13d2 100644 --- a/TARGET.md +++ b/TARGET.md @@ -28,14 +28,21 @@ Q5–Q10 六題已於 2026/08/03 由使用者拍板,設計不再需要確認 | --- | --- | | 強度全域一致(Q8) | 動漫化的**強度**全域一致,不加 `anime_level` 欄位、不做強度旋鈕;**內容**(自稱/句尾/口癖)仍然逐人格不同,否則所有人格會講起話來一樣——那正是 G2 要避免的 | -## 暫停已解除(2026/08/03 15:52:52) +## 進度(2026/08/03 16:06:10) -`feat/persona-anime-expression` 已併入 `develop`(`35c8665`,`selftest` 641 項全綠)。 -它做掉了 **5.8 全部**與 **5.5 全部**,以及 **5.7/5.4 的大部分**。 +`feat/persona-anime-expression` 已併入 `develop`(`35c8665`),暫停解除; +對照時查出的五個缺口也補完了(`selftest` 641 → **646 項全綠**)。 -逐項對照的結果直接反映在下面的勾選狀態。**5.7 與 5.4 仍未勾選**,因為各自還剩幾個 -子項目沒做完——不是整節重做,是補那幾格。被它完成的子項目已經個別勾起來, -接手時只要看還沒勾的那幾行。 +| 節 | 狀態 | +| --- | --- | +| 5.4 鬧彆扭階梯與三段式 | ✅ 完成 | +| 5.5 女性人格預設值 | ✅ 完成 | +| 5.8 emoji 表程度 | ✅ 完成 | +| **5.7 括號動作格** | 八個子項目**七個完成**,只剩「記憶要記那個行為」那條的欄位對齊——見該行的 ⏭️ | +| 5.1/5.2/5.3/5.6 | ⬜ 還沒動 | +| 階段 4 四項、收尾三項 | ⬜ 還沒動 | + +5.7 不勾選是因為子項目沒全完成(規則是子項目全完成才勾上層),**不是整節重做**。 --- @@ -48,24 +55,22 @@ Q5–Q10 六題已於 2026/08/03 由使用者拍板,設計不再需要確認 - [x] 兩格分工寫死:情緒格是**標註**(既有 meta);動作格只寫**看得見的身體動作**。 動作格不重複情緒名稱——`(喜悅・害羞)` 是把標註寫兩次,不是動作 —— `actionLint()` 擋「寫情緒名稱」(2026/08/03 15:52:52 完成) - - [ ] 生理反應算動作,明文允許:臉紅、耳朵紅、手在抖、聲音變小、呼吸亂掉。 + - [x] 生理反應算動作,明文允許:臉紅、耳朵紅、手在抖、聲音變小、呼吸亂掉。 判準是**看得見或聽得見**,不是有沒有情緒色彩——`(臉紅)` 可以,`(害羞)` 只能待在情緒格。 害羞這格的預設動作就用**臉紅**,其餘看人格自己的 `## Tells` - **尚缺**:`actionLint()` 已放行臉紅/手在抖(明文允許這半段做完了),但 - `EMOTION_TELLS.shame` 仍是「鬧彆扭/講反話/轉移話題」,**沒有把臉紅放進預設破口** + —— `actionLint()` 放行;`EMOTION_TELLS.shame` 把**臉紅擺第一個**(2026/08/03 16:06:10 完成) - [x] `speechLint()` 只對括號**外**的內容比對黑名單與句長;括號內另立規則 (情緒格照既有 `injectSafeLine`;動作格單一動作、12 字內) —— `actionLint()` 擋超過 12 字與一格兩個動作(2026/08/03 15:52:52 完成) - - [ ] 劇場模式:`room post` 加 `--action "<動作>"`(與既有 `--emotion` 並列), + - [x] 劇場模式:`room post` 加 `--action "<動作>"`(與既有 `--emotion` 並列), `room read`/`room script` 的渲染跟著改;`hooks/` 每輪強制的輸出格式放寬到帶括號 - **尚缺**:`room post --action` 有了、`roomScript()` 也吃了 `roomTag()`,但 - **`room read` 還是只印 `(情緒)`**(`persona.mjs:1861` 沒改用 `roomTag()`,動作格會被吃掉); - `hooks/prompt_submit.mjs:34` 劇場模式仍寫死 `名字:內容`,沒放寬到帶括號 - - [ ] **一對一(非劇場)也適用** —— Q6 拍板的是格式,不是只給多人格場景 - **尚缺**:`hooks/prompt_submit.mjs` 的非劇場那段(42–48 行)完全沒提括號格式 - - [ ] 頻率綁 Q7 的兩個動作額度,**括號裡的動作算其中一個**(否則會變成一輪三個動作) - **尚缺**:`TELLS_PER_TURN = 2` 與「同一種情緒且遞進」的指示都有了,但每輪指示 - (`persona-lib.mjs:4749`)**沒講括號裡那個動作算在額度內**——emoji 那段有提括號,動作沒有 + —— `room read` 改用 `roomTag()`(不再自己拼 `(情緒)` 把動作吐掉); + `hooks/prompt_submit.mjs` 劇場那段放寬成 `名字(情緒・動作):內容`(2026/08/03 16:06:10 完成) + - [x] **一對一(非劇場)也適用** —— Q6 拍板的是格式,不是只給多人格場景 + —— 非劇場那段也講了括號格式與「`*別過頭*` 仍然不行」(2026/08/03 16:06:10 完成) + - [x] 頻率綁 Q7 的兩個動作額度,**括號裡的動作算其中一個**(否則會變成一輪三個動作) + —— 每輪指示補上「名字後面括號裡的動作**算在這個額度裡**——括號演一個、 + 句子裡再演兩個就是三個」(2026/08/03 16:06:10 完成) - [ ] **記憶要記那個行為**(Q6 明示):短期與長期記憶加行為備註欄位,記「他做了什麼」而不是「他感到什麼」。 跟 `persona-story` 的 1.12 同一個欄位,**不要各存一份**;`voice/reactions.md` 是同一批資料的落點 **已完成一半**:`remember --behavior` 與 `behavior` 欄位有了,寫入時跑 `actionLint()` @@ -113,15 +118,16 @@ Q5–Q10 六題已於 2026/08/03 由使用者拍板,設計不再需要確認 - [ ] 每個關係節點可設「害羞時的稱呼」,沒設就退回吞掉名字(改用「你」) - 驗收:同一個對象,生氣時被叫全名、害羞時直接不叫名字 -- [ ] **5.4 鬧彆扭的階梯與三段式句法(G3 核心,依賴 5.7 的動作額度)** +- [x] **5.4 鬧彆扭的階梯與三段式句法(G3 核心,依賴 5.7 的動作額度)**(2026/08/03 16:06:10 完成) - [x] 羞恥度現在是一個純量對三個出口(`hide`/`spill`/`confess`)。加**階梯**: 輕微彆扭(一句帶過)→ 嘴硬(先否認再小聲承認)→ 惱羞(翻臉,`anger` 的負權重已存在) —— `modestyDirective` 分三級:41–59 一句帶過/60–74 嘴硬/75+ 惱羞(2026/08/03 15:52:52 完成) - - [ ] 三段式做成**句法模板**而不是自由發揮:否認 → 反駁對方的說法 → 最後一句音量掉下來。 + - [x] 三段式做成**句法模板**而不是自由發揮:否認 → 反駁對方的說法 → 最後一句音量掉下來。 模板可 per-persona 覆寫(放 `IDENTITY.md` 的 `## Tells`,與現行覆寫同一層) - **尚缺**:模板本身有了(60–74 那級就是「否認 → 反駁 → 音量掉下來」), - 但**沒有 per-persona 覆寫**——`modestyDirective` 周邊查不到讀 `## Tells` 的路徑, - 所有人格的三段式目前講起來會是同一個樣子,正是 G2 要避免的 + —— `personaSulk()` 讀 `## Tells` 的 `sulk`/`鬧彆扭`/`三段式` 那一行(分隔可用 `→` 或頓號), + `modestyDirective` 有覆寫就用人格自己的形狀。**只覆寫嘴硬那一級(60–74)**: + 惱羞(75+)最後一段是翻臉而不是音量掉下來,套嘴硬的收尾會變成另一個形狀 + (2026/08/03 16:06:10 完成) - [x] 三段式要吃 Q7 的兩個動作:否認與轉移是**同一種情緒的遞進**,剛好是那條規則的樣板案例。 惱羞那一級是換情緒(`shame` → `anger`),所以仍然只有兩個動作,不是三個 —— 惱羞級是換情緒,所以仍然兩個動作(2026/08/03 15:52:52 完成)