docs/assistant-gate/guideline-section #60

Merged
admin merged 1 commits from docs/assistant-gate/guideline-section into docs/assistant-gate/main 2026-09-01 07:41:28 +00:00
Member

摘要

  • 需求描述:助理運行閘門的規格收進技能準則,並補上一節「fail-closed 閘門的專屬規則」。那一類閘門開錯就是整組技能鎖死,準則現在完全沒有講它。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
references/guidelines.md 新增「助理運行閘門」一節,環境變數表補兩列
三份 manifest 版本一起提升

純新增 74 行,沒有刪除任何既有內容。

設計重點

  • 例外要點名。 整組 hook 的通則是資料不足就放行,助理運行閘門是唯一相反的一道。不寫進準則,後來的人會以為可以隨便再開一道 fail-closed 的閘門。
  • 豁免清單與腳本檔頭是同一件事實。 準則沒有那張表,兩邊就會各走各的。這一支的十一項與 jsc-hooks/hooks/assistant-gate.sh 逐項比對過,全部對得上。
  • 四條專屬規則裡有兩條是實作時才想清楚的:
    • 逃生門的判斷要擺在載入共用函式庫之前。函式庫讀不到時 sh 會就地結束並回擋人的那個碼,逃生門也跟著跑不到,人就繞不過去。這一條只對 fail-closed 成立。
    • 豁免清單只收解鎖路徑,方向與重啟閘門相反。那一道解鎖靠閘門外的動作(重新啟動),收尾規則要寫得完;這一道解鎖靠跑一支技能,清單收寬了閘門就等於沒有。
  • 「清單認技能名不認呼叫鏈」補了一個更狠的實例。 巡檢要先把結果寫上監控頁才寫心跳,只豁免助理自己會做出「沒心跳擋 wiki、擋了巡檢跑不完、跑不完還是沒心跳」的自咬環。所以新增豁免技能時不只要想它會呼叫誰,還要想那條呼叫鏈上有沒有一步是解鎖條件本身的前置。
  • 心跳判定回「檔案系統問不出來」時放行不擋,理由與代價都寫進去了。那一碼與「時間戳壞掉」的差別在有沒有出路:後者的修法就在豁免清單裡,前者擋了沒有出路。

測試結果

  • lint-scripts.sh、lint-frontmatter.sh、check-behaviors.sh、ste100-lint.sh 全部 exit 0。
  • 豁免清單十一項與 assistant-gate.sh 逐項比對,兩邊都有。
  • 改動統計:1 個檔案、74 行新增、0 行刪除。

前置 Push Request

  • 無
## 摘要 - 需求描述:助理運行閘門的規格收進技能準則,並補上一節「fail-closed 閘門的專屬規則」。那一類閘門開錯就是整組技能鎖死,準則現在完全沒有講它。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `references/guidelines.md` | 新增「助理運行閘門」一節,環境變數表補兩列 | | 三份 manifest | 版本一起提升 | 純新增 74 行,沒有刪除任何既有內容。 ## 設計重點 - **例外要點名。** 整組 hook 的通則是資料不足就放行,助理運行閘門是唯一相反的一道。不寫進準則,後來的人會以為可以隨便再開一道 fail-closed 的閘門。 - **豁免清單與腳本檔頭是同一件事實。** 準則沒有那張表,兩邊就會各走各的。這一支的十一項與 `jsc-hooks/hooks/assistant-gate.sh` 逐項比對過,全部對得上。 - **四條專屬規則裡有兩條是實作時才想清楚的**: - 逃生門的判斷要擺在載入共用函式庫之前。函式庫讀不到時 sh 會就地結束並回擋人的那個碼,逃生門也跟著跑不到,人就繞不過去。這一條只對 fail-closed 成立。 - 豁免清單只收解鎖路徑,方向與重啟閘門相反。那一道解鎖靠閘門外的動作(重新啟動),收尾規則要寫得完;這一道解鎖靠跑一支技能,清單收寬了閘門就等於沒有。 - **「清單認技能名不認呼叫鏈」補了一個更狠的實例。** 巡檢要先把結果寫上監控頁才寫心跳,只豁免助理自己會做出「沒心跳擋 wiki、擋了巡檢跑不完、跑不完還是沒心跳」的自咬環。所以新增豁免技能時不只要想它會呼叫誰,還要想那條呼叫鏈上有沒有一步是解鎖條件本身的前置。 - **心跳判定回「檔案系統問不出來」時放行不擋**,理由與代價都寫進去了。那一碼與「時間戳壞掉」的差別在有沒有出路:後者的修法就在豁免清單裡,前者擋了沒有出路。 ## 測試結果 - `lint-scripts.sh`、`lint-frontmatter.sh`、`check-behaviors.sh`、`ste100-lint.sh` 全部 exit 0。 - 豁免清單十一項與 `assistant-gate.sh` 逐項比對,兩邊都有。 - 改動統計:1 個檔案、74 行新增、0 行刪除。 ## 前置 Push Request - 無
jiantw83 added 1 commit 2026-09-01 07:28:13 +00:00
What:
- 新增「助理運行閘門」一節:規格表、心跳判定的六碼處置、豁免清單十一支。
- 節內另立「fail-closed 閘門的專屬規則」四條,那是準則現在完全沒有的東西。
- 環境變數表補上閘門開關與心跳門檻兩列。
- 三份 manifest 的版本一起提升。

Why:
- 整組 hook 的通則是資料不足就放行,這一道相反。例外不點名,後來的人會以為可以隨便再開一道 fail-closed 的閘門,而那種閘門開錯就是整組技能鎖死。
- 豁免清單與腳本檔頭是同一件事實。準則沒有那張表,兩邊就會各走各的,改一支忘了另一支。

How:
- 四條專屬規則裡有兩條是這一輪實作時才想清楚的。逃生門的判斷要擺在載入共用函式庫之前——函式庫讀不到時 sh 會就地結束並回擋人的那個碼,逃生門也跟著跑不到,人就繞不過去;這一條只對 fail-closed 成立。豁免清單只收解鎖路徑,方向與重啟閘門相反,那一道解鎖靠閘門外的動作,這一道解鎖靠跑一支技能。
- 「清單認技能名不認呼叫鏈」那一條補了一個更狠的實例:巡檢要先把結果寫上監控頁才寫心跳,只豁免助理自己會做出自咬環。所以新增豁免技能時不只要想它會呼叫誰,還要想那條呼叫鏈上有沒有一步是解鎖條件本身的前置。
- 心跳判定回「檔案系統問不出來」時放行不擋,理由與代價都寫進去了。那一碼與「時間戳壞掉」的差別在有沒有出路。

Who:
助理閘門實作完之後,把當中的判斷收進準則,讓下一道同類閘門有依據。
admin merged commit bb26c73504 into docs/assistant-gate/main 2026-09-01 07:41:28 +00:00
admin deleted branch docs/assistant-gate/guideline-section 2026-09-01 07:41:28 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/meta#60