Spaces:
Sleeping
Sleeping
Commit
·
a9cfb34
1
Parent(s):
51bd8bf
docs: update copilot instructions and project prompts for spec compliance clarity
Browse files
.github/ISSUE_TEMPLATE/spec.yml
CHANGED
|
@@ -8,7 +8,7 @@ body:
|
|
| 8 |
label: 使用者故事(User Story)
|
| 9 |
description: 作為 ___,我想要 ___,以便 ___。
|
| 10 |
placeholder: >-
|
| 11 |
-
|
| 12 |
validations:
|
| 13 |
required: true
|
| 14 |
|
|
@@ -24,29 +24,28 @@ body:
|
|
| 24 |
label: 預期行為(Behavior)
|
| 25 |
description: 描述介面/流程/輸出行為,盡量具體
|
| 26 |
placeholder: >-
|
| 27 |
-
- UI
|
| 28 |
-
-
|
| 29 |
|
| 30 |
- type: textarea
|
| 31 |
id: contract
|
| 32 |
attributes:
|
| 33 |
label: 契約(資料形狀/輸入輸出/限制)
|
| 34 |
-
description:
|
| 35 |
placeholder: >-
|
| 36 |
-
-
|
| 37 |
-
- station/target: (1, 25, 4) -> [lat, lon, elev, vs30]
|
| 38 |
|
| 39 |
- type: textarea
|
| 40 |
id: edge-cases
|
| 41 |
attributes:
|
| 42 |
label: 邊界情境與降級策略(Edge cases & fallback)
|
| 43 |
-
placeholder:
|
| 44 |
|
| 45 |
- type: textarea
|
| 46 |
id: ui
|
| 47 |
attributes:
|
| 48 |
label: UI 變更
|
| 49 |
-
placeholder:
|
| 50 |
|
| 51 |
- type: checkboxes
|
| 52 |
id: checklist
|
|
|
|
| 8 |
label: 使用者故事(User Story)
|
| 9 |
description: 作為 ___,我想要 ___,以便 ___。
|
| 10 |
placeholder: >-
|
| 11 |
+
作為使用者,我想選擇資料與參數並查看輸出結果的呈現與對照,以便快速比對系統表現。
|
| 12 |
validations:
|
| 13 |
required: true
|
| 14 |
|
|
|
|
| 24 |
label: 預期行為(Behavior)
|
| 25 |
description: 描述介面/流程/輸出行為,盡量具體
|
| 26 |
placeholder: >-
|
| 27 |
+
- UI:新增或調整元件的可見性、狀態與提示文案。
|
| 28 |
+
- 核心:不變。
|
| 29 |
|
| 30 |
- type: textarea
|
| 31 |
id: contract
|
| 32 |
attributes:
|
| 33 |
label: 契約(資料形狀/輸入輸出/限制)
|
| 34 |
+
description: 例如資料結構、欄位、預設值、邊界值
|
| 35 |
placeholder: >-
|
| 36 |
+
- 參見 docs/spec.md 中的 I/O shape、欄位約束與限制。
|
|
|
|
| 37 |
|
| 38 |
- type: textarea
|
| 39 |
id: edge-cases
|
| 40 |
attributes:
|
| 41 |
label: 邊界情境與降級策略(Edge cases & fallback)
|
| 42 |
+
placeholder: 例如:輸入不足、來源缺失、逾時、格式錯誤…(以 docs/spec.md 為準)
|
| 43 |
|
| 44 |
- type: textarea
|
| 45 |
id: ui
|
| 46 |
attributes:
|
| 47 |
label: UI 變更
|
| 48 |
+
placeholder: 新增/調整元件、固定尺寸、文案、提示訊息…(具體規格以 docs/spec.md 為準)
|
| 49 |
|
| 50 |
- type: checkboxes
|
| 51 |
id: checklist
|
.github/copilot-instructions.md
CHANGED
|
@@ -3,22 +3,22 @@
|
|
| 3 |
請在本倉庫撰寫或修改程式碼時,務必遵循 `docs/spec.md` 的契約與不變條件。以下是重點守則與常見情境處理方式:
|
| 4 |
|
| 5 |
關鍵文件
|
| 6 |
-
- 必讀:`docs/spec.md
|
| 7 |
-
-
|
| 8 |
-
-
|
| 9 |
- 任務追蹤:`docs/task.md`(跨對話追蹤的任務拆解與驗收)
|
| 10 |
- 變更摘要:`change-log.md`(完成後的高層摘要,非逐 Task 對應)
|
| 11 |
|
| 12 |
核心守則(務必遵守)
|
| 13 |
-
-
|
| 14 |
-
-
|
| 15 |
-
-
|
| 16 |
-
-
|
| 17 |
-
-
|
| 18 |
-
-
|
| 19 |
-
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
|
| 23 |
程式碼風格與作法
|
| 24 |
- 加入或變更功能時,請以註解說明與 spec 的對齊;無需使用編號標籤。
|
|
@@ -27,17 +27,17 @@
|
|
| 27 |
- 避免將模型結構分散於多處;若需重構,提供明確入口(工廠或封裝函式)。
|
| 28 |
|
| 29 |
常見任務提示
|
| 30 |
-
-
|
| 31 |
-
|
| 32 |
-
-
|
| 33 |
-
-
|
| 34 |
-
-
|
| 35 |
-
-
|
| 36 |
-
-
|
| 37 |
|
| 38 |
提交前檢查(最低需求)
|
| 39 |
- 是否符合 `docs/spec.md` 的輸入/輸出 shape 與不變條件?
|
| 40 |
-
-
|
| 41 |
- Log 是否清楚易懂,足以追蹤降級與邊界情境?
|
| 42 |
|
| 43 |
任務工作流:docs/task.md(跨對話沿用)
|
|
|
|
| 3 |
請在本倉庫撰寫或修改程式碼時,務必遵循 `docs/spec.md` 的契約與不變條件。以下是重點守則與常見情境處理方式:
|
| 4 |
|
| 5 |
關鍵文件
|
| 6 |
+
- 必讀:`docs/spec.md`(專案規格與設計;專案入口與主要程式請以此為準)
|
| 7 |
+
- 主要程式與入口:請參考 `docs/spec.md` 中「主要程式/入口」章節(本文件不列舉檔名)
|
| 8 |
+
- 範例/樣板流程:請參考 `docs/spec.md` 中的相關章節(本文件不列舉檔名)
|
| 9 |
- 任務追蹤:`docs/task.md`(跨對話追蹤的任務拆解與驗收)
|
| 10 |
- 變更摘要:`change-log.md`(完成後的高層摘要,非逐 Task 對應)
|
| 11 |
|
| 12 |
核心守則(務必遵守)
|
| 13 |
+
- 合約優先:一切行為以 `docs/spec.md` 為準,不在本文件重複或硬編領域常數。若發現不一致,先以 spec 為準並提出修正建議。
|
| 14 |
+
- I/O 與資料契約:嚴格遵循 spec 定義的輸入/輸出形狀與資料欄位;任何變更需先更新 spec,並標註相容性與回滾策略。
|
| 15 |
+
- 失敗降級與可觀測性:對所有可能失敗點提供明確降級方案與可追溯的 log;避免單一站點/檔案/服務錯誤導致整體中斷。
|
| 16 |
+
- 邏輯集中與封裝:將跨處共用的關鍵規則與資源(例如資料載入、批次策略、對外服務查詢)集中封裝,避免分散於多處。
|
| 17 |
+
- UI 行為:UI 顯示警告與提示的判準來自 spec;UI 不做字串解析以偷渡參數,不將關鍵參數藏於顯示名稱中。
|
| 18 |
+
- 外部資源與預設:對外部依賴(檔案、API、模型、地圖資源)提供預設值、快取與退回路徑,並記錄使用情況與原因。
|
| 19 |
+
- 相容性優先:新增或變更功能時,優先保持向後相容;若必須變更公共行為或 I/O,先在 spec 說明,並準備遷移與回滾。
|
| 20 |
+
- 測試與驗收:對邊界情境(輸入不足、資料缺失、逾時、格式錯誤)至少提供冒煙測試或最小可驗證步驟,並在 PR 說明列出。
|
| 21 |
+
- 原則性限制(抽象):批次處理、長度/頻率/資源上限等僅在 spec 定義;本文件僅要求「遵循 spec 的限制」,不重複具體數值。
|
| 22 |
|
| 23 |
程式碼風格與作法
|
| 24 |
- 加入或變更功能時,請以註解說明與 spec 的對齊;無需使用編號標籤。
|
|
|
|
| 27 |
- 避免將模型結構分散於多處;若需重構,提供明確入口(工廠或封裝函式)。
|
| 28 |
|
| 29 |
常見任務提示
|
| 30 |
+
- 注意:本節僅提供流程範例;所有領域細節、檔名/欄位/限制一律以 `docs/spec.md` 為準。
|
| 31 |
+
- 新增資料來源:
|
| 32 |
+
- 依 `docs/spec.md` 放置必要輸入,並更新程式的資料清單或索引。
|
| 33 |
+
- 新增目標對象:
|
| 34 |
+
- 依 `docs/spec.md` 更新目標清單,不修改核心流程與模型行為。
|
| 35 |
+
- 新增輸入來源:
|
| 36 |
+
- 依 `docs/spec.md` 更新來源清單,避免重複與格式不符。
|
| 37 |
|
| 38 |
提交前檢查(最低需求)
|
| 39 |
- 是否符合 `docs/spec.md` 的輸入/輸出 shape 與不變條件?
|
| 40 |
+
- 針對 spec 中定義的邊界情境(如輸入不足、資料缺失、逾時、格式錯誤等)是否提供冒煙測試或最小驗證步驟?
|
| 41 |
- Log 是否清楚易懂,足以追蹤降級與邊界情境?
|
| 42 |
|
| 43 |
任務工作流:docs/task.md(跨對話沿用)
|
.github/prompts/project.plan.prompt.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
目的
|
| 4 |
- 輸出一個可審核的計畫草案,不做任何檔案修改或指令執行。
|
| 5 |
-
- 對齊本倉庫 `docs/spec.md`
|
| 6 |
|
| 7 |
輸入(由提問者提供)
|
| 8 |
- 需求描述或問題背景。
|
|
@@ -13,7 +13,7 @@
|
|
| 13 |
- Checklist(最多 7 項):
|
| 14 |
- 要做的子任務(小而可驗收),每項附驗收標準。
|
| 15 |
- 依序標注:Plan→Propose→Apply→Test→Report 對應到哪些子任務。
|
| 16 |
-
- Invariants 對齊:逐條列出是否受影響(Done/Not Impacted/At Risk
|
| 17 |
- 風險與回滾:主要風險、緩解、回滾方式(最小可逆)。
|
| 18 |
- 冒煙測試:2–4 個步驟,含預期輸出要點。
|
| 19 |
- 等待核准訊息:請明示「回覆『核准』或指出需調整的項目」。
|
|
|
|
| 2 |
|
| 3 |
目的
|
| 4 |
- 輸出一個可審核的計畫草案,不做任何檔案修改或指令執行。
|
| 5 |
+
- 對齊本倉庫 `docs/spec.md` 的不變條件與契約;所有領域常數與限制一律以 spec 為準,不在此重述。
|
| 6 |
|
| 7 |
輸入(由提問者提供)
|
| 8 |
- 需求描述或問題背景。
|
|
|
|
| 13 |
- Checklist(最多 7 項):
|
| 14 |
- 要做的子任務(小而可驗收),每項附驗收標準。
|
| 15 |
- 依序標注:Plan→Propose→Apply→Test→Report 對應到哪些子任務。
|
| 16 |
+
- Invariants 對齊:逐條列出是否受影響(Done/Not Impacted/At Risk),並指向 `docs/spec.md` 的相關條目。
|
| 17 |
- 風險與回滾:主要風險、緩解、回滾方式(最小可逆)。
|
| 18 |
- 冒煙測試:2–4 個步驟,含預期輸出要點。
|
| 19 |
- 等待核准訊息:請明示「回覆『核准』或指出需調整的項目」。
|
.github/prompts/project.report.prompt.md
CHANGED
|
@@ -6,6 +6,6 @@
|
|
| 6 |
請輸出
|
| 7 |
- 變更摘要(對照 `docs/task.md` 與 `change-log.md`)
|
| 8 |
- 品質門檻:Build/Lint/Test 狀態(PASS/FAIL)
|
| 9 |
-
- Requirements coverage
|
| 10 |
- 冒煙測試成果重點
|
| 11 |
- 建議的後續工作與風險
|
|
|
|
| 6 |
請輸出
|
| 7 |
- 變更摘要(對照 `docs/task.md` 與 `change-log.md`)
|
| 8 |
- 品質門檻:Build/Lint/Test 狀態(PASS/FAIL)
|
| 9 |
+
- Requirements coverage:對照 `docs/spec.md` 的不變條件與需求,標記 Done/Deferred(含原因)
|
| 10 |
- 冒煙測試成果重點
|
| 11 |
- 建議的後續工作與風險
|
.github/pull_request_template.md
CHANGED
|
@@ -4,14 +4,12 @@
|
|
| 4 |
## 規格對齊(spec compliance)
|
| 5 |
- 相關規格:
|
| 6 |
- [ ] 介面/流程契約符合 `docs/spec.md`
|
| 7 |
-
- [ ]
|
| 8 |
-
- [ ]
|
| 9 |
|
| 10 |
## 邊界/降級驗證
|
| 11 |
-
- [ ]
|
| 12 |
-
- [ ]
|
| 13 |
-
- [ ] Vs30 載入失敗使用預設值並記錄 log
|
| 14 |
-
- [ ] duration < 30 秒零填充
|
| 15 |
|
| 16 |
## 測試與驗證
|
| 17 |
- 測試方式或冒煙步驟(貼出輸出截圖/關鍵 log):
|
|
|
|
| 4 |
## 規格對齊(spec compliance)
|
| 5 |
- 相關規格:
|
| 6 |
- [ ] 介面/流程契約符合 `docs/spec.md`
|
| 7 |
+
- [ ] 核心不變條件(依 `docs/spec.md` 條目)
|
| 8 |
+
- [ ] 欄位/資料格式要求(依 `docs/spec.md`)
|
| 9 |
|
| 10 |
## 邊界/降級驗證
|
| 11 |
+
- [ ] 針對 `docs/spec.md` 定義的邊界情境已驗證(輸入不足、來源缺失、逾時、格式錯誤等)
|
| 12 |
+
- [ ] 降級策略符合 `docs/spec.md`,並提供清楚 log
|
|
|
|
|
|
|
| 13 |
|
| 14 |
## 測試與驗證
|
| 15 |
- 測試方式或冒煙步驟(貼出輸出截圖/關鍵 log):
|