tclaw.tw — 張桐嘉律師個人事務所網站
公開網站,GitHub Pages 自動部署。內容為法律知識科普,無客戶資料。
技術棧
- Jekyll 3.10.0(綁定 github-pages gem 232,與 GH Pages 環境一致)
- Ruby 3.1(CI workflow 指定)
- Markdown:kramdown 2.4.0(GFM input、auto_ids、rouge 3.30.0 高亮)
- Plugins:僅
jekyll-feed、jekyll-sitemap(github-pages 限制,不可加自訂 plugin) - 無 npm/yarn,純 Ruby Jekyll
- Gemfile.lock 在 .gitignore(GH Pages 環境自行解析鎖版本)
目錄
_posts/— 文章源檔_layouts/—article.html、default.html、page.html_includes/—nav.html、footer.html- 根層靜態頁:
articles.html、search.html(自製搜尋)、disclaimer.md、privacy.md、404.html search-index.json— 搜尋索引
文章規格
檔名
_posts/YYYY-MM-DD-{slug}-legal-guide.md
- slug:全小寫英文 + 連字號;統一以
-legal-guide.md結尾 - 檔名 slug = URL slug(permalink
/articles/:title/,:title取自檔名)
YAML front matter(必要欄位)
---
title: "中文標題(含 SEO 鈎子,例如疑問句、數字、地名)"
description: "100 字以內;痛點 + 解法,首句能單獨上 SERP(中文全形約 40 字後易被截,關鍵資訊放前面)"
date: YYYY-MM-DD
category: 從下方既有 6 種挑選
---
category 既有清單(2026-06-15 統計,共 39 篇)
| category | 篇數 | |—|—| | 不動產法律 | 13 | | 強制執行 | 6 | | 一般民事 | 5 | | 車禍糾紛 | 4 | | 勞資爭議 | 4 | | 家事法 | 3 | | 刑事辯護 | 3 | | 財富傳承 | 1 |
⚠️ 分類用詞有歷史不一致(例:遺囑 / 特留分歸入「不動產法律」或「一般民事」,離婚歸「家事法」)。新增文章請從上表 8 種挑選,勿自創新類;若需新增分類,先盤點現有文章是否該重新分類。
「財富傳承」於 2026-06-15 刻意新增,為 tclaw.tw 財富傳承內容系列旗艦線(跨公司法/稅法/信託/繼承,不純屬家事或不動產)。後續同系列文章歸此類;既有遺囑/特留分/贈與子女文章是未來歸併候選(見下方技術債)。
分類重整 TODO(技術債)
現有分類有歷史誤分,建議擇期重整:
- 遺囑、特留分、繼承糾紛 → 應從「不動產法律」「一般民事」抽出, 歸「家事法」或新增「繼承法」
- 離婚相關 → 確認是否誤歸「一般民事」 重整前需:(a) 盤點全部 32 篇 (b) 確認 URL 不變(category 不影響 permalink) (c) 評估是否需新增「繼承法」分類 本對齊任務不順手做,記為待辦。
內文規格
- 硬性檢查:每個 H2 對應一個獨立的搜尋意圖。 答完該意圖就收,不為湊長度展開; 兩個 H2 若會被同一組關鍵字命中,合併或砍掉一個。 推送前一律在內部列出「H2 → 目標搜尋詞」對照表自檢;正文超過 4,000 字時, 把這張表輸出給使用者供人工判斷。字數超標不傷讀者,同一件事講兩遍才傷。
- 長度(觀察指標,非放行門檻):一般文章 2,500–4,000 字; 多爭點、跨階段、開類別首篇等複雜主題上限 5,000 字。 超過 5,000 字不放行,改為評估拆分(此條是門檻)。
- 字數定義(避免規格再次失效):正文(不含 front matter),去掉 markdown 連結語法
與
#*等標記符號後的字元數,含中文標點。一行指令:python -c "import io,re,sys; s=io.open(sys.argv[1],encoding='utf-8').read().split('---',2)[2]; s=re.sub(r'\[([^\]]*)\]\([^)]*\)',r'\1',s); print(len(re.sub(r'[#*\>-\s]’,’‘,s)))” _posts/檔名.md` - ⚠️ 舊規格為「1500–2500 字」,實際近八篇為 3,033–6,683 字,已於 2026-08-24 依實況修正。
2026-07-04-workplace-bullying(6,683)、2026-07-11-nominee-registration(5,268) 兩篇超過 5,000 字上限,列為 legacy 例外,新文適用新規;要不要回頭拆分未決,不順手做。 - 標題:H2(
##)為主,必要時 H3(###);無 H1(留給 YAML title)、無 emoji - 強調用
**粗體**,例如**地雷一:形式要件的微小瑕疵。** - 每段 3–5 句,避免整篇全條列
- E-E-A-T 標註(Google 品質訊號):
- Experience:開頭需體現執業實務經驗,具體手法不限 — 以實例切入、引述常見諮詢情境、糾正普遍誤解、或直接揭示判決趨勢
- 避免 AI 通用導語(「在現代社會中…」「隨著…」「許多人都會遇到…」)
- Expertise:條文引用精準(例「民法第 1198 條」),不可虛構條號
- Authoritativeness:關鍵主張附法源(條文 / 最高法院實務見解)
- Trustworthiness:必要時提醒個案情形需專業評估,不下保證
內容紅線
- 不寫具體個案當事人(姓名、住址、可識別細節);舉例請通則化或匿名
- 不引用未公開或無法驗證的判決字號;引用務必真實可查(對齊全域 CLAUDE.md「法院字號真實性」)
- 不下絕對保證語(「一定贏」、「百分之百」)
- 法條提及採最新版本;修法頻繁領域(稅法、勞基法)應聯網查證
- ⚠️ 整站不用 emoji(品牌調性)
法規查證來源路由
| 查什麼 | 去哪查 | |—|—| | 法律、法規命令(民法、消保法、各種辦法) | taiwan-legal-db MCP | | 定型化契約應記載及不得記載事項、行政指導、預告修正 | 內政部主管法規共用系統 / 行政院定型化契約專頁,MCP 不適用 | | 兩者皆查無 | 標【資料不足,無法確認】 |
⚠️ 不得以「MCP 查無」推論該規定不存在。 應記載事項是行政公告,不在全國法規
資料庫的法律/命令層(實測 search_regulations("預售屋") 只回傳兩部辦法,
「預售屋買賣定型化契約」為 0 筆)。把 MCP 當唯一入口會把「查不到」誤判成
「沒這規定」,誤判成本最高。
預售屋履約擔保修正的追蹤見 _drafts/TODO-presale-escrow-amendment-tracking.md;
民法 1223 特留分修法見 _drafts/TODO-1223-amendment-tracking.md。
在地化策略
- 事務所定位高雄,文章在以下情境自然點出地名:
- 涉及法院管轄(高雄地院、橋頭簡易庭、高雄高分院)
- 涉及在地特有案件樣態(港都地產、加工出口區勞資)
- 文末律師簡介或 CTA 區塊
- 不強迫每篇加「高雄」關鍵字(會 over-optimization);以內容自然性為準,SEO 是副產物
發佈流程
本地預覽
bundle install # 首次或 Gemfile 改動後
bundle exec jekyll serve # http://127.0.0.1:4000
部署(自動)
- push
main→ GitHub Actions(.github/workflows/jekyll.yml)build + deploy 到 GitHub Pages - 環境:Ubuntu + Ruby 3.1,
JEKYLL_ENV=production - ⚠️ 無 staging 分支,main 即正式環境,推送前自行檢查
推送前檢查
- front matter 四欄位齊全(title / description / date / category)
- category 為既有 6 種之一
- description ≤ 100 字元
- 正文 2,500–4,000 字(複雜主題上限 5,000;超過則評估拆分)、純 H2/H3、無 emoji
- 每個 H2 對應一個獨立搜尋意圖,無兩個 H2 撞同一組關鍵字(超過 4,000 字需輸出對照表)
- 法條 / 判決字號已查證
- 無真實當事人資訊
- 本地
jekyll serve預覽無 build error - 圖片、內鏈、外鏈正常
- 回指內鏈已補(見下節;未補完不算發布完成)
回指內鏈(發布完成的定義)
內鏈只靠新文往舊文連會單向累積,新文變孤兒(2026-09 盤點出 12 篇無連入)。新文上線後,回頭在既有文章補上指向它的內鏈,才算發布完成。
- 目標至少 2 篇連入;找不到自然位置就據實回報,不硬塞、不另起「延伸閱讀」清單
- 外科手術式:錨文字包住既有字句,錨文字用實際爭點(不用「點此」);不改法律內容、不動 H2、不改段落結構
- 排程文(未來日期):等新文實際上線後再補回指,否則舊文會出現死連結
- 查連入數:
grep -l "](/articles/{slug}/" _posts/*.md | grep -v "{slug}" | wc -l
與 content-pipeline skill 協作
撰寫新文章請先 invoke content-pipeline skill — 它涵蓋選題、痛點矩陣、長尾關鍵字、批量選題、Threads 拆稿等完整流程。
- 本 CLAUDE.md 為規格約束(寫成怎樣才合規)
content-pipeline為流程工具(從選題到發佈)
已知限制
- github-pages gem 限制可用 plugin;需要自訂功能要改用 GitHub Actions 自行 build
Gemfile.lock在 .gitignore — 本機 gem 升級不影響線上版本- 自製搜尋(
search.html+search-index.json),新增文章後須確認搜尋索引產生