universal-dev-standards 6.14.0-beta.2 → 6.14.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/ai/standards/ai-response-navigation.ai.yaml +43 -3
- package/bundled/ai/standards/checkin-standards.ai.yaml +25 -6
- package/bundled/ai/standards/open-work-tracking.ai.yaml +4 -1
- package/bundled/ai/standards/pipeline-security-gates.ai.yaml +5 -1
- package/bundled/core/ai-response-navigation.md +128 -12
- package/bundled/core/open-work-tracking.md +1 -1
- package/bundled/extensions/frameworks/fat-free-patterns.md +937 -0
- package/bundled/extensions/languages/csharp-style.md +464 -0
- package/bundled/extensions/languages/php/fat-free-patterns.md +915 -0
- package/bundled/extensions/languages/php/php-style.md +693 -0
- package/bundled/extensions/languages/php-style.md +700 -0
- package/bundled/extensions/locales/zh-cn.md +717 -0
- package/bundled/extensions/locales/zh-tw.md +717 -0
- package/bundled/locales/COVERAGE.md +5 -4
- package/bundled/locales/zh-CN/CHANGELOG.md +44 -3
- package/bundled/locales/zh-CN/README.md +2 -2
- package/bundled/locales/zh-CN/SECURITY.md +1 -1
- package/bundled/locales/zh-CN/core/ai-response-navigation.md +110 -12
- package/bundled/locales/zh-CN/skills/README.md +1 -0
- package/bundled/locales/zh-CN/skills/comprehension-ladder/SKILL.md +289 -0
- package/bundled/locales/zh-CN/skills/comprehension-ladder/eval-cases.md +261 -0
- package/bundled/locales/zh-TW/CHANGELOG.md +44 -3
- package/bundled/locales/zh-TW/README.md +2 -2
- package/bundled/locales/zh-TW/SECURITY.md +1 -1
- package/bundled/locales/zh-TW/core/ai-response-navigation.md +110 -12
- package/bundled/locales/zh-TW/core/open-work-tracking.md +3 -3
- package/bundled/locales/zh-TW/skills/README.md +1 -0
- package/bundled/locales/zh-TW/skills/comprehension-ladder/SKILL.md +289 -0
- package/bundled/locales/zh-TW/skills/comprehension-ladder/eval-cases.md +261 -0
- package/bundled/skills/README.md +1 -0
- package/bundled/skills/comprehension-ladder/SKILL.md +283 -0
- package/bundled/skills/comprehension-ladder/eval-cases.md +255 -0
- package/package.json +2 -2
- package/src/commands/check.js +9 -0
- package/src/commands/init.js +100 -27
- package/src/commands/uninstall.js +144 -30
- package/src/commands/update.js +62 -3
- package/src/core/install-records.js +191 -0
- package/src/i18n/messages.js +39 -6
- package/src/installers/hooks-installer.js +61 -30
- package/src/installers/integration-installer.js +5 -1
- package/src/installers/standards-installer.js +16 -23
- package/src/reconciler/plan-executor.js +10 -11
- package/src/uninstallers/hook-uninstaller.js +219 -33
- package/src/uninstallers/integration-uninstaller.js +35 -5
- package/src/utils/copier.js +57 -0
- package/src/utils/git-hooks.js +139 -7
- package/src/utils/hasher.js +36 -0
- package/src/utils/integration-generator.js +16 -6
- package/src/utils/legacy-hook-migration.js +112 -0
- package/src/utils/locale.js +19 -0
- package/src/utils/open-work-tracking.mjs +124 -23
- package/standards-registry.json +21 -7
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comprehend
|
|
3
|
+
source: ../../../../skills/comprehension-ladder/SKILL.md
|
|
4
|
+
source_version: 1.0.0
|
|
5
|
+
translation_version: 1.0.0
|
|
6
|
+
last_synced: 2026-10-05
|
|
7
|
+
source_hash: 7c69dc2bfc9f
|
|
8
|
+
status: current
|
|
9
|
+
scope: universal
|
|
10
|
+
description: |
|
|
11
|
+
[UDS] 把一段難懂的 AI 輸出換成較好懂的形式:受控文字、Mermaid 圖、單檔 HTML 解說頁。所有形式都來自同一份大綱,所以形式會變,事實不會變。
|
|
12
|
+
Use when: AI 的說明、規格或程式碼解說太密、讀的人看不出該不該核准;非專業的人必須靠它做核准;想要它的圖或離線解說頁。
|
|
13
|
+
Not for: 寫新內容或加新分析——本技能只把既有的文字換形式;從原始碼產生文件——請用 /docgen;為專家讀者縮短文字——直接改寫即可。
|
|
14
|
+
Keywords: comprehension ladder, explainer, controlled language, Mermaid, HTML explainer, outline, plain language, understand AI output, 理解階梯, 受控語言, 流程圖, 解說頁, 換形式不換事實.
|
|
15
|
+
allowed-tools: Read, Glob, Grep, Write
|
|
16
|
+
argument-hint: "[text or file | 原文或檔案] [rungs: 1 | 2 | 3]"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# 理解階梯
|
|
20
|
+
|
|
21
|
+
> **語言**: [English](../../../../skills/comprehension-ladder/SKILL.md) | 繁體中文 | [简体中文](../../../zh-CN/skills/comprehension-ladder/SKILL.md)
|
|
22
|
+
|
|
23
|
+
**版本**: 1.0.0 | **最後更新**: 2026-10-05 | **適用**: Claude Code Skills
|
|
24
|
+
|
|
25
|
+
把一段難懂的 AI 輸出換成較好懂的形式。形式會變,事實不會變。
|
|
26
|
+
|
|
27
|
+
## 目的
|
|
28
|
+
|
|
29
|
+
現在慢的不是拿到答案,而是看懂答案並判斷它。本技能幫忙這一步。它拿一份原文,最多做出三種形式,每一種叫一「階」。
|
|
30
|
+
|
|
31
|
+
本技能的文字依 [ai-response-navigation](../../core/ai-response-navigation.md) 第 12 條(受控語言)寫成。它自己也遵守自己的防護。
|
|
32
|
+
|
|
33
|
+
## 階梯
|
|
34
|
+
|
|
35
|
+
階梯正好有三階。每一階都從同一份大綱產生(見[大綱](#大綱))。任何一階都不得在大綱之外加東西。
|
|
36
|
+
|
|
37
|
+
| 階 | 形式 | 適合 | 產出 |
|
|
38
|
+
|----|------|------|------|
|
|
39
|
+
| 1 | 受控文字 | 任何原文。永遠是第一階 | 短句或編號列,放在對話或檔案裡 |
|
|
40
|
+
| 2 | Mermaid 圖 | 有流程、先後順序、多個角色,或 3 個以上選項的原文 | 一個 Mermaid 程式碼區塊,外加一份畫不出來的項目文字清單 |
|
|
41
|
+
| 3 | 單檔 HTML 解說頁 | 需要探索或核准的讀者 | 一個可離線開啟的 `.html` 檔 |
|
|
42
|
+
|
|
43
|
+
先問使用者要哪幾階。使用者沒說,就先做第 1 階,再提議另外兩階。
|
|
44
|
+
|
|
45
|
+
沒有影片階。影片需要語音服務,而且會把原文送給第三方。
|
|
46
|
+
|
|
47
|
+
## 三條防護
|
|
48
|
+
|
|
49
|
+
這三條防護**必須**遵守。破壞任何一條的那一階,就還沒做完。不得交出去。
|
|
50
|
+
|
|
51
|
+
| 編號 | 防護 | 等級 |
|
|
52
|
+
|------|------|------|
|
|
53
|
+
| G1 | `no-new-facts`:不加原文沒有的事實 | **必須(Required)** |
|
|
54
|
+
| G2 | `keep-hedges`:保留每一個不確定語氣。不得把不確定的說法改成確定 | **必須(Required)** |
|
|
55
|
+
| G3 | `trace-and-gaps`:每一項都附「對應原文哪一段」與「沒涵蓋什麼」 | **必須(Required)** |
|
|
56
|
+
|
|
57
|
+
G2 與 [ai-response-navigation](../../core/ai-response-navigation.md) 的 12.1 條是同一條規則。這裡把它用在本技能的三階。
|
|
58
|
+
|
|
59
|
+
### G1 `no-new-facts`(必須)
|
|
60
|
+
|
|
61
|
+
每一階的每一個說法都必須來自原文。不要加原因、數字、名字、日期或「已確認」。不要加你知道、但原文沒寫的背景。
|
|
62
|
+
|
|
63
|
+
**正例**——原文寫:「訂單有時會在付款步驟失敗。」
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
O1 訂單有時會在付款步驟失敗。
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**反例**——同一份原文:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
O1 訂單會在付款步驟失敗。這也會讓退款壞掉。
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
「退款」是新增的事實。「有時」也不見了,所以 G2 同時被破壞。
|
|
76
|
+
|
|
77
|
+
### G2 `keep-hedges`(必須)
|
|
78
|
+
|
|
79
|
+
不確定語氣告訴讀者,一個說法可以信到什麼程度。例如:可能、推斷、大概、尚未確認、might、could、probably。它是資訊,不是贅字。
|
|
80
|
+
|
|
81
|
+
- 原文寫「可能」,這一階就寫「可能」。
|
|
82
|
+
- 圖裡也要保留。不確定的項目用虛線畫,標籤裡留下那個詞。
|
|
83
|
+
- HTML 裡也要保留。不確定的項目要顯示看得見的「尚未確認」標記。
|
|
84
|
+
- 只有在原文自己說這個說法已經驗證時,才可以拿掉不確定語氣。這時要寫出檢查了什麼。
|
|
85
|
+
|
|
86
|
+
**正例**——原文寫:「原因可能是快取留著舊的價目表。」
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
O2 原因可能是快取留著舊的價目表。 [hedge: 可能]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**反例**——同一份原文:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
O2 原因是快取留著舊的價目表。
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
反例比較短,也比較好讀。但它與原文不符。讀的人若憑這一行核准修復,就被誤導了。
|
|
99
|
+
|
|
100
|
+
### G3 `trace-and-gaps`(必須)
|
|
101
|
+
|
|
102
|
+
每一項都帶兩個註記:
|
|
103
|
+
|
|
104
|
+
- **對應原文**:這一項出自原文的哪個位置。用段落與句子編號,或檔名與行號,再加一段 12 個詞以內的引文(中文約 20 字以內)。
|
|
105
|
+
- **沒涵蓋**:這一項沒說到什麼,或它證明不了什麼。原文沒有更多內容時,寫「原文沒有更多內容」。
|
|
106
|
+
|
|
107
|
+
最後一項之後,加一份清單,叫做**這份大綱沒有收的部分**。它列出原文中所有沒變成項目的部分。
|
|
108
|
+
|
|
109
|
+
**正例**
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
O3 我們尚未在測試環境重現這個問題。
|
|
113
|
+
對應原文:第 1 段第 3 句——「尚未在測試環境重現」
|
|
114
|
+
沒涵蓋:為什麼沒有重現。原文沒有給理由。
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**反例**
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
O3 這個問題已在測試環境重現。
|
|
121
|
+
對應原文:那份報告。
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
「那份報告」沒有指向某個位置。這個說法也與原文相反。而且沒有「沒涵蓋」註記。
|
|
125
|
+
|
|
126
|
+
## 大綱
|
|
127
|
+
|
|
128
|
+
大綱是唯一共用的事實來源。先做大綱,再做任何一階。不要直接從原文寫某一階。
|
|
129
|
+
|
|
130
|
+
每個大綱項目有一個編號和一個種類。
|
|
131
|
+
|
|
132
|
+
| 種類 | 意思 |
|
|
133
|
+
|------|------|
|
|
134
|
+
| `claim` | 原文提出的說法 |
|
|
135
|
+
| `mechanism` | 一個步驟、一個原因,或兩件事之間的關聯 |
|
|
136
|
+
| `uncertainty` | 原文說不知道或尚未確認的事 |
|
|
137
|
+
| `example` | 原文拿來說明某個說法的案例 |
|
|
138
|
+
|
|
139
|
+
每個項目寫成這個樣子:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
O<編號> | 種類 | 文字 | hedge: <原文的不確定用詞,或 none>
|
|
143
|
+
對應原文:<位置> — 「<引文,12 個詞以內>」
|
|
144
|
+
沒涵蓋:<這一項沒說到的事>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
依原文的順序編號。編號不得重複使用。三階都用同一組編號。
|
|
148
|
+
|
|
149
|
+
## 工作流程
|
|
150
|
+
|
|
151
|
+
### 步驟 1——讀原文
|
|
152
|
+
|
|
153
|
+
讀完整份原文。原文是檔案,就讀那個檔案。讀完之前,不要開始做大綱。
|
|
154
|
+
|
|
155
|
+
### 步驟 2——建立大綱
|
|
156
|
+
|
|
157
|
+
抽出項目。一項一個事實。每個不確定用詞都要原樣抄下。
|
|
158
|
+
|
|
159
|
+
### 步驟 3——為每一項標出處
|
|
160
|
+
|
|
161
|
+
為每一項寫「對應原文」與「沒涵蓋」。再寫「這份大綱沒有收的部分」清單。
|
|
162
|
+
|
|
163
|
+
### 步驟 4——把大綱給使用者看
|
|
164
|
+
|
|
165
|
+
項目超過 5 個,或使用者要求時,就把大綱給使用者看。讓使用者刪除或修正項目。使用者否決的大綱,不要拿去做任何一階。
|
|
166
|
+
|
|
167
|
+
### 步驟 5——做出各階
|
|
168
|
+
|
|
169
|
+
使用者要哪幾階,就做哪幾階。照下面各階的規則做。
|
|
170
|
+
|
|
171
|
+
#### 第 1 階:受控文字
|
|
172
|
+
|
|
173
|
+
照 [ai-response-navigation](../../core/ai-response-navigation.md) 的 12.2 條:
|
|
174
|
+
|
|
175
|
+
- 一句一件事。英文約 15 到 25 個詞,中文約 25 到 40 個字。
|
|
176
|
+
- 一物一名。不要為了文采換名稱。
|
|
177
|
+
- 寫清楚誰做什麼。
|
|
178
|
+
- 一步一動作。流程寫成編號列表。
|
|
179
|
+
- 少用分號。
|
|
180
|
+
- 數字要帶單位。
|
|
181
|
+
|
|
182
|
+
每一行開頭保留項目編號,讀的人才找得到它在大綱裡的位置。
|
|
183
|
+
|
|
184
|
+
#### 第 2 階:Mermaid 圖
|
|
185
|
+
|
|
186
|
+
1. 步驟與因果用 `flowchart TD`。角色與交接用 `flowchart LR`。
|
|
187
|
+
2. 每個 `mechanism` 項目畫一個節點。用項目編號當節點編號。
|
|
188
|
+
3. 節點標籤取自項目文字。標籤裡要留下不確定用詞。
|
|
189
|
+
4. 不確定的項目畫成虛線節點或虛線邊(`-.->`)。
|
|
190
|
+
5. 不要畫沒有大綱編號的節點。
|
|
191
|
+
6. 在圖的下面,用文字列出你沒有畫的每一項,並各附一個理由。
|
|
192
|
+
|
|
193
|
+
```mermaid
|
|
194
|
+
flowchart TD
|
|
195
|
+
O1["O1 訂單有時在付款步驟失敗"]
|
|
196
|
+
O2["O2 可能:快取留著舊的價目表"]
|
|
197
|
+
O1 -.-> O2
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
#### 第 3 階:單檔 HTML 解說頁
|
|
201
|
+
|
|
202
|
+
頁面必須是一個檔案。必須能離線開啟。不得從網路載入任何東西。
|
|
203
|
+
|
|
204
|
+
頁面**必須**符合:
|
|
205
|
+
|
|
206
|
+
- 所有 CSS 都放在一個 `<style>` 元素裡。
|
|
207
|
+
- 所有指令碼(若有)都放在一個內嵌的 `<script>` 元素裡。關掉指令碼,頁面仍要能用。
|
|
208
|
+
- `src`、`href`、`action`、`@import`、`url()` 裡不得有 `http://`、`https://` 或 `//` 開頭的網址。只允許頁內的 `#` 錨點連結。
|
|
209
|
+
- 不得有 `<link>` 元素。不得有網路字型、CDN 或外部圖片。
|
|
210
|
+
- 不得呼叫 `fetch`、`XMLHttpRequest`、`WebSocket` 或 `import()`。
|
|
211
|
+
- 不要載入 Mermaid 函式庫。把圖畫成內嵌 SVG,或畫成有樣式的清單。
|
|
212
|
+
- 原文中 HTML 會當成標記的字元,都要跳脫。
|
|
213
|
+
|
|
214
|
+
頁面依序包含:
|
|
215
|
+
|
|
216
|
+
1. 標題,加一句話說明原文是什麼。
|
|
217
|
+
2. 圖(若使用者要了第 2 階)。
|
|
218
|
+
3. 每個大綱項目一張卡片。卡片顯示編號、文字、有不確定語氣時的「尚未確認」標記、對應原文,以及沒涵蓋註記。
|
|
219
|
+
4. 「這份大綱沒有收的部分」清單。
|
|
220
|
+
|
|
221
|
+
最小骨架:
|
|
222
|
+
|
|
223
|
+
```html
|
|
224
|
+
<!doctype html>
|
|
225
|
+
<html lang="zh-Hant">
|
|
226
|
+
<head>
|
|
227
|
+
<meta charset="utf-8">
|
|
228
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
229
|
+
<title>解說頁:原文的簡短名稱</title>
|
|
230
|
+
<style>
|
|
231
|
+
body { font: 16px/1.6 system-ui, sans-serif; max-width: 46rem; margin: 2rem auto; padding: 0 1rem; }
|
|
232
|
+
.card { border: 1px solid #8884; border-radius: 8px; padding: .75rem 1rem; margin: .75rem 0; }
|
|
233
|
+
.badge { background: #fd0; color: #000; border-radius: 4px; padding: 0 .4rem; font-size: .85em; }
|
|
234
|
+
</style>
|
|
235
|
+
</head>
|
|
236
|
+
<body>
|
|
237
|
+
<h1>解說頁</h1>
|
|
238
|
+
<p>一句話:原文是什麼。</p>
|
|
239
|
+
<section class="card" id="O2">
|
|
240
|
+
<strong>O2</strong> 原因可能是快取留著舊的價目表。
|
|
241
|
+
<span class="badge">尚未確認:可能</span>
|
|
242
|
+
<p><em>對應原文:</em>第 1 段第 2 句</p>
|
|
243
|
+
<p><em>沒涵蓋:</em>是哪一個快取。原文沒有說。</p>
|
|
244
|
+
</section>
|
|
245
|
+
</body>
|
|
246
|
+
</html>
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### 步驟 6——交出之前先檢查
|
|
250
|
+
|
|
251
|
+
五項檢查都要跑。有一項沒過,就修好那一階,再跑一次。
|
|
252
|
+
|
|
253
|
+
1. **數量**:每一階的項目數,等於大綱的項目數,減去你列為「沒有畫」的項目。原文有 5 個步驟,每一階就是 5 個步驟。不是 4,也不是 6。
|
|
254
|
+
2. **沒有新項目**:每一階的每個項目都有大綱編號。找找看有沒有項目沒有編號。
|
|
255
|
+
3. **不確定語氣比對**:`hedge:` 不是 `none` 的每一項,每一階都要有同一個不確定用詞。比對的是該階與原文。任何語言都做得到。
|
|
256
|
+
4. **出處**:每一項都有指向某個位置的「對應原文」,也有「沒涵蓋」註記。
|
|
257
|
+
5. **離線**(只用於第 3 階):在檔案裡搜尋 `http`、`//`、`<link`、`fetch(` 與 `XMLHttpRequest`。每一項搜尋,除了你從原文引用的文字,都必須是零命中。
|
|
258
|
+
|
|
259
|
+
### 步驟 7——回報
|
|
260
|
+
|
|
261
|
+
結尾放這張表。沒有這張表,不要交出任何一階。
|
|
262
|
+
|
|
263
|
+
| 項目 | 第 1 階 | 第 2 階 | 第 3 階 | 保留不確定語氣 | 對應原文 | 沒涵蓋 |
|
|
264
|
+
|------|---------|---------|---------|----------------|----------|--------|
|
|
265
|
+
| O1 | 有 | 有 | 有 | 不適用 | 第 1 段第 1 句 | 「有時」的頻率 |
|
|
266
|
+
|
|
267
|
+
有任何一項防護檢查沒過、又修不好,就說是哪一項、為什麼。不要回報成功。
|
|
268
|
+
|
|
269
|
+
## 什麼時候不要用
|
|
270
|
+
|
|
271
|
+
- 原文不到約 150 字。用 [ai-response-navigation](../../core/ai-response-navigation.md) 的 12.2 條改寫,並保留不確定語氣。不要做各階。
|
|
272
|
+
- 讀者是專家,需要密度高的原形。
|
|
273
|
+
- 任務是找出新的事實。本技能不做這件事。
|
|
274
|
+
|
|
275
|
+
## 衡量它有沒有幫助
|
|
276
|
+
|
|
277
|
+
本技能還沒有被證明有幫助。[eval-cases.md](eval-cases.md) 有 5 段原文,各附理解題與標準答案,並附一套跑法,會產出兩個數字:前後的答對率,以及防護違反次數。實跑需要模型呼叫,目前還沒做。實跑完成之前,不要宣稱本技能有效。
|
|
278
|
+
|
|
279
|
+
## 相關
|
|
280
|
+
|
|
281
|
+
- [ai-response-navigation](../../core/ai-response-navigation.md):第 12 條,受控語言。12.1 條是防護 G2 的基礎。
|
|
282
|
+
- [documentation-guide](../documentation-guide/SKILL.md):Mermaid 圖在專案文件中該放哪裡。
|
|
283
|
+
- [brainstorm-assistant](../brainstorm-assistant/SKILL.md):相反方向,還沒有原文時用。
|
|
284
|
+
|
|
285
|
+
## 版本歷史
|
|
286
|
+
|
|
287
|
+
| 版本 | 日期 | 變更 |
|
|
288
|
+
|------|------|------|
|
|
289
|
+
| 1.0.0 | 2026-10-05 | 首次發佈。從同一份大綱做出三階。三條必須遵守的防護。評估案例。落實 dev-platform XSPEC-450 / DEC-125 D4。 |
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: ../../../../skills/comprehension-ladder/eval-cases.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
last_synced: 2026-10-05
|
|
6
|
+
source_hash: a2b33f2ef215
|
|
7
|
+
status: current
|
|
8
|
+
scope: universal
|
|
9
|
+
description: |
|
|
10
|
+
理解階梯技能的評估案例與跑法:5 段原文,各附理解題、標準答案與防護違反檢查。尚未實跑。
|
|
11
|
+
Use when: 想衡量理解階梯技能是否幫得上讀者,或想重新檢查它的三條防護。
|
|
12
|
+
Keywords: evaluation, eval cases, comprehension questions, answer key, guard violations, DEC-114.
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# 理解階梯:評估案例
|
|
16
|
+
|
|
17
|
+
> **語言**: [English](../../../../skills/comprehension-ladder/eval-cases.md) | 繁體中文 | [简体中文](../../../zh-CN/skills/comprehension-ladder/eval-cases.md)
|
|
18
|
+
|
|
19
|
+
**狀態:尚未實跑。** 本檔只有案例與跑法。沒有呼叫過任何模型,也沒有任何讀者作過答。實跑完成之前,不要說本技能讓文字比較好懂。
|
|
20
|
+
|
|
21
|
+
下面五段原文都是為這次評估寫的。它們不描述任何真實的客戶、人物或系統。
|
|
22
|
+
|
|
23
|
+
## 實跑會產出什麼
|
|
24
|
+
|
|
25
|
+
一次實跑產出兩個數字:
|
|
26
|
+
|
|
27
|
+
1. **前後的答對率。** 讀者看原文時(A 組,「之前」)與看技能產出時(B 組,「之後」),答對題目的比例。
|
|
28
|
+
2. **防護違反次數。** 技能的產出破壞 G1、G2 或 G3 的次數。
|
|
29
|
+
|
|
30
|
+
建議的通過線,實跑前要與負責人談定:B 組比 A 組高至少 10 個百分點,而且防護違反次數為 0。10 個百分點只是起始值,還沒有校準過。
|
|
31
|
+
|
|
32
|
+
## 跑法
|
|
33
|
+
|
|
34
|
+
### 1. 產出
|
|
35
|
+
|
|
36
|
+
每個案例都對原文跑一次技能。要求第 1 階與第 2 階。存下大綱與兩階的產出。若也要測第 3 階,就要求它並存下 HTML 檔。
|
|
37
|
+
|
|
38
|
+
五個案例使用同一個模型、同樣的設定。記下模型名稱。
|
|
39
|
+
|
|
40
|
+
### 2. 分讀者
|
|
41
|
+
|
|
42
|
+
至少用 6 位讀者。讀者可以是人,也可以是模型。人給出的證據比較強。模型是比較便宜的替身。
|
|
43
|
+
|
|
44
|
+
把讀者分成人數相同的兩組。
|
|
45
|
+
|
|
46
|
+
| 案例 | 第 1 組讀 | 第 2 組讀 |
|
|
47
|
+
|------|-----------|-----------|
|
|
48
|
+
| 1 | A(原文) | B(技能產出) |
|
|
49
|
+
| 2 | B | A |
|
|
50
|
+
| 3 | A | B |
|
|
51
|
+
| 4 | B | A |
|
|
52
|
+
| 5 | A | B |
|
|
53
|
+
|
|
54
|
+
每位讀者每個案例只看一次。這樣讀者不會在一組學到答案,再帶到另一組。
|
|
55
|
+
|
|
56
|
+
B 組的讀者只看技能產出,不看原文。
|
|
57
|
+
|
|
58
|
+
### 3. 問題
|
|
59
|
+
|
|
60
|
+
把該案例的題目交給每位讀者。讀者只能依手上拿到的文字作答,不得用任何其他來源。
|
|
61
|
+
|
|
62
|
+
讀者可以答「文字沒有說」。對標為**未提及**的題目,這是正確答案。
|
|
63
|
+
|
|
64
|
+
### 4. 評分
|
|
65
|
+
|
|
66
|
+
依下面的標準答案評分。答案要符合「採計」欄才算對。標為**不確定語氣**的題目,若答案把說法講成確定,即使事實對了也算錯。
|
|
67
|
+
|
|
68
|
+
答對率 = 答對的題數 ÷ 全部答案數,各組分開算。
|
|
69
|
+
|
|
70
|
+
### 5. 計算防護違反
|
|
71
|
+
|
|
72
|
+
對照原文,檢查每一份產出。下列情形,每一項各算一次。
|
|
73
|
+
|
|
74
|
+
| 防護 | 一次違反是 |
|
|
75
|
+
|------|------------|
|
|
76
|
+
| G1 `no-new-facts` | 某一項或某一句,說了原文沒說的事。每個案例的「陷阱」清單列出最可能的幾種。 |
|
|
77
|
+
| G2 `keep-hedges` | 原文的說法有不確定語氣,產出的那一項卻沒有,或語氣變得更強。每個案例的「不確定用詞清單」列出這些用詞。 |
|
|
78
|
+
| G3 `trace-and-gaps` | 某一項沒有「對應原文」、指到的位置不是它所宣稱的位置,或沒有「沒涵蓋」註記。另外:產出沒有「這份大綱沒有收的部分」清單。 |
|
|
79
|
+
|
|
80
|
+
請第二個人也數同一批產出,再比對兩份計數。不同時,逐項討論,記下最後的計數。
|
|
81
|
+
|
|
82
|
+
### 6. 回報
|
|
83
|
+
|
|
84
|
+
填這張表。兩個數字都要有。
|
|
85
|
+
|
|
86
|
+
| 案例 | A 組答對 | B 組答對 | G1 | G2 | G3 |
|
|
87
|
+
|------|----------|----------|----|----|----|
|
|
88
|
+
| 1 | / | / | | | |
|
|
89
|
+
| 2 | / | / | | | |
|
|
90
|
+
| 3 | / | / | | | |
|
|
91
|
+
| 4 | / | / | | | |
|
|
92
|
+
| 5 | / | / | | | |
|
|
93
|
+
| **合計** | **A 組答對率** | **B 組答對率** | | | |
|
|
94
|
+
|
|
95
|
+
### 實跑規模
|
|
96
|
+
|
|
97
|
+
說明實跑的規模,讓負責人在開跑前決定模型與預算:
|
|
98
|
+
|
|
99
|
+
- 產出步驟:5 次技能執行,加 5 次防護檢查。共 10 次模型呼叫。
|
|
100
|
+
- 讀者步驟,若讀者是模型:5 個案例 × 2 組 × 每組讀者數。
|
|
101
|
+
- 題目很短。最長的輸入是一段原文或一份產出。
|
|
102
|
+
|
|
103
|
+
模型與預算由負責人決定。這裡不設定。
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 案例 1:搜尋結果過期
|
|
108
|
+
|
|
109
|
+
**類型**:含多處不確定語氣的事件紀錄。
|
|
110
|
+
|
|
111
|
+
### 原文
|
|
112
|
+
|
|
113
|
+
> 昨晚商品目錄匯入之後,搜尋頁約有 3 小時顯示舊的商品名稱。最可能的原因是,匯入之後搜尋索引沒有重建。我們認為匯入工作先結束,重建步驟才排進佇列,但我們還沒有檢查工作紀錄。顧客仍然可以購買那些商品。團隊計畫在星期四,替匯入工作加上重建步驟,前提是紀錄證實了事件的先後順序。沒有人量過有多少顧客看到舊名稱。
|
|
114
|
+
|
|
115
|
+
### 問題與標準答案
|
|
116
|
+
|
|
117
|
+
| # | 問題 | 類型 | 採計 |
|
|
118
|
+
|---|------|------|------|
|
|
119
|
+
| 1 | 搜尋頁顯示舊名稱的時間有多久? | 事實 | 約 3 小時 |
|
|
120
|
+
| 2 | 最可能的原因是什麼?已經確認了嗎? | 不確定語氣 | 匯入之後索引沒有重建。尚未確認:「最可能」 |
|
|
121
|
+
| 3 | 工作紀錄檢查過了嗎? | 事實 | 沒有。還沒有 |
|
|
122
|
+
| 4 | 問題發生期間,顧客還能購買商品嗎? | 事實 | 能 |
|
|
123
|
+
| 5 | 修復計畫在什麼時候?它取決於什麼? | 事實 | 星期四。取決於紀錄是否證實事件的先後順序 |
|
|
124
|
+
| 6 | 有多少顧客看到舊名稱? | 未提及 | 文字沒有說。沒有人量過 |
|
|
125
|
+
|
|
126
|
+
### 不確定用詞清單
|
|
127
|
+
|
|
128
|
+
「約 3 小時」、「最可能」、「我們認為」、「還沒有檢查」、「前提是紀錄證實」、「沒有人量過」。
|
|
129
|
+
|
|
130
|
+
### 陷阱(原文沒說的事實)
|
|
131
|
+
|
|
132
|
+
受影響顧客的人數。原因已確認的說法。紀錄顯示了事件先後順序的說法。任何退款、營收或客服單的數字。
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 案例 2:退款核准流程
|
|
137
|
+
|
|
138
|
+
**類型**:有分支的流程(適合第 2 階)。
|
|
139
|
+
|
|
140
|
+
### 原文
|
|
141
|
+
|
|
142
|
+
> 顧客在 App 裡申請退款。系統檢查訂單日期。訂單超過 30 天,系統立刻駁回申請,並向顧客顯示一則訊息。訂單在 30 天以內(含 30 天),系統把申請送給客服人員。客服人員在 2 個工作天內核准或駁回。客服人員核准後,系統把錢退回原付款方式,並寄電子郵件給顧客。超過 NT$5,000 的退款,還需要組長第二次核准。規格沒有說組長要在多久內回覆。
|
|
143
|
+
|
|
144
|
+
### 問題與標準答案
|
|
145
|
+
|
|
146
|
+
| # | 問題 | 類型 | 採計 |
|
|
147
|
+
|---|------|------|------|
|
|
148
|
+
| 1 | 45 天前的訂單申請退款,會怎麼處理? | 事實 | 立刻駁回。顧客會看到一則訊息 |
|
|
149
|
+
| 2 | 剛好 30 天的訂單申請退款,會怎麼處理? | 事實 | 送給客服人員(「30 天以內(含 30 天)」) |
|
|
150
|
+
| 3 | 客服人員有多久可以決定? | 事實 | 2 個工作天 |
|
|
151
|
+
| 4 | 核准之後,錢退到哪裡? | 事實 | 原付款方式。顧客還會收到電子郵件 |
|
|
152
|
+
| 5 | 哪些退款需要第二次核准?由誰核准? | 事實 | 超過 NT$5,000 的退款。由組長 |
|
|
153
|
+
| 6 | 組長要在多久內回覆? | 未提及 | 文字沒有說 |
|
|
154
|
+
|
|
155
|
+
### 不確定用詞清單
|
|
156
|
+
|
|
157
|
+
主張裡沒有不確定用詞。文字明說了一個缺口:「規格沒有說組長要在多久內回覆。」產出必須保留這個缺口。
|
|
158
|
+
|
|
159
|
+
### 陷阱
|
|
160
|
+
|
|
161
|
+
組長的時限。訊息的內容。剛好 NT$5,000 的退款規則。檢查顧客歷史紀錄的步驟。
|
|
162
|
+
|
|
163
|
+
### 預期規模
|
|
164
|
+
|
|
165
|
+
原文有 7 個 `mechanism` 項目(申請、日期檢查、駁回、分流、客服決定、付款與電子郵件、組長核准),以及 1 個 `uncertainty` 項目(組長缺少時限)。每一階都應該呈現同樣的 8 項,或列出沒有畫的項目。
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 案例 3:重試函式
|
|
170
|
+
|
|
171
|
+
**類型**:含數字與兩處不確定說法的程式碼解說。
|
|
172
|
+
|
|
173
|
+
### 原文
|
|
174
|
+
|
|
175
|
+
> 函式 `fetchWithRetry` 最多呼叫付款 API 4 次。第一次呼叫立刻發生。呼叫失敗後,它會先等一會兒,再做下一次。等待從 200 ms 開始,每次加倍,所以等待時間是 200 ms、400 ms 和 800 ms。它只在網路錯誤與 HTTP 狀態 503 時重試。遇到其他狀態,例如 400,它就停止並回傳錯誤。4 次呼叫全部失敗時,它丟出最後一個錯誤。程式沒有加入隨機抖動,所以許多同時失敗的用戶端可能會同時重試。我們還沒有測試 API 回傳狀態 429 時會發生什麼事。
|
|
176
|
+
|
|
177
|
+
### 問題與標準答案
|
|
178
|
+
|
|
179
|
+
| # | 問題 | 類型 | 採計 |
|
|
180
|
+
|---|------|------|------|
|
|
181
|
+
| 1 | 這個函式最多呼叫幾次? | 事實 | 4 次 |
|
|
182
|
+
| 2 | 呼叫之間的等待時間是多少? | 事實 | 200 ms、400 ms、800 ms |
|
|
183
|
+
| 3 | 哪些失敗會重試? | 事實 | 網路錯誤與 HTTP 狀態 503 |
|
|
184
|
+
| 4 | 遇到狀態 400 會怎樣? | 事實 | 停止並回傳錯誤 |
|
|
185
|
+
| 5 | 程式沒有加入抖動。接下來可能發生什麼? | 不確定語氣 | 許多同時失敗的用戶端可能會同時重試。這是一種可能,不是必然 |
|
|
186
|
+
| 6 | 遇到狀態 429 會怎樣? | 未提及 | 不知道。還沒有測試過 |
|
|
187
|
+
|
|
188
|
+
### 不確定用詞清單
|
|
189
|
+
|
|
190
|
+
「可能會同時重試」、「我們還沒有測試」。
|
|
191
|
+
|
|
192
|
+
### 陷阱
|
|
193
|
+
|
|
194
|
+
狀態 429 的行為(重試或不重試)。用戶端確實會同時重試的說法。原文沒有給的等待總時間上限。API 的名稱。
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 案例 4:上傳檔案要存在哪裡
|
|
199
|
+
|
|
200
|
+
**類型**:三個選項與取捨(適合第 2 階)。
|
|
201
|
+
|
|
202
|
+
### 原文
|
|
203
|
+
|
|
204
|
+
> 我們比較了三種儲存使用者上傳檔案的方式。選項 A:把檔案放在應用程式伺服器的磁碟上。它最便宜,也不需要新工具。但伺服器一換,檔案就會遺失,而且兩台伺服器無法共用檔案。選項 B:使用雲端供應商的物件儲存。以目前的量來說,費用約為每月 NT$600。更換伺服器後檔案仍在,任何一台伺服器都能讀取。它需要一次性的存取金鑰設定。選項 C:使用網路檔案共用。伺服器之間可以共用檔案,也不需要改程式。但它多出一台要維護的機器,而且我們認為,在高負載下它會比較慢。我們建議選項 B。我們還沒有測試選項 C 的速度。
|
|
205
|
+
|
|
206
|
+
### 問題與標準答案
|
|
207
|
+
|
|
208
|
+
| # | 問題 | 類型 | 採計 |
|
|
209
|
+
|---|------|------|------|
|
|
210
|
+
| 1 | 文字說哪個選項在更換伺服器後檔案仍在? | 事實 | 選項 B。(文字說選項 A 不會。對選項 C,文字沒有說。) |
|
|
211
|
+
| 2 | 選項 B 的費用是多少? | 事實 | 以目前的量來說,約每月 NT$600 |
|
|
212
|
+
| 3 | 哪個選項不需要改程式? | 事實 | 選項 C |
|
|
213
|
+
| 4 | 團隊建議哪個選項? | 事實 | 選項 B |
|
|
214
|
+
| 5 | 在高負載下,選項 C 比較慢嗎? | 不確定語氣 | 團隊認為是,但還沒有測試過 |
|
|
215
|
+
| 6 | 選項 C 的費用是多少? | 未提及 | 文字沒有說 |
|
|
216
|
+
|
|
217
|
+
### 不確定用詞清單
|
|
218
|
+
|
|
219
|
+
「約 NT$600」、「我們認為它會比較慢」、「我們還沒有測試」。
|
|
220
|
+
|
|
221
|
+
### 陷阱
|
|
222
|
+
|
|
223
|
+
選項 A 或選項 C 的費用。選項 C 在更換伺服器後檔案仍在的說法。沒有帶不確定語氣、就說選項 C 比較慢。原文沒有給的建議理由。
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 案例 5:存取紀錄裡的工作階段權杖
|
|
228
|
+
|
|
229
|
+
**類型**:含未知事項與尚未評等風險的資安發現。
|
|
230
|
+
|
|
231
|
+
### 原文
|
|
232
|
+
|
|
233
|
+
> 審查 API 閘道時,我們發現存取紀錄可能含有工作階段權杖。用戶端把權杖放在網址的查詢字串、而不是放在標頭時,權杖就會出現在紀錄裡。行動 App 2.3 版在個人資料畫面這樣做。網頁用戶端使用標頭,不受影響。紀錄保存 90 天,有 12 位工程師可以讀取。我們沒有找到有人使用過被記下的權杖的證據。風險大概是中等,但我們還沒有正式評等。我們提出兩項修改:行動 App 把權杖改放標頭,以及在紀錄中遮蔽查詢字串。我們還不知道有多少使用者在用 App 2.3 版。
|
|
234
|
+
|
|
235
|
+
### 問題與標準答案
|
|
236
|
+
|
|
237
|
+
| # | 問題 | 類型 | 採計 |
|
|
238
|
+
|---|------|------|------|
|
|
239
|
+
| 1 | 權杖什麼時候會出現在紀錄裡? | 事實 | 用戶端把它放在網址的查詢字串、而不是標頭時 |
|
|
240
|
+
| 2 | 哪些用戶端受影響? | 事實 | 行動 App 2.3 版,在個人資料畫面。網頁用戶端不受影響 |
|
|
241
|
+
| 3 | 紀錄保存多久?誰能讀? | 事實 | 90 天。12 位工程師 |
|
|
242
|
+
| 4 | 有沒有人被證實濫用被記下的權杖? | 不確定語氣 | 沒有找到證據。這不等於「沒有人這樣做」 |
|
|
243
|
+
| 5 | 風險有多嚴重? | 不確定語氣 | 大概是中等。尚未正式評等 |
|
|
244
|
+
| 6 | 有多少使用者在用 App 2.3 版? | 未提及 | 還不知道 |
|
|
245
|
+
|
|
246
|
+
### 不確定用詞清單
|
|
247
|
+
|
|
248
|
+
「可能含有」、「沒有找到……證據」、「大概是中等」、「還沒有正式評等」、「還不知道」。
|
|
249
|
+
|
|
250
|
+
### 陷阱
|
|
251
|
+
|
|
252
|
+
受影響使用者的人數。沒有任何權杖被濫用的說法。正式的風險等級(例如「高」或「中」)。修復日期。網頁用戶端有風險的說法。
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## 實跑之後
|
|
257
|
+
|
|
258
|
+
- 記下日期、模型名稱、讀者人數,以及誰計算防護違反。
|
|
259
|
+
- 把填好的回報表放在本檔旁邊。不要覆寫案例。
|
|
260
|
+
- 防護違反次數大於 0 時,先修技能,再去解讀答對率。加了事實或拿掉不確定語氣的產出,可能拉高答對率,卻仍然誤導讀者。
|
|
261
|
+
- 某段原文被發現有歧義時,把原文與答案一起修正,再重跑那個案例。
|
package/bundled/skills/README.md
CHANGED
|
@@ -49,6 +49,7 @@ These skills provide standard guidance and workflows. They can be accessed via s
|
|
|
49
49
|
| `refactoring-assistant` | `/refactor` | [UDS] Refactoring guidance |
|
|
50
50
|
| `project-discovery` | `/discover` | [UDS] Assess project health and risks |
|
|
51
51
|
| `brainstorm-assistant` | `/brainstorm` | [UDS] Structured AI-assisted ideation |
|
|
52
|
+
| `comprehension-ladder` | `/comprehend` | [UDS] Re-form a hard-to-follow AI output as controlled text, a Mermaid diagram, or an offline HTML explainer, without changing the facts |
|
|
52
53
|
| `changelog-guide` | `/changelog` | [UDS] Generate changelog entries |
|
|
53
54
|
| `dev-workflow-guide` | `/dev-workflow` | [UDS] Map development phases to UDS commands |
|
|
54
55
|
| `docs-generator` | `/docgen` | [UDS] Generate usage documentation |
|