iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
AI 自動化

我以為我保留了五道閘門系列 第 10

Day 10|一則條目,四小時內改了 11 次

  • 分享至 

  • xImage
  •  

模組二|選題與素材庫(Day 6–11)

前四天講素材庫的結構。今天講一則具體的條目,因為它的 commit 序列把一個結構問題完整暴露出來了。

這則條目總共被 12 個 commit 修改,其中 11 筆集中在 4 小時 3 分鐘內

第二名是 3 筆。它是離群值,而離群值通常最誠實。

完整的演進

把那 11 筆按時間排開,長這樣:

建立條目
→ 同步到第二份資料檔
→ 補立法分析
→ 補爭議紀錄
→ 補三重風險
→ 補人物檔案
→ 補查核圖譜
→ 補社群佐證
→ 補當事機構的否認聲明
→ 回頭把分析段措辭改成跟查核段一致   ← 這一筆
→ 再補查核機構的爭議說明

前九筆是「補」,第十筆不是。

第十筆才是重點

我換掉一邊的砝碼,另一邊沒動,而天平歪了也不會響

那一筆的訊息大意是:同步分析段的措辭,使其與查核段一致。

翻譯成白話:我在分析段裡寫的東西,跟我在查核段裡標的可信度對不上了。

這件事怎麼發生的很好理解。分析段是早期寫的,那時候我對這件事的理解是 A。後面查核做下去,發現某些細節其實還沒證實,於是查核段被改成「待證實」。

而分析段沒跟著改。 它還停在 A,用著肯定的語氣,講一件查核段已經標成不確定的事。

這正是 Day 8 那條倫理要防的東西(未定的事實被講成定論),而它不是被講錯,是被兩個欄位的時間差製造出來的。

schema 保證欄位存在,不保證欄位之間說的是同一件事

為什麼稽核抓不到

Day 8 那六條門檻,這則條目全部通過:查核段非空、有已證實層、有待證實層、來源兩筆以上、問答齊全。

它驗的是每個欄位自己的形狀,驗不了欄位之間的一致性。

而要驗欄位之間一致,需要的是「理解兩段文字說的是不是同一件事」,那不是 grep 做得到的,那需要一個模型。

這是驗證器的第一類盲區:跨欄位。 Day 16 會講第二類(跨檔案),兩者的性質一樣:確定性檢查只能驗它看得到的那個單位,超出那個單位就沒有了。

它沒有收斂

我一直往同一個紙箱裡塞,而它從來沒有蓋子

11 筆之後,隔兩天又補了第 12 筆。

而第 12 筆還是「補」,不是「修正」,不是「定稿」。

這則條目沒有一個「完成」的時刻。 它是被寫到我不想再寫為止。

這是「邊查邊寫」的典型痕跡。正確的做法應該是查完再寫:先把可查的都查掉,把可信度定下來,再一次寫完。

我當時為什麼沒有?因為查跟寫用的是同一個介面。條目就是那個 JSON 物件,我一邊查一邊往裡面填,填到哪裡算哪裡。沒有一個地方讓我把「還在查」跟「已經定稿」分開。

Day 15 會講單集的狀態機:那個東西有明確的階段。而條目層級沒有。

條目長度也在說同一件事

全庫的條目長度分布很極端:

字元數
平均 7,523
中位數 6,104
最長 47,577
最短 1,465

最長的是平均的 6.3 倍,是最短的 32 倍。

而規則書上寫著「一事一條目」。

那則 47,577 字元的條目顯然不是一件事。它是好幾件事被同一個新聞事件串起來,然後全部塞進同一個物件,跟今天這則 11 次補充的條目是同一個病:沒有一個機制告訴我「這則已經太大了,該拆」。

還有一筆是同步到第二份檔案

第二筆 commit 是「同步到第二份資料檔」。

也就是說:同一份內容存在兩個 JSON 檔裡,要手動同步。

這件事的成本不只是多做一次。它的真正成本是:當我在第一份檔案上補了 10 次,第二份檔案還停在第 1 次。那 10 筆補充有沒有同步過去?我不知道。commit 訊息裡沒有再出現「同步」。

資料重複的成本不是儲存空間,是「兩份會分岔」,而且分岔不會發出任何聲音。

這件事的正面

我不想把這一篇寫成全盤否定,因為那 11 筆補充本身是對的。

那則條目最後有立法分析、有爭議紀錄、有當事方的否認聲明、有查核機構的說明。它是一則被查得很仔細的條目。

補到第九筆才想起「當事機構有沒有回應」,這在時間軸上很難看,但在成品上它是對的,比很多只有單方說法的條目都好。

問題不在於補了 11 次,在於沒有一個機制讓我在第 3 次就知道還要補幾次。

代價

這一篇最實際的代價是:我到現在還是邊查邊寫。

要修需要的東西也不複雜:條目加一個狀態欄位(草稿/查核中/定稿),定稿之前不進選題池。大概二十行的事。

我沒做。理由跟 Day 7、Day 8 一樣:它的收益是延後的。 當下多填一個狀態欄位,好處要到下次選題撈到半成品的時候才會體現,而那時候我已經忘記今天這件事了。

第二個代價:那則最長的條目我沒有拆。 我知道它應該拆,但拆一則已經被引用過的條目意味著要改 id 對應:rundown 裡是用 id 引用的。沒拆的原因是拆的成本比留著高,而這就是技術債的定義。

帶走什麼

同一筆資料的不同欄位之間會分岔,而且不會有任何錯誤訊息

這件事在任何有「摘要欄位 + 詳細欄位」「狀態欄位 + 說明欄位」的資料結構裡都會發生。修改總是從一個欄位開始,然後另一個欄位留在原地。

可以做的兩件事:

  1. 把會互相矛盾的欄位放在同一次修改的視野裡,例如編輯介面上並排、或在 review 時強制一起看
  2. 如果有一個欄位是「權威」的(例如可信度標記),讓其他欄位的措辭有辦法被對照它檢查,這個我還沒做到,但至少知道方向

第二條,關於什麼時候該停:

如果一筆資料的修改次數是離群值,先別看它改了什麼,先問「它有沒有一個完成的定義」

我那則條目改了 12 次,不是因為它特別複雜,是因為它沒有終點。而沒有終點的東西,會一直被改到人放棄為止,那是一個很糟的停止條件。

明天講一顆做了但是壞的按鈕,以及它同時造成的第二個後果。


上一篇
Day 9|第一題不放最重要的,放最不需要背景知識的
下一篇
Day 11|那顆「生成腳本」的按鈕,做了,但它是壞的
系列文
我以為我保留了五道閘門12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言