
Planning With Files Zht
Run long agent sessions with Traditional Chinese planning files (task_plan.md, progress.md) and Stop-hook phase completion checks.
Overview
planning-with-files-zht is an agent skill most often used in Build (also Validate scope, Ship review) that enforces task_plan.md phase tracking with 繁體 Stop-hook status reporting.
Install
npx skills add https://github.com/othmanadi/planning-with-files --skill planning-with-files-zhtWhat is this skill?
- Stop hook script reports task_plan.md phase counts (complete / in_progress / pending)
- Supports **狀態:** complete markers and fallback [complete] inline syntax
- Always exits 0 so incomplete plans are normal, not hook failures
- Traditional Chinese (繁體) messages for planning-with-files workflow
- Pairs with progress.md updates before ending a session
- Stop hook counts phases via ### 階段 headers and **狀態:** complete / in_progress / pending
Adoption & trust: 3.9k installs on skills.sh; 22.9k GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
Long agent tasks lose structure when you stop mid-run and have no file-backed phase checklist in your preferred language.
Who is it for?
Builders who already use planning-with-files conventions and want 繁體 hook output and phase labels.
Skip if: One-shot prompts with no repo-local plan files or teams standardized on English-only planning-with-files without ZHT hooks.
When should I use this skill?
When using planning-with-files with 繁體 labels and Stop hooks that report task_plan.md phase completion.
What do I get? / Deliverables
You keep task_plan.md and progress.md in sync, get clear ZHT completion ratios on Stop, and add new 階段 before starting extra work after a full complete run.
- Updated task_plan.md phase statuses
- progress.md notes before session end
- Console summary of complete/total phases on Stop
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Build PM because the skill persists structured plans and progress while coding. File-based task plans and phase status markers are project-management artifacts for agents, not shipping or growth work.
Where it fits
Break a prototype milestone into 階段 in task_plan.md before coding features.
Mark phases in_progress and complete as the agent implements each slice.
Confirm all phases show complete before merge or release checklist.
How it compares
Locale variant of file-based agent planning—not a replacement for issue trackers or Linear.
Common Questions / FAQ
Who is planning-with-files-zht for?
Solo and indie builders running Claude Code or similar agents who want Traditional Chinese status messages tied to task_plan.md phases.
When should I use planning-with-files-zht?
During Validate when scoping multi-phase work into task_plan.md, during Build while executing phases, and before Ship when you verify all 階段 are complete.
Is planning-with-files-zht safe to install?
It runs local scripts that read task_plan.md only; review the Security Audits panel on this page and inspect hook scripts in your repo.
SKILL.md
READMESKILL.md - Planning With Files Zht
# 檢查 task_plan.md 中所有階段是否完成 # 始終以退出碼 0 結束 — 使用標準輸出回報狀態 # 由 Stop 鉤子呼叫以回報任務完成狀態 param( [string]$PlanFile = "task_plan.md" ) if (-not (Test-Path $PlanFile)) { Write-Host '[planning-with-files] 未找到 task_plan.md — 沒有進行中的規劃會話。' exit 0 } # 讀取檔案內容 $content = Get-Content $PlanFile -Raw # 計算階段總數 $TOTAL = ([regex]::Matches($content, "### 階段")).Count # 先檢查 **狀態:** 格式 $COMPLETE = ([regex]::Matches($content, "\*\*狀態:\*\* complete")).Count $IN_PROGRESS = ([regex]::Matches($content, "\*\*狀態:\*\* in_progress")).Count $PENDING = ([regex]::Matches($content, "\*\*狀態:\*\* pending")).Count # 備用:如果未找到 **狀態:** 則檢查 [complete] 行內格式 if ($COMPLETE -eq 0 -and $IN_PROGRESS -eq 0 -and $PENDING -eq 0) { $COMPLETE = ([regex]::Matches($content, "\[complete\]")).Count $IN_PROGRESS = ([regex]::Matches($content, "\[in_progress\]")).Count $PENDING = ([regex]::Matches($content, "\[pending\]")).Count } # 回報狀態 — 始終以退出碼 0 結束,未完成的任務是正常狀態 if ($COMPLETE -eq $TOTAL -and $TOTAL -gt 0) { Write-Host ('[planning-with-files] 所有階段已完成(' + $COMPLETE + '/' + $TOTAL + ')。如果使用者有額外工作,請在開始前於 task_plan.md 中新增階段。') } else { Write-Host ('[planning-with-files] 任務進行中(' + $COMPLETE + '/' + $TOTAL + ' 個階段已完成)。停止前請更新 progress.md。') if ($IN_PROGRESS -gt 0) { Write-Host ('[planning-with-files] ' + $IN_PROGRESS + ' 個階段仍在進行中。') } if ($PENDING -gt 0) { Write-Host ('[planning-with-files] ' + $PENDING + ' 個階段待處理。') } } exit 0 #!/usr/bin/env bash # 檢查 task_plan.md 中所有階段是否完成 # 始終以退出碼 0 結束 — 使用標準輸出回報狀態 # 由 Stop 鉤子呼叫以回報任務完成狀態 PLAN_FILE="${1:-task_plan.md}" if [ ! -f "$PLAN_FILE" ]; then echo "[planning-with-files] 未找到 task_plan.md — 沒有進行中的規劃會話。" exit 0 fi # 計算階段總數 TOTAL=$(grep -c "### 階段" "$PLAN_FILE" || true) # 先檢查 **狀態:** 格式 COMPLETE=$(grep -cF "**狀態:** complete" "$PLAN_FILE" || true) IN_PROGRESS=$(grep -cF "**狀態:** in_progress" "$PLAN_FILE" || true) PENDING=$(grep -cF "**狀態:** pending" "$PLAN_FILE" || true) # 備用:如果未找到 **狀態:** 則檢查 [complete] 行內格式 if [ "$COMPLETE" -eq 0 ] && [ "$IN_PROGRESS" -eq 0 ] && [ "$PENDING" -eq 0 ]; then COMPLETE=$(grep -c "\[complete\]" "$PLAN_FILE" || true) IN_PROGRESS=$(grep -c "\[in_progress\]" "$PLAN_FILE" || true) PENDING=$(grep -c "\[pending\]" "$PLAN_FILE" || true) fi # 預設為 0(如果為空) : "${TOTAL:=0}" : "${COMPLETE:=0}" : "${IN_PROGRESS:=0}" : "${PENDING:=0}" # 回報狀態(始終以退出碼 0 結束 — 未完成的任務是正常狀態) if [ "$COMPLETE" -eq "$TOTAL" ] && [ "$TOTAL" -gt 0 ]; then echo "[planning-with-files] 所有階段已完成($COMPLETE/$TOTAL)。如果使用者有額外工作,請在開始前於 task_plan.md 中新增階段。" else echo "[planning-with-files] 任務進行中($COMPLETE/$TOTAL 個階段已完成)。停止前請更新 progress.md。" if [ "$IN_PROGRESS" -gt 0 ]; then echo "[planning-with-files] $IN_PROGRESS 個階段仍在進行中。" fi if [ "$PENDING" -gt 0 ]; then echo "[planning-with-files] $PENDING 個階段待處理。" fi fi exit 0 # 初始化新會話的規劃檔案 # 用法:.\init-session.ps1 [專案名稱] param( [string]$ProjectName = "project" ) $DATE = Get-Date -Format "yyyy-MM-dd" Write-Host "正在初始化規劃檔案:$ProjectName" # 如果 task_plan.md 不存在則建立 if (-not (Test-Path "task_plan.md")) { @" # 任務計畫:[簡要描述] ## 目標 [用一句話描述最終狀態] ## 目前階段 階段 1 ## 各階段 ### 階段 1:需求與發現 - [ ] 理解使用者意圖 - [ ] 確定約束條件和需求 - [ ] 將發現記錄到 findings.md - **狀態:** in_progress ### 階段 2:規劃與結構 - [ ] 確定技術方案 - [ ] 如有需要建立專案結構 - **狀態:** pending ### 階段 3:實作 - [ ] 按計畫逐步執行 - [ ] 先將程式碼寫入檔案再執行 - **狀態:** pending ### 階段 4:測試與驗證 - [ ] 驗證所有需求已滿足 - [ ] 將測試結果記錄到 progress.md - **狀態:** pending ### 階段 5:交付 - [ ] 檢查所有輸出檔案 - [ ] 交付給使用者 - **狀態:** pending ## 已做決策 | 決策 | 理由 | |------|------| ## 遇到的錯誤 | 錯誤 | 解決方案 | |------|---------| "@ | Out-File -FilePath "task_plan.md" -Encoding UTF8 Write-Host "已建立 task_plan.md" } else { Write-Host "task_plan.md 已存在,跳過" } # 如果 findings.md 不存在則建立 if (-not (Test-Path "findings.md")) { @" # 發現與決策 ## 需求 - ## 研究發現 - ## 技術決策 | 決策 | 理由 | |------|------| ## 遇到的問題 | 問題 | 解決方案 | |------|---------| ## 資源 - "@ | Out-File -FilePath "findings.md" -Encoding UTF8 Write-Host "已建立 findings.md" } else { W