| name | triz-model |
| description | TRIZ Step 1 功能建模。引導建立組件交互圖、SF 診斷、改善/惡化描述。Use when a system needs functional analysis and substance-field modeling before contradiction resolution. |
TRIZ Step 1: 功能建模 (FA + SF 診斷)
Overview
本 skill 實作 Auto-TRIZ 閉環流程的 Step 1(Section 3.5 of docs/auto_triz_strategy.md)。
Step 1 不需要載入 KB — 靠工程師建模。但產出是所有後續 KB 查詢的輸入,必須確保完整。
宣告: 「正在使用 triz-model skill — 執行 Step 1: 功能建模。」
輸入要求
| 必要輸入 | 來源 | 備註 |
|---|
| 子系統描述 | Step 0 產出或使用者直接提供 | 至少能說出「誰對誰做了什麼」 |
| 痛點描述 | Step 0 或使用者 | 某指標不夠好 / 某副作用存在 |
可選加速輸入:
Phase 1a: 組件交互圖
引導問題
逐步引導使用者建立交互圖:
-
列舉組件:「這個子系統中有哪些主要組件?」
- 從核心功能開始,不從 BOM 開始
- 包含環境因素(溫度、振動、潤滑劑等)
-
描述交互:「每對相關組件之間,誰對誰做了什麼?」
-
分類交互:對每個交互標記類型
| 類型 | 定義 | 符號 |
|---|
| 有效 (Useful) | 執行期望功能 | → |
| 有害 (Harmful) | 產生不期望的副作用 | →✗ |
| 不足 (Insufficient) | 功能執行但效果不夠 | →~ |
| 過度 (Excessive) | 功能超過需要 | →! |
| 缺失 (Missing) | 需要但不存在的功能 | →? |
產出格式
## 組件交互圖
| # | 來源組件 | 功能 | 目標組件 | 類型 | 備註 |
|---|---------|------|---------|------|------|
| 1 | [S1] | [動詞] | [S2] | 有效/有害/不足/過度/缺失 | [補充說明] |
Phase 1b: SF 模型建構
對每個紅線(有害/不足/缺失/過度)交互,建立 Substance-Field 模型:
S1 (工具) ──F (場)──▶ S2 (物件)
SF 狀態判定
| SF 狀態 | 定義 | 後續路由 |
|---|
| 無效 | 三要素齊但不產生作用 | TC 路徑 or SF-only |
| 有害 | 三要素齊但產生副作用 | TC 路徑(有矛盾) |
| 不足 | 三要素齊但效果不夠 | TC 路徑 or SF-only |
| 缺失 | 缺少 S1、S2 或 F | SF-only 快速通道 |
產出格式
## SF 診斷
| # | S1 (工具) | F (場) | S2 (物件) | SF 狀態 | 路由建議 |
|---|----------|--------|----------|---------|---------|
| 1 | [物質] | [場類型] | [物質] | 有害/不足/缺失/無效 | TC/SF-only |
Phase 1c: 改善/惡化描述
基於交互圖和 SF 診斷,引導使用者產出:
- 改善描述:「你最想改善的是什麼?用一句話描述。」
- 惡化描述:「如果直接改善上述指標,什麼會變差?」
- 造句驗證:
「在 [系統] 中,為了 [改善 A],會導致 [B 惡化]。」
能填完此造句 = TC 假設成立,可進入 Step 2。
路由決策
| 情況 | 路由 |
|---|
| 造句成立(有矛盾) | → Step 2 (TC 定義) via /triz-solve |
| 無惡化(功能缺失) | → SF-only 快速通道 via /triz-solve --sf-only |
| 無法描述系統 | → 不適用 TRIZ,建議 Design Thinking/JTBD |
Phase 1d: 子系統邊界定義
確認分析邊界:
- 圍繞 OZ(衝突發生點)建立邊界,不按硬體零件劃分
- 問:「用完全不同的物理效應能達成同樣功能嗎?」
- 能 → 邊界可能太窄,擴大考慮範圍
- 不能 → 邊界合適
完整產出
Step 1 完成後,必須有以下三項產出:
## Step 1 產出
### 1. 組件交互圖
[Phase 1a 表格]
### 2. SF 診斷
[Phase 1b 表格]
### 3. 改善/惡化描述
- **改善**: [自然語言]
- **惡化**: [自然語言]
- **TC 造句**: 在 [系統] 中,為了 [改善 A],會導致 [B 惡化]
- **路由**: TC 路徑 / SF-only / 不適用
狀態更新
完成後執行兩件事:
1. 更新 state JSON
更新 .claude/context/triz/.triz-state.json 的 step1 區段:
{
"step1": {
"completed": true,
"fa_components": [
{"source": "S1", "function": "verb", "target": "S2", "type": "harmful"}
],
"sf_diagnosis": [
{"s1": "substance1", "s2": "substance2", "f": "field_type", "status": "harmful"}
],
"improve_worsen_nl": {
"improve": "自然語言描述",
"worsen": "自然語言描述"
},
"routing": "tc-main | sf-only"
}
}
2. 追加寫入 session 報告檔
從 .triz-state.json 讀取 report_file 路徑,用 Read tool 讀取報告檔現有內容,再用 Write tool 將以下 Step 1 區段追加到報告檔末尾:
## Step 1: 功能建模
### 組件交互圖
| # | 來源組件 | 功能 | 目標組件 | 類型 | 備註 |
|:--|:--------|:-----|:--------|:-----|:-----|
| 1 | {S1} | {動詞} | {S2} | {類型} | {補充} |
### SF 診斷
| # | S1 (工具) | F (場) | S2 (物件) | SF 狀態 | 路由建議 |
|:--|:---------|:-------|:---------|:--------|:--------|
| 1 | {物質} | {場類型} | {物質} | {狀態} | {TC/SF-only} |
### 改善/惡化描述
- **改善**: {自然語言}
- **惡化**: {自然語言}
- **TC 造句**: 在 {系統} 中,為了 {改善 A},會導致 {B 惡化}
- **路由**: {TC 路徑 / SF-only}
---
下一步導引
Step 1 完成後,依路由結果提示使用者:
| 路由結果 | 提示 |
|---|
| tc-main | 「Step 1 完成。TC 造句成立,進入解題管線。請執行 /triz-solve 繼續。」 |
| sf-only | 「Step 1 完成。功能缺失無矛盾,進入 SF-only 快速通道。請執行 /triz-solve --sf-only 繼續。」 |
| 不適用 | 「無法描述系統或建立 TC 造句,TRIZ 不適用。建議使用 Design Thinking / JTBD。」 |