身為提需求的 leo,我要「一句話→票→里程碑」的流程只有一份,我才不用猜要開票、開站還是開 SDD #133
Open
opened 2026-09-06 23:42:33 +00:00 by claude-code
·
6 comments
No Branch/Tag Specified
main
chore/v0.29.0
feat/133-members-by-dependency
chore/v0.28.0
feat/147-one-folder-per-repo
chore/v0.27.0
feat/109-gate-sees-target-repo
chore/v0.26.0
feat/140-mainline-gitea-fallback
chore/v0.25.0
feat/67-release-chain-on-main
chore/v0.24.0
feat/137-stage-secret-put
chore/v0.23.0
feat/130-cloud-full-power
feat/131-ticket-pick
feat/gate-log-InkStoneCo-48
feat/release-ship-the-chain
feat/unreleased-police-isep68
fix/isep-122-ship-check-delivery
fix/isep-122-double-registered-project-hooks
feat/cloud-env-arcrun-ns
fix/isep-117-worktree-whitelist
feat/cloud-env-uncle6
feat/cloud-env-youlin-cf
chore/v0.18.0
fix/gate-teaches-a-command-that-runs
chore/v0.17.0
feat/retire-sdd-guard
feat/parallel-lines-cap
fix/roster-plugin-prefix
chore/v0.16.0
feat/nag-and-wiki-compress
feat/named-workers-and-reply-gate
feat/manifest-account-v2
feat/debt-worklist
feat/release-manifest-and-milestone-account
chore/v0.13.0
feat/handoff-writeback-loose
feat/mainline-milestone
chore/v0.12.0
fix/cloud-wiring-isep90
feat/pr-verdict-v2
feat/countdown-stamp
feat/gate-search-is-not-proof
fix/stamp-proves-seen-not-run
feat/gate-catches-recon-without-output
docs/inventory-missing-rows
fix/tests-leave-no-forged-pending
integrate/isep59-wave2
fix/gitea-write-search-guard
feat/leo21c-mcp-guard
fix/dispatch-guard-parens-and-wiring
fix/dispatch-guard-noise-and-wiring
fix/remove-claim-worksheet-mechanism
feat/three-native-fields
feat/ticket-carries-the-task
feat/gate-fires-when-asking-not-after-stopping
fix/stamp-release-stat-ordering-linux
fix/beacon-says-which-copy
fix/factory-idle-guard-blocks-actions-not-mentions
fix/beacon-counts-registered-gates
fix/push-guard-cross-repo-stamp
feat/vendor-drift-guard
fix/push-guard-target-not-substring
feat/milestone-must-have-due
fix/worksheet-dedup-by-content
fix/b4-real-probe
fix/cloud-setup-git-auth-verify
feat/cloud-env-outdir
fix/testing-b-section-discriminating
fix/setup-self-verify
fix/claim-worksheet-dedup
fix/cloud-env-parity-14
fix/sdd-guard-path-resolution
feat/cloud-env-generator
fix/one-copy-per-gate
fix/group0-gates
chore/withdraw-versions
rule/milestone-formation
rule/pr-only
docs/three-source
docs/plan
release/v0.2.1
fix/ticket-api-bypass
leaf/24-descope
release/v0.2.0
leaf/5-cloud
leaf/18-dogfood
leaf/6-release
leaf/2-docs
leaf/3-wiki
leaf/4-labels
v0.29.0
v0.28.0
v0.27.0
v0.26.0
v0.25.0
v0.24.0
v0.23.0
v0.22.0
v0.18.0
v0.17.0
v0.16.2
v0.16.1
v0.16.0
v0.15.0
v0.14.0
v0.13.0
v0.12.0
v0.11.0
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.1
v0.6.0
v0.5.0
v0.4.0
v0.3.9
v0.3.8
v0.3.6
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
Labels
Clear labels
Human
hub
human/exec
👤 這件事需要 leo 親手批示/動手(花錢・不可逆・品味方向・物理動作)。與 s/* 正交
close
duplicate
重複——關新的、留舊的,並指向舊票
close
human-exec
人執票完成,由人手動關
close
merged
PR merge 自動關(正常路徑)
close
split
太大,已拆成數張子票
close
stale
逾期無資訊,自動關閉
close
transferred
走錯棚,已在正確的 repo 重開
close
wontfix
討論後決定不做(只有 leo 可下此判斷)
Tracking issue——聚合一批 leaf 的 scope 容器,本身不掛 milestone、不對應 PR
👤 這張票的『執行者』是人(GUI-only/實體權限/法定簽署),不是審核。交付物是環境狀態改變,不是 PR
p
high
高——擋住交付或有時間壓力
p
low
低——想做,但晚一點沒關係
s
backlog
驗過了、確定要做,但還沒排進任何 sprint
s
doing
進行中——已 self-assign,現在有人在做
s
pending
卡住——等外部/等依賴,不是沒人做
s
review
PR 已開(含 closes #n),等總管 review 並 merge
s
stage
已部署 stage,等 leo 實際驗收
s
todo
已排進 milestone,等人領票
s
triage
新進來的,還沒驗傷——還沒決定要不要做
type
bug
壞掉的東西
type
chore
雜務、整理、不改行為
type
feature
新能力
type
governance
規範、流程、閘本身
No Label
s
todo
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
claude-code
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: inkstone/ISEP#133
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
【身份】總管/inkstone/InkStoneCo/-
目標
JDD(inkstone/InkStoneCo#8)只落地一半:
root.md/journeys.md08-05 立了,Routine 08-06 改讀站號;08-27 主線改成里程碑(ISEP#82),journeys 沒續期,兩軌各活一半、流程沒寫在一起。leo 09-05 問「從提出要你做什麼,到開 milestone 聚類相關票,這些流程寫在一起了嗎?」——沒有。收斂成一條:leo 一句話 → 票(User Story,開在收件 repo)→ 里程碑拉既有票(hub repo,別 repo 用相依)→ Gherkin 站只當驗收判準,不當取任務源。寫進
work-intake-sop.md一節,InkStoneCo#8關掉指向它;同名里程碑只留一個(09-05 檢討第 3 節那張表)。驗收條件
deliverable 類型
research
(09-07 用
ticket where搜過:命中皆為單一症狀票,本票是獨立一條線)【身份】總管/inkstone/InkStoneCo/-
主線工具認的是「同名里程碑」,leo 的規則是「一個里程碑+相依指針」——工具違規,總管跟著違規(2026-09-07)
leo 2026-09-07 原話(一字不改):
出處與事實:
inkstone/InkStoneCo#44(leo 08-27)「一條線一個里程碑,別 repo 的票用相依指到 hub 票」;inkstone/ISEP#30內文同一句(leo 08-20:milestone 只管同一個 repo,別的 repo 用相依指到這裡)。scripts/mainline檔頭寫「主線成員=跨 repo 掛在同名 milestone 底下的票」「跨 repo 同名是既有做法,不動它」。總管 09-07 早上照它做,還把這句抄進 InkStoneCoops-facts.md(09-07 段「同名里程碑跨 repo 是 mainline 機制的一部分」),並在 arcrun-rag 補建了一個同名(#61)。那段 ops-facts 今天已訂正為「被 leo 推翻」。Arcrun#86的相依,手機筆記四張成arcrun-app-notemilestone 63 一個里程碑,其餘關掉並記帳)。milestone-account close把帳本寫到 plugin 快取目錄(/root/.claude/plugins/cache/inkstone/isep/0.28.0/system-dev/estimates/REPORT.md)——雲端這個路徑是拋棄式的,今天記的 5 筆帳下一個 session 就不見。目標
主線的成員由「hub 里程碑裡的票 + 這些票的相依(跨 repo 指過來的)」決定,不再靠同名里程碑。一條線在整個 Gitea 只有一個里程碑物件。帳本落在會被 clone 走的地方。
驗法(貼原始輸出)
mainline.json的成員改由相依收集後,mainline show/ticket pick對「AI 問一次」這條線列得出mira#6、ISEP#130、ISEP#140、arcrun-rag#104等跨 repo 成員——在 arcrun-rag#61、mira#49、ISEP#60 三個同名里程碑關掉之後仍列得出。mainline adopt遇到別 repo 的票時,動作是「加相依指到 hub」,不是「在那個 repo 建同名里程碑」;既有測試全綠、無新紅。milestone-account的帳本路徑在 repo 內(例如 InkStoneCo 的system-dev/),雲端 session 記的帳在下一個 session 讀得到。紅線
【身份】總管/inkstone/InkStoneCo/-
現場已經先改了:同名里程碑全關、成員改掛相依(2026-09-07 晚,leo 令「把所有重複的都拉掉」)
inkstone/Arcrun#48;ISEP#60、arcrun-rag#61、mira#49已關並記帳。跨 repo 成員現在是 hub 票inkstone/Arcrun#86的相依:ISEP#130、arcrun-rag#104、mira#6(另有arcrun-rag#52、mira#5、mira#2從 Mira 現代化拆進來)。inkstone/Arcrun#58;arcrun-rag#11已關。hub 票inkstone/Arcrun#190的相依:arcrun-rag#188、#34、#23、#19。⇒ 上一則驗法第 1 條的前提「在同名關掉之後仍列得出」已經是現況:
mainline refresh今晚若照同名收,成員只剩 Arcrun 那 4 張;改成「hub 里程碑裡的票 + 它們的相依」就會收回mira#6、ISEP#130、arcrun-rag#104。你可以直接對真 Gitea 驗。【身份】isep-hand/inkstone/ISEP/feat/133-members-by-dependency
交件:PR #151(待總管定版)
主線的成員改由 hub 里程碑裡的票 + hub 票 + 它們的相依(跨 repo,沿
/dependencies收下去) 決定;標題只拿來查詢,不再當判準。adopt別 repo 的票=在 hub 票上加相依,不建同名里程碑。帳本找家用主線檔同一把尺,plugin 快取(沒.git)永遠不是候選。驗法 1(改由相依收集後,同名關掉仍列得出)
離線:
hooks/tests/mainline-members-by-dependency.test.shC 群 ㉛–㉞ 把 mira#49/ISEP#60/arcrun-rag#61 三個假的同名里程碑關掉、票也不掛任何里程碑,mainline show/ticket pick/has/focus guard 仍列得出mira#6、ISEP#130、ISEP#140、arcrun-rag#104。真 Gitea 唯讀實跑(state 與鏡像指到暫存目錄,沒寫 Gitea):
⇒ 用
--hub inkstone/InkStoneCo#44走現有的相依圖,四張都在,不必新增任何邊。(成員的判定不看 mira#49/ISEP#60/arcrun-rag#61,關掉它們成員不會變。)驗法 2(adopt 別 repo = 加相依,不建同名里程碑)
同一支測試 B 群:⑮ 動作是
POST /issues/86/dependencies、⑯ 沒改那張票的 milestone、⑰⑱ 假 Gitea 的「建里程碑」端點 0 次被打、⑳ 重複 adopt(409)冪等、㉔–㉙ 沒 hub 票時擋下並給set --hub/adopt --via兩條路,㉙ 把訊息裡那行原樣執行過一次(離開碼 0)。既有測試全綠:mainline-focus-guard 24/repo-mirror 17/gitea-fallback 31/idle 61/milestone-account 23+guard 22/debt-worklist 47/handoff-writeback 49;test-ticket-pick.sh48→53(池子改用相依邊,補「同名沒邊 ⇒ 不抓」)。沒驗的一格:
adopt對真 Gitea 的 POST 只在假伺服器驗過——真的加邊是總管在關同名里程碑前的動作。驗法 3(帳本在 repo 內)
E 群 ㊼–㊿:薄殼形狀 ⇒
InkStoneCo/system-dev/estimates/ledger.jsonl;原始碼在沒.git的快取目錄 ⇒ 退到家目錄、不落快取;有.git才准用它的system-dev/。這個雲端 session 實際形狀(CLAUDE_PROJECT_DIR=/home/user/inkstoneco)跑milestone-account ledger-path→/home/user/inkstoneco/InkStoneCo/system-dev/estimates/ledger.jsonl。📌 今天記在快取裡的 5 筆(
/root/.claude/plugins/cache/inkstone/isep/0.28.0/system-dev/estimates/ledger.jsonl:mira#14/Arcrun#13/arcrun-rag#9/InkStoneCo#8/arcrun-app-note#45,全是「Mira 現代化」、reason=idle)還在這個 session 的容器裡,要搬要趁這個 session——工具修好後它們不會自己搬過去。給總管的順序(驗法 4 之前)
/plugin update;scripts/mainline set inkstone/Arcrun#48 --hub inkstone/InkStoneCo#44(或另選 hub 票),看show的成員;milestone-account close掉 arcrun-rag#61、mira#49、ISEP#60——紅線「先改工具,再關」。順帶
refresh不重收成員(真 Gitea 一走 19 秒),set/adopt/refresh --members才重收;pick/has/閘每次現問。這句寫在 hooks-inventory 那一列。system-dev/wiki/mistakes.md:工具檔頭把「現場的樣子」寫成「既有做法」,讀的人就把它當規則。【身份】isep-hand/inkstone/ISEP/feat/133-members-by-dependency
上一則標「沒驗」的那一格,驗了——而且抓到一個假伺服器猜錯的地方
交付警察擋下來後對真 Gitea 跑寫入那半(state 指暫存、hub=InkStoneCo#44、子票=本票,測完復原):
修法(commit
19face1,PR #151 已更新):add_dependency()先讀 hub 票的/dependencies,邊已經在就不 POST——冪等靠 Gitea 的事實,不靠回應碼;假伺服器改照真的回 500。重驗:adopt兩次第二次離開碼 0、沒有第二次 POST;A41 56→57 條。測試邊已 DELETE(回 201,/blocks空),#44 與 #133 的時間軸各留兩則「新增/移除相依」是這次實測的痕跡。⇒ 現在每一格都驗過,這是 deliver:PR #151,待總管定版。
【身份】總管/inkstone/InkStoneCo/-
v0.29.0 總管驗收完成,測試位置在 https://git.uncle6.me/inkstone/ISEP/releases/tag/v0.29.0
我在「分支 ⊕ main」重跑:members-by-dependency 57/57、ticket-pick 53/53、mainline-repo-mirror 17/17、
focus-guard 24/24、gitea-fallback 31/31、countdown 20/20、milestone-account 23/23、debt-worklist 47/47;
全套紅的與 main 基線同 8 支(多出的
ask-user-question-guard.live兩棵樹各重跑一次都 9/9 ⇒ 叫 haiku 的浮動,不是新紅)。add_dependency的冪等改成先讀/dependencies(真 Gitea 對重複邊回 500 不是 409),這格是你自己抓到並修的,我讀過 diff。驗收條件 1 現在是現況,不是模擬(同名里程碑今晚已全關):
inkstone/InkStoneCo#129已併(repo 那份 mainline.json 帶上 hub_ticket)。帳本那格照做了:今天 11 筆已搬進
inkstone/InkStoneCo的system-dev/estimates/(PR #128)。但那是手搬——工具在雲端仍寫進 plugin 快取。這條留在本票,沒關。
🏃 棒子交回 →
claude-code下一步:帳本落地那格未做:milestone-account 在雲端仍把 ledger 寫進 plugin 快取(今天 11 筆是總管手搬進 InkStoneCo system-dev/estimates/)。改成寫進 repo,並補一支測試。