Skip to content

Consolidate project notification jobs into unified daily digest#301

Merged
redreceipt merged 4 commits intomainfrom
claude/slack-project-posts-timing-GLGF1
Apr 23, 2026
Merged

Consolidate project notification jobs into unified daily digest#301
redreceipt merged 4 commits intomainfrom
claude/slack-project-posts-timing-GLGF1

Conversation

@redreceipt
Copy link
Copy Markdown
Member

Summary

Consolidates three separate project notification functions (post_overdue_projects, post_upcoming_projects, and post_friday_deadlines) into a single unified post_project_updates function that runs daily and groups projects by status (overdue, ending soon, starting soon).

Key Changes

  • Merged three jobs into one: Replaced three separate scheduled jobs with a single daily digest that covers all project statuses
  • Unified filtering logic: Consolidated engineering lead validation and project status filtering into a single pass through projects
  • Improved time windows: Changed from day-of-week specific scheduling (Monday/Friday) to a consistent 3-day window for both ending-soon and starting-soon projects
  • Better organization: Projects are now grouped into three sections (Overdue, Ending Soon, Starting Soon) within a single Slack message, ordered by date within each section
  • Simplified scheduling: Reduced from 3 scheduled jobs to 1 daily job at 14:00 ET
  • Updated tests: Refactored test suite to reflect the new consolidated function with comprehensive test cases for filtering, grouping, and ordering logic

Implementation Details

  • The new function processes all projects in a single loop, categorizing them into three lists based on their target/start dates and status
  • Projects are filtered to only include those with engineering leads and active/planned statuses
  • Overdue projects are identified using existing format_project_target_status helper
  • Ending-soon and starting-soon projects use a consistent 3-day window (0-3 days from today)
  • Only posts to Slack if at least one project matches the criteria
  • Maintains backward compatibility with existing project data structure and Slack markdown formatting

https://claude.ai/code/session_01HpRGk3uYAE5awwcPs7vAD8

Merges the previous upcoming/overdue/Friday-deadline project posts into a
single post_project_updates digest with Overdue, Ending Soon, and
Starting Soon sections. The soon windows are 3 days. Replaces the three
separate weekly schedules with one daily run at 14:00 America/New_York.
@redreceipt redreceipt enabled auto-merge (squash) April 23, 2026 13:01
@redreceipt redreceipt temporarily deployed to bug-board-claude-slack--augkho April 23, 2026 13:01 Inactive
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5184833aa4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread jobs.py
Comment on lines +646 to +650
continue
start_dt = parse_iso_date(project.get("startDate"))
if start_dt:
days_until_start = (start_dt - today).days
if 0 <= days_until_start <= 3:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Filter inactive projects from starting-soon section

post_project_updates only filters starting_soon by canceled status, so projects marked Completed, Incomplete, or Released (or with completedAt set under a non-canceled status) can still be announced as "Projects Starting Soon" when their startDate is within 0–3 days. This produces false Slack alerts for already closed work; the overdue/ending paths already use _is_inactive_project, so the starting-soon branch should apply the same guard.

Useful? React with 👍 / 👎.

Use _is_inactive_project to filter the starting-soon branch so
Completed/Incomplete/Released projects (or any with completedAt set)
aren't announced as starting, matching the guard already used by the
overdue and ending-soon branches.
@redreceipt redreceipt temporarily deployed to bug-board-claude-slack--augkho April 23, 2026 13:06 Inactive
@redreceipt redreceipt temporarily deployed to bug-board-claude-slack--augkho April 23, 2026 13:10 Inactive
@redreceipt redreceipt temporarily deployed to bug-board-claude-slack--augkho April 23, 2026 13:11 Inactive
@redreceipt redreceipt merged commit 015de48 into main Apr 23, 2026
7 checks passed
@redreceipt redreceipt deleted the claude/slack-project-posts-timing-GLGF1 branch April 23, 2026 13:11
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