Daily maintainer routine — open issues / PR review / build health / broken-link audit via canonical MAINTAINER-PIPELINE. TRIGGER when: user says "maintainer", "跑 maintainer", "daily PR review", "issue triage", or routine `twmd-maintainer-daily` fires.
Before anything else:跑 /twmd-become review 完整走 BECOME_TAIWANMD.md Step 0-9。Review mode self-test 11 題全過才能進 Stage 1。
驗證 ACK 一行(必寫 memory file 頂部,沒寫視為 BECOME 未完成):
✅ BECOME ack: mode=review / 8 organ 最低=<從 consciousness-snapshot.sh 即時讀> / Q13 anti-bias check=PASS / Q14 cross-session continuity=PASS不准用記憶中的舊器官分數,跑 bash scripts/tools/consciousness-snapshot.sh 取當前。
🚨 分岔當班修(2026-09-19 哲宇 directive:「if this divergence happened again, you have to fix it, this is your duty」):git fetch -q origin && git rev-list --left-right --count main...origin/main 印出兩個數字都 > 0 = 本機與 origin 真分岔。這是本班的第一件事,不留 handoff、不進 OBSERVER-QUEUE、不開救援分支、不套「>50 檔等哲宇」。修法固定是策略 B(origin 版優先),12 步在 MAINTAINER-PIPELINE §Step 1.1b,機械步驟跑 python3 scripts/tools/merge-divergence.py {resolve,dedupe,verify,align} --base <合併前 origin sha> --apply。先 launchctl remove com.taiwanmd.babel.nightly 凍結寫入者,合併完再重掛。09-09 起分岔十天沒人動手的代價:843 檔衝突、捨去 1,019 篇重複譯文、改名 389 篇。
git pull origin main
gh issue list --state open --limit 30 --json number,title,labels,updatedAt
gh pr list --state open --limit 30 --json number,title,labels,updatedAt,author
git log --since="24 hours ago" --oneline | head -30
git log --since="48 hours ago" --pretty=format:"%h %ai %s" | head -50
bash scripts/tools/consciousness-snapshot.sh
bash scripts/tools/routine-status.sh
bash scripts/tools/ci-main-health.sh # main 上每條 workflow 最後一次跑成什麼樣(七態,不用自己判)Engineering contracts 紅了就再跑一支(2026-10-08):那條 job 有四道 npm audit --audit-level=high 用 && 串著,第一道紅了後面三道不跑,修第一個看到的只是把紅燈推到下一格。
bash scripts/tools/npm-audit-sweep.sh # 四道一次報完,每條附「修補在不在小版本內」fix=minor 的本班修(npm audit fix --package-lock-only --audit-level=high,不碰 node_modules 因為 babel worker 在用);fix=MAJOR(...) 或 none 是決定不是 heal,帶 options + 成本進 OBSERVER-QUEUE。外部公告造成的紅仍是本班的 polish item——「這不是我們的程式」描述歸屬不是處置,紅留在 main 上下一個投稿 PR 會繼承它(LESSONS external-advisory-reddens-a-gate... vc=3)。
寫進 memory file 的 §Stage 1 表(≥ 5 列):open PR / open issue / past 24hr commits / past 48hr commits / build status / i18n smoke / immune organ score。
走 MAINTAINER-PIPELINE.md §collect-and-merge 完整 SOP:
gh issue view N --json comments -q '.comments[-1]',避免維護者連續自答gh issue/pr edit N --add-assignee @me;已有他人 assignee = 另一台機器在做,跳過(09-18 #1746 兩台同修)gh pr view N --json labels,comments 跟認領同一次要回來(零額外成本);reserved-for-observer label = 不走 P0 default merge。看到「等哲宇/留著/不會 close/OBSERVER-QUEUE #/保留/紅線」字樣而沒有 label → 補 label 再動手。自己判定保留時也一律掛上(散文會被下一班漏讀,label 每次 gh pr list 都看得到)。誕生:10-08 本班把 #1782/#1784 合併,而 09-30/10-01 兩班已判定那是策展決定並明寫「我不會 close 它」,OBSERVER-QUEUE #67 標 🔒紅線不適用 default-action;已還原 cb2e23f78。LESSONS every-mechanical-gate-green-while-the-ruling-lived-in-the-comment-thread鐵律(2026-05-28 新增)— 空場 cycle ≥ 3 次連續 = 結構性訊號,不是 healthy 自我合理化:
鐵律(2026-08-11 哲宇 directive)— issue 的 default 是修好,不是分類好:
「maintainer 不只要回覆 issue,而是要協助回應、判斷、評估、研究、落檔,然後執行相關的修正與自我進化或是網站更新,這樣才有意義。」
完整 SOP:MAINTAINER-PIPELINE §1c + §Step 3.6
真實有 backlog 時 act 範圍:
| Gate | 檢驗 |
|---|---|
| open issues 都有 status label / assignee | ✅/❌ |
| open PRs ≤ 5d age 都有 review comment | ✅/❌ |
| broken-link gated ratio < gate(script canonical 現 7%;DNA #52+#66) | ✅/❌ |
| build green | ✅/❌ |
| BECOME ACK 一行記憶體頂 | ✅/❌ |
| 連續空場 ≥ 3 cycle 有 LESSONS entry | ✅/❌ |
| 有 fresh issue 的 cycle,至少一件被修掉或明確寫出為什麼不修 | ✅/❌ |
| 本機與 origin 無真分岔(兩邊領先數不同時 > 0) | ✅/❌ |
Handoff 三態(必寫 memory file):
[ ] pending — 跨 session 未動⏳ blocked — 等外部 / 等觀察者[x] /twmd-finale chain → memory + commit + push main-direct。
🧬 Maintainer cycle report — YYYY-MM-DD HH:MM
✅/❌ open issues: N (stale > 5d list)
✅/❌ open PRs: N (stale > 5d list + review status)
✅/❌ broken-link gated ratio: X% (< script gate pass; es/fr report-only 另列)
✅/❌ build status: green/red
✅/❌ 連續空場 cycle vc=N (≥ 3 = warning)
⚠️ 異常 / 需觀察者決策事項git reset --hard完整 SOP:MAINTAINER-PIPELINE.md
frank890417/taiwan-md
3f3766c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.