# jsc-mod-companion ## 指令 ### `/jsc-mod-companion:status` 查看目前角色、心情、好感與待辦數量。 ```text /jsc-mod-companion:status ``` ### `/jsc-mod-companion:switch <角色>` 切換角色;不給角色會列出可用角色。 ```text /jsc-mod-companion:switch 小明 ``` ### `/jsc-mod-companion:disable` 關閉陪伴,所有資料保留。 ```text /jsc-mod-companion:disable ``` ### `/jsc-mod-companion:setup [key=value…]` 不給參數時顯示目前設定;給 key=value 則儲存。可設定:`nickname`、`wake=HH:MM`、`sleep=HH:MM`、`tz=+0800`、`careLimit=N`(每日主動關心上限)、`quietStart=HH:MM`、`quietEnd=HH:MM`。 ```text /jsc-mod-companion:setup nickname=阿明 wake=07:30 sleep=23:30 tz=+0800 careLimit=3 quietStart=22:00 quietEnd=08:00 ``` ### `/jsc-mod-companion:todo [list]` 列出未完成的待辦。 ```text /jsc-mod-companion:todo ``` ### `/jsc-mod-companion:todo add <內容> [due=YYYY-MM-DDTHH:MM]` 新增待辦,可指定到期時間(依 `tz` 設定換算)。 ```text /jsc-mod-companion:todo add 買牛奶 due=2026-10-15T18:00 ``` ### `/jsc-mod-companion:todo promise <內容> [due=YYYY-MM-DDTHH:MM]` 記錄角色答應使用者的事(列表中標示【承諾】),用法同 `todo add`。 ```text /jsc-mod-companion:todo promise 週末一起討論新章節 due=2026-10-17T10:00 ``` ### `/jsc-mod-companion:todo done <編號>` 將待辦標為完成。 ```text /jsc-mod-companion:todo done 1 ``` ### `/jsc-mod-companion:quiet [分鐘]` 暫時靜音,不主動關心;預設 60 分鐘,`0` 取消靜音。 ```text /jsc-mod-companion:quiet 30 ``` ### `/jsc-mod-companion:ingest` 解析單章小說(txt/md),逐一詢問合併、新建或略過後寫入角色資料;提供章節檔或要求建立角色時也會自動使用。 ```text /jsc-mod-companion:ingest chapter1.md 章節編號 1 ``` ## 人格 18 參數(與第 9 章的差異) 人格參數依 wiki 9.2 實作於 `hooks/companion/core/params.ts`: - 三層值:角色包基準(`core.json` 的 `params`)+存檔偏移(每次 ±1,上限 ±15)+今日偏移(N(0,5),上限 ±10),總值限制在 0–100。 - 衍生值:有效心防、有效害羞、有效口是心非,公式同 9.2;信賴與親密以 0–100 輸入。 - Big Five 保留為推導值:有 `params` 時,神經質(心情半衰期)與外向性(關心頻率)改由 18 參數推導,加權為設計啟發式;沒有 `params` 的舊角色沿用 `neuroticism`、`extraversion`。ingest 的 Big Five 推論與證據機制不變。 - 姓名、性別、年齡、核心信念不可由 AI 改動,`filterAiPatch` 會剔除這些欄位。 - 目前只提供計算與儲存欄位(`state.json` 的 `params`);每日抽樣、存檔偏移累積的觸發時機留待後續工作項目。 ## 評估標籤 使用者每句話會對應到一個評估標籤,再由 `rules.ts` 的規則表換成心情增減量;模型只負責分類,不給數值。 - 正則先判明確的情況(責罵、感謝、完成)。 - 正則沒判出時,採用模型於回覆末尾補的 `<評估:標籤>`;標籤須在 `tags.ts` 的白名單內,缺失或不在白名單就當作沒有標籤。 - 白名單約 20 個,參考 wiki 第 9.4 章;不含戀愛與親密類標籤。