shunzz.com

Build with AI. Ship for real.

規格驅動 × AI Agent × 全端交付。我不只用 AI 寫 code——我管理 AI 的工作流程,也為 AI 造工具。

01

關於我

文組轉軟體工程師、JLPT N1 的 AI-Native Software Engineer。用「規格驅動 + AI Agent」的工作流獨立交付企業級系統(Text-to-SQL、SRE 判讀 agent、任務排程器)、ML 模型與雲端基礎設施,也用同一套流程在幾天內上線自己的產品;寫 Claude Skills、建 MCP Gateway、對內推廣 AI 開發方法論。相信 AI 時代的工程師價值在於判斷與流程設計,而不是打字速度。

讀完整的故事

第一幕:非典型起點

文藻日文系畢業、JLPT N1。職涯從語言開始,經資策會半年 AI/雲端養成班轉入工程,先在新創做 AI 應用(內容轉影片平台、LINE avatar 與語音克隆),現於零售集團 IT 子公司擔任 Senior Systems Analyst,橫跨 Data Engineering、DevOps、Cloud Architecture。

第二幕:AI 改變了我做事的方式

過去一年,我把開發流程改成「規格驅動 + AI Agent 執行」:brainstorm → design spec → implementation plan → TDD,AI 負責執行、我負責審查與決策。實戰中再長出自己的版本——設計期只留文件、定案後才授權 subagent 實作;自製 dispatch skill 把任務分級派給最便宜夠用的模型;共用 AGENTS.md 同時駕馭兩套 agent;自動化 AI code review 迴圈。用這套流程,我獨立交付了企業級配貨平台(2.5 個月)、CDP 的 AI 服務與任務排程器(一天 88 commits、1,190 個單元測試)、把 Text-to-SQL 從 PoC 做到正式服務,也在 3 天內做出公司的 MCP Gateway。下班後同一套流程:拉麵地圖第一天上線、日文打字練習 3 個工作日 470 個測試。每個數字都在 git 歷史裡。

第三幕:從使用者變成建設者

我不只使用 AI 工具——我把團隊 domain 知識封裝成含 evals 的 Claude Skills、建了讓全公司 AI 工具安全存取內部 API 的 gateway、寫了讓自己看得見 context 用量與費用的 Claude Code mod,也替 AI agent 畫邊界:提案制加自動測試門檻、零 shell 零雲端權限、不代使用者寫入第三方平台。還學會用數據否決升級:一次 65 筆的 eval 證明瓶頸在規則不在模型,於是改做人工前例覆寫,判讀準確率從 12% 到 80%。下一步:做出能真正影響世界的產品。

02

我怎麼工作

01

用 AI 交付產品

  • 企業級零售配貨平台,2.5 個月獨立交付;CDP 任務排程器 1,190 個單元測試
  • 拉麵地圖 menmap 第一天上線、日文打字練習 pachipachi 3 個工作日 470 個測試
  • AI 求職助手 Career Agent,3 天上線、有真實使用者
02

管理 AI 的方法論

  • 規格驅動:brainstorm → spec → plan → TDD;設計期只留文件,定案後才授權 subagent 實作
  • dispatch skill 分級派工:haiku 找、sonnet 做規格清楚的、opus 做併發與跨檔;7 個 worktree agent 平行、同日合併
  • 共用 AGENTS.md 駕馭 Claude Code 與 Copilot CLI,自動化 AI code review 迴圈直到收斂
03

為 AI 造工具

  • 自建 MCP Gateway:內部 API 統一封裝為 MCP tools,input/output 都進稽核
  • 把 domain 知識寫成含 evals 的 Claude Skills;自製 Claude Code mod 即時看 context 與費用
  • 給 AI agent 畫邊界:提案制 + 自動測試門檻、零 shell 零雲端權限、不代使用者寫入第三方平台

03

精選專案

Text-to-SQL

9.2 億列交易資料的自然語言查詢:理解 → 程式守門 → 選項式反問 → 生 SQL → 驗證與 EXPLAIN 閘門 → 程式算統計、LLM 只負責解讀

  • FastAPI
  • sqlglot
  • Azure Synapse
  • Claude
  • Azure OpenAI
  • DuckDB
  • 10/10gold SQL
  • 23/23行為測試
  • 0捏造洞察
  • 650s → 338s資料探測

