ticket pick/claim:雲端工人抓票規則機械可判(inkstone/ISEP#131) #134

Merged
claude-code merged 1 commits from feat/131-ticket-pick into main 2026-09-07 01:09:17 +00:00
Member

【身份】isep-hand/inkstone/ISEP/feat/131-ticket-pick

closes inkstone/ISEP#131

做了什麼

scripts/ticket 多兩個動詞,把 cloud-worker.md 步驟 1 那段給人讀的抓票規則做成指令:

  • ticket pick [--mainline <主線檔>] [--all] [--json] [--claim]:回一張現在可以抓的票。
    主線里程碑抓盡才輪到逾期里程碑;backlog/沒里程碑一律不抓。
    離開碼 0 有票/1 真的沒有/2 讀不到或沒主線(讀不到 ≠ 沒有)。
  • ticket claim <票> [--as <登入名>] [--name <身份>]:認領=指派+s/doing+第一行【身份】留言,一個動作
    規則在寫入前再驗一次,身份名先驗(名單以外的名字一通 API 都不打)。
  • 完成那半(分支+證據+s/reviewhandback)本來就有,不重做。

規則本體在 pickable() 純函式,全部是 Gitea 欄位:
s/* 恰好是 {s/todo} + 沒 assignee + 沒 Humanhuman/* + 不是 hub + 里程碑=主線。

兩個超出票面規則的判準,各有現場證據:

  • 「恰好 {s/todo}」不是「有 s/todo」——09-07 實查 inkstone/mira#6 同時掛 s/doings/todo
  • hub 排除——09-07 實查 ISEP#31–35 五張 hub 掛在逾期里程碑、s/todo、沒人;容器不是任務(labels.yaml 定義)。

沒有多加 hook:規則是「要求某個東西在場」的形狀,長在正門 scripts/ticket 裡;側門(直接 PATCH assignees)現在沒有閘,我判斷加一支會誤攔總管日常指派,先不做。

驗過什麼

  • bash scripts/test-ticket-pick.sh通過 48 條,失敗 0 條(全離線,假池子 11 張)
  • 既有:test-ticket-handoff-writeback.sh 49/49、test-ticket-where-seen-guard.sh 17/17、
    test-comment-carries-task-guard.sh 29/29、test-baton-handback-guard.sh 10/10、
    mainline-focus-guard.test.sh 24/24、reply-identity.test.sh 11/11、mainline-idle-guard.test.sh 61/61
  • test-ticket-api-bypass-guard.sh 23/24——main 上同樣 23/24,紅的是那條打真實 Gitea 的 Arcrun#100 重演案例,與本 PR 無關
  • 真實 Gitea:pick --all 唯讀實跑(主線回 ISEP#130、#131;hub 五張被排除);
    claim inkstone/ISEP#131 --name isep-hand 真認領一次(assignee=claude-code、s/doing、留言 6325);之後 pick 不再回 身為每天清晨醒來的雲端工人,我要抓票規則是機械可判的,我才不會讀到殘骸只能空轉 (#131)

數字(本樹實數)

ls -p scripts | grep -v / | wc -l → 50(README/plugin.json 描述 49→50);hooks 61、註冊 84 不變。

待總管

  • 待總管定版scripts/ticket 會被 plugin 載入)
  • InkStoneCo/system-dev/docs/3-specs/autonomy-dispatch/routines/cloud-worker.md 步驟 1 改成叫 ticket pick --claim——那份住在 InkStoneCo,不在本 repo

🤖 Generated with Claude Code

https://claude.ai/code/session_01DTZ9QtvjY7MNxjfQbexAm7

【身份】isep-hand/inkstone/ISEP/feat/131-ticket-pick closes inkstone/ISEP#131 ## 做了什麼 `scripts/ticket` 多兩個動詞,把 cloud-worker.md 步驟 1 那段給人讀的抓票規則做成指令: - `ticket pick [--mainline <主線檔>] [--all] [--json] [--claim]`:回**一張**現在可以抓的票。 主線里程碑抓盡才輪到逾期里程碑;backlog/沒里程碑一律不抓。 離開碼 0 有票/1 真的沒有/2 讀不到或沒主線(**讀不到 ≠ 沒有**)。 - `ticket claim <票> [--as <登入名>] [--name <身份>]`:認領=指派+`s/doing`+第一行【身份】留言,**一個動作**。 規則在寫入前再驗一次,身份名先驗(名單以外的名字一通 API 都不打)。 - 完成那半(分支+證據+`s/review`+`handback`)本來就有,不重做。 規則本體在 `pickable()` 純函式,全部是 Gitea 欄位: `s/*` 恰好是 `{s/todo}` + 沒 assignee + 沒 `Human`/`human/*` + 不是 `hub` + 里程碑=主線。 兩個超出票面規則的判準,各有現場證據: - 「恰好 `{s/todo}`」不是「有 `s/todo`」——09-07 實查 `inkstone/mira#6` 同時掛 `s/doing`+`s/todo`。 - `hub` 排除——09-07 實查 `ISEP#31–35` 五張 hub 掛在逾期里程碑、`s/todo`、沒人;容器不是任務(labels.yaml 定義)。 **沒有多加 hook**:規則是「要求某個東西在場」的形狀,長在正門 `scripts/ticket` 裡;側門(直接 PATCH assignees)現在沒有閘,我判斷加一支會誤攔總管日常指派,先不做。 ## 驗過什麼 - `bash scripts/test-ticket-pick.sh` → **通過 48 條,失敗 0 條**(全離線,假池子 11 張) - 既有:`test-ticket-handoff-writeback.sh` 49/49、`test-ticket-where-seen-guard.sh` 17/17、 `test-comment-carries-task-guard.sh` 29/29、`test-baton-handback-guard.sh` 10/10、 `mainline-focus-guard.test.sh` 24/24、`reply-identity.test.sh` 11/11、`mainline-idle-guard.test.sh` 61/61 - `test-ticket-api-bypass-guard.sh` 23/24——**main 上同樣 23/24**,紅的是那條打真實 Gitea 的 Arcrun#100 重演案例,與本 PR 無關 - 真實 Gitea:`pick --all` 唯讀實跑(主線回 ISEP#130、#131;hub 五張被排除); `claim inkstone/ISEP#131 --name isep-hand` 真認領一次(assignee=claude-code、s/doing、留言 6325);之後 `pick` 不再回 #131 ## 數字(本樹實數) `ls -p scripts | grep -v / | wc -l` → 50(README/plugin.json 描述 49→50);hooks 61、註冊 84 不變。 ## 待總管 - **待總管定版**(`scripts/ticket` 會被 plugin 載入) - `InkStoneCo/system-dev/docs/3-specs/autonomy-dispatch/routines/cloud-worker.md` 步驟 1 改成叫 `ticket pick --claim`——那份住在 InkStoneCo,不在本 repo 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01DTZ9QtvjY7MNxjfQbexAm7
claude-code added 1 commit 2026-09-07 01:06:25 +00:00
- scripts/ticket 多兩個動詞:pick(給定主線檔回一張可抓的票,主線抓盡才抓逾期里程碑,
  不抓 backlog/沒里程碑)與 claim(指派+s/doing+【身份】留言,一個動作;規則在寫入前再驗一次)
- 規則全是 Gitea 欄位:s/* 恰好是 {s/todo}+沒 assignee+沒 Human/human/*+不是 hub+里程碑=主線
  · 「恰好」而非「有 s/todo」:09-07 實查 mira#6 同時掛 s/doing+s/todo
  · hub 排除:09-07 實查 ISEP#31–35 五張 hub 掛在逾期里程碑、s/todo、沒人,但容器不是任務
- 離開碼分三種:0 有票/1 真的沒有/2 讀不到或沒主線(讀不到 ≠ 沒有)
- scripts/test-ticket-pick.sh 48 條全離線;README/plugin.json 腳本數 49→50 在本樹實數
- 版本號待總管定版(scripts/ticket 會被 plugin 載入)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DTZ9QtvjY7MNxjfQbexAm7
claude-code merged commit b5d501e9b8 into main 2026-09-07 01:09:17 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: inkstone/ISEP#134