feat/soul-section-write
develop
AniPersonaStudio(同一個人維護的 Web 層)的欄位變更確認佇列需要一個程式化的方式 把使用者確認過的 SOUL.md 變更真的寫回核心——目前 SOUL.md 只能透過編輯器直接改, create 之後沒有任何寫入指令,確認過的變更只能停在「已確認但核心不支援寫入」。
create
新增 persona.mjs soul --session <id> --section <core_truths|boundaries|vibe|continuity> --value <text> [--mode append|replace] [--by <確認人>]:
persona.mjs soul --session <id> --section <core_truths|boundaries|vibe|continuity> --value <text> [--mode append|replace] [--by <確認人>]
<!-- aps:區塊:begin/end -->
append
replace
## 標題
relation
mindmap
requireSession
requireOwner
--by
scripts/persona-lib.mjs
SOUL_SECTIONS
readSoulSection
updateSoulSection
scripts/persona.mjs
commands.soul
skills/persona-create/templates/SOUL.md
scripts/selftest.mjs
node scripts/selftest.mjs:全部 781 項通過(含新增的 9 項)。
node scripts/selftest.mjs
review/fieldChanges.mjs
soul
review/mutability.mjs
soul.*
coreWrite
supported
SOUL.md 目前只有使用者能透過編輯器直接改,AniPersonaStudio 的確認佇列 機制需要一個程式化的寫入路徑才能把使用者確認過的變更真的寫回核心。 新增 persona.mjs soul --session <id> --section <core_truths|boundaries| vibe|continuity> --value <text> [--mode append|replace] [--by <確認人>]: - 四個區塊各自用一組 <!-- aps:區塊:begin/end --> HTML 註解標記框住可寫範圍, 標記外的內容(樣板原本寫好的條目、使用者手動編輯過的段落)永遠不動 - append(預設)接在後面,完全相同的內容不重複疊加;replace 整段換掉 - 標記不存在時(舊人格)自動在對應的 ## 標題後面補一組空的,不需要重建人格 - 權限模型跟 relation/mindmap 一致:requireSession + requireOwner - --by 有帶會寫一筆 journal 留審計紀錄;成功後照既有慣例背景推 Wiki 區 SOUL.md 樣板補上四組標記;persona-lib.mjs 新增 SOUL_SECTIONS/ readSoulSection/updateSoulSection;selftest.mjs +9 案例(append/replace/ 去重/權限/journal/舊人格自動補標記)。全部 781 項 selftest 通過。
No dependencies set.
The note is not visible to the blocked user.
背景
AniPersonaStudio(同一個人維護的 Web 層)的欄位變更確認佇列需要一個程式化的方式
把使用者確認過的 SOUL.md 變更真的寫回核心——目前 SOUL.md 只能透過編輯器直接改,
create之後沒有任何寫入指令,確認過的變更只能停在「已確認但核心不支援寫入」。這批做了什麼
新增
persona.mjs soul --session <id> --section <core_truths|boundaries|vibe|continuity> --value <text> [--mode append|replace] [--by <確認人>]:<!-- aps:區塊:begin/end -->HTML 註解標記框住可寫範圍,標記外的內容(樣板原本寫好的條目、使用者手動編輯過的段落)永遠不動——
這不是讓 AI 自由改寫個性的後門,只是多一個「透過確認佇列寫入」的窄通道,
跟直接用編輯器改檔案的權限模型一樣,一定要有 session/owner 權限才能寫
append(預設)接在後面,完全相同的內容不會重複疊加;replace整段換掉## 標題後面補一組空的,不需要重建人格
relation/mindmap一致:requireSession+requireOwner--by有帶會寫一筆 journal 留審計紀錄(不寫進 SOUL.md 本身,不因為審計紀錄越改越亂)改動清單
scripts/persona-lib.mjsSOUL_SECTIONS/readSoulSection/updateSoulSectionscripts/persona.mjscommands.soul,usage banner 補上說明skills/persona-create/templates/SOUL.mdscripts/selftest.mjs測試
node scripts/selftest.mjs:全部 781 項通過(含新增的 9 項)。已知的下一步(不在這批)
review/fieldChanges.mjs要接上這個指令(field change 確認時呼叫
soul寫回核心),以及把review/mutability.mjs的soul.*coreWrite改成supported——這兩件事等這個 PR 合併、submodule 指標 bump 過去之後再做。