從 PoC 到正式服務:sqlglot 方言包同時支援 T-SQL 與 PostgreSQL,語意模型每條事實帶 confidence 與 evidence,10 份 ADR。守門原則「轉不成 SQL 的條件一律反問、禁止靜默丟棄」。得知其他系統也要接入後,定位改成「執行引擎 + 13 階段導入流程」本身就是產品。

麵咩撲 menmap

雙北拉麵地圖:每天自動採集 Google Maps → 營業中/捷運/種類篩選 → 「今天吃哪間」骰子 → 麵史與麵友

  • Python
  • React
  • MapLibre
  • Hono
  • Cloudflare D1
  • Claude
  • 第 1 天上線
  • 130commits / 15 天
  • 500+家拉麵店
  • $0月費

從估價到放棄 Google Places API 只花 14 分鐘,改成爬蟲在家裡跑、雲端只讀;實測資料中心 IP 會被降級成精簡版,所以採集機留在家。LLM 分類 491 家只花 US$2.5。Worker 直出 SEO 頁、自己寫 Google OAuth,月費 $0。

ぱちぱち pachipachi

日文打字練習:羅馬字輸入逐鍵判定假名,五十音到 N1 單字短句、計時賽排行榜、貼自己的歌詞配 YouTube 練

  • SvelteKit
  • Svelte 5
  • TypeScript
  • Cloudflare D1
  • kuromoji
  • 3工作日
  • 470測試
  • 26K行程式
  • 7平行 agent

7 個 worktree subagent 平行開發、同日合併。伺服器端拿前端 log 重算分數、6 條 anticheat 規則,不信前端數字。歌詞版權先查 JASRAC 與著作權法再設計:共享時間軸只存雜湊、通知取下、三振停權。

落腳筆記 Loka Note

找房決策工具:輸入地址 → 通勤時間(公車/捷運 + 機車/汽車路網)→ 租金與買賣行情 → 房貸與每月成本 → 災害潛勢、治安、生活機能 → 收藏與比較

  • React 19
  • TanStack
  • Hono
  • Cloudflare D1
  • Drizzle
  • OpenStreetMap
  • 10開發日
  • 138commits
  • 23K行 TS

原本想抓房源網站,研究公平會處分案例後判斷法律風險太高,改成房源由使用者自帶,產品只賣建在可商用開放資料上的分析層。通勤用 OSM 路網自己跑 Dijkstra;前後端共用 Zod schema,Vitest 同時跑 workerd 與 Node 兩種 runtime。

MCP Gateway

把企業內部 API 統一封裝成 MCP tools,讓各家 AI coding agent 經單一入口安全存取

  • Python
  • MCP SDK
  • Starlette
  • SQLAlchemy
  • pytest
  • 3 天v1 上線
  • 20+測試檔
  • 8種 AI client

設計重點:per-client 授權、SSRF 防護、上游憑證加密、稽核記錄含敏感參數遮罩,input 與 output 都留痕。工具目錄存 DB,審核後即時上線、免改碼免重啟;後台一頁生成八種 AI client 的連線設定。

企業級交付

零售配貨平台、CDP 批次平台演進與任務排程器、效能根因追查、需求預測 ML、Azure IaC

  • FastAPI
  • React 19
  • .NET
  • Azure Synapse
  • Azure Data Factory
  • Bicep
  • LightGBM
  • 2.5 月配貨平台
  • 559s → 0.4s效能根因
  • 1,190排程器單元測試
  • 1,100+檔案

在零售集團 IT 子公司以 AI 協作獨立交付:2.5 個月的配貨平台(FastAPI + React 19);把 ADF 輪詢改成 queue 再改成單表排程器並主導 prod 切換;量測先於改碼的三次效能根因追查,builder 零修改;LightGBM/CatBoost 配量模型;Bicep IaC 與 Portal 實況對齊。

04

足跡

GitHub
m124578n
LinkedIn
john19980215
Threads
@m23568n
上線產品
menmap · pachipachi · Career Agent · 酸脆 · 本站,全部 Cloudflare、月費 $0
語言
中文 · 英文 · 日文(JLPT N1)