Community程式設計與開發github.com

公開數據發布前檢查清單

在發布任何基於公開數據(官方統計、公共合同、預算、議會記錄)得出的數字、圖表或比較結果前,必須執行的檢查清單。能捕捉年份不符、單位錯誤、合約誤認為支出、樣本過小、重複實體與授權問題。每當回答或產品引用開放數據時使用。

公開數據發布前檢查清單 是什麼?

這是一個專為處理公開數據的AI代理(如Claude Code、Cursor、Codex)設計的專業技能,用於在發布基於官方統計、公共合同、預算或議會記錄的數字、圖表或比較結果前,執行嚴格的品質檢查。其核心價值在於預防常見的數據誤讀錯誤——這些錯誤通常不是API調用層面,而是數字含義的解讀錯誤。技能支援所有使用公開數據的平台,指導代理逐步檢查:參考期間、單位與規模、數字衡量內容、覆蓋範圍與缺口、小數字與離群值、實體與重複項、公平比較,以及授權與歸屬。每個檢查規則均來自真實案例,並提供具體的葡萄牙數據示例,但原則適用於任何國家。技能要求代理在輸出時附上來源、參考期間、提取日期、方法說明與注意事項,確保透明且可歸責。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jorgesousa/apis-publicas-pt/tree/main/skills/verificar-dados-publicos

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

發布公開數據前請先檢查

公開數據容易取得,也容易誤讀。大多數錯誤不在 API 呼叫本身,而在於數字代表什麼意義。在給出答案、繪製圖表或發布頁面之前,請執行這份檢查清單,並將發現寫在輸出中(註腳、注意聲明、"我們如何計算"說明)。切勿為了讓結果看起來更乾淨而隱藏注意事項。

以下每一條規則都來自真實案例。範例使用葡萄牙數據,但檢查原則適用於任何國家。

如何使用

  1. 用一句話寫下你的主張(例如:「阿魯卡每位居民在公共合同上的花費為 845 歐元」)。
  2. 依序進行八項檢查。針對每一項,確認通過或加入注意事項。
  3. 輸出結尾包含:來源、參考期間、提取日期、方法(一句話)、以及所有注意事項。

八項檢查

1. 參考期間

  • 每個數字都要有明確的年份(或日期範圍)。「最新」不是一個年份。
  • 合併多個來源時,比較它們的年份。若年份不同,請在圖表上直接標明,而不僅是在註腳中提及。
  • 檢查最新期間是否真的有數值:有些 API 會回傳空的最近一年(例如 Eurostat 的 lastTimePeriod=1 回傳 value: {}),而 INE 會將近期年份標記為「Dado preliminar」(初步數據)。
  • 注意資料集使用的日期。Portal BASE 檔案有一個「year」欄位,是合約年份;而入口網站卻說是發布日期;選擇其中一個並明確說明。
  • 進行中的年份需要到處加上標籤(例如「2026 年至 10 月 4 日」),且不得未經說明就與完整年份比較。

範例:合約是 2025 年的,最新的 INE 人口是 2023 年的 → "€/居民 = 2025 年合約 ÷ 2023 年人口"。

2. 單位與規模

  • 在讀取數據之前,先閱讀元數據。INE 的市政財政指標單位是千歐元(10 的冪次 = 3):23754 代表 2380 萬歐元,而不是 23,754 歐元。
  • 檢查貨幣、名目與實質(通貨膨脹)、現金基礎與權責發生基礎,以及「%」是代表佔比還是變化。
  • 人均數字需要相同區域且理想情況下同年份的人口數。

3. 數字衡量的是什麼

  • 精準命名概念。公共合約不等於總支出:它們僅涵蓋已簽約(且已發布)的項目,不包括薪資、轉移支付或所有支出。市政收入和支出來自預算執行(DGAL,透過 INE)。
  • 合約價值 ≠ 實際支付金額。在 Portal BASE 中,「effective price」(實際價格)欄位常為 0 或缺失——不要將其視為真實數字。
  • 估計值、預測值和 AI 生成的逐字稿都不是官方記錄。請說明是哪一種。

4. 覆蓋範圍與缺口

  • 檢查是否有遺漏的實體和年份(例如某個市鎮某年缺少預算數據;學校數據在學生人數少於 15-20 人時被隱藏)。
  • 被隱藏的值("*"、"-99.0"、"dado não disponível")是缺失,絕非零。在計算平均值時應排除它們,並說明排除了多少筆。
  • 若資料集已廢棄(例如 BASE OCDS feed,自 2020 年起凍結;api.openar.pt API,已於 2026 年封存),請勿將其與即時數據混合使用。

5. 小數字與離群值

  • 一個大型項目可能主導總額:在阿魯卡,一個項目(Parque da Saúde)就佔了 2025 年合約的 35%。每當單一項目超過總額約 20% 時,請說明。
  • 小人口數會使人均數字波動劇烈。小型與大型地區一起排名時,必須附帶注意事項,或按規模分組。
  • 在存在不確定性或樣本數時予以顯示(例如學生人數較少的「觀察值 vs 預期值」學校指標)。

6. 實體與重複項

  • 同一供應商、學校或機構可能以不同名稱出現 → 使用識別碼(稅號 NIF/NIPC、DGEEC 學校代碼、INE 地理代碼)進行比對,而非名稱。
  • 檢查不同檔案之間是否有重複項(年度檔案有重疊、同一合約後來修正)。
  • 分類代碼可能不可靠(合約中的 CPV 代碼):將其視為線索,進行驗證,並回報仍處於「審查中」的比例。
  • 切勿發布私人的個人數據。遮蔽個人稅號;議員和在公共角色中行事的官員則可以。

7. 公平比較

  • 比較同類事物:相同期間、相同定義、相同單位、相似規模或背景。
  • 在可能的情況下,優先使用經過背景調整的指標,而非原始排名(例如學校的「針對類似背景的觀察值 vs 預期值」)。
  • 將模式呈現為模式,而非指控(「成績高於預期背景」,而非「X 學校成績膨脹」)。

8. 授權與歸屬

  • 記錄每個資料集或資源的授權條款;在 dados.gov.pt 上,同一個資料集可能以不同授權條款出現。
  • 典型情況:Portal BASE other-pd(公共領域);INE cc-by(引用 INE + 指標代碼);IPMA 禁止商業使用;Eurostat 和 ECB 免費且包含商業使用,需署名;Assembleia da República 要求署名。
  • 若授權條款為 notspecified 或不明確,請說明,並在確認前不要將數據用於商業產品。

輸出範本

每個數據答案或頁面結尾,請加上如下區塊:

來源:Portal BASE/IMPIC via dados.gov.pt(2025 年合約,公共領域)· INE,常住人口 2023(指標 0008273,CC BY)
提取日期:2026-11-02
方法:2025 年合約總價值 ÷ 2023 年常住人口
注意事項:參考年份不同;合約 ≠ 總支出;一個項目佔阿魯卡總額的 35%

快速檢查(時間有限時)

年份?單位?它究竟衡量什麼?是否有遺漏?是否有單一項目主導?同一實體是否被重複計算?比較是否公平?授權條款?——如果任何一個答案「不確定」,請在輸出中說明。

相關技能