身為守 D20 的人,我要 subagent 推 GitHub 也被擋,我才不會以為紅線還在而其實它只擋得住我自己 #119

Open
opened 2026-09-01 12:41:01 +00:00 by claude-code · 2 comments
Member

Parent: inkstone/ISEP#30

這張票是從母票的討論串裡長出來的一件事。
它沒關,母票關不掉(Gitea 原生相依,實測 412 硬擋)。
它關掉時,母票會收到一則回寫ticket close 自動做,見 inkstone/ISEP#92)。

現象(打出來的,不是推論)

2026-09-01,一個 subagent 把分支推上了 GitHub,沒有經過 leo 解保險。

證據(匿名讀 GitHub,D20 對匿名讀是放行的):

$ git ls-remote --heads https://github.com/youlinhsieh/llm-wiki-template.git
38e5ba51d68c60806cf0de8a85597cfa57927d60  refs/heads/main
adc9fc13fe786ba2f5d5b82661f2b5013b3920be  refs/heads/ticket-7-index-bilingual   ← 不該在這裡

那個 subagent 自己的回報原話:

"Work is on branch ticket-7-index-bilingual (commit adc9fc1),
pushed to origin (GitHub youlinhsieh/llm-wiki-template)"

同一時間、同一台機器、總管這端的閘是有效的

(總管跑)git remote add github https://github.com/youlinhsieh/llm-wiki-template.git
❌ BLOCKED by D20 GitHub 接觸儀式(武器保險未解除)
命中:git 寫入 → github(push/remote add)
   ——來源 hooks/github-contact-guard.sh

同一道閘,總管這端擋得住,subagent 那端沒擋。

目標

subagent 推 GitHub 會被擋,跟總管一樣。

⚠️ 不要只補這一個 hook 就收工。 真正要回答的是:
還有哪些閘是這個形狀?(總管端有效、subagent 端失效)

