원클릭으로
intervals-time-entries
Use when starting, stopping, editing, syncing, reviewing, or retroactively adding Intervals timers or time entries.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when starting, stopping, editing, syncing, reviewing, or retroactively adding Intervals timers or time entries.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | intervals-time-entries |
| description | Use when starting, stopping, editing, syncing, reviewing, or retroactively adding Intervals timers or time entries. |
Time entry classification should be history-guided, not guess-driven. Never assume a timer should be started just because work is beginning. Before creating or changing timers/time entries, inspect recent local timers and time entries, ask for confirmation before starting any timer unless the user explicitly requested it, and use similar prior work to choose project/worktype/module.
Use this skill for any request involving Intervals time tracking, including:
Always gather context before creating, editing, or syncing a time entry or timer:
intervals_list_time.intervals_list_timers when the request involves timers or could be affected by an active timer. Before starting a new timer, if any active timer exists, ask whether it should be stopped first.intervals_query_time for date-scoped requests such as “today”, “yesterday”, “this week”, or when recent entries are not enough.intervals_find_project_context to resolve project names, ticket prefixes, worktypes, modules, and ambiguous project matches.Do not skip the recent-entry check just because the user supplied a ticket key or project name.
When work is beginning but the user did not explicitly ask to start a timer:
Before starting any timer after explicit user request or confirmation:
intervals_list_timers.When the user asks to start a timer using only a ticket key, e.g. “start a timer for FOU-406”:
TICKET-123: Issue title, e.g. FOU-406: Upgrade to Python 3.14.Look for recent entries/timers with the same or similar:
FOU-406, FOU-*CLBH005-NSClubhouseIf a recent matching entry exists, reuse its:
Example: if the user says “add timer for FOU-406” and a recent entry says:
CLBH005-NS ... /foundations (Consulting) | FOU-406: Fix mypy 1.20.2 upgrade type-check failures
start the timer with the same project, worktype, and module, and use the same ticket description style.
If a project name is ambiguous, prefer the most likely recent match rather than asking immediately.
Example: if “Clubhouse” matches both CLBH005-NS and CLBH006-NS, inspect recent entries. If recent work is on CLBH005-NS with the same ticket prefix or repo/path context, use CLBH005-NS and state that it was chosen based on recent matching entries.
Ask a clarification question only when:
Ask one concise question and include the leading candidates.
A “new project” means there is no sufficiently similar recent time entry/timer for the project/worktype/module combination.
When starting a timer for a new project after the user explicitly requested or confirmed the timer:
intervals_find_project_context and path clues.intervals_set_project_defaults with the confirmed worktype/module.For retroactive entries, resolve required project/worktype before creating the entry. If worktype/module cannot be inferred safely, ask before adding the entry.
intervals_start_timer only when the user explicitly requested a timer or answered yes when asked whether to start one. First check active timers and ask whether any running timer should be stopped. Include project/worktype/module hints when confidently inferred from recent history.intervals_stop_timer when the user finishes work. Re-check recent entries if classification is missing or stale. NB: Do not modify the timer project, worktype or module if it already set.intervals_add_time for retroactive entries. Convert durations to minutes.intervals_edit_time to fix failed or incorrect entries, then verify with intervals_list_time or intervals_query_time.intervals_delete_time when the user wants to remove a time entry. If the user references a stopped timer, pass timer_id so the linked time entry is deleted.intervals_sync_now after adding/editing/stopping if the tool did not already sync, or when the user explicitly asks to retry sync.intervals_find_project_context before relying on a project/worktype/module ID that came from text rather than a previous time entry.~/.pi/intervals/intervals.db directly for normal workflows. Use intervals_list_time, intervals_query_time, and intervals_lookup_time_entry; these expose local time entry IDs, local start/end windows, sync status, and timer-to-entry mapping without direct DB access.08:35, use stop_time instead of raw end_at. stop_time is interpreted as local time and recalculates duration from the entry's stored start time.intervals_lookup_time_entry(timer_id=...) or intervals_edit_time(timer_id=...); do not map the timer to a time entry through SQLite.Be careful with local catalog row IDs versus Intervals remote IDs.
intervals_find_project_context and IDs shown in synced/recent time-entry tool output.intervals_find_project_context, then retry sync.When you create, edit, or start a timer/time entry, briefly report:
Keep the response concise.
FOU-406 as the description when the issue title is available.end_at without updating duration. Use stop_time for user-facing stop-time changes.