Skip to content

Remind about WIP-titled PRs weekly instead of daily - #7

Merged
chiang-daniel merged 3 commits into
mainfrom
daniel/weekly-wip-reminders
Oct 14, 2026
Merged

chiang-daniel merged 3 commits into
mainfrom
daniel/weekly-wip-reminders

Conversation

@chiang-daniel

@chiang-daniel chiang-daniel commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

Bump the WIP PR reminder from 1 day to 5 days (weekly)


Agentic PR Summary

Why

Nathan nudges the owner of a WIP:-titled PR every day (example). Kiln's PR template requires every agent-opened PR to start with WIP:, so WIP titles are routine there, not an edge case.

What

  • thresholdHoursByState now defaults to { wip_title: 120 } in src/features/pr_management/config.ts. Thresholds count working hours with weekends excluded in the owner's time zone, so 120 = 5 weekdays = one reminder a week, escalating one level per week as before.
  • A team's per-state overrides merge on top of that default, so setting e.g. approved: 8 doesn't silently drop the WIP week. Setting wip_title explicitly replaces it.
  • This is a code default rather than a nathan.config.ts override because the rule is about what a WIP title means, like the 14-day draft nudge. The team config is unchanged.
  • Spec §4.6 and the setup checklist describe the new default.

What it doesn't change

Only time spent in the wip_title state is affected. The threshold is looked up from the PR's current state on each hourly sweep, and any state change resets the staleness clock, so a PR that becomes ready for review is reminded on the usual schedule from that moment. App Home's Overdue and the daily report's Needs attention share the threshold, so WIP PRs also show as overdue only after a week.

Testing

  • Config tests: the default, merging a per-state override on top of it, and replacing the WIP default explicitly.
  • Sweep test on default config: a WIP PR seen Monday gets nothing through the following Monday 13:00 UTC, one exact reminder at 14:00 UTC (120 working hours, across a weekend), and after the title loses WIP a normal level-1 reminder 24 working hours later with the new next step.
  • npm run check passes: lint, typecheck, config validation for all three environments, import boundaries, 800 tests. No staging deploy.

🤖 Generated with Claude Code

A WIP-titled PR is one the author is still working on, so a daily
"convert to draft, or drop WIP" nudge in #prs is noise (Slack thread,
Oct 14: Daniel + Leonard agreed on weekly). Set the wip_title reminder
threshold to 120 working hours (5 weekdays) in the team config.

Only time spent in the wip_title state is affected: the threshold is
read from the PR's current state on each sweep, and any state change
resets the staleness clock, so a PR whose title drops "WIP" gets the
normal 24-hour reminders from that point. A sweep test covers both.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@chiang-daniel chiang-daniel changed the title Remind about WIP-titled PRs weekly instead of daily WIP-titled PRs should have weekly reminder instead of daily Oct 13, 2026
chiang-daniel and others added 2 commits October 14, 2026 00:48
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The rule is about what a WIP title means (the PR is still being worked
on), so it belongs in the code's defaults rather than nathan.config.ts:
thresholdHoursByState now defaults to { wip_title: 120 }, and a team's
per-state overrides are merged on top so setting another state's
threshold doesn't silently drop the WIP week. The spec and setup
checklist describe the default; the sweep test runs on default config
and asserts the exact reminders, like its neighbours.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@chiang-daniel chiang-daniel changed the title WIP-titled PRs should have weekly reminder instead of daily Remind about WIP-titled PRs weekly instead of daily Oct 13, 2026
@chiang-daniel
chiang-daniel requested a review from scosman October 13, 2026 23:23
@chiang-daniel
chiang-daniel merged commit 84e2733 into main Oct 14, 2026
1 check passed
@chiang-daniel
chiang-daniel deleted the daniel/weekly-wip-reminders branch October 14, 2026 00:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants