Generate standup notes from GitHub PR activity
Generate standup notes for PostHog standups (Monday, Wednesday, Friday).
Every standup, you need to report:
Run the helper script to get standup dates:
~/.claude/skills/standup/scripts/standup-dates.sh
This returns tab-separated: <today>\t<last_standup_date>\t<new_file_path>
Store these values:
today - Today's date (for the new standup file)last_standup_date - When the previous standup was (for PR queries)new_file_path - Where to write the new standup notesRun the helper script to find previous standup notes:
~/.claude/skills/standup/scripts/standup-find.sh
This returns tab-separated: <status>\t<path>\t<date>
If status is "found":
<path>Only include PRs from PostHog/* repos. Personal repos (e.g. haacked/*) are excluded — standup is a PostHog work update, and personal tooling work isn't relevant to teammates. The org:PostHog qualifier in the search queries enforces this.
Completed PRs (merged since last standup):
gh api search/issues --method GET -f q="author:haacked org:PostHog is:pr is:merged merged:>=${last_standup_date}" --jq '.items[] | {number, title, url: .html_url, repo: .repository_url, merged_at: .pull_request.merged_at}'
Note: gh search prs --merged is unreliable for date filtering — it returns stale results. Always use gh api search/issues with the merged: qualifier instead, which returns accurate merged_at timestamps.
Active PRs (open PRs with recent activity) — include draft status and review requests:
gh pr list --author "@me" --state open --json number,title,url,isDraft,reviewRequests --repo PostHog/posthog
Also check for open PRs in other PostHog repos the user commonly works on:
PostHog/posthog-jsPostHog/posthog-dotnetPostHog/chartsPostHog/posthog-cloud-infraRecently Updated PRs (may have changes since last standup even if not open):
gh api search/issues --method GET -f q="author:haacked org:PostHog is:pr is:open updated:>=${last_standup_date}" --jq '.items[] | {number, title, url: .html_url, repo: .repository_url}'
Build standup content and produce two outputs: a plain text archive file and HTML for the clipboard.
Completed items:
last_standup_date<code> (HTML) for method/code namesWorking on items:
gh pr view <number> --repo <owner/repo> --json state,mergedAtgh pr list JSON:isDraft: true → link text is "draft"reviewRequests includes any reviewer → link text is "needs review"Discussion:
Write to new_file_path for archival. Every item is a plain line. URLs appear in parentheses after the description.
Completed:
Added `getFeatureFlagResult` method for efficient flag + payload retrieval (https://github.com/PostHog/posthog-js/pull/2920)
Added bin scripts for setup, build, and test (https://github.com/PostHog/posthog-js/pull/2824)
Working on:
Simplify readiness probe to prevent cascade failures (https://github.com/PostHog/posthog/pull/46589 - draft)
Add source field to feature flag created analytics (https://github.com/PostHog/posthog/pull/46782 - needs review)
Add HyperCache support to flag definitions cache (https://github.com/PostHog/posthog/pull/44701 - needs review)
Completing migration of celery tasks to dedicated flags queue
Discussion:
Zilch
Every section uses <p><b>Header:</b></p> followed by <ul>. Every item — without exception — is an <li> inside the <ul>, regardless of whether it contains a link.
<p><b>Completed:</b></p>
<ul>
<li><a href="https://github.com/PostHog/posthog-js/pull/2920">Added <code>getFeatureFlagResult</code> method for efficient flag + payload retrieval</a></li>
<li><a href="https://github.com/PostHog/posthog-js/pull/2824">Added bin scripts for setup, build, and test</a></li>
</ul>
<p><b>Working on:</b></p>
<ul>
<li>Simplify readiness probe to prevent cascade failures (<a href="https://github.com/PostHog/posthog/pull/46589">draft</a>)</li>
<li>Add source field to feature flag created analytics (<a href="https://github.com/PostHog/posthog/pull/46782">needs review</a>)</li>
<li>Add HyperCache support to flag definitions cache (<a href="https://github.com/PostHog/posthog/pull/44701">needs review</a>)</li>
<li>Completing migration of celery tasks to dedicated flags queue</li>
</ul>
<p><b>Discussion:</b></p>
<ul>
<li>Zilch</li>
</ul>
Copy to clipboard using the shared helper script:
swift ~/.dotfiles/bin/copy-html-to-clipboard.swift <<'EOF'
<p><b>Completed:</b></p>
<ul>
<li>...</li>
</ul>
EOF
Display: