大二的小兒子目前在當工讀生,工讀的內容是做政府標案的開放資料整理。我看他每天在處理一堆雜亂的 CSV 檔案,並在 QGIS 軟體中手動轉檔、製作 Shapefile,雖然他對 QGIS 已經有基礎,但我總覺得他在資料處理的實踐上「缺乏章法」。

資料整理的本質是結構化思維。如果只會用試算表或手動拉 UI,一旦資料量變大、欄位變多,就會陷入版本混亂與髒資料的泥淖。我認為他非常需要建立「資料庫」的觀念。

他對 Agentic AI 很熟,我答應他寫一本簡單的實戰手冊來幫他入門。於是,我與我的 AI 助手 Antigravity 展開了一場人機協作的寫書之旅。

以下是我們這次幫工讀生量身打造「空間資料庫與 AI 協作手冊」的決策瞬間與心法分享:

## 緣起與痛點:為什麼 Excel 和 QGIS 手動操作不是長久之計?#

在第一線整理開放資料時,最常遇到的痛點有兩個:

  1. 髒資料與版本災難:CSV 檔案沒有 Schema 約束,常會混入錯字或格式錯誤。改一次資料就要手動存成 v1_fixed.csvv2_final.csv,最後連自己都搞不清楚哪一份才是最新的。
  2. 無法自動化的重複勞動:在 QGIS 屬性表裡一筆一筆修改,或是手動做投影轉換,如果遇到 100 個檔案要處理,工讀生的時間就會被無意義的點選動作榨乾。

我給他的核心解法是:空間資料庫 (Spatial Database) + 命令行工具 (CLI) + AI 協作

## 設計思維:將「資料庫概念」與「GIS CLI」實戰對合#

在手冊的架構設計上,我們拋棄了枯燥的教科書理論,完全以他「增補修正開放資料」與「GIS 操作」的日常工作為場景:

  • 核心概念厚植:不直接塞程式碼,而是先講 Why。解釋什麼是 Schema(資料的建築藍圖),什麼時候該果斷從 CSV 轉到 SQLite,以及如何用主鍵(Primary Key)與外鍵(Foreign Key)在第一線防禦髒資料。
  • 空間幾何的 SQL 化:他對 QGIS 的點線面有概念。我們直接帶入 SpatiaLite 空間資料庫,用 ST_Buffer (緩衝區) 與 ST_Contains (點在面內) 這些空間 SQL 函數,讓他理解不需要寫複雜的 Python,一行 SQL 就能完成空間分析。
  • GIS CLI 的降維打擊 (GDAL/OGR):這是整本書的精華。我們告訴他「不要每次都用 QGIS UI 手動轉檔」,並引入 OGR 命令行工具。當他學會了使用 ogr2ogr 進行投影轉換 (TWD97 轉 WGS84) 與幾何拓撲修復 (-makevalid),他就拿到了讓 AI Agent 幫他自動化跑 GIS 流程的門票。

## 人機協作:Sovereign Writing 兩層式目錄設計#

在寫這本書時,我調用了專案中的 sovereign-writing-navigator 寫作技能,實施了**「意圖驅動兩層式目錄 (Intent-Driven ToC)」**:

  1. 寫作意圖 (Intent) 信封:每一章節標題下方,強制標註這節的核心價值與戰略意圖。這確保了內容方向不會偏離「實戰入門」的本質。
  2. 實體地基 (Grounding Base) 信封:明確這節的論點對應到哪一份政府開放資料範例,或是哪一個 GIS 指令。
  3. 成果產出:確認大綱後,AI 助手 Antigravity 迅速產出了 1 到 6 章的詳細內容,並整合成一本完整的手冊檔 SpatialDB_AI_Primer_Full_Book.md,方便他未來隨時進行全文索引與持續學習。

哈爸心得: 身為爸爸,教給孩子最棒的禮物不是直接幫他把工作做完,而是把「心法」與「自動化工具」交給他。當大二的孩子學會把資料庫當成 AI Agent 的結構化大腦,並學會用 CLI 去驅動 GIS 運算,他不僅能提早下班,更建立了程式人行事有章法的核心素養。


AI 協作聲明: 本文由筆者提供為小兒寫書的起點初衷與實戰想法,由 AI 助手 Antigravity 彙整架構與修辭。結合了資料庫設計的實戰特點與哈爸筆記的敘事風格,展現人機協作下的個人 AI 應用與技術傳承成果。