Prepare and fill Intervals Online time-entry rows from daily notes with GitHub and Outlook calendar correlation. Use when asked to prepare or fill Intervals hours for manual review. The assistant must show the proposed entries and hours before filling, let the user tweak them, require explicit confirmation to proceed, and never click Save or submit the timesheet.
Prepare and fill time entries in Intervals Online from Obsidian daily notes using browser automation, with GitHub activity and Outlook calendar correlation. The assistant must always preview the proposed hours first, wait for user confirmation before filling, and never submit the timesheet.
--remote-debugging-port=9222https://bhi.intervalsonline.com/time/multiple/IMPORTANT: Cached files are stored in the PROJECT, not the plugin:
<project-root>/.cache/om/intervals-cache/
├── project-mappings.md # Project→workType mappings
├── github-mappings.md # Repo→project mappings
├── outlook-mappings.md # Calendar→project mappings
These files persist between sessions. Seed them from this repo's templates on first install, then treat them as shared runtime state for both Claude and Codex.
These rules are not optional:
Project | Module (if any) | Work Type | Hours | Description
and include the total hours.Read the daily note for the requested date. Default location: Daily Notes/YYYY-MM-DD.md
Look for:
https://github.com/owner/repo/pull/123)ALWAYS run this phase to fetch GitHub activity and enhance time entry descriptions.
Run this command (replace YYYY-MM-DD with the target date):
bash scripts/fetch-github-activity.sh YYYY-MM-DD
This returns JSON with:
IMPORTANT: The script output already includes PR titles and body snippets in prs_authored, prs_active, and prs_reviewed. Do NOT make separate gh pr view calls — use the data already returned by the script.
Using the JSON output from Step 1:
.cache/om/intervals-cache/github-mappings.mdALWAYS improve descriptions when GitHub data provides more context. The goal is to make time entries self-documenting and meaningful for future reference.
Before/After Examples:
| Notes say | GitHub shows | Final description |
|---|---|---|
| "font awesome icon PR" | PR #574: "Add FontAwesome Pro icons to design system" | Add FontAwesome Pro icons to design system (PR #574) |
| "review and merge PRs" | Reviewed PR #580, #581, #583 | Code review: notification preferences (#580), cart validation (#581), search filters (#583) |
| "text-transform work" | PR #579: "Add text-transform utilities to typography tokens" | Add text-transform utilities to typography design tokens (PR #579) |
| "bug fixes" | PR #602: "Fix race condition in checkout flow" | Fix race condition in checkout flow (PR #602) |
| "API work" | Commits: "Add pagination to /users endpoint", "Handle empty results" | Add pagination to /users endpoint with empty result handling |
Rules:
(PR #123)Compare GitHub activity to notes and flag potential issues:
Missing time entries: If GitHub shows significant activity (multiple commits, PRs) for a repo but notes have no corresponding entry, suggest adding one.
Time discrepancies: Use commit timestamps to estimate minimum time spent:
Example output:
⚠️ GitHub shows commits on technomic-api from 9:15am to 3:30pm (~4-5h with breaks)
but notes only show 2h for Technomic dev work. Consider adjusting.
💡 Found PR #456 "Fix payment edge case" for Technomic - using for description.
📝 No time entry found for 3 PR reviews on ewg-frontend. Suggest adding:
- EWG: 0.5-1h Architecture/Technical Design (PR reviews #12, #13, #14)
ALWAYS run this phase to visually read the Outlook calendar and cross-reference with notes and GitHub activity.
Prerequisite: User must be logged into Outlook Web in the browser (same Chrome instance with --remote-debugging-port=9222).
IMPORTANT: Never navigate away from the user's current tab. Always find an existing Outlook tab or create a new one.
list_pages to see all open browser tabsoutlook.office.com or outlook.live.comselect_page with that page's IDnew_page with the day view URL (see Step 2)Navigate to the target date's day view: