Verification · 驗證政策
數字由自動閘負責,唔靠人手核對
Numbers are checked by automated gates, not by hand
呢一頁係本站嘅硬規矩:唔會要求營運者逐項人手核對數字,亦唔會用「我睇過」當成保證。 每一類對外數字都要有一支可以重推嘅自動檢查;冇自動檢查嘅資料,就唔會當成統計數字發布。
四條原則
每一個對外數字、序列同名單,都要有一支自動閘可以重推:生成檔必須同已登記來源一致,唔一致即紅。
Every published figure, series and list has an automated gate that can re-derive it: a generated file must match its registered source, or the build fails.
營運者唔需要、亦唔會被要求逐項人手核對。人手只負責選來源、寫背景同判斷範圍;數字對錯由閘負責。
The operator is never asked to check items by hand. Humans choose sources, write background and judge scope; the gates are responsible for whether the numbers match.
官方只有 PDF/新聞稿、冇機器可讀版本嘅資料,唔會當成統計數字發布;只會寫入「已知缺口」,並講明未收錄。
Where an official source exists only as a PDF or press release with no machine-readable version, it is not published as a statistic; it is recorded as a known gap instead.
編輯文字(背景、解讀、限制)同數字分開:改文字唔會改到任何數字;數字只可以經來源登記同生成器更新。
Editorial prose (background, interpretation, limitations) is kept apart from figures: editing prose cannot change a number, and numbers only change through registered sources and generators.
逐層自動檢查(22 類/26 支指令)
下表每一層都係實際跑得嘅指令;任何一項失敗,建置就唔會通過。指令只喺「機器版」顯示, 人讀版唔會見到建置細節。
| 層 | 檢查啲咩 | 指令 |
|---|---|---|
| 數字來源登記 Figures and sources | 每個數字都要有已登記來源同 asOf;每條數字有自己嘅永久網址,來源對唔上即紅。 Every figure must carry a registered source and a reference date; each has its own permanent URL, and a missing source fails the gate. | npm run audit:sourcesnpm run audit:fact-routes |
| 官方統計角度 Official statistics angles | 登記冊、官方 API 快取同生成檔三邊逐字對比;每個角度只准一條年度序列。 The registry, the cached official API response and the generated file are compared verbatim; each angle is exactly one annual series. | npm run audit:official-stats |
| 時間序列結構 Time series structure | 每條序列都有來源、抓取時間同點算規則;年度值只可由官方月度/逐日數據按寫明嘅規則匯總。 Each series carries its source, fetch time and aggregation rule; annual values may only be derived from official monthly or daily data under the stated rule. | npm run check:series |
| 數據新鮮度 Data freshness | 每條數字按官方發布頻率計齡;超過容許上限即標示「可能已過期」並令檢查失敗。 Every figure is aged against its official publication cadence; anything beyond the tolerance is flagged as possibly stale and fails the check. | npm run audit:data-freshness |
| 口徑對照 Measurement bases | 同名數字有兩套官方口徑時,逐組講明邊個唔可以同邊個相加/互換;口徑層唔准出現手寫數字。 Where one name has two official bases, each group states what may not be added or interchanged; the calibre layer may not contain hand-written numbers. | npm run audit:calibres |
| 核心資料結構 Core schema | id/key 唯一、無簡體字漏入正文、文章註記同來源仍然對得上。 IDs and keys are unique, no simplified characters leak into copy, and article notes still match their registered sources. | node scripts/audit-core-schema.mjs |
| 地圖幾何 Map geometry | 十八區地圖由官方邊界 cache 簡化生成;同 cache 逐字對比,唔准手改。 The district map is generated by simplifying the official boundary cache; it must match the cache byte for byte. | npm run check:district-map |
| 交通時間軸 Transport timeline | 時間軸只由志錄已核交通條目派生;條目數、時期、錨點同連結由志錄獨立重算。 The timeline is derived only from verified transport entries in the chronicle; counts, periods, anchors and links are re-derived independently. | npm run audit:transport-timeline |
| 文學志錄層 Literature chronicle layer | 文學頁只由志錄已核條目派生;條目數、時期、文類關鍵詞同頁面錨點由志錄獨立重算,並擋「本站自行排名」。 Literature pages are derived only from verified chronicle entries; counts, periods, genre keywords and page anchors are re-derived independently, and self-ranking is rejected. | npm run audit:literature |
| 公共屋邨名錄 Public housing estate register | 屋邨名錄只由房屋委員會開放數據派生;生成檔同快取逐字比對、每條有官方欄位,冇機讀名錄嘅居屋只列缺口。 The estate register is derived only from Housing Authority open data; the generated file is compared verbatim with the cache, every row carries official fields, and HOS courts (no machine-readable list) are recorded as gaps. | npm run check:housing-estate-directory |
| 公眾泳池名錄 Public swimming pool register | 泳池名錄只由康文署開放數據派生;生成檔同快取逐字比對,官方最後更新日照實顯示,唔會自行寫開放時間。 The pool register is derived only from LCSD open data; the generated file is compared verbatim with the cache, the official last-update date is shown, and opening hours are never invented. | npm run check:swimming-pools |
| 燒烤場名錄 Barbecue site register | 燒烤場名錄只由漁護署同康文署開放數據派生;生成檔同快取逐字比對,唔會自行寫「今日開唔開」。 The barbecue register is derived only from AFCD and LCSD open data; the generated file is compared verbatim with the cache, and the site never reports whether a venue is open today. | npm run check:barbecue-sites |
| CSDI 名錄(建築/遠足/管制站) CSDI registers (graded buildings / trails / control points) | 三份名錄只由 CSDI 官方圖層派生;生成檔同快取逐字比對、id 唯一、接線同頁面 anchor 全部重推。 Three registers are derived only from official CSDI layers; generated files are compared verbatim with caches, ids are unique, and wiring plus page anchors are re-derived. | npm run check:graded-buildingsnpm run check:hiking-trailsnpm run check:control-points |
| 戶外名錄(泳灘/露營地) Outdoor registers (beaches / campsites) | 泳灘同露營地名錄只由官方開放數據派生;生成檔同快取逐字比對,水質只抄本週公布、營位數目照官方。 Beach and campsite registers are derived from official open data only; generated files are compared verbatim with caches, water quality copies the weekly publication, and tent spaces follow the official CSV. | npm run check:beachesnpm run check:campsites |
| 公共交通路線清冊 Public transport route register | 路線清冊只由運輸署官方 XML 派生;生成檔同快取逐字比對,官方資料修正截止日同逐條「官方最後更新日」照實顯示,官方代碼欄位只照印原字(冇機讀代碼表),班次同到站時間一律唔會出現。 The route register is derived only from the Transport Department XML files; the generated file is compared verbatim with the cache, the official data revision cut-off and each route’s official last-update date are shown as published, official code fields are printed verbatim (no machine-readable code table), and frequencies or arrival times never appear. | npm run check:transport-routes |
| 十八區分佈指標 District distribution metrics | /districts 熱力表同填色地圖共用一份分區計數;每個指標都要可以由官方名錄獨立重推,重推唔到區份嘅條目要照實報數(唔准靜靜漏),頁面填色圖數要等於指標數。 The district heatmap table and choropleth maps share one set of district counts; every metric must be independently re-derivable from the official registers, rows whose district cannot be derived are reported rather than dropped silently, and the number of choropleth maps must equal the number of metrics. | npm run audit:district-metrics |
| 薄頁分層 Thin-page tiers | 獨有內容不足嘅頁唔會主動提交 sitemap;薄頁名單要有記錄同理由。 Pages without enough unique content are not submitted in the sitemap; the thin list must carry a recorded reason. | npm run audit:thin |
| Sitemap 完整性 Sitemap integrity | 每個可索引頁都要出現,冇多餘 URL、冇未來日期、冇重複 loc。 Every indexable page appears, with no extra URLs, no future dates and no duplicate locations. | npm run audit:sitemap |
| 站內連結 Internal links | 每一條站內連結都要指向真存在嘅頁或檔案,唔准有死連結。 Every internal link must point at a page or file that really exists; no dead links. | npm run audit:internal-links |
| 頁面洩漏 Rendered-output leaks | 逐頁掃渲染出嚟嘅文字同 JSON-LD,唔准漏出內部值(例如未定義欄位、非數字值、或者物件被直接內插)或 Markdown 殘留。 Rendered text and JSON-LD are scanned page by page; internal placeholders, non-numeric values, directly interpolated objects and leftover Markdown are not allowed. | npm run audit:html-leaks |
| 結構化資料 Structured data | 每個 Dataset 都要有 name/description/creator,數值要包成 PropertyValue,日期要符合 ISO 8601。 Every Dataset needs a name, description and creator; values must be wrapped as PropertyValue and dates must be ISO 8601. | npm run audit:structured-data |
| 機器出口 Machine endpoints | 端點登記冊、OpenAPI 同各出口一致;機器出口唔准漏內部值(未定義欄位、非數字值或物件)。 The endpoint registry, OpenAPI document and every machine surface agree; machine surfaces must not leak internal values. | npm run audit:ai-endpoints |
唔會派人手核對工作
- 任何數字、序列、名單、年份:一律由自動閘重推。本站唔會要求營運者逐條核對, 亦唔會用「已人手核對」當成保證。
- 需要人手核讀嘅層已凍結(古籍掃描本內容、人物傳記):唔再新增條目; 現有條目維持標明「人手核讀」同 provenance,唔會擴張。
- 未自動核實嘅嘢就係缺口:例如天星小輪 1888 年成立/1898 年改組年份, 官方一手網上來源對唔上,本站維持留空,唔會靠人手補、亦唔會靠推定補。
咩嘢唔會當統計數字發布
- 官方只有 PDF/新聞稿、冇機器可讀版本嘅資料:唔會抄成一個數,只會寫入已知缺口,講明未收錄同原因。
- 估算同策展數字(例如「建議停留幾多分鐘」):一律唔收;站規係每個數字要有
sourceId同asOf。 - 外部開放資料層(例如 OSM/Wikidata 場地座標):會清楚標明「未經官方核實」, 而且唔會混入官方統計數字。
- 編輯文字(背景、解讀、限制):同數字分開;改文字唔會改到任何數字。
呢頁唔會證明啲咩
自動閘只證明「同一份輸入會得出同一結果」,唔證明資料來源本身無誤;亦唔會令本站變成官方機構。 官方數字仍然以部門公布為準,本站只負責照錄同標明出處。
你唔同意嘅話可以點做
覺得某個數字或者某句判斷有問題,請用頁尾聯絡方法提出,並附上官方出處; 一經核實會記入 覆蓋範圍(包括影響範圍同修正日期),唔會靜靜改咗就算。
更新方式
檢查清單同數字由自動工作更新,唔靠人手逐項核對;官方一改,下一次抓取就會反映,並會經 sitemap 嘅 lastmod 顯示。 呢一頁嘅說明文字唔會跟數字一齊自動改 —— 文字改動要人手寫,避免「機器自己講自己準」。
呢一頁同其他頁嘅分工
數字本身喺各自嘅名錄/年表頁(例如交通、歷史建築、遠足徑);呢一頁只講「點保證數字唔會亂」。 出錯嘅紀錄集中記喺 覆蓋範圍,唔會四散。
你可以自己核對
- /api/v1/gaps.json:本站刻意唔會當統計數字發布嘅資料(逐項原因同官方入口)。
- /api/v1/series.json:全部序列、來源、抓取日同計算規則(可用
?id=、?from=、?to=)。 - 每條序列嘅 CSV:
/data/series/<id>.csv,檔頭列明來源同規則。 - 點樣讀走勢:指數同金額、名義同實質、基期、年均同年底嘅讀法。
- 志錄點用:條目編號、頁碼、原文時間標籤同引用錨點。
- 路線清冊點用:官方代碼、車費同時點嘅讀法。
- 法定古蹟點查:宣布年份、位置同評級嘅用法。
- 已評級建築點查:一級/二級/三級嘅範圍同限制。
- 引用本站資料:引用格式、要附咩資料、常見錯誤。
- /api/v1/index.json:端點總覽同部署版本(
build.sha)。 - /openapi.json:OpenAPI 3.1,可直接註冊工具。
- /coverage:收咗咩、未收咩、每層嘅自動檢查結果。
- /licence:結構化資料授權同範圍。