# AI Generation Rules for AITerms

> 最後更新：2026-05-09
> 適用對象：任何用 AI / LLM 新增或修改 AITerms.tw 詞條的工程師或 agent

AI 在新增或修改詞條前，必須先讀取：

1. `/content-quality/execution-standards.md` — 執行規範 SOP（preflight / runtime / postflight checklist，必過）
2. `/content-quality/term-page-spec`
3. `/content-quality/source-policy`
4. `/content-quality/known-bad-patterns.json`
5. `/terms/index.json`（待 Step 4 工程實作）

## 生成流程（7 步）

1. **先查是否已有 canonical term**
   用 `getPublishedTerms` 比對 `name_zh` + `name_en`。
   若已有相同概念 → 跳到 step 2；若無 → 跳到 step 3。

2. **若已有相同概念**
   只能更新原頁或新增 alias。
   不得新增 duplicate。
   不得用 slug `-1`、`-2` 結尾規避。

3. **生成前先找官方來源**
   依 `source-policy.md` 第 1 條清單。
   無官方來源不得寫具體數字、版本、授權、價格。

4. **無來源的數字、比例、授權、版本，不得寫**
   寫了即違反 `unsupported_ipas_percentage` 等 validate 規則。

5. **不確定時使用保守描述**
   範例：
   - ❌ 「Llama 是開源大型語言模型」
   - ✅ 「Llama 是 Meta 發布的可下載權重大型語言模型，授權依 Llama Community License」

6. **生成後跑 validate-terms**

       npm run validate:terms

   覆蓋規則：
   - duplicate_canonical
   - active_slug_ends_with_number
   - missing_canonical
   - markdown_too_few_lines
   - raw_markdown_in_html
   - banned_phrase
   - banned_claim
   - unsupported_ipas_percentage
   - empty_heading

7. **validate 沒過不得發布**
   PR / build pipeline MUST 把 `npm run validate:terms` 加進 `ci:local`。

## 禁用字串（節錄）

完整清單見 `/content-quality/known-bad-patterns.json`：

- 這張卡 / 另一張卡 / 可以把它當成不同入口（內部生成洩漏）
- 看情況，但如果任務目標是分類、分群、壓縮、檢索，或最佳化（通用模板）
- 距離尺度沒對齊 / 標註規則不一致 / 輸入格式不合（無關詞條的通用解釋）
- 最強 / 一定優於 / 完全免費 / 無版權風險 / 保證可商用（不可驗證宣稱）

## 與 `/aiterms-write` skill 的關係

`/aiterms-write` skill 是寫作 SOP，本 `ai-generation-rules` 是 hard rule。
skill 與 rule 衝突時以本 rule 為準（rule 會擋 build，skill 不會）。
