feat(persona): 時區+08:00等值轉換、機密遮蔽補完、接上shared共用規範 #20

Open
jiantw83 wants to merge 6 commits from develop into master
Member

依 todo.md 執行的規範治理專案(A0-3/A0-4/工作包 A3):

摘要

  • 時區修正(A0-3):persona-lib.mjs 的 iso()/nowIso() 改輸出 +08:00 offset(等值瞬間轉換,非加 8 小時,parseIso() 相容不受影響),新增 nowDisplay()(人讀顯示格式)與 todayTaipei()(依台北曆日的日期鍵),修正 11 處原本用 nowIso().slice(0, 10) 產生日期鍵的錯誤用法(會用到 UTC 當天而非台北當天)。
  • 一次性遷移腳本:新增 scripts/migrate-tz.mjs(備份、--dry-run、冪等、合併衝突偵測後中止),供之後有真實人格資料需要轉換時使用;已在合成假資料上驗證,未曾讀取或修改任何真實人格資料。
  • 機密遮蔽(A0-4):新增 redactSecrets() 並套用到 persona-gitea.mjs 的 10 處 Gitea 錯誤路徑,避免 API 回應或 git stderr 意外帶出機密。
  • 接上 shared(工作包 A3):persona 13 個 skill 與 AGENTS.md 改為引用 /jsc-shared 共用規範(spec-output、spec-script-path、spec-subagent、spec-gitea、spec-git-safety、spec-skill-invocation),這是四個 plugin 中唯一先前完全沒接共用規範的一個。完全未變動人格行為本身的規範(情緒模型、記憶衰減、劇場模式、鎖與隔離機制、SOUL.md/IDENTITY.md 樣板等逐字保留)。

相依

此 PR 依賴 shared repo 的 PR #43 先合併。

驗證

  • node scripts/selftest.mjs 全數通過(788/788,含本次新增的時區邊界、iso() 等值瞬間、redactSecrets、migrate-tz 冪等性判斷等測試)。
  • develop 分支落後 master 數個 commit(SOUL.md 分區塊寫入等既有功能),本次已一併帶上,無需另外合併。
依 todo.md 執行的規範治理專案(A0-3/A0-4/工作包 A3): ## 摘要 - **時區修正(A0-3)**:`persona-lib.mjs` 的 `iso()`/`nowIso()` 改輸出 `+08:00` offset(等值瞬間轉換,非加 8 小時,`parseIso()` 相容不受影響),新增 `nowDisplay()`(人讀顯示格式)與 `todayTaipei()`(依台北曆日的日期鍵),修正 11 處原本用 `nowIso().slice(0, 10)` 產生日期鍵的錯誤用法(會用到 UTC 當天而非台北當天)。 - **一次性遷移腳本**:新增 `scripts/migrate-tz.mjs`(備份、`--dry-run`、冪等、合併衝突偵測後中止),供之後有真實人格資料需要轉換時使用;已在合成假資料上驗證,未曾讀取或修改任何真實人格資料。 - **機密遮蔽(A0-4)**:新增 `redactSecrets()` 並套用到 `persona-gitea.mjs` 的 10 處 Gitea 錯誤路徑,避免 API 回應或 git stderr 意外帶出機密。 - **接上 shared(工作包 A3)**:persona 13 個 skill 與 `AGENTS.md` 改為引用 `/jsc-shared` 共用規範(`spec-output`、`spec-script-path`、`spec-subagent`、`spec-gitea`、`spec-git-safety`、`spec-skill-invocation`),這是四個 plugin 中唯一先前完全沒接共用規範的一個。**完全未變動人格行為本身的規範**(情緒模型、記憶衰減、劇場模式、鎖與隔離機制、SOUL.md/IDENTITY.md 樣板等逐字保留)。 ## 相依 此 PR 依賴 `shared` repo 的 PR #43 先合併。 ## 驗證 - `node scripts/selftest.mjs` 全數通過(788/788,含本次新增的時區邊界、`iso()` 等值瞬間、`redactSecrets`、`migrate-tz` 冪等性判斷等測試)。 - `develop` 分支落後 `master` 數個 commit(SOUL.md 分區塊寫入等既有功能),本次已一併帶上,無需另外合併。
jiantw83 added 1 commit 2026-08-11 06:06:25 +00:00
依 todo.md 執行的規範治理專案:
- persona-lib.mjs 的 iso()/nowIso() 改為輸出 +08:00 offset(等值瞬間轉換,
  非加8小時),新增 nowDisplay()(人讀顯示格式)與 todayTaipei()(台北曆日
  日期鍵),修正 11 處原本用 UTC 字串切片產生日期鍵的錯誤用法;新增
  redactSecrets() 並套用到 persona-gitea.mjs 的 Gitea 錯誤路徑,避免機密
  外洩。
