Jira: Log
Write, gated. This skill routes to whichever of worklog/
worklog_edit/worklog_delete fits the request -- run from this
skill's directory:
1. Figure out the intent
- New time being logged ("log 2h on PAY-123", "I spent 30m on PAY-123 today") -> log (below).
- An existing entry is wrong ("fix that worklog", "wrong date, should be
Tuesday", "change the description on that time log") -> edit
(below). Find
--worklog_idviajira-issue-summary'sworklogs[].id, or the id a prior log call returned. - An entry should be removed entirely ("delete that worklog", "remove the time I logged by mistake") -> delete (below), not edit.
2. Run the matching command
# Log new time
python3 ../jira/scripts/jira_tool.py worklog --issue_key PAY-123 --duration 2h \
--description "implementing validation" [--date 2026-07-20] --confirm
# Fix an existing entry (at least one of --duration/--description/--date;
# omitted fields are left unchanged)
python3 ../jira/scripts/jira_tool.py worklog_edit --issue_key PAY-123 --worklog_id 28459 \
[--duration 2h] [--description "..."] [--date 2026-07-20] --confirm
# Permanently delete an entry -- cannot be undone
python3 ../jira/scripts/jira_tool.py worklog_delete --issue_key PAY-123 --worklog_id 28459 --confirm
(First-time setup, once per environment: pip install -r ../jira/requirements.txt.)
--date (log/edit) accepts a relative offset (-1d), an ISO date, or a
full ISO datetime -- resolve relative day-names ("last Tuesday",
"yesterday") to an actual calendar date yourself first; these tools
don't parse natural-language dates and never silently log against
"today" when the user meant a different day.
3. Confirmation gate applies to all three
Every command above refuses to execute unless run with --confirm
(enforced in code, not just prompted). Unless JIRA_AUTO_CONFIRM_WRITES=true
is set:
- State exactly what you're about to do -- for log/edit, include the resolved date if not today; for edit, state old vs. new duration/description/date; for delete, state the specific entry (issue, duration, date, description if known), since it's irreversible -- and wait for the user's explicit yes.
- Only then re-run the same command with
--confirmappended. - If a result has
"requires_confirmation": true, treat that as the tool declining to act -- relaypending_actionto the user and ask, don't retry with--confirmon your own.
Already know exactly which action you need? jira-worklog/
jira-worklog-edit/jira-worklog-delete call the same underlying
commands directly, without the routing step.
This skill assumes the request already names one concrete action on one
issue. If instead the user is narrating their day -- "I'm starting on
X now", "two bugs came in and took an hour", "log my day" -- use
jira-track, which accumulates the timeline across messages, separates
interruptions from focused work, and only then logs each issue's time.
If the result contains "error", tell the user what went wrong in
plain language instead of retrying silently or fabricating a result.
See ../jira/README.md for architecture details and the full
environment-variable table.