v0.8.0 修訂:刪 M4.7、M4.3 改寫(里程碑內容不增不減)、§15 精簡成方向性規劃
leo 2026-08-20 兩則指正: ① 「milestone 確定後怎麼可以再把東西移除?定下工作自己刪掉是什麼意思?根本就沒有什麼降」 ⇒ M4.7(降 scope 留痕)整段刪除——它把一個不該存在的操作合法化了。 M4.3 改成:到期只通知 leo;內容增減都是 leo 的裁決,不是總管的操作。 ② 「規劃書要大的規劃,方向性,不是寫廢話」 ⇒ §15 從逐領域十行大表精簡成:四句方向+六里程碑順序表+三矛盾定案+三件待裁。
This commit is contained in:
@@ -125,21 +125,12 @@ s/triage ──驗傷通過──▶ s/backlog ──排進 milestone──▶ s
|
||||
|
||||
- **M4.1** 命名 `vX.Y`,必設 due date。
|
||||
- **M4.2** Deliverable = **一個可測的新版本號**。所有掛入 leaf 關閉後,可從預設分支打出通過驗收的版本。
|
||||
- **M4.3** **Timebox 到期不自動關、不自動打 tag。** 到期強制做一次降 scope 對帳(未完成 leaf 搬下一 milestone)並通知 leo。
|
||||
🔴 自動打 tag 會製造假交付——tag 永遠只在「驗過了」之後發生。
|
||||
- **M4.3** **Timebox 到期:不自動關、不自動打 tag、也不把票移出。** 到期只做一件事:通知 leo。
|
||||
🔴 **里程碑的內容一經確定就不增不減**(leo 2026-08-20:「milestone 確定後怎麼可以再把東西移除?
|
||||
定下工作自己刪掉是什麼意思?根本就沒有什麼降」)。增減都是 leo 的裁決,不是總管的操作。
|
||||
自動打 tag 會製造假交付——tag 永遠只在「驗過了」之後發生。
|
||||
- **M4.4** Milestone 關閉 = release tag,一對一。「已交付」唯一合法形式是 **tag 存在且裝得起來**;打 tag 前置 open issues = 0(§8 E12)。
|
||||
- **M4.5** Description 只寫版本目標一句 + tracking 連結。討論回 tracking issue。
|
||||
- **M4.7(降 scope 必須留痕)** 🔴 **把票移出里程碑,必須同時寫進該里程碑的 description。**
|
||||
格式:原本幾張、移走哪幾張、為什麼、移去哪裡。
|
||||
- **禁的不是降 scope**——卡人閘時降 scope 就是 M4.3 要的。禁的是**降得無聲無息**。
|
||||
- 為什麼寫在 description 不是寫在票裡:**leo 看的是百分比那個畫面**,
|
||||
他不會為了確認 100% 是不是真的而去逐張點票。**痕跡要留在他會經過的地方。**
|
||||
- 來由(2026-08-20 實犯):`v0.2.0` 本來 6 張,`#5` 卡人閘被移出 ⇒ 分母 6 變 5 ⇒ 顯示 100%。
|
||||
leo 當場問「為什麼還有很多 issues 開放中」。
|
||||
🔴 這與 §3.4(審核完沒關票 ⇒ 數字偏低)是**同一個病的兩面**:
|
||||
畫面上的數字不等於實際狀態,而 leo 只看得到畫面。
|
||||
- 機械閘:`inkstone/ISEP#24`。
|
||||
|
||||
- **M4.6** 🔴 **release note 寫在 Gitea Releases 裡,不寫在 README。**(leo 2026-08-20:「release 不是寫在 readme,要放在 release 裡」)
|
||||
README 不得自行宣稱版本號——那會產生第二份會漂移的版本真相。
|
||||
|
||||
@@ -584,66 +575,44 @@ leo 08-17 診斷見公理 3;08-17 實測:文字層的閘 **8 次誤攔、0
|
||||
|
||||
---
|
||||
|
||||
## 15. 三源整合定案(claude.ai 規劃 × 舊票需求 × 既有機制)— leo 2026-08-20 核准
|
||||
## 15. 三源整合定案(leo 2026-08-20 核准)
|
||||
|
||||
> leo:「你有沒有把現有的規劃跟計劃的比對?1. claude.ai 的規劃 2. 舊有票的需求
|
||||
> 3. 現在已經有的機制。你把這三個全部整合,修正出最終版規劃,核准再動工。」
|
||||
>
|
||||
> claude.ai 的規劃有**兩份**:本檔前身 v0.5.0 draft(§1–12 骨架)+ `InkStoneCo#40` 的
|
||||
> forge-discipline 規格(三層架構、warn-first、只減不增)。本節是三源逐領域對照後的定案。
|
||||
三源=claude.ai 兩份規劃(v0.5.0 draft+`InkStoneCo#40` forge-discipline)× 45 張舊票 × 既有機制。
|
||||
|
||||
### 15.1 逐領域對照
|
||||
### 15.1 方向(四句,其餘全是它們的展開)
|
||||
|
||||
| 領域 | claude.ai 規劃 | 舊票需求 | 既有機制 | **定案** |
|
||||
|---|---|---|---|---|
|
||||
| A 票的層級 | v0.5 §1–2 五層+milestone 橫切 | `#40` 同源;開工規約(milestone 只拉既有票) | v0.6 §1–2 已收編;`hub` 已建 | 維持;`#9` 的 project 半排群 5 |
|
||||
| B 狀態機與標籤 | 三態+labels.yaml+exclusive | 現場七態、179 張票在用 | 七態+`close/*`+人閘標籤已建,14 repo 對齊、sync 冪等 | ✅ **已成立**;定期校正排群 1 後 |
|
||||
| C 關票語意 | merge 自動關、禁手動 | 「審核後沒關票是大問題」;`#12` | §3.4 已立;E3 未建;`issue-status-autoflip.sh` 作用**未查證** | E3 排群 4;先查證 autoflip |
|
||||
| D 人閘與遠端同意 | 兩種人閘+Telegram 格式(H6.3) | `#15`/`#38`/`#34`/`#31` | 標籤已建;`gitea-arm` 有 D80 不可偽造性;notify_leo 通道 | 🔴 **不新建**:`#38` 兩改動做在既有 gitea-arm 上=群 3 第一刀 |
|
||||
| E 封路清單 | E1–E16(hook 名全猜) | `#23`/`#56`/`#36`/`#22`/`#55`:先修既有誤攔 | 43 支實體;§8 已對照;兩判準已實測(指令位置 8/8;heredoc=資料未實作) | **先修(群 0)後建(群 4/5)**;新建受 15.2-1 約束 |
|
||||
| F 規則載體與生命週期 | `#40` 三層+warn-first+只減不增+盤點先審 | `#48`:無留痕就無法校準——warn 觀察期的資料前提 | 43 支全 block;盤點已交等審;三行檔頭 0/43;hookify warn 不進 AI(§13.9) | 四層定位(15.2-2);**`#48` 是 `#40` 的前提** |
|
||||
| G 分發與環境同步 | manifest;~~子集~~(已刪);E11 | `#14`/`#57` | plugin 機制成立、A8 驗過;update 只認版本號⇒版本紀律=傳輸機制;雲端待 leo;舊 `.claude/` 未拆 | 群 2 三件收尾:leo 兩欄→雲端 B 組驗→拆舊 |
|
||||
| H 觀測與開場全局 | 🔴 **兩份規劃都沒有這章**——三源比對最大發現 | `#48`/`#17`/`#20`/`Arcrun#81`/`#142` | 2/43 留痕;PANORAMA 未接 hook | 群 1;本節核准後這章就是規範的常設缺口,補在 `#48` 關票時 |
|
||||
| I 派工流程 | S3.0.1 領票 | `#12`/`#28` | `no-ticket-no-dispatch`(實際擋過總管);worktree 隔離有效但靠人記得 | 群 4;派工動作自備 worktree |
|
||||
| J 書寫路由 | §12 時態 | `#49` checkbox 分診 | §12 已收編 | 維持;`#49` 排群 5 |
|
||||
1. **機制只有一份。** 環境、標籤、規範、版本號都是單一真相源;本機與雲端裝同一個 plugin,沒有子集。
|
||||
2. **閘封動作,不封措辭。** 伺服器端擋不可逆;手寫 hook 擋高代價動作(block);
|
||||
hookify+additionalContext 只提醒(永遠 warn);skill 管 regex 表達不了的判斷。
|
||||
3. **一切要留痕、可量測。** 閘的動作、開場全局、里程碑百分比——leo 看到的畫面就是實況。
|
||||
4. **進度=舊票關掉幾張。** 版本只是讓閘生效的載具,release note 寫明關了哪張票。
|
||||
|
||||
### 15.2 三源互相矛盾的三處與解法
|
||||
### 15.2 工作順序(六個里程碑,各 repo 同名,內容一經確定不增不減)
|
||||
|
||||
1. **`#40` §7「hook 只減不增」 vs v0.5.0 E 清單要 ~11 支新閘**(claude.ai 兩份規劃自己打架)
|
||||
⇒ 新封路優先做在**伺服器端**(Gitea 原生:branch protection=E1、dependency=E4)或 hookify-warn 層;
|
||||
要新增 `.sh` 必須在 PR 說明為何前兩層做不到——`#40` §7 自己的但書。
|
||||
2. **`#40` §3 warn-first vs 既有 43 支全 block + hookify warn 不進 AI**
|
||||
⇒ 四層定位(D88 延伸):伺服器端拒絕/手寫 hook block(擋錯代價高的動作)/
|
||||
hookify+additionalContext(意圖提醒,🔴 永遠只准 warn)/skill(判斷型)。
|
||||
既有 block 不動(群 0 是修準不是降級);**新**規則從 warn 層出生,
|
||||
靠 `#48` 的留痕數據才有資格升 block。
|
||||
3. **v0.5.0 E5 milestone 自動關+打 tag vs 假交付之痛** ⇒ 已在 M4.3 否決,維持。
|
||||
| 順 | 里程碑 | 來源票 |
|
||||
|---|---|---|
|
||||
| 0 | 讓閘擋對東西 | `InkStoneCo#56 #23 #22 #36 #55 #1` |
|
||||
| 1 | 讓規則的效果看得見 | `InkStoneCo#48 #17 #20 #18`、`Arcrun#86 #142 #81` |
|
||||
| 2 | 同一件事只留一份 | `InkStoneCo#14 #57 #37 #11`、`arcrun-rag#116 #123 #122 #88`、`Arcrun#109`、`system-dev-template#2 #3` |
|
||||
| 3 | 不要卡在 leo 身上 | `InkStoneCo#15 #38 #34 #31 #52` |
|
||||
| 4 | 派工與交付紀律 | `InkStoneCo#12 #28`、`arcrun-rag#47 #124`、`Arcrun#93 #143 #131`、`system-dev-template#7` |
|
||||
| 5 | 票與文件歸位 | `InkStoneCo#9 #49 #10 #8 #5`、`system-dev-template#1 #4` |
|
||||
|
||||
### 15.3 已成立(三源一致且已實測,不再動)
|
||||
排序判準=「什麼擋住什麼」:閘不修好,其他群的成果會被誤攔咬到;沒有留痕,修了也量不出變好。
|
||||
`#40` 是憲法,貫穿全部;`#48` 是 `#40` warn 校準的資料前提,所以排群 1 之首。
|
||||
|
||||
標籤真相源+14 repo 對齊(抽驗 4 repo 缺 0 不符 0)/單一 plugin 兩端同份(A8 驗過)/
|
||||
版本=release 紀律+防漂移閘/gitea-arm 不可偽造性(D80)/43 支盤點表(等 leo 審分類)。
|
||||
### 15.3 三處矛盾的定案
|
||||
|
||||
### 15.4 動工順序
|
||||
1. `#40`「hook 只減不增」vs E 清單要 ~11 支新閘 ⇒ 新封路優先做在**伺服器端**或 **warn 層**;
|
||||
要新增 `.sh` 必須在 PR 說明為何前兩層做不到。
|
||||
2. warn-first vs hookify 的 warn 不進 AI ⇒ warn 一律用 `additionalContext`;
|
||||
新規則從 warn 出生,憑 `#48` 的留痕數據才升 block。
|
||||
3. milestone 到期自動關+打 tag ⇒ 否決(M4.3)。
|
||||
|
||||
```
|
||||
群 0 讓閘擋對東西 第一刀 #23/#56:兩判準做成 hooks/lib/ 共用前處理,
|
||||
↓ 改四支誤攔最兇的閘,雙向實測
|
||||
群 1 讓規則的效果看得見 #48 留痕(#40 校準的前提)→ #17/#20 開場總圖
|
||||
群 2 同一件事只留一份 #14 雲端(等 leo 兩欄)→ 拆舊 .claude/ → #37(等裁)
|
||||
群 3 不要卡在 leo 身上 #38 做在既有 gitea-arm 上
|
||||
群 4 派工與交付紀律 #12/#28/E3
|
||||
群 5 票與文件歸位 #9 project 半/#49 分診/#40 檔頭+README 總表
|
||||
```
|
||||
### 15.4 待 leo 裁(不擋群 0 開工)
|
||||
|
||||
🔴 每一刀的收工證據是「**某張舊票關掉了**」,不是出版本;
|
||||
版本只在要讓閘生效時發,release note 寫明關了哪張舊票。不開任何新票(§14)。
|
||||
|
||||
### 15.5 尚待 leo 裁的三件(不擋群 0 開工)
|
||||
|
||||
1. `#37` 兩份 repo 以哪份為準(建議 `inkstone/*`)——裁定前不在任何一份開新票
|
||||
2. `#5`/`#8` 方法論母題:轉 hub 或作廢
|
||||
3. 08-20 兩支未經 warn 期的 block 新閘:隨盤點表一起審,audit 過就地合法,否則降 warn
|
||||
`#37` 兩份 repo 哪份為準(建議 `inkstone/*`)/`#5` `#8` 轉 hub 或作廢/
|
||||
08-20 兩支未經 warn 期的 block 閘,隨盤點表(`docs/hooks-inventory.md`)一起審。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user