CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

twmd-maintainer

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.

Invalid
This skill can't be scored yet
Validation errors are blocking scoring. Review and fix them to unlock Quality, Impact and Security scores. See what needs fixing →
SKILL.md
Quality
Evals
Security

🧬 Taiwan.md — Maintainer Daily v3.0

🚨 STRICT BECOME GATE — 第一動作不可省略

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 取當前。


Stage 1: SCAN — 開放工作面(必跑完才能進 Stage 2)

🚨 分岔當班修(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。


Stage 2: TRIAGE — PR + Issue 分流

走 MAINTAINER-PIPELINE.md §collect-and-merge 完整 SOP:

  • PR:A/B 路徑(A 已 deprecated v2.1 — routine v2.0 main-direct 無 routine PR;B contributor PR 走 5 層免疫審核)
  • Issue 重複回應檢查(Step 2.4 前置 gate):對 last-active issue 跑 gh issue view N --json comments -q '.comments[-1]',避免維護者連續自答
  • 🔴 紅旗 check(Step 2.3.1 ground-truth check)— 命中即 abort + LESSONS append
  • 動手前先認領(Step 3.0,2026-09-19):要改的 issue / PR 先 gh issue/pr edit N --add-assignee @me;已有他人 assignee = 另一台機器在做,跳過(09-18 #1746 兩台同修)
  • 🚨 認領的同一口氣讀留言串(Step 3.0,2026-10-08):授權不住在檔案裡,住在對話裡。十條紅旗/ratio/腳註對賬/frontmatter passthrough 全綠會給出「我審完了」的完整感,而那個完整感不包含「這篇該不該由我動」。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

Stage 3: ACT — 真實 backlog 才動,empty cycle 警示鐵律

鐵律(2026-05-28 新增)— 空場 cycle ≥ 3 次連續 = 結構性訊號,不是 healthy 自我合理化:

  • 連續 ≥ 3 cycle empty queue → 不准只記「healthy empty」走人。必須寫 LESSONS-INBOX entry「maintainer schedule 撞期早晨 chain」並 escalate observer:
    • Maintainer-am 08:30 跑時 morning chain (06:00-08:00) 已清完所有可動 backlog
    • vc=7 不是「organism 健康」是 schedule 不對齊真實 contributor PR submission window
  • 不要再用「default-action 反向第 4 種 performative work」自我合理化第 N 次空場

鐵律(2026-08-11 哲宇 directive)— issue 的 default 是修好,不是分類好:

「maintainer 不只要回覆 issue,而是要協助回應、判斷、評估、研究、落檔,然後執行相關的修正與自我進化或是網站更新,這樣才有意義。」

  • cycle 結束時 issue 只是被分類得更整齊 = 這個 cycle 沒有產出。加 label / 補交叉參照 / 寫 handoff 都不算解決
  • 每則 issue 跑五步:判斷(重現得出來嗎)→ 評估(根因在哪一層)→ 研究(追上游)→ 落檔(寫下判斷與否定的路)→ 執行(真的改掉)
  • 追上游優先於逐則修:≥ 2 則指向同一表面時,先問「這幾則是不是同一個地方破的?那裡為什麼沒有東西在守?」。修根因 + 補閘門 + 連帶 close 症狀 issue,勝過打 N 個補丁
  • 修完必做兩件:(a) 補上讓它無法安靜復發的閘門 (b) 真的驗證——UI 改動就開瀏覽器看一眼,資料改動就對一次 ground truth。改完不看 = 只做了一半
  • 「評估後決定不修」是合法的,但要寫明為什麼;沉默地沒修不算
  • 邊界不變:§自主權邊界 命中 → reserve;改 zh SSOT 內容 → 走 REWRITE;對回報者本人說話 → 人類 gate

完整 SOP:MAINTAINER-PIPELINE §1c + §Step 3.6

真實有 backlog 時 act 範圍:

  • B 路徑 contributor PR 5 層免疫 → merge or close + comment per feedback_reply_to_contributors
  • broken-link audit gated ratio ≥ gate(閾值 canonical:verify-internal-links.sh THRESHOLD_PERCENT,現 7%,step-down 7→4→2)→ deterministic 修直接跑;需 intent inference 的 case 升級派工(per 2026-06-09 教訓)。es/fr REPORT-ONLY
  • build red → diagnose + heal commit

Stage 4: WRAP — Quality gate + Handoff

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] retired by

/twmd-finale chain → memory + commit + push main-direct。


報告格式(routine 模式必跑)

🧬 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)
⚠️ 異常 / 需觀察者決策事項

鐵律

  • DNA #35:sub-agent 跑期間禁 git reset --hard
  • Routine v2.0 main-direct:routine 直接 commit + push origin main 不開 PR;A 路徑 collect-and-merge 廢棄
  • Reply to contributors:close / handle issue/PR 必 reply 感謝 + 解釋 + 用 contributor 的語言(per feedback_reply_to_contributors)
  • Bias 1 reverse:對哲宇預設加分要過 MANIFESTO §自主權邊界 過濾,不是無條件執行

完整 SOP:MAINTAINER-PIPELINE.md

Repository

frank890417/taiwan-md

Path

.claude/skills/twmd-maintainer/SKILL.md

Last updated
First committed

Is this your skill?

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.