关于 work-log-claude
面向 Claude 的技能,可根据 AI 辅助对话记录和 git 历史生成语义化工作日志。支持按日期范围和项目筛选,并输出到终端、Markdown 文件或 Obsidian。
主要功能
- 01总结 AI 辅助工作
- 02纳入 git 历史
- 03按日期范围和项目筛选
- 04输出到终端或 Markdown
- 05写入 Obsidian 笔记
适用场景
- 01回顾当天完成的工作
- 02生成每周项目日志
- 03将指定日期范围报告保存为 Markdown
- 04在 Obsidian 记录工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ valorvie/ ai-dev-skills --skill work-log-claude安装后在 Claude Code 中输入/work-log-claude确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
config.yamlconftest.pypyproject.tomluv.lockprompts/summarize.mdtests/__init__.pytest_extractors.pytest_formatters.pytest_git_collector.pytest_parser.pytests/fixtures/sample_codex_index.jsonlsample_session.jsonlwl_parser/__init__.pyextractors.pyformatters.pygit_collector.pywork_log_parser.py详细介绍
来自项目 READMEWork Log Claude
根據 AI 輔助工具的對話紀錄與 git 歷史,自動產生具有語意摘要的工作日誌。
使用方式
/work-log-claude <時間範圍> [結束日期] [--project <name>] [--output <mode>]
時間範圍: today | yesterday | this-week | this-month | YYYY-MM-DD 輸出模式: terminal | file | obsidian | all(預設 all)
範例:
/work-log-claude today
/work-log-claude yesterday --output terminal
/work-log-claude this-week --project example-app
/work-log-claude 2026-03-01 2026-03-11 --output file
執行流程
收到使用者呼叫後,依照以下步驟執行:
Step 1: 讀取設定
讀取本 skill 目錄下的 config.yaml,取得以下設定:
timezone(預設 Asia/Taipei)output_dir(Markdown 輸出目錄,預設 docs/work-logs)obsidian_vault(Obsidian vault 路徑)obsidian_folder(vault 內子資料夾,預設 work-logs)default_output(預設輸出模式,預設 all)claude_home(預設 ~/.claude)codex_home(預設 ~/.codex)
若設定檔不存在,使用預設值。
Step 2: 解析參數
從使用者的呼叫中提取:
TIME_RANGE:第一個參數(必填)END_DATE:第二個參數(可選,用於自訂日期範圍)--project PROJECT:專案過濾器(可選)--output MODE:輸出模式(可選,預設使用 config.yaml 的 default_output)
Step 3: 執行 Parser
用 Bash 工具執行 Python parser,產生含 git 資料的結構化 JSON:
SKILL_DIR="<skill_path>"
PYTHONPATH="$SKILL_DIR" python3 -m wl_parser.work_log_parser \
TIME_RANGE \
[END_DATE] \
--timezone "TIMEZONE" \
[--project "PROJECT"] \
--claude-home "$HOME/.claude" \
--codex-home "$HOME/.codex" \
2>/dev/null > /tmp/wl_report.json
將佔位符替換為實際值。
Step 4: AI 摘要
用 Read 工具讀取 /tmp/wl_report.json。只需關注以下欄位:
projects:每個專案的short_name、git_commits(message + files_changed + insertions/deletions)、duration_minutes、session_countsummary:total_duration_minutes、project_count
不需要讀取 sessions、tool_summary、token_summary(這些由 formatter 處理)。
用 Read 工具讀取本 skill 目錄下的 prompts/summarize.md。
根據 prompt template 的指引,產生摘要文字。用 Write 工具將摘要寫入 /tmp/wl_summary.md。
Step 5: 格式化並輸出
先用 formatter CLI 產生機械性區塊:
terminal 模式
SKILL_DIR="<skill_path>"
PYTHONPATH="$SKILL_DIR" python3 -m wl_parser.formatters terminal < /tmp/wl_report.json > /tmp/wl_formatted.md
然後依序顯示:
/tmp/wl_summary.md的內容(AI 摘要)/tmp/wl_formatted.md的內容(工時統計 + 每日表格)
file 模式
SKILL_DIR="<skill_path>"
FILENAME="YYYY-MM-DD.md" # 或 YYYY-MM-DD--YYYY-MM-DD.md 對範圍查詢
OUTPUT_PATH="docs/work-logs/$FILENAME"
PYTHONPATH="$SKILL_DIR" python3 -m wl_parser.formatters full_report < /tmp/wl_report.json > /tmp/wl_formatted.md
用 Read 工具讀取 /tmp/wl_summary.md 和 /tmp/wl_formatted.md。
用 Write 工具組合兩者寫入 $OUTPUT_PATH:
<wl_formatted.md 的標題行>
<wl_summary.md 內容>
<wl_formatted.md 標題行以下的內容>
注意:wl_formatted.md 已包含標題行,組合時用 wl_formatted.md 的標題,不要重複。
obsidian 模式
SKILL_DIR="<skill_path>"
OBSIDIAN_PATH="$OBSIDIAN_VAULT/$OBSIDIAN_FOLDER/YYYY-MM-DD.md"
mkdir -p "$(dirname "$OBSIDIAN_PATH")"
PYTHONPATH="$SKILL_DIR" python3 -m wl_parser.formatters obsidian < /tmp/wl_report.json > /tmp/wl_formatted.md
用 Write 工具組合 frontmatter + AI 摘要 + formatted 內容寫入 $OBSIDIAN_PATH。
all 模式
依序執行 terminal → file → obsidian(可重用同一份 /tmp/wl_report.json)。
Step 6: 回報結果
告知使用者:
- 終端摘要已顯示(terminal / all 模式)
- Markdown 檔案已寫入路徑(file / all 模式)
- Obsidian 筆記已寫入路徑(obsidian / all 模式)
注意事項
- Skill 路徑:將
<skill_path>替換為目前 agent 載入此 skill 的絕對根目錄;不得假設安裝在~/.claude/skills/ - 首次使用:確認
config.yaml的obsidian_vault路徑正確 - Codex 支援:僅整合 session thread 標題,不解析 SQLite
- 時區:所有時間以 config.yaml 的 timezone 顯示,預設 Asia/Taipei(UTC+8)
- Git 資料:每個專案最多收集 50 筆 commit,使用 --stat 而非完整 diff
- AI 摘要:由執行 skill 的 Claude Code 自身產生,不呼叫外部 API