Merge pull request 'v0.9.0:全面 PR-only(leo 裁定)+跨 repo 群票載體' (#36) from rule/pr-only into main
v0.9.0 全面 PR-only
This commit was merged in pull request #36.
This commit is contained in:
@@ -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。兩者不能同時成立。
|
||||
|
||||
@@ -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`)
|
||||
|
||||
Reference in New Issue
Block a user