Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Deploy preview
|
|
Vale prose linter → found 46 errors, 25 warnings, 0 suggestions in your markdown Full report → Copy the linter results into an LLM to batch-fix issues. Linter being weird? Update the rules!
|
| Line | Severity | Message | Rule |
|---|---|---|---|
| 11:53 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 11:86 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 43:72 | warning | 'standups' is a possible misspelling. | PostHogBase.Spelling |
| 48:29 | warning | 'dogfooder' is a possible misspelling. | PostHogBase.Spelling |
| 67:4 | warning | 'The architecture: one agent to rule them all' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 69:14 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 71:201 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 73:126 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 77:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 78:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 79:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 80:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 80:26 | warning | 'standups' is a possible misspelling. | PostHogBase.Spelling |
| 81:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 82:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 139:215 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 187:136 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 218:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 219:1 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 220:57 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 228:31 | warning | 'hardcoding' is a possible misspelling. | PostHogBase.Spelling |
| 230:31 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 231:17 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 231:56 | warning | 'mrkdwn' is a possible misspelling. | PostHogBase.Spelling |
| 233:17 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 234:21 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 236:45 | warning | 'standups' is a possible misspelling. | PostHogBase.Spelling |
| 236:201 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 238:212 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 240:55 | warning | 'vibecoded' is a possible misspelling. | PostHogBase.Spelling |
| 244:168 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 244:266 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 250:151 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 256:4 | error | 'bad' is repeated! | Vale.Repetition |
| 257:24 | warning | 'im' is a possible misspelling. | PostHogBase.Spelling |
| 257:49 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 261:144 | warning | 'dont' is a possible misspelling. | PostHogBase.Spelling |
| 261:280 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 268:14 | warning | 'dogfooding' is a possible misspelling. | PostHogBase.Spelling |
| 268:108 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 268:216 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 268:363 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 270:5 | warning | 'eval' is a possible misspelling. | PostHogBase.Spelling |
| 270:97 | warning | 'mrkdwn' is a possible misspelling. | PostHogBase.Spelling |
| 270:234 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 270:424 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 272:71 | warning | Use 'Markdown' instead of 'markdown'. | Vale.Terms |
| 278:182 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 278:250 | warning | 'eval' is a possible misspelling. | PostHogBase.Spelling |
| 282:76 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 282:91 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 282:269 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 303:304 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 360:53 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 360:112 | warning | 'standups' is a possible misspelling. | PostHogBase.Spelling |
| 360:425 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 391:44 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 392:61 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 393:47 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 394:55 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 395:100 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 396:65 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 402:70 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 407:25 | warning | 'standups' is a possible misspelling. | PostHogBase.Spelling |
| 407:275 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 407:395 | warning | 'standups' is a possible misspelling. | PostHogBase.Spelling |
| 407:493 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 417:78 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 418:98 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 419:6 | warning | 'learnings' is a possible misspelling. | PostHogBase.Spelling |
| 419:90 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
84736cc to
22b575e
Compare
An unhinged, developer-friendly post walking through the github-standup-agent project - a multi-agent system that automates daily standup generation with full PostHog LLM analytics instrumentation. Includes placeholder comments for screenshots and images to be added later.
- Added actual CLI log showing the full agent workflow - Showcased inferred feedback feature (agent picks up on casual praise) - Added iterative refinement example (remove ask, add Will Do) - Added standup-bot-taunt screenshot at the start - Added standup-bot-output screenshot showing final Slack message - Reorganized cool features section
- trace-view.png: Full agent workflow trace - trace-summary.png: AI-generated trace summary - eval-example.png: Evals showing quality metrics linked to traces These showcase the PostHog integration for observability and evals.
Switched all local image references to Cloudinary-hosted versions and removed the local image files that are no longer needed.
- Added three "Hot take" callout boxes throughout the post: 1. "Agents are the new scripts" - after the plan section 2. "Human in the loop matters" - after the real example 3. "Why are we doing standups" - in the closing section - Expanded the customization section to cover both style.md and examples.md config files with better examples
- Rewrite architecture section with real multi-agent-to-single-agent story - Update code examples and output to match actual agent behavior - Add internal links to LLM analytics docs throughout - Fix broken doc links (/docs/ai-engineering/* -> /docs/llm-analytics/*) - Add new sections: prompt management, tool usage, clustering, sentiment, evals - Include real screenshots: trace view, tools tab, sentiment tab, eval results - Replace hero image with clearer Slack standup bot screenshot - Update victory lap section with real session log - Add Claude Code source leak reference in prompts section - Center-align all images, external links open in new tabs - Replace CalloutBox with inline styled hot take boxes - Clean up further reading section to match site conventions
22b575e to
ba56256
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ba56256a75
ℹ️ 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".
ivanagas
left a comment
There was a problem hiding this comment.
looks great, some suggested tweaks but basically good to go.
| @@ -0,0 +1,445 @@ | |||
| --- | |||
| date: 2026-04-01 | |||
| title: "F*$k youuuu standup bot!" | |||
There was a problem hiding this comment.
Too played out?
| title: "F*$k youuuu standup bot!" | |
| title: "I hate the standup bot (so I built an agent to do it for me)" |
|  | ||
|
|
||
| There it is. Staring at me. Sitting there. Goading me. |
There was a problem hiding this comment.
I think we should do text and then image.
|  | |
| There it is. Staring at me. Sitting there. Goading me. | |
| There it is. Staring at me. Sitting there. Goading me. | |
|  |
|
|
||
| There it is. Staring at me. Sitting there. Goading me. | ||
|
|
||
| The day is nearly done. I've reviewed PRs, fixed bugs, hopped on quick calls, commanded my agents and smashed that accept button all day! |
There was a problem hiding this comment.
| The day is nearly done. I've reviewed PRs, fixed bugs, hopped on quick calls, commanded my agents and smashed that accept button all day! | |
| The day is nearly done. I've reviewed PRs, fixed bugs, hopped on quick calls, commanded my agents, and smashed that accept button all day! |
|
|
||
| Every time I manually copy-paste into our standup thread, a little part of me dies inside. | ||
|
|
||
| We just [passed the Turing test](https://www.reddit.com/r/Futurism/comments/1jpzb8s/an_ai_model_has_officially_passed_the_turing_test/) and here I am copy-pasting GitHub issue URLs into a Slack thread like it's 2010. I'm pulling up tabs, hunting for PR links, navigating all over GitHub, trying to remember what I (my agents) actually did today, and formatting it all nicely in slack. |
There was a problem hiding this comment.
| We just [passed the Turing test](https://www.reddit.com/r/Futurism/comments/1jpzb8s/an_ai_model_has_officially_passed_the_turing_test/) and here I am copy-pasting GitHub issue URLs into a Slack thread like it's 2010. I'm pulling up tabs, hunting for PR links, navigating all over GitHub, trying to remember what I (my agents) actually did today, and formatting it all nicely in slack. | |
| We just [passed the Turing test](https://www.reddit.com/r/Futurism/comments/1jpzb8s/an_ai_model_has_officially_passed_the_turing_test/) and here I am copy-pasting GitHub issue URLs into a Slack thread like it's 2010. I'm pulling up tabs, hunting for PR links, navigating all over GitHub, trying to remember what I (my agents) actually did today, and formatting it all nicely in Slack. |
| - Build [instrumentation for it](/docs/llm-analytics/installation/openai-agents) in [`posthog-python`](/docs/libraries/python) | ||
| - Create something I can actually use every day | ||
| - Write this very blog post | ||
| - But most importantly, use AI even if it actually sometimes takes me longer each day than it did before. |
There was a problem hiding this comment.
I don't fully understand what this sentence is saying
|
|
||
| ## Try it yourself | ||
|
|
||
| The agent is open source: [github.com/andrewm4894/github-standup-agent](https://github.com/andrewm4894/github-standup-agent) |
There was a problem hiding this comment.
| The agent is open source: [github.com/andrewm4894/github-standup-agent](https://github.com/andrewm4894/github-standup-agent) | |
| The agent is open source, [go check it out](https://github.com/andrewm4894/github-standup-agent) or try it yourself: |
| - **[Clustering](/docs/llm-analytics/clusters)** and **[sentiment](/docs/llm-analytics/sentiment)** - Spot patterns in how your agent is used | ||
| - **[User feedback](/docs/llm-analytics/collect-user-feedback)** - Link quality signals to specific traces | ||
|
|
||
| The OpenAI Agents SDK integration is [available in posthog-python](https://github.com/PostHog/posthog-python/pull/408). Check out our other integrations for [LangChain](/docs/llm-analytics/installation/langchain), [OpenAI](/docs/llm-analytics/installation/openai), and [many other frameworks](/docs/llm-analytics/installation). |
There was a problem hiding this comment.
| The OpenAI Agents SDK integration is [available in posthog-python](https://github.com/PostHog/posthog-python/pull/408). Check out our other integrations for [LangChain](/docs/llm-analytics/installation/langchain), [OpenAI](/docs/llm-analytics/installation/openai), and [many other frameworks](/docs/llm-analytics/installation). | |
| The OpenAI Agents SDK integration is [available in `posthog-python`](https://github.com/PostHog/posthog-python/pull/408). Check out our other integrations for [LangChain](/docs/llm-analytics/installation/langchain), [OpenAI](/docs/llm-analytics/installation/openai), and [many other frameworks](/docs/llm-analytics/installation). |
| - [LLM analytics docs](/docs/llm-analytics) - Instrument your own AI features with tracing, evals, and cost tracking | ||
| - [How we caught our AI agent embezzling tokens](/blog/optimizing-agent-cost) - Lessons on tracking and optimizing agent costs | ||
| - [How we built automatic clustering for LLM traces](/blog/llm-analytics-clustering-how-it-works) - Deep dive into the clustering pipeline | ||
| - [8 learnings from 1 year of agents](/blog/8-learnings-from-1-year-of-agents-posthog-ai) - What we've learned building AI at PostHog | ||
| - [OpenAI Agents SDK integration](/docs/llm-analytics/installation/openai-agents) - The integration docs | ||
| - [github-standup-agent](https://github.com/andrewm4894/github-standup-agent) - The agent itself, open source |
There was a problem hiding this comment.
I think we mention these three enough times in the actual blog to remove them here and just focus on the other blogs.
| - [LLM analytics docs](/docs/llm-analytics) - Instrument your own AI features with tracing, evals, and cost tracking | |
| - [How we caught our AI agent embezzling tokens](/blog/optimizing-agent-cost) - Lessons on tracking and optimizing agent costs | |
| - [How we built automatic clustering for LLM traces](/blog/llm-analytics-clustering-how-it-works) - Deep dive into the clustering pipeline | |
| - [8 learnings from 1 year of agents](/blog/8-learnings-from-1-year-of-agents-posthog-ai) - What we've learned building AI at PostHog | |
| - [OpenAI Agents SDK integration](/docs/llm-analytics/installation/openai-agents) - The integration docs | |
| - [github-standup-agent](https://github.com/andrewm4894/github-standup-agent) - The agent itself, open source | |
| - [How we caught our AI agent embezzling tokens](/blog/optimizing-agent-cost) - Lessons on tracking and optimizing agent costs | |
| - [How we built automatic clustering for LLM traces](/blog/llm-analytics-clustering-how-it-works) - Deep dive into the clustering pipeline | |
| - [8 learnings from 1 year of agents](/blog/8-learnings-from-1-year-of-agents-posthog-ai) - What we've learned building AI at PostHog |
| ## The breaking point | ||
|
|
||
| Every time I manually copy-paste into our standup thread, a little part of me dies inside. |
There was a problem hiding this comment.
Some feedback I regularly give: This second sort of feels like a second introduction. The main part of the post starts with "The plan" and we want to get people there as soon as possible. I think there is a way to blend these two sections together so we have one intro and get right into it.
I love the first two sentences/paragraphs form this section, maybe they can replace:
I'm too good for this. I don't need this corporate nonsense. I'm gonna stick it to the man. I'm not gonna play their silly little games.
I'm going to beat the system.
In the top section to bring things together?
|
|
||
| [Clustering](/docs/llm-analytics/clusters) automatically groups similar traces together. For a personal agent like this, the clusters are pretty simple - mostly "standard standup generation" vs "heavy iteration sessions" vs "quick copy-paste runs." But it's useful for spotting patterns in how I use the agent. If you're curious about how the clustering pipeline actually works under the hood, I wrote a [deep dive on how we built it](/blog/llm-analytics-clustering-how-it-works). | ||
|
|
||
| ### Sentiment |
There was a problem hiding this comment.
Just because this piece is long, I'd consider dropping this one as it's not super-duper relevant to developing an agent for yourself and it kind of dilutes the other points. I get that you used it and it's part of LLM analytics, but we shouldn't include all the features, just the most powerful/important ones for this use case.
For example, I think the evals on the Slack links is a really great example that deserves people to read it.
I know you're a big fan of clustering but maybe that one too 🙈 (it's ultimately your piece though).
|
|
||
| The standup bot still messages me at 6 PM. But now I just smile, run `standup generate`, and let my agent do the talking. | ||
|
|
||
| F*$k you, standup bot. I win. |
There was a problem hiding this comment.
this is so good hahahahahha
Summary
New engineering blog post about building a multi-agent system to automate daily standups using PostHog LLM analytics for instrumentation.
https://6b09ca6f.posthog-preview.pages.dev/blog/standup-bot-revenge
Covers:
Links to open source repo: https://github.com/andrewm4894/github-standup-agent
Checklist