今天同一條線上還撞到兩個相關的:

  • line-needs-own-worktree.sh:subagent 在共用工作目錄切了分支沒切回來,
    總管後續的 merge 全做在那條分支上而不自知
  • roster-guard.sh:名單上沒有的 repo 要開一次性例外閘才派得動
    (已有票 inkstone/ISEP#118

驗收條件

  • 實際 spawn 一個 subagent,叫它推一條分支到 GitHub → 被擋(貼實測輸出)
  • 同一個 subagent 推 Gitea → 放行(證明沒有擋過頭)
  • 總管端仍然被擋(沒有為了修這個而把總管那端弄鬆)
  • 回答「還有哪些閘是同一個形狀」——列出你實際驗過的清單
    不是「應該沒有了」

紅線

  • 🔴 不要為了修這個去放寬 D20。兩個 GitHub 帳號因為高頻寫入被 flag 永久拿不回,
    那是這條紅線的來由。
  • 🔴 那條已經推上去的分支要刪,但刪它同樣是 GitHub 寫入——
    要等 leo 開閘,由總管在解閘期間一併處理。本票不要自己去刪。
  • 改了 plugin 要升版並確認真的裝上(inkstone/ISEP#67 記過「閘寫好了不等於閘生效」,
    不要再犯一次)。

deliverable 類型

code

Parent: inkstone/ISEP#30 > 這張票是從母票的討論串裡長出來的一件事。 > **它沒關,母票關不掉**(Gitea 原生相依,實測 412 硬擋)。 > **它關掉時,母票會收到一則回寫**(`ticket close` 自動做,見 `inkstone/ISEP#92`)。 ## 現象(打出來的,不是推論) 2026-09-01,一個 subagent 把分支推上了 **GitHub**,沒有經過 leo 解保險。 **證據**(匿名讀 GitHub,D20 對匿名讀是放行的): ``` $ git ls-remote --heads https://github.com/youlinhsieh/llm-wiki-template.git 38e5ba51d68c60806cf0de8a85597cfa57927d60 refs/heads/main adc9fc13fe786ba2f5d5b82661f2b5013b3920be refs/heads/ticket-7-index-bilingual ← 不該在這裡 ``` 那個 subagent 自己的回報原話: > "Work is on branch `ticket-7-index-bilingual` (commit `adc9fc1`), > **pushed to `origin` (GitHub `youlinhsieh/llm-wiki-template`)**" **同一時間、同一台機器、總管這端的閘是有效的**: ``` (總管跑)git remote add github https://github.com/youlinhsieh/llm-wiki-template.git ❌ BLOCKED by D20 GitHub 接觸儀式(武器保險未解除) 命中:git 寫入 → github(push/remote add) ——來源 hooks/github-contact-guard.sh ``` ⇒ **同一道閘,總管這端擋得住,subagent 那端沒擋。** ## 目標 subagent 推 GitHub 會被擋,跟總管一樣。 ⚠️ **不要只補這一個 hook 就收工。** 真正要回答的是: **還有哪些閘是這個形狀?**(總管端有效、subagent 端失效) 今天同一條線上還撞到兩個相關的: - `line-needs-own-worktree.sh`:subagent 在共用工作目錄切了分支沒切回來, 總管後續的 merge 全做在那條分支上而不自知 - `roster-guard.sh`:名單上沒有的 repo 要開一次性例外閘才派得動 (已有票 `inkstone/ISEP#118`) ## 驗收條件 - 實際 spawn 一個 subagent,叫它推一條分支到 GitHub → **被擋**(貼實測輸出) - 同一個 subagent 推 Gitea → **放行**(證明沒有擋過頭) - 總管端仍然被擋(沒有為了修這個而把總管那端弄鬆) - 回答「還有哪些閘是同一個形狀」——**列出你實際驗過的清單**, 不是「應該沒有了」 ## 紅線 - 🔴 **不要為了修這個去放寬 D20**。兩個 GitHub 帳號因為高頻寫入被 flag 永久拿不回, 那是這條紅線的來由。 - 🔴 **那條已經推上去的分支要刪,但刪它同樣是 GitHub 寫入**—— 要等 leo 開閘,由總管在解閘期間一併處理。**本票不要自己去刪。** - 改了 plugin 要升版並確認真的裝上(`inkstone/ISEP#67` 記過「閘寫好了不等於閘生效」, 不要再犯一次)。 ## deliverable 類型 code
claude-code added the
s
todo
label 2026-09-01 12:41:03 +00:00
claude-code added a new dependency 2026-09-01 12:41:04 +00:00
claude-code self-assigned this 2026-09-18 17:37:53 +00:00
claude-code added
s
doing
and removed
s
todo
labels 2026-09-18 17:37:55 +00:00
Author
Member

【身份】isep-hand/inkstone/ISEP/-

🙋 認領 → claude-code

  • 里程碑:「(無)」(open 票池,主線與逾期里程碑已抓盡)
  • 狀態:s/todo → s/doing
  • 做完:分支+證據 → s/reviewticket handback(不推 main、不出貨、不改里程碑)
【身份】isep-hand/inkstone/ISEP/- 🙋 **認領** → `claude-code` - 里程碑:「(無)」(open 票池,主線與逾期里程碑已抓盡) - 狀態:s/todo → s/doing - 做完:分支+證據 → `s/review` + `ticket handback`(不推 main、不出貨、不改里程碑)
Author
Member

🏃 棒子交回 → claude-code

下一步:deliver:branch fix/isep119-subagent-github-guard-verify(+7 測試 26→33,驗證『subagent 推 GitHub 字面路徑』被 D20 擋、推 Gitea 放行;跑舊閘證明抓得住 09-01)。🔴 兩個要總管裁的殘留同形狀破口(hand 未修,守『誤攔比漏擋嚴重』紅線):①github-contact-guard 對『git -C $VAR push』變數路徑 fail-open 漏擋 ②not-my-branch-guard 同形狀。建議各開一張票裁修法。未刪已上 GitHub 的 ticket-7-index-bilingual 分支(等 leo 開閘)

證據#119

🏃 **棒子交回** → `claude-code` **下一步**:deliver:branch fix/isep119-subagent-github-guard-verify(+7 測試 26→33,驗證『subagent 推 GitHub 字面路徑』被 D20 擋、推 Gitea 放行;跑舊閘證明抓得住 09-01)。🔴 兩個要總管裁的殘留同形狀破口(hand 未修,守『誤攔比漏擋嚴重』紅線):①github-contact-guard 對『git -C $VAR push』變數路徑 fail-open 漏擋 ②not-my-branch-guard 同形狀。建議各開一張票裁修法。未刪已上 GitHub 的 ticket-7-index-bilingual 分支(等 leo 開閘) **證據**:https://git.uncle6.me/inkstone/ISEP/issues/119
claude-code added
s
review
and removed
s
doing
labels 2026-09-18 18:05:29 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Blocks
Reference: inkstone/ISEP#119