適用:教學或示範用的工具需要「看起來像病歷、像排班表」的案例資料,但不是任何真實的人。
平台的安全檢查只認樣式,分不出真假:長得像身分證字號、健保卡號、病歷號就會被擋(twn-id、nhi-card、patient-mrn 是 blocker),
像病患或員工欄位名會抬高等級下限。照本 skill 產生資料,就不會命中;真的需要真實樣式時,走最後一節的人工核可。
什麼時候用這個 skill
- 使用者要做教材、練習題、展示畫面,內容需要病人或員工「案例」。
- 使用者手上有真資料想拿來當範例:不可以。立即提醒(llms.txt 鐵律 1),改用本 skill 產生。
- 若工具會連到真實系統或存真實資料,這不是合成資料的問題,回到分級問診。
合成資料的長相(不會命中檢查)
| 欄位 | 用這個 | 不要用 |
|---|---|---|
| 身分證字號 | X0 開頭加 8 碼,例如 X012345678(第二碼是 0,真實格式第二碼只會是 1 或 2) | A123456789 這類真實格式 |
| 健保卡號 | 9999 開頭加 8 碼,例如 999900001234 | 0000 開頭的 12 碼 |
| 病歷號 | 欄位名用 case_no,值用 DEMO-000123 | 「病歷號」「MRN」加純數字 |
| 姓名 | 王測試、李範例、陳示範、林假名 | 任何真實同仁或病人姓名 |
| 生日/日期 | 1900 年代,例如 1901-02-03 | 近年的真實日期 |
| 員工工號 | 欄位名用 demo_staff_no,值用 T-0001 | employee_id、工號 加真實格式 |
| 診斷、檢驗值 | 可以用常見教科書案例,但配上面的假姓名與假編號 | 從真實病歷複製 |
畫面上要標示「示範資料,非真實個案」,讓使用者一眼看出。
產生器(貼進 index.html 即可)
const DEMO_NAMES = ['王測試', '李範例', '陳示範', '林假名', '張樣本'];
function makeFakePatient(i) {
return {
name: DEMO_NAMES[i % DEMO_NAMES.length],
id_no: `X0${String(10000000 + i).slice(-8)}`, // 第二碼 0:真實格式不會有
nhi_no: `9999${String(10000000 + i).slice(-8)}`,
case_no: `DEMO-${String(i).padStart(6, '0')}`,
birth: `19${String(1 + (i % 99)).padStart(2, '0')}-01-01`,
};
}
function makeFakeStaff(i) {
return { name: DEMO_NAMES[i % DEMO_NAMES.length], demo_staff_no: `T-${String(i).padStart(4, '0')}`, unit: '示範科' };
}manifest 怎麼寫
- `data.collects` 留空,除非這個應用真的把資料存進平台的資料服務。
它問的是「這個應用存了什麼」,不是「畫面上出現了什麼」——平台用它判斷應用有沒有儲存
(目錄上的「會存資料」標記),而且 public/members 的應用只要它非空就會被發佈閘門擋下,
訊息是「不能儲存資料」。一個把假案例寫死在頁面裡的衛教工具什麼都沒存,填了反而讓它
被標成有儲存、而且再也不能設為公開(2026-09-20 實跑中真的發生過)。
應用若真的把假資料存進資料服務(例如讓學生練習填寫並留下紀錄),那就照 form-app 的規則
如實列出存下來的欄位。
classification.context多半是education。skills_used加synthetic-data。- 不需要宣告
synthetic_fixtures:資料不會命中檢查。
真的需要「像真的」時:人工核可(例外路徑)
有些教學要學生辨識真實格式(例如身分證檢查碼),假資料必須長得像真的,檢查一定會命中。做法:
- 把假資料集中在獨立檔案或目錄(例如
fixtures/),不要散在程式碼裡。 - manifest 加
data.synthetic_fixtures: [fixtures/](目錄以/結尾,或列出檔案)。 - push 讓 CI 掃過:這些檔案內的資料命中不會擋 CI,會列在
synthetic.hits,狀態none。 - 告訴使用者:到平台的應用管理頁「合成資料」卡簽署同意書並送出申請,審核員核准後才能發佈(測試環境與正式環境都要)。
- 核可綁定這些檔案的內容:之後改動
fixtures/內的檔案,要重新申請;核可一年有效。
金鑰、eval、http:// 資源不在豁免範圍:即使放在 fixtures/ 也照常擋。