工作申請追蹤器
將一個本機、可攜帶的工作看板作為應用程式紀錄的單一事實來源。讓使用者自然對話;解析正確的看板,保留既有資訊,並套用確定性、無衝突的變更。
語言政策
保持技能實作、代理程式指示、參考文件、腳本、架構、註解與測試使用英文。將英文名稱與定義視為標準。
對使用者的介面可以進行在地化。README.md 與 assets/dashboard-* 前端檔案目前包含中文與英文。儲存階段與批次的中立語言代碼,使顯示語言永遠不會改變底層含義。
必要參考文件
僅閱讀目前操作所需的參考文件:
- 在記錄、更新、驗證、摘要或提醒之前,閱讀 references/data-model.md。
- 在安裝、啟用、定位、移動、修復或啟動看板之前,閱讀 references/deployment.md。
- 在重建或變更儀表板、啟動器、本機伺服器或視覺化邏輯之前,閱讀 references/board-ui.md。
先解析看板
將選定的目錄標記為 BOARD_DIR。
在 macOS/Linux 上使用 python3。在 Windows 上,將以下指令中的 python3 替換為 py -3(如果可用),否則使用 python。
-
如果使用者提供路徑,檢查該路徑:
python3 <skill-dir>/scripts/board_locator.py inspect --board-dir <path>如果它包含有效的舊版
data.json但缺少標記檔,說明將新增一個可攜帶、非敏感的識別檔案,然後執行:python3 <skill-dir>/scripts/board_locator.py mark --board-dir <path> -
否則,探索已標記的看板:
python3 <skill-dir>/scripts/board_locator.py discover -
嚴格解讀探索結果:
- 退出碼 0:使用該單一有效看板,並回報其路徑與紀錄數量。
- 退出碼 4:要求提供現有路徑或明確許可來建立新看板。
- 退出碼 5:顯示所有候選看板,並要求使用者選擇。
永遠不要根據修改時間、紀錄數量或猜測來選擇。永遠不要因為探索失敗就建立看板。永遠不要在使用者的家目錄中儲存全域絕對路徑的註冊表。
安全資料工作流程
對於每次讀取或寫入:
-
解析
BOARD_DIR。 -
當日期影響操作時,取得真實的當前日期:在 macOS/Linux 上執行
date +%Y-%m-%d,或在 Windows PowerShell 上執行(Get-Date).ToString('yyyy-MM-dd')。 -
建立快照:
python3 <skill-dir>/scripts/data_store.py snapshot \ --data <BOARD_DIR/data.json> -
保留回傳的
boardTitle、可選的lang、可選的stageLevels、所有紀錄、所有未知但有效的紀錄欄位,以及回傳的 ETag。 -
對於寫入操作,建立一個候選 JSON 檔案並安全地取代:
python3 <skill-dir>/scripts/data_store.py replace \ --data <BOARD_DIR/data.json> \ --input <candidate.json> \ --expected-etag <etag> -
將退出碼 3 視為並行編輯衝突。取得新的快照,僅重新套用使用者請求的變更,然後重試。永遠不要強制寫入過時的資料。
-
僅在工具成功後確認操作成功。
永遠不要直接寫入 data.json。永遠不要在沒有使用者明確確認的情況下載入教學範例,或將其視為真實的申請。永遠不要在僅進行資料操作時修改已部署的引擎檔案。
核心操作
記錄或更新申請
- 閱讀 references/data-model.md。
- 根據公司與職位比對現有紀錄。如果目標不明確,請使用者選擇。
- 對於新紀錄,需要公司與職位。針對遺漏的選擇性詳細資料(管道、申請入口、城市與招募批次)詢問一次,然後等待使用者回答或明確要求跳過,再進行儲存。
- 在
records的開頭插入新紀錄,使新申請預設顯示在最前面。更新紀錄時,保留其在陣列中的現有位置。 - 對於現有紀錄,僅變更使用者提到的欄位。
- 透過附加事件來推進進度;永遠不要維護一個獨立的狀態欄位。
- 對於未見過的自訂階段,保留其確切文字並新增
stageLevels規則。使用使用者要求的放置位置;否則預設放置在緊鄰k_hr之前的一個不同層級。 - 除非使用者明確要求寫入內容,否則保持
note為空。 - 使用安全資料工作流程,並回報確切被變更的紀錄與事件。
永遠不要虛構公司、職位、日期、管道、地點、薪資、結果或面試輪次。
顯示文字進度摘要
- 閱讀 references/data-model.md。
- 建立安全快照,但不修改資料。
- 首先將今日起至未來七天的符合條件的日期提醒事項列出。
- 將紀錄分組為:進行中、已錄取、已結束、尚未申請。
- 識別停滯的進行中紀錄與即將到來的里程碑。
- 以一個具體的下一步行動作為結尾。
除非使用者明確要求,否則不要重建 HTML。
開啟或重建視覺化看板
- 閱讀 references/deployment.md 與 references/board-ui.md。
- 在觸碰引擎檔案之前,先解析並驗證現有看板。
- 一般情況下,告訴使用者啟動看板並開啟
http://127.0.0.1:8770/。 - 僅在引擎檔案缺失,或使用者明確要求重建或更新引擎時,才重新複製前端引擎組。
- 保留
data.json與所有備份檔。
安裝或啟用
閱讀 references/deployment.md 並遵循其「先探索」的工作流程。技能的安裝與新看板的建立是兩個不同的動作。建立看板需要使用者的明確意圖。
嚴格規則
- 僅使用已解析、已標記的
BOARD_DIR。 - 不要無聲地建立替代看板。
- 不要遞迴掃描使用者的家目錄。
- 不要儲存全域路徑註冊表。
- 對每個代理程式端的資料寫入操作都使用
data_store.py。 - 保留未提及的資料與現有欄位。
- 除非明確要求,否則保持
note為空。 - 使用來自
references/data-model.md的中立階段與批次代碼。 - 使用真實的當前日期;不要依賴心算日期。
- 如果無法取得檔案寫入權限,解釋確切的步驟,且永遠不要聲稱寫入成功。
- 除非使用者同時明確要求,否則不要將資料修改與引擎重建合併。
- 在部署或更新引擎檔案時,不要覆蓋
data.json、.data.backup.*.json或.job-tracker-board.json。
捆綁資源
scripts/board_locator.py:識別、標記並安全探索看板目錄。scripts/data_store.py:快照、驗證、衝突檢查、原子性取代與備份資料。assets/dashboard-template.html、dashboard.css與dashboard-*.js:在地化、無依賴的儀表板模組。assets/server.py:僅限迴圈回送的本機伺服器與經過驗證的資料 API。assets/start.command/assets/stop.command:macOS 啟動器。assets/start-board.bat/assets/stop-board.bat以及對應的 PowerShell 輔助腳本:附帶健康檢查與診斷日誌的 Windows 啟動器。assets/data.json:僅供明確請求的新看板使用的空白種子檔案。tools/:確定性的桑基圖交叉迴歸工具。