Clockify enter time
Manual method: clockify_create_time_entry with entry_method: manual. Typed times stay exact.
Config-aware behavior
- If
config_rootis already known this session and still this repo, reuse it. Otherwise resolve once withgit rev-parse --show-toplevelfrom the working directory (open tabs are not required; multi-root: focused path only as a tie-breaker; non-git: Cursor window folder). Re-resolve when the folder or focused root changes. Pass that string on Clockify MCP calls — do not run git before every tool. clockify_get_configwithconfig_root. Honorentry.manual.description,entry.manual.task,entry.manual.overlap. Do not apply rounding.- Never invent project/task ids.
Workflow
clockify_get_running_timerwithconfig_root. If a timer is already running for this same work, do not double-count — point atclockify-stop-timer.- Resolve project (list/ensure). Resolve task from
entry.manual.task.from/if_missing(same rules as start-timer:prompt,template,local_folder,fixed, ornone). - Description: ask or use their text (
entry.manual.description.fromis alwaysprompt; no issue templates). - Times given (e.g. 09:30–09:45): convert to ISO and create. Do not round.
- Times omitted (forgot to track): infer start from cheap signals — git log / branch checkout, conversation timestamps, recent file edits. End defaults to now unless they give one. Show the inferred window and confirm. Never silently log hours.
clockify_create_time_entrywithconfig_rootandentry_method: manual. Ifoverlap: true, show the clash. Retry withconfirm_overlap: trueonly if they agree (oron_conflictisoverride). Override is how parallel completed streams can stack; do not treat that as the default.
Examples
User: "Log 9:30 to 10:15 on the login bug"
- Config + running-timer check.
- Create entry with those times, no rounding.