log-hours

Reconstructs a workday from Jira, git, and calendar signals and posts approved worklogs to Tempo.

Updated Jul 7, 2026
One-click install
npx skills add https://github.com/bbenefield89/skills --skill log-hours-bbenefield89
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: log-hours
Source: https://github.com/bbenefield89/skills/tree/main/skills/log-hours
Command: npx skills add https://github.com/bbenefield89/skills --skill log-hours-bbenefield89

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Manually reconstructing how a workday was spent and entering timesheets into Tempo is tedious and error-prone, especially when time must be split across tickets and tagged with the correct Tempo Project. This Skill deduces per-ticket time from all available activity sources, fills the day to 8 hours weighted by signal, and posts worklogs only after explicit approval. ## Core Features & Use Cases - Multi-source time deduction: Polls Jira, git across every repo, Azure DevOps, GitHub, Outlook calendar and sent mail, Confluence, and Steady to attribute time to tickets, including a mandatory reviewer axis for PR reviews. - Approval-gated posting: Shows a three-column table (Ticket / Meeting, Hrs, Tempo Project) with per-row rationale, enforces an 8-hour ceiling, and posts Jira worklogs plus Tempo _Project_ attributes only after explicit user confirmation. - Use Case: At the end of the day, run /log-hours to get a proposed 8-hour timesheet built from your commits, PR reviews, and meetings, confirm the project mapping, and have it posted to Tempo with correct project tags. ## Quick Start Ask the assistant to log my hours for today using the log-hours skill and show me the proposed timesheet table before posting anything.

Frequently Asked Questions about log-hours

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automatically fill my Tempo timesheet from git and Jira activity?

Run the log-hours skill with an optional date, and it polls Jira, git across all configured repo roots, Azure DevOps, GitHub, Outlook, Confluence, and Steady to deduce per-ticket time. It shows an approval table first, then posts Jira worklogs that Tempo syncs from.

How do I set the Tempo Project attribute on a Jira worklog?

Jira-core worklog APIs cannot write the Tempo Project field, so the skill uses the Tempo REST API at api.tempo.io/4 with a TEMPO_API_TOKEN. It GETs the synced worklog, then PUTs it back with the _Project_ attribute set to one of the two allowed projects.

Does the skill post worklogs without my confirmation?

No. Posting requires explicit approval such as "post it" or "looks good, send it"; a neutral "ok" is not accepted. The skill always shows the allocation table with rationale first, and posts are final since the tools cannot delete worklogs.

Can the daily total exceed 8 hours in Tempo?

No. The 8-hour workday is both the default fill target and a hard ceiling counting already-logged baseline time. If the baseline plus new entries would exceed the limit, the skill stops and asks which rows to trim rather than auto-adjusting.

Why does the skill miss worklogs I already entered in Tempo?

Worklogs booked through Tempo are authored by the Tempo app account, not the user, so JQL queries for the current user miss them. The skill treats the baseline as best-effort and surfaces this read-back caveat on every run.

What happens if the TEMPO_API_TOKEN is missing or expired?

The skill halts before polling and asks you to mint a token in Jira under Tempo Settings, API integration, with View and Manage worklogs scopes. The token is read from the TEMPO_API_TOKEN environment variable first, never echoed back, and a 401 or 403 triggers a re-prompt.