46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
---
|
|
name: worklog
|
|
description: After finishing a work package, collect ten facts (repo, branch, plan link, work package link, elapsed time from session-timer, token usage per CLI, status, details, difficulties, PR target) and append a templated entry to wiki LOG_{yyyyMM}_W{week} plus LOG_CONTENTS. Week number is derived from the Friday of the work week. Trigger at the end of implement or maintain; not for planning notes.
|
|
---
|
|
|
|
# worklog — work log
|
|
|
|
After work completes, collect the ten items below and append a `templates/log-entry.md` entry to the wiki log page. Collection and writing MUST run as a sub agent. The entry content is written in Traditional Chinese (STE100).
|
|
|
|
## Items to collect
|
|
|
|
| # | Item | Source |
|
|
| --- | --- | --- |
|
|
| 1 | Repository name | Parse `{owner}/{repo}` from `git remote get-url origin` |
|
|
| 2 | Branch name | `git branch --show-current` |
|
|
| 3 | Plan name | Link to the plan page `[[PLAN_{...}]]` |
|
|
| 4 | Work package id | Link to the work package heading on the analyze page `[[ANALYZE_{...}#WP-xx]]` |
|
|
| 5 | Elapsed time | `jsc-hooks/hooks/session-timer.sh report {session_id}` (seconds; convert to h/m) |
|
|
| 6 | Token usage | See the table below; per-CLI methods differ. Fill `N/A` when unavailable |
|
|
| 7 | Task status | One of the literal values 「完成」、「部分完成」、「阻塞」 (with reason when blocked) |
|
|
| 8 | Details and outputs | Summarize what changed and which files or pages were produced |
|
|
| 9 | Difficulties and resolutions | One pair per line |
|
|
| 10 | PR target branch | Link to the PR page |
|
|
|
|
### How to get token usage
|
|
|
|
| CLI | Method |
|
|
| --- | --- |
|
|
| claude | Sum the `usage` fields in transcript JSONL (`~/.claude/projects/**/*.jsonl`), or read `usage` from `claude -p --output-format json` |
|
|
| codex | Token counters under `~/.codex/sessions/**`, or `/status` inside the session |
|
|
| copilot | `/usage` inside the session |
|
|
| antigravity | Value shown in the UI; `N/A` when unreadable |
|
|
| kiro | No public source; fill `N/A` |
|
|
|
|
## Target page and week number
|
|
|
|
- Page name: `LOG_{yyyyMM}_W{週數}`. Both values come from the Friday of the current work week:
|
|
```sh
|
|
dow=$(date +%u)
|
|
if [ "$dow" -ge 6 ]; then f=$(date -d 'last friday' +%Y%m%d); else f=$(date -d 'friday' +%Y%m%d); fi
|
|
yyyyMM=$(printf '%s' "$f" | cut -c1-6)
|
|
W=$(( ( $(printf '%s' "$f" | cut -c7-8 | sed 's/^0//') - 1 ) / 7 + 1 )) # which Friday of the month
|
|
```
|
|
- Read the page via `jsc-gitea:wiki`. If it does not exist, create it with the structure described in `templates/log-contents.md`; otherwise APPEND the new entry at the end.
|
|
- Update `LOG_CONTENTS` in the same pass (apply `templates/log-contents.md`; add the week's row if missing).
|