From e16d21435f6f2728125c63e58529e8b07e5d8758 Mon Sep 17 00:00:00 2001 From: richblack Date: Thu, 20 Aug 2026 17:55:35 +0800 Subject: [PATCH] =?UTF-8?q?v0.9.0=EF=BC=9A=E5=85=A8=E9=9D=A2=20PR-only?= =?UTF-8?q?=EF=BC=88leo=20=E8=A3=81=E5=AE=9A=EF=BC=89=EF=BC=8B=E8=B7=A8=20?= =?UTF-8?q?repo=20=E7=BE=A4=E7=A5=A8=E8=BC=89=E9=AB=94=E5=85=A5=E8=A6=8F?= =?UTF-8?q?=E7=AF=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 2026-08-20:「所有 subagent 都是 PR only,在雲端地端總管所做的都是 PR-only。」 ⇒ 推翻總管原提案(只有 ISEP 走 PR-only,其他 repo 總管自裁)。 DIVERGENCE §E1 已加註被推翻,原文保留作歷史。 ⇒ main-and-prod-push-guard.sh 現行判準只擋 subagent、放行總管,與本條不符, 要改成不分角色一律擋;/tmp/.main-push-ok 戳記隨之作廢(PR review 就是那道確認)。排群 4。 另 §15.5:六個群在 ISEP 各有一張 hub 票(#30-#35),別的 repo 的舊票用 Gitea 原生 dependency 指過去(跨 repo dependency 已實測 201 可用)——milestone 管不到跨 repo,這是載體。 --- .../governance/DIVERGENCE-v0.5.0-to-v0.6.0.md | 4 ++- docs/governance/sdd-gitea-governance.md | 36 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/docs/governance/DIVERGENCE-v0.5.0-to-v0.6.0.md b/docs/governance/DIVERGENCE-v0.5.0-to-v0.6.0.md index ad02b80..4e343fa 100644 --- a/docs/governance/DIVERGENCE-v0.5.0-to-v0.6.0.md +++ b/docs/governance/DIVERGENCE-v0.5.0-to-v0.6.0.md @@ -191,7 +191,9 @@ ## E. 兩個裁決題(我先按自己的判斷做了,你打回我就改) -### E1. E1「PR-only,禁止直接 push 預設分支」要不要套到所有 repo? +### E1. ~~PR-only 要不要套到所有 repo?~~ 🔴 **已被 leo 2026-08-20 推翻:全部 repo、全部角色一律 PR-only(見規範 §8.1)。下面是當時的提案,保留作歷史。** + +#### 原提案 - **衝突點**:你的 CLAUDE.md 明寫「總管推 main **自己裁**(但要逐筆看過那些 commit)」, 原稿要求全部走 PR。兩者不能同時成立。 diff --git a/docs/governance/sdd-gitea-governance.md b/docs/governance/sdd-gitea-governance.md index 12ad0f6..cec8afc 100644 --- a/docs/governance/sdd-gitea-governance.md +++ b/docs/governance/sdd-gitea-governance.md @@ -1,7 +1,7 @@ # SDD × Gitea 治理規範 ``` -version: 0.8.0 +version: 0.9.0 status: 現行(本檔的修改依 §9 走 issue) scope: 所有安裝 ISEP 的環境(本機 CC 與雲端 CC) distribution: 隨 ISEP 發佈,ISEP repo 是唯一編輯點(§11) @@ -11,6 +11,8 @@ lineage: v0.5.0 draft by claude.ai(存檔 _draft-claude-ai-v0.5.0.md) 依 leo 指正:規劃不另立文件,修正本檔就是新版 → v0.8.0 三源整合定案(§15):claude.ai 兩份規劃 × 舊票需求 × 既有機制, 逐領域對照、三處矛盾解法、動工順序——leo 2026-08-20 核准 + → v0.9.0 leo 裁定全面 PR-only(§8.1):所有 subagent、地端與雲端總管一律走 PR, + 推翻總管原本「只有 ISEP 走 PR-only」的提案 ``` --- @@ -237,7 +239,7 @@ s/triage ──驗傷通過──▶ s/backlog ──排進 milestone──▶ s | # | 封什麼路 | 用什麼封 | 現況 | |---|---|---|---| -| E1 | 直接 push 預設分支 | branch protection:PR-only | ◐ 現有 `main-and-prod-push-guard.sh` 語意相反(擋 subagent、放行總管)。**本版只對 ISEP 開 PR-only**,見 §8.1 | +| E1 | 直接 push 預設分支 | branch protection:PR-only,**全部 repo、全部角色**(§8.1) | ◐ 現有 `main-and-prod-push-guard.sh` 只擋 subagent、放行總管 ⇒ **與本條不符,要改**:總管與雲端一律同擋 | | E2 | PR 不關聯 issue | PR 模板必含 `closes #`,缺漏即 fail | ❌ 待建 | | E3 | 手動關 leaf | hook 攔截;只放行 `close/*` 與 §6.2 人執路徑 | ❌ 待建 | | E4 | 被 block 的票先關 | Gitea issue dependency | ✅ 平台原生,已驗證可用 | @@ -254,13 +256,24 @@ s/triage ──驗傷通過──▶ s/backlog ──排進 milestone──▶ s | E15 | 代理硬做只有人能做的事 | 代理端無對應 tool 或 token;唯一出口是開 `human/exec` 票 | ◐ 部分(credential 機制已擋一部分,D36) | | E16 | 標籤漂移 | 走 Gitea labels API 依 `labels.yaml` 校正:缺的補、改的還原、多的**只告警不刪** | ❌ 待建(`ISEP#4`) | -### 8.1 E1 的適用範圍(裁決記錄) +### 8.1 E1 的適用範圍:**全部 repo、全部角色,一律 PR-only**(leo 2026-08-20 裁定) -**只有 ISEP 走 PR-only;其他 repo 維持現行「總管推 main 自己裁」。** +> leo 原話:「**所有 subagent 都是 PR only,在雲端地端總管所做的都是 PR-only。**」 -- 理由:ISEP 壞掉 = **所有 session 一起壞**,值得多一道摩擦;其他 repo 壞掉只影響自己。 -- 一刀切到 14 個 repo 會在 leo 最忙的時候把整條線卡在「等總管開 PR」。 -- 這條命中四題公式的「跨專案結構」⇒ 已記為裁決題(`DIVERGENCE` §E1),leo 可打回。 +``` +subagent(地端/雲端) → 只能推自己的分支,開 PR ← 擋 +總管 (地端/雲端) → 只能推自己的分支,開 PR ← 擋 +leo → 他自己的操作不在此限 +``` + +🔴 **沒有例外,不分 repo。** 這條推翻了總管原本的判斷(原提案:只有 ISEP 走 PR-only, +其他 repo 維持「總管推 main 自己裁」,理由是怕卡住 leo)。 +leo 直接裁定全面適用——**歷史紀錄留在 `DIVERGENCE-v0.5.0-to-v0.6.0.md` §E1,該段已被本條推翻。** + +**因此要改的**:`main-and-prod-push-guard.sh` 目前的判準是 +「`CLAUDE_CODE_CHILD_SESSION=1` 才擋」⇒ 只擋 subagent、放行總管,**與本條不符**。 +改成不分角色一律擋推預設分支;`/tmp/.main-push-ok` 那套「總管看過」的戳記機制隨之作廢 +(PR 的 review 就是那道確認,不需要第二套)。排在群 4「派工與交付紀律」。 ### 8.2 所有 job 第一版都不依賴 Gitea Actions runner @@ -614,6 +627,15 @@ leo 08-17 診斷見公理 3;08-17 實測:文字層的閘 **8 次誤攔、0 `#37` 兩份 repo 哪份為準(建議 `inkstone/*`)/`#5` `#8` 轉 hub 或作廢/ 08-20 兩支未經 warn 期的 block 閘,隨盤點表(`docs/hooks-inventory.md`)一起審。 +**已裁**:PR-only 全面適用(§8.1,2026-08-20)。 + +### 15.5 跨 repo 的載體:ISEP 的六張群票 + +Gitea 的 milestone 只管得到同一個 repo,所以六個群在 `inkstone/ISEP` 各有一張 `hub` 票 +(`ISEP#30`–`#35`),別的 repo 的舊票用 **Gitea 原生 dependency** 指到它 +(leo 2026-08-20;跨 repo dependency 已實測可用)。 +⇒ **群票的相依全關,群票才關得掉**;六張群票的狀態就是六群的進度。 + --- ## 附:Label 全集(快照;唯一真相為 `labels.yaml`) -- 2.52.0