cyanluna-git/cyanluna.skills/worklog-sync
Claude Code and agent skill by cyanluna-git/cyanluna.skills
- community
Checking that the SKILL.md file is still in the repository.
Sync kanban board tasks to EOB weekly worklogs. Reads completed/in-progress kanban cards, maps them to worklog projects, estimates hours from timestamps, aggregates by day, and submits via the EOB API.
Install
npx vskill@latest install cyanluna-git/cyanluna.skills/worklog-syncSKILL.md
Overview
Reads kanban board tasks and creates weekly worklog entries in the Engineering Operation Board (EOB). Tasks are aggregated by date + project + work type into one worklog card per group.
Project Classification
Each kanban project has a worklog_type:
| type | Behavior | |
|---|---|---|
work | Maps to an EOB project; worklog created with project_id | |
non-project | Worklog created without project_id (work type only) | |
personal | Excluded from sync entirely |
Project Settings Storage
Primary: Kanban DB project_settings table (via PUT /api/project-settings/:project) Fallback: ~/.claude/worklog-sync.json → project_map (only if the deployed API has not been updated yet)
Kanban API for project_settings
If the API returns 404, fall back to project_map in config file. Do not read any local DB directly.
Configuration
~/.claude/worklog-sync.json:
Commands
/worklog-sync login — Authenticate with EOB
- Ask user for email and password via AskUserQuestion.
- Authenticate:
- Extract tokens and get user info:
- Save to
~/.claude/worklog-sync.json.
/worklog-sync map — Configure Project Mapping
- Fetch all kanban projects and their current settings:
- Fetch EOB project hierarchy for matching:
- For each kanban project without settings, ask user via AskUserQuestion:
- worklog_type:
work/non-project/personal - If
work: select EOB project from hierarchy - Default work type code
- Save via API:
/worklog-sync — Main Sync Flow
Procedure:
- Load auth & refresh token if needed
If token expired, try refresh → if refresh fails, prompt /worklog-sync login.
- Determine target week (default: current week Mon–Sun)
- Fetch kanban board
- Load project mappings: try
board.project_settingsfirst, fall back toconfig.project_map - Filter out projects where
worklog_type == "personal"→ skip entirely - Projects not in any mapping → flag as "UNMAPPED" in preview, ask user to classify
- Collect tasks relevant for the week
- Status
donewithcompleted_atwithin the target week - Status
impl,impl_review,test,plan,plan_reviewwith timestamps within the week
- Estimate hours from timestamps
Use task lifecycle timestamps to calculate actual work time per day:
`` started_at → planned_at = planning work planned_at → reviewed_at = review + iteration reviewed_at → tested_at = implementation time tested_at → completed_at = testing time started_at → completed_at = total elapsed (fallback) ``
Rules:
- Calculate elapsed time between phase timestamps
- Cap at 8h per day per task (workday assumption)
- If elapsed > 1 day, distribute hours across work days (Mon–Fri) within the range
- Minimum: 0.5h per task phase
- Round to nearest 0.5h
agent_logtimestamps can be used for more granular per-day breakdown
Example:
- Task #42:
started_at=04/01 09:00,completed_at=04/02 15:00 - Elapsed: ~1.25 work days → 04/01: 4h, 04/02: 4h (distribute evenly)
- Fetch existing worklogs (duplicate check)
Skip if same date + project + similar description already exists.
- Fetch work type tree (resolve codes to IDs)
- Aggregate into daily worklog cards
Core rule: same date + same project + same work_type → one worklog card.
Group all task entries by (date, project, work_type_code), then:
- hours: Sum of all tasks in the group (cap at 8h per card)
- project_id: From
project_settings.eob_project_id - work_type_category_id: Resolve code from work type tree
- description: Brief list of what was done inside the card
Description format — concise activity log, not individual task dumps: `` 인증 모듈 구현 완료, API 검증 수정, 사이드바 정렬 개선 ``
- Each item: short summary (task title condensed to ~15 chars) + 완료/진행 중
- Comma-separated, one line
- If too many items (>5), summarize:
SW 개발 7건 (인증 모듈, API 검증 외 5건)
Daily cap: If a single card exceeds 8h, cap at 8h. Remaining hours are dropped (user can adjust in preview).
Example aggregation: ``` Raw tasks for 02/27, OQC Digitalization, ENG-SW: #37 run.sh 실행 모드 개선 (0.5h) #40 SemiAutoTaskForm (0.5h) #41 TaskSchema parser (0.5h) #42 Edge Runner timeout (0.5h) #44 Gherkin DB 마이그레이션 (0.5h)
→ Aggregated card: date: 2026-02-27 project: OQC Digitalization Infrastructure work_type: ENG-SW hours: 2.5h description: "run.sh 실행모드 개선, SemiAutoTaskForm, TaskSchema parser, Edge Runner timeout, Gherkin DB 마이그레이션 완료" ```
- Preview to user
- User adjusts via AskUserQuestion if needed (hours, project, work type, date, remove).
- Submit approved entries
- Report results
/worklog-sync status — Weekly Summary
- Load auth, fetch current week's worklogs:
- Display:
Work Type Quick Reference
| Code | Name | When to Use | |
|---|---|---|---|
ENG-SW | Software Development | Default for kanban coding tasks | |
ENG-SW-COD | Implementation (Coding) | Specific coding work | |
ENG-SW-REQ | Requirements Analysis | Planning/requirements tasks | |
ENG-SW-TST | Unit Testing | Test writing | |
ENG-SW-DBG | Debugging | Bug fixes | |
PRJ-REV | Review & Approval | Code review tasks | |
PRJ-PLN | Planning & Scheduling | Sprint planning | |
MTG-INT | Internal Meeting | Team meetings | |
QMS-QC | Quality Control | QC-related tasks | |
SUP-TKT | Ticket/Issue Resolution | Support tickets |
Task-to-WorkType Inference Rules
When default_work_type_code doesn't cover it, infer from task content:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 93 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingworklog-sync/SKILL.md
Popularity
- Repository stars
- 165
- Repository forks
- 41
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/cyanluna-git/cyanluna.skills/worklog-sync)