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.