develop
master
persona-therapist
以第三方心理醫生的身分診斷一段對話:雙方各給姓名/關係/情緒/逐字稿,逐句標記不合理的語氣與用詞,只對出錯的人給改寫建議。
TONE_TABLE
bond × 親近度 → 語氣層
skills/persona-therapist/reference/patterns.md
同一個空間裡也會有一對一,不是每句話都要每個人接。
room post --to <他>
--barge-in "<為什麼現在該他講>"
room post --to all
room floor
<persona-context>
room script
🪼 Alpha(喜悅42) → Beta:…
to
短句(一句 45 字內)、日常用詞、多講看得見的東西(人、動作、物件、當下的場面)、不要解釋自己的話。
speechLint()
room post
said check
--force
relation
bond × 親近度
persona-sleep
sleeper
sync
.git/index.lock
sleep --personas A,B
0.0.5 → 0.0.6,三份 manifest(plugin.json、.claude-plugin/、.codex-plugin/)一致。 master 上的 0.1.0 是早期「初版」留下的號碼,不是 develop 這條線的計數基準。
0.0.5
0.0.6
plugin.json
.claude-plugin/
.codex-plugin/
0.1.0
node scripts/selftest.mjs → 244 項全綠(本批新增 16 項:發言權 10、講話的樣子 6)。
node scripts/selftest.mjs
🤖 Generated with Claude Code
三件事,都是「講話要像人在講話」的延伸。 1. `persona-therapist`(新 skill):以第三方心理醫生的身分診斷一段對話。 雙方各給姓名/關係/情緒/逐字稿,用三把尺逐句標記——與關係不符 (語氣層錯位)、與事實不符(絕對化、讀心)、與目的不符(他要被理解, 講出來的話保證換到防衛)。標記掛在說那句話的人身上,修正只寫給他, 格式是「你其實想要的 → 對方收到的 → 改寫」,改寫必須留在同一個語氣層。 基線直接用 `TONE_TABLE`(已載入人格可 `relation show` 唯讀取得), 破壞模式表 P1–P16 放在 `reference/patterns.md`。不附身、不取鎖、不寫回, 出現自傷/暴力/受控訊號時停掉語氣分析改為安全優先。 2. 聊天室的發言權:同一個空間裡也會有一對一。`room post --to <他>` 進 一對一(旁人插話直接被擋,要帶 `--barge-in "<理由>"`,理由留在逐字稿)、 `--to all` 把話題開回全場。新指令 `room floor` 回報誰對誰在講、該誰接、 誰先安靜、誰隔了幾輪沒開口。同一份現況每輪注入 `<persona-context>`, 並明講「不要替沒被指名的人生成台詞,也不要為此啟動他的 sub agent」。 三人以上時 `room script` 標出對象(`🪼 Alpha(喜悅42) → Beta:…`), 兩個人的聊天室不標。舊逐字稿沒有 `to` → 視為全場,行為不變。 3. 講話的樣子再加四條:短句(一句 45 字內)、日常用詞、多講看得見的 東西(人、動作、物件、當下的場面)、**不要解釋自己的話**。前兩條與 第四條的句長/「我的意思是」這類開頭由 `speechLint()` 機械攔截 (`room post` 擋下、`said check` 事前警告,`--force` 例外);用詞與 具體度抓不到規則,走每輪注入的說話規則。 selftest 244 項全綠(新增 16 項:發言權 10、講話的樣子 6)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
版號有三份:`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`。 上一次改版號只動了前兩份,Codex 那邊還停在 0.0.5。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
模擬時最像人的兩個地方,其實都不是用詞選得好,是**情緒改變了句子的形狀**: 緊張的時候話沒說完、會疊字;害羞的時候鬧彆扭、嘴硬。把這件事寫成表, 跟情緒一起注入,不靠人格自己記得。 - `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>
No dependencies set.
The note is not visible to the blocked user.
這個 PR 有什麼
1.
persona-therapist(新 skill)— 語氣診療室以第三方心理醫生的身分診斷一段對話:雙方各給姓名/關係/情緒/逐字稿,逐句標記不合理的語氣與用詞,只對出錯的人給改寫建議。
TONE_TABLE(bond × 親近度 → 語氣層),並補上每一層「可以什麼/不行什麼」。skills/persona-therapist/reference/patterns.md(含改寫公式與情緒推估)。2. 聊天室的發言權(一對一 / 全場)
同一個空間裡也會有一對一,不是每句話都要每個人接。
room post --to <他>→ 一對一:只有被指名的人該接話。旁人插話直接被 CLI 擋下,要帶--barge-in "<為什麼現在該他講>"(理由留在逐字稿)。room post --to all→ 話題開回全場。room floor:誰對誰在講、該誰接、誰先安靜、誰隔了幾輪沒開口。<persona-context>,並明講「不要替沒被指名的人生成台詞,也不要為此啟動他的 sub agent」。room script標出對象(🪼 Alpha(喜悅42) → Beta:…),兩個人的聊天室不標。to欄位 → 視為全場,行為不變。3. 講話的樣子再加四條
短句(一句 45 字內)、日常用詞、多講看得見的東西(人、動作、物件、當下的場面)、不要解釋自己的話。
speechLint()機械攔截:room post擋下、said check事前警告,--force例外。4. 這批一起帶上去的既有改動
relation:由關係推導語氣層(bond × 親近度+ 掛在節點上的個人化稱呼/禁忌規則)。persona-sleep:判斷式收尾與 sleeper 隔離;sleeper讀得到自己的資料、sync自己清殘留的.git/index.lock。sleep --personas A,B)。版本
0.0.5→0.0.6,三份 manifest(plugin.json、.claude-plugin/、.codex-plugin/)一致。master 上的
0.1.0是早期「初版」留下的號碼,不是 develop 這條線的計數基準。驗證
node scripts/selftest.mjs→ 244 項全綠(本批新增 16 項:發言權 10、講話的樣子 6)。🤖 Generated with Claude Code