Spaces:
Sleeping
Sleeping
Commit
·
fef6341
1
Parent(s):
3562630
docs: update change log and project initialization prompt for clarity and structure
Browse files- .github/prompts/project.init.prompt.md +41 -40
- .github/spec-template.md +38 -79
- change-log.md +32 -55
.github/prompts/project.init.prompt.md
CHANGED
|
@@ -1,43 +1,44 @@
|
|
| 1 |
# /project.init — 初始化規格(Project Init)
|
| 2 |
|
| 3 |
-
目的
|
| 4 |
- 快速產生或盤點 `spec/spec.md`,作為契約與不變條件的單一來源。
|
| 5 |
-
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
-
|
| 10 |
-
-
|
| 11 |
-
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
-
|
| 38 |
-
-
|
| 39 |
-
|
| 40 |
-
守則
|
| 41 |
-
-
|
| 42 |
-
-
|
| 43 |
-
-
|
|
|
|
|
|
| 1 |
# /project.init — 初始化規格(Project Init)
|
| 2 |
|
| 3 |
+
## 目的
|
| 4 |
- 快速產生或盤點 `spec/spec.md`,作為契約與不變條件的單一來源。
|
| 5 |
+
- 判斷 greenfield(無程式)還是 brownfield(有程式),輸出精簡的規格建議。
|
| 6 |
+
|
| 7 |
+
## 輸入
|
| 8 |
+
使用者提供:
|
| 9 |
+
- 專案摘要(用途、主要流程、使用者)
|
| 10 |
+
- I/O 與外部依賴(已知則填,未知可空)
|
| 11 |
+
- 現有文件/README(若有)
|
| 12 |
+
- 程式碼結構(若提供 → brownfield)
|
| 13 |
+
|
| 14 |
+
## 判定邏輯
|
| 15 |
+
- **Greenfield**:無程式碼,LLM 產生初版骨架
|
| 16 |
+
- **Brownfield**:有程式碼,LLM 盤點代碼、提出建議
|
| 17 |
+
|
| 18 |
+
## 輸出
|
| 19 |
+
|
| 20 |
+
### Greenfield 模式
|
| 21 |
+
以 `.github/spec-template.md` 為範本,產出:
|
| 22 |
+
1. 簡潔骨架:7 個章節(見 template)各列 1–2 行
|
| 23 |
+
2. 填入已知資訊,未知處留 TODO
|
| 24 |
+
3. 「後續補齊清單」:需要調查或決策的項目
|
| 25 |
+
|
| 26 |
+
### Brownfield 模式
|
| 27 |
+
掃描既有程式,產出簡潔建議:
|
| 28 |
+
1. **系統概觀**:架構 & 核心組件(3–5 句)
|
| 29 |
+
2. **I/O 契約**:輸入/輸出形狀、必填欄位、格式
|
| 30 |
+
3. **不變條件 & 邊界**:核心規則、失敗時降級方式
|
| 31 |
+
4. **外部依賴**:主要服務/檔案、失敗降級
|
| 32 |
+
5. **缺漏清單**:規格缺失或不清楚的項
|
| 33 |
+
6. **驗證位置**:程式入口、設定檔位置(供查證)
|
| 34 |
+
|
| 35 |
+
## 完成後
|
| 36 |
+
- 提示使用者確認內容
|
| 37 |
+
- 建議根據建議手動建立或更新 `spec/spec.md`
|
| 38 |
+
- 提示下一步:在 spec 確認後執行 `/project.plan` 進入迭代規劃
|
| 39 |
+
|
| 40 |
+
## 守則
|
| 41 |
+
- **不修改檔案**:僅提供建議文字(不實際寫 spec)
|
| 42 |
+
- **簡潔優先**:決策層級,不列完整資料結構或假資料
|
| 43 |
+
- **領域知識集中**:數值、規則盡量導向 spec,避免散落
|
| 44 |
+
- **實務優先**:只記錄「必須知道的」
|
.github/spec-template.md
CHANGED
|
@@ -1,89 +1,48 @@
|
|
| 1 |
# 規格(Spec)模板 — 單人專案簡化版
|
| 2 |
|
| 3 |
-
>
|
| 4 |
-
>
|
| 5 |
|
| 6 |
## 1. 概述(Overview)
|
| 7 |
-
|
| 8 |
-
-
|
| 9 |
-
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
-
|
| 14 |
-
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
-
|
| 19 |
-
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
-
|
| 24 |
-
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
-
|
| 29 |
-
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
-
|
| 34 |
-
-
|
| 35 |
-
|
| 36 |
-
## 7.
|
| 37 |
-
-
|
| 38 |
-
-
|
| 39 |
-
- **無障礙/國際化**:如有特殊需求則列出。
|
| 40 |
-
|
| 41 |
-
## 8. 擴充點(Extensibility)
|
| 42 |
-
- **新增資料來源/目標**:如何添加新資源而不修改核心邏輯。
|
| 43 |
-
- **新增輸入源/功能模組**:預留的設定/表格/介面位置。
|
| 44 |
-
- **版本遷移**:破壞性變更時的因應步驟。
|
| 45 |
-
|
| 46 |
-
## 9. 最小測試(Testing Checklist)
|
| 47 |
-
- ✅ Happy path:完整流程 1 次(包含所有必填欄位)。
|
| 48 |
-
- ✅ 邊界 1:資料不足/缺漏時能降級並顯示警告。
|
| 49 |
-
- ✅ 邊界 2:外部服務失敗時能使用預設值/佔位。
|
| 50 |
-
- ✅ 邊界 3:異常格式/超限時能記錄並繼續。
|
| 51 |
-
|
| 52 |
-
## 10. 變更紀錄(Decision Log)
|
| 53 |
-
- YYYY-MM-DD: 條目、影響、相容性、連結(PR/Issue)。
|
| 54 |
-
|
| 55 |
-
---
|
| 56 |
-
|
| 57 |
-
## 附錄 A:常數與參考設定(可選)
|
| 58 |
-
|
| 59 |
-
| 項目 | 預設值 | 來源 |
|
| 60 |
-
|------|--------|------|
|
| 61 |
-
| 常數 1 | 值 A | 硬編/約束/降級 |
|
| 62 |
-
| 常數 2 | 值 B | 硬編/約束/降級 |
|
| 63 |
-
| 常數 N | 值 N | 硬編/約束/降級 |
|
| 64 |
-
|
| 65 |
-
---
|
| 66 |
-
|
| 67 |
-
## 附錄 B:資料欄位(可選)
|
| 68 |
-
|
| 69 |
-
### 輸入欄位範例
|
| 70 |
-
- `[源 1 路徑]`: `[欄位 A, 欄位 B, 欄位 C, ...]`
|
| 71 |
-
- `[源 2 路徑]`: `[欄位 D, 欄位 E, 欄位 F, ...]`
|
| 72 |
-
|
| 73 |
-
### 輸出欄位範例
|
| 74 |
-
- `[輸出格式]`: `[欄位 1, 欄位 2, 欄位 3, ...]`
|
| 75 |
|
| 76 |
---
|
| 77 |
|
| 78 |
## 使用建議
|
| 79 |
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
4. **新增功能**:先更新本文件(尤其 I/O 與邊界),再寫程式。
|
| 85 |
-
|
| 86 |
-
### 何時升級為完整版
|
| 87 |
-
- 多人協作開始、需求快速變化、或涉及多層級服務時,補充第 7–8 節與完整圖表。
|
| 88 |
-
- 仍需參考原始 spec-template.md 作為參考。
|
| 89 |
|
|
|
|
| 1 |
# 規格(Spec)模板 — 單人專案簡化版
|
| 2 |
|
| 3 |
+
> **用途**:作為專案的契約與不變條件單一來源(Single Source of Truth)。
|
| 4 |
+
> **原則**:簡潔、可執行、易維護。只記錄「必須知道的」,不列完整執行結果或逐行詳解。
|
| 5 |
|
| 6 |
## 1. 概述(Overview)
|
| 7 |
+
**三句話說清楚**:
|
| 8 |
+
- 問題 & 目標:一句話
|
| 9 |
+
- 非目標:避免什麼
|
| 10 |
+
- 主要輸入/輸出:資料流向
|
| 11 |
+
|
| 12 |
+
## 2. 核心流程
|
| 13 |
+
- 主要入口:CLI/Web/腳本/API
|
| 14 |
+
- 3–5 步簡述
|
| 15 |
+
- 關鍵外部依賴:服務/檔案/第三方庫名稱
|
| 16 |
+
|
| 17 |
+
## 3. I/O 契約
|
| 18 |
+
- **輸入**:資料形狀、必填欄位、預設值
|
| 19 |
+
- **輸出**:預期格式、主要欄位
|
| 20 |
+
- **相容性**:破壞性變更如何識別
|
| 21 |
+
|
| 22 |
+
## 4. 不變條件 & 邊界
|
| 23 |
+
- **核心規則**:不可破壞的假設(採樣率、處理單位上限、並行限制等)
|
| 24 |
+
- **邊界行為**:缺漏/格式錯誤 → 降級策略(跳過/預設值/日誌警告)
|
| 25 |
+
- **資源限制**:記憶體/時間/配額(語義級,具體值在設定檔)
|
| 26 |
+
|
| 27 |
+
## 5. 外部依賴 & 降級
|
| 28 |
+
- **主要依賴**:用途、介面、失敗時的替代行為
|
| 29 |
+
- **日誌原則**:各失敗點應記 WARNING/ERROR(描述現象+替代方案)
|
| 30 |
+
- **重試/快取**:簡述策略(無則不列)
|
| 31 |
+
|
| 32 |
+
## 6. 擴充與相容(可選)
|
| 33 |
+
- 新增資料源/模組的預留方式
|
| 34 |
+
- 版本遷移計畫(若有破壞性變更)
|
| 35 |
+
|
| 36 |
+
## 7. 驗收清單
|
| 37 |
+
- ✅ Happy path:完整流程
|
| 38 |
+
- ✅ 邊界情境:最常見的 1–2 個失敗案例
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
|
| 40 |
---
|
| 41 |
|
| 42 |
## 使用建議
|
| 43 |
|
| 44 |
+
1. **初期**:填 1–4 節,建立基本契約
|
| 45 |
+
2. **開發中**:發現新邊界時更新第 4–5 節
|
| 46 |
+
3. **功能擴展**:先更新本文,再寫程式
|
| 47 |
+
4. **記住**:不需列完整的執行結果、逐行說明或假資料,只記「決策」與「規則」
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
change-log.md
CHANGED
|
@@ -1,58 +1,35 @@
|
|
| 1 |
-
# Change Log
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
- 無需與 `docs/task.md` 一對一對應;可依里程碑/批次/日期合併紀錄。
|
| 6 |
-
|
| 7 |
-
使用方式
|
| 8 |
-
- 每次完成一批有意義的變更(合併 PR、完成里程碑、或結束一輪對話)時,新增一個條目。
|
| 9 |
-
- 條目內容建議包含下列要點;若無則可省略,但公共行為與 I/O shape 變更必寫:
|
| 10 |
-
- Highlights(做了什麼、為何做)
|
| 11 |
-
- Spec/契約影響(是否更新 `docs/spec.md`、不變條件有無變動)
|
| 12 |
-
- 行為或 I/O 變更(UI、張量 shape、欄位變化與相容性)
|
| 13 |
-
- 資料/站台檔影響(`station/*.csv` 欄位或資料需求變更)
|
| 14 |
-
- 降級與 Logging(新增/調整的降級策略、關鍵 log 片語)
|
| 15 |
-
- 測試與驗收(新增/更新的測試、手動冒煙結果要點)
|
| 16 |
-
- 風險與回滾(若適用)
|
| 17 |
-
- 連結(PR、Commits、相關 Task IDs 可選)
|
| 18 |
|
| 19 |
---
|
| 20 |
|
| 21 |
-
## 2025-10-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
-
|
| 26 |
-
-
|
| 27 |
-
-
|
| 28 |
-
-
|
| 29 |
-
|
| 30 |
-
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
- 資料/站台檔影響
|
| 50 |
-
- 無。
|
| 51 |
-
- 降級與 Logging
|
| 52 |
-
- 維持原有:duration < 30 秒時記錄 INFO 並 0 填充;其他降級策略不變。
|
| 53 |
-
- 測試與驗收
|
| 54 |
-
- 手動冒煙:duration=0/5/30 均可載入與預測;看到不足 30 秒之補齊 log 與正常輸出。
|
| 55 |
-
- 風險與回滾
|
| 56 |
-
- 低;若需回復,可將滑桿改回 1–60(單行改動)。
|
| 57 |
-
- 連結
|
| 58 |
-
- Task: T-20251025-duration-slider-0-30
|
|
|
|
| 1 |
+
# 變更記錄 (Change Log)
|
| 2 |
+
|
| 3 |
+
**專案**:TTSAM(Taiwan Transformer-based Shake Alert Model)
|
| 4 |
+
**格式**:高層變更摘要,按日期倒序排列
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
---
|
| 7 |
|
| 8 |
+
## 2025-10-26 — Brownfield Spec Init
|
| 9 |
+
|
| 10 |
+
### 新增
|
| 11 |
+
- **`spec/spec.md`**(v1.0):完整規格書
|
| 12 |
+
- 系統架構、I/O 契約、不變條件、限制
|
| 13 |
+
- 錯誤處理與日誌原則(spec #1–#7)
|
| 14 |
+
- 資源依賴、擴充指南、版本管理
|
| 15 |
+
- 審核檢查清單
|
| 16 |
+
- **`spec/plan.md`**:迭代計畫模板(待填)
|
| 17 |
+
- **`spec/task-template.md`**:任務拆解模板(待填)
|
| 18 |
+
|
| 19 |
+
### 說明
|
| 20 |
+
- 基於現有 `app.py` 與 README.md 進行 Brownfield 盤點
|
| 21 |
+
- 正式化 I/O 契約、不變條件、降級策略
|
| 22 |
+
- 確立長期設計參考點(`spec/spec.md`)與短期迭代計畫(`spec/plan.md`、`spec/task.md`)
|
| 23 |
+
|
| 24 |
+
### 後續工作清單
|
| 25 |
+
- [ ] 驗證 spec 對應現有程式碼(app.py、ttsam_realtime.py)
|
| 26 |
+
- [ ] 若發現差異或缺漏,更新 spec 或程式碼
|
| 27 |
+
- [ ] 根據開發需求,在 `spec/plan.md` 定義下一迭代目標
|
| 28 |
+
- [ ] 進行程式碼審核,確保滿足 spec 第 10 節檢查清單
|
| 29 |
+
|
| 30 |
+
---
|
| 31 |
+
|
| 32 |
+
**End of Change Log**
|
| 33 |
+
|
| 34 |
+
*此檔案記錄每個迭代/變更的高層摘要。詳細內容應參考 `spec/spec.md` 與 git commit 訊息。*
|
| 35 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|