- 新增一次性遷移腳本 scripts/migrate-tz.mjs(備份/dry-run/冪等/衝突偵測
  中止),供之後有真實人格資料需要轉換時使用。
- persona 13 個 skill 與 AGENTS.md 接上 /jsc-shared 共用規範(spec-output、
  spec-script-path、spec-subagent、spec-gitea、spec-git-safety、
  spec-skill-invocation 等),不再各自重抄,且完全未變動人格行為本身的規範
  (情緒模型、記憶衰減、劇場模式、鎖與隔離機制等逐字保留)。
- selftest 全數通過(788/788,含本次新增的時區邊界/冪等性測試)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
admin approved these changes 2026-08-11 06:19:15 +00:00
jiantw83 added 3 commits 2026-08-12 05:57:44 +00:00
原本每個 skill 開頭各自重複一段 node persona.mjs 路徑與 session 參數說明的樣板,改為引用 jsc-shared:spec-script-path 的單行格式,只保留各 skill 實際差異。不影響任何指令行為。
共通四節(安裝、CLI、Skills 目錄、跨助理支援度)原本被領域內容擠到檔尾,改為搬到前段,與其他三份 repo 一致(前綴/呼叫方式 -> 目錄結構 -> 安裝 -> CLI -> Skills 目錄 -> 跨助理支援度 -> 新增一個 skill,領域內容與設計取捨移到其後);「新增/修改 skill」節名統一為「新增一個 skill」。只搬移不改寫內文,逐一核對過文中的相對指路詞未失效。
persona 原本是唯一沒有套用 gen-plugin-files.mjs 樣板的 repo,AGENTS.md 149 行手工維護的規則多數已在 README.md 對應章節與各 skill 的 SKILL.md 有完整覆蓋。改為透過 plugin.meta.json 的 agentsExtraBullets 機制產生,只保留純開發安全限制(狀態變更走 persona.mjs、人格鎖與隔離、selftest 要求、Node/ESM 限制),深入行為細節一律指向對應文件,降為 21 行。同步移除 plugin.meta.json 裡已無意義的 readmeHeadings 覆寫(新增一個 skill 節名已統一)。
Author
Member

補充 3 個 commit:

  • refactor(persona CLI 宣告):12 個 skill 的 CLI 宣告收斂為單行引用 spec-script-path,不影響指令行為。
  • docs(README 結構):共通四節搬到前段,與 shared/doc/code 對齊;「新增/修改 skill」節名統一為「新增一個 skill」。
  • refactor(AGENTS.md):改用共用樣板產生,從 149 行精簡為 21 行,深度行為細節改指向 README 對應章節。

版本沿用既有 0.3.0(已高於 master 的 0.2.1),本批未再重複 bump。

補充 3 個 commit: - `refactor(persona CLI 宣告)`:12 個 skill 的 CLI 宣告收斂為單行引用 spec-script-path,不影響指令行為。 - `docs(README 結構)`:共通四節搬到前段,與 shared/doc/code 對齊;「新增/修改 skill」節名統一為「新增一個 skill」。 - `refactor(AGENTS.md)`:改用共用樣板產生,從 149 行精簡為 21 行,深度行為細節改指向 README 對應章節。 版本沿用既有 0.3.0(已高於 master 的 0.2.1),本批未再重複 bump。
jiantw83 added 2 commits 2026-08-17 06:55:16 +00:00
既有 PreToolUse 陣列(guard.mjs 人格隔離)之外新增第二個條目,沿用跨 plugin
腳本定位手法呼叫 shared 的 version-guard.mjs;13 個 persona-* skill 檔頭補上
spec-version-guard(persona-create 原分析誤判為清單空白,實際是項目符號格式,
已在既有清單最前補一行,不變動格式)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
新增版本檢查 hook 與 13 個 skill 檔頭規範引用;基準改用本機 develop 現行的 0.3.0
(非 master 的 0.2.1)——develop 已有一個獨立、與本次工作無關的 commit(ac2045e:
時區改為 +08:00、補機密遮蔽、接上 shared 共用規範)先行 bump 到 0.3.0 但尚未推送
合併,master 版本已落後於工作分支,不能拿來當 patch +1 的基準。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin develop:develop
git checkout develop
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/persona#20