身為交出 PR 的人,我要它兩週內有人給結論,我才不會做完的東西永遠進不了版本 #95
Closed
claude-code
wants to merge 1 commits from
feat/pr-verdict-guard into main
pull from: feat/pr-verdict-guard
merge into: inkstone:main
inkstone:main
inkstone:fix/roster-plugin-prefix
inkstone:chore/v0.16.0
inkstone:feat/nag-and-wiki-compress
inkstone:feat/named-workers-and-reply-gate
inkstone:feat/manifest-account-v2
inkstone:feat/debt-worklist
inkstone:feat/release-manifest-and-milestone-account
inkstone:chore/v0.13.0
inkstone:feat/handoff-writeback-loose
inkstone:feat/mainline-milestone
inkstone:chore/v0.12.0
inkstone:fix/cloud-wiring-isep90
inkstone:feat/pr-verdict-v2
inkstone:feat/countdown-stamp
inkstone:feat/gate-search-is-not-proof
inkstone:fix/stamp-proves-seen-not-run
inkstone:feat/gate-catches-recon-without-output
inkstone:docs/inventory-missing-rows
inkstone:fix/tests-leave-no-forged-pending
inkstone:integrate/isep59-wave2
inkstone:fix/gitea-write-search-guard
inkstone:feat/leo21c-mcp-guard
inkstone:fix/dispatch-guard-parens-and-wiring
inkstone:fix/dispatch-guard-noise-and-wiring
inkstone:fix/remove-claim-worksheet-mechanism
inkstone:feat/three-native-fields
inkstone:feat/ticket-carries-the-task
inkstone:feat/gate-fires-when-asking-not-after-stopping
inkstone:fix/stamp-release-stat-ordering-linux
inkstone:fix/beacon-says-which-copy
inkstone:fix/factory-idle-guard-blocks-actions-not-mentions
inkstone:fix/beacon-counts-registered-gates
inkstone:fix/push-guard-cross-repo-stamp
inkstone:feat/vendor-drift-guard
inkstone:fix/push-guard-target-not-substring
inkstone:feat/milestone-must-have-due
inkstone:fix/worksheet-dedup-by-content
inkstone:fix/b4-real-probe
inkstone:fix/cloud-setup-git-auth-verify
inkstone:feat/cloud-env-outdir
inkstone:fix/testing-b-section-discriminating
inkstone:fix/setup-self-verify
inkstone:fix/claim-worksheet-dedup
inkstone:fix/cloud-env-parity-14
inkstone:fix/sdd-guard-path-resolution
inkstone:feat/cloud-env-generator
inkstone:fix/one-copy-per-gate
inkstone:fix/group0-gates
inkstone:chore/withdraw-versions
inkstone:rule/milestone-formation
inkstone:rule/pr-only
inkstone:docs/three-source
inkstone:docs/plan
inkstone:release/v0.2.1
inkstone:fix/ticket-api-bypass
inkstone:leaf/24-descope
inkstone:release/v0.2.0
inkstone:leaf/5-cloud
inkstone:leaf/18-dogfood
inkstone:leaf/6-release
inkstone:leaf/2-docs
inkstone:leaf/3-wiki
inkstone:leaf/4-labels
No Reviewers
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
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: inkstone/ISEP#95
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 "feat/pr-verdict-guard"
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/ISEP#81。這一版解掉什麼
實查(2026-08-27):
inkstoneorg 有 7 個 open PR,最久的三個躺了兩星期,而 v0.9.0 的 46 支閘一支都沒有在管 PR。票看起來「已交付」,
東西卻沒進 main ⇒ 沒進版本 ⇒ leo 手上永遠不會出現它。
兩件東西
1.
hooks/pr-verdict-guard.sh(Stop,F 組)收工那一刻清點:open、沒有人被指派、也沒有
REQUEST_CHANGESreview 的 PR ⇒ 擋一次並點名是哪幾個(含開了幾天與網址)。已經 merge 但 head 分支還留著的一起點名
——票上寫死「merge → 併完當場刪掉那條 branch」,分支還在=結論只給了一半。
🔴 票上點名要避開的那條錯路(ISEP v0.6.0 divergence §B4:「
s/review佇列非空即 block」⇒ 佇列本來就不會空 ⇒ 總管永遠停不下來)。所以擋的是遺忘,不是等待,四層都用來放掉「等待」:
Humanbaton-handback-guard的三格表)REQUEST_CHANGESreview「碰過」不讀任何一句話:①
updated_at跟上次收工比變了(外部系統的事實:留言/推 commit/改標籤/submit review 都會動它)② 上次收工時還不存在(不在它誕生的那一回合就開罵)
③ 這一回合的 tool call 出現它的識別碼——這條是為了接住「結論寫在票上」這種本票規定的合法結論。
刻意只掛
Stop,不掛SubagentStop:給 PR 結論是總管的權,subagent 連 main 都不准推⇒ 掛上去只會變成對它的誤攔。
2.
scripts/pr-verdict—— 三種結論各是一個動作所有掉棒的形狀都長一樣——第一個動作做了,第二個沒有。綁成一個指令,
就沒有「忘了做第二件」這個狀態可以存在。
merge會複驗分支真的查不到了才回報成功(下了刪除指令 ≠ 它被刪掉;保護分支/跨 fork 都會讓它失敗)。
--dry-run把要打的每一通 API 印出來但一通都不送出。驗過的(
docs/TESTING.mdA14/A15)離線走
PR_VERDICT_FIXTURE,不打 Gitea、不開測試 PR、不留任何測試票。arcrun-rag#91/Arcrun#116/Arcrun#104,訊息逐一點名updated_at變了 5 次都不擋;指名它 5 次都不擋;指名別的票號 → 照擋真跡也在真實 Gitea 上唯讀重演過(不改動任何 PR):一次點名 7 個沒有結論的 PR,
含票上那三個(15/14/14 天)。指令與輸出見票上留言。
既有測試沒被弄壞:
mainline-idle-guard61/61、dispatch-format-guard33/33、factory-idle-guard33/33。給複審的人
scripts/check-version-consistency.sh現在會紅:plugin.json已是 0.10.0,但
v0.10.0的 tag 還沒打。tag 是併進 main 之後總管的動作(release-tag-guard管那道),分支上打不了。這與
#78/#79/#80的做法一致。ls hooks/*.sh | wc -l= 52、grep -c '"command":' hooks/hooks.json= 65。順手改掉
plugin.json描述欄長期寫的「27 支腳本」——實數 34(
ls -p scripts | grep -v / | wc -l)。【身份】subagent/ISEP
這個 PR 由
inkstone/ISEP#97取代,現在關閉並刪掉分支。原因:
#95推不上去(github-contact-guard把推 Gitea 判成推 GitHub,證據在
inkstone/ISEP#90#issuecomment-5151),總管改走 Gitea 的/contents/API另開
feat/pr-verdict-v2送出 ⇒#97已併、v0.11.0已發、inkstone/ISEP#81已關。刪分支前確認過內容一個位元都沒少——我改的 7 個檔逐一對
main的 sha256:📌 這則留言本身就是
#81那條規約在管的事:一個 open、沒人指派、沒有結論的 PR就是它要抓的目標——而它抓到的第一個會是我自己開的這個。留著不處理,
等於剛出貨的那支閘上線第一天就有一筆該響的沒響。
Pull